A Linux Gerätetreiber unterscheidet sich deutlich von dem Windows-Pendant . Linux-Treiber erstellt werden ausschließlich um eine Schnittstelle zu der Hardware bieten . Sie machen keine Annahmen darüber, wie die Hardware verwendet werden. Auch sie in der Regel nicht bieten jede Art von grafischen Benutzeroberflächen für die Hardware . Die meisten Treiber für Linux unterstützten Hardware ist Teil des Linux-Kernels Source-Tree und werden von der Linux -Entwickler-Community gepflegt. Funktion
Ein Gerätetreiber hat die Aufgabe, den Zugang zu einem Stück Hardware bereitzustellen. In Windows wird dies durch das Application Binary Interface (ABI) durchgeführt fordert , dass Microsoft für den Fahrer Entwickler bietet . Der Gerätetreiber für Windows wird dann dem Anwender als Binary-Anwendung zur Verfügung gestellt.
In Linux gibt es keine ABI oder Application Programming Interface (API) für Gerätetreiber. Stattdessen bietet der Linux-Kernel eine stabile Userspace- Schnittstelle für Applikationen . Gerätetreiber sind als Module des Linux- Kernel , die die Details , wie das Gerät funktioniert verstecken erstellt . Diese Module entsprechen einer Reihe von standardisierten Anrufe, die unabhängig von den Gerätetreiber selbst sind .
Funktionen
Eines der wichtigsten Features von Linux-Gerätetreiber ist, dass sie modular. Sie können und werden getrennt vom Rest der Kernel gebaut . Dies bedeutet, dass jedes Modul ( oder Treiber) verwendet werden können oder entfernt aus dem Kernel zur Laufzeit je nach Hardware verfügbar ist .
Treiber sind auch mit der Unterscheidung zwischen Mechanismus und Politik aufgebaut . Mechanismus ist, was Funktionen bereitgestellt werden , und Politik ist, wie die Funktionen verwendet werden sollen . Der Linux- Gerätetreiber ist Politik frei . Der Fahrer greift auf die Hardware aber nicht sagen , wie es dem Anwender oder kann verwendet werden sollte.
Geräteklassen
Der Linux-Kernel trennt Hardware-Geräte in drei Haupttypen: Charakter -Geräte , Block-Geräte und Netzwerk-Schnittstellen. Ein Charakter kann als ein Strom von Zeichen oder Bytes , ähnlich einer Datei zugegriffen werden. Zu diesen Geräten gehören die Text -Konsole , die Tastatur und die seriellen Ports.
Ein Block ist eine Vorrichtung , die nur in Blöcken von Daten zugegriffen werden kann (in der Regel ein Kilobyte oder eine andere Potenz von 2 ) und kann ein Dateisystem hosten , wie eine Festplatte. Linux ermöglicht es, Anwendungen zu lesen und zu schreiben, um Geräte wie ein Charakter Gerät zu sperren , so dass sie in besonderer Weise vom Kernel verwaltet.
Ein Netzwerkgerät ermöglicht den Austausch von Daten mit anderen Rechnern . Diese Vorrichtungen sind in der Regel Hardware, sondern auch reine Software sein . Der Kernel hat einen anderen Weg, um mit Netzwerkgeräten als mit Zeichen-oder Block-Devices zu kommunizieren. Statt Lesen und Schreiben auf das Gerät , behandelt sie Paketübertragungsrate .
Den Führerschein
Der Linux-Kernel steht unter der GNU General Public License (GPL) lizenziert , was bedeutet es ist Open Source und frei verfügbar für jedermann zum Download , zu verändern und weiterzugeben , solange die umverteilt Code wird auch unter der GPL lizenziert. Dies gilt jedoch nicht für Linux-Gerätetreiber gelten .
Da der Kernel ist modular aufgebaut, ist der Gerätetreiber nicht Teil des Kernels werden . Stattdessen greift er auf den Kernel durch eine gut definierte Schnittstelle . Wenn der Gerätetreiber verwendet nur dieses Modul -Schnittstelle , muss es nicht unter der GPL lizenziert werden . Allerdings, wenn der Gerätetreiber tatsächlich nutzt einen Teil des Kernel-Code , um zu arbeiten , anstatt die Schnittstelle verfügbar ist, muss es unter der GPL abgedeckt werden.
Verschmelzung mit dem Kernel
< br >
Sobald ein Gerätetreiber wird akzeptiert als " Arbeit " , die vom Linux Kernel Development-Team , wird es Teil des Mainline Linux Kernelquellbaum geworden . Das bedeutet, dass es wird gehalten werden, um durch nachträgliche Änderungen des Kernels Bisher wird mit allen Zentraleinheiten ( CPUs) von Linux unterstützt zu arbeiten, und wird fixiert und durch die Linux -Entwickler-Community verbessert werden.
Die Kernel-Quellen Baum hält Module für die meisten der Hardware von Linux unterstützt . Das ist , warum, wie lange, wie Sie Linux unterstützten Hardware , können Sie das Betriebssystem laden und Ihre Hardware- Arbeit ohne die Installation zusätzlicher Treiber-Software.