Heim  >  Artikel  >  System-Tutorial  >  Eingehende Analyse des Kernel-Quellbaums: die Synergie zwischen Kconfig-Dateien und Makefiles

Eingehende Analyse des Kernel-Quellbaums: die Synergie zwischen Kconfig-Dateien und Makefiles

王林
王林Original
2024-06-28 08:18:521047Durchsuche

深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用

Prinzip

Jedes Verzeichnis im Kernel-Quellbaum enthält auch eine Kconfig-Datei, die zur Beschreibung des Kernel-Konfigurationsmenüs im Zusammenhang mit dem Quellcode im Verzeichnis verwendet wird. Die Kconfig-Dateien in jedem Verzeichnis bilden eine verteilte Kernel-Konfigurationsdatenbank.

Wenn Sie den Kernel über den Befehl makemenuconfig konfigurieren, lesen Sie das Menü aus der Kconfig-Datei. Analyse des Speichertechnologieprinzips: Basierend auf dem Linux 26-Kernel-Quellcode wird die Konfiguration abgeschlossen und in der Kernel-Konfigurationsdatei mit dem Namen .config für gespeichert Makefile zum Kompilieren, das im Kernel verwendet wird.

Das Makefile in der obersten Etage des Quellcode-Verzeichnisbaums ist der Eingang zur gesamten Kernel-Quellcodeverwaltung und spielt eine entscheidende Rolle bei der Quellcode-Kompilierung des gesamten Kernels. Beim Kompilieren des Kernels unter Linux C durchläuft das Makefile der obersten Etage rekursiv die Makefile-Dateien in allen Unterverzeichnissen des Kernel-Quellcodes gemäß den Regeln, um die Kompilierung der Kernelmodule in jedem Unterverzeichnis abzuschließen.

Konfigurieren Sie den Kernel

Gehen Sie in das Verzeichnis im obersten Stockwerk des Linux-Kernel-Quellcodes und geben Sie den Befehl makemenuconfig ein. Sie können die Hauptschnittstelle der Linux-Kernel-Konfiguration basierend auf Ncurses eingeben muss es in der Befehlszeile angeben:

make ARCH<span class="token operator">=</span>arm menuconfig

Verzeichnis der ersten Ebene

Fast jedes Element im Menü der ersten Ebene verfügt über komplexe Untermenüs auf der unteren Ebene, und ihre jeweiligen Konfigurationsoptionen sind ebenfalls sehr umfangreich. Es wäre eine sehr komplizierte Aufgabe, sie einzeln zu beschreiben. Bei der tatsächlichen Produktentwicklung ist es nicht erforderlich, jedes Konfigurationselement des Kernels vollständig zu verstehen. Im Allgemeinen müssen Sie nur einige der zugehörigen Elemente verstehen.

内核编写_存储技术原理分析:基于linux 26内核源代码_内核存储原理源基于代码分析

在这里插入图片描述

Das sekundäre Verzeichnis Generalsetup ist die Menüoberfläche für die allgemeinen Kerneleinstellungen

在这里插入图片描述

SystemVIPC repräsentiert die prozessübergreifende Kommunikation InterProcess des Systems

Kommunikation, die vom Prozessor zum Synchronisieren und Austauschen von Informationen zwischen Programmen verwendet wird

Enableeventpollsupport: Unterstützt den Systemaufruf von Storm Polling.

Enableloadablemodulesupport ist die Kernel-Modulkonfiguration

Moduleunloading ermöglicht das Entladen bereits geladener Module

Moduleversioningsupport ermöglicht die Verwendung von Modulen aus anderen Kernel-Versionen (es können Probleme auftreten)

Sourcechecksumforallmodules kalibriert den Quellcode für alle Module. Wenn Sie das Kernelmodul nicht selbst kompilieren, benötigen Sie diese Funktion nicht.

内核编写_内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码

Aktivieren Sie die Block-Layer-Blockgeräteunterstützung

Wer Festplatten-/USB-/SCSI-Geräte verwendet, muss diese Option auswählen, um das Entfernen des Blockgeräts aus dem Kernel zu ermöglichen:

Unterstützung für große (2 TB+) Blockgeräte und Dateien ist nur erforderlich, wenn Blockgeräte kleiner als 2 TB verwendet werden

