Diferença entre os tipos de sistema operacional UNIX [fechados]

0

Qual é a diferença entre Linux, AIX, Solaris, MAC. Estes não são todos algum tipo de sabores Unix? Por que precisamos de tantos tipos? Por que não pode haver apenas um tipo?

    
por Web Nash 28.07.2014 / 21:39

2 respostas

3

É histórico, mais ou menos como a pergunta: "Por que há mais de um estado-nação?". Presumivelmente, em algum momento há algumas centenas de milhares de anos, havia apenas uma população singular de homo sapiens e, no entanto, agora há muitos.

O UNIX original era uma entidade singular que foi escrita em assembly não portátil para o PDP-11 como um Bell Labs da AT & T paraleliza o projeto (ou desmembrado) do sistema operacional MULTICS, para o qual Bell havia contribuído anteriormente. Como isso demandou muito trabalho - talvez, uma quantia comparável à criação do próprio PDP-11, que não era um produto da Bell - as pessoas da Bell Labs decidiram que seria bom fazer isso. tipo de coisa em uma linguagem de nível mais alto do que a montagem específica da arquitetura; ou seja, uma linguagem que poderia ser implementada usando qualquer instrução de montagem apropriada a uma máquina específica, mas que funcionou da mesma maneira em todos os lugares.

Este é agora um princípio muito fundamental do design de software: você projeta coisas em camadas, onde cada camada lida com as que fazem fronteira como uma abstração. "Abstração" neste contexto significa algo que descreve apenas os detalhes relevantes de outra coisa; o que é "relevante" é definido pelo contexto. Voltando ao nosso exemplo de Unix, os idiomas B e C foram desenvolvidos; eles abstraíam os detalhes do nível de montagem em comandos de nível superior. Isso significa que você pode usar uma linguagem desse tipo para ler um arquivo da mesma maneira na máquina A e na máquina B, mesmo que haja detalhes de nível inferior envolvidos que sejam completamente diferentes. Se você escrevesse um sistema operacional inteiro em tal idioma, poderia então compilar e executar esse SO em qualquer máquina para a qual o idioma fosse implementado. Se isso parece mais trabalho do que menos, não é; a linguagem é menos trabalhosa que o sistema operacional, e o sistema operacional mais a linguagem provavelmente ainda terá menos trabalho do que o SO teria sido por si só. Certamente não será mais, porque está usando os bits intercambiáveis da linguagem e esses são bits que teriam que ser implementados para o SO de qualquer maneira, e quando você chegar à arquitetura B, tudo que você precisa refazer é a implementação da linguagem. . Além disso, agora você tem duas coisas distintas que podem ser colocadas em camadas e podem ser combinadas com outras coisas.

Tenha em mente que no nível da montagem, não existe nem mesmo um arquivo - então há um exemplo de uma entidade abstrata de nível superior. B, C e Unix surgiram quando conceitos como esse tomaram uma posição firme e tiveram sucesso, talvez, porque fizeram bom uso deles. Exatamente as mesmas pessoas desenvolveram tanto a linguagem C como o sistema operacional Unix, e elas se encaixam muito bem.

Embora não houvesse uma especificação formal de C por alguns anos, a Bell licenciou o código-fonte do Unix para universidades nos anos 70 (methinks: uma era muito mais aberta do que agora, tecnologicamente) e é assim que o primeiro " Unix-like "OS, ou seja, BSD, surgiu. Além disso, na década seguinte, a Bell fez alguns acordos comerciais com (por exemplo) HP e Sun Microsystems, resultando em ainda mais variações.

Embora a Bell tenha controle sobre o código-fonte, eles não exerceram nenhum direito de propriedade em relação aos conceitos do SO, talvez porque já licenciaram o Unix e permitiram que ele evoluísse independentemente deles. Dar ao mundo C significava que o C era mais bem-sucedido do que se ele tivesse guardado para si mesmo - esse é o padrão predominante para as especificações da linguagem - e isso beneficiava o Unix. É por isso que coisas como o OSX acabaram sendo possíveis; O OSX é o sucessor do NeXTstep, que era uma plataforma baseada em Mach (arquitetura) usando um kernel BSD.

Isso deixa o Linux e o GNU, que implementaram um sistema operacional unix usando todos os códigos open source 1 - o conceito de software livre, de código aberto tendo sido previamente defendido pelo GNU e seu fundador Richard Stallman. Neste ponto, os vários aspirantes comerciais tinham percebido

that the standards rivalries often termed as the Unix wars were causing all participants more harm than good, leaving the UNIX industry open to emerging competition from Microsoft. http://en.wikipedia.org/wiki/Open_Group

E essas especificações foram unificadas, facilitando a criação de softwares que funcionem em qualquer variante comercial de reclamações. Também significava que qualquer um estava livre para obedecer; talvez os principais jogadores não tenham visto o que viria a seguir, porque era um pouco "fora da caixa", e talvez eles não se importassem de qualquer maneira, mas em qualquer caso, fazendo o código fonte para tal implementação (GNU + Linux) abriu-se atraiu muita atenção positiva, e aqui estamos nós: não havia um grande esquema, apenas muitos planos independentes girando em torno do mesmo sol.

1. O BSD ainda estava em um limbo legal, base de código original, na época.

    
por 28.07.2014 / 22:37
2

Poderia também perguntar, por que não pode haver apenas um tipo de carro? Não seríamos todos felizes dirigindo um Gremlin? Ou talvez um El Camino?

Existem algumas razões históricas para alguns dos desvios entre os sabores proprietários no Unix e no Linux que permitiriam algumas leituras interessantes (descobrir que todos esses recursos estariam fora do escopo para essa pergunta aberta, eu recomendo que você faça algumas pesquisas sobre os sabores que você gosta ou leu para encontrar suas origens). Da mesma forma, os sabores mais recentes do Linux se beneficiaram do mundo de código aberto em que vivemos e podem ser muito especializados e conter configurações / apps / tweaks destinados a usos específicos (por que executar serviços extras que nunca serão necessários para esse sistema específico).

Para que você possa rodar um firewall (BTW é linux), você pode rodar uma estação de trabalho full gui (BTW é linux), você pode rodar um NAS (BTW é linux).

Então, voltando ao círculo completo ... Linux = nome errado, existem muitas versões do Linux para definir desta maneira. AIX - Versão proprietária da IBM do Unix. Solaris - versão proprietária da Sun do Unix. Mac - versão proprietária da Apple do Linux / Unix (Honestamente não olhei para ver de onde foi derivado).

Eu recomendo que você aceite a diversidade :)

    
por 28.07.2014 / 21:58

Tags