¿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?
Respuesta
Creo que Minix fue creado para ese propósito.
¡Diviértete!
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
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
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.
Sé en lo que me estoy metiendo. Ya estoy en eso. Gracias por tu contribución. – mudge
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.
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
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.
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
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.
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
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.
- 1. Detectar el sistema operativo
- 2. Cómo determinar el sistema operativo
- 3. El sistema operativo está eliminando el hilo
- 4. Diferencias fundamentales entre el sistema operativo Linux y el sistema operativo móvil (Android)
- 5. Sistema operativo recomendado para Visual Studio 2008
- 6. Requisitos del sistema operativo para arc4random_uniform()
- 7. Recursos para desarrollar un sistema operativo
- 8. ¿Un juego educativo para aprender a programar?
- 9. ¿Qué sistema operativo es el mejor para desarrollo PHP o desarrollo en general?
- 10. ¿El mejor sistema operativo para implementar una aplicación Java de baja latencia?
- 11. ¿Cuál es el mejor sistema operativo para un desarrollador de Microsoft?
- 12. Libros de Android en el sistema operativo
- 13. Determine el sistema operativo en .vimrc
- 14. ¿Cómo detectar el sistema operativo en ejecución?
- 15. jQuery - detectando el sistema operativo y la versión del sistema operativo
- 16. Pilas NFC en el sistema operativo Android
- 17. Cómo determinar el sistema operativo en elisp?
- 18. ¿Estoy codificando para un sistema operativo o el procesador?
- 19. ¿Algún sistema operativo implementa el almacenamiento en búfer para malloc()?
- 20. Sistema operativo de espacio aislado
- 21. sistema operativo y aplicaciones WPF
- 22. Detectar sistema operativo en Clojure
- 23. Actualizar sistema operativo Android programáticamente
- 24. Desarrollo de un sistema operativo
- 25. Desarrollo de un sistema operativo para la arquitectura x86
- 26. cómo detectar el sistema operativo actual de Gradle
- 27. API independiente del sistema operativo para supervisar el sistema de archivos?
- 28. base de datos sin sistema operativo requerido para el sistema integrado
- 29. Determine el sistema operativo durante el tiempo de ejecución
- 30. Rubyzip vs compresión de sistema operativo nativo
Solo tengo curiosidad ... ¿por qué querrías hacer eso? – intuited
Escribir su propio sistema operativo, incluso uno muy simple, es una muy buena forma de aprender cómo funcionan. –
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