Revista Do Linux
EDIÇÃO DO MÊS
 CD do Mês
 Jogos
 Kernel

 Entrevista
 Capa
 Tutorial
 Debian
 Programação
 Portáteis
 Segurança

 

Viagem ao coração do Linux
O Linux está passando por uma etapa importante da sua evolução: o lançamento da sua versão 2.4. O significado deste fato pode parecer obscuro para usuários que não acompanham a evolução do Linux há algum tempo, mas ao longo deste artigo teremos oportunidade de esclarecer o que significa essa nova versão, a que se referem esses números, e por que eles são tão importantes. Usuários mais experientes encontrarão também informações sobre o que a nova versão trará de diferente, e provavelmente irão achar interessantes alguns aspectos históricos sobre a evolução do Linux que serão apresentados - portanto, resista à tentação de pular a introdução e continue lendo - vale a pena

Tudo o que você sempre quis saber sobre o kernel do Linux e não tinha a quem perguntar

Em primeiro lugar, precisamos estabelecer a que se refere este número de versão. Pode parecer estranho, principalmente se você confundir com os números das versões das distribuições de Linux: uma versão 2.4 não parece muita coisa quando comparada com o número 7.0 da versão do SuSE e do Red Hat Linux, ou com o 5.0 da Conectiva, certo? Entretanto esta comparação é enganosa, como veremos a seguir.

As distribuições de Linux como as citadas acima, comerciais ou não, na verdade são agregados de muitos softwares diferentes, capazes de compor um conjunto utilizável. Esses softwares em geral incluem componentes facilmente visíveis do ponto de vista do usuário, como o ambiente gráfico KDE, a shell bash, o servidor Web Apache, o navegador Netscape e muito mais. Entre todos esses pacotes mais perceptíveis, às vezes passa despercebido o software que é na realidade a essência do Linux: o kernel! O kernel é o núcleo de um sistema operacional, responsável basicamente por atuar como intermediário entre os aplicativos e o hardware de seu computador. Entre suas tarefas mais cruciais podemos citar: gerenciar a memória para todos os programas em execução, garantir que todos os processos recebam sua parcela de tempo da CPU e ainda fornecer a todos os programas os métodos necessários para que possam acessar o hardware (ou seja: ler o teclado, atualizar o vídeo, enviar texto para a impressora, etc.) de maneira homogênea, controlada e transparente.

De modo geral, podemos dizer que o nome Linux refere-se especificamente ao kernel. Quando alguém reúne o kernel a um conjunto de softwares aplicativos (e outros componentes, é claro) e monta uma distribuição de Linux passamos a ter múltiplos números de versões: a versão do Linux em si e a versão da distribuição. Complicado? Vamos a um exemplo prático: este texto está sendo escrito em um computador com o SuSE Linux 7.0 - este é o número da versão da distribuição. Para saber o número da versão do kernel em execução basta emitir o comando uname -r, assim:


# uname -r
2.2.16

Portanto, seria correto dizer que este computador roda o Linux 2.2.16, obtido na distribuição SuSE 7.0. Estamos entendidos até aqui?

Espero que sim, pois o tema ainda vai ficar um pouco mais complexo logo a seguir.

Ocorre que o kernel do Linux, que é mantido por voluntários do mundo inteiro coordenados por Linus Torvalds (um finlandês de 30 anos) desde 1991 (veja quadro) é mantido sempre em duas seqüências de desenvolvimento separadas: a versão de produção e a de desenvolvimento. É muito fácil distinguir uma da outra a partir dos seus números. Os números de versão do Linux sempre seguem o padrão maior.menor.release: por exemplo, para o kernel 2.3.11 o número maior é 2, o menor é 3 e o release é 11. As versões com número menor ímpar sempre são de desenvolvimento, e as de número menor par são de produção - assim, a versão 2.2.16 é de produção, mas a 2.3.16 é de desenvolvimento.

A grande diferença entre uma e outra é a estabilidade: os programadores que incluem novas características no Linux sempre o fazem nas versões de desenvolvimento, e as alterações são movidas para a série de produção quando se verifica que elas funcionam adequadamente em todas as configurações - ou ficam apenas na série de desenvolvimento até que ela atinja um nível de maturidade suficiente para ser "promovida" a um número par (como veremos mais adiante), tornando-se assim a nova série de produção, e gerando a necessidade de criar uma nova série de desenvolvimento. A vantagem é que usuários finais podem usar tranqüilamente os kernels da série de produção sabendo que todas as suas características foram adequadamente testadas, e os desenvolvedores ficam livres para testar todas as suas idéias, ainda que elas possam estar longe do nível de estabilidade necessário para máquinas de produção, na série de desenvolvimento. É interessante notar que embora às vezes tenhamos mais de uma alteração do número do release na mesma semana, dificilmente veremos mais do que uma alteração do número menor no mesmo ano. Quanto ao número maior... bem, desde 1991 ele mudou apenas duas vezes.

