Heim  >  Artikel  >  System-Tutorial  >  Bietet der uClinux-Port des Linux-Kernels Nicht-MMU-Unterstützung?

Bietet der uClinux-Port des Linux-Kernels Nicht-MMU-Unterstützung?

WBOY
WBOYnach vorne
2024-01-26 17:18:20630Durchsuche

Es ist lang und enthält viele technische Inhalte. Klicken Sie also, um ihm zu folgen, und Sie werden sich nicht verlaufen.

Vorwort: Den Linux-Kernel verstehen

Ein Computersystem ist eine Symbiose aus Hardware und Software. Sie sind voneinander abhängig und untrennbar. Die Computerhardware „Linux-Kernel-Transplantationsschritte“ ist reich an Peripheriegeräten, Prozessoren, Speicher, Festplatten und anderen elektronischen Geräten, die den Zylinder des Computers bilden. Und ohne Software zur Bedienung und Steuerung kann es nicht selbstständig funktionieren. Die Software, die diese Steuerungsarbeit erledigt, wird als Betriebssystem bezeichnet. In der Linux-Terminologie wird es „Kernel“ oder „Kern“ genannt. Die Hauptmodule (oder Komponenten) des Linux-Kernels sind in die folgenden Teile unterteilt: Speicherverwaltung, CPU- und Prozessverwaltung, Dateisystem, Geräteverwaltung und Treiber, Netzwerkkommunikation, Linux-Forum und Systeminitialisierung (Boot), Systemaufrufe usw . Der Linux-Kernel implementiert viele wichtige Architektureigenschaften. Auf einer höheren oder niedrigeren Ebene wird der Kernel in Subsysteme unterteilt. Linux kann auch als Ganzes betrachtet werden, da es alle diese Basisdienste in den Kernel integriert. Dies unterscheidet sich von der Mikrokernel-Architektur. Erstere stellt einige grundlegende Dienste bereit, z. B. Kommunikation, E/A, Speicher und Prozessverwaltung, und spezifischere Dienste werden in die Mikrokernel-Schicht eingefügt.

Im Laufe der Zeit ist der Linux-Kernel hinsichtlich Videospeicher und CPU-Auslastung effizienter geworden und sehr stabil. Und das Interessanteste an Linux ist, dass es trotz dieser Größe und Komplexität immer noch gut portierbar ist. Linux ist so kompiliert, dass es auf einer großen Anzahl von Prozessoren und Plattformen mit unterschiedlichen architektonischen Einschränkungen und Anforderungen läuft. Ein Gegenbeispiel ist, dass Linux auf einem Prozessor laufen kann, der über eine Grafikspeicherverwaltungseinheit (MMU) verfügt, oder auf Prozessoren, die über keine MMU verfügen. Der uClinux-Port des Linux-Kernels bietet Unterstützung für Nicht-MMUs.

In der IT-Branche Zum Beispiel: Embedded-Entwicklung, Treiberentwicklung, Android-Entwicklung, C++-Entwicklung, Java-Entwicklung, wenn Sie mit den zugrunde liegenden Aspekten in Berührung kommen

Also

Den Kernel verstehen: Dies wird dazu beitragen, dass Ihre Entwicklungsarbeit entsprechende Vorteile generiert.

Den Kernel verstehen: Dadurch können Sie die zugrunde liegenden Prinzipien und den Entwicklungsquellcode besser verstehen.

Der Kern ist ein Bonus für die schriftliche Prüfung.

Der Kernel ist der einzige Weg, ein Experte zu werden.

Ob Sie sich mit der Kernel-Entwicklung beschäftigen oder nicht, die Kernel-Technologie ist die beste Wahl, um Fähigkeiten zu reservieren, Ihren Horizont zu erweitern und Ihre technischen Fähigkeiten zu erweitern.

Weitere Informationen:

linuxkernel移植_linux内核移植步骤_linux内核移植的一般步骤Analyse des Linux-Kernels „Schwachstellensicherheit und virtueller Videospeicher“

Analyse des Linux-Kernel-Socket-Prinzips und der Architektur

Analyse des „Physical Video Memory Model“ des Linux-Kernels

