SISTEMA OPERACIONAL LINUX

Documentos relacionados
Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

FACULDADE DE TECNOLOGIA DE GOIÁS SENAC GESTÃO DA TECNOLOGIA DA INFORMAÇÃO. Joselito Antônio Vilas Boas Junior LINUX FUNDAMENTOS DE T.I.

16:21:50. Introdução à Informática com Software Livre

AULA 5 Sistemas Operacionais

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger

Sistema de Arquivos EXT3

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

SISTEMA OPERACIONAL & SOFTWARE LIVRE

Universidade Federal de Goiás. Alexandre Ferreira de Melo CERCOMP / UFG

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Sistemas Operacionais

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais. Prof. André Y. Kusumoto

FAT32 ou NTFS, qual o melhor?

Linux, Windows, Antivírus, Teclado e .

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Aula 01 Visão Geral do Linux

Aula 01. Introdução ao Linux

Fundamentos de Sistemas Operacionais

TRABALHO COM GRANDES MONTAGENS

Cadastramento de Computadores. Manual do Usuário

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

GESTÃO DE SISTEMAS OPERACIONAIS II

Curso de Instalação e Gestão de Redes Informáticas

Admistração de Redes de Computadores (ARC)

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

PROJETO INFORMÁTICA NA ESCOLA

Arquitetura de Computadores. Sistemas Operacionais IV

Everson Scherrer Borges João Paulo de Brito Gonçalves

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Processos e Threads (partes I e II)

5 Mecanismo de seleção de componentes

Sistemas Operacionais

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

RESTAURAÇÃO NO WINDOWS 8

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Tecnologia e Informática

Instalando o Debian em modo texto

Leia antes de instalar Mac OS X

Kerio Exchange Migration Tool

INTRODUÇÃO AO SISTEMA

Curso de Instalação e Gestão de Redes Informáticas

Entendendo como funciona o NAT

Sistemas Operacionais

Professor: Roberto Franciscatto. Curso: Engenharia de Alimentos 01/2010 Aula 3 Sistemas Operacionais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

6 - Gerência de Dispositivos

OneDrive: saiba como usar a nuvem da Microsoft

4 Estrutura do Sistema Operacional Kernel

Dicas para usar melhor o Word 2007

Como instalar uma impressora?

Arquitetura de Rede de Computadores

SISTEMAS OPERACIONAIS

SISTEMAS DE ARQUIVOS Sistemas operacionais

Guia Rápido de Instalação Ilustrado

Sistemas Operacionais: Sistema de Arquivos

Padrão ix. Manual de Instalação do Q-Ware Server Versão

Manual de Instalação ProJuris8

Módulo 4. Construindo uma solução OLAP

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

Conceitos de Banco de Dados

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

MicrovixPOS Requisitos, Instalação e Execução

ESTUDO DE CASO WINDOWS VISTA

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Guia de instalação UEG Linux LTS

AVALIAÇÃO À DISTÂNCIA 1 GABARITO

Sistemas Operacionais

Guia Sphinx: instalação, reposição e renovação

Introdução ao Linux. Professor Breno Leonardo G. de M. Araújo

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

NetEye Guia de Instalação

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

CADERNO DE QUESTÕES WINDOWS 8

Sistemas Operacionais

Sistema Operacional Unidade Instalando o Ubuntu Virtualizado

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Sistema Operacional Correção - Exercício de Revisão

A LIBERDADE DO LINUX COM A QUALIDADE ITAUTEC

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Curso de Instalação e Gestão de Redes Informáticas

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Transcrição:

FACULDADE DE TECNOLOGIA DE GUARATINGUETÁ SISTEMA OPERACIONAL LINUX Álvaro Perez Sanchez, Cleber Lopes Campomori, José Marcos Rocca, Pedro Aurélio Lemes Trabalho apresentado na disciplina Sistemas Operacionais 2 para o professor José Geraldo, no curso superior de Tecnologia em Informática, 4 semestre noturno. Guaratinguetá SP 2011

FACULDADE DE TECNOLOGIA DE GUARATINGUETÁ SISTEMA OPERACIONAL LINUX Álvaro Perez Sanchez, Cleber Lopes Campomori, José Marcos Rocca, Pedro Aurélio Lemes Trabalho apresentado na disciplina Sistemas Operacionais 2 para o professor José Geraldo, no curso superior de Tecnologia em Informática, 4 semestre noturno. Área de concentração: Sistemas Operacionais Guaratinguetá SP 2011

