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 :-(.