Treiberenwicklung in C HW 4 Flashcards
What is the file format of compiled Kernel modules?
.ko files are now used instead of .o files. They contain an additional .modinfo section that holds additional information about the module.
In the VM, load the module using either modprobe (requires previous depmod) or insmod
What is the difference between the two?
insmod is a simple program to insert a module into the kernel. It can not handle module dependencies and will report only the most general errors.
On the other hand modprobe is a more advanced tool that intelligently adds or removes modules. It automatically looks at the /lib/modules/uname -r directory.
What does depmod do?
It generates a modules.dep file which handles the dependencies between modules easily. It checks the /lib/modules/uname -r directory for each module and handles their symbols.
Welche Tools muss Busybox bereitstellen um mit Modulen umzugehen?
modprobe modinfo rmmod lsmod insmod dmesg: Das dmesg (display message) Kommando zeigt unter Linux den Inhalt des Kernel Ring Buffers. Die darin enthaltenen Meldungen werden typischerweise von Gerätetreibern erzeug depmod
Welche Makros werden für die grundsätzliche Entwicklung von Modulen verwendet?
MODULE_LICENSE(“GPL”);
MODULE_AUTHOR(AUTHOR);
MODULE_DESCRIPTION(“Simple Hello World example”);
Wie sehen die Bodys von ModInit und ModExit aus?
static int __init ModInit(void)
static void __exit ModExit(void)
Was ist die Major Number?
The major number identifies the driver associated with the device. For example, /dev/null and /dev/zero are both managed by driver 1, whereas virtual consoles and serial terminals are managed by driver 4; similarly, both vcs1 and vcsa1 devices are managed by driver 7. The kernel uses the major number at open time to dispatch execution to the appropriate driver.
Was ist die Minor Number?
The minor number is used only by the driver specified by the major number; other parts of the kernel don’t use it, and merely pass it along to the driver. It is common for a driver to control several devices (as shown in the listing); the minor number provides a way for the driver to differentiate among them.
Wie initialisiert man einen Buffer in Modulen?
buffer = (char*)kmalloc(sizeof(char) * buffersize, GFP_KERNEL);
Was ist beim ModExit zusätzlich zu beachten?
Offene Ressourcen schließen.
Was machen die Devices null & zero
/dev/zero bezeichnet eine virtuelle Gerätedatei auf Unix-artigen Betriebssystemen, die beim Lesezugriff die angeforderte Anzahl an Null-Bytes (Nullzeichen) zurückliefert.
Wird /dev/null bei der Ausgabe adressiert, wird ein auszugebener Datenstrom verworfen. Beim Lesezugriff darauf (Eingabe) wird ein einzelnes End-of-File-Zeichen (EOF) ausgegeben.