Skip to content

Exercise #8. Виртуальная файловая система. Програмный интерфейс. Ресурсы


Description

Build a simple kernel module.


Guidance

Использовать Git.

Использовать следующие названия директорий: exercise08 - для проектов решений подзадач; partXX - для проекта решения соответствующей подзадачи (XX - номер подзадачи); src - для исходников.

Периодически отправлять изменения в удаленный репозиторий, соответствующий Вашей фамилии.

1) Build and test HelloWorld module.

ex01.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>

MODULE_LICENSE("GPL");
MODULE_AUTHOR("xone");
MODULE_DESCRIPTION("A simple example Linux module.");
MODULE_VERSION("0.01");

static int __init ex01_init(void)
{
    printk(KERN_INFO "Hello!!!\n");
    return 0;
}

static void __exit ex01_exit(void)
{
    printk(KERN_INFO "Bye...\n");
}

module_init(ex01_init);
module_exit(ex01_exit);
Makefile
obj-m += ex01.o
all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
test:
    sudo dmesg -C
    sudo insmod ex01.ko
    sudo rmmod ex01.ko
    dmesg

2) Build and test Procfs demo module.