Unix é um dos sistemas operacionais mais populares em todo o mundo por causa de sua grande base de suporte e distribuição. Ele foi originalmente desenvolvido como um sistema multitarefa para minicomputadores emainframes em meados dos anos 70. Desde então cresceu e tornou-se um dos sistemas operacionais mais usados em qualquer lugar, apesar de sua interface às vezes confusa e falta de padronização central.
A verdadeira razão para a popularidade do Unix? Muitos hackersfeel que o Unix é a Coisa Certa – o Sistema Operacional OneTrue. Assim, o desenvolvimento do Linux por um grupo em expansão de hackers Unix que querem sujar as mãos com seu próprio sistema.
Versões do Unix existem para manysystems, desde computadores pessoais até supercomputadores como o Cray Y-MP. A maioria das versões doUnix para computadores pessoais são bastante caras e incómodas. Na época desta escrita, uma versão de uma máquina deAT&T do Sistema V para o 386 roda a cerca de $US1500.
Linux é uma versão livremente distribuível do Unix, originalmente desenvolvida por Linus Torvalds, que começou a trabalhar no Linux em 1991, como estudante na Universidade de Helsinki, na Finlândia.
Linus lançou a versão inicial do Linux de graça na Internet, desovando inadvertidamente um dos maiores fenômenos de desenvolvimento de software de todos os tempos. Hoje em dia, o Linux é autor e mantido por um grupo de vários milhares (se não mais) desenvolvedores que colaboram livremente através da Internet. Empresas surgiram para fornecer suporte ao Linux, para empacotá-lo em distribuições fáceis de instalar, e para vender estações de trabalho pré-instaladas com o software Linux. Em março de 1999, a primeira Exposição Mundial de Linux foi realizada em San Jose, Califórnia, com mais de 12.000 pessoas presentes. A maioria das estimativas coloca o número de usuários de Linux em todo o mundo em torno da marca de 10 milhões (e esperamos que este número pareça pequeno pelo tempo que você ler isto).
Inspirado pelo sistema operacional Minix de Andrew Tanenbaum (outro Unix livre para PCs – embora muito simples), o Linux beganas um projeto de classe no qual Linus queria construir um sistema SimpleUnix que pudesse rodar em um PC 386. Estas discussões foram preocupadas principalmente com o desenvolvimento de um pequeno sistema AcademicUnix para usuários Minix que queriam mais.
O desenvolvimento muito cedo do Linux lidou principalmente com os recursos de comutação de tarefas da interface 80386 em modo protegido, tudo escrito em código assembly. Linus escreve:
Após isso foi simples: código cabeludo ainda, mas eu tinha alguns dispositivos, e depuração era mais fácil. Comecei a usar C nesta fase, e isso certamente acelerou o desenvolvimento. É também quando começo a levar a sério as minhas ideias megalómanas para fazer “um Minix melhor Minix do que Minix”. Eu esperava ser capaz de recompilar o Linux um dia …
Dois meses para a configuração básica, mas depois só mais um pouco até que eu hada driver de disco (seriamente buggy, mas aconteceu de funcionar na minha máquina)e um pequeno sistema de arquivos. Isso foi quando eu disponibilizei 0.01: não era bonito, não tinha floppydriver, e não podia fazer muita coisa. Acho que nunca ninguém compilava essa versão. Mas nessa altura eu já estava viciado, e não queria o tostop até que eu pudesse deitar fora o Minix.
Nunca foi feito nenhum anúncio para a versão 0.01 do Linux. O sourcesweren 0.01 nem sequer executável: eles continham apenas os rudimentos do source do kernel e assumiram que você tinha acesso a uma máquina Minix tocompile e brincar com eles.
Em 5 de outubro de 1991, Linus anunciou a primeira versão “oficial” do Linux, versão 0.02. Neste ponto, Linus foi capaz de executar o runbash (o GNU Bourne AgainShell) e o gcc (o Ccompiler GNU), mas não estava funcionando muito mais. Novamente, isto foi intencionado como um sistema de hackers. O foco principal era o kerneldevelopment; nenhum dos problemas de suporte ao usuário, documentação, distribuição, e assim por diante tinha sequer sido abordado. Hoje, a situação é bastante diferente – a verdadeira excitação no mundo Linux – com ambientes gráficos para usuários, pacotes de distribuição fácil de instalar e aplicações de alto nível, como utilitários gráficos e suítes de produtividade.
Linus escreveu em comp.os.minix:
Você se preocupa com os dias agradáveis do Minix-1.1, quando os homens eram homens e escreveram seus próprios drivers de dispositivos? Você está sem um bom projeto e apenas morrendo de vontade de cortar seus dentes em um SO que você pode tentar modificar para suas necessidades? Acha frustrante quando tudo funciona no Minix? Acabaram-se as noites para ter um programa elegante a funcionar? Então este correio pode ser só para si.
Como mencionei há um mês atrás, estou a trabalhar numa versão gratuita do aMinix-lookalike para computadores AT-386. Ele finalmente chegou à fase em que é até utilizável (embora possa não depender do que você quer), e estou disposto a colocar os fontes para uma distribuição mais ampla.É apenas a versão 0.02 … mas eu executei com sucesso runbash, gcc,GNU make, GNUsed, compress, etc. sob ela.
Após a versão 0.03, Linus elevou o número da versão até 0.10, mais pessoas começaram a trabalhar no sistema. Após várias revisões adicionais, Linus aumentou o número da versão para 0.95, para refletir a estimativa de que o sistema estava pronto para um lançamento “oficial” muito em breve. (Geralmente, não é atribuído ao software o número da versão 1.0 até que ele esteja teoricamente completo ou livre de bugs). Isto foi em Março de 1992. Quase um ano e meio depois, no final de dezembro de 1993, o kernel Linux ainda estava na versão 0.99.pl14 – aymptotically aproximando-se da 1.0. A versão 1.0 apareceu em Março de 1994. Desde a época desta escrita (março de 1999), a versão atual do kernel é 2.2.6, enquanto as versões 2.3 do kernel estão sendo desenvolvidas concomitantemente. (Vamos explicar as convenções de versionamento do Linux em detaillater.)
Linux não poderia ter surgido sem as ferramentasGNU criadas pela Free Software Foundation. O seu compilador gcc, que discutiremos no Capítulo 13 deu vida ao código do Linus Torvalds. GNUtools tem sido entrelaçado com o desenvolvimento do Linux desde o início. Devido às contribuições críticas dessas ferramentas, a Free Software Foundation até mesmo solicita que as distribuições de Linux com utilitários de acompanhamento sejam chamadas GNU/Linux.
Berkeley Unix (BSD) também desempenhou um papel importante no Linux – não tanto na sua criação, mas no fornecimento das ferramentas que o tornam popular. A maioria das utilidades que vêm com as distribuições Linux são portadas do BSD. Os daemons e utilitários de rede são particularmente importantes. O código de rede do kernel para Linux foi desenvolvido de raiz (duas ou três vezes, na verdade), mas os daemons e utilitários são vintage BSD.
Hoje, Linux é um clone Unix completo, capaz de executar o X Window System, TCP/IP, Emacs, Web,mail e software de notícias, o que você quiser. Quase todos os principais pacotes de software livre foram portados para o Linux, e software comercial está se tornando disponível. Na verdade, muitos desenvolvedores começam escrevendo aplicativos para Linux, e os portam para outros sistemas Unixsystems mais tarde. Mais hardware é suportado do que nas versões originais do kernel. Muitas pessoas executaram benchmarks em sistemas Linux e os acharam mais rápidos que estações de trabalho da Sun Microsystems e Compaq, e Linuxperforms melhor que ou assim como Windows 98 e Windows NT em uma grande variedade de benchmarks.Quem teria adivinhado que este “pequeno” clone Unix teria crescido para assumir todo o mundo da computação pessoal e de servidores?