LISTA DE ILUSTRAÇÕES Figura 1 - Ken Thompson e Dennis Ritchie... 10 Figura 2 - Linus Torvalds... 11 Figura 3 - Mascotes GNU e Linux (Tux)... 12 Figura 4 - Richard Stallman... 12 Figura 5 - Logotipo do Debian... 14 Figura 6 - Logotipo Ubuntu... 15 Figura 7 - Logotipo Damn Small Linux... 15 Figura 8 - Logotipo Endian Firewall... 16 Figura 9 - Logotipo Android... 17 Figura 10 - Esquema de gerenciamento de memória através [...]... 30

SUMÁRIO 1 INTRODUÇÃO: O QUE É LINUX?... 9 2 HISTÓRICO... 10 2.1. Antecessores, Multics e Unix... 10 3 DISTRIBUIÇÕES LINUX... 13 3.1. O que são disitribuições... 13 3.2. Exemplos de distribuições... 13 3.2.1. Debian... 14 3.2.2. Ubuntu... 14 3.2.4. Endian Firewall... 16 3.2.5. Android... 16 4 DETALHES DO SISTEMA OPERACIONAL LINUX... 18 4.1. Sistema de arquivos... 18 4.1.1. Linux EXT2... 18 4.1.2. Linux EXT3... 19 4.1.3. Funcionalidades do Linux EXT3... 20 4.1.4. Desfragmentação do Linux EXT3... 21 4.1.5. Recuperação no Linux EXT3... 21 4.1.6. Compressão no Linux EXT3... 21 4.1.7. Linux EXT4... 22 4.1.8. Sistemas de arquivos ou arquivos grandes... 23 4.1.9. Escalabilidade de subdiretórios... 23

4.1.10. Extends... 23 4.1.11. Alocação multiblock... 24 4.1.12. Atraso na alocação... 25 4.1.13. FSCK rápido... 25 4.1.14. Journal checksumming... 26 4.1.15. Recursos relacionados aos inodes... 26 4.1.16. Presistência na pré-alocação... 27 4.1.17. ReiserFS... 28 4.1.18. Desvantagens do ReiserFS... 28 4.2. Gerenciamento de memória... 29 4.3. Gerenciamento de processos... 32 4.3.1. O conceito de processo... 32 4.3.2. Os primeiros processos... 33 4.3.3. Estados... 34 4.3.4. Limite de recursos... 35 4.3.5. Preemptivo... 36 4.3.6. Política de escalonamento... 37 4.3.7. Algoritmo de Escalonamento... 38 5 VANTAGENS E DESVANTAGENS DO LINUX... 39 5.1 Vantagens... 39 5.2 Desvantagens... 40 6 CONCLUSÕES... 41 7 BIBLIOGRAFIA... 42

1 INTRODUÇÃO: O QUE É LINUX? Linux é um sistema operacional, responsável pelo funcionamento do computador, que faz a comunicação entre hardware (impressora, monitor, mouse, teclado) e software (aplicativos em geral). O kernel é o coração do Sistema Operacional Linux. Ele é o responsável por garantir que todos os programas terão acesso aos recursos de que necessitam (memória RAM, por exemplo) simultaneamente, fazendo com que haja um compartilhamento concorrente mas sem oferecer riscos à integridade da máquina. O conjunto de um kernel e demais programas responsáveis pela comunicação com este é o que denominamos sistema operacional. Desenvolvido pelo finlandês Linus Torvalds, o Linux tem seu código fonte disponível sob licença GPL para qualquer pessoa utilizar, estudar, modificar e distribuir de acordo com os termos da licença. O Linux é um sistema operacional derivado do Unix.

2 HISTÓRICO O nome Linux é uma fusão do nome de seu criador, o finlandês Linus Torvalds com Unix, um sistema operacional de grande porte voltado para servidores, no qual o Linux foi baseado. Para entender a história do Linux é preciso um breve resumo sobre a história do Unix. 2.1. Antecessores, Multics e Unix O Unix e sua história estão intrinsicamente ligados a história de um sistema operacional mais antigo, chamado Multics, o Multics foi criado na década de 1960 por um conjunto de empresas entre elas General Eletric (GE), laboratórios Bell (Bell Labs) e American Telephone an Telegraph (AT&T) além do Massachusets Institute of Technology (MIT). A idéia principal do Multics era quanto as características de tempo compartilhado, aonde vários usuários usam os recursos do computador ao mesmo tempo, compartilhando-o. Ken Thompsom, um dos pesquisadores do Multics que trabalhava na Bell, após a saída da referida empresa do projeto Multics, decidiu que desenvolveria um sistema que mantesse as mesmas características do Multics mas que fosse menor do que o anterior, nasceu então o Unix. Algum tempo mais tarde em 1973 um outro pesquisador da Bell, Dennis Ritchie, reescreveu todo o sistema em uma linguagem de alto nível que ele mesmo criou, o C, isto fez com que o Unix passasse a ter maior aceitação fora da Bell. Figura 1 - Ken Thompson e Dennis Ritchie

