linux内核为字符设备的驱动程序设计,提供了一些数据结构,和函数,供开发人员调用,将设备驱动程序注册到内核去。现代操作系统几乎都不直接和硬件通信,而是通过定义的接口,是硬件厂商自己来开发符合标准某个操作系统的驱动程序。
linux内核有一个struct cdev结构体列表记录所有的字符设备基本信息
cdev有一个struct file_operations 用来提供所有硬件设备的操作接口。开发人员写的函数就赋给该结构
下面是结构图: