FreeBSD Treiber

Nite

Happy BSD User :)
Nabend,

ich möchte gerne Treiberprogrammierung lernen habe aber noch kein Buch, wollte mir aber dennoch mal anschauen, wie solche Treiber aussehen könnten.
Deshalb habe ich im FreeBSD-SVN-Repo geschaut aber noch nichts, was namentlich gut pasen würde, finden können. Da ich aber weiß, dass sich der Kernel von FreeBSD unter /sys im SVN-Repo befindet, habe ich dort mal geschaut (http://svn.freebsd.org/base/stable/2.0.5/sys/).

Wisst ihr genau wo ich da was finden kann? Was für Treiber sind mir im Grunde egal, hauptsache man kann daraus eventuell etwas lernen. :)


Danke
_______________________

Wobei ich sagen muss, sowas wie IDE-Treiber oder so wären interessant. (SATA habe ich (noch) nicht, von daher^^.)
 
Zuletzt bearbeitet:
Oh, in dev sind auch welche drin? :D
Ich hatte diese Datei gefunden: http://svn.freebsd.org/base/stable/7/sys/i386/conf/GENERIC.hints In der steht:
hint.ata.0.at="isa"
hint.ata.0.port="0x1F0"
hint.ata.0.irq="14"
hint.ata.1.at="isa"

Weswegen ich nach isa gesucht und auch gefunden habe. Meine Absicht in FBSD 2 zu suchen, ist damit begründet, dass die älteren Treiber eventuell kleiner sind und deshalb besser verständlich. :)


Aber danke für deinen Link, ich schaue es mir mal an.
_________________________________________

Wobei ich gerade sehe, dass es wohl erst ab FreeBSD 4 ATA gab. :) http://svn.freebsd.org/base/stable/4/sys/dev/ata/
 
Zuletzt bearbeitet:
Oh, in dev sind auch welche drin?
Eigentlich alle. ;)
GENERIC.hints enthält "Standard"-Einstellungen diverser Hardware (Floppy, RS232, ...) und enthält selbst keine Treiber.

Meine Absicht in FBSD 2 zu suchen, ist damit begründet, dass die älteren Treiber eventuell kleiner sind und deshalb besser verständlich.
Da ist sicher eine gute Idee. Der ata-Treiber ist aber erst seit FreeBSD 4 dabei...
Edit: Da warst du schneller.

mousaka
 
Nein, nein. Dein Ansatz ist falsch. Hardware ist heute zwar komplexer und die Treiber auch, aber die Techniken haben sich ebenfalls weiterentwickelt. Schau mal, ein FreeBSD 2 hat mit einem FreeBSD 7 ungefähr genauso viel gemeinsam wie ein Windows 95 mit Windows 2008. Dazwischen liegen einfach Welten. Nehme zur Ansicht lieber einen aktuellen Treiber, welcher realtiv einfach ist. speaker(4) ist so ein Kandidat. Das Ding steuert einfach deinen Gehäusepieper an, eine recht simple Aufgabe. Zwei Sourcedateien, einigermaßen verständlich. Du findest ihn im SVN unter http://svn.freebsd.org/viewvc/base/head/sys/dev/speaker/
 
Hmm... Okay Yamagi, das macht wohl Sinn... Dann schaue ich mir eben die neueren an. :) Danke für die Info!
 
Ich denke auch, das es wichitg ist sich mit dem ganzen Konzept von FreeBSD vertraut zu machen und erstmal ein wenig damit zu spielen und es kennen zu lernen. Locking System, Syscall, vm... all das ist denke ich unumgänglich, wenn man wirklich erstmal verstehen will, was da vor sich geht. Und Verständnis ist die Grundvorraussetzung um selber (sinnvoll) aktiv zu werden. Dazu wurden auf der ml mal ein paar gute Links gepostet, die einen guten spielerischen Einstand liefern:
http://www.r4k.net/mod/fbsdfun.html

Auch ist das hier nicht schlecht:
http://packetstormsecurity.org/papers/unix/bsdkern.htm

Dann gibts ja noch diverse Bücher: The Design and Implementation of BSD, FreeBSD, $BSD...
Diese ganze Reihe ist auch sehr hilfreich. Natürlich nicht mehr aktuell...

Aber am besten lernt man es wohl, wenn man ab einem gewissen Level, einfach nur viel im Quelltext liest. Keine Frage das eine Grundvoraussetzung dafür ist, das man C ganz gut beherrscht. ;)
 
Zurück
Oben