Entre 1977 e 1983 a AT&T passou a alterar o Unix de modo a poder comercializar o mesmo, isto se deu em meados de 1983 com o desenvolvimento da versão System V que até hoje ainda é usado no mercado. Em 1991 Linus Torvalds, então estudante de Ciências da Computação na Universidade de Helsinki na Finlândia, começa a estudar o Minix uma versão livre do Unix, então o mesmo decide criar um sistema que fosse mais poderoso que o Minix, para isso envia uma mensagem através da Usenet (espécie de antecessor da Internet), divulgando sua idéia, aonde já propõe a colaboração no desenvolvimento do sistema, bem como a disponibilização dos códigos fontes, Ainda em 1991 disponibiliza a versão 0.02 do Kernel (núcleo do sistema), e continua trabalhando até finalmente em 1994 oferecer a versão 1.0. Figura 2 - Linus Torvalds O Linux é um Sistema Operacional livre, que reimplementa as especificações POSIX, que já eram usadas em sistemas Unix (System 4) e BSD. Deste modo o Linux é muito similar ao Unix, mas seu fonte é completamente distinto tendo sido escrito de formas completamente diferentes e separadas.

Linus Torvalds ao desenvolver o Linux não tinha intenção de ganhar dinheiro a intenção primordial era desenvolver um sistema que atendesse as suas necessidades pessoais, além é claro da pesquisa. Desde o começo o estilo de desenvolvimento foi baseado na ajuda coletiva, aonde vários desenvolvedores são coordenados por Linus, de forma colaborativa melhorando o sistema que ele criou. Milhares de pessoas no mundo ajudaram e ainda ajudam a desenvolver o Linux apenas pelo prazer de se criar um sistema cada vez melhor, isso faz dele a potência que é nos quesitos estabilidade e segurança. O Linux é regido pela licença GPL a referida licença basicamente dita que qualquer um pode usar o programa desde que não o torne fechado. Ou seja, você pode alterar e até comercializar o programa, mas nunca fechar o seu código. A história do Linux ainda se funde a do GNU, o GNU é um projeto que começou em 1984 por Richard Stallman com o objetivo de desenvolver um sistema compatível com Unix (Unix-like). O Linux é apenas um kernel (núcleo do sistema) o GNU é um conjunto de softwares, que foram até mesmo usados por Linus no desenvolvimento do Linux. Deste modo o sistema acabou se fundindo, se tornando uma junção do Kernel (Linux) e demais itens do Sistema (GNU). Deste modo o sistema leva usualmente o nome de seu núcleo, o Linux, mas o termo correto é GNU/Linux. Figura 3 - Mascotes GNU e Linux (Tux) Figura 4 - Richard Stallman

3 DISTRIBUIÇÕES LINUX 3.1. O que são disitribuições Entende-se como sistema operacional, um software que como um todo é capaz de fazer o computador funcionar de forma útil, provendo acesso aos dispositivos de hardware disponíveis, bem como fornecendo programas e aplicações para a interação do usuário nas mais diversas aplicações. As distribuições são a junção de todos esses fatores, núcleo do sistema (kernel Linux), programas (ex: Shell), aplicativos (ex: navegador Firefox). O que difere uma distribuição da outra é a versão utilizada do Kernel, e os programas e aplicativos disponibilizados, bem como o foco da distribuição, existem distribuições voltadas para todos os tipos de atividade, servidores, desktop, roteadores de redes, firewall, mobile e etc. Um fato que deixa claro a diferença que as distribuições podem ter entre si de acordo com o que oferecem se baseia no tamanho em bytes de algumas delas, existem distribuições capazes de rodar a partir de um simples disquete de 1.44MB até distribuições que ocupam 3 DVD s de 4.7GB. 3.2. Exemplos de distribuições Hoje existem centenas de distribuições voltadas para as mais diversas aplicações, como citado existem muitas diferenças e peculiaridades entre as elas. Seguem alguns exemplos, suas funções, peculiaridades e foco principais.