Linux 2.4

Como vimos anteriormente, a mudança para a série 2.4 é uma mudança do número menor da versão, algo que não ocorre com freqüência e em geral significa a liberação de muitos novos recursos e características para a série de produção, ou seja, para os usuários finais. Claro que qualquer usuário que deseje usar o kernel da série de desenvolvimento corrente pode ter tido acesso a essas mesmas características com vários meses de antecedência, mas o fato de a versão mudar para um número par significa que a partir deste momento os desenvolvedores confiam na estabilidade do código a ponto de liberarem o uso para usuários não-técnicos.

Assim, o processo que ocorre é relativamente simples (embora forme uma verdadeira sopa de números), se considerado em nível macro: no momento em que esta matéria está sendo escrita, a série oficial de produção é a 2.2.x, incluída como padrão em todas as distribuições comerciais. Simultaneamente, os programadores coordenados por Linus Torvalds trabalham ativamente na série de desenvolvimento, numerada como 2.3.x, que no momento já está em fase pré-2.4. Isto significa que os desenvolvedores do kernel estão concentrados, preocupados em resolver todos os possíveis problemas existentes no código da série 2.3.x, para que ela possa em breve ser renumerada como 2.4.x, gerando assim o início de uma nova série de produção e criando a necessidade do surgimento de uma nova série de desenvolvimento (provavelmente 2.5.x) para que o ciclo possa recomeçar.

Assim, poderíamos dizer que o kernel 2.4.x nada mais é do que uma continuação da série 2.3.x, acrescida de um selo de garantia de estabilidade, além das bênçãos de Linus Torvalds. Mas ele significa muito mais que isso; veja algumas das mudanças que um novo kernel provoca:

  • Todas as distribuições comerciais devem lançar novas versões incluindo o novo kernel (embora algumas das versões de distribuições disponíveis, enquanto eu escrevo esta matéria, já incluam versões opcionais do kernel 2.3.x, e estejam, ao menos em tese, prontas para receber o novo kernel).
  • Provavelmente muitos pequenos bugs serão encontrados nos primeiros releases do kernel 2.4.x, já que a quantidade de usuários (e de configurações) diferentes aumentará muito em relação à quantidade disposta a fazer testes com a série 2.3.x.
  • Toda a imprensa especializada em informática se empenhará em lançar novos comparativos do desempenho e características do Linux 2.4 em relação aos demais sistemas operacionais.
  • Muitos usuários irão ler a documentação do novo kernel e fazer um upgrade manual bem-sucedido.
  • Muitos usuários acharão que são capazes de fazer o upgrade manual sem ler nenhuma documentação, e lotarão todas as listas e fóruns de Linux perguntando por que sua conexão ppp ou sua configuração de firewall subitamente deixaram de funcionar (dica: alguns dos softwares que dão suporte para funções do kernel, como o pppd, poderão precisar de upgrade para funcionar com a nova versão).
  • Outros usuários aguardarão ansiosamente por pacotes pré-compilados para suas distribuições específicas. Como se vê, novas versões do kernel provocam um tipo todo especial de agitação em toda a comunidade Linux, algo que os entusiastas aguardam com ansiedade - e por mais que todos digam que estão interessados nas novas características e recursos da versão que está chegando, acredite: ver o primeiro boot de um sistema rodando uma nova versão do kernel causa sensações capazes de gerar dependência psicológica ;-)

As novidades do kernel 2.4

Claro que as novidades do kernel 2.4 são importantes a ponto de justificar todo este entusiasmo. Veremos a seguir as principais novas características que estarão disponíveis, agrupadas em categorias. O foco será a arquitetura i386 (PCs), e evitaremos chegar a um nível de detalhe técnico que comprometa o entendimento por parte dos leitores. Se você quiser entender a fundo cada um dos novos recursos, veja o documento Wonderful World of Linux 2.4, no quadro "Para saber mais" - de fato, não poderíamos ter elaborado toda esta lista de novidades sem a ajuda deste texto de Joseph Pranevich, que já se tornou uma espécie de cronista semi-oficial das novas versões de Linux.

