O Linux é um Unix?

190

Portanto, existem muitas versões diferentes do Unix por aí: HP-UX, AIX, BSD etc. O Linux é considerado um clone do Unix, e não uma implementação do Unix. Todos os "reais" são os descendentes reais do original? Se não, o que separa o Linux do Unix?

Shawn J. Goff
fonte

Respostas:

224

Isso depende do que você quer dizer com "Unix" e "Linux".

  • UNIX é uma marca registrada do The Open Group . A marca registrada teve um histórico movimentado e não está completamente claro que não foi genérica devido ao uso generalizado do “Unix”, referente a sistemas similares ao Unix (veja abaixo). Atualmente, o Open Group concede o uso da marca a qualquer sistema que passe por uma certificação UNIX única . Veja também Por que existe um * Quando há menção do Unix na Internet? .

  • O Unix é um sistema operacional que nasceu em 1969 no Bell Labs . Várias empresas venderam e ainda vendem código derivado desse sistema original, por exemplo , AIX , HP-UX , Solaris . Veja também Evolução dos sistemas operacionais do Unix .

  • Existem muitos sistemas semelhantes ao Unix, pois oferecem interfaces semelhantes a programadores, usuários e administradores. O sistema de produção mais antigo é o Berkeley Software Distribution , que evoluiu gradualmente de baseado no Unix (ou seja, contendo código derivado da implementação original) para semelhante ao Unix (ou seja, com uma interface semelhante). Existem muitos sistemas operacionais baseados no BSD ou derivados do BSD: FreeBSD , NetBSD , OpenBSD , Mac OS X etc. Outros exemplos incluem OSF / 1 (agora descontinuado, era um sistema comercial não baseado em Unix, como o Unix), Minix(originalmente um sistema operacional semelhante ao Unix de brinquedo usado como ferramenta de ensino, agora um sistema semelhante ao Unix incorporado de produção) e, mais famoso, o Linux .


  • A rigor, o Linux é um kernel do sistema operacional projetado como o kernel do Unix.

  • O Linux é mais comumente usado como um nome de sistemas operacionais semelhantes ao Unix que usam o Linux como seu kernel. Como muitas das ferramentas externas ao kernel fazem parte do projeto GNU , esses sistemas são geralmente conhecidos como GNU / Linux . Todas as principais distribuições Linux consistem em GNU / Linux e outros softwares.

  • Existem sistemas semelhantes ao Unix baseados em Linux que não usam muitas ferramentas GNU, especialmente no mundo incorporado, mas acho que nenhum deles acaba com as ferramentas de desenvolvimento GNU, em particular o GCC .

  • Existem sistemas operacionais que têm Linux como kernel, mas não são do tipo Unix. O mais conhecido é o Android , que não possui uma experiência de usuário semelhante ao Unix (embora você possa instalar uma linha de comando semelhante ao Unix) ou experiência de administrador ou (principalmente) experiência de programador (programas Android "nativos" usam uma API que é completamente diferente do Unix).

Gilles
fonte
70
E não vamos esquecer que GNU significa "GNU não é Unix"!
alex
57
"Gnu não é Unix" significa que o Gnu não é baseado no código original do Unix, não que o Gnu não queira implementar especificações do Unix. Citando rms: "Unix grátis! Começando este Dia de Ação de Graças, vou escrever um sistema de software completo compatível com Unix chamado GNU (para o Not Unix do Gnu) e entregá-lo gratuitamente (1) a todos que puderem usá-lo."
Jlliagre
8
Se uma distribuição Linux quisesse ser certificada como UNIX, não precisaria mudar muito e pode ser. Mas nunca ouvi falar de alguém pagando todo esse dinheiro pelo que, a essa altura, valeria tão pouco.
precisa
6
@Kevin: A Caldera (agora conhecida por outro nome) já trabalhou nisso, apesar de não terem ido até o fim (parecem ter abandonado a idéia e pressionado pelo LSB antes de se esquecerem de que já tinham ouvido falar) Linux).
Gilles
4
@milkovsky Não. Como explico na minha resposta, a palavra “Linux” tem dois significados. “Android é baseado em Linux” é verdadeiro com o significado 1 (o kernel). “Linux é semelhante ao Unix” é verdadeiro com o significado 2 (o sistema operacional).
Gilles
58

Para todos os efeitos, uma distribuição moderna típica do Linux (Ubuntu, Debian, Red Hat, Fedora, Slackware, etc) é um Unix, mas, estritamente falando, nenhum sistema pode reivindicar ser Unix sem ser certificado, então as pessoas dizem que são Unix-like. Eles são inspirados pelo Unix e continuam sua cultura.

Isso também se aplica aos sistemas BSD.

O Mac OS X é certificado Unix, por isso é Unix, tanto no nome quanto na verdade. (e na verdade é baseado no BSD).

