Alguma diferença básica entre Unix e Linux em design e outros aspectos? [fechadas]


24

Eu continuo lendo esta frase:

O Linux é um sistema semelhante ao Unix, mas não é o Unix.

Não sei qual é a diferença real entre os dois. Eu sei que o Linux teve muitas idéias do Unix e as licenças dos dois são diferentes. Além disso, como não sou especialista em nenhum deles, quero saber se existem diferenças básicas entre eles no design ou em outros aspectos significativos.


2
você se importaria de esclarecer onde leu isso? a pesquisa na web mostra o Linux Kernel Development (3ª Edição), de Robert Love, é isso?
mosquito

Respostas:


30

Um sistema "Unix like" pode ser totalmente compatível com a especificação UNIX única , o nome coletivo de padrões para o que é qualificado como sistema Unix, mas, ao mesmo tempo, Unix é uma marca registrada do The Open Group e os fornecedores de sistemas semelhantes ao Unix precisam para registrar seus sistemas para se qualificar oficialmente como Unix. Atualmente, os sistemas UNIX 03 registrados são:

  • Apple Inc .: Mac OS X versão 10.5 Leopard em computadores Macintosh baseados em Intel
  • Apple Inc .: Mac OS X versão 10.6 Snow Leopard em computadores Macintosh baseados em Intel
  • Fujitsu Limited: Sistema operacional Solaris ™ 10 em plataformas Fujitsu PRIMEPOWER® de 64 bits SPARC®
  • Hewlett-Packard Company: HP-UX 11i V3, versão B.11.31 ou posterior, nos Servidores HP Integrity
  • IBM Corporation: AIX 5L para POWER V5.2 de 8-2004 ou posterior com APARs: IY59610, IY60869, IY61405 com VAC 6.0.0.8 ou posterior nos sistemas pSeries CHRP
  • IBM Corporation: AIX 5L para POWER V5.3 de 7-2006 ou posterior em Sistemas que usam a arquitetura do sistema CHRP com processadores POWER
  • IBM Corporation: Sistema operacional AIX 6 V6.1.2 com SP1 ou posterior em Sistemas que usam a arquitetura do sistema CHRP com processadores POWER e placas assíncronas de 2, 8 ou 128 portas
  • Oracle Corporation: Oracle Solaris 11 FCS e posterior em plataformas baseadas em SPARC, 32 bits e 64 bits e em plataformas baseadas em X86, 32 bits e 64 bits
  • Oracle Corporation: Sistema operacional Solaris 10 mais patch 118844-06 para X86 e versões posteriores, em sistemas baseados em X86 de 64 bits
  • Oracle Corporation: Sistema operacional Solaris 10 e nos sistemas baseados em SPARC de 32 e 64 bits
  • Oracle Corporation: Sistema operacional Solaris 10 e ativado, em sistemas baseados em X86 de 32 bits

Fornecedores de sistemas Unix de código aberto (principalmente Linux e FreeBSD) normalmente não se registram no The Open Group, para evitar os custos de certificação ou, bem, porque não encontram muito valor em fazê-lo. Em teoria, é perfeitamente possível que um sistema semelhante ao Unix seja tecnicamente Unix, e tudo o que falta é certificação.

A Linux Foundation, por outro lado, criou o Linux Standard Base , um padrão ISO , em um esforço para padronizar o Linux. A conformidade com o POSIX está no coração do SUS e do LSB, mantendo de certa forma o vínculo entre o Unix e o Linux.

Os sistemas Unix e Unix-like tendem a ser mais semelhantes do que diferentes. Em teoria, todos os sabores populares do Unix, registrados ou não, são compatíveis com POSIX (total ou principalmente), portanto, eles compartilham uma interface de programação básica, shells e utilitários (e muitos outros coisa). O IEEE e o Open Group mantêm uma cópia disponível gratuitamente da versão mais recente, POSIX.1-2008 , na qual você pode encontrar mais informações sobre o que realmente significa conformidade com POSIX.

