Tudo começou quando a terra era praticamente uma grande bola de fogo… bla bla bla bla… Bom, pulemos uma considerável parte.
Hoje -> Ao inaugurar o MultiVerso Linux, decidi que meu primeiro post, contrariando a tendência dinâmica da visão do weblog como mídia atual participativa, seria utilizado pra contar um pouco da história do GNU/Linux e seus ancestrais (para familiarizar non-geeks com a história do sistema, já que obviamente a grande maioria dos geeks já conhece todos os “causos” da carochinha relacionados ao nosso SO). Beleza… Mãos à obra… Vamos voltar um pouco no tempo. Mais precisamente, vamos voltar exatamente 146 anos no tempo e começar nosso conto por “lá”.
1861 -> William Barton Rogers funda o MIT (Massachusetts Institute of Thechnology)…
“Ta bom, mas o que que eu tenho com isso?” Se você usa GNU/Linux, tem muito a ver. O MIT é um dos mais renomados estabelecimentos de ensino superior do mundo, oferecendo hoje mais de 900 cursos nas áreas de ciência e tecnologia.
Depois de 4 anos de “água-de-salsicha” em virtude da Guerra Civil Americana, o MIT iniciou a admissão de seus primeiros alunos em 1865… Então, 96 anos depois … Pronto, agora você vai começar a perceber que tem muito a ver com o tal do MIT…
1961 -> Primeira demonstração do CTSS…
O CTSS (Compatible Time-Sharing System), desenvolvido no Centro de Computação do MIT e demonstrado pela primeira vez rodando em um IBM 709 e portado 1 ano depois para um novo hardware (IBM 7090), foi um dos primeiros sistemas operacionais a adotar a técnica de time-sharing empregada até hoje permitindo que vários usuários possam utilizar um ambiente pra executar programas sobre o mesmo sistema operacional rodando em uma máquina (moderno não?). Esse tipo de sistema caracteriza o processo de compartilhamento de processador, memória e disco entre vários usuários.
1962 -> O projeto MAC…
Em novembro de 1962, um integrante do MIT chamado Joseph Carl Roubnett Licklider propôs o projeto MAC (Multiple Access Computers ou Man And Computers, devido a dualidade de objetivos do projeto), criado para desenvolver um sistema operacional avançado e um laboratório de inteligência artificial. Um ano depois, realizou-se um estudo reunindo vários cientistas da computação em Cambridge com o objetivo de divulgar o CTSS e discutir o futuro da computação. Este estudo resultou em um importantíssimo subprojeto… o Multics (MULTiplexed Information and Computing Service)…
1963 -> O início do sistema operacional Multics…
Ainda em 1963, o projeto MAC começou a tomar grandes proporções e ganhou o apoio da ARPA (Advanced Research Projects Agency, subordinada ao Departamento de Defesa dos EUA), Bell Labs, GE (General Eletric) e IBM (que após a divulgação das especificações de hardware para rodar o Multics, ofereceu o IBM 360, lançado naquele ano).
O objetivo do projeto Multics era um sistema operacional com suporte para memória virtual, utilizando recursos de paginação e segmentação de memória, possibilitando um processo mais sofisticado de transferência de dados entre discos de memória.
Em 1964, a GE propôs a utilização do Multics em um mainframe GE-645, que também foi comprado pela Bell Labs no início de 1965, que juntou-se à equipe de desenvolvimento do Multics, apresentando a primeira descrição definitiva do sistema numa sessão especial na Fall Joint Computer Conference, ocasião em que muitos tomaram por impossível a ambiciosa tarefa da equipe de desenvolvimento do projeto devido aos recursos da época. A partir dai, foi finalmente escolhida a linguagem PL/I para gerar o código do Multics, iniciando-se assim, efetivamente, o desenvolvimento do sistema operacional, usando o CTSS como sistema para o trabalho dos desenvolvedores. Com o passar do tempo (e MUITO tempo), o próprio Multics passou a ser utilizado para o seu desenvolvimento, porém, sem resultados rápidos, o que gerou uma enorme frustração inicial da equipe, que acabou levando a Bell Labs, em abril de 1969 a retirar-se do projeto. Apesar disso, o Multics foi, ainda em 1969, disponibilizado para comercialização e utilizado por várias organizações importantes, tais como a Força Aérea Americana, a General Motors e a Ford.
O desenvolvimento do Multics foi cancelado em 1985, tendo depois disso sua utilização suspensa por várias organizações (diz a lenda que o último Multics sobrevivente em produção foi desativado no ano 2000 no Quartel General do Comando Marítimo Canadense).
1969 -> Surge o embrião do projeto UNIX…
Motivados pelo projeto Multics, Ken Thompson e Dennis Ritchie (até então integrantes do projeto Multics, que mantiveram contato pessoal com profissionais do Bell Labs mesmo depois de seu desvinculamento do projeto em 1969) deram início ao desenvolvimento de um projeto pessoal chamado Unics (UNiplexed Information and Computing Service).
O projeto Unics, tinha como objetivo fazer (COM RAPIDEZ) um sistema operacional simples, versátil e moderno, mantendo todas as idéias de time-sharing e implementando portabilidade como um dos objetivos do novo sistema. O nome Unics surgiu como um trocadilho referente à modéstia do novo sistema com relação as grandiosas metas do projeto Multics (Em 1970 o nome foi mudado para Unix com uma sugestão de Brian Kernighan, funcionário do Bell Labs, integrante do projeto).
Depois de duas propostas de investimento financeiro no projeto pleiteadas junto ao Bell Labs (visando adquirir um computador de médio porte para o sistema) e de uma grande falta de incentivo, Thompson, Ritchie e Rudd Canaday (outro integrante do Bell Labs que participou do projeto), começaram a desenvolver todo o projeto no papel, e traçaram toda a teoria sobre o filesystem (necessário para uma utilização correta dos discos por parte do sistema operacional) e sobre o Kernel (o coração do sistema operacional, que faz toda a intermediação entre o hardware e os processos em execução). Thompson encontrou então um computador (DEC PDP-7)relativamente velho abandonado em outro departamento do Bell Labs e finalmente conseguiu sua transferência para o projeto.
Ainda em 1969, Thompson começou a implementar o projeto do filesystem (chamado de “chalk filesystem” por Ritchie, devido ao seu projeto realizado em um quadro negro com giz) e também dividiu o projeto em quatro blocos com o objetivo de organizar o cronograma do projeto em 1 mês: Sistema Operacional, Shell (ambiente próprio para entrada de linhas de comandos), Editor de texto, e Compilação do sistema e dos programas.
O PDP-7 foi substituído em 1970 por um DEC PDP-11, já que o 7 estava se tornando rapidamente obsoleto e o Bell Labs percebeu finalmente os inúmeros benefícios do novo sistema operacional, além da rápida evolução do projeto.
A primeira versão do Unix foi escrita em Assembly que por ser uma linguagem complicada, tinha que ser substituída por uma linguagem de alto nível… Fortran foi descartada logo de cara… Foi decidido então o uso da BCPL (Basic Combined Programming Language), conhecida como B (obviamente pois é a primeira letra do nome)… Opa… Problemas: Lentidão (já que a linguagem tinha que ser interpretada) e Incompatibilidade (pois o PDP-7 tinha um processamento word-oriented ou orientado em palavras, e o PDP-11 em byte-oriented ou orientado em bytes)… Ah… Mas para o fodástico super-Richie não tinha tempo ruim… Ele usou o PDP-11 para adicionar funcionalidades ao B, que passou a se chamar NB (new B), e em seguida, providenciou um compilador para o NB pra resolver o problema da lentidão gerada pela interpretação… Tchanaaaaaaam !!! Nasce então a interplanetariamente famosa Linguagem C (nome que surgiu da utilização da segunda letra do BCPL).
Em 1973, foi implementado por Thompson o conceito de pipe (criado por Douglas McIlroy) que permitia que vários processos fossem “amarrados” gerando uma única saída ou resultado final.
1976 -> O Unix vai pras universidades
En 1976, Thompson foi dar aula na Universidade de Berkeley na Califórnia. O Unix então se espalhou rapidamente por inúmeras universidades. Quando Thompson voltou para o Bell Labs, o Unix continuou a ser desenvolvido por professores e universitários (tendo em vista que seu código era aberto e possuía uma licença universitária) e foi assim criado o BSD (Berkeley Software Distribution), uma versão do Unix inicialmente adaptada ao ambiente universitário. Os BSD atualmente são muito utilizados, sendo os derivados mais conhecidos: MacOS X (e sua base Darwin), FreeBSD, NetBSD, OpenBSD, BSDI (antigo BSD/OS), DragonFlyBSD, PC-BSD e DesktopBSD. Algumas empresas também desenvolveram seus próprios sistemas baseados em Unix, tais como o Solaris e SunOS (Sun Microsystems), HP-UX (Helwett-Packard), Tru64 Unix (Compaq), OpenServer (SCO), AIX (IBM), Xenix (SCO, AT&T e Microsoft), etc…
Bom, agora chegou a hora de falar um pouco sobre o RMS… Richard Matthew Stallman mas não vou me aprofundar muito (pelo menos não nesse tópico) porque afinal de contas o cara merece um tópico só dele. BTW, recomendo a todos (que lêem com facilidade documentos em inglês) a leitura do openbook Free as in Freedom: Richard Stallman Crusade for Free Software da O’Reilly Media, escrito por Sam Williams em 2002 (Quando tiverem tempo, cliquem e LEIAM!). Pretendo falar um pouco de temas como a Free Software Foundation, Open Source e Licença GNU GPL mais profundamente em outros tópicos. Enquanto isso, se tiver interesse em se aprofundar, “Google neles!!!”.
Vamos então falar diretamente e objetivamente do do projeto GNU e do surgimento do Kernel Linux…
1984 -> Início do projeto GNU…
Em 1984 Richard Stallman fundou o projeto GNU com o objetivo de criar um sistema operacional TOTALMENTE livre (o nome GNU além de sua proveniência óbvia do mamífero ruminante, vem do trocadilho acrônimo “GNU’s Not Unix”, já que o GNU tem uma concepção REALMENTE livre, ao contrário do Unix, que era livre e deixou de ser). O projeto refere-se a uma série de aplicativos totalmente livres que Stallman e vários outros programadores que abraçaram a causa desenvolveram como peças principais de um sistema operacional completo e livre…
1991 -> O momento bombástico determinante da nossa história…
Em 1991 o fodástico sistema de Stallman e seus colegas já estava quase pronto, mas faltava apenas um pequeno detalhe (rsrsrsrs)… O cérebro… O Kernel do sistema operacional. A equipe de desenvolvimento do GNU estava desenvolvendo um Kernel chamado Hurd, composto por daemons que utilizam o microkernel GNU Mach. Eis que então, exatamente em 05 de outubro de 1991, um jovem finlandês estudante da universidade de Helsinque chamado Linus Benedict Torvalds, provavelmente sem a MENOR IDÉIA do que se tornaria sua recente criação, postou uma mensagem (a fomosa) no newsgroup comp.os.minix anunciando que havia criado um kernel funcional (versão 0.02) que já rodava bash, gcc, gnu-make, gnu-seed, compress, etc… Na mesma mensagem ele disse que as fontes de seu novo Kernel estavam disponíveis para ampla divulgação, e que estava interessado em entrar em contato com pessoas que tivessem escrito utilitários/bibliotecas para o Minix com códigos livremente distribuídos (sob licença ou domínio público) para que pudesse adicionar de forma autorizada ao sistema.
Esta mensagem foi a mensagem oficial de lançamento do Kernel Linux, e por isso o aniversário do SO Linux é comemorado em 05 de outubro, dia da postagem da mensagem no newsgroup anunciando sua criação. Desde o início, Linus distribuiu seu Kernel exclusivamente com programas criados pela Free Software Foundation para o Projeto GNU, pois se todos os programas da FSF funcionassem bem com o Kernel Linux, seria uma prova de que o kernel estava totalmente ajustado ao kernel Unix…
Ufa… Pronto… Chegamos finalmente ao surgimento do fantástico sistema operacional GNU com Kernel Linux chamado GNU/Linux !!!
Normalmente por desconhecimento ou por questão de comodidade as pessoas utilizam simplesmente o nome Linux (nome do Kernel ou núcleo desenvolvido por Linus Torvalds) para falar do sistema operacional, que corretamente e por solicitação do projeto aos utilizadores deve ser chamado de GNU/Linux…
O GNU/Linux até o lançamento de sua versão 2.6 (que ocorreu em dezembro de 2003) tinha suas versões classificadas como versões em desenvolvimento ou versões estáveis de acordo com o segundo número. Ou seja, se falássemos do kernel 2.5.8 (segundo número ímpar) estaríamos tratando de uma versão em desenvolvimento. Já com o segundo número par, estaríamos tratando de uma versão estável. A partir do kernel 2.6, o kernel em desenvolvimento passou a ser identificável pela ausência do quarto número (que representa versão final, estável), mas mesmo assim, usa-se também a nomenclatura -rcX (release candidate N ou candidato ao lançamento) nas versões em desenvolvimento.
Hoje em dia temos disponíveis para utilização inúmeras distribuições do GNU/Linux, que reúnem diversos aplicativos (sejam eles da Free Software Foundation ou não). Falando de maneira simplificada, uma distribuição nada mais é do que o Kernel Linux combinado com programas compatíveis com ele…
As maiores distribuições GNU/Linux em produção são Debian, Slackware, SuSE, RedHat e suas inúmeras distribuições derivadas…
Bom, chega por hoje… Afinal de contas logo no primeiro post estou na frente do PC as 02:47 am rsrsrsrsrs… Depois eu reviso e complemento o post. Comentários, correções e acréscimos são extremamente bem vindos.
BTW, principal fonte de pesquisa deste post: O grande e onisciente oráculo… Google…
Grande abraço a todos!
Now's the time - Meandering - Miles Davis e Charlie Parker [6:33m]: Play Now | Play in Popup | Download
Artigos Relacionados
No user responded in this post
Leave A Reply
Please Note: Comment moderation maybe active so there is no need to resubmit your comments