Empfohlene Kernel-Lernroute. Wenn Sie den Kernel studieren möchten und mehr über den Kernel erfahren möchten, können Sie darauf zurückgreifen. 1: Betriebssystemprinzipien/Zusammenstellung Thema 1: Betriebssystemprinzipien

Prozessmanagement: Prozessstatus und -wechsel, gegenseitiger Prozessausschluss und -synchronisation, Prozessorplanung, Prozess-Deadlock

Videospeicherverwaltung: Speicherstruktur, Partitionsspeicherverwaltung, Segmentverwaltung, Seitenverwaltung, virtueller Speicher

Geräteverwaltung: C-Laufwerk-Cache, RAID (C-Laufwerk-Array), E/A-Puffer

Dateiverwaltung: Dateiorganisationsstruktur, Heap-Dateiprinzip, Speicherplatzverwaltung, Dateiverzeichnisverwaltung

2: Fundierte Kenntnisse der Assemblersprache

x86/x86_64-Architektur: x86/x86_64-Architektur, Grundlagen der Assemblersprache, Datenübertragung, arithmetische Operationen, Adressierung, Prozedur- und Bedingungsverarbeitung, Gleitkommaverarbeitung und Befehlscodierung

ARM-Architektur: ARM-Kernmikroprozessor, gemeinsames ARM-Anweisungssystem, ARM-Assembly-Programm und Debugging, Ausnahme-Interrupt/Reset-Handler/SWI-Ausnahme-Interrupt, RealViewMDK-Installation und -Konfiguration, ARM-Assembly und C-Hybrid-Implementierung, Datenlade- und Speicheranweisungen Realisieren

Zweitens: Prozessmanagement Thema 1: Prozessgrundlagen

Organisationsstruktur des Linux-Kernel-Quellcodes

Prozessprinzip und Prozessstatus

Lebenszyklus und Systemaufrufe: Copy-on-Write-Prinzip, Prozessspeicherlayout, Prozessstapelverwaltung, Systemaufrufimplementierung

Task_struct-Datenstrukturanalyse

2: Prozessplanung

Planungsstrategien: SCHED_DEADLINE, SCHED_FIFO, SCHED_RR, SCHED_NORMAL

Prozesspriorität: Planungspriorität, statische Priorität, normale Priorität, Echtzeitpriorität

Scheduling-Klassenanalyse: stop_sched_class, dl_sched_class, rt_sched_class, cfs_sched_class, empty_shced_class

SMP-Planung: Threads migrieren/Prozessoren isolieren, Prozessorlastausgleich für Terminplanung, Prozessorlastausgleich für Echtzeitplanung und Prozessorlastausgleich für faire Planung

Drei: Videospeicherverwaltung Thema 1: Videospeicherprinzip

SMP/NUMA-Modellorganisation

Struktur und Modell der Organisation des chemischen Gedächtnisses

Seitentabelle/Seitentabellen-Cache: Verzeichnisstruktur des Seitentabellen-Frameworks, TLB-Eintragsformat und -verwaltung, Adressraumkennung (ASID), Kennung der virtuellen Maschine (VMID)

Prozessor-Cache: Cache-Struktur und -Strategie, SMP-Cache-Konsistenz, Cache- und TLB-Steuerung

Videospeicherzuordnung: Datenstrukturanalyse, Erstellung von Videospeicherzuordnungen, Löschung von Videospeicherzuordnungen, Implementierung von Systemaufrufen

2: Virtueller Videospeicher

Blockzuordnung: Prinzip der Videospeicherzuteilung, Seitenzuteilung und Seitenfreigabe, SLAB-Blockzuteilung, SLOB-Blockzuteilung, SLUB-Blockzuteilung, Systemplanungs-Socket

Umfassende Seitenmodule: Standard-Riesenseiten, transparente Riesenseiten, LRU-Algorithmus und Reverse-Mapping, direkte und asynchrone Seitenrecyclingprinzipien, Ausführungsplan für das Recycling inaktiver Seiten, Seitenaustauschprinzipien, Recycling-Slab-Cache-Prinzipien, Behandlung von Seitenfehlerausnahmen, Speicherfragmentierung , Initiieren des Videospeicher-Recyclings, Struktur/Erstellung/Aktivierung von Swap-Bereichsdaten, technische Prinzipien der Speichererschöpfung, Kalibrierungsmethode für Ausnahmen bei fehlenden Seiten, KASAN-Inspektionstool, Behandlung von Ausnahmen bei fehlenden Swap-Seiten

