¡Comencemos!
Conacriento de lenguaje C y ensamblaje x86
Por supuesto, solo necesita una base de ensamblaje simple. En cuanto al lenguaje C , no necesita mucho conocimiento para comprender el proceso desde archivos de origen hasta archivos ejecutables.
Comandos básicos linux
En la compilación simple del núcleo, utilizamos algunas herramientas en linux , como nasm , y por supuesto también están ellas en windows , incluido gcc . Pero el proceso de compilación se realiza en linux .
¿Qué herramientas usaremos?
Notepad++ , sublime , etc., el bloc de notas más simple está bien.sublime en sí se puede mostrar en forma 16 , y la máquina virtual también tiene herramientas para ayudarnos a analizar.linux , estamos usando Ubuntu i386 aquí. Necesita instalar Herramientas nasm , vim , gcc , readelf , etc.Por supuesto, no tienes que preocuparte. Al usar estas herramientas o materiales, habrá hipervínculos en el artículo, puede descargarlo y revisarlo. Al mismo tiempo, también hay mucha información en Internet para que pueda leer.
¿Cuál es el resultado final?
Finalmente, por supuesto, no es un sistema operativo muy completo. Esto se parece más a una exploración de investigación y una comprensión del OS , así como a la relación entre el lenguaje C y el ensamblaje, y finalmente, es una comprensión de cómo el hardware y el software lo tratan.
En 7 partes, solo completamos encendido y encendido, cargando el sector de arranque principal y luego cargando más información en la memoria. Finalmente, simplemente nos dimos cuenta de la entrada del modo real al modo protegido. Eso es todo, pero el prototipo del sistema operativo es aproximadamente el mismo.
A lo largo del proceso, hizo referencia a algunos videos y libros de texto electrónicos
[1] "Sistema operativo casero 30 días"
[2] "Implementación de un sistema operativo Oranges "
[3] 51CTO
etc.
La referencia principal son los libros electrónicos [2] . El contenido en [1] es más completo, y el resultado final es más completo.
Los archivos de origen y las notas se cargan a GitHub juntos. Si tiene alguna pregunta, también puede contactarme en [email protected] . Cada carpeta es una estructura independiente, y los archivos binarios compilados no están cargados, pero el código fuente y las herramientas están cargadas.