通常,设备驱动程序可以当做是进入Linux内核世界的大门。
设备驱动程序的作用
设备驱动程序的作用在于提供机制,而不是提供策略。
不同的环境通常需要不同的方式来使用硬件,我们应该尽可能做到让驱动程序不带策略。
驱动程序主要还是考虑下面三个方面的因素:提供给用户尽量多的选项、编写驱动程序要占用的时间、尽量保持程序简单而不至于错误丛生。
可装载模块
Linux有一个很好的特性:可以在运行时扩展。这意味着当系统启动并运行时,我们可以向内核添加功能,也可以移除功能。
模块:可以在运行时添加到内核中的代码被称为模块。通过insmod程序将模块连接到正在运行的内核。通过rmmod程序移除连接。
设备和模块的分类
Linux系统将设备分成三种基本类型:字符模块、块模块、网络模块。
还有一种分类方法是根据具体设备来:比如USB驱动,I2C驱动等等。
安全问题
任何从用户进程得到的输入只有经过内核严格验证后才能使用。
加入内核开发社团
订阅linux-kernel邮件列表