Qual é a diferença entre Linux e Unix?

Um pinguim-imperador adulto e uma garota.
robert mcgillivray / Shutterstock.com

O Linux se inspirou no Unix, mas o Linux não é Unix – embora seja definitivamente parecido com o Unix. Explicaremos as principais diferenças entre esses dois famosos sistemas operacionais.

Mesma diferença?

Linux é um sistema operacional gratuito e de código aberto. Unix é um produto comercial, oferecido por uma variedade de fornecedores, cada um com sua própria variante, geralmente dedicada ao seu próprio hardware. É caro e de código fechado. Mas o Linux e o Unix fazem mais ou menos a mesma coisa da mesma maneira, certo? Mais ou menos, sim.

As sutilezas são um pouco mais complicadas. Existem diferenças além do técnico e arquitetônico. Para entender algumas das influências que moldaram o Unix e o Linux, precisamos entender suas histórias de fundo.

As Origens do Unix

O Unix tem mais de 50 anos. Ele foi desenvolvido em  linguagem de montagem Digital Equipment Corporation  (DEC)   em um  DEC PDP / 7  como um projeto não oficial no  Bell Labs , então propriedade da  AT&T . Em breve, ele foi portado para um  computador DEC PDP / 11/20 e  , em seguida, disseminado de forma constante por outros computadores na Bell. Uma reescrita na  linguagem de programação C  levou à versão 4 do Unix de 1973. Isso foi significativo porque as características da linguagem C e do compilador significavam que agora era relativamente fácil portar Unix para novas arquiteturas de computador.

Em 1973,  Ken Thompson  e  Dennis Ritchie  apresentaram um artigo sobre o Unix em uma conferência. Como resultado, pedidos de cópias do Unix chegaram ao Bell. Como a venda de sistemas operacionais estava fora do escopo de operações permitido pela AT&T, eles não podiam tratar o Unix como um produto. Isso levou ao Unix a ser distribuído como código-fonte com uma licença. Os custos nominais foram suficientes para cobrir o envio e embalagem e um “royalty razoável”. O Unix veio “como está”, sem suporte técnico e sem correção de bugs. Mas você conseguiu o código-fonte – e pode modificá-lo.

O Unix teve uma rápida aceitação nas instituições acadêmicas. Em 1975, Ken Thompson passou um ano sabático da Bell na  Universidade da Califórnia, Berkeley . Junto com alguns alunos de graduação, ele começou a adicionar e melhorar sua cópia local do Unix. O interesse externo nas adições de Berkeley cresceu, levando ao primeiro lançamento do  Berkeley Software Distribution  (BSD). Era uma coleção de programas e modificações de sistema que podiam ser adicionados a um sistema Unix existente, mas não era um sistema operacional autônomo. As versões subsequentes do BSD eram sistemas Unix inteiros.

Recomendado:  Como desinstalar ou reparar um programa no Windows 10

Havia agora dois tipos principais de Unix, o stream AT&T e o stream BSD. Todas as outras variantes do Unix, como  AIXHP-UX e Oracle  Solaris,  são descendentes deles. Em 1984, algumas das restrições à AT&T foram liberadas e eles puderam produzir e vender o Unix.

O Unix então se tornou comercializado.

A Gênese do Linux

Vendo a comercialização do Unix como uma erosão adicional das liberdades disponíveis para usuários de computador,  Richard Stallman  decidiu criar um sistema operacional baseado na liberdade. Ou seja, a liberdade de modificar o código-fonte, de redistribuir versões modificadas do software e de usar o software da maneira que o usuário achar conveniente.

O sistema operacional iria replicar a funcionalidade do Unix, sem incluir nenhum código-fonte do Unix. Ele chamou o sistema operacional de  GNU e fundou o  Projeto GNU  em 1983 para desenvolver o sistema operacional. Em 1985, ele fundou a  Free Software Foundation  para promover, financiar e apoiar o projeto GNU.

Todas as áreas do sistema operacional GNU estavam fazendo um bom progresso – exceto o kernel. Os desenvolvedores do projeto GNU estavam trabalhando em um microkernel chamado  GNU Hurd , mas o progresso era lento. (Ele ainda está em desenvolvimento hoje e se aproxima de um lançamento.) Sem um kernel, não haveria sistema operacional.

Em 1987,  Andrew S. Tanebaum  lançou um sistema operacional chamado  MINIX  (mini-Unix) como um auxiliar de ensino para alunos que estudavam design de sistema operacional. O MINIX era um sistema operacional funcional, semelhante ao Unix, mas tinha algumas restrições, especialmente com o sistema de arquivos. Afinal, o código-fonte precisava ser pequeno o suficiente para garantir que fosse coberto de forma adequada em um único semestre universitário. Alguma funcionalidade teve que ser sacrificada.

Para entender melhor o funcionamento interno do  Intel  80386  em seu novo PC, um estudante de ciência da computação chamado  Linus Torvalds  escreveu um código simples de troca de tarefas como um exercício de aprendizado. Eventualmente, esse código se tornou um proto-kernel elementar que se tornou o primeiro kernel Linux. Torvalds estava familiarizado com o MINIX. Na verdade, seu primeiro kernel foi desenvolvido no MINIX usando o compilador GCC de Richard Stallman.

Torvalds decidiu fazer seu próprio sistema operacional que superou as limitações do MINIX projetado para o ensino. Em 1991, ele fez seu  famoso anúncio  no grupo MINIX  Usenet  , pedindo comentários e sugestões sobre seu projeto.

Recomendado:  Para onde vão as capturas de tela no Mac?

O Linux não é realmente um clone do Unix  . Se o Linux fosse um clone do Unix, seria o Unix. Não é, é como o Unix . A palavra “clone” implica que uma pequena parte do original é cultivada em uma nova réplica célula por célula do original. O Linux foi criado de novo, para ter a aparência e o comportamento do Unix e para atender às mesmas necessidades. É menos um clone e mais um  replicante .

Mas de qualquer maneira, o Linux era um kernel procurando por um sistema operacional; GNU era um sistema operacional em busca de um kernel. Em retrospectiva, o que aconteceu a seguir parece inevitável. Também mudou o mundo.

RELACIONADOS: O Grande Debate: É Linux ou GNU / Linux?

Quem faz o desenvolvimento?

Um sinal do Red Hat.
Michael Vi / Shutterstock.com

Uma distribuição Linux é a soma de muitas partes diferentes, extraídas de muitos lugares diferentes. O kernel do Linux, o conjunto GNU de utilitários básicos e os aplicativos de usuário são combinados para tornar uma distribuição viável. E alguém precisa fazer isso combinando, mantendo e gerenciando – assim como alguém precisa desenvolver o kernel, os aplicativos e os utilitários básicos. Os mantenedores da distribuição e as comunidades de cada distribuição, todos desempenham sua parte em trazer uma distribuição Linux à vida, tanto quanto os desenvolvedores do kernel.

O Linux é o resultado de um esforço colaborativo distribuído realizado por voluntários não pagos, por organizações como a Canonical e Red Hat , e indivíduos patrocinados pela indústria.

Cada Unix comercial é desenvolvido como uma única entidade coerente usando instalações de desenvolvimento internas – ou terceirizadas rigidamente controladas. Freqüentemente, eles têm um kernel exclusivo e são projetados especificamente para as plataformas de hardware fornecidas por cada fornecedor.

Os derivados gratuitos e de código aberto do fluxo BSD Unix, como  FreeBSDOpenBSDDragonBSD,  usam uma combinação de código BSD legado e novo código. Eles agora são projetos apoiados pela comunidade e gerenciados de forma semelhante às distribuições Linux.

Padrões e Conformidade

Em geral, o Linux não é   compatível com Single Unix Specification (SUS) nem com POSIX  . Tenta satisfazer os dois padrões sem ser escravo deles. Houve uma ou duas – literalmente, uma ou duas – exceções, como o  Inspur K-UX , um Linux chinês compatível com POSIX.

Um verdadeiro Unix, como as ofertas comerciais,  é  compatível. Alguns derivados do BSD, incluindo todas as versões do macOS, exceto uma, são compatíveis com POSIX. Os nomes das variantes, como AIX, HP-UX e Solaris, são marcas registradas de suas respectivas organizações.

Recomendado:  Como ativar a “Lista de leitura” do Google Chrome no Android

Marcas registradas e direitos autorais

Linux é uma marca registrada de Linus Torvalds. Linux Foundation  gerencia a marca registrada em seu nome. O kernel do Linux e os utilitários principais são lançados sob várias Licenças Públicas Gerais GNU  “copyleft”  . O código-fonte está disponível gratuitamente.

Unix é uma marca registrada do  Open Group . É protegido por direitos autorais, proprietário e de código fechado.

O FreeBSD é protegido por direitos autorais do  Projeto FreeBSD e o código-fonte está disponível.

Diferenças de uso

Da perspectiva da experiência do usuário, na linha de comando, não há muita diferença visível. Por causa dos padrões e conformidade POSIX, o software escrito em Unix pode ser compilado para um sistema operacional Linux com uma quantidade limitada de esforço de portabilidade. Os scripts de shell, por exemplo, podem ser usados ​​diretamente no Linux em muitos casos com pouca ou nenhuma modificação.

Alguns dos utilitários de linha de comando têm opções de linha de comando ligeiramente diferentes, mas essencialmente o mesmo arsenal de ferramentas está disponível em ambas as plataformas. Na verdade,  o  AIX da IBM tem uma  caixa de ferramentas AIX para aplicativos Linux . Isso permite que o administrador do sistema instale centenas de pacotes GNU (como Bash, GCC e assim por diante).

Os diferentes tipos de Unix têm diferentes  interfaces gráficas de usuário  (GUI) disponíveis para eles, assim como o Linux. Um usuário Linux familiarizado com  GNOME  ou  Mate  terá que sentir o seu caminho na primeira vez que encontrar o  KDE  ou o  Xfce , mas eles logo entenderão. É semelhante à variedade de GUIs disponíveis no Unix, como  MotifCommon Desktop Environment e o  X Windows System . Eles são todos semelhantes o suficiente para serem navegáveis ​​por qualquer pessoa familiarizada com os conceitos de um ambiente de janela com caixas de diálogo, menus e ícones.

Você aprenderá mais sobre as diferenças ao administrar os sistemas. Por exemplo, existem diferentes  mecanismos de inicialização . Derivados do System V Unix e os streams BSD têm sistemas init diferentes. As variantes gratuitas do BSD mantiveram os esquemas de inicialização do BSD. Por padrão, as distribuições do Linux usarão um sistema init derivado do Unix System V ou  systemd .

Stick Shift vs. Automático

Se você pode dirigir um, pode dirigir o outro – mesmo que seja um pouco para começar.

Deixando o preço de lado, as diferenças na filosofia, licenciamento, modelo de desenvolvimento, organização da comunidade e o tipo e estilo de governança são maiores e mais significativas do que as diferenças nos sinalizadores de linha de comando entre, digamos, uma versão do  grep e outra.

As maiores diferenças não são as que você vê na tela.