设备文件分为Block Device Driver和Character Device Drive两类。Character Device Drive又被称为字符设备或裸设备raw devices; Block Device Driver通常成为块设备。而Block Device Driver是以固定大小长度来传送转移资料 ;Character Device Driver是以不定长度的字元传送资料 。且所连接的Devices也有所不同,Block Device大致是可以随机存取(Random Access)资料的设备,如硬碟机或光碟机;而Character Device刚好相反,依循先後顺序存取资料的设备,如印表机 、终端机等皆是。
/dev/dsk对应的为块设备,文件系统的操作用到它,如mount。/dev/rdsk对应的为字符设备(裸设备,rdsk的r即为 raw),fsck newfs等会涉及到。一般我们的操作系统和各种软件都是以块方式读写硬盘,这里的块是逻辑块,创建文件系统时可以选择,windows里叫簇。可看 newfs or mkfs的manual。oracle是比较常见的字符方式读写硬盘。
字符设备还是块设备的定义属于操作系统的设备访问层,与实际物理设备的特性无必然联系。设备访问层下面是驱动程序,所以只要驱动程序提供的方式,都可以。 也就是说驱动程序支持stream方式,那么就可以用这种方式访问,驱动程序如果还支持block方式,那么你想用哪种方式访问都可以,典型的比如硬盘式 的裸设备,两种都支持块设备(block device):是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备 或从设备中一次性读出放入到缓冲区,如磁盘和文件