¿Cómo conoce el kernel de Linux la arquitectura de la computadora?

¿Cómo conoce el kernel de Linux la arquitectura de la computadora?

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_kernelllama 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_archtrabajo de inicializar ese puntero.

Por ejemplo,x86 tiene una command_linevariable 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.

información relacionada