Agora, além das razões técnicas e legais, o Linux herdou o mantra "not Unix" da associação ao GNU , um sistema operacional semelhante ao Unix, iniciado por Richard Stallman. GNU significa "GNU não é Unix", pois as intenções de Stallman eram construir um sistema compatível com Unix que fosse gratuito e, para fazer isso, ele não deveria conter código Unix, pois o Unix é proprietário.

Os primeiros desenvolvedores do Linux começaram a portar as ferramentas GNU para o Linux, e o sistema resultante foi referido como GNU / Linux já em 1992 . Há uma controvérsia duradoura sobre se o Linux deve ser chamado de Linux ou GNU / Linux (já que incorpora várias partes do GNU), mas isso é irrelevante para a sua pergunta, o que é relevante é que "not Unix" pode apenas se referir à associação com o GNU e pouco tem a ver com seu design, dependendo do contexto.

O artigo "History of Linux" na Wikipedia explica as origens do Linux e sua relação com o Unix (via Minix e GNU) em alguns detalhes, e você também deve reservar um tempo para ler as referências do artigo, se estiver interessado em aprendendo mais.


boa resposta, vou esperar e ver se escolher a sua como a minha resposta :)
Gnijuohz

8
@Gnijuohz Não se apresse em aceitar respostas, sempre deixe sua pergunta amadurecer por um dia ou dois (ou mais, se você quiser), você poderá obter ótimas respostas de pessoas que não se incomodariam em responder se descobrissem que você já aceitou uma resposta. responda. Aceitar uma resposta é totalmente sua, você nem precisa aceitar se nenhuma das respostas foi útil para você, independentemente de como a comunidade respondeu a elas.
9119

1
Interessante, aparentemente, a versão mais recente do OS X não é o "oficialmente" UNIX.
Kris Harper #

@ root45 Isso é de se esperar, pois é necessário algum tempo para verificar a compatibilidade de uma versão.
9119

@YannisRizos Ah okay. Isso faz sentido. Obrigado pela informação.
Kris Harper #

4

O UNIX é uma família de sistemas operacionais e atualmente o UNIX é mais uma marca de propriedade do The Open Group. Para que um sistema operacional tenha a marca UNIX, ele deve ser submetido a um teste de conformidade e, para Linux, isso significaria que todas as distribuições existentes no mercado (Ubuntu, Debian, Fedora, Red Hat, etc.) precisariam passar por esse teste de conformidade para cada versão . Portanto, essa é uma das principais razões pelas quais o Linux é um sistema semelhante ao unix e não um UNIX.

Esse teste que eu mencionei é para garantir a conformidade do sistema operacional com a Single Unix Specification, que atualmente está na versão 4 SUSv4 (Single Unix Specification versão 4). Esta especificação define um conjunto de APIs que devem estar disponíveis para aplicativos para que um sistema seja qualificado para o nome UNIX.


É um bom padrão a seguir? Os autores do Linux tentam?

1
É um bom padrão, porém incompleto. Os colaboradores do Kernel do Linux tentam seguir esse padrão e o Linux pode ser considerado não oficialmente como um sistema UNIX. Se você estiver desenvolvendo aplicativos de acordo com os padrões Unix, ele provavelmente será compilado e executado em um sistema Linux. Infelizmente, como eu disse antes, o UNIX é bastante incompleto em alguns aspectos; portanto, os sistemas operacionais fornecem APIs adicionais para algumas tarefas, e é isso que torna determinadas plataformas de aplicativos dependentes, pois essas APIs adicionais tendem a variar.
Raphael

Houve uma distribuição chamada Linux-FT que iniciou o processo de certificação POSIX, mas sem surpresa os patrocinadores ficaram sem dinheiro. ukuug.org/newsletter/linux-newsletter/linux@uk12/ftinfo.shtml

Obrigado por esta informação! Sempre me perguntei se alguém já havia tentado certificar uma distribuição.
Raphael

3

As respostas existentes já mencionam algumas das diferenças que você está procurando. Sem ser o especialista em kernel do Linux, também acrescentaria que muitas das diferenças de design / implementação entre o GNU / Linux e os vários Unices são abordadas na série de padrões de design do kernel do Linux .


