Откуда ядро ​​Linux знает архитектуру компьютера?

Откуда ядро ​​Linux знает архитектуру компьютера?

В start_kernel(), одним из первых действий, выполняемых ядром, является запуск setup_arch(). setup_arch()определен для каждой поддерживаемой архитектуры, поэтому ему передается указатель на соответствующую командную строку.

Как инициализируется этот указатель, и как и когда ядро ​​получает архитектуру компьютера?

решение1

Каждое ядро ​​создано для одной архитектуры, поэтому оно имеет единственную реализацию setup_arch.Общийstart_kernelвызывает его, но он не передает инициализированный указатель в командную строку, он передает указатель на указатель в командную строку, и setup_archинициализация этого указателя является частью работы .

Например,x86 имеет глобальную command_lineпеременную, И егоsetup_arch сохраняет свой адрес в указателе, предоставленномstart_kernel.

Таким образом, ядро ​​фактически получает архитектуру компьютера при его сборке.

Связанный контент