2010-03-27 30 views
17

¿Cuál es el mejor sistema operativo para estudiar para poder escribir desde cero su propio sistema operativo x86?¿El mejor sistema operativo educativo para estudiar?

+1

Solo tengo curiosidad ... ¿por qué querrías hacer eso? – intuited

+4

Escribir su propio sistema operativo, incluso uno muy simple, es una muy buena forma de aprender cómo funcionan. –

+8

No sé si puedo darle una respuesta que pueda entender, ya que realmente no entiendo su pregunta. No entiendo cómo no podrías querer escribir un sistema operativo. Debemos ser de lados opuestos de la galaxia. – mudge

Respuesta

9

Creo que Minix fue creado para ese propósito.

¡Diviértete!

+1

No se olvide del libro de Tannenbaum que tiene la teoría y la práctica y fue la razón por la que se escribió Minix: http://www.amazon.com/Operating-Systems-Design-Implementation-Second/dp/0136386776 – msw

+0

Aún mejor ulix de unlixos.org Ulix fue escrito en C y Assembler para la arquitectura Intel x86 Ulix ya ha sido utilizado tres veces en cursos de sistemas operativos en TH Nürnberg (Instituto de Tecnología de Nuremberg) – Talal

1

Honestamente, probablemente no debería comenzar con una arquitectura x86, o incluso sistemas operativos, sino tal vez algo así como un kit de inicio de 8 bits, como un básico Fox11 development kit. En la universidad, escribí mi primer (y único) sistema operativo en Assembly para un procesador M68HC11 (el del kit).

Si realmente desea construir su propio sistema operativo desde cero, tiene un largo camino por delante.

+0

Sé en lo que me estoy metiendo. Ya estoy en eso. Gracias por tu contribución. – mudge

9

Puede ser difícil comprender la fuente de todo un sistema operativo a la vez. El tutorials más en osdev.org tiene unas pocas muestras de código "básicas" para comenzar.

+0

Impresionante, gracias. – mudge

2

Para mi clase de sistema operativo en la universidad usamos el proyecto de sistema operativo Nachos y lo implementé. Hice la versión de C++, sin embargo, creo que también hay un puerto de Java para esto. Recuerdo que fue muy interesante y aprendí mucho, a pesar de que fue mucho trabajo.

+0

Nueces! Iba a decir NachOS: lo usamos en UWaterloo para nuestra clase de sistema operativo. Simplemente déjeme decirle: cualquier sistema en el que el espacio del kernel sea little-endian y el espacio del usuario sea big-endian sea un poco mindfsck. – MikeyB

0

Hace un tiempo leí este artículo. Puede que le resulte interesante. Este tipo escribió MINIX en el día con el único propósito de enseñar conceptos de SO. Entonces, probablemente sea un buen sistema operativo simple para estudiar. http://www.cs.vu.nl/~ast/brown/

Sin embargo, como mencionaron Martin y Cory, es una gran parte para masticar.

0

No tiene mucho sentido estudiar sistemas operativos obsoletos, que son prácticamente todos los sistemas operativos actuales, ya que tienden a tener una vida larga. Echa un vistazo a algunas ideas nuevas (aunque basadas en pruebas verdaderas) como Singularity

2

Todo depende de cómo quieras que funcione tu sistema operativo, si quieres un microkernel probablemente deberías estudiar Minix 3, o si quieres un kernel monolítico, el kernel de linux actual es un buen lugar para comenzar (HINT: mira en arch/x86/boot, allí hay un código muy interesante). Sin embargo, personalmente creo que debería leer los manuales de Intel y AMD, y luego leer un poco en los foros y wiki de osdev.org. Tienen un montón de código para estudiar y, en general, son útiles para los novatos.

1

Creo que es la mejor manera de leer muchas fuentes de sistemas operativos diferentes, definitivamente tutoriales de osdev barebone, documentos técnicos sobre la investigación del sistema operativo y documentación sobre su hardware de destino.

Yo personalmente recomendaría mirar kernel de pistacho l4-ka, escrito en bastante buen C++. También hay varios proyectos más pequeños que definitivamente vale la pena visitar, como jimix o pedigrí.

mejor pegarse en torno a foros y wiki osdev - hay una gran cantidad de información ya contestadas - ver http://forum.osdev.org y http://wiki.osdev.org

2

acabo de escribir mi versión del kernel x86 desde cero! (para mi OS class project) y esa fue la experiencia que probablemente no podría describir. Puede encontrar recursos valiosos en el enlace de arriba.

Cuestiones relacionadas