ubuntuusers.de

Treiberprogrammierung

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

deadtronic

Anmeldungsdatum:
18. Februar 2010

Beiträge: 762

Ich überlege mir gerade, mir in nächster Zeit mal Treiberprogrammierung anzuschauen.

Ich habe allerdings nur mittelmäßige C++-Kentnisse, deswegen würde mich mal interessieren ob man das mit vertretbaren Aufwand lernen kann oder ob das Monate bis Jahre dauert.

Ausserdem, müssen Treiber in C geschrieben werden oder geht das ebenso auch problemlos in C++? Soweit ich weiß wird ja heute immer noch fast alles im Kernel in C geschrieben, deshalb die Nachfrage.

Auf der Suche nach Informationen bin ich auf folgendes gestossen:

The Linux Kernel Module Programming Guide
http://tldp.org/LDP/lkmpg/2.6/html/index.html

Linux-Treiber entwickeln
https://ezs.kr.hsnr.de//TreiberBuch/html//

Gibt es da noch mehr gute Quellen oder bin ich damit schon gut bedient?

Danke für Tipps jeglicher Art

Logander4

Avatar von Logander4

Anmeldungsdatum:
12. November 2009

Beiträge: 156

Also als erstes würde ich bei Google und anderen Suchmaschinen, vllt. Metager, nach Treibern suchen die dein Vorhaben ablösen. Anstatt einen eigenen Treiber umständlich zu programmieren, würde ich im Wiki gucken, welche Geräte kompatibel sind und welche nicht. Hast du eins, und es geht mit ndiswrapper, dann warte auf die nächste Version und dann installieren den Treiber!(nur bei 10.10, sonst auch mit ndiswrapper1.5) Solltest du doch keinen Treiber finden, so hole dir ein neues Gerät, Umtausch?

Solltest du ein eigenes Gerät erfunden haben das Treiber benötigt, so führt kein Weg um die Programmierung drum zu, wenn du die Patentrechte behalten willst natürlich.

Ich selber habe damit keine Erfahrung aber mir wurde gesagt, dass Treiber für Windows oft in Basic/Visual Basic/Visual C#/QBasic/Assembler geschrieben sind. Die Treiber für Linux oder Mac OS X müssen eben auf den entsprechenden Plattformen programmiert werden und kompiliert werden.

Als letztes: Ich habe keine Ahnung von C/C++ nur von Python und PHP!

Wenn du das wirklich willst, dann schaffst du es immerhin ansatzweise. Wende dich an eine entsprechende Firma, diese kann dir evtl. sogar Mittel dafür zur Verfügung stellen, solltest du genügend Geld in der Tasche haben.

Ansonsten BB DomainTutorials!

Panke

Anmeldungsdatum:
14. Oktober 2010

Beiträge: 133

chjurk

Anmeldungsdatum:
22. Juni 2009

Beiträge: 16

Wenn du nur mittelmäßige Skills hast, würde ich dir davon abraten. Treiber für Linux schreibt man in C (nicht in C++) und da ist eine große Sorgfalt, sowie technisches Verständnis der Kernel-internen Routinen notwendig. Treiberprogrammierung ist nicht umsonst mitunter eine der Königsdisziplinen in der Programmierung. Mit einem schlecht programmierten Treiber wirst du das System zum Absturz bringen. Treiberentwickler, insbesondere Neulinge, müssen viel Zeit und Geduld mitbringen. Hier muss man eher mit Jahren als mit Wochen/Monaten rechnen, wenn man alleine einen Treiber basteln will - so zumindest die Aussage von diversen Treiberentwicklern. Treiber beschränken sich übrigens nicht nur auf Gerätetreiber, sondern auch auf andere Komponenten, z.B. Dateisystemtreiber (an welchem ich momentan arbeite, allerdings für Windows).

Wenn du dich allerdings langfristig in diese Richtung entwickeln willst, empfehle ich dir dich langsam an die Sache ranzutasten. Eher mit kleineren Treibern anfangen, den vorgegebenen Source abändern. So erzielst du relativ schnell Ergebnisse. Dank virtueller Maschinen kann man das ganze dann noch relativ gefahrlos testen.

Antworten |