Linux Essencial/História do Linux: diferenças entre revisões

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Sem resumo de edição
Linha 2:
* '''Direitos autorais e licença:''' Veja notas de direitos autorais e licença no final da lição.
 
== 1.1 História do LinuxUnix ==
* '''Objetivo(s):''' Oferecer informações sobre a história dos sistemas Unix, Software Livre e projeto GNU.
* '''Direitos autorais e licença:''' Veja notas de direitos autorais e licença no final da lição.
 
=== História do Unix ===
Para entender como foi criado o Linux é necessário entender o sistema operacional em que ele foi baseado, o Unix. O Unix tem suas raízes no projeto MULTICS (Multiplexed Information and Computing Service). Foi iniciado em 1965 e desenvolvido por grandes instituições da época: AT&T, GE (General Eletric) e o MIT (Massachusetts Institute of Technology).
 
Nota: Um sistema operacional (S.O.) é o software que faz a interface entre os aplicativos de usuário com os recursos de hardware do computador (processador, memória, discos rígidos, CD-ROMs, etc). Desta forma, o S.O. visa gerenciar, com eficácia, os recursos do computador, fornecendo facilidades para os aplicativos, como: segurança, multi-tarefa, multi-usuário, etc. (veja link [1], Definição de sistema operacional).
 
O projeto MULTICS era muito grandioso e complicado desde o início. Seu nome origina-se das várias funcionalidades complexas para a época, tais como: multi-usuário, multi-processador, multi-níveis de diretórios, além de outros “multi”. Depois de vários anos, como seus objetivos não foram alcançados em 1969, a AT&T resolveu abandonar o projeto, adotando o sistema GECOS como seu S.O. padrão, sendo ele muito mais modesto em termos de tecnologia. Segundo declarações da época, cada instituição do consórcio tinha objetivos divergentes, o que levou ao atraso do projeto (veja link [2], Uma breve história do Unix).
 
[IMAGEM]
 
O projeto MULTICS era muito grandioso e complicado desde o início. Seu nome origina-se das várias funcionalidades complexas para a época, tais como: multi-usuário, multi-processador, multi-níveis de diretórios, além de outros “multi”. Depois de vários anos, como seus objetivos não foram alcançados em 1969, a AT&T resolveu abandonar o projeto, adotando o sistema GECOS como seu S.O. padrão, sendo ele muito mais modesto em termos de tecnologia. Segundo declarações da época, cada instituição do consórcio tinha objetivos divergentes, o que levou ao atraso do projeto (veja link [2], Uma breve história do Unix).<center><br>
Fig. 1.2 - Dennis Ritchie e Ken Thompson - criadores do Unix e da linguagem C</center>No entanto, Ken Thompson e Dennis Ritchie, que trabalhavam na Bell Labs - na época subsidiária de pesquisa da AT&T- haviam criado um jogo chamado “Space War” (veja link[3], Space War - o jogo que motivou a criação do Unix). Com o fim do projeto e motivados a continuarem com a utilização do jogo, eles tiveram que reescrever todo o sistema operacional para um computador disponível que era bem menos potente, um DEC PDP-7, de 4 kbytes de memória. Criando um trocadilho bem humorado, eles resolveram dar o nome UNIX, acrónimo de ''UNiplexed Information and Computing Service'' , e que poderia ter sido escrito UNICS, mas resolveram utilizar UNIX, por ter a mesma pronúncia. Thompson concluiu o trabalho de criar todo o Unix no verão de 1969, utilizando a linguagem BCPL (também chamada de B), e que contava com as funções básicas: editor de texto, montador (ou ''assembler,'' que transforma linguagem ''assembly'' em linguagem de máquina) e interpretador de comandos (ou ''shell'' , este será visto mais a frente com maiores detalhes).
 
