Linux设备管理与SCSI子系统详解
1. 设备管理的演变
早期,每次内核重大升级或添加驱动程序时,内核支持的设备类型增多,需要为设备文件名分配新的主、次编号。管理这些编号很困难,因此每个系统在 /dev 目录下都有一个 MAKEDEV 程序来创建设备组。系统升级时,需找到 MAKEDEV 的升级版本并运行以创建新设备。
这种静态系统逐渐变得不合适,于是出现了 devfs ,它是 /dev 内核空间的一种实现,包含当前内核支持的所有设备。但 devfs 存在一系列限制,促使了 udev 和 devtmpfs 的发展。
2. udev介绍
2.1 udev的原理
在Linux中,内核检测到新设备(如插入USB闪存驱动器)时,会向用户空间的 udevd 进程发送通知。 udevd 进程会检查新设备的特性,创建设备文件并进行设备初始化。
然而,在实际应用中,设备文件在系统初始化过程中很早就需要,所以 udevd 必须提前启动。为了创建设备文件, udevd 不能依赖它要创建的任何设备,并且必须快速完成初始启动,以免系统其他部分等待。
2.2 devtmpfs
devtmpfs 文件系统是为解
超级会员免费看
订阅专栏 解锁全文
3986

被折叠的 条评论
为什么被折叠?