3.2.1. Debian Debian ou Debian GNU/Linux é uma distribuição focada na estabilidade que existe desde 1996, atualmente a versão estável se encontra na 6.0 (codinome Squeeze). O Debian prima por estabilidade, haja visto que há uma cultura de se manter sempre versões antigas e testadas de todos os pacotes e bibliotecas, garantindo alta confiabilidade, a versão estável da distro nunca recebe pacotes antes dos mesmos serem exaustivamente testados, isso faz com que o Debian seja uma distribuição amplamente utilizada em servidores. Outro fator diferencial do Debian é o gerenciador de pacotes APT que permite a instalação, remoção, atualização e configuração de pacotes de instalação de forma simples, fácil, eficaz e segura. Figura 5 - Logotipo do Debian 3.2.2. Ubuntu Esta distribuição existe desde 2004, é uma distribuição baseada no Debian, também utilizando o gerenciador de pacotes APT, tem tido grande destaque no mercado Linux nos últimos três anos, apresentando grandes facilidades na sua instalação e uso para desktops, as versões do Ubuntu são lançadas a cada seis meses sempre no mês quatro e no mês dez. O número das versões obedece a este padrão começando na versão 4.10(ano 2004, mês 10), 5.04(ano 2005, mês 04) e assim sucessivamente. O ubuntu costuma trazer inovações interessantes aos usuários de desktop a cada nova versão, sendo considero o Linux mais fácil de usar, devido as suas ferramentas intuitivas e bem construídas graficamente. A última

versão é a 11.4 (codinome Natty Narwhal), que traz como grande novidade o uso do novo e polêmico gerenciador de janelas Unity, que promete um Desktop mais produtivo e bonito em comparação aos demais gerenciadores de janela. Figura 6 - Logotipo Ubuntu 3.2.3. Damn Small Linux É uma distribuição baseada no Debian, que faz parte de um tipo denominado minidistribuições, basicamente se trata de um Linux live-cd (roda direto do CD, sem necessidade de instalação, sendo possível seu uso até mesmo em computadores sem disco rígido), a pequena distribuição oferece um desktop pronto e completo, contendo suíte de escritório, navegador de internet, cliente de mensagens instantâneas entre outros aplicativos. Devido ao seu tamanho é também muito leve e pode rodar bem no modo denominado light em um 486 DX2 de 66 Mhz com 16MB de memória RAM, com uma máquina com 128MB de RAM é capaz de rodar no seu modo full com todos os aplicativos e recursos da distribuição plenamente funcionais. A distribuição tem pouco mais de 50MB o que permite sua gravação até mesmo em CD s do tipo Business Card. Se encontra na versão 4.4.10. Figura 7 - Logotipo Damn Small Linux

3.2.4. Endian Firewall Como o próprio nome sugere o Endian é um firewall baseado em Linux que pode transformar qualquer computador em um poderoso roteador/firewall. Conta com interface Web unificada de acesso e gerenciamento. Dispõe de ferramentas comuns e avançadas para firewall e roteamento, como por exemplo NAT, Proxy, DHCP, VPN, Anti-vírus e Anti-Spam para email e Web, filtro de conteúdo, estatísticas e logs, dentre outras ferramentas. Se encontra atualmente na versão 2.1.2. Figura 8 - Logotipo Endian Firewall 3.2.5. Android Sistema operacional mobile da Google que utiliza o kernel Linux. Não é desenvolvido internamente no kernel e sim numa estrutura externa desenvolvida pela Google. O sistema foi desenvolvido inicialmente pela própria Google que posteriormente passou o desenvolvimento para a Open Handset Alliance, ficando apenas com o gerenciamento do produto e a engenharia de processos. O Android é desenvolvido com bibliotecas que permite ao desenvolvedor programar para ele utilizando Java realizando o controle do aparelho por intermédio dessas bibliotecas. O crescimento do Android foi exponencial no último ano, atingindo algumas marcas altamente expressivas como: duzentos mil aplicativos desenvolvidos e disponibilizados no Google Market (loja de aplicativos do Android), cem milhões de aparelhos Android ativados, quatro bilhões e meio de aplicações instaladas através

do Android Market. Com estes números o Android se tornou a plataforma mais utilizada em smarthphones estando em primeiro lugar com 38,5% de todo o mercado. Figura 9 - Logotipo Android