O sistema foi continuado dentro da Bell Labs, chegando a poucas dezenas de instalações, porém só obteve grande crescimento após ter sido totalmente reescrito na linguagem C, o que permitiu uma portabilidade melhor para outras plataformas. A linguagem C foi derivada da linguagem B e criada por Dennis Ritchie e Brian Kernighan. Nesta época, o sistema já contava com mais de 60 comandos, muitos deles ainda utilizados até hoje, tais como: cd - trocar de diretórios, chmod - trocar permissões, wc - contar palavras em arquivos, roff - processar texto, etc. O seu crescimento e reconhecimento culminou com a publicação na renomada revista “ ''Communications of the ACM'' ” (veja link [4] ACM - Association for Computer Machinery), em julho de 1974.
Linha 25 ⟶ 18:
O POSIX continua mantido até hoje, através de um comitê do IEEE, denominado PASC (Portable Application Standards Committee, veja link [8], Padrão POSIX) e além dele, também surgiu um consórcio de empresas denominado Open Group (veja link [9], Open Group), que realiza um trabalho semelhante, através do padrão “Single Unix Specification”. Como as normas da IEEE não podem ser publicadas livremente, há uma tendência em seguir o padrão da Open Group, por ser livre, aceitar contribuições e estar disponível na internet. Devido à esta variedade de sistemas operacionais seguindo os mesmos padrões é que o Unix atualmente é considerado não mais um sistema operacional, mas sim uma família de sistemas operacionais.
 
=== 1.2 História do Linux ===
O Linux foi criado pelo estudante finlandês de Ciências da Computação da Universidade de Helsinque, chamado Linus Torvalds. Ele inspirou-se em um sistema operacional compatível com o Unix desenvolvido por Andrew Tanembaum, chamado Minix (veja link [10], Minix).<center><br>
Fig. 1.3. - Linus Torvarlds - criador do Linux</center>Linus começou a interessar-se por computadores quando digitava programas à pedido de seu avô, que possuía um VIC-20, o qual foi, mais tarde, herdado por Linus. Depois desses primeiros contatos, ele sempre teve vontade de sempre conhecer mais sobre os computadores. Desde então, a maior parte de seu tempo é dedicada a estudos na área de computação. Ele mesmo se considera um “geek”, que é um termo que designa especialistas na área de informática (algo como “nerd” aqui no Brasil). Na fria Finlândia, como dizia a própria mãe, bastavam um quarto e um computador para que Linus se sentisse satisfeito.
 
[IMAGEM]
 
Linus começou a interessar-se por computadores quando digitava programas à pedido de seu avô, que possuía um VIC-20, o qual foi, mais tarde, herdado por Linus. Depois desses primeiros contatos, ele sempre teve vontade de sempre conhecer mais sobre os computadores. Desde então, a maior parte de seu tempo é dedicada a estudos na área de computação. Ele mesmo se considera um “geek”, que é um termo que designa especialistas na área de informática (algo como “nerd” aqui no Brasil). Na fria Finlândia, como dizia a própria mãe, bastavam um quarto e um computador para que Linus se sentisse satisfeito.
 
A priori, o desenvolvimento do Linux não tinha um projeto definido. A idéia de Linus era fazer um Minix melhor do que o Minix, uma vez que o professor Andrew Tanembaum havia desenvolvido o Minix como uma ferramenta acadêmica, sem intenções de uso cotidiano, e não fazia mudanças sugeridas pelos seus usuários.
 
Em 5 de outubro de 1991, Linus disponibilizou a versão 0.02 do núcleo do Linux, através de uma mensagem de news convocando programadores interessados a participarem do processo de desenvolvimento do sistema. (veja link [11], mensagens de news históricas de Linus. As news são fóruns de usuários onde esses conversam sobre determinado tema, nesse caso sobre o Sistema Minix). Essa versão era bem mínima conseguindo rodar as ferramentas como: interpretador de comandos (bash), compilador C (gcc), e compactador (compress). Na época, a versão 0.02 ainda dependia do Minix para ser compilada e era dependente da plataforma i386 (Intel 386).<center><br>
Fig. 1.4 - Tux: mascote do linux</center>Essa versão não tinha nenhuma restrição de uso, assim como outros sistemas da época, tais como: Hurd, que ainda não estava utilizável (veja link [12], História do Hurd); e 386BSD, que deu origem ao atual FreeBSD, liberado em 1993 com diversos problemas no desenvolvimento de projetos na época (veja link [13], história do FreeBSD).
 
[IMAGEM]
 
Essa versão não tinha nenhuma restrição de uso, assim como outros sistemas da época, tais como: Hurd, que ainda não estava utilizável (veja link [12], História do Hurd); e 386BSD, que deu origem ao atual FreeBSD, liberado em 1993 com diversos problemas no desenvolvimento de projetos na época (veja link [13], história do FreeBSD).
 
Vários fatores ajudaram a rápida expansão do Linux depois de seu lançamento:
Linha 45 ⟶ 32:
* Distribuições Linux: no sentido de tornar o Linux o mais utilizável possível, surgiram instituições comerciais e não-comerciais que se dedicaram a criar uma combinação ideal de aplicativos (livres ou não) que rodassem no kernel Linux. As instituições com objetivos comerciais mantiveram o licenciamento livre, através de serviços agregados, tais como: suporte, treinamento e desenvolvimento customizado. Veja seção mais adiante sobre distribuições Linux.
 