2

"UNIX" é algo complicado de definir. Em termos de conformidade com os padrões, o Solaris e o Mac OS X são "oficialmente" o UNIX, mas você não precisa gastar muito tempo antes de encontrar grandes diferenças entre os dois. Há um ótimo diagrama que documenta o lançamento de vários tipos de sistemas operacionais UNIX ou UNIX e como eles influenciaram e divergiram um do outro.

No grande esquema de coisas que parecem, andam e grasnam como o UNIX, um sistema Linux [*] é um dos lançamentos mais convencionais. É bastante comum que as pessoas se refiram ao Unices ou * nix e signifiquem "qualquer coisa semelhante ao UNIX", que provavelmente inclui o Linux. No entanto, UNIX é uma marca registrada com limitações de como pode ser aplicada comercialmente; nenhuma distribuição Linux está de acordo com essas limitações.

[*] Como essa pergunta convida a um nível de divisão semântica de cabelos, acho que é importante neste caso apontar que o próprio Linux é apenas um kernel no qual um sistema operacional pode ser construído. É comum construir um sistema semelhante ao UNIX sobre o Linux, para o qual foi projetado, e esse sistema geralmente é construído a partir dos componentes do projeto GNU. Na resposta acima, "Linux" pode ser lido como uma abreviação de "um sistema operacional que incorpora o kernel do Linux".


@YannisRizos Vou adicionar uma referência à resposta, ela definitivamente é certificada.

Sim, você está absolutamente certo, a partir do Leopard e em diante o Mac OS é certificado UNIX 03, e aqui está outra referência .
9132 yannis

2

Uma vez eu li que Linux é o que você obtém quando pega um desenvolvedor de PC e pede que ele escreva um sistema operacional Unix, enquanto o FreeBSD é o que você obtém quando pega um desenvolvedor Unix e pede que ele faça um PC OS ... não ' Não esqueça os BSDs na sua comparação!

As diferenças estão principalmente no Kernel, pois os aplicativos do espaço do usuário (incluindo coisas como ls) fazem parte do projeto GNU. Isso significa que Unix, FreeBSD e Linux parecem ser praticamente a mesma coisa.

No entanto, existem diferenças quando você olha atentamente. O layout do diretório será diferente (mas muitas distribuições Linux usam seus próprios layouts, na maioria compatíveis, mas ainda assim diferentes), os sistemas de arquivos são diferentes (o Unix usa UFS, o FreeBSD usa FFS, o Linux usa Ext3 para ser simplista - todos eles podem usar portas de FSs comuns, por exemplo, ZFS)

Depois, existem diferenças nas principais APIs, o Linux fornecerá a API inotify para informar quando os arquivos mudarem, o Mac OSX fornecerá FSEvents e o FreeBSD fornecerá o kqueue .

Portanto, eles podem ser considerados da mesma família - compare um sistema Windows com as ferramentas GNU portadas para ele com um sistema Linux com as mesmas ferramentas. Eles apenas superficialmente parecerão os mesmos, mas um sistema Unix ou FreeBSD ainda parecerá comparável. Em uma análise mais detalhada, você encontrará aplicativos de portabilidade entre o FreeBSD, Unix e Linux relativamente fáceis em comparação com a migração para sistemas operacionais alternativos, como o Windows.


1

O Unix não é mais um único sistema operacional. Costumava ser uma implementação da Bell Labs / AT&T, mas agora é um padrão.

Tecnicamente, o Linux é apenas um kernel. Este kernel pode ser encontrado em sistemas operacionais não Unix, como o SO, sendo o mais popular o Android. Por outro lado, existem muitos sistemas operacionais baseados em Linux semelhantes ao Unix. Muitos (se não todos) estão usando as bibliotecas e utilitários do Gnu. Essa combinação está fornecendo às distribuições Linux a API Unix e a conformidade (ou não conformidade) com os padrões.

