Ich habe ein gutes Maß an Erfahrung im Design von Hardware und eingebetteten Systemen im Allgemeinen, aber ich habe noch nie einen Treiber für ein Betriebssystem geschrieben.
Ich würde gerne wissen, ob es gute Handbücher gibt, am besten online, obwohl mich gute Bücher interessieren, die mir einen guten Einstieg in das geben, was ich wissen muss, um Treiber für ein Betriebssystem zu entwerfen und zu implementieren.
Hier werden wahrscheinlich Leute auf mich schießen, und obwohl ich gerne eine gute Anleitung sehen würde, egal auf welchem Betriebssystem sie basiert, würde ich gerne eine Anleitung sehen, die auf Windows basiert, hauptsächlich aufgrund der Tatsache, dass die meisten Leute Ich würde ein Produkt verkaufen, würde Fenster haben.
Bitte lassen Sie mich wissen, ob ich zusätzliche Informationen hinzufügen kann, um dies klarer zu machen.
Antworten:
Die meisten meiner jüngsten Erfahrungen beim Schreiben von tatsächlichen Betriebssystemtreibern habe ich mit Linux gesammelt, und die beste Referenz für IMO sind die bereits erwähnten Linux-Gerätetreiber, 3rd Edition von Jonathan Corbet, Alessandro Rubini und Greg Kroah-Hartman (2005). Es ist bei Amazon , Safari Books On-Line und auch als kostenloser Download erhältlich .
Weitere Bücher zum gleichen Thema sind Essential Linux Device Drivers von Sreekrishnan Venkateswaran (2008) (ebenfalls in Safari Books Online erhältlich ) und Writing Linux Device Drivers: eine Anleitung mit Übungen (Band 3) von Dr. Jerry Cooperstein (2009).
Für Windows-Gerätetreiber ist das neueste Buch zu diesem Thema (vor zwei Wochen veröffentlicht) der Windows 7-Gerätetreiber von Ronald D. Reeves, Ph.D. (2010). Es ist auch in Safari Books Online verfügbar .
Ein älteres Buch, das sich mit Windows XP befasst, ist: Programming the Microsoft Windows Driver Model, Second Edition , von Walter Oney (2002). Es ist auch in Safari Books Online verfügbar .
Ein weiteres Buch, das vergriffen zu sein scheint, aber in Safari Books Online erhältlich ist, ist die Entwicklung von Treibern mit der Windows Driver Foundation von Penny Orwick und Guy Smith (2007). Ich gehe davon aus, dass es Windows Vista abdecken würde.
Schließlich hat Microsoft Verweise auf viele Blogs usw. , in denen die Treiberentwicklung erörtert wird.
quelle
Ein guter Treiber kapselt die Fähigkeiten der Hardware und stellt diese dem Betriebssystem / den Anwendungen auf natürliche Weise zur Verfügung.
Wie dies am besten funktioniert, hängt stark davon ab, auf welches Betriebssystem Sie abzielen und für welche Art von Hardware der Treiber gedacht ist.
Meine Erfahrung ist alles mit Linux und kleinen benutzerdefinierten Echtzeit-Betriebssystemen.
Für Linux würde ich empfehlen, Linux-Gerätetreiber zu lesen . Es bietet eine gute Einführung in die verschiedenen Arten von Linux-Treibern und die Abstraktionen, die das Betriebssystem für sie bereitstellt.
Geräte wie serielle Ports, an denen Daten nacheinander gelesen werden, werden normalerweise von Zeichengerätetreibern mit einem Geräteknoten im Benutzerbereich behandelt, von dem Anwendungen lesen können.
cat
kann aus diesen lesen.Direktzugriffsgeräte wie Flash-Speicher und Festplatten werden von Blockgeräten verwaltet.
dd
kann auf diese zugreifen. Schauen Sie sich als gutes Beispiel das Linux-MTD- System an.Treiber, die nur wenig mit Hardware zu tun haben, müssen mit ziemlicher Sicherheit im Kernel-Space implementiert werden. Sie können ein zur Laufzeit ladbares Kernelmodul erstellen oder Ihren Code statisch im Linux-Kernel ablegen.
Treiber, die auf vorhandenen generischen Treibern wie USB aufbauen, können im Userspace geschrieben werden. Verwenden Sie zum Beispiel libusb .
quelle
Ich habe noch keine Erfahrung mit dieser Ausgabe, aber ich werde meine zwei Cent geben.
Sie können hier http://www.osr.com/index.html oder hier https://www.osronline.com/index.cfm starten
Hier in Brasilien haben wir einen guten Blog zu diesem Thema. Es ist in Portugiesisch und Englisch geschrieben. Die meisten Artikel sind leider in Portugiesisch.
In diesem Blog gibt es einen portugiesischen Beitrag zu Büchern: http://translate.google.com.br/translate?hl=pt-BR&ie=UTF-8&sl=pt&tl=de&u=http://driverentry.com.br/ Blog /% 3Fp% 3D825 & twu = 1
Ich hoffe ich habe ein wenig geholfen
quelle