![Como o kernel do Linux conhece a arquitetura do computador?](https://rvso.com/image/192241/Como%20o%20kernel%20do%20Linux%20conhece%20a%20arquitetura%20do%20computador%3F.png)
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_kernel
chama 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_arch
trabalho de inicializar esse ponteiro.
Por exemplo,x86 tem uma command_line
variá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.