Videospeicherbarriere und Kernel-Technologie zum gegenseitigen Ausschluss

Weitere Informationen:

Kernel muss lernen|„Physischer Videospeicher und virtueller Videospeicher“|VMA-Verwaltung/malloc/mmap

Technische Punkte des Linux-Kernels |. Seitenzuordnungspfad |

3: Aufruf des Videospeichersystems

kmalloc/vmalloc

Prinzip und Implementierungsvorgänge des Videospeicherpools

linuxkernel移植_linux内核移植的一般步骤_linux内核移植步骤

Parameter und Implementierung der Videospeicheroptimierung

Implementierung von Seiten-Caching

Implementierung des Blockcaches

4: Perf-Leistungsanalyse-Tool

Perf-Prinzipmechanismus und Installationskonfiguration

Perf-Datenerfassungsbefehl 29 Tool-Anwendungen

perf sammelt Daten zur Flammendiagrammanalyse

Viertens: Netzwerkvertragsstapel Thema 1: Netzwerkinfrastruktur

ICMP-Vertrag

Benutzer-Datagramm-Vertrag (UDP)

Übertragungskontrollvertrag (TCP)

Stream Control Transmission Contract (SCTP)

Datagram Crosstalk Control Contract (DCCP)

IPv4-Richtlinienrouting

Drahtloses Subsystemmodul: 802.11MAC-Rahmenstrukturanalyse, Scannen/Authentifizierung/Zuordnung, Mac80211-Empfangs- und Übertragungsimplementierung, hoher Durchsatz (802.11n), Mesh-Netzwerk (802.11s)

IPv4-Umleitungsnachricht/FIB-Tabelle

2: Netzwerkvertragsstapel

ARP (Adressauflösungsvertrag)

Benutzer-Datagramm-Vertrag (UDP)

Übertragungskontrollvertrag (TCP)

Zwischenrouting: Multicast-Routing, Richtlinien-Routing, Multipath-Routing

IPv4-Pakete empfangen/senden

IPv6-Pakete empfangen/senden

InfiniBand-Stack-Architektur: RDMA-Struktur (Remote Direct Memory Access), InfiniBand-Komponenten und -Adressierung, InfiniBand-Funktionen und Datenpakete, Protokollstapelregistrierung/Paketempfang/Paketsendeprozessschema

Jetzt lernen: Beherrschen Sie die Linux-Kernel-Contract-Stack-Architektur in 90 Minuten

linux内核移植步骤_linux内核移植的一般步骤_linuxkernel移植

3: System-API-Aufruf

POSIX-Netzwerk-API-Aufruf

Epoll-Kernel-Prinzip und Implementierung

Konfiguration der Netzwerksystemparameter

V: Gerätetreiber-Thema 1: Gerätetreiber-Subsystem

Prinzip des I/O-Mechanismus

Ressourcenzuweisung und -verwaltung

Zeichengeräte-Subsystem

Geräte-Subsystem blockieren

Netzwerkschnittstellenkartentreiber

2: Linux-Gerätemodell

Eingehende Analyse von LDM: LDM-Datenstruktur, Gerätetreiber, Kobject-Struktur, kobj_type, Kernel-Objektsammlung

Gerätemodell und sysfs: sysfs-Dateien und -Eigenschaften, die die Adressierung von sysfs-Eigenschaftsdateien ermöglichen,

3: Bedienung des Zeichengeräts

Hauptgerät und Sekundärgerät

Gerätedatei öffnen

Zeichengeräte zuweisen und registrieren

Implementierung des Dateischreibvorgangs: Öffnungs-/Freigabemodus, Lese-/Schreibmodus, llseek/poll-Methode, Füllen der file_operations-Struktur

Module einfügen und löschen

4: Gerätebetrieb blockieren

