Linux 内核驱动主要使用 C 语言 编写,辅以少量 汇编语言 和特定于内核的扩展语法。以下是关键细节:
__attribute__ 宏、内联汇编等)。stdio.h、malloc),需改用内核提供的替代(如 printk、kmalloc)。asm 关键字)。__attribute__((section("name"))) 定义代码/数据段。Makefile 和 Kconfig 组织驱动编译。.dts 文件(非编程语言,但属于驱动开发内容)。#include <linux/module.h>
#include <linux/kernel.h>
static int __init mydriver_init(void) {
printk(KERN_INFO "Driver loaded!\n");
return 0;
}
static void __exit mydriver_exit(void) {
printk(KERN_INFO "Driver unloaded.\n");
}
module_init(mydriver_init);
module_exit(mydriver_exit);
MODULE_LICENSE("GPL");
如果需要更具体的领域(如网络驱动、字符设备),可进一步探讨!