Esto podría ser en vano, ya que sé que escribir un sistema operativo es insoportablemente complicado (especialmente para uno mismo).
No espero construir el próximo Linux o Windows.
Sé que será horrible, tendrá errores y no funcionará, pero está bien.
Quiero escribir todo yo mismo, en Ensamblador , C y (algo) C ++ .
Este es un proyecto futuro, ya que estoy ocupado con otras cosas en este momento y no tengo tiempo de inmediato, pero pensé que lo haría ahora, así que tal vez podría obtener muchas respuestas a esto, y podría construir y ser un recurso útil para este tipo de enfoque (todo lo demás que he visto involucró la construcción de minix, el uso de un cargador de arranque existente, la construcción en un programa de arranque virtual, etc.).
Quiero configurar una de mis computadoras de escritorio más antiguas con un monitor, teclado y mouse, y comenzar a trabajar en un disco duro en blanco .
Quiero aprender a escribir mi propio gestor de arranque (he encontrado muchos recursos sobre esto, pero para completar, agregue algunos buenos), mi propio controlador USB (si es necesario), un controlador de CD (si es necesario ), etc. Todo, desde cero.
¿Cómo pongo el código en la computadora? ¿Es mejor hacerlo con un disquete? ¿Pueden la mayoría de las computadoras hacerlo desde una memoria USB?
¿Qué controladores necesito y puede sugerir alguna referencia para construirlos?
Después de la secuencia de arranque, ¿luego qué? ¿Cómo entro en modo protegido, etc.
¿Cómo administro la memoria sin la ayuda de un sistema operativo? ¿Utilizo las direcciones que quiero? ¿No es necesaria la inicialización?
¿Qué me encontraré sin duda alguna que me confundirá?
¿Cómo puedo convertirlo en un O / S de línea de comandos y uno gráfico?
¿En qué se basa un O / S gráfico? Como, ¿cómo haría algo como, una línea de comando, con una fuente y una imagen en la parte superior?
¿Dónde puedo leer sobre cómo configurar un entorno multitarea? (es decir, tener dos líneas de comando de tipo gráfico que se ejecutan una al lado de la otra).
¿Cómo podría configurar una especie de sistema de ventanas? ¿Cómo muestro gráficos en la pantalla una vez configurada la multitarea simple?
Créame, entiendo que este es un proyecto muy complicado, y probablemente nunca lo completaré ni escribiré nada de utilidad.
Hay muchas otras piezas a esto que no he mencionado, si piensas en alguna, no dudes en agregarlas también.
Por favor escriba un "tema" por respuesta, por ejemplo, controladores USB, y luego tal vez una lista de recursos, cosas a tener en cuenta, etc.
Además, no sugiera construir a partir de otro O / S o código preexistente. Sé que leeré una gran cantidad de código preexistente (como el kernel de Linux, o recursos de ejemplo, controladores existentes, etc.) pero en última instancia, quiero escribir todo yo mismo. Sé que debería basarme en algo más, y hay muchas otras preguntas en SO sobre eso que puedo leer si cambio de opinión y sigo ese camino. Pero este se trata de hacer todo desde cero.
¿Alguna sugerencia sobre cómo hacerlo gráfico? ¿Diferentes modos de video y cómo trabajar con ellos, etc.?