Ydin

Oma ydinmoduuli: hello world

Minimimoduuli näyttää latauksen, poiston ja ytimen lokiin kirjoittamisen.

Komennot ja asetukset

// hello.c
#include <linux/module.h>
#include <linux/init.h>
static int __init hello_init(void){ pr_info("hello\n"); return 0; }
static void __exit hello_exit(void){ pr_info("bye\n"); }
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");

# Makefile
obj-m += hello.o
all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

sudo insmod hello.ko && dmesg | tail

Huomioitavaa

Testaa moduulit virtuaalikoneessa, ettei virhe kaada työkonetta.

Lue myös

Ydin

Linux-ytimen rakentaminen lähdekoodista

Käytä toimivan ytimen asetuksia pohjana ja käännä ne omilla muutoksillasi.

Ydin

DKMS: moduulit, jotka selviävät ydinpäivityksistä

DKMS kääntää ulkoiset moduulit uudelleen aina, kun uusi ydin asennetaan.

Ydin

bpftrace: ytimen jäljitys yhdellä rivillä

eBPF mahdollistaa järjestelmäkutsujen ja ytimen funktioiden seurannan ilman uudelleenkäynnistystä.