Inhaltsverzeichnis
1. Einführung" >1. Einführung
2. Grundkonzepte des Linux-Gerätemodells" >2. Grundkonzepte des Linux-Gerätemodells
2.1 Konzepte von Bus, Klasse, Gerät und Gerätetreiber" >2.1 Konzepte von Bus, Klasse, Gerät und Gerätetreiber
2.2 Die Kernidee des Gerätemodells" >2.2 Die Kernidee des Gerätemodells
Heim System-Tutorial LINUX Detaillierte Erläuterung des Linux-Gerätemodells (1)_Grundlegende Konzepte

Detaillierte Erläuterung des Linux-Gerätemodells (1)_Grundlegende Konzepte

Feb 15, 2024 pm 03:54 PM
linux linux教程 linux系统 linux命令 shell脚本 eingebettetes Linux Erste Schritte mit Linux Linux-Lernen

1. Einführung

Im Artikel „Die Gesamtarchitektur des Linux-Kernels“ erwähnte Wowo, dass der Linux-Kernel fast alle Hardwaregeräte mit unterschiedlichen Funktionen auf der Welt unterstützt, was auch ein Vorteil von Linux ist. Dies führt jedoch auch dazu, dass die Hälfte des Codes im Linux-Kernel aus Gerätetreibern besteht. Mit der schnellen Aktualisierung von Hardwaregeräten wächst auch die Menge des Gerätetreibercodes rapide. Meiner Meinung nach zerstört dieses Phänomen das Konzept „Einfachheit ist schön“ und macht den Linux-Kernel sehr aufgebläht, chaotisch und schwer zu warten. Wowo versteht jedoch auch, dass dies nicht die Schuld von Linux ist, da Linux ein Makrokernel ist und sich der Gerätevielfalt stellen und entsprechende Treiber implementieren muss.

Um die Komplexität der Linux-Treiberentwicklung aufgrund der Gerätevielfalt zu reduzieren und Funktionen wie Geräte-Hot-Plugging und Energieverwaltung zu implementieren, führt der Linux-Kernel das Konzept des Gerätemodells (auch Treibermodell genannt) ein. Das Gerätemodell klassifiziert und fasst Hardwaregeräte zusammen und abstrahiert dann eine Reihe von Standarddatenstrukturen und -schnittstellen. Auf diese Weise wird die Treiberentwicklung unkompliziert und erfordert lediglich das Ausfüllen und Implementieren der vom Kernel angegebenen Datenstrukturen.

Dieser Artikel beginnt mit dem Grundkonzept des Gerätemodells und erläutert schrittweise die Implementierung und Verwendung des Linux-Gerätemodells durch die Analyse des entsprechenden Kernelcodes.

2. Grundkonzepte des Linux-Gerätemodells

2.1 Konzepte von Bus, Klasse, Gerät und Gerätetreiber

Die folgende Abbildung ist ein Beispiel einer gängigen Hardware-Topologie für eingebettete Systeme:
Detaillierte Erläuterung des Linux-Gerätemodells (1)_Grundlegende Konzepte

Die Hardware-Topologie beschreibt drei der vier wichtigen Konzepte im Linux-Gerätemodell: Bus, Klasse und Gerät (das vierte ist der Gerätetreiber, der später besprochen wird).

Bus: Linux glaubt (Sie können sich auf die Kommentare von struct bus_type in include/linux/device.h beziehen), dass der Bus ein Kanal für den Informationsaustausch zwischen der CPU und einem oder mehreren Geräten ist. Um die Abstraktion des Gerätemodells zu erleichtern, sollten alle Geräte mit dem Bus verbunden sein (sei es der CPU-interne Bus, ein virtueller Bus oder ein „Plattformbus“).

Klasse: Im Linux-Gerätemodell ist das Konzept der Klasse dem der objektorientierten Programmierung sehr ähnlich. Es sammelt hauptsächlich Geräte mit ähnlichen Funktionen oder Attributen, sodass eine Reihe von Geräten abstrahiert werden kann, die in mehreren Anwendungen verwendet werden können . Von Geräten gemeinsam genutzte Datenstrukturen und Schnittstellenfunktionen. Daher müssen Treiber, die zu Geräten derselben Klasse gehören, diese öffentlichen Ressourcen nicht mehr wiederholt definieren und können direkt von der Klasse erben.

Gerät: Abstrahiert alle Hardwaregeräte im System und beschreibt deren Namen, Attribute, untergeordneten Bus, untergeordnete Klasse und andere Informationen.

Gerätetreiber: Das Linux-Gerätemodell verwendet Driver, um den Treiber des Hardwaregeräts zu abstrahieren, einschließlich Schnittstellenimplementierungen im Zusammenhang mit der Geräteinitialisierung und Energieverwaltung. Die Treiberentwicklung im Linux-Kernel dreht sich grundsätzlich um diese Abstraktion (Implementierung der spezifizierten Schnittstellenfunktionen).

