Woher kennt der Linux-Kernel die Computerarchitektur?

Woher kennt der Linux-Kernel die Computerarchitektur?

In start_kernel()ist eine der ersten Aktionen des Kernels die Ausführung von setup_arch(). setup_arch()ist für jede unterstützte Architektur definiert, daher wird ihm ein Zeiger auf die entsprechende Befehlszeile übergeben.

Wie wird dieser Zeiger initialisiert und wie und wann erhält der Kernel die Architektur des Computers?

Antwort1

Ein bestimmter Kernel wird für eine einzelne Architektur erstellt und verfügt daher über eine einzelne Implementierung von setup_arch.Das generischestart_kernelruft dies auf, übergibt jedoch keinen initialisierten Zeiger an die Befehlszeile, sondern einen Zeiger an einen Zeiger an die Befehlszeile, und es ist Teil der setup_archAufgabe von , diesen Zeiger zu initialisieren.

Zum Beispiel,x86 hat eine globale command_lineVariable, und seinsetup_arch speichert seine Adresse im Zeiger vonstart_kernel.

Der Kernel erhält also beim Erstellen effektiv die Architektur des Computers.

verwandte Informationen