kernel modul

Antworten
Nachricht
Autor
friedrich_chiller

kernel modul

#1 Beitrag von friedrich_chiller » 06. Jul 2006 14:10

Hallo, ich habe ein Problem mit dem Programmieren von einem Kernel-Modul. Ich will ein Modul schreiben, welches auf eine Datei zugreifen kann. Folgendes Modulgrundgerüst habe ich schon zum laufen gebracht:

#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
printk(KERN_INFO "jaman\n");
return 0;
}

void cleanup_module(void)
{
printk(KERN_INFO "jaman\n");
}



Leider kann ich in Module nicht die stdio.h mit einkompilieren. So fehlt mir eine Funktion um in Dateien schreiben zu können. Gibt es fertige Funktionen im Kernel die mir diese Aufgabe erfüllen?

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 07. Jul 2006 1:08

Mach dir erstmal klar, was Kernel-Module sind, und *warum* du nicht einfach aus dem Kernel heraus auf dem üblichen Weg eine Datei erzeugen kannst:

Der Kernel ist der, der bei Aufrufen von fopen() etc. aus einer Applikation heraus am anderen Ende der Leitung hängt und das tut, was der Prozess gerne hätte. Der Kernel ist also nicht so aufgebaut wie ein Applikationsprogramm, sondern ein Gegenstück dazu. Im Grunde genommen ist der Kernel eine Art "Über-Library", die die grundlegende Organisation des laufenden Rechners übernimmt.

Deshalb kann man auch alles vergessen, was man über das Programmieren von Applikationen weiß, wenn man mit Kernelprogrammierung anfängt.

Lies mal "Understanding the Linux Kernel" von Bovet und Cesati, erschienen bei Oreilly. Gibt es auch Online: http://safari.oreilly.com/0596005652

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Marco Gerber

#3 Beitrag von Marco Gerber » 12. Jul 2006 14:51

guten Tag

Hier noch ein paar gute Anlaufstellen fuer das Kernelhacking, welche mir immer wieder eine gute Referenz sind und mich schon vor manchem Unsinn bewahrt haben ;} .

http://ezs.kr.hsnr.de/TreiberBuch/html/
http://www.oreilly.de/german/freebooks/ ... book1.html

Und hier noch ein Projekt, welches sich jeder Neueinsteiger im Kernelbereich anschauen sollte:
http://kerneljanitors.org/


Marco Gerber

Antworten