Hinweis: Was ist Platform Bus?
Es gibt eine Art von Geräten in Computern, die über ihre jeweiligen Gerätecontroller direkt mit der CPU verbunden sind und auf die die CPU durch regelmäßige Adressierungsvorgänge zugreifen kann (oder auf ihre Controller zugreifen kann). Bei dieser Verbindungsart handelt es sich nicht um eine Busverbindung im herkömmlichen Sinne. Da das Gerätemodell jedoch universell sein sollte, erstellt Linux einen fiktiven Plattformbus, mit dem sich diese Geräte verbinden können.

2.2 Die Kernidee des Gerätemodells

Die Kernidee des Linux-Gerätemodells ist (mit xxx Mitteln den Zweck von xxx zu erreichen):

1. Verwenden Sie zwei Datenstrukturen, Gerät (Strukturgerät) und Gerätetreiber (Strukturgerät_Treiber), um das Hardwaregerät aus den beiden Perspektiven „Wofür wird es verwendet“ und „Wie wird es verwendet“ zu beschreiben? Dies vereinheitlicht das Format zum Schreiben von Gerätetreibern und ändert die Treiberentwicklung von Aufsatzfragen zu Lückentexten, wodurch die Entwicklung von Gerätetreibern vereinfacht wird.

2. Verwenden Sie außerdem die beiden Datenstrukturen „Gerät“ und „Gerätetreiber“, um Plug-and-Play (Hot-Swapping) von Hardwaregeräten zu realisieren.
Solange im Linux-Kernel jedes Gerät und jeder Gerätetreiber denselben Namen haben, führt der Kernel die Initialisierungsfunktion (Probe) in der Gerätetreiberstruktur aus, die das Gerät initialisiert und verfügbar macht.
Bei den meisten Hot-Swap-fähigen Geräten sind die Gerätetreiber immer im Kernel vorhanden. Wenn das Gerät nicht angeschlossen ist, ist seine Gerätestruktur nicht vorhanden, sodass sein Treiber keine Initialisierungsvorgänge durchführt. Wenn das Gerät eingefügt wird, erstellt der Kernel eine Gerätestruktur (mit demselben Namen wie Driver), die die Ausführung von Driver auslöst. Das ist das Plug-and-Play-Konzept.

3. Lösen Sie die Abhängigkeiten zwischen Geräten über die Baumstruktur vom Typ „Bus–>Gerät“ (siehe Legende in Kapitel 2.1). Diese Abhängigkeit ist besonders wichtig bei Prozessen wie Ein- und Ausschalten, Energieverwaltung usw.
Stellen Sie sich vor, dass ein Gerät an einen Bus angeschlossen ist. Um das Gerät zu starten, muss zuerst der Bus gestartet werden, an dem es angeschlossen ist. Wenn es viele Geräte im System gibt und die Abhängigkeiten sehr komplex sind, können offensichtlich weder der Kernel noch die Treiberentwickler diese Beziehung aufrechterhalten.
Die Baumstruktur im Gerätemodell kann diese Abhängigkeit automatisch verarbeiten. Vor dem Starten eines Geräts prüft der Kernel, ob das Gerät von anderen Geräten oder Bussen abhängig ist. Wenn nicht, werden diese zuerst gestartet, bis die Bedingungen für den Start des Geräts erfüllt sind getroffen. Was Treiberentwickler tun müssen, ist, den Kernel beim Schreiben eines Gerätetreibers über die Abhängigkeiten des Geräts zu informieren.

4. Verwenden Sie die Klassenstruktur und führen Sie objektorientierte Konzepte in das Gerätemodell ein, wodurch gemeinsame Funktionen weitestgehend abstrahiert, Doppelarbeit im Treiberentwicklungsprozess reduziert und die Arbeitsbelastung verringert werden können.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Linux-Gerätemodells (1)_Grundlegende Konzepte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Android TV Box erhält inoffizielles Ubuntu 24.04-Upgrade Android TV Box erhält inoffizielles Ubuntu 24.04-Upgrade Sep 05, 2024 am 06:33 AM

Für viele Benutzer klingt das Hacken einer Android-TV-Box entmutigend. Allerdings stand Entwickler Murray R. Van Luyn während der Broadcom-Chipknappheit vor der Herausforderung, nach geeigneten Alternativen zum Raspberry Pi zu suchen. Seine Zusammenarbeit mit der Armbia

Deepseek Web Version Eingang Deepseek Offizielle Website Eingang Deepseek Web Version Eingang Deepseek Offizielle Website Eingang Feb 19, 2025 pm 04:54 PM