4 DETALHES DO SISTEMA OPERACIONAL LINUX 4.1. Sistema de arquivos Linus Torvalds adaptou o sistema de arquivos do MINIX, de Andrew Tanenbaum, para o Linux. Esse sistema de arquivos estendeu o limite do volume para 2 GiB e o tamanho do nome de arquivo para 255 caracteres. 4.1.1. Linux EXT2 A influência do UNIX pode ser vista, p.ex., na utilização de grupos de blocos, que são análogos aos grupos de cilindros utilizados pelo FFS. O tamanho máximo de um volume Ext2 é de 8 TiB. O Ext2 foi projetado e implementado para corrigir as deficiências do Ext e prover um sistema que respeitasse a semântica UNIX. A influência do UNIX pode ser vista, p.ex., na utilização de grupos de blocos, que são análogos aos grupos de cilindros utilizados pelo FFS. A versão original do FFS originou o que é hoje conhecido como UFS1 (Unix File System 1). O bloco, que consiste num conjunto de setores (cada setor tem 512 bytes), é a menor unidade de alocação para o Ext2. O tamanho pode ser de 1024, 2048 ou 4096 bytes e é definido na formatação. A partição EXT2 é o tipo usado para criar o sistema de arquivos Linux Native usado para armazenar o sistema de arquivos EXT2 (após a formatação) e permitir o armazenamento de dados.

4.1.2. Linux EXT3 A principal diferença entre o Ext2 e o Ext3 é a implementação do journaling, que consiste em um registro (log ou journal) de transações cuja finalidade é recuperar o sistema em caso de desligamento não programado. Há três níveis de journaling disponíveis na implementação do Ext3: Journal: os metadados e os dados (conteúdo) dos arquivos são escritos no journal antes de serem de fato escritos no sistema de arquivos principal. Isso aumenta a confiabilidade do sistema com uma perda de desempenho, devido a necessidade de todos os dados serem escritos no disco duas vezes. Writeback: os metadados são escritos no journal mas não o conteúdo dos arquivos. Essa opção permite um melhor desempenho em relação ao modo journal, porém introduz o risco de escrita fora de ordem onde, por exemplo, arquivos que são apensados durante um crash podem ter adicionados a eles trechos de lixo na próxima montagem. Ordered: é como o writeback, mas força que a escrita do conteúdo dos arquivos seja feita após a marcação de seus metadados como escritos no journal. Esse é considerado um meio-termo aceitável entre confiabilidade e performance, sendo, portanto, o nível padrão. A vantagem de usar ext3 é que melhora a recuperação do sistema de arquivos caso ocorra algum desligamento súbito do computador, por meio da gravação seqüencial dos dados na área de metadados e acesso mhash da sua árvore de diretórios. Embora o seu desempenho (velocidade) seja menos atrativo que o de outros sistemas de arquivos (como ReiserFS e XFS), ele tem a importante vantagem de permitir que seja feita a atualização direta a partir de um sistema com ext2, sem a necessidade de realizar um backup e restaurar posteriormente os dados, bem como o menor consumo de processamento.

Enquanto em alguns contextos a falta de funções de sistemas de arquivos "modernos", como alocação dinâmica de inodes e estruturas de dados em árvore, poderia ser considerada uma desvantagem, em termos de "recuperabilidade" isso dá ao ext3 uma significante vantagem sobre sistemas de arquivos que possuem-nas. Os metadados do sistema de arquivos estão todos em locais fixos e bem conhecidos, e há certa redundância inerente à estrutura de dados, que permite que sistemas ext2 e ext3 sejam recuperáveis no caso de uma corrupção de dados significante, em que sistemas de arquivos em árvore não seriam recuperáveis. 4.1.3. Funcionalidades do Linux EXT3 A estrutura da partição ext3 é semelhante à da ext2, pelo que a migração de um formato para o outro é simples. A adição do journaling é feita em um arquivo chamado.journal que fica oculto pelo código ext3 na partição (desta forma ele não poderá ser apagado, o que comprometeria o funcionamento do sistema). A estrutura idêntica da partição ext3 com a ext2 torna mais fácil a manutenção do sistema, já que todas as ferramentas para recuperação ext2 funcionarão sem problemas, sendo mesmo possível montar uma partição ext3 como se fosse ext2. Como o ext3 visa uma grande compatibilidade com o ext2, muitas das estruturas ondisk são similares àquelas da ext2. Por causa disso, o ext3 não possui muitas das funções mais recentes como alocação dinâmica de inodes e tamanhos de blocos variáveis (fragmentos ou caudas). Os sistemas de arquivos ext3 não podem ser checados enquanto são montados para escrita. Um dump do sistema de arquivos feito enquanto ele está sendo montado para leitura e escrita pode resultar em dados corrompidos dentro do arquivo de dump.

