Ich habe gerade einen neuen Kernel kompiliert und mich gefragt: Was entscheidet während des Kompilierungsprozesses, welche Kernelmodule statisch im Kernel erstellt werden?
Ich habe dann gelöscht /lib/modules
, neu gestartet und festgestellt, dass mein System einwandfrei funktioniert. Es scheint also, dass alle wesentlichen Module statisch im Kernel erstellt wurden.
Ohne /lib/modules
lädt der Kernel 22. Bei vorhandenem Verzeichnis werden 67 Module geladen.
quelle
make config
. Aber ich wollte wissen, wohermake config
die Standardeinstellungen stammen?make defconfig
die Standardwerte? Basierend auf diesem Link ist escreates a config file that uses default settings based on the current system's architecture
. Aber wie kommt es dazucurrent system's architecture
?Kconfig
für die Architektur in den Kernelquellen festgelegt. Siehe beispielsweise die "Standard" -ZeilenAngesichts der Tatsache, dass Sie das Tag
/kernel
zusätzlich zu hinzugefügt haben, gehe/linux-kernel
ich davon aus, dass Sie auch an dem generischen Fall interessiert sind.In Solaris wird seit 1991 alles dynamisch geladen, mit Ausnahme des grundlegenden Kernel-Klebercodes, des Standard-Schedulers und des Pager / Swappers.
Sogar der Root-Dateisystemcode und der Modullader werden dynamisch geladen.
Dadurch muss der Kernel nicht manuell konfiguriert werden. Da Solaris auch keine größenabhängigen Funktionen konfigurieren muss (neue Kernelobjekte werden zur Laufzeit automatisch erstellt, solange genügend Speicher vorhanden ist), ist unter Solaris keine manuelle Konfiguration erforderlich.
Ich frage mich, wann Linux diesen Automatisierungszustand erreichen wird ... Ich glaube jedoch, dass dies niemals passieren wird, da die theoretisch nicht benötigte Kernelkonfiguration (siehe Solaris) als lustige Methode verwendet wird, um Benutzern davon zu erzählen
hey, you are able to control the linux kernel
.quelle
<M> Modularize
Option) oder es statisch kompilieren (die<Y> Includes
Option)