Linux-Kernel-Entwicklung
Referent
Richard Sailer
Datum
30.04.2016
Kurzbeschreibung
Der Linux-Kernel ist das pulsierende Herzstück jedes Debian-Servers, jedes Ubuntu-Desktop-Systems und jedes Android-Smartphones. Der Quellcode ist gleichzeitig für alle offen einseh- und auch für den eigenen Computer erweiter- und anpassbar. So können neue Funktionen oder Treiber für neue Hardware hinzugefügt werden.
Oft möchte man jedoch, dass die eigenen Änderungen Teil des großen offiziellen Linux-Kernel-Projekts werden und damit auf alle der oben genannten Geräte verteilt werden. Dazu muss man die eigenen Änderungen als Patch an die richtigen Kernel-Maintainer schicken. Die entscheiden dann, ob die Änderungen in den Kernel kommen. Namen oder Titel sind bei dieser Entscheidung völlig bedeutungslos. Nicht aber Codequalität, Sauberkeit und äußere Form.
Mit diesem Workshop möchte ich kernel-interesierten ProgrammierInnen helfen, die Schritte zum ersten Linux-Kernel-Commit zu gehen.
Dazu werde ich zum einen auf die technischen Aspekte des Kernelcodes eingehen. Hauptsächlich werde ich jedoch das notwendige organisatorische „Drumherum“ erklären, also wie das Einsenden der Patches läuft, worauf man achten muss und so weiter.
Es gibt Antworten zu:
- Wie und wo fange ich an?
- Welches Repository ist für mich relevant?
- Wie kompiliere und teste ich meinen Kernelpatch?
- Was sind interessante „Baustellen“ zum Anfangen?
- Wie kommuniziere ich mit meinen Maintainern (Mailinglisten)?
- Wohin und wie sende ich meine(n) Code/Patches?
Inhalt und Zeitplan:
- Einleitung (10 min)
- Die Repositories und der Entwicklungsprozess (15 min)
- Der Quellcode (Überblick) (10 min)
- Kompilieren und Testen (20 min)
- Mailinglisten, Konventionen und Umgangsformen (20 min)
- Patches bauen und senden mit git-send-email (20 min)
- Buchempfehlungen und gute Quellen (kernelnewbies) (5 min)
- Fragen und Zeitpuffer (20 min)
Notwendiges Vorwissen:
- Erfahrung im Umgang mit git
- Erfahrung mit der Programmiersprache C, insbesondere Pointer
- Souveräner Umgang mit der Shell
- Ein bis zwei Jahre Erfahrung mit Linux oder einem anderen Unix
Zum Workshop kann man gerne seinen Laptop mitbringen, nötig ist es jedoch nicht.