ch01. 设备驱动程序简介
设备驱动程序的作用在于提供机制(需要提供什么功能),而不是提供策略(如何使用这些功能)。
内核功能划分:
进程管理:进程创建、销毁、进程间通信、共享cpu调度器。
内存管理:内核为每个进程创建一个虚拟地址空间,内核的不同部分在和内存管理子系统交互时使用一组函数调用,包括简单的malloc/free函数以及其他的复杂的函数。
文件系统:“一切皆文件”。
设备控制:几乎每一个系统操作都会映射到物理设备上。除了处理器、内存以及其他很有限的几个对象外,所有设备控制操作都由与被控制设备相关的代码来完成,这段代码就叫做驱动程序。
网络功能:所有的路由和地址解析问题都由内核处理。
可装载模块
linux有一个很好的特性:内核提供的特性可在运行时进行扩展。这意味着当系统启动并运行时,我们可以向内核添加功能(当然也可以移除)。可在运行时添加到内核中的代码被称为“模块”。
insmod 加载模块
rmmod 卸载模块
设备和模块的分类
字符模块(字符设备)、块模块(块设备)、网络模块(网络设备)