Kernel Programming

10/19/2015 16:37 Belur#1
Hey,

ich habe in diesem Semester das Wahlpflichtmodul "Kernel Programming".
Wir dürfen in 3er-Gruppen ein Thema unserer Wahl bearbeiten (solange der Prof unserem vorgeschlagenem Thema zustimmt).

Nun ist es wirklich extrem schwer vernünftige Projektideen zu finden. Diese Sachen sind als Projekt zB. möglich:

-Entwicklung von Kernel Modulen
-Elementare Treiberentwicklung
-Implementation eigener Systemaufrufe
-Implementation eigener Ereignis-Semaphoren
-Projekte auf PI?

Treiberentwicklung oder einen eigenen Systemaufruf implentieren ist mit Sicherheit spannend, stellt sich nur die Frage wofür einen Treiber bzw was für einen Systemaufruf.
Auf dem PI etwas zu machen wäre natürlich auch cool.

Vllt. hat der eine oder andere eine Idee für ein "Einstiegsprojekt".

Grüße
10/19/2015 20:04 qqdev#2
Auf livecoding.tv streamt manchmal ein Deutscher, der einen Treiber für Wii Remotes schreibt. Ziemlich interessant. Vielleicht findet ihr etwas ähnliches.
10/21/2015 11:22 snow#3
Baut ihr denn auf einem bestimmten Kernel auf?

Syscalls, Semaphores und Treiber sind (je nach Umfang natürlich) vergleichsweise simpel. Persönlich fand ich ja Scheduling ganz interessant, Memory Management etc. ist auch ganz interessant.
10/21/2015 11:44 Belur#4
Der Kernel darf frei gewählt werden denke ich mal.
Vermutlich würden wir dann den 3.9er bzw 4.1er nutzen.

Hatten zum Test jetzt mal ein Modul geschrieben, dass die Source-Adresse von allen empfangenen Paketen ausgibt. Eventuell wollen wir darauf aufbauen und und allgemein Pakete analysieren / Statistik führen (praktisch eine Art netstat). Wenns möglich ist dann eventuell auch Pakete von bestimmen IP's verwerfen.
Hier bin ich mir aber auch nicht sicher, ob das Modul praktisch "man in the middle" ist und somit auch Pakete wegwerfen kann oder nur mitliest bzw informiert wird.

Scheduling und Memory Managment hört sich definitiv interessant an. Hätte rein intuitiv aber gedacht, dass das aber extrem schwer ist. Werde mich damit nochmal befassen bzw etwas einlesen.