Embora estejamos focando aqui apenas a arquitetura i386, é importante lembrar que o Linux aceita outros tipos de hardware, como o PowerPC, MIPS e Alpha. Inclusive a versão 2.4 acrescenta o suporte "oficial" para um novo conjunto de arquiteturas: os mainframes S/390 da IBM (sim, Linux rodando em mainframes, com o kernel "oficial"!), ia64 (também conhecido como Itanium, os chips de 64 bits sucessores do Pentium) e SuperH (CPU para sistemas embarcados, como PDAs e videogames). Também foi adicionado o suporte para máquinas Origin 200 e Origin 2000 da SGI. Que tal um sistema operacional cujo kernel está apto a rodar tanto em um computador de mão quanto em um mainframe? Este é o Linux 2.4!

Claro que a maior parte dos leitores deste artigo utilizam hardware tipo i386 - computadores PC baseados em 386, 486, Pentium (e seus sucessores) e chips semelhantes, como os da AMD e Cyrix. O Linux 2.4 aceita todos eles, inclusive com otimizações de desempenho em relação ao 2.2, principalmente nos Pentiums III. Espere um ganho sensível: Linus Torvalds recentemente afirmou em uma entrevista que chega a ser doloroso para ele ter de voltar a usar o kernel 2.2.

Discos e sistemas de arquivos

O Linux 2.4 traz novidades em todos os drivers de dispositivos de bloco (o que inclui os discos do seu computador); além de ter uma parte de todos os drivers reescrita para aceitar um novo sistema de buffer unificado (unificação entre o buffer e o page cache), foram acrescentadas algumas novidades que são do interesse principalmente dos sistemas mais avançados: por exemplo, o número máximo de interfaces IDE aceitas subiu de quatro para dez, e agora há suporte para controladoras de disco IDE PCI e Plug’n’Play.

As mudanças no suporte para interfaces SCSI não se traduziram em novas características. Há suporte para algumas novas controladoras, e parte dos drivers foi reescrita internamente, sem alterações na interface.

Usuários de sistemas Unix comerciais de grande porte irão perceber a importância do suporte para raw devices, introduzido nesta versão. O raw device é um mecanismo que permite a um aplicativo avançado acessar os discos de maneira direta, sem que o sistema operacional ofereça a interface padrão de um sistema de arquivos. Outra mudança que irá soar familiar a estes mesmos usuários é a inclusão do gerenciador lógico de volumes, ou LVM. O LVM é um mecanismo que dá suporte a um tratamento mais flexível e completo dos volumes gerenciados pelo sistema operacional, permitindo por exemplo que os sistemas de arquivos sejam expandidos, encolhidos, e até que se estendam a mais de uma partição ou disco.

Naturalmente, o uso mais comum de todos os sistemas expostos acima é a criação de sistemas de arquivo, e nesta área o Linux continua apresentando sua flexibilidade de sempre: além de aceitar o seu sistema padrão, o ext2, oferece ainda suporte para os sistemas FAT, FAT32 e VFAT (do mundo DOS/Windows), HFS (do Mac), NTFS (do Windows NT) e muitos outros. Todos os sistemas de arquivo preexistentes foram alterados para aceitar o novo sistema de buffer unificado, o que se reflete positivamente no desempenho.

As novidades no suporte de sistemas de arquivos são interessantes para alguns grupos específicos de usuários. Quem mantém partições ou discos de OS/2 em seu computador poderá finalmente usar o Linux para gravar nelas; os usuários de NT com NTFS continuam tendo apenas suporte para leitura. Foi acrescentado também o suporte para os sistemas UDF (usado em DVDs) e EFS (de versões antigas do IRIX).

Embora ainda não haja um suporte "oficial" para um journaling filesystem no Linux 2.4 até o momento, começam a surgir versões alternativas, lançadas pelos distribuidores comerciais (como a alemã SuSE e a brasileira Conectiva) com suporte para esse tipo de sistema de arquivo (principalmente o ReiserFS) comum nos sistemas Unix comerciais e capaz de oferecer, entre outras vantagens, recuperação rápida após desligamentos não planejados do sistema (um recurso necessário em sistemas críticos).

Por outro lado, outro componente de sistemas de alta disponibilidade e com tolerância a falhas foi bastante melhorado para a versão 2.4: o suporte para RAID. RAID é a tecnologia em que múltiplos discos fornecem armazenamento redundante, para resistir a falhas em qualquer um dos discos do sistema ou para permitir maior desempenho no acesso de leitura. O sistema de RAID foi reescrito para a versão 2.4, visando maior performance tanto em máquinas de um único processador quanto em sistemas SMP.