O padrão Unix não exige que um sistema compatível seja proprietário ou possua uma licença específica. BSDs, OpenSolaris / Illumos, darwin são exemplos de implementações Unix ainda livres de Linux.

Os sistemas compatíveis geralmente são, mas nem sempre, uma mistura de componentes proprietários e de código aberto, enquanto o Gnu / Linux pode ser totalmente de código aberto ou também incluir itens proprietários.

No que diz respeito à conformidade com o Unix, não há muitas diferenças. A maioria das distribuições Linux e implementações Unix compartilham o mesmo conjunto de comandos usando o mesmo conjunto de opções. No entanto, você encontrará muitas extensões dos comandos padrão, especialmente no lado do Gnu, onde são chamados de Gnuisms, e vários comandos que não são definidos pelos padrões em primeiro lugar (compiladores, comandos administrativos, instalação, empacotamento, ambiente gráfico). Esta é uma área onde você pode encontrar muitas divergências, incompatibilidades e, às vezes, guerras sagradas.

O modelo de desenvolvimento Gnu / Linux geralmente é considerado mais "orgânico" e "bazar", enquanto outros sistemas Unix são mais "projetados" e "catedral". Dependendo dos subsistemas, a diferença não é tão clara e depende dos indivíduos e / ou empresas por trás deles.


1

O Linux vem com muitas ferramentas, como:

  • Sistema GUI
  • Utilitários GNU (como cp, mv, ls, date, bash etc.)
  • ferramentas de instalação e gerenciamento
  • Compiladores GNU C / C ++
  • Editores (vi)
  • e vários aplicativos (como OpenOffice, Firefox).

No entanto, a maioria dos sistemas operacionais UNIX é considerada um sistema operacional completo, pois tudo vem de uma única fonte ou fornecedor.

Algumas coisas que eles compartilham:

  • Gerenciadores de GUI, arquivos e janelas (KDE, Gnome)
  • Conchas (ksh, csh, bash)
  • Vários aplicativos de escritório, como o OpenOffice.org
  • Ferramentas de desenvolvimento (compiladores perl, php, python, GNU C / C ++)
  • Interface POSIX

O Linux também expande a filosofia do Unix ...
Job

2
O Linux não é apenas um kernel, o kernel do Linux é, bem, o kernel. O Linux geralmente se refere a um sistema completo construído em torno do kernel do Linux.
yannis

@ Anônimo - Às vezes, se você editar e corrigir sua resposta, os votantes negativos podem remover o voto negativo. Não é garantido, mas às vezes ajuda. (Eu não votei apenas, apenas tentando ser útil) :) O restante da sua resposta está correta, IMHO, portanto, livrar-se da discrepância pode ajudar a obter alguns votos positivos / evitar mais votos negativos.
jmort253

-7

Na verdade, o Linux era uma engenharia reversa do Unix, afinal o design do kernel seguia a filosofia de Ken Thompson. O caminho do Linux parece imitar a filosofia do Unix o mais próximo possível, sem sobrecarregar o pensamento original.


@YannisRizos O que você quer dizer com "mas não era realmente utilizável". AFAIK era totalmente utilizável, mas como foi escrito no conjunto do PDP, foi difícil portá-lo em outras arquiteturas.
sakisk

@ samual-johnson -1 Porque você não faz backup de suas declarações com referências. É a primeira vez que ouço falar da "filosofia Ken Thompson" (e é Thompson, não Thomson).
Sakisk

1
@faif Verificando minhas referências, o kernel rudimentar que eu estava me referindo foi escrito para o GE-645 e não para o PDP, por isso foi muito difícil chamá-lo de kernel Unix. Excluí o comentário, pois o ponto principal era sobre a falta de referências e seu comentário é suficiente para transmitir essa mensagem. - samual, dedique algum tempo para fazer backup de suas reivindicações com referências sólidas ou revisá-las para algo menos baseado em opiniões.
9119

@YannisRizos Interesting. Não ouvi falar do GE-645, que segundo a Wikipedia era uma versão aprimorada do Multics. Obrigado pela informação.
Sakisk
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.