Tutorial 01 - Esperar infinitamente
tl;dr
-
Se configura la estructura que tiene el proyecto.
-
Se ejecuta una pequeño código hecho en ensamblador que tiene como función detener todos los núcleos del procesador que están ejecutando el kernel.
Compilar
-
El archivo
Makefilepermite ejecutar: -
doc: Genera la documentación. -
qemu: Ejecutar el kernel en QEMU. -
clippy: Analiza el código y sugiere mejoras. -
clean: Elimina todos los archivos generados durante la compilación, etc. -
readelf: Inspecciona el archivoELFde salida. -
objdump: Inspecciona el ensamblador. -
nm: Inspecciona los símbolos.
Código a revisar
-
El script para enlazado específico para la
BSPllamadokernel.ld. -
Carga la dirección en
0x8_0000. -
Solo la sección
.text. -
main.rs: Atributos internos importantes: -
#![no_std],#![no_main]. -
boot.s: La función de ensamblador_start()que iniciawfe(Wait For Event / Esperar Hasta Un Evento), detiene todos los núcleos del procesador que están ejecutando_start(). -
Tenemos que definir una función que funcione como
#[panic_handler](manejador de pánico) para que el compilador no nos cause problemas. -
Hazla
unimplemented!()porque se eliminará ya que no está siendo usada.
Pruébalo
Dentro de la carpeta del proyecto, ejecuta a QEMU y mira el núcleo del procesador ejecutando wfe en bucle: