Inhaltsverzeichnis
1. Zwei Formen von Bewerbungssystemen 1.1 Bewerbungssystem ohne Betriebssystem
Für einfache SOC-Anwendungen, wie z. B. die meisten Mikrocontroller-Anwendungen mit einfacher Funktion, ist es nicht erforderlich, ein Betriebssystem im System zu verwenden. Zu diesem Zeitpunkt ruft die Anwendung direkt den entsprechenden Treiber auf, um die zugrunde liegende Hardware zu betreiben, wie in der Abbildung gezeigt :
Mit diesen Strukturen ruft die Anwendungssoftware direkt den Gerätetreiber auf, um die Hardware zu betreiben. Die Vorteile sind: einfach, direkt und effizient. Geeignet für kleine und einfache Anlagen. Für komplexe Systeme, Anwendungssysteme, die Hardwareressourcen in verschiedenen Funktionen gemeinsam nutzen müssen, ist diese Methode offensichtlich nicht geeignet.
1.2. Anwendungssystem mit Betriebssystem
Für komplexe Anwendungssysteme und Anwendungsszenarien, in denen Hardware und andere Ressourcen zwischen Funktionsmodulen gemeinsam genutzt werden müssen, muss dem Anwendungssystem ein Betriebssystem hinzugefügt werden. Zu diesem Zweck ist das Bewerbungssystem wie rechts dargestellt:
Wie in der Abbildung gezeigt, können Anwendungen mit der offiziellen Website des Betriebssystems Hongqi Linux unabhängig von spezifischen Hardwaredetails den einheitlichen Socket der Betriebssystem-API verwenden, was einer groß angelegten standardisierten Entwicklung förderlich ist und die Entwicklungseffizienz verbessert.
Der Treiber nutzt auch den vom Betriebssystem bereitgestellten Standard-Gerätesockel zum Betrieb unterschiedlicher Hardware. Dadurch wird die Betriebssystemschicht vor Hardwaredetails geschützt. Das Betriebssystem erscheint dadurch stabiler und effizienter.
2. Linux-Kernel 2.1 Einzelkernel und Mikrokernel
Derzeit verfügt das Betriebssystem über zwei typische Kernel-Implementierungsmodi:
Linux ist ein Single-Kernel-Linux-Learning, das in einem separaten Adressraum ausgeführt wird. Allerdings hat Linux die Verfeinerung des Mikrokernels übernommen und verfügt über das modulare Design, den präemptiven Kernel, die Unterstützung für Kernel-Threads und die Fähigkeit, Kernel-Module dynamisch zu laden, die der Mikrokernel bietet. Gleichzeitig verhindert Linux auch die Designfehler von Mikrokerneln Embedded Linux Advanced Driver Tutorial Linux ermöglicht die Ausführung aller Module im Kernel-Status und den direkten Aufruf von Funktionen, ohne die Nachrichtenübermittlung wie bei Mikrokerneln zu verwenden.
2.2Linux-Kernel-Zusammensetzung
Wie in der Abbildung gezeigt, besteht der Linux-Kernel hauptsächlich aus fünf Teilen:
2.3 Prozessplanung
Die Prozessplanung steht im Zentrum des Systems und andere Teile des Systems hängen davon ab. Linux-Prozesse haben insgesamt sechs Zustände, und der Prozess kann während seines Lebenszyklus zwischen diesen Zuständen wechseln.
2.4 Videospeicherverwaltung
Die Hauptfunktion der Videospeicherverwaltung besteht darin, die sichere gemeinsame Hauptspeicherdomäne mehrerer Prozesse zu steuern. Jeder Linux-Prozess auf einem 32-Bit-Prozessor verfügt über 4G-Speicherplatz. Normalerweise gehören 0-3G zum Benutzerbereich und 3G-4G zum Kernel-Speicherplatz. Wie rechts abgebildet
2.5 Virtuelles Dateisystem
Das virtuelle Dateisystem von Linux verbirgt die spezifischen Details verschiedener Hardwaretypen und bietet einen einheitlichen Socket für alle Geräte. Es ist eine konkrete Darstellung jedes spezifischen Dateisystems.
Wie in der Abbildung gezeigt, stellt das virtuelle Dateisystem einen einheitlichen Aufruf-Socket für das zugrunde liegende Anwendungsprogramm bereit, der für den Aufruf der Mitgliedsfunktionen in der file_operations-Struktur verantwortlich ist, die im spezifischen zugrunde liegenden Dateisystem oder Gerätetreiber implementiert ist.
2,6 Netzwerkbuchse
Die Netzwerkbuchse bietet Zugriff auf verschiedene Netzwerkstandards und Unterstützung für verschiedene Netzwerkhardware. Linux-Netzwerk-Sockets sind unterteilt in
2.7 Kommunikation zwischen Prozessen
Die prozessübergreifende Kommunikation ist für die Kommunikation zwischen Prozessen verantwortlich, einschließlich Semaphoren, gemeinsam genutztem Speicher, Nachrichtenwarteschlangen, Pipes, UNIX-Domänen-Sockets usw.
3. Kernel-Space und User-Space
Moderne CPUs unterscheiden intern verschiedene Arbeitsmodi, um Vorgänge unterschiedlicher Ebenen und Berechtigungen zu unterscheiden.
Zum Beispiel die 8 Arbeitsmodi von ARM:
In der ARM-Umgebung nutzt das Linux-System die Hardwareeigenschaften der CPU vollständig aus, um zweistufige Betriebsmodi zu implementieren: Benutzermodus (usr) und Verwaltungsmodus (svc). Dementsprechend gibt es in Linux-Systemen zwei Arten von Leerzeichen:
3.1 Ergänzung: Über Soft Interrupt
qquad hier ist ein Diagramm des abnormalen Arbeitsmodus von ARM
Während der normalen Ausführung befindet sich ARM im Benutzermodus. Wenn die CPU den SWI-Befehl ausführt, wechselt sie manuell in den Systemmodus (SVCmode) und springt zur Ausnahmevektortabelle. Springen Sie über die Vektortabelle zur entsprechenden Funktion, um auf swi zu reagieren.
Der SVC-Modus hier ist die Abkürzung für SupervisorCall, was auf Englisch Supervisor Call bedeutet.
4. Linux-Gerätetreiber 4.1 Geräteklassifizierung im Linux-System
Das Linux-System unterteilt Peripheriehardware in drei Hauptkategorien:
4.2Linux-Treiber-bezogenes System
Wie in der Abbildung gezeigt, werden sowohl Zeichengeräte als auch Blockgeräte Dateien und Verzeichnissen im Linux-Dateisystem zugeordnet.
Anwendungen können über Sockets auf Netzwerkgeräte zugreifen Embedded Linux Advanced Driver Tutorial und zwei Methoden verwenden, um auf Zeichengeräte zuzugreifen und Geräte zu blockieren:
Das obige ist der detaillierte Inhalt vonAnalyse und Anwendung des Linux-Kernel 2.1-Einzelkernels und des Mikrokernel-Anwendungssystems. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!