Rede

Uma das aplicações mais típicas do Linux é no suporte para todo tipo de protocolo de rede, e é natural que uma nova versão do kernel traga muitas novidades para esse tipo de aplicação.

Possivelmente a mais importante delas é a técnica conhecida como ‘wake one’, que permite quando houver diversos processos aguardando para atender conexões em um dado serviço, que apenas um deles seja ativado no momento em que esta conexão estiver disponível. Essa técnica permite um ganho de desempenho considerável, e é uma grande evolução em relação ao modelo atual, em que todos os processos são acordados e "disputam" pelo recurso.

Além disso, todo o suporte para o protocolo IPv4 foi reescrito tendo em vista, entre outros objetivos, a otimização e estabilidade para máquinas com mais de um processador, permitindo assim que o Linux se estabeleça de maneira mais competitiva nos servidores de rede de maior porte.

O código dedicado à construção de firewalls e NAT (masquerading) também foi reescrito, tornando-se mais genérico e apto a realizar tarefas de roteamento antes disponíveis apenas em roteadores dedicados.

Se você usa um sistema doméstico com conexão discada, também há novidades. O protocolo PPP foi reescrito unindo o código de ISDN à versão da porta serial. O suporte para PPPoE (PPP sobre Ethernet, usado por alguns provedores de serviço DSL) também foi integrado ao kernel.

O código do NFS (sistemas de arquivos Unix exportados através da rede) foi reescrito para ser mais robusto e confiável - agora você poderá acessar servidores NFSv3. O kernel 2.4 também inclui o khttpd, servidor web de alta performance (pois roda com privilégios especiais do próprio kernel, ao contrário de servidores que rodam como processos do usuário). O khttpd pode servir apenas conteúdo estático - nada de CGI, PHP e outras técnicas de produção de conteúdo dinâmico; entretanto, ele pode passar as requisições de conteúdo dinâmico a um servidor externo (como o Apache). Com o khttpd possivelmente as comparações de desempenho entre servidores Web sofram um grande abalo favorável ao Linux - vamos aguardar os próximos benchmarks.

Plug’n’Play, PCMCIA e USB

O Linux 2.2 já aceitava todos os modelos de bus típicos da arquitetura PC: ISA, EISA, VESA Local Bus, PCI e MCA. Entretanto, sempre há espaço para progredir, e na versão 2.4 o Linux irá oferecer suporte no kernel para dispositivos Plug’n’Play. Você está correto: já existia suporte para dispositivos Plug’n’Play no Linux há muito tempo. Entretanto, esse suporte não era dado pelo kernel, e sim por utilitários externos, dependentes de uma certa dose de configuração manual e esforço para funcionarem.

Com o suporte no próprio kernel, espera-se não apenas que a configuração de dispositivos ISA PNP (como placas de som e modems) fique mais transparente, como também se possa realizar operações antes impensáveis, como dar o boot do sistema a partir de uma controladora de discos ISA PNP.

De maneira similar, o suporte para dispositivos PC Card (conhecidos como PCMCIA), que já existia na forma de aplicativos externos, também será incluído no kernel - embora ainda dependa em grande parte de utilitários externos para fazer seu serviço.

Os dispositivos USB também ganham suporte interno no novo kernel - o código foi reescrito e agora é bem mais estável do que nas versões anteriores. Embora haja uma variedade cada vez maior de periféricos (mouse, teclado, scanner, impressora, som...) utilizando a interface USB, o Linux ainda não oferecerá suporte direto a todos eles. Entretanto, a maior parte dos modelos de mouse e teclado USB já terão suporte nativo.

DevFS e o suporte de dispositivos

O DevFS é uma mudança bastante controvertida e que ainda consta como opcional no novo kernel. Seus efeitos vão ser sentidos de várias maneiras, mas a mais óbvia será a mudança do nome dos dispositivos: nomes familiares para muitos usuários experientes, como o "/dev/hda" (usado para se referir ao primeiro disco rígido IDE) irão se transformar completamente, por exemplo, para "/dev/ide0/..."

A alteração deverá ser sentida muito mais pelos desenvolvedores e usuários avançados, e tem efeitos muito positivos - um deles é permitir que tenhamos mais do que 26 unidades de disco em uso. No modelo tradicional, o que viria após o /dev/hdz?