Blockgerätedarstellung und Datenstruktur

BIO-Datenstruktur

ioctl-Systemaufruf

Busmodul: ISA-Bus, PCI/PCI-E-Bus, USB-Bus, VESA-Bus, I2C-Bus

5: Netzwerkkarten-Gerätetreiber

Datenstruktur: Socket-Pufferstruktur, Netzwerk-Socket-Struktur

Pufferverwaltung und Parallelitätskontrolle

ISA-Netzwerktreiber

Asynchroner Übertragungsmodus für Geldautomaten

Netzwerkdurchsatz

Weitere Informationen: Analyse des Quellcodes des Linux-Kernel-Socket-Kommunikationsprozesses

Sechs: Kernel-Komponententhema 1: Zeitmanagement

Weltzeit-Subsystem

High-Frame-Rate-Timer

Dynamische Uhrdatenstruktur

Timer-Systemaufruf

2: Seiten- und Block-Caching

Betrieb und Implementierung der Seiten-Cache-Struktur

Block-Cache-Struktur und Implementierung

Adressraum-Datenstruktur und Seitenbaum

3: Datensynchronisation

Zahlensystem-Synchronisationsmechanismus

Inode-Synchronisation und Crosstalk

Rückschreiben und vollständige Synchronisierung erzwingen

4: Kernel-Aktivität

Interrupt-Typ/Hardware-IRQ

irq_desc-Datenstruktur

Verwaltet IRQ und Soft-Interrupt

Tasklet erstellen/registrieren/ausführen

Warteschleife und Fertigstellungsbetrag

linuxkernel移植_linux内核移植的一般步骤_linux内核移植步骤

Sieben: Thema Dateisystem

1: Virtuelles Dateisystem VFS

Forschung zu Dateisystemtypen und Dateimodellen

Datenstruktur: Superblock (super_block), Mount-Deskriptor (Mount-Struktur), Indexknoten (Inode-Struktur), Verzeichniseintrag (Dentry-Struktur)

Dateisystemaufrufe: Dateien öffnen/schließen, Dateien erstellen/löschen, Dateien lesen/schreiben, technische Prinzipien zum Zurückschreiben von Dateien/Socket-Implementierung

Dateisystem mounten: Systemaufruf-Mount-Verarbeitungsprozess, Mount/Mount-Namespace binden, RootFS-Dateisystem mounten/registrieren

Kein persistentes Dateisystem: Proc-Dateisystem (Proc-Datenstruktur, Laden von Proc/Verwalten von Proc-Datenelementen, Implementierung des Lesens und Schreibens von Daten), einfaches Dateisystem (sequentielle Datei, Planungsdateisystem, Pseudodateisystem)

2: Dateisystem des Laufwerks C

Ext2-Dateisystem: chemische Struktur und Datenstruktur, Dateisystem erstellen, Dateisystem betreiben

Ext3-Dateisystem

Ext4-Dateisystem

JBD2 protokollieren

3: User-Space-Dateisystem

Architekturdesign und -prinzip verschmelzen

Fünf Kernwarteschlangen

Verschmelzung des User-Space-Prozesses und des Implementierungsplans

Acht: Praktisches Thema des Kernel-Projekts

1-Linux-Kernel-Kompilierungs- und Systemersatzimplementierungsmethode

2-Implementierungsplan für prozessübergreifende Kommunikation/Management (Erlaubnis/Priorität)

Implementierung des 3-NIC-Netzwerkkartentreibers

4-mmap-Systemaufruf/Mapping-Benutzervideospeicher-Implementierung

5-Implementierung des Linux-Videospeicherparametersystems

6-Debugging und Leistungsoptimierung (debugfs/printk/ftrace)

7-Slab Block Allocator-Videospeicherzuweisungs-Implementierungsmechanismus

8-Tasklet/Frontline-Thread- und Timer-Implementierung

9-Implementierung des Linux-Kernel-Proc-Dateisystems

10-Implementierung der Linux-Kernel-Firewall iptables

Das obige ist der detaillierte Inhalt vonBietet der uClinux-Port des Linux-Kernels Nicht-MMU-Unterstützung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:itcool.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen