É verdade que a primeira versão do Linux foi baseada em partes do Unix? [duplicado]

10

Eu e um amigo tivemos uma discussão sobre Linux e Unix hoje e meu amigo continuou dizendo que a primeira versão do kernel do Linux era baseada em [partes] do kernel Unix.

Isso realmente me surpreendeu porque sempre achei que a arquitetura do Linux é semelhante ao Unix - desde a primeira versão. Então, é verdade que a primeira versão do Linux foi baseada em partes do Unix?

    
por js-coder 24.01.2012 / 13:40

3 respostas

19

Mesmo se o Linux fosse um sistema escrito do zero, a primeira versão do Linux era muito parecida com o minix, que é um "mini-Unix". Está no anúncio da Linus .

A Wikipedia fornece uma breve descrição da história do Linux . Se você quiser saber mais sobre este assunto, este livro é o que você precisa. Você aprenderá lá que Linus Torvalds usou man pages do Unix para saber quais chamadas de sistema ele precisa implementar e como eles tinham que funcionar.

    
por 02.06.2016 / 18:42
7

Os primeiros kernels Linux tinham que ser bootstrapados com o MINIX , que foi desenvolvido com um design semelhante ao UNIX em mente. Agora, Linus usava livros no UNIX quando estava projetando seu kernel. A data de sua ordem de livro é arquivada.

Até o momento, o Linux não é totalmente compatível com UNIX, portanto, ele é designado como " semelhante ao UNIX "( O Mac OS X, por outro lado, é um (completo) UNIX ).

O título da sua pergunta é simplesmente "Linux", o que implica não apenas no kernel, mas também em outras partes dele. Eu diria que quando você leva em conta coisas fora do kernel para comparar com o UNIX, é mais parecido. Dado coisas como X, etc. O kernel do Linux sozinho chega muito perto do UNIX, mas quando você leva em conta as partes GNU, fica ainda mais próximo.

A versão 0.01 do kernel, pode ser ainda baixada . Embora eu não tenha testado se ele compila, muito menos é executado.

    
por 24.01.2012 / 14:33
5

Não.

Não faz sentido dizer que a primeira versão do Linux em particular foi "baseada em partes do Unix". Não era uma porta do kernel do Unix. Ele não começou com o código Unix nas primeiras versões [procurar fonte] e o substituiu ao longo do tempo . Linus não tinha acesso ao código-fonte do Unix [ entrevista] .

O que é copiado é a API. A mesma API está na versão mais recente do Linux e permanecerá para sempre. Como regra, o Linux não remove nenhuma API porque isso poderia quebrar algum aplicativo. O que é copiado é o mínimo necessário, quando o Linux (e a primeira versão do Linux libc) foi escrito para executar aplicativos Unix existentes. Essa é uma habilidade fundamental bem conhecida do Linux. Você pode descrever isso de maneiras diferentes, mas não há realmente nada sobre o que discutir aqui.

Por exemplo mesma API é copiada no GNU libc (que é anterior ao Linux). IIRC Linux efetivamente copiado da documentação da API ( man pages).

Eu estou relutante em dizer isso, devido à melhor parte do design da interface entre o kernel Unix e os aplicativos, como o gcc; "tudo é um arquivo". As operações fundamentais de arquivos foram padronizadas como parte da linguagem de programação C . Minhas páginas de manual sugerem C89, ou seja, um ano ou mais antes. Por exemplo. O Windows implementa a mesma API C. No entanto, isso encobre muitos bits complicados que não são arquivos e / ou que C não incluiu no padrão, então temos que reconhecer o Linux como especificamente semelhante ao Unix.

Especificamente, a API em esta "primeira" versão do Linux é 70 chamadas do sistema , o seu listas de argumentos , 40 códigos de erro ... e superando qualquer um desses, 200 linhas definindo controles de terminal que é exatamente o que eu estava pensando quando escrevi" bits complicados ". Mas certamente há mais tarde também.

Como sugerido em outro lugar, isso é um pouco doloroso. Desde que foi criado em um "estudo" financiado pela Microsoft, e depois litigado por anos (SCO v IBM) sem nenhuma evidência. IIRC eles eventualmente mostraram algumas linhas de código. Descobriu-se que todo o "IP infrator" (que eles alegaram que a IBM adicionou ao Linux) era apenas algumas APIs. Apesar dos múltiplos precedentes, neste ponto, permitir a cópia de APIs, também conhecidas como engenharia reversa de sala limpa.

Como mencionado por outros, a relação com Minix foi mais estreita. Eu acredito que o sistema de arquivos formato foi retirado do Minix. As estruturas de dados são mais específicas da implementação do que as APIs mais abstratas, e se você disse "baseado em partes de" Minix você não estaria necessariamente mentindo.

O Minix também é descrito como um tipo Unix (ou "clone Unix", o que significa um sistema operacional semelhante ao Unix, mas não baseado em seu código). Em qualquer sentido, o Linux é baseado no Unix, o mesmo se aplica ao Minix. (Existem alguns outros clones do Unix também; Wikipedia lista alguns proprietários e várias camadas de compatibilidade para o Windows).

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus ([email protected])

PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

    
por 02.06.2016 / 22:24

Tags