4.1.4. Desfragmentação do Linux EXT3 Não há uma ferramenta online de desfragmentação funcional em nível de sistema de arquivos. Um desfragmentador offline da ext2, e2defrag, existe mas requer que um sistema ext3 seja revertido previamente ao ext2. Mas, dependendo das funcionalidades ativadas no sistema de arquivos, o e2defrag pode destruir dados; ele não sabe lidar com muitas das novas funcionalidades do ext3. 4.1.5. Recuperação no Linux EXT3 Diferentemente do ext2, o ext3 zera os ponteiros de blocos nos inodes de arquivos apagados. Ele faz isso para simplificar o acesso de leitura e escrita quando o journal está sendo utilizado após uma montagem "suja". Isso, no entanto, previne efetivamente que os arquivos sejam recuperados. O único recurso do usuário é fazer um "grep" no disco rígido para buscar por dados que sejam sinalizadores de início/fim de arquivo. Isso provê uma remoção de arquivos um pouco mais segura que em sistemas ext2, o que pode ser tanto uma vantagem quanto uma desvantagem. 4.1.6. Compressão no Linux EXT3 Suporte a compressão transparente de dados (disponível como um patch extra-oficial para ext2) não está disponível no ext3. O ext3 tem um tamanho máximo para arquivos e para o sistema de arquivos inteiro. Esses limites dependem do tamanho de bloco do sistema de arquivos; a tabela abaixo resume esses limites:

Tabela com tamanho de blocos e tamanho de arquivos O tamanho de bloco de 8 KiB está apenas disponível para arquiteturas (como a alpha) que permitem paginação de 8 KiB. 4.1.7. Linux EXT4 Ext4 é a evolução do sistema de arquivos mais usados no Linux, o Ext3. De muitas maneiras, Ext4 é uma profunda melhoria sobre o Ext3, sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi principalmente a adição de Journaling sobre o Ext2, mas Ext4 teve mudanças importantes na estrutura do sistema de arquivos destinado ao armazenamento de dados. O resultado é um sistema de arquivos com um design aperfeiçoado, melhor performance, confiável e com muitos recursos. Um sistema de arquivos Ext3 existente, pode ser migrado para Ext4 com um procedimento fácil, onde consiste a execução de um casal de comandos em modo read-only (descrito na próxima seção). Por meio disto você melhora a performance, limites de armazenamentos e recursos do sistema de arquivos corrente, com ou sem a reformatação e/ou reinstalação do SO e softwares environment. Se você precisa das vantagens do Ext4 em um sistema em produção, você pode atualizar o sistema de arquivos. O processo é seguro é não há riscos para seus dados (obviamente, fazer backup de dados críticos é recomendado,

pois você está atualizando seu sistema de arquivos). O Ext4 vai usar uma nova estrutura de dados somente em novos dados, a estrutura antiga continuará intocada, é será possível para leitura/escrita se for preciso. Desta forma, é claro, assim que uma vez convertido o sistema de arquivos para Ext4, você não vai poder voltar para o Ext3 novamente. 4.1.8. Sistemas de arquivos ou arquivos grandes Atualmente, Ext3 suporta 16TB de tamanho máximo no sistema de arquivos, e 2TB de tamanho máximo de um arquivo. Ext4 adiciona 48-bit endereçados, obtendo assim 1EB de tamanho máximo de sistema de arquivos e 16TB de tamanho máximo de arquivos. 1 EB = 1,048,576 TB (1 EB = 1024 PB, 1 PB = 1024 TB, 1 TB = 1024 GB). 4.1.9. Escalabilidade de subdiretórios Atualmente a possibilidade máxima de número de subdiretórios contendo um único diretório no Ext3 é 32.000. Ext4 quebra esse limite, e possibilita um número ilimitado de subdiretórios. 4.1.10. Extends Os tradicionais sistemas de arquivos derivados do Unix como o Ext3, utilizam um esquema de mapeamento indireto de blocos para manter cada trilho do bloco usado correspondente no dado de um arquivo. Isto é ineficiente para arquivos grandes, especialmente um arquivo grande deletado e/ou operações truncate, porque o mapeamento