Deve-se notar que, como o próprio Linux é apenas um kernel, ele pode ser usado para criar sistemas não-unix (como o Android).

hasen
fonte
11
Nota: o kernel do Mac OS X não se baseia em nenhum kernel BSD. A parte do modo de usuário é baseada no FreeBSD e nas partes do NetBSD que eu saiba.
0xC0000022L
2
O kernel de hoje pode ser bem diferente do kernel do BSD, mas acho que foi inicialmente (pelo menos em parte) baseado nele.
hasen
3
Deve-se notar que o FreeBSD é um descendente direto do ATT Unix e já continha o código ATT Unix. Não foi apenas "inspirado" pelo Unix.
Rob
2
@ 0xC0000022L e estamos indo além agora "As primeiras versões do Mach tinham kernels monolíticos, com grande parte do código do BSD no kernel. O Mach 3.0 foi a primeira implementação do microkernel". Quanto a mim, osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html é uma fonte bastante autorizada.
poige
2
E para concluir: "Alguns aspectos pelos quais o BSD é responsável incluem: IDs de usuário do modelo de processo, permissões, políticas básicas de segurança POSIX API, sistema de estilo BSD chama pilha TCP / IP, soquetes BSD, VFS de firewall e sistemas de arquivos (consulte Sistemas de arquivos do Mac OS X para obter mais informações). detalhes) Estrutura de criptografia do sistema V IPC vários mecanismos de sincronização ". Quanto a mim, basta dizer que é baseado no BSD. Encare a verdade.
poige
23

O Linux é mais 'semelhante ao Unix', então sim, de maneira simplista, você pode chamá-lo de clone, o mesmo se aplica aos BSDs (embora, reconhecidamente, os BSDs possam ser considerados mais próximos do Unix do que o Linux).

A principal coisa que confere ao Linux o título semelhante ao Unix é o fato de que ele é quase totalmente compatível com os padrões POSIX (Interface de Sistema Operacional Portátil [para Unix]) que foram acumulados ao longo do tempo.

A outra coisa importante, é a herança de código , etc. , como demonstrado na Wikipedia, o Linux não é realmente originário de fontes Unix; em vez disso, é praticamente construído a partir do zero (no entanto, isso é contestado).

Então, essencialmente, a principal coisa que separa o Unix do Linux é a ancestralidade e os padrões que ele atende.

NJ
fonte
11
Há também a especificação Unix única a considerar.
Dennis Williamson
Definitivamente, eu diria que os BSDs estão mais próximos do Unix que do Linux. Devido à licença mais liberal do BSD e seu desenvolvimento próximo com o AT&T UNIX, muitos códigos-fonte do BSD e suas APIs são usados ​​no Unix comercial. O sistema de arquivos UFS no Solaris e alguns outros UNIX comerciais vieram diretamente do BSD. Além disso, a API Berkely Sockets (não necessariamente fonte) usada por tudo, incluindo o Linux, foi desenvolvida em BSD.
penguin359
3
Após toda a bagunça entre SCO e IBM, ficou claro que o kernel do Linux não contém código Unix.
vonbrand
11

A resposta escolhida explica bastante exaustivamente, mas você teria que assistir a um documentário inteiro para saber todos os detalhes entre o desenvolvimento inicial do UNIX e como o Linux foi lançado.

Primeiro, você deve considerar que o Linux é o kernel, feito pelo linus e outros programadores. Ele escolheu lançá-lo com a GPL, que na época era uma licença feita pela FSF (RMS e outras pessoas), que também estavam desenvolvendo seu próprio kernel e GNU.

O que geralmente chamamos de Linux é, inicialmente, o kernel, além de todas as outras ferramentas originalmente originárias do projeto GNU. Esses dois projetos são historicamente diferentes, porque na época o kernel do pessoal da FSF foi abandonado para favorecer o kernel do Linux, o que era muito melhor.

Lembro que há um documentário, você deveria assistir, acho importante para a sua cultura de programação.

Outra coisa que você deve considerar ao pensar em "* nix" é também tudo envolvendo o POSIX e outras coisas padronizadas pela arquitetura. É assunto de design / pesquisa de SO, mas define com precisão como os sistemas operacionais envolvidos funcionam e é crucial quando você tem um kernel funcionando bem com suas ferramentas.