No modelo do DevFS os arquivos de dispositivos não ficam permanentemente alocados no diretório /dev - eles vão sendo alocados dinamicamente conforme os drivers são carregados pelo kernel. Possíveis problemas de compatibilidade com aplicativos que esperam encontrar os arquivos de dispositivos sempre alocados poderão ser resolvidos por um programa chamado devfsd.

Gerenciamento de memória

O sistema de gerenciamento de memória teve mudanças arquitetônicas. Com isso, ele está mais inteligente ao selecionar quais páginas do cache devem ser eliminadas para dar lugar às novas páginas, em caso de falta de memória. Com essa modificação há uma melhor utilização da memória.

O sistema fica mais interativo, principalmente em sistemas com grande intensidade de E/S (entrada/saída), como bancos de dados, etc.

Conclusão

É interessante perceber que o que começou como o projeto pessoal de um estudante finlandês que não queria rodar DOS em seu 386 em 1991, hoje é um sistema operacional completo, dando suporte a todo tipo de aplicações em arquiteturas que variam desde modestos palmtops até os enormes mainframes - sem abandonar os 386 e seus sucessores.

As novas versões do kernel sempre trazem consigo uma série de novas características, vantagens e dúvidas, além das horas e horas dedicadas a fazer downloads, compilações, experiências, leitura de documentação e testes. É uma oportunidade de ouro para compreender como funciona o seu sistema operacional e até mesmo para passar a usar funcionalidades que antes não estavam disponíveis.

Lembre-se apenas de tomar cuidado ao fazer experiências em máquinas de produção, já que a mudança de versão do kernel pode levar a complicações inesperadas, e nem sempre dará certo logo na primeira tentativa - além de ser uma das poucas ocasiões em que o Linux exige um boot para ativar uma nova configuração ;-)

Dois conselhos extras: leia toda a documentação disponível antes de começar, e evite fazer mudanças que você não possa desfazer com facilidade - grave cópias dos arquivos de configuração antes de alterá-los, mantenha um kernel antigo na configuração do lilo, e outras providências semelhantes. Note também que embora você não precise fazer upgrade do sistema inteiro para atualizar o kernel, alguns utilitários precisam de novas versões. A documentação do kernel é sempre bastante clara quanto a isso, e a leitura prévia pode poupar muitas dificuldades - já imaginou descobrir tarde demais que você precisava ter instalado uma versão nova do pppd? Você não conseguirá mais conectar à Internet para obtê-la...

Mesmo que você prefira não tentar compilar o seu próprio kernel, brevemente você poderá utilizar o Linux 2.4 que virá incluído nas próximas versões das distribuições comerciais. Explore ao máximo as opções disponíveis - existem muitas além das que foram citadas neste artigo. Conte com os meios tradicionais de suporte da comunidade Linux (listas de discussão, fóruns, sites, a sua Revista do Linux) para tirar as dúvidas, e boas instalações!


Para saber mais

www.cs.buffalo.edu/~thies/Linux/Time_Line.html - uma linha do tempo com os principais fatos da história do Linux (não apenas do kernel).

linuxtoday.com/news_story.html?ltsn=2000-07-17-014-04-NW-LF-KN- "Wonderful World of Linux 2.4" - discussão detalhada das características da nova versão do kernel.

ftp://ftp.br.kernel.org/ - mirror nacional para downloads dos fontes do kernel.

www.kernelnotes.org/ - informações sobre o desenvolvimento do kernel.

kt.linuxcare.com/kernel-traffic/index.epl - Kernel traffic - resumo semanal das mensagens da lista dos desenvolvedores do kernel.

linuxdoc.org/HOWTO/Kernel-HOWTO.html - Kernel-HOWTO - como compilar e instalar seu próprio kernel.

liw.iki.fi/liw/texts/linux-anecdotes.html - Lars Wirzenius, entusiasta do Linux e colega de Linus Torvalds na Universidade de Helsinki, conta alguns aspectos pouco conhecidos dos primeiros anos do sistema operacional.

www.linux.trix.net/dicas_linus.htm - uma coleção de links para entrevistas de Linus Torvalds publicadas na Internet. A melhor maneira de compreender o que realmente está por trás do sistema.


