Ein guter einstieg is m.E. die Janitor Gruppe.
Sie bietet die Möglichkeit ein paar Erfahrungen wie Code-Qualität, einsenden von Patches etc. zu sammeln.
re, wh
________________________________________ Von: Flug flug-bounces@lug-freiburg.de im Auftrag von Uwe Kleine-König uwe@kleine-koenig.org Gesendet: Montag, 3. Februar 2020 10:13 An: flug@lug-freiburg.de Betreff: Kernel-Programmierung [Was: Re: Anfrage wg. Flug-Treffen]
Hallo Marc,
On 2/1/20 12:46 AM, Marc Schwarz wrote:
andere Frage: ist hier jemand im Forum, der sich mit Kernelprogrammierung beschäftigt ?
Es ist empfehlenswert für eine neue Frage auch einen neuen Mail-Thread anzufangen und nicht auf eine bestehende Mail zu antworten. Ich habe wenigstens mal den Betreff angepasst.
Ich war wegen eines Unfalls vor Sylvester einige Zeit im Krankenhaus und hatte dadurch Zeit, mich mit dem von mir lange aufgeschobenen Herzensprojekt "Kernelprogrammierung" zu befassen.
Jetzt habe ich bei meiner Lektüre von Büchern und Code als die eine oder andere Frage, bei der ich Hilfe von einem erfahrenene Programmierer benötigen könnte.
Kennst Du den #kernelnewbies irc channel? Das ist eine prima Resource für solche Fragen.
Es sind oft Trivilialitäten wie z.B. "warum wird nach insmod der Code dauernd bzw. überhaupt ausgeführt, ohne, dass irgendwo die "main" Routine" oder eine Funktion aufgerufen wird. Wo wird das getriggert etc. Da fehlen mir dann oft einfach die Zusammenhänge.
Etwas vereinfacht: Wenn ein Kernel-Modul geladen wird, wird die Funktion "init_module" aufgerufen. Das ist einfach anders als bei normalen Programmen, auch weil es bei Modulen eine Funktion "cleanup_module" gibt, die beim Entladen aufgerufen wird; bei normalen Programmen gibt es nichts entsprechendes. (Die Makros module_init und module_exit sind dann Wrapper um diese beiden Mechanismen.)
Und wenn ich weiß, wo ich nachschauen kann, dann ist mir schon geholfen.
Das weißt Du bestimmt: Der Quelltext von Linux ist einsehbar. Der Code definiert genau, wie sich Linux verhält :-)
Die Antwort oben habe ich da auch rausgelesen. Siehe
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/incl...
Liebe Grüße Uwe