You are on page 1of 43

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

............................... 9 2 HISTÓRICO ........................................ Sistema de arquivos .......2...................SUMÁRIO 1 INTRODUÇÃO: O QUE É LINUX? ........... 21 4............................................ Compressão no Linux EXT3 ............................................................................................................................... O que são disitribuições ....................... Exemplos de distribuições .....1......................................................................................................................2..............1....................................................1... 18 4..........1................................8.......... 16 4 DETALHES DO SISTEMA OPERACIONAL LINUX ............... 19 4.3........................... Funcionalidades do Linux EXT3 .................................................................................... Endian Firewall ........................ 13 3........................................................................... Desfragmentação do Linux EXT3 ..................2.................................................4.....1.......................................1......................... 14 3................. Antecessores................................................................................................................... 10 2................................ 13 3................. 23 ...................... Android ....2....1..........1... Debian ............ Ubuntu ..... 18 4...................................................................... Linux EXT4 ......... 16 3......................................................................................7. 10 3 DISTRIBUIÇÕES LINUX .......... 21 4.....................6.......................................... 20 4................................1.... 14 3................1..........1................................................ 22 4........................... Recuperação no Linux EXT3 ................................................................................ 13 3................... 23 4..................................... Multics e Unix .......................................................................5...............1............................................................................................2......2.4................5................ Escalabilidade de subdiretórios ..................1..1..........9.. 21 4........ Sistemas de arquivos ou arquivos grandes .......................................................... Linux EXT3 ..............2................................ Linux EXT2 .... 18 4...............................................................

..........................3..................................................................1... 37 4....................................................................................................... Preemptivo .... 36 4.........................4.7...................4....1.......3.............. 25 4................................ 35 4......................13........ 26 4.....................3........................................................................................... 24 4............................................................. Limite de recursos ................1..........10............................17.....................3.............1........................................ 33 4.... Política de escalonamento ...........................................................................................................11... Presistência na pré-alocação ..... O conceito de processo . 29 4......... Os primeiros processos .......... ReiserFS ...........................................15.........................3.......................... Alocação multiblock ............... Desvantagens do ReiserFS .................................................................................................... 34 4........ 25 4................................ Extends .................................. 40 6 CONCLUSÕES.. Estados ........................................................................ Gerenciamento de memória ...... Algoritmo de Escalonamento ..............................1........................................ Recursos relacionados aos inodes............................... Atraso na alocação ....................................................... 28 4.......1........................2....................................... 28 4.................................... 32 4.............1....... FSCK rápido .............................................................................................................1...................................... 39 5..............................................3..3............................................................ 39 5....................................2 Desvantagens ........... 38 5 VANTAGENS E DESVANTAGENS DO LINUX... 42 ................12..... 27 4.......1.....................2.............................. 41 7 BIBLIOGRAFIA ...........................................1 Vantagens ..............................................14...................................................................... 32 4................................3...5. Journal checksumming ...... 23 4...........................................................1. Gerenciamento de processos ......................................................6............................................3...................................18............................................16........................................................................................... 26 4................................................

.

.

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

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

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

A história do Linux ainda se funde a do GNU. mas nunca fechar o seu código. Milhares de pessoas no mundo ajudaram e ainda ajudam a desenvolver o Linux apenas pelo prazer de se criar um sistema cada vez melhor. se tornando uma junção do Kernel (Linux) e demais itens do Sistema (GNU). você pode alterar e até comercializar o programa. Ou seja. 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. Deste modo o sistema acabou se fundindo. mas o termo correto é GNU/Linux. 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). isso faz dele a potência que é nos quesitos estabilidade e segurança. O Linux é apenas um kernel (núcleo do sistema) o GNU é um conjunto de softwares.Richard Stallman . além é claro da pesquisa. que foram até mesmo usados por Linus no desenvolvimento do Linux. Desde o começo o estilo de desenvolvimento foi baseado na ajuda coletiva. de forma colaborativa melhorando o sistema que ele criou. Deste modo o sistema leva usualmente o nome de seu núcleo. Figura 3 . o Linux.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.Mascotes GNU e Linux (Tux) Figura 4 . aonde vários desenvolvedores são coordenados por Linus.

firewall. roteadores de redes. .44MB até distribuições que ocupam 3 DVD´s de 4. aplicativos (ex: navegador Firefox).7GB. existem distribuições capazes de “rodar” a partir de um simples disquete de 1. existem distribuições voltadas para todos os tipos de atividade. bem como o foco da distribuição. bem como fornecendo programas e aplicações para a interação do usuário nas mais diversas aplicações. suas funções. desktop. como citado existem muitas diferenças e peculiaridades entre as elas. peculiaridades e foco principais. Exemplos de distribuições Hoje existem centenas de distribuições voltadas para as mais diversas aplicações. e os programas e aplicativos disponibilizados. Seguem alguns exemplos.2.1. núcleo do sistema (kernel Linux). As distribuições são a junção de todos esses fatores. servidores. 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.3 DISTRIBUIÇÕES LINUX 3. um software que como um todo é capaz de fazer o computador funcionar de forma útil. 3. O que são disitribuições Entende-se como sistema operacional. mobile e etc. O que difere uma distribuição da outra é a versão utilizada do Kernel. programas (ex: Shell). provendo acesso aos dispositivos de hardware disponíveis.

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

Logotipo Damn Small Linux . sem necessidade de instalação. que traz como grande novidade o uso do novo e polêmico gerenciador de janelas Unity. navegador de internet.Logotipo Ubuntu 3. cliente de mensagens instantâneas entre outros aplicativos. a pequena distribuição oferece um desktop pronto e completo.2. que promete um Desktop mais produtivo e bonito em comparação aos demais gerenciadores de janela. Se encontra na versão 4. sendo possível seu uso até mesmo em computadores sem disco rígido).4 (codinome Natty Narwhal). A distribuição tem pouco mais de 50MB o que permite sua gravação até mesmo em CD’s do tipo Business Card. 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.3. basicamente se trata de um Linux live-cd (roda direto do CD. contendo suíte de escritório.4. Damn Small Linux É uma distribuição baseada no Debian.10. que faz parte de um tipo denominado “minidistribuições”. Figura 7 .versão é a 11. Figura 6 . 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.

O crescimento do Android foi exponencial no último ano. dentre outras ferramentas. VPN. Conta com interface Web unificada de acesso e gerenciamento. 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.1. ficando apenas com o gerenciamento do produto e a engenharia de processos. 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. cem milhões de aparelhos Android ativados. quatro bilhões e meio de aplicações instaladas através .3.2. Dispõe de ferramentas comuns e avançadas para firewall e roteamento. filtro de conteúdo. estatísticas e logs.2. O sistema foi desenvolvido inicialmente pela própria Google que posteriormente passou o desenvolvimento para a Open Handset Alliance. Proxy. Figura 8 . como por exemplo NAT. DHCP.Logotipo Endian Firewall 3. atingindo algumas marcas altamente expressivas como: duzentos mil aplicativos desenvolvidos e disponibilizados no Google Market (loja de aplicativos do Android).4. Se encontra atualmente na versão 2.2. Anti-vírus e Anti-Spam para email e Web. O Android é desenvolvido com bibliotecas que permite ao desenvolvedor programar para ele utilizando Java realizando o controle do aparelho por intermédio dessas bibliotecas.5.

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

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

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

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

5.1. ele não sabe lidar com muitas das novas funcionalidades do ext3. Isso provê uma remoção de arquivos um pouco mais segura que em sistemas ext2. existe mas requer que um sistema ext3 seja revertido previamente ao ext2. 4. previne efetivamente que os arquivos sejam recuperados. e2defrag. Recuperação no Linux EXT3 Diferentemente do ext2. Desfragmentação do Linux EXT3 Não há uma ferramenta online de desfragmentação funcional em nível de sistema de arquivos. O ext3 tem um tamanho máximo para arquivos e para o sistema de arquivos inteiro. 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.4. Um desfragmentador offline da ext2. a tabela abaixo resume esses limites: . o e2defrag pode destruir dados.1. 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. dependendo das funcionalidades ativadas no sistema de arquivos.1.6. 4. o que pode ser tanto uma vantagem quanto uma desvantagem.4. Esses limites dependem do tamanho de bloco do sistema de arquivos. Isso. o ext3 zera os ponteiros de blocos nos inodes de arquivos apagados. no entanto. Ele faz isso para simplificar o acesso de leitura e escrita quando o journal está sendo utilizado após uma montagem "suja". Mas.

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

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

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

crescente. sucessivamente sendo escritos atribuindo blocos para os dados. em um processo de escrita. ela atrasa a alocação dos blocos. mas ele não sabe se o arquivo se manterá crescente. 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. porque. Atrasando a alocação.13. sim. ZFS.Por exemplo. contrário aos tradicionais sistemas de arquivos (tais como o Ext3.4. 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. que constitui em um atraso na alocação de blocos tanto quando possível. extents e alocação multiblock. Isto da ao bloco de alocação a capacidade de alocar em situações em que sistemas antigos não poderia. não afetaria os blocos imediatamente quando o processo de escrita. 4.12. enquanto o arquivo é mantido em cache. especialmente o primeiro passo: checagem de todos os inodes em um sistema de arquivos. tais como o XFS. Esta abordagem tem algumas desvantagens. etc) fazem: alocando os blocos com a maior brevidade possível. O desempenho é muito melhor. Por exemplo. quando um processo esta escrevendo continuamente em um arquivo.1. e a fragmentação é muito melhorada em alguns workloads. . Reiser3.1. eles vão ser mantidos em cache durante um tempo. Atraso na alocação trabalha muito bem com as duas características anteriormente mencionadas. por outro lado. até que ele esteja realmente indo para escrito no disco. btrfs ou Reiser 4. 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. FSCK rápido Fsck é uma operação muito lenta.

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

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

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

o Linux começa a jogar estes recursos alocados para a memória SWAP. é iniciado um processo de operação com a memória virtual. o sistema pode operar sem lentidões. além da memória SWAP (memória virtual). a memória SWAP. permitindo a alocação de mais processos nessa memória. À medida que mais processos vão sendo executados. 2007). o projeto ReiserFS está armazenado em kernel.2. (Silva APUD Lima. veremos que mesmo com poucos programas abertos. 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. Isso libera espaço na memória física. Gerenciamento de memória Cada processo no Linux possui prioridades com relação à alocação de memória. a memória vai estar praticamente toda ocupada. 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.org. Esse espaço da memória utilizado para armazenar estes recursos é chamado de cache ou ainda prefetch. 4. 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.assassinato de sua mulher no início de Setembro de 2006. Se verificarmos os níveis de memória durante a utilização do sistema. devido à paralisação das atividades da Namesys. devido a algoritmos complexos e totalmente eficientes. 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 . Caso a memória física (memória RAM) esteja totalmente carregada. Porém. e como estes tem preferência de alocação na memória física. Atualmente.

a memória física é dividida através de um algoritmo chamado buddy-heap. gerenciando memória virtual de acordo com os conjuntos de regiões de memória (o que configura o espaço de . Estes caracterizam-se por caches criados pelo próprio kernel. utilizando somente o espaço necessário. Figura 10 . As páginas de memória virtual são criadas de acordo com a demanda.liberação de espaço na memória física. Este é responsável pela liberação de páginas de memória física e também pela alocação de intervalos de página de acordo com o necessário. o cache de páginas e o sistema de gerenciamento de memória virtual. Em caso da necessidade de alocação de processos menores. A memória virtual no Linux é gerenciada de maneira ligeiramente diferente. Com relação à alocação de páginas. Dessa maneira. Este não utiliza necessariamente os mecanismos tradicionais de alocação de memória. os quais não necessitam ocupar toda uma região de memória. como o cache de buffers. a menor porção de alocação caracteriza-se como uma página de memória. Este algoritmo consegue alocar regiões “parceiras” de memória afim de aumentar a capacidade de armazenar de maneira contínua os processos na memória física. Essa partição é criada automaticamente na instalação das distribuições Linux de maneira geral. o algoritmo pode dividir uma região em duas regiões parceiras. Um outro alocador de memória concentra-se no kernel Linux.Esquema de gerenciamento de memória através do algoritmo buddy-heap.

o qual é responsável por decidir qual página deverá ser transferida para o disco e quando esta página deve ser transferida. Existe ainda a tática de transição de processos entre a memória física e a memória virtual. ou Least Frequently Used. e o sistema de paginação. Esse sistema de paginação é dividido em duas seções: o algoritmo de políticas. com intuito de realizar o menor número possível de trocas de páginas. visão descrita nas tabelas de página do hardware). . na qual é feita uma cópia integral dos espaços de endereçamento virtual e os dois processos compartilham as mesmas páginas de memória física. O Linux decide qual das páginas deve sofrer swapping através de um algoritmo chamado LFU.endereçamento) e conjuntos de páginas (uma visão física de cada espaço de endereçamento. nunca realizando o swapping de processos inteiros. Esse processo é conhecido como swapping. o qual transfere os dados novamente para a memória física quando estes se tornam necessários novamente. Nesse algoritmo. as páginas com menor frequência de utilização são selecionadas para a realização da operação de swapping. no qual o processo recebe um espaço de endereçamento vazio. e quando o processo é criado com chamada ao sistema fork. Os sistemas baseados em UNIX atuais realizam a troca de páginas de processos. O kernel Linux pode criar espaços de endereçamento virtual em duas situações: na execução de um novo programa através de uma chamada ao sistema exec.

onde existem as referências das tabelas de páginas. e outra dinâmica. Cada execução independente do editor de textos constitui um processo. .3. todos os usuários utilizam uma mesma cópia do código do editor de textos. Isto ocorre com um editor de textos. É comum que um mesmo programa seja executado por vários usuários. Esse espaço dedicado é dividido em duas partes: uma estática. de uso próprio do kernel. O conceito de processo é bastante abstrato. Neste caso.Funcionamento básico do swapping O kernel ainda reserva parte da memória virtual para seu uso interno. porém cada execução trabalha sobre uma área de variáveis privativa.Figura 11 . 4.3.1. O conceito de processo Em sistemas operacionais é conveniente diferenciar um programa e a sua execução. ao mesmo tempo. Um processo pode ser definido como "um programa em execução". mas é essencial no estudo de sistemas operacionais. Gerenciamento de processos 4. por exemplo.

mais conhecido como init.). que será o processo número 1.3. 4. separando um espaço bastante curto de tempo para cada um deles. Por outro lado. Quem faz essa escolha no kernel é o escalonador de processos. estado. É algo passivo dentro do sistema. ele é responsável por uma política de tratamento dos processos que permite os melhores resultados possíveis. o processo é um elemento ativo. Os primeiros processos Na fase de inicialização do Linux a função ``start_kernel'' é responsável por criar um thread. Depois de inicializar toda a estrutura de dados para este processo. etc. valores dos registradores da UCP. o primeiro e o ascendente de todos os outros processos. que em grande parte é responsável pela produtividade e eficiência do sistema.2. Para ter sucesso nesta tarefa ele segue uma serie de regras que não desperdiça tempo de hardware com operações desnecessárias e consegue escolher qual processo deve ser executado naquele exato momento. este é o processo de número zero. Como qualquer outro sistema de compartilhamento de tempo o Linux consegue dar a impressão de execução simultânea dos processos. Ele altera o seu estado. Mais do que um simples mecanismo de divisão de tempo. esta mesma função é responsável por chamar a função ``init'' que por sua vez utiliza a chamada de sistema ``execve'' para rodar o executável init. Um programa não altera o seu próprio estado.Um programa é uma seqüência de instruções. Para cada processo o sistema operacional mantém um registro descritor. à medida que executa um programa. . que é um pequeno bloco de memória que mantém informações sobre o processo (número único.

É importante para os processos que necessitam executar determinada tarefa sem ser interrompido. tem uma vida mais ou menos produtiva. Seus filhos. na estrutura que armazena os dados de cada processo temos um array de possíveis estados onde apenas uma das opções abaixo estará ativa.Podemos chamar de Deus e pai de todos os outros processos. assim que surge a necessidade deles são carregados.3. vivem como nós seres humanos. Outros são criados sob demanda. se desenvolvem. TASK_INTERRUPTIBLE O processo está suspenso até que determinada condição se torne verdadeira. 4. é o segundo processo a ser criado e um dos últimos a morrer. eles nascem. podem ter inúmeros filhos em poucos segundos e eventualmente morrem. exceto pelo fato de que o seu estado não será modificado quando receber um sinal.3. Estados Uma das coisas que o escalonador precisa ter ciência é em qual estado está cada processo. Existem alguns outros processos que também são criados pelo kernel durante a fase de inicialização e destruídos assim que o sistema desliga. TASK_UNINTERRUPTIBLE Como o estado anterior. TASK_RUNNING Em execução ou aguardando para ser executado. TASK_ZOMBIE . TASK_STOPPED Execução do processo foi parada.

Este valor é utilizando para limitar o tamanho desse arquivo. RLIMIT_CPU O tempo máximo em segundos que um processo pode ser executado. as informações não são descartadas pois ainda podem ser utilizadas. mas o processo pai ainda não executou uma chamada de sistema para retornar informações sobre o processo morto . RLIMIT_CORE Quando um processo é abortado. 4.``wait''. Caso esse limite seja ultrapassado o kernel envia um sinal SIGXCPU para tentar pacificamente finalizar sua execução.4. Isso é uma proteção para que caso o usuário faça algo errado.O processo está terminado. não prejudique a estabilidade do sistema. o kernel pode gerar um arquivo core contendo as informações desse aborto. RLIMIT_DATA O tamanho máximo do heap ou memória de dados em bytes. RLIMIT_FSIZE . o arquivo não é criado. O kernel checa esse valor quando um processo utiliza a chamada de sistema ``malloc'' ou similar. Caso o valor seja zero O.3. O kernel checa esse valor antes de expandir o heap de um processo. quanto de recursos do sistema ele pode utilizar. Isto é. Limite de recursos Por padrão o Linux limita os recursos que cada processo pode ter. se isso não acontecer ele envia um SIGKILL e mata o processo. Esses limites são: RLIMIT_AS O tamanho máximo que um processo pode ter em bytes.

Caso exista. RLIMIT_MEMLOCK O tamanho máximo em bytes de memória que não permite swap. Se o processo tentar aumentar o tamanho de um arquivo que ultrapasse esse valor. O kernel checa este valor antes de expandi-la. RLIMIT_NPROC O número máximo de processos que um usuário pode ter. isso significa que quando um processo entra no estado TASK_RUNNING o kernel vai checar se existe alguma prioridade maior do que o processo corrente. o kernel envia um SIGXFSZ. . O kernel checa esse valor toda vez são utilizadas as chamadas de sistema ``mlock'' ou ``mlockall''.5. RLIMIT_STACK O tamanho máximo em bytes da stack. Preemptivo Os processos do Linux são preemptivos. Toda fez que o usuário tenta dar lock em um arquivo o kernel checa esse valor.3. 4.O tamanho máximo em bytes permitido para um arquivo. RLIMIT_LOCKS O número máximo de arquivos que um processo pode dar lock. o processo corrente é interrompido e o que tem prioridade maior começa a rodar. RLIMIT_RSS A quantidade máxima de memória física que um processo pode ter. Toda vez que um descritor for aberto ou duplicado o kernel checa este valor. RLIMIT_NOFILE O número máximo de descritores de arquivos abertos.

O primeiro faz uso extenso dos recursos de entrada e saída. isso acontece tão rápido que torna-se imperceptível. quando dizemos que um processo foi suspenso. 4. mesmo assim ele ainda é suspenso diversas vezes para que o compilador possa rodar também. Neste caso. o escalonador se mantém informado sobre o que os processos estão fazendo e assim torna-se possível ajustar a prioridade. tem sua prioridade incrementada automaticamente. O usuário digita algumas palavras e imediatamente após cada tecla digitada o kernel suspende a execução do compilador para poder processar o Emacs e assim o texto digitado aparecer na tela.6.Imagine a seguinte situação onde o usuário utiliza apenas dois processos. Uma classificação alternativa define três classes de processos: . Dessa maneira os processos que ficaram proibidos de utilizar o CPU por um longo intervalo de tempo. então o Emacs é suspenso novamente para que o gcc possa voltar a executar.3. Política de escalonamento A prioridade de um processo no Linux está em constante alteração. O editor de textos Emacs para escrever o seu programa e ao mesmo tempo o gcc para compilar a versão mais recente do programa Pogobol Light. Por ser um programa interativo o editor de textos tem uma prioridade maior do que o compilador. porém não mais utilizando o CPU. Quando tocamos no assunto escalonamento é importante notar que os processos são classificados como da Forma E/S e Forma CPU. isso significa que grande parte do seu tempo é utilizado no aguardo da conclusão das operações de Entrada e Saída. contrariamente os processos que passaram um longo período dentro do CPU são penalizados tendo sua prioridade decrementada. significa que ele continua com o estado TASK_RUNNING. já o segundo são processos que necessitam de um longo tempo dentro do CPU.

Quando o tempo de execução de um processo termina ele é retirado do . Geralmente processos diferentes tem tempos de execução diferentes. controladores de robôs e equipamentos que envolvem a segurança humana. Um bom tempo de resposta é em torno de 50 e 150 ms. Como são processos de baixa prioridade. são freqüentemente penalizados pelo escalonador. Processos Interativos Os processos que estão em constante interação com o usuário. Alguns aplicativos que fazem uso do tempo real são som. sendo assim eles perdem grande parte do tempo esperando uma atividade do usuário. vídeo. como um clique do mouse ou o aperto de uma tecla.3. Programas de processamento em lote comuns são editores de texto.  Processos em Lote Não necessitam de nenhuma interação do usuário e por isso muitas vezes rodam em background.  Processos em Tempo Real Esses processos nunca devem ser bloqueados por processos de baixa prioridade.7. Algoritmo de Escalonamento O algoritmo de escalonamento do Linux funciona dividindo o tempo do CPU em fatias. Quando qualquer dessas ações for recebida o sistema precisa responder de forma ágil suspendendo qualquer processo que estiver rodando e colocar o processo interativo no CPU para processar a requisição solicitada pelo usuário. Em uma única fatia cada processo tem um tempo especifico de duração que é computada assim que essa fatia inicia. caso contrário ele pode pensar que o sistema não está respondendo. 4. precisam de um tempo de resposta super rápido e com uma variação bastante baixa. compiladores e programas gráficos.

os valores variam de 1 até 99 que nunca são modificados pelo escalonador. Para o Linux escolher qual processo deve rodar ele precisar escolher qual tem a prioridade maior. podem apresentar um pequeno custo por causa da licença. assim o escalonador é responsável por calcular o tempo de execução para todos os processos e uma nova fatia inicia. como aquelas dedicadas exclusivamente a servidores.  Prioridade Dinâmica Esta é aplicada para os processos convencionais. disponibilizam em seus sites oficiais links de download das imagens dos CDs de instalação ou até mesmo disponibilizam um formulário onde você pode solicitar a entrega de mídias de instalação através do correio. mas esse custo ainda é muito menor do que licenças de outros sistemas operacionais. Ainda há o . as distribuições Linux podem ser encontradas até gratuitamente. como o Ubuntu.CPU e outro processo que está rodando é colocado no seu lugar. existem dois tipos de prioridade:  Prioridade Estática Definido pelo usuário para processos que necessitam de tempo real. Versões mais “elaboradas”.1 Vantagens  Custos muito baixos ou até nulos Por serem baseadas em software livre. A prioridade dinâmica dos processos convencionais é sempre inferior aos processos com prioridade estática. Se existir um processo com prioridade estática no estado TASK_RUNNING nenhum processo dinâmico irá rodar até que ele pare de executar. como os sistemas da família Windows. Algumas distribuições. 5 VANTAGENS E DESVANTAGENS DO LINUX 5. Uma fatia termina quando todos os processos esgotaram seu tempo reservado de execução.

além de que códigos que modifiquem qualquer parte do sistema sempre são interceptados com a autenticação obrigatória o superusuário (root). listas de discussão e outros meios através da internet.  Maior estabilidade e segurança Os sistemas Linux são mais estáveis. meios de fácil acesso. os usuários podem modificar o código-fonte do sistema para atender alguma necessidade específica.  Comunidade extensa e ativa A comunidade Linux é muito ativa. Isso garante suporte quando necessário. Existem alternativas para estes casos. por ser software livre.2 Desvantagens  Incompatibilidade com alguns equipamentos Alguns fabricantes de equipamentos não escrevem drivers para o sistema Linux para seus equipamentos. como é o caso de algumas impressoras da HP. pois o número de pragas virtuais para sistemas Linux ainda é muito reduzido.fato de que. Isso permite que até máquinas mais antigas possam rodar versões mais novas das distribuições. . 5. Esse recurso inclusive começou a ser incorporado de maneira similar a partir do Windows Vista na família Windows. recompilar tudo e distribuir normalmente. Manifesta-se através de fóruns. pois conseguem gerenciar de maneira mais eficiente os recursos de hardware. Além disso. são mais seguros. porém geralmente são tortuosas de serem implementadas e podem desencorajar os usuários a utilizarem as distribuições Linux. Você pode obter auxílio para problemas bem básicos como para problemas mais complexos. inclusive em português. através do Controle de Conta de Usuário.

o Linux não consegue oferecer a mesma facilidade de uso que o Windows. não são executados com toda a fidelidade. 6 CONCLUSÕES Concluímos que desde o manifesto inicial feito por Linus Torvalds até hoje. mas o fato é que se você entregar um computador com Linux pra alguém que trabalha com Windows. Suas funcionalidades plug and play. Muitas coisas ainda são mais fáceis de serem executadas via terminal. como é o caso do formato de vídeo WMV. drivers compativeis e aplicativos cresceram de tal forma que pouquíssima coisa é incompatível ou não funciona bem no Linux. Incompatibilidade com alguns formatos de arquivos Alguns formatos de arquivos. principalmente os proprietários da Microsoft. o que não acontece geralmente ao contrário. porém as pessoas geralmente “temem” aquela tela preta com um monte de comandos em branco.  O Linux ainda peca na facilidade de uso Mesmo com o esforço de algumas distribuições como o Ubuntu. Oracle e outras que fomentaram seu desenvolvimento e hoje. Sun. Existem plugins para executá-los. ao contrario do que muitos apostavam por se tratar de um software livre. o Linux tem evoluído com muita velocidade e profissionalismo. Isso talvez se deva mais a um fator cultural. mas estes não acabam oferecendo a mesma qualidade que se o arquivo estivesse sendo executado no Windows Media Player. otimizada e funcional tanto para desktops quanto para servidores. é uma plataforma atualizada. este certamente sentirá um pouco de dificuldade. Linux de fato . Suas diversas distribuições tiveram investimentos pesados oriundos de empresas como Siemens.

D.pdf>. Acessado em 19 e 20 de maio de 2011. São José dos Campos. Com o advento da computação nas núvens. Linux: vantagens e desvantagens do sistema.unicamp. J. Disponível em < http://www. Martins. Acessado em 18 de maio de 2011.. a discussão e o uso do Linux ganha novo folego e talvez... Disponível em < http://www.dca. Gerenciamento de memória no Linux. L.org. A. Luvizotto. . H.wikipedia.com/informatica/historia-do-linux. 2007.com/gerenciamento-de-memoria:jose-gerardo-e-diego-alvarez>. Acesso em 20 de maio de 2011. Sistemas Linux. Alvarez.org/wiki/Linux>. UOL Tecnologia. Brasil Escola...brasilescola. Santos.kernel.br/~andreric/arquivos/sistemas_linux. assumir a primeira posição no mercado 7 BIBLIOGRAFIA Gonçalves. Londrina. Disponível em <http://tecnologia.fee. História do Linux. D. Kernel. The Linux Kernel Archives.br/especiais/ultnot/2005/08/18/ult2888u81.wikidot. Disponível em <http://ces33. Júnior. Disponível em <http://en. Wikipédia. Disponível eletronicamente em <http://www. Instituto Tecnológico da Aeronáutica (ITA).jhtm>.com. Linux. Nascimento. L. a compatibilidade e independencia necessária para talvez.htm>.org/>. Acessado em 19 de maio de 2011. Universidade Estadual de Londrina. Acessado em 19 de maio de 2011. Acessado em 18 de maio de 2011.uol.veio para ficar e sua difusão está cada vez mais forte devido principalmente os órgãos governamentais que optaram por utilizá-lo como forma de fugir do monopólio Microsoft.

Damn Small Linux.org. Acessado em 19 de maio de 2011.endian. Disponível em < http://www.org.damnsmalllinux. Disponível em < http://www.org/>. Acessado em 19 de maio de 2011. Kernelnewbies.Endian. Disponível em < http://www. Acessado em 19 de maio de 2011. Damnsmalllinux. Endian.org>. .com/us/>. 4Security. Acessado em 19 de maio de 2011.com.br/>. Disponível em <http://kernelnewbies. 4Security.com. EXT4.4security.