
En start_kernel()
, una de las primeras cosas que hace el kernel es ejecutar setup_arch()
. setup_arch()
se define para cada arquitectura compatible, por lo que se le pasa un puntero a la línea de comando adecuada.
¿Cómo se inicializa este puntero y cómo y cuándo obtiene el núcleo la arquitectura de la computadora?
Respuesta1
Un kernel determinado está construido para una única arquitectura, por lo que tiene una única implementación de setup_arch
.el genericostart_kernel
llama a eso, pero no pasa un puntero inicializado a la línea de comando, pasa un puntero a un puntero a la línea de comando, y es parte del setup_arch
trabajo de inicializar ese puntero.
Por ejemplo,x86 tiene una command_line
variable global, y essetup_arch
almacena su dirección en el puntero proporcionado porstart_kernel
.
Entonces, el kernel efectivamente obtiene la arquitectura de la computadora cuando se construye.