mantém uma entrada para muitos blocos únicos, e grandes arquivos tem muitos blocos. Os sistemas de arquivos modernos usam uma abordagem diferente chamada extends. Um extends é basicamente um punhado de blocos físicos continuo. Isto pode ser basicamente definido: Os dados no próximo bloco n. Por exemplo, um arquivo de 100MB pode ser alocado em um único extends deste tamanho, em vez de precisar da criação de um mapeamento indireto para 25600 blocos (4KB por bloco). Arquivos grandes são divididos em diversos extends. Extends melhora a performance e também ajuda a reduzir a fragmentação, uma vez que incentiva o continuo layouts do disco. 4.1.11. Alocação multiblock Quando o EXT3 precisa de nova escrita de dados no disco, há um alocador de blocos que decide quais blocos livres deverá ser usado para a escrita do dado. Mas o alocador de blocos do Ext3 somente alocar um bloco (4KB) em um momento. Esta forma que o sistema precisa para escrever 100MB de dados mencionado anteriormente em outro ponto, será necessário para chamar o alocador de blocos 25600 vezes (isto simplesmente para 100MB!). Não só isto é ineficiente, como também não permite que o bloco de alocação utilize a política de alocação porque ele não sabe como o total de muitos dados deve ter a alocação iniciada, ele apenas conhece sobre um simples bloco. Ext4 usa multiblock allocator (mballoc), no qual, aloca muitos blocos em uma simples chamada, em vez de um simples bloco por chamada, evitando um monte de overhead. Isto melhora a performance, e é especialmente útil com alocação atrasada e extends. Este novo recurso não afeta o formato do disco.

4.1.12. Atraso na alocação Atraso na alocação é um recurso de performance (isto não muda o formato do disco) encontrado em poucos sistemas de arquivos modernos, tais como o XFS, ZFS, btrfs ou Reiser 4, que constitui em um atraso na alocação de blocos tanto quando possível, contrário aos tradicionais sistemas de arquivos (tais como o Ext3, Reiser3, etc) fazem: alocando os blocos com a maior brevidade possível. Por exemplo, em um processo de escrita, o código do sistema de arquivos irá atribuir imediatamente os blocos quando os dados forem coletados mesmo se os dados não estiverem sendo escritos agora para o disco, eles vão ser mantidos em cache durante um tempo. Esta abordagem tem algumas desvantagens.por exemplo, quando um processo esta escrevendo continuamente em um arquivo, crescente, sucessivamente sendo escritos atribuindo blocos para os dados, mas ele não sabe se o arquivo se manterá crescente. Atrasando a alocação, por outro lado, não afetaria os blocos imediatamente quando o processo de escrita, sim, ela atrasa a alocação dos blocos, enquanto o arquivo é mantido em cache, até que ele esteja realmente indo para escrito no disco. Isto da ao bloco de alocação a capacidade de alocar em situações em que sistemas antigos não poderia. Atraso na alocação trabalha muito bem com as duas características anteriormente mencionadas, extents e alocação multiblock, porque, em muitos casos um trabalho em que o arquivo é gravado para o último disco que será atribuído em blocos extends, cuja alocação é feita com o mballoc. O desempenho é muito melhor, e a fragmentação é muito melhorada em alguns workloads. 4.1.13. FSCK rápido Fsck é uma operação muito lenta, especialmente o primeiro passo: checagem de todos os inodes em um sistema de arquivos.

No Ext4, até o fim de cada grupo da tabela de inode estará armazenado uma lista de inodes inutilizados ( com checksum, por segurança), assim o fsck não irá checar estes inodes. O resultado final é que o tempo do fsck melhorou de 2 a 20 vezes, dependendo do número usado de inodes. Deve-se notar que é o fsck, e não o Ext4, que irá montar a lista de inodes inutilizados. Isso significa que você deve executar o fsck para obter a lista de inodes inutilizados construída, e só na próxima execução do fsck será mais rápida. Há também uma característica que ajuda a acelerar o fsck flexible block groups que também acelera as operações em arquivos. 4.1.14. Journal checksumming O Journal é mais utilizado na parte do disco, construindo os blocos mais propensos a falhas de hardware. A recuperação de um journal corrompido pode levar a uma corrupção massiva. Mas journal checksumming tem um bonus: ele permite a conversão e gravação em duas-fases, sendo no Ext3 o journal em única fase, acelerando a operação no sistema de arquivos para mais de 20% em alguns casos assim a reabilitação e a performance são melhoradas ao mesmo tempo. 4.1.15. Recursos relacionados aos inodes Aumento de inodes: Ext3 suporta a configuração de tamanho de inode ( pelo parâmetro -l do mkfs), mas o tamanho padrão de inode é 128 bytes. Ext4 tem como padrão 256 bytes. Isto é necessário para acomodar algumas características extras (como o timestamp em nano segundos ou versonamento de inodes), e o espaço restante do inode será utilizado para

