Uma Breve História do Linux

No uso popular, "Linux" geralmente se refere a um grupo de distribuições de sistema operacional criadas em torno do kernel do Linux. No sentido mais estrito, porém, o Linux se refere apenas à presença do próprio kernel. Para construir um sistema operacional completo, as distribuições Linux geralmente incluem ferramentas e bibliotecas do projeto GNU e de outras fontes. Mais desenvolvedores estão usando o Linux recentemente para criar e executar aplicativos móveis; também desempenhou um papel fundamental no desenvolvimento de dispositivos acessíveis, como os Chromebooks, que executam sistemas operacionais no kernel. Em ambientes de computação em nuvem e servidores em geral, o Linux é uma escolha popular por alguns motivos práticos:

  • Suas distribuições permanecem atuais e são suportadas por comunidades de outros desenvolvedores.
  • Ele pode ser executado em uma ampla gama de hardware e será instalado juntamente com sistemas pré-existentes (uma característica útil em ambientes de desenvolvimento local).
  • Ele suporta a instalação centralizada de software a partir de repositórios pré-existentes.
  • Seus requisitos de recursos são baixos.
  • Geralmente, é importante lembrar que os desenvolvedores estão criando ecossistemas de aplicativos e ferramentas para servidores, levando a altos níveis de compatibilidade.
  • Ele suporta as modificações necessárias nos comportamentos do sistema operacional.

O Linux também atribui suas origens ao movimento do código aberto e, como conseqüência, alguns desenvolvedores o escolhem por uma combinação de razões éticas e práticas:

  • Para alguns desenvolvedores, o uso do Linux representa um compromisso com a acessibilidade e a liberdade de expressão.
  • A comunidade Linux também é um atrativo para alguns desenvolvedores: quando tiverem dúvidas, poderão consultar os recursos produzidos por essa comunidade ou entrar em contato diretamente com um dos muitos mantenedores ativos.

Para entender o papel do Linux na comunidade de desenvolvedores (e além), este artigo descreverá um breve histórico do Linux por meio do Unix e discutirá algumas distribuições populares do Linux.

Raízes em Unix

O Linux tem suas raízes no Unix e no Multics, dois projetos que compartilham o objetivo de desenvolver um robusto sistema operacional multiusuário.

O Unix foi desenvolvido a partir do projeto Multics no Centro de Pesquisa em Ciências da Computação da Bell Laboratories. Os desenvolvedores que trabalham com Multics no Bell Labs e em outros lugares estavam interessados em criar um sistema operacional multiusuário com armazenamento de nível único, vinculação dinâmica (na qual um processo em execução pode solicitar que outro segmento seja adicionado ao seu espaço de endereço, permitindo a execução código desse segmento) e um sistema de arquivos hierárquico.

O Bell Labs parou de financiar o projeto Multics em 1969, mas um grupo de pesquisadores, incluindo Ken Thompson e Dennis Ritchie, continuou trabalhando com os princípios fundamentais do projeto. Em 1972-3, eles tomaram a decisão de reescrever o sistema em C, o que tornava o Unix exclusivamente portátil: ao contrário de outros sistemas operacionais contemporâneos, ele podia se mover e sobreviver ao hardware.

A pesquisa e o desenvolvimento no Bell Labs (mais tarde na AT&T) continuaram, com o Unix System e continuaram desenvolvendo versões do Unix, em parceria com a Sun Microsystems, que seriam amplamente adotadas pelos fornecedores comerciais de Unix. Enquanto isso, a pesquisa continuou nos círculos acadêmicos, principalmente no Grupo de Pesquisa em Sistemas de Computação da Universidade da Califórnia em Berkeley. Este grupo produziu o Berkeley Software Distribution (BSD), que inspirou uma variedade de sistemas operacionais, muitos dos quais ainda estão em uso atualmente. Duas distribuições BSD de nota histórica são o NeXTStep, o sistema operacional pioneiro pelo NeXT, que se tornou a base do macOS, entre outros produtos, e o MINIX, um sistema operacional educacional que formou uma base comparativa para Linus Torvalds ao desenvolver o Linux.

A evolução do Linux

O Unix levantou questões importantes para os desenvolvedores, mas também permaneceu proprietário nas primeiras versões. O próximo capítulo de sua história é, portanto, a história de como os desenvolvedores trabalharam dentro e contra ele para criar alternativas gratuitas e de código aberto.

Experimentos de código aberto

Richard Stallman foi uma figura central entre os desenvolvedores que foram inspirados a criar alternativas não proprietárias ao Unix. Enquanto trabalhava no Laboratório de Inteligência Artificial do MIT, ele iniciou o trabalho no projeto GNU (recursivo para “GNU não é Unix!”), Deixando o laboratório em 1984 para distribuir os componentes GNU como software livre. O kernel GNU, conhecido como GNU HURD, tornou-se o foco da Free Software Foundation (FSF) , fundada em 1985 e atualmente liderada por Stallman.

Enquanto isso, outro desenvolvedor trabalhava em uma alternativa gratuita ao Unix: Linus Torvalds, estudante finlandês. Depois de ficar frustrado com a licença do MINIX, Torvalds anunciou a um grupo de usuários do MINIX em 25 de agosto de 1991 que estava desenvolvendo seu próprio sistema operacional, semelhante ao MINIX. Embora tenha sido desenvolvido inicialmente no MINIX usando o compilador GNU C, o kernel Linux rapidamente se tornou um projeto exclusivo com um núcleo de desenvolvedores que lançaram a versão 1.0 do kernel com o Torvalds em 1994.

