裸设备

维基百科,自由的百科全书
跳转至: 导航搜索

在计算机,特别是在类Unix操作系统中,裸设备是一种特殊类型的块设备文件,允许以直接访问硬盘的方式访问一个存储设备,而不经过操作系统的高速缓存和缓冲器(尽管可能仍旧使用硬件高速缓存)。应用程序如数据库管理系统可以直接使用裸设备,启用它们来管理数据的缓存方式,而不将这些任务推给操作系统。

FreeBSD系统中,所有的块设备实际都是裸设备。为了简化缓存的管理以及增强可测量性和性能,FreeBSD 4.0中停止了对非裸设备的支持。

在Linux中,裸设备被反对并列入了移除计划,因为可以通过使用O_DIRECT标志来替代。[1]为了代替访问裸设备文件,应用程序可以(且必须!)通过启用O_DIRECT标志来访问一个文件,且高速缓存将被禁用。由于现在裸设备仍然有一定用户群且仍有一些应用程序没有对O_DIRECT的支持,有关在Linux内核中将裸设备移除仍然是一个有争议的话题。裸设备是一种设备文件系统(major number 162)。Linux为裸设备预留了(i.e. 0),通常情况可以在/dev/rawctl找到它。有人主张,裸设备技术可以将一个裸设备绑定至一个已有的块设备[2]。“已有的块设备”可能是Linux所能支持的所有类型接口的磁盘或CDROM/DVD。(如,IDE/ATA或SCSI)


参考文献[编辑]