Incluso si Linux era un sistema escrito desde cero, la primera versión de Linux se parecía mucho a minix, que es un "mini-Unix". Está en el anuncio de Linus.
Wikipedia proporciona una breve descripción de la historia de Linux. Si quieres saber más sobre este tema, este libro es lo que necesitas. Allí aprenderá que Linus Torvalds usó las páginas man de Unix para saber qué llamadas al sistema tenía que implementar y cómo tenían que funcionar.
Los primeros núcleos de Linux tuvieron que arrancar con MINIX, que se desarrolló con un diseño similar a UNIX en mente. Ahora, Linus usó libros sobre UNIX cuando estaba diseñando su núcleo. Incluso se archiva la fecha de su pedido de libros.
Hasta la fecha, Linux no es completamente compatible con UNIX, por lo tanto, está designado como "UNIX-Like" (Mac OS X, por otro lado, es un UNIX (completo)).
El título de su pregunta dice simplemente "Linux", lo que implica no solo el kernel, sino también otras partes del mismo. Yo diría que cuando tomas en cuenta cosas fuera del kernel para compararlo con UNIX, es aún más parecido. Teniendo en cuenta cosas como X, etc. El kernel de Linux por sí solo se acerca bastante a UNIX, pero cuando se tienen en cuenta las partes de GNU, se acerca aún más.
La versión 0.01 del kernel aún se puede descargar. Aunque no he probado si compila, y mucho menos si se ejecuta.
No.
No tiene sentido decir que la primera versión de Linux en particular estaba "basada en partes de" Unix. No era un puerto del kernel de Unix. No comenzó con el código Unix en las primeras versiones [buscar fuente] y lo reemplazó con el tiempo. Linus no tenía acceso al código fuente de Unix [entrevista].
De lo que se copió es de la API. La misma API está en la última versión de Linux y permanecerá para siempre. Como regla, Linux no elimina ninguna API porque eso dañaría alguna aplicación. Lo que se copia es lo mínimo necesario, cuando Linux (y la primera versión de Linux libc) se escribió para ejecutar aplicaciones Unix existentes. Esta es una habilidad fundamental bien conocida de Linux. Puedes describirlo de diferentes maneras, pero en realidad no hay nada que discutir aquí.
P.ej. la misma API se copia en GNU libc (que es anterior a Linux). IIRC Linux efectivamente copiado de la documentación de la API (man
páginas).
Me resisto a decir incluso eso, debido a la mejor parte del diseño de la interfaz entre el kernel de Unix y las aplicaciones, como gcc; "todo es un archivo". Las operaciones de archivos fundamentales se estandarizaron como parte del lenguaje de programación C . Mis páginas de manual sugieren C89, es decir, un año más o menos antes. P.ej. Windows implementa la misma API de C. Sin embargo, eso pasa por alto demasiados bits complicados que no son archivos y/o que C no incluyó en el estándar, por lo que debemos reconocer que Linux es específicamente similar a Unix.
Específicamente, la API en esta "primera" versión de Linux tiene 70 llamadas al sistema, sus listas de argumentos, 40 códigos de error... y superando cualquiera de esos, 200 líneas que definen controles de terminal, que es justo lo que estaba pensando cuando escribí "fiddly pedacitos". Pero ciertamente también hay más más adelante.
Como se insinuó en otra parte, esto es un poco doloroso. Dado que se mencionó en un "estudio" financiado por Microsoft, y luego se litigó durante años (SCO v IBM) sin ninguna evidencia. IIRC finalmente mostró algunas líneas de código. Resultó que toda la "IP infractora" (que afirmaron que IBM agregó a Linux) era solo algunas API. A pesar de los múltiples precedentes en este punto que permiten la copia de API, también conocida como ingeniería inversa de sala limpia.
Como mencionaron otros, la relación con Minix era más apretado Creo que el formato del sistema de archivos fue tomado de Minix. Las estructuras de datos son más específicas de implementación que la mayoría de las API abstractas, y si dijo "basado en partes de" Minix no necesariamente estarías mintiendo.
Minix también se describe como similar a Unix (o "clon de Unix", lo que significa un sistema operativo similar a Unix pero no basado en su código). En cualquier sentido, Linux se basa en Unix, lo mismo debería aplicarse a Minix. (También hay algunos otros clones de Unix; Wikipedia enumera algunos propietarios y varias capas de compatibilidad para Windows).
Estoy haciendo un sistema operativo (gratuito) (solo un pasatiempo, no será grande y profesional como gnu) para clones 386 (486) AT. Esto se ha estado gestando desde abril, y está empezando a prepararse. Me gustaría recibir comentarios sobre las cosas que a la gente le gustan/no les gustan en minix, ya que mi sistema operativo se parece un poco (mismo diseño físico del sistema de archivos (por razones prácticas) entre otras cosas).
Actualmente he portado bash (1.08) y gcc (1.40), y parece que todo funciona. Esto implica que obtendré algo práctico dentro de unos meses, y me gustaría saber qué características desearía la mayoría de la gente. Cualquier sugerencia es bienvenida, pero no prometo que la implementaré :-)
Linus ([email protected])
PD. Sí - está libre de cualquier código minix , y tiene un fs multiproceso. NO es portátil (utiliza el cambio de tareas 386, etc.), y probablemente nunca admitirá nada más que discos duros AT, ya que eso es todo lo que tengo :-(.