jokoon
fonte
Na verdade, o POSIX agora é chamado SUS (Single Unix Specification), que foi mencionado.
0xC0000022L
11
O @STATUS POSIX foi a base do SUSv2. Mais tarde, o Austin Group foi formado como um grupo de trabalho conjunto entre o IEEE que criou o POSIX e o The Open Group que possui a marca registrada UNIX e a especificação UNIX. Eles lançaram o POSIX: 2001, também conhecido como SUSv3. Eles são um no mesmo, tanto quanto eu posso dizer. O POSIX ainda está sendo desenvolvido com o POSIX: 2004 e POSIX: 2008, que é o núcleo do SUSv4. Eu não acho que o POSIX ainda esteja morto. en.wikipedia.org/wiki/Single_UNIX_Specification
penguin359
Entendo que o SUS é POSIX com algumas adições.
vonbrand
Link para esse documentário?
Edward Torvalds
Edward Torvalds Desculpe, mas não consigo me lembrar do título. Apresentava o RMS principalmente e parecia um documento antigo.
Jokoon 22/10/2015
6

Já existem muitas ótimas respostas, mas achei que as opiniões do grande Dennis Ritchie (co-criador do Unix) seriam um complemento interessante para as outras respostas mais técnicas.

Parece que Dennis Ritchie considerava o Linux um derivado legítimo do Unix. Em uma entrevista de 1999 para LinuxFocus.org , ele foi convidado,

qual a sua opinião sobre todo o momento do Linux e a decisão de muitas empresas de começar a desenvolver software para ele?

Sua resposta à pergunta foi

Eu acho que o fenômeno Linux é bastante agradável, porque é tão fortemente baseado no que o Unix forneceu. O Linux parece estar entre os mais saudáveis ​​dos derivados diretos do Unix, embora existam também os vários sistemas BSD, bem como as ofertas mais oficiais dos fabricantes de estações de trabalho e mainframe. Não posso deixar de observar, é claro, o mundo derivado do Unix de "fonte livre" parece estar sofrendo exatamente o mesmo tipo de fragmentação e conflito que ocorreu e ainda está ocorrendo no mundo comercial.

Anthony Geoghegan
fonte
1

Historicamente, Linus Torvalds criou um clone aprimorado do Minix OS. O desenvolvimento do Linux não está focado em uma plataforma e uma base de clientes específicas, e os desenvolvedores do Linux têm uma variedade de experiências e perspectivas. SOs como HP-UX, AIX, Solaris e outros são mais direcionados para fornecedores.

Na comunidade Linux, não existe um conjunto padrão estrito de ferramentas ou ambientes. Essa falta de padronização leva a inconsistências significativas no Linux. Para alguns desenvolvedores, a capacidade de usar as melhores realizações de outros sistemas operacionais é uma vantagem, mas nem sempre é conveniente copiar elementos UNIX no Linux, por exemplo, quando os nomes de dispositivos no Linux podem ser obtidos do AIX, enquanto as ferramentas para O trabalho com o sistema de arquivos está focado no HP-UX. Incompatibilidades desse tipo também são encontradas entre diferentes distribuições Linux.

Quarind
fonte
0

Unix, originalmente UNICS (Serviço de Informação e Computação Uniplexed).

O Unix (marca registrada como UNIX) é uma família de sistemas operacionais de computador multitarefa e multiusuário que derivam do AT&T Unix original. O desenvolvimento começou em 1969 e foi anunciado fora dos abdominais de Bell em outubro de 1973.

Variedade de variantes acadêmicas e comerciais do Unix de fornecedores como a Universidade da Califórnia, Berkeley (BSD), Microsoft (Xenix), IBM (AIX) e Sun Microsystems (Solaris).

  • BSD ( B erkeley S oftware D ISTRIBUIÇÃO) liberta proporcionou uma base para vários projectos de desenvolvimento de fonte aberta que estão em curso, por exemplo, FreeBSD, OpenBSD, NetBSD, Darwin, e TrueOS.
  • Xenix é uma versão descontinuada do sistema operacional Unix para várias plataformas de microcomputadores, licenciada pela Microsoft.
  • AIX ( A dvanced I Nteractive e X ecutive), desenvolvido e vendido pela IBM para várias de suas plataformas de computador.

O Linux é uma família de sistemas operacionais de software livre e de código aberto criados em torno do kernel Linux. O componente definidor do Linux é o kernel Linux, um kernel do sistema operacional lançado pela primeira vez em 17 de setembro de 1991 por Linus Torvalds.

O Linux é empacotado em um formato conhecido como distribuição Linux (ou distribuição abreviada) para uso em computadores e servidores. Algumas das distribuições Linux mais populares e populares são o Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, Linux Mint, Mageia, openSUSE e Ubuntu, juntamente com distribuições comerciais como o Red Hat Enterprise Linux

A interface do usuário, também conhecida como shell, é uma interface da linha de comandos (CLI), uma interface gráfica do usuário (GUI) ou através de controles conectados ao hardware associado, o que é comum em sistemas incorporados. Para sistemas de desktop, o modo padrão geralmente é uma interface gráfica do usuário, embora a CLI esteja normalmente disponível nas janelas do emulador de terminal ou em um console virtual separado.

  • Os shells da CLI são interfaces de usuário baseadas em texto, que usam texto para entrada e saída. O shell dominante usado no Linux é o Bourne-Again Shell (bash), originalmente desenvolvido para o projeto GNU.
  • Os shells da GUI são o K Desktop Environment (KDE), GNOME, MATE, Cinnamon, Unity, LXDE, Pantheon e Xfce, embora existam várias interfaces de usuário adicionais. As interfaces de usuário mais populares são baseadas no sistema X Window, geralmente chamado de "X".

O GNU é um sistema operacional e uma extensa coleção de softwares de computador. O GNU é composto inteiramente de software livre, a maioria dos quais é licenciada sob a própria GPL do Projeto GNU. GNU é um acrônimo recursivo para "GNU's Not Unix!", Escolhido porque o design do GNU é semelhante ao Unix, mas difere do Unix por ser um software livre e sem código Unix. O desenvolvimento do sistema operacional GNU foi iniciado por Richard Stallman enquanto trabalhava no Laboratório de Inteligência Artificial do Instituto de Tecnologia de Massachusetts (MIT) em 1983.

Os componentes básicos incluem o GNU Compiler Collection (GCC), a biblioteca GNU C (glibc) e o GNU Core Utilities (coreutils), mas também o GNU Debugger (GDB), os utilitários binários GNU (binutils), o shell GNU Bash e o GNOME ambiente de trabalho.

Premraj
fonte
-7

O Linux é um sistema operacional semelhante ao Unix, desenvolvido por Linus Torvalds e milhares de outros.
O BSD é um sistema operacional UNIX que, por razões legais, deve ser chamado de Unix-Like.
OS X é um sistema operacional UNIX gráfico desenvolvido pela Apple Inc.

O Linux é o exemplo mais importante de um sistema operacional Unix "real". Ele roda em qualquer coisa e suporta muito mais hardware que o BSD ou OS X. Uma citação interessante que encontrei quando comparava o BSD e o Linux:

O Linux é o que você obtém quando vários hackers de PC se sentam e tentam escrever um sistema Unix para o PC. O BSD é o que você obtém quando vários hackers do UNIX se sentam e tentam portar um sistema Unix para o PC.

O BSD é mais como um sistema operacional Unix do que o Linux. Também notável é que a Apple faz uso de componentes BSD e Linux. A Apple usa o APT do Debian e Ubuntu nas plataformas iOS e OS X. E é baseado no BSD. (O kernel, no entanto, é Darwin, que é o próprio kernel. Beastie, o ornitorrinco, é o mascote de Darwin, porque ele é uma mistura entre Beastie do BSD e um ornitorrinco.)

Se você deseja um sistema operacional Unix "real" (que funcione com qualquer coisa e suporte muito hardware), tente o Linux.
Se você deseja suporte de hardware de última geração e dores de cabeça (eu sei que vou sentir muito ódio, mas não me importo), use o BSD.
Se você deseja gastar US $ 1000 ou mais, use o OS X e o iOS. (Mais uma vez eu provavelmente vou ter uma tonelada de ódio.)

Eu sou um usuário Linux de longa data, depois de usá-lo dos anos 90 ao início dos anos 2000 e depois parar de usá-lo por um tempo, mas começou a usá-lo novamente em meados de 2012 como meu sistema operacional permanente, para que eu possa recomendá-lo a quem quiser para tentar algo diferente de Windoze.

Craig Wessel
fonte
4
Como o Linux está mudando recentemente com Wayland / systemd / etc, está se afastando cada vez mais de ser um sistema semelhante ao Unix e se tornar sua própria entidade. Ele está se tornando menos compatível com os verdadeiros sistemas Unix e Unix, a ponto de esses sistemas reais terem desenvolvido uma atitude de "não se importam" com o Linux. Suas "recomendações" estão muito fora da base e me faz concordar com você que você não toca em nada disso há 15 anos.
15243 Rob
11
Linux não é um sistema operacional, mas um kernel.
Martin Schröder
3
A Apple não usa o APT do Debian. Ele inclui uma ferramenta completamente diferente chamada APT (Ferramenta de processamento de anotações do Java). E a comunidade de jailbreak usa o APT como um gerenciador de pacotes para instalar o software iOS contra a vontade da Apple.
abarnert
4
Na verdade, quase todas as afirmações nesta resposta estão erradas. "É executado em muitos sistemas == Unix" é ridículo. A Apple nunca lançou um sistema de US $ 1000 + executando o iOS. BSD é uma família de sistemas Unix e Unix-like, não um único sistema operacional. O Linux é um kernel que pode ser combinado com uma região de usuário do tipo Unix (como GNU), uma região de usuário do Unix-ish despojada (como eLinux ou Android) ou qualquer outra coisa que você desejar. E assim por diante.
abarnert