Qual é a diferença entre Unix, Linux, BSD e GNU? [fechadas]

27

Qual é a diferença fundamental entre Unix, Linux, BSD e GNU? O Unix foi o sistema operacional mais antigo, então o termo 'como o Unix' é compreensível, pois eles têm kernel, estrutura do sistema de arquivos, a maioria dos comandos, usuários etc. são iguais ao Unix. Ainda por que eles são diferentes? O que os separou? É o kernel?

Kapish M
fonte
2
Esta questão é possivelmente respondida pela resposta a Todos os comandos do Unix foram reescritos no Linux? .
um CVn

Respostas:

31

Essa é uma pergunta difícil de responder.

Primeiro "Unix Like" ou "* nix" geralmente significa POSIX. Todos os sistemas que você listou são sistemas POSIX. POSIX é um conjunto de padrões a serem implementados.

Agora, para as perguntas mais difíceis.

GNU não é realmente um sistema operacional. É mais um conjunto de regras ou filosofias que governam o software livre que, ao mesmo tempo, deu origem a várias ferramentas ao tentar criar um sistema operacional. Portanto, as ferramentas GNU são basicamente versões abertas de ferramentas que já existiam, mas foram refeitas para se adequar aos princípios do software aberto. GNU / Linux é uma malha dessas ferramentas e do kernel do Linux para formar um sistema operacional completo, mas existem outros "GNU" s. GNU / Hurd por exemplo.

O Unix e o BSD são implementações "mais antigas" do POSIX, com vários níveis de "código fechado". O Unix geralmente é um código totalmente fechado, mas existem tantos sabores do Unix quanto o Linux, se não mais. O BSD geralmente não é considerado "aberto" por algumas pessoas, mas, na verdade, é muito mais aberto do que qualquer outra coisa que existia. Seu licenciamento também é permitido para uso comercial com muito menos restrições, pois as licenças mais "abertas" são permitidas.

Linux é o novato. Estritamente falando, é "apenas um kernel", no entanto, em geral, é pensado como um sistema operacional completo quando combinado com o GNU Tools e várias outras coisas.

A principal diferença governante são os ideais. Unix, Linux e BSD têm ideais diferentes que eles implementam. Eles são todos POSIX e são basicamente intercambiáveis. Eles resolvem alguns dos mesmos problemas de maneiras diferentes. Portanto, além dos ideais e de como eles escolhem implementar os padrões POSIX, há pouca diferença.

Para mais informações, sugiro que você leia um breve artigo sobre a criação do GNU, OSS, Linux, BSD e UNIX. Eles serão inclinados para suas idéias individuais, mas quando você ler completamente, terá uma boa idéia das diferenças.

Este diagrama genealógico do Unix mostra claramente a história do Unix, BSD, GNU e Linux ( da Wikimedia ):

Diagrama de genealogia Unix

coteyr
fonte
nota: nem tudo é POSIX. por exemplo, consulte man unimplemented(IIRC, pode ser man security) em um sistema GNU / Linux.
strugee
Strugee está correto. Eles não são totalmente compatíveis, mas estão tentando ser. Não tenho certeza de como resolver isso na resposta. O Unix-Like também é tecnicamente diferente do POSIX, mas, em geral, quando as pessoas dizem Unix-Like, geralmente significam POSIX.
coteyr
11
Algumas informações complementares nestas perguntas e respostas .
não, os desenvolvedores de kernel do Linux nunca pretendem ser compatíveis com POSIX. Eu esqueço onde li isso (procurei nas páginas de manual, mas não consegui encontrá-lo), mas existem alguns syscalls que nunca serão implementados devido a considerações de segurança.
strugee
Acredito que o GNU foi originalmente concebido para ser um sistema operacional.
Faheem Mitha
14

Linux não é um sistema operacional, é um kernel. O Linux por si só não possui um ambiente de 'terra do usuário' (sem aplicativos, sem comandos, sem ... etc ...).

Se você deseja ter um sistema operacional completo, adicione uma terra de usuário ao seu kernel. Historicamente, para Linux, é GNU. Todas as distribuições (?) Linux não são distribuições 'reais'. Eles são distribuições GNU / Linux (GNU + Linux).

O BSD é um sistema operacional 'unix-like' completo, com seu próprio kernel e sua própria área de usuário (sem kernel do linux nem GNU).

A família GNU / Linux e * BSD (FreeBSD, OpenBSD e NetBSD) são SO 'unix-like', se comportam como Unix.

Aqui está uma comparação entre (GNU) / Linux e * BSD: http://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html

dirtyvader
fonte
seu link não funciona #
Anthon
@Anthon que está trabalhando
Prvt_Yadav