Deepseek ist ein leistungsstarkes Intelligent -Such- und Analyse -Tool, das zwei Zugriffsmethoden bietet: Webversion und offizielle Website. Die Webversion ist bequem und effizient und kann ohne Installation verwendet werden. Unabhängig davon, ob Einzelpersonen oder Unternehmensnutzer, können sie massive Daten über Deepseek problemlos erhalten und analysieren, um die Arbeitseffizienz zu verbessern, die Entscheidungsfindung zu unterstützen und Innovationen zu fördern.

So installieren Sie Deepseek So installieren Sie Deepseek Feb 19, 2025 pm 05:48 PM

Es gibt viele Möglichkeiten, Deepseek zu installieren, einschließlich: kompilieren Sie von Quelle (für erfahrene Entwickler) mit vorberechtigten Paketen (für Windows -Benutzer) mit Docker -Containern (für bequem am besten, um die Kompatibilität nicht zu sorgen), unabhängig von der Methode, die Sie auswählen, bitte lesen Die offiziellen Dokumente vorbereiten sie sorgfältig und bereiten sie voll und ganz vor, um unnötige Schwierigkeiten zu vermeiden.

BitPie Bitpie-Wallet-App-Download-Adresse BitPie Bitpie-Wallet-App-Download-Adresse Sep 10, 2024 pm 12:10 PM

Wie lade ich die BitPie Bitpie Wallet-App herunter? Die Schritte sind wie folgt: Suchen Sie im AppStore (Apple-Geräte) oder Google Play Store (Android-Geräte) nach „BitPie Bitpie Wallet“. Klicken Sie auf die Schaltfläche „Get“ oder „Install“, um die App herunterzuladen. Besuchen Sie für die Computerversion die offizielle BitPie-Wallet-Website und laden Sie das entsprechende Softwarepaket herunter.

Bitget Offizielle Website -Installation (2025 Anfängerhandbuch) Bitget Offizielle Website -Installation (2025 Anfängerhandbuch) Feb 21, 2025 pm 08:42 PM

Bitget ist eine Kryptowährungsbörse, die eine Vielzahl von Handelsdienstleistungen anbietet, darunter Spot -Handel, Vertragshandel und Derivate. Der 2018 gegründete Austausch hat seinen Hauptsitz in Singapur und verpflichtet sich, den Benutzern eine sichere und zuverlässige Handelsplattform zu bieten. Bitget bietet eine Vielzahl von Handelspaaren, einschließlich BTC/USDT, ETH/USDT und XRP/USDT. Darüber hinaus hat der Austausch einen Ruf für Sicherheit und Liquidität und bietet eine Vielzahl von Funktionen wie Premium -Bestellarten, gehebelter Handel und Kundenunterstützung rund um die Uhr.

Installation der Quellcode-Kompilierung von Zabbix 3.4 Installation der Quellcode-Kompilierung von Zabbix 3.4 Sep 04, 2024 am 07:32 AM

1. Installationsumgebung (virtuelle Hyper-V-Maschine): $hostnamectlStatichostname:localhost.localdomainIconname:computer-vmChassis:vmMachineID:renwoles1d8743989a40cb81db696400BootID:renwoles272f4aa59935dcdd0d456501Virtualisierung:microsoftOperatingSystem:CentOS 7(Kern)CPEOSName:cpe:

Ouyi OKX Installationspaket ist direkt enthalten Ouyi OKX Installationspaket ist direkt enthalten Feb 21, 2025 pm 08:00 PM

Ouyi Okx, die weltweit führende digitale Asset Exchange, hat jetzt ein offizielles Installationspaket gestartet, um ein sicheres und bequemes Handelserlebnis zu bieten. Auf das OKX -Installationspaket von Ouyi muss nicht über einen Browser zugegriffen werden. Der Installationsprozess ist einfach und einfach zu verstehen.

Holen Sie sich das Installationspaket Gate.io kostenlos Holen Sie sich das Installationspaket Gate.io kostenlos Feb 21, 2025 pm 08:21 PM

Gate.io ist ein beliebter Kryptowährungsaustausch, den Benutzer verwenden können, indem sie sein Installationspaket herunterladen und auf ihren Geräten installieren. Die Schritte zum Abholen des Installationspakets sind wie folgt: Besuchen Sie die offizielle Website von Gate.io, klicken Sie auf "Download", wählen Sie das entsprechende Betriebssystem (Windows, Mac oder Linux) und laden Sie das Installationspaket auf Ihren Computer herunter. Es wird empfohlen, die Antiviren -Software oder -Firewall während der Installation vorübergehend zu deaktivieren, um eine reibungslose Installation zu gewährleisten. Nach Abschluss muss der Benutzer ein Gate.io -Konto erstellen, um es zu verwenden.

See all articles