¿Por qué mecanismo es un BIOS o un kernel capaz de "ver" (enumerar, identificar, cualquiera que sea el término correcto) otras CPU en un sistema SMP? ¿Cómo puede la CPU de arranque inicializar y luego "iniciar" la segunda o tercera, cuarta CPU?
Esto no es una pregunta sobre cómo un programa de usuario tiene su subproceso programado en otra cpu, afinidad de subprocesos, etc., pero realmente hasta el mecanismo de nivel más bajo por el cual funciona.
Cómo entiendo vagamente que esto podría funcionar es que una MMU mantiene la segunda CPU en espera temporalmente hasta que la primera se haya inicializado todo por sí misma, luego la segunda CPU, luego recibe una señal de la CPU principal para iniciar la otra. . Aún así, no es seguro que lo primero sea que la otra CPU se ejecute en un sistema de inteligencia; es decir, ¿también se iniciaría primero en el modo 8086, requiriendo que ejecute la rutina que habilita A20 y salta a PM?
He codificado en ASM en una vida anterior, por lo que puedo entender respuestas teóricas bien explicadas, pero tengo muy poca experiencia en codificación en la vida real, por lo que me redireccioné a la fuente del kernel de Linux (que de todos modos ya voy a intentar) no será una respuesta a mi Q :-)