armazenar atributos extends suficientemente pequenos para caber nesse espaço. Isto facilitará o acesso aos atributos com maior agilidade, e melhora no desempenho das aplicações que usem alocação extend por um fator de 3-7 vezes. A reserva de inode consiste em alocar vários inodes quando um diretório é criado, esperando que eles sejam utilizados no futuro. Melhorando a performance, porque quando novos arquivos forem criados neste diretório, eles serão capazes de utilizar os inodes reservados. Portanto a criação de um arquivo, como também a ação de apagar o mesmo, será mais eficiente. timestamps em nano segundos significa que áreas com tempo modificado sejam capazes de usar resoluções em nano segundos em vez de segundo como no Ext3. 4.1.16. Presistência na pré-alocação As aplicações chamam o sistema de arquivos para pré-alocar o espaço, e o sistema de arquivos aloca a quantida necessária de blocos e estrutura de dados, mas não há dados sobre o assunto até que a aplicação realmente precisa para escrever os dados no futuro. Isto é o que faz aplicações P2P quando pré-aloca o espaço necessário para uma transferência que irá durar horas ou dias, mas muito mais eficiente quando implementado por um sistema de arquivos do que por uma API genérica. Isto tem varios usos: em primeiro lugar, para evitar aplicações (como aplicativos P2P) faze-lo propriamente e ineficientemente, mediante o preenchimento de um arquivo com zeros. Segundo, para melhoria da fragmentação, uma vez que os blocos serão alocados em um tempo, e continuamente se possível. Terceiro, para assegurar que os pedidos tenham sempre o mesmo espaço solitado para a necessidade, o que é importante para aplicações RT-ish, pois sem a pré-alocação o sistema de

arquivos poderá ficar cheio no meio de uma operação importante. Este recurso estará disponível via libc posix_fallocate() interface. 4.1.17. ReiserFS ReiserFS usa árvores balanceadas para tornar o processo de busca de arquivos, informações sobre segurança e outros metadados mais eficientes. Para arquivos muito pequenos, seus dados podem ser armazenados próximos aos metadados, então, ambos podem ser recuperados com um pequeno movimento do mecanismo da "cabeça" de leitura do disco. Essa propriedade vai contribuir para um melhor desempenho caso uma aplicação necessite abrir muitos arquivos pequenos rapidamente. No caso de um desligamento incorreto do sistema, o ReiserFS é capaz de recuperar a consistência do sistema de arquivos em pouco tempo e a possibilidade de perda de pastas ou partições é reduzida. Em compensação, os arquivos que eventualmente estiverem sendo gravados no exato momento em que acabou a energia ficarão com seus dados corrompidos, haverá acesso aos arquivos normalmente, mas o conteúdo estará truncado ou incompleto. 4.1.18. Desvantagens do ReiserFS Uma desvantagem do ReiserFS é o seu consumo de CPU muito elevado. Utiliza no mínimo 7 por cento da CPU, chegando a usar até 99 por cento, quando a actividade de disco é elevada. O futuro do ReiserFS é atualmente dado como incerto, em virtude da prisão em 10 de Outubro de 2006 de Hans Reiser, seu criador, e sua condenação em 28 de Abril de 2008 pelo

assassinato de sua mulher no início de Setembro de 2006. Atualmente, devido à paralisação das atividades da Namesys, o projeto ReiserFS está armazenado em kernel.org. 4.2. Gerenciamento de memória Cada processo no Linux possui prioridades com relação à alocação de memória. O Linux também possui uma característica de alocar determinados recursos dos processos que foram executados para garantir que estes retornem de maneira mais eficiente quando estes forem requisitados novamente. Caso a memória física (memória RAM) esteja totalmente carregada, é iniciado um processo de operação com a memória virtual, a memória SWAP. (Silva APUD Lima, 2007). Esse espaço da memória utilizado para armazenar estes recursos é chamado de cache ou ainda prefetch. Se verificarmos os níveis de memória durante a utilização do sistema, veremos que mesmo com poucos programas abertos, a memória vai estar praticamente toda ocupada. Isso ocorre pelo fato de que o Linux está alocando as páginas de memória livre para a alocação desses recursos dos processos que são encerrados. Porém, devido a algoritmos complexos e totalmente eficientes, além da memória SWAP (memória virtual), o sistema pode operar sem lentidões. À medida que mais processos vão sendo executados, e como estes tem preferência de alocação na memória física, o Linux começa a jogar estes recursos alocados para a memória SWAP. Os processos a serem lançados para a memória SWAP geralmente seguem o padrão de latência do processo: os processos não utilizados a mais tempo são lançados para a memória SWAP. Isso libera espaço na memória física, permitindo a alocação de mais processos nessa memória. Essa memória SWAP é uma partição no disco rígido (partição SWAP) dedicada exclusivamente para estes despejos de processos em caso de necessidade de