Torvalds estava usando o código GNU, incluindo o GNU C Compiler, com seu kernel, e continua sendo verdade que muitas distribuições Linux se baseiam em componentes GNU. Stallman fez lobby para expandir o termo "Linux" para "GNU/Linux", que ele argumenta que capturaria tanto o papel do projeto GNU no desenvolvimento do Linux quanto os ideais subjacentes que promoviam o projeto GNU e o kernel Linux. Hoje, o “Linux” é frequentemente usado para indicar a presença do kernel do Linux e dos elementos GNU. Ao mesmo tempo, sistemas embarcados em muitos dispositivos portáteis e smartphones geralmente usam o kernel Linux com poucos ou nenhum componente GNU.

Principais recursos do Unix

O Unix é orientado em torno de princípios de clareza, portabilidade e simultaneidade.

  • Clareza: O design modular do Unix permite que as funções sejam executadas de forma limitada e definida. Seu sistema de arquivos é unificado e hierárquico, o que simplifica a manipulação de dados. Ao contrário de alguns de seus antecessores, o Unix implementa centenas (e não milhares) de chamadas de sistema, cada uma delas projetada para ser direta e clara em termos de objetivo.

  • Portabilidade: Ao escrever o Unix em C, o grupo do Bell Labs posicionou o Unix para uso e adoção em larga escala. O C foi projetado para ter acesso de baixo nível à memória, suporte mínimo em tempo de execução e um relacionamento eficiente entre o idioma e as instruções da máquina. Uma base em C significa que o Unix é adaptável e fácil de executar em uma variedade de hardware.

  • Simultaneidade: O kernel do Unix é adaptado para o objetivo (compartilhado pelo projeto Multics) de sustentar vários usuários e fluxos de trabalho. O espaço do kernel permanece distinto do espaço do usuário no Unix, que permite que vários aplicativos sejam executados ao mesmo tempo.

Principais recursos do Linux

Embora o kernel do Linux tenha herdado muitos objetivos e propriedades do Unix, ele difere do sistema anterior das seguintes maneiras:

  • Seu componente principal é o kernel, desenvolvido independentemente de outros componentes do sistema operacional. Isso significa que o Linux empresta elementos de uma variedade de fontes (como GNU) para compor um sistema operacional inteiro.

  • É gratuito e de código aberto. Mantido por uma comunidade de desenvolvedores, o kernel é licenciado sob a GNU General Public License (uma ramificação do trabalho da FSF no Projeto GNU) e disponível para download e modificação. A GPL estipula que o trabalho derivado deve manter os termos de licença do software original.

  • Possui um kernel monolítico, semelhante ao Unix, mas pode carregar e descarregar dinamicamente o código do kernel sob demanda.

  • Possui suporte a multiprocessador simétrico (SMP), ao contrário das implementações tradicionais do Unix. Isso significa que um único sistema operacional pode ter acesso a vários processadores, que compartilham uma memória principal e acesso a todos os dispositivos de E/S.

  • Seu kernel é preventivo, outra diferença do Unix. Isso significa que o planejador pode forçar uma alternância de contexto em um driver ou em outra parte do kernel enquanto estiver em execução.

  • Seu kernel não diferencia entre threads e processos normais.

  • Inclui uma interface de linha de comando (CLI) e também pode incluir uma interface gráfica de usuário (GUI).

Distribuições populares do Linux

Os desenvolvedores mantêm muitas distribuições populares do Linux atualmente. Entre os mais antigos está o Debian, uma distribuição gratuita e de código aberto que possui 50.000 pacotes de software. O Debian inspirou outra distribuição popular, o Ubuntu, financiado pela Canonical Ltd. O Ubuntu usa o formato de pacote .deb do Debian e as ferramentas de gerenciamento de pacotes, e os desenvolvedores do Ubuntu enviam mudanças de volta ao Debian.

Existe um relacionamento semelhante entre o Red Hat, o Fedora e o CentOS. A Red Hat criou uma distribuição Linux em 1993 e, dez anos depois, dividiu seus esforços no Red Hat Enterprise Linux e no Fedora, um sistema operacional baseado na comunidade que utiliza o kernel Linux e elementos do Projeto GNU. A Red Hat também tem um relacionamento com o CentOS Project, outra distribuição Linux popular para servidores da web. Esse relacionamento não inclui manutenção paga, no entanto. Como o Debian, o CentOS é mantido por uma comunidade de desenvolvedores.

Conclusão

Neste artigo, abordamos as raízes do Linux no Unix e alguns de seus recursos definidores. Se você estiver interessado em aprender mais sobre o histórico de variações do Linux e Unix (incluindo o FreeBSD), um bom passo pode é ser um leitor frequente do nosso Blog, pois o nosso site possui varios artigos relacionado ao ecossistema Linux e também opensopurce, outra boa opção para aprender a utilizar um sistema Linux é instalando em maquina virtual, dual boot ou até mesmo você pode adquirir uma VPS.

E que a força Opensource esteja com você!!

Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like