Blocklayerbiothrottlingsupport kann verwendet werden, um die IO-Rate des Geräts zu begrenzen

IOSchedulersIO-Scheduler-E/A dient der Steuerung der Eingangs- und Ausgangsbandbreite, hauptsächlich für Festplatten, und ist eine Grundvoraussetzung. Hier werden drei IO-Scheduler bereitgestellt.

SystemType ist der Prozessortyp und die Eigenschaften

Symmetrische Multi-Processing-UnterstützungSymmetrische Multi-Processing-Unterstützung, wählen Sie diese aus, wenn Sie mehrere CPUs haben oder eine Multi-Core-CPU verwenden

Prozessorfamilie (Pentium-Pro) Prozessorserie, bitte wählen Sie entsprechend der tatsächlich verwendeten CPU aus, hier ist der Prozessortyp

Genericx86support Diese Option verwendet allgemeinere Optimierungen für CPUs der x86-Serie. Wenn Sie sich für i386, i586 usw. entscheiden, dann wählen Sie diese universelle x86-Unterstützung,

Multi-Core-Scheduler-Unterstützung optimiert die Planungsstrategie für Multi-Core-CPUs. Unterstützung für Multi-Core-Scheduling-Mechanismen, Vier-Core-CPUs sollten ausgewählt werden

Busoptions ist die Unterstützung und Konfiguration von PCI, ISA und anderen Bussen. KernelFeatures ist das Kernel-Funktionskonfigurationsmenü

内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码_内核编写

在这里插入图片描述Bootoption-Startoption: Sie können die Standard-Startparameter und Kernel-Parametertypen festlegen

CPUPowerManagementBezogen auf die CPU-Energieverwaltung

Einschließlich Reduzierung der Prozessorfrequenz, Unterstützung des Schlafmodus usw.

Energieverwaltungsoptionen, Energieverwaltungsbezogene Netzwerkunterstützung, Netzwerkkonfiguration

Beinhaltet Unterstützungskonfigurationsoptionen für Ethernet, CAN, Infrarot, Bluetooth, WLAN und andere Netzwerke

Wireless nutzt die Unterstützung für drahtlose Netzwerkkarten

RFswitchsubsystemsupportRF-Schaltgerät

Networkingoptions-Netzwerkvertrag und Netzwerkpaketparameterkonfiguration (TCP/IP-bezogene Verträge müssen geöffnet werden)

Netzwerkoptionen: Sie können die Konfigurationsschnittstelle für Netzwerkoptionen aufrufen

在这里插入图片描述Systeme, die Linux verwenden, nutzen das Netzwerk, und die Nutzung des Netzwerks ist häufig untrennbar mit TCP/TP verbunden. Daher wird empfohlen, in der Konfiguration die Option TCP/IP auszuwählen.

Analyse des Prinzips der Speichertechnologie: Basierend auf dem Linux 26-Kernel-Quellcode

, und Alle untergeordneten Optionen auswählen. Die Tri-State-Option kann auch so konfiguriert werden, dass das Modul bei Bedarf eingesteckt wird. DriverDrivers Gerätetreiber, die Konfigurationsoberfläche ist ebenfalls sehr kompliziert, es gibt viele Konfigurationselemente

Filesystems ist die Konfigurationsschnittstelle für das Kernel-Dateisystem

内核存储原理源基于代码分析_内核编写_存储技术原理分析:基于linux 26内核源代码

在这里插入图片描述

Kernelhacking Kernel-Debugging-bezogene SicherheitsoptionenSicherheitsbezogene Optionen

CryptographicAPI –>//Crypto API, diese Optionen werden entsprechend der vorherigen Optimierung manuell angepasst

Grundprinzipien zum Anpassen und Konfigurieren von Kerneln

Referenz:

Der spezifische Prozess und die Auswahl der Linux-Kernel-Bereinigung

Diskussion über die Konfiguration, Anpassung und Kompilierung des eingebetteten Linux-Kernels

Linux-Kernel-Kompilierungskonfiguration (grafische Form von Menuconfig), Schritte zum Erstellen eines Dateisystems

Linux-Kernel-Transplantation und Root-Dateisystem-Erstellung

Das obige ist der detaillierte Inhalt vonEingehende Analyse des Kernel-Quellbaums: die Synergie zwischen Kconfig-Dateien und Makefiles. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn