Por que o Linux é gratuito?
Para responder essa pergunta é preciso entender a história da criação deste sistema operacional.
Primeiro, o UNIX
O sistema operacional Unix foi concebido e implementado em 1969 pela AT&T Bell Laboratories nos Estados Unidos por Ken Thompson, Dennis Ritchie, Douglas McIlroy, e Joe Ossanna.
Lançado pela primeira vez em 1971, o Unix foi escrito inteiramente em linguagem assembly uma prática comum para a época.
Depois, esses caras viram que era inviável escrever algo tão completo em Assembly. Dai resolveram escrever uma linguagem de algo nível. Chamaram-na de Linguagem B, de Bell Labs.
Essa linguagem evoluiu e depois foi chamada de Linguagem C, simplesmente porque vinha depois de B.
Mais tarde, em 1973, o sistema foi reescrito na linguagem de programação C por Dennis Ritchie.
A disponibilidade de uma implementação do Unix feita em linguagem de alto nível fez a sua portabilidade para diferentes plataformas de computador se tornarem mais fácil. Na época, a maioria dos programas era escrita em cartões perfurados que tinham de ser inseridos em lotes em computadores mainframe.
Devido a uma lei antitruste que a proibia de entrar no negócio de computadores, a AT&T foi obrigada a licenciar o código fonte do sistema operacional para quem quisesse.
Com o resultado, o Unix cresceu rapidamente e se tornou amplamente adotado por instituições acadêmicas e diversas empresas. Em 1984, a AT&T se desfez da Bell Labs; livres da obrigação legal exigindo o licenciamento do royalty, a Bell Labs começou a vender o Unix como um Software proprietário, chamado de Unix System V.
Ricard Stallman resolve escrever um sistema operacional
O Projeto GNU, iniciado em 1983 por Richard Stallman, teve o objetivo de criar um “sistema de software completamente compatível com o Unix”, composto inteiramente de software livre. Ele chamou esse sistema de GNU – GNU is Not Unix – um acrônimo recursivo.
Mais tarde, em 1985, Stallman começou a Free Software Foundation e escreveu a Licença Pública Geral GNU (GNU GPL) em 1989. No início da década de 1990, muitos dos programas necessários em um sistema operacional (como bibliotecas, compiladores, editores de texto, uma Unix shell, e um sistema de janelas) foram concluídos, embora os elementos de baixo nível, como drivers de dispositivo, daemons e as do kernel foram paralisadas e não completadas.
Minix, o Unix para ensinar sistemas operacionais
Em 1987, o professor Andrew S. Tanenbaum criou um sistema operacional compatível com UNIX portado para PCs.
Seu objetivo era usar esse sistema criado em Linguagem C e Assembly para explicar os princípios dos seu livro-texto, “Operating Systems Design and Implementation” de (1987).
Um abreviado das 12.000 linhas de código do Kernel, gestor de memória e sistema de arquivo do MINIX 1.0 estão no livro. Prentice-Hall também libertou o código fonte MINIX em disquetes com um manual de referência. MINIX 1 possuia um sistema de chamada compatível com a Sétima edição do UNIX.
O Minix se popularizou no meio acadêmico da computação, pois a maioria dos estudantes queria rodar o Unix que utilizavam nas Universidades, mas devido ao preço do hardware e licenças de software, era algo proibitivo.
Linus Torvalds resolve fazer o seu próprio sistema compatível com Unix
Linus Torvalds, um estudante de computação da Universidade de Helsink, começou o desenvolvimento do núcleo de seu sistema compatível com Unix como um projeto particular, inspirado pelo seu interesse no Minix.
Ele limitou-se a criar, nas suas próprias palavras, “um Minix melhor que o Minix” (“a better Minix than Minix”). E depois de algum tempo de trabalho no projeto, sozinho, enviou a seguinte mensagem para na lista de discussão da usenet comp.os.minix:
Olá pra todos que usam o minix
Eu estou fazendo um sistema operacional (gratuito) (é só um hobby, não é grande e profissional como o GNU) para meu 386(486) AT. Tenho trabalhado nele desde abril, e agora está começando a ficar pronto. Gostaria de um feedback de coisas que as pessoas gostam/detestam no Minix, uma vez que meu sistema se assemelha a ele (mesmo layout físico do sistema de arquivos (devido a praticidade) e outras coisas).
Eu já portei o bash(1.08) e gcc(1.40), e as coisas parecem funcionar.
Isto implica que vou ter algo prático dentro de alguns meses, e eu gostaria de saber quais são as características que as pessoas mais querem. Qualquer sugestão será bem-vinda, mas eu não prometo que irei implementar 🙂
PS. Sim – não tem nenhum código do minux, e tem um sistema de arquivos multi-thread. Não é portável (usa o gerenciador de tarefas do 386 etc) e é provável que nunca irá funcionar com qualquer outro HD diferente do que eu tenho. 🙁
Tradução livre do e-mail
No dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira versão “oficial” do núcleo Linux, versão 0.02.
Quase que o Linux não foi criado
Se o GNU tivesse sido lançado antes de 1991, Linus Torvalds provavelmente não teria criado o Linux e utilizado o 386BSD.
De qualquer forma, o pessoal do movimento do software livre deixou sua contribuição, pois no ano de 1992, impactado pelo movimento GNU e Free Software, Linus Torvalds mudou a licença do núcleo Linux, de uma licença própria para uma licença livre compatível com a GPL do projeto GNU.
Desde então, muitos programadores têm contribuído com o desenvolvimento, ajudando a fazer do Linux o núcleo de enorme sucesso colaborativo que é hoje.
Linux é um sucesso porque é colaborativo
No início era utilizado por programadores ou só por quem tinha conhecimentos e usava linhas de comando. Hoje isso mudou e existem diversos grupos que criam ambientes gráficos para as diversas distribuições GNU/Linux, que são cada vez mais amigáveis, de forma que, uma pessoa com poucos conhecimentos consegue usar o Linux, através de uma distribuição GNU/Linux, por exemplo.
Hoje o Linux é um núcleo estável e consegue reconhecer muitos periféricos sem a necessidade de que o usuário precise instalar drivers de som, vídeo, modem, rede, entre outros.
Curiosamente, o nome Linux foi criado por Ari Lemmke, administrador do site ftp.funet.fi que deu esse nome ao diretório FTP onde o núcleo Linux estava inicialmente disponível. Linus inicialmente tinha-o batizado como “Freax”.