¿Puedes sugerir un plan definitivo para ser un desarrollador de sistemas operativos?

De mi breve investigación sobre el tema,

Aparte de lo que ha mencionado, lo más probable es que llegue a un punto en el que tendrá que decidir si desarrollará su propia biblioteca estándar de C o usará otra persona (y después de esto, probablemente querrá implementar el estándar C ++ biblioteca de plantillas de alguna manera).

Aunque me gusta la idea de aprender más matemáticas, probablemente no sea la ruta más directa para poner en funcionamiento un sistema operativo, pero de nuevo, no duele. Sin embargo, la lógica formal (AND, OR, etc.) es definitivamente útil para comprender algunas de las cosas del ensamblaje, y es material estándar en un curso de matemáticas discreto. (Aunque estos son fáciles de aprender sin pasar por muchas matemáticas discretas).

También querrá tener una referencia sobre la arquitectura del sistema (x86, ARM, etc.) que está desarrollando a mano.

Como punto de partida, te sugiero que obtengas algo para arrancar (que implicará código de ensamblaje) que es capaz de meterte en el código C. Luego, puede comenzar a agregar interrupciones del sistema y hacer que su ensamblaje y las partes C se comuniquen entre sí (debe poder configurar y obtener datos de registro de C).

No estoy seguro de si es mejor construir su propio gestor de arranque o usar el de otra persona. Podría ser bueno solo en términos de entender lo que está sucediendo desde cero, pero diría que probablemente sea más productivo usar a alguien más una vez que conozca los conceptos básicos, ya que la codificación propia incluiría tener que agregar un montón de controladores para todo tipo de dispositivos de arranque (discos duros, unidades de CD / DVD / BluRay, etc.)

Nunca llegué tan lejos construyendo un sistema operativo, por lo que mi consejo puede ser totalmente falso, pero debería llevarte al menos hasta el punto en que tengas algo arrancando e imprimiendo cosas en la pantalla.

Seguir los artículos del sistema operativo mencionados en http://gatenotes.wordpress.com/os/ definitivamente acortará el tiempo para convertirse en desarrollador de SO

More Interesting

¿Cuándo quedará Android desactualizado?

¿Las computadoras podrán programarse en el futuro?

¿La velocidad de ejecución de un algoritmo que, al ejecutarse, hace que el sistema físico en ejecución tenga experiencia subjetiva, hace alguna diferencia en la naturaleza de esta experiencia subjetiva?

¿El nacimiento de la placa base de la computadora provino de estudiar el Lukasa de alguna manera?

Pasé más tiempo leyendo blogs de gestión de productos que codificación, a pesar de que estoy cursando una licenciatura en CS. Perdido :( ¿Cómo debo pasar mi último año?

Para aplicaciones web grandes, ¿dónde se almacenan los datos de aprendizaje automático?

¿Qué reglas debo seguir para seleccionar todas las rutas que son válidas de un vértice a otro vértice?

¿Por qué las estimaciones de "tiempo restante" en descargas e instalaciones son tan inexactas?

Calcular la derivada utilizando la definición de límite. ¿Hay una forma menos compleja de resolver este problema?

Si el mundo en Minecraft está representado en el servidor, y suponemos que el servidor tiene gigabytes de memoria, ¿por qué el mundo no es mucho más grande de lo que es?

¿Cuáles son las preguntas más estimulantes que ha encontrado mientras se preparaba para la informática de GATE?

Flip Video: ¿Por qué no puedo escuchar el sonido cuando abro un archivo .WMV?

¿Es demasiado tarde para entrar en el aprendizaje automático?

¿Dónde puedo encontrar los problemas NP completos del mundo real en la teoría de grafos para crear heurística?

¿Por qué no hay robot chef? ¿Será posible a medida que el aprendizaje automático sea más avanzado?