Como o kernel do Linux conhece a arquitetura do computador?

Como o kernel do Linux conhece a arquitetura do computador?

Em start_kernel(), uma das primeiras coisas que o kernel faz é rodar setup_arch(). setup_arch()é definido para cada arquitetura suportada, portanto é passado um ponteiro para a linha de comando apropriada.

Como esse ponteiro é inicializado e como e quando o kernel obtém a arquitetura do computador?

Responder1

Um determinado kernel é construído para uma única arquitetura, portanto, possui uma única implementação do setup_arch.O genéricostart_kernelchama isso, mas não passa um ponteiro inicializado para a linha de comando, ele passa um ponteiro para um ponteiro para a linha de comando e faz parte do setup_archtrabalho de inicializar esse ponteiro.

Por exemplo,x86 tem uma command_linevariável global, e os seussetup_arch armazena seu endereço no ponteiro fornecido porstart_kernel.

Portanto, o kernel obtém efetivamente a arquitetura do computador quando é construído.

informação relacionada