=== 1.3 Software Livre ===
Conforme citado, uma das principais razões do sucesso do Linux foi a sua adoção como kernel preferido para rodar os aplicativos do projeto GNU pré-existentes na época. Conforme é apresentado nesta seção, o projeto GNU teve como objetivo inicial juntar softwares livres no intuito de formar um sistema todo completo. Dessa forma, a fim de reconhecer o mérito desses dois grandes projetos, a partir desse ponto trataremos o S.O. como “GNU/Linux” e não simplesmente “Linux”.
 
=== 1.4 Projeto GNU ===
<center><br>
[IMAGEM]
Fig. 1.5 - Animal-símbolo do projeto GNU</center>Desde 1971, quando trabalhava nos laboratórios de inteligência artificial do MIT, Richard Stallman fez parte de uma comunidade de programadores que distribuíam livremente seus códigos-fonte de programas.<center><br>
 
Fig. 1.6. - Stallman, criador do projeto GNU</center>O ambiente colaborativo que existia desde essa época entre diversos programadores, foi ideal para que Stallman idealizasse um movimento que apoiasse a liberdade de uso de software. Assim, Stallman resolveu lançar as '''bases filosóficas do software livre''' , que fornecia liberdade para os usuários executarem, copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem o software. Veremos mais sobre isso, logo adiante, onde serão apresentadas as 4 liberdades fundamentais do software livre.
Desde 1971, quando trabalhava nos laboratórios de inteligência artificial do MIT, Richard Stallman fez parte de uma comunidade de programadores que distribuíam livremente seus códigos-fonte de programas.
 
[IMAGEM]
 
O ambiente colaborativo que existia desde essa época entre diversos programadores, foi ideal para que Stallman idealizasse um movimento que apoiasse a liberdade de uso de software. Assim, Stallman resolveu lançar as '''bases filosóficas do software livre''' , que fornecia liberdade para os usuários executarem, copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem o software. Veremos mais sobre isso, logo adiante, onde serão apresentadas as 4 liberdades fundamentais do software livre.
 
Além da manutenção da base ideológica do software livre, Stallman também se empenhou em colocar a idéia em prática. Ele tinha como projeto, criar um sistema operacional todo composto por código-fonte livre, visando abandonar todo software proprietário. Surgiu assim, o projeto GNU, ou o início do movimento de software livre.
Linha 67 ⟶ 50:
Há também outras iniciativas que promovem o uso do código aberto, com a ideia de um melhor ambiente de desenvolvimento. Elas surgiram depois da FSF, algumas com atuação mais local e outras de nível internacional. A OSI, Open Source Initiative - http://www.opensource.org - liderada por Eric Raymond, é um exemplo de instituição sem fins lucrativos que promove a abertura do código. Aqui no Brasil temos o Projeto Software Livre Brasil (http://www.softwarelivre.org) mantido pela Associação de Software Livre, que já realizou vários eventos internacionais anuais, divulgando internamente os projetos nacionais e internacionais de Software Livre.
 
==== Origem do Nome ====
GNU é um acrónimo para GNU is not Unix, e como esse acrónimo usa seu próprio nome em sua definição, ou seja, como ele mesmo se define, trata-se de um acrónimo recursivo. O conceito de recursividade é muito comum entre programadores. De acordo com Richard Stallman, 50% da diversão em criar um programa é escolher o nome para ele. Gnu também é o nome de um mamífero nativo do continente africano muito bem-sucedido na savana, também conhecido como boi-cavalo ou guelengue. Assim, o mascote escolhido foi o animal africano de mesmo nome do Projeto Gnu.
 
== 1.5 Exercícios de revisão ==
=== Links Indicados ===
1. Com suas próprias palavras, responda: o que é um sistema operacional? O que é um kernel ou núcleo de um sistema operacional?
 
2. O que é o Unix? Qual é a sua relação com o GNU/Linux?
 
3. O que é e quem criou o projeto GNU? Qual era o seu propósito?
 
4. O Linux deve ser chamado de GNU/Linux? Por quê?
 
=== 1.6 Links Indicados ===
* [1] Definição de Sistema Operacional
** http://www.webopedia.com/TERM/o/operating_system.html