Principais novidades do Linux 2.4

  • Plug and play, USB, PCMCIA e FireWire no kernel
  • Raw devices
  • Software LVM - Gerenciador Lógico de Volumes
  • Maior performance do software RAID
  • Escrita em partições HPFS
  • NFSv3
  • Teclado e mouse USB
  • Suporte para síntese de voz
  • Wake-one
  • Mais performance em IPv4
  • Novo subsistema de firewall e NAT
  • Integração dos subsistemas de PPP
  • khttpd - servidor Web embutido no kernel
  • Suporte para novas plataformas - ia64 (Itanium), s/390 (mainframe IBM) e SuperH
  • Mais escalabilidade em sistemas de maior porte
  • Buffer cache unificado como page cache dá mais performance aos sistemas de arquivos
  • Até 4,2 bilhões de usuários e grupos
  • Limite de processos expandido e configurável
  • Até 64 gigabytes de RAM (em máquina i86)
  • Até 16 placas de rede Ethernet
  • Arquivos maiores que 2 GB
  • DevFS

Acompanhe a evolução do Linux da versão 0.01 até o kernel 2.0

  • Setembro de 1991 - versão 0.01 - Sem binários, só código fonte.
  • 5 de outubro de 1991 - 0.02 - Capaz de rodar o bash, gcc, make, sed e compress.
  • 26 de outubro de 1991 - 0.03 - A primeira versão considerada utilizável.
  • 19 de dezembro de 1991 - 0.11 - A primeira versão stand-alone de Linux. Suporte para plataforma ISA/AT, nada de SCSI, nem init, nem login - ao final do boot, ia-se direto ao prompt do bash. Era possível dar boot em máquinas com 2M de RAM.
  • Abril de 1992 - 0.96 - Esta versão podia rodar o X Window System.
  • Outubro de 1992 - 0.98.2. - Novo emulador do co-processador aritmético, alterações no driver de SCSI, mouse PS/2, TCP/IP ainda em fase alfa.
  • 19 de novembro de 1992 - Versão do SLIP, talkd, ftpd, rshd, host, dig, telnetd, rlogind, uucpd, tftpd, inetd e telnetd
  • Fevereiro de 1993 - Início da primeira transposição para um sistema não-Intel, o Amiga.
  • Abril de 1993 - Lançado o Net-2 para substituir o TCP/IP original. Instabilidade do Net-2 gera muitas críticas.
  • Setembro de 1993 - Alan Cox assume os trabalhos da área de rede e começa a corrigir os bugs do Net-2
  • Novembro de 1993 - Surge o UMSDOS, capaz de permitir rodar o Linux em uma partição do DOS.
  • 18 de fevereiro de 1994 - Surge o FSS, proposta de padrão de diretórios para as distribuições de Linux.
  • 16 de abril de 1994 - Lançado o Linux 1.0
  • 2 de março de 1995 - Linux 1.1
  • 2 de agosto de 1995 - Linux 1.2
  • 6 de junho de 1995 - Linux 1.3
  • Junho de 1996 - Linux 2.0

COMO TUDO COMEÇOU

Existem várias versões ligeiramente discordantes entre si sobre o início do Linux. O próprio autor do sistema conta detalhes diferentes em cada entrevista (veja o quadro "Para saber mais"). Entretanto, a história em linhas gerais é conhecida, e bastante interessante.

No início de 1991, o finlandês Linus Torvalds, então com cerca de 22 anos e estudando computação na Universidade de Helsinki, trocou seu computador Sinclair QL por um 386 com 4 MB de memória e 40MB de disco. Ele não estava satisfeito com o sistema operacional predominante na época (o DOS), e nem tinha condições de adquirir um dos caríssimos sistemas Unix comerciais disponíveis. Então ele comprou uma cópia do Minix, uma versão semicomercial de Unix usada basicamente para propósitos acadêmicos e que vinha com o código-fonte, mas as alterações nele não podiam ser redistribuídas. Isto não era o suficiente para o jovem acadêmico (hoje mestre em ciência da computação) Linus, que começou aos poucos a estudar a arquitetura do seu PC, e em breve lançava a versão 0.01 de seu sistema operacional.

O tempo passou, muitos desenvolvedores aderiram ao projeto, surgiram milhares, depois milhões de usuários, Linus livrou-se daquele velho 386 e hoje usa em casa um sistema com 4 CPUs Xeon rodando Red Hat (no trabalho ele prefere o SuSE) capaz de compilar todo o kernel do Linux em um minuto.

O sistema operacional que começou como uma experiência para entender melhor a arquitetura do 386 virou um software capaz de movimentar todo um mercado, com múltiplos distribuidores, publicações especializadas, milhares de websites... Mas ele continua sendo algo que foi desde o princípio: livre.

 

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux