Linux中所有一切都是文件,Linux中的各种设备,分类来说,可分为物理设备及特殊设备。前者是客观存在的设备,而后者则未必能在系统找到,又可以称为伪设备,下面按物理设备和特殊设备,对其进行系统归纳总结。
备注:
1) 上面分别为设备及在Linux内的对应的文件名,其中U盘的与SCSI/SATA/USB硬盘文件名一致;
2) 每块硬盘只能有四个主分区和扩展分区(三个主分区+一个扩展分区,或者四个主分区)
3) 对应SCSI盘,/dev/sda为其中一块硬盘,/dev/sda1则为其中一个分区
4) 当前鼠标为/dev/mouse,如果接了USB鼠标,或者PS2鼠标,其设备文件不同
备注:
1) stdin,stdout,stderr 分别对应0,1,2
2) /dev/null 空洞设备,可以丢弃任何文件,数据流。主要用于dd硬盘读写速度,或清空文件等
3) /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件
4) /dev/full 是一个特殊设备文件,总是在向其写入时返回设备无剩余空间(错误码为ENOSPC),读取时则与/dev/zero相似,返回无限的空字符(NULL, ASCII NUL, 0x00)。
5) /dev/fd 记录用户打开的文件描述符
6) /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。这两个设备的差异在于:/dev/random的random pool依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直*,尝试读取的进程就会进入等待状态,直到系统的中断数充分够用, /dev/random设备可以保证数据的随机性。/dev/urandom不依赖系统的中断,也就不会造成进程忙等待,但是数据的随机性也不高。