当我对 /dev; 执行 ls 时,我得到以下输出
loop5 sda tty24 tty58 ttyS4
.. loop6 sda1 tty25 tty59 ttyS5
alarm loop7 sda2 tty26 tty6 ttyS6
ashmem loop-control sda3 tty27 tty60 ttyS7
autofs mapper sda4 tty28 tty61 ttyS8
binder mcelog sda5 tty29 tty62 ttyS9
block mem sda6 tty3 tty63 ttyUSB0
bsg net sdb tty30 tty7 ttyUSB1
btrfs-control network_latency serial tty31 tty8 ttyUSB2
bus network_throughput sg0 tty32 tty9 ttyUSB3
cdrom null sg1 tty33 ttyprintk ttyUSB4
cdrw oldmem sg2 tty34 ttyS0 .udev
char port shm tty35 ttyS1 uinput
console ppp snapshot tty36 ttyS10 urandom
core psaux snd tty37 ttyS11 v4l
cpu ptmx sr0 tty38 ttyS12 vcs
cpu_dma_latency pts stderr tty39 ttyS13 vcs1
disk ram0 stdin tty4 ttyS14 vcs2
dri ram1 stdout tty40 ttyS15 vcs3
dvd ram10 tty tty41 ttyS16 vcs4
dvdrw ram11 tty0 tty42 ttyS17 vcs5
ecryptfs ram12 tty1 tty43 ttyS18 vcs6
fb0 ram13 tty10 tty44 ttyS19 vcsa
fd ram14 tty11 tty45 ttyS2 vcsa1
full ram15 tty12 tty46 ttyS20 vcsa2
fuse ram2 tty13 tty47 ttyS21 vcsa3
fw0 ram3 tty14 tty48 ttyS22 vcsa4
hpet ram4 tty15 tty49 ttyS23 vcsa5
.initramfs ram5 tty16 tty5 ttyS24 vcsa6
input ram6 tty17 tty50 ttyS25 vga_arbiter
kmsg ram7 tty18 tty51 ttyS26 vhost-net
log ram8 tty19 tty52 ttyS27 video0
loop0 ram9 tty2 tty53 ttyS28 zero
loop1 random tty20 tty54 ttyS29
loop2 rfkill tty21 tty55 ttyS3
loop3 rtc tty22 tty56 ttyS30
loop4 rtc0 tty23 tty57 ttyS31
我想了解此处列出的条目的含义。是否有手册可以帮助我理解这一点?
答案1
简而言之:所有都是设备条目。因此写入这些项的任何内容都将(应该)有相应的硬件对其采取行动。
较长的复制/粘贴内容,包含大量示例:
/dev 目录包含所有设备的特殊设备文件。设备文件在安装期间创建,稍后使用 /dev/MAKEDEV 脚本创建。/dev/MAKEDEV.local 是由系统管理员编写的脚本,用于创建仅限本地的设备文件或链接(即不属于标准 MAKEDEV 的文件或链接,例如某些非标准设备驱动程序的设备文件)。
以下列表并非详尽无遗,也并非尽可能详细。许多设备文件需要编译到内核中才能支持硬件。请阅读内核文档以查找任何特定设备的详细信息。
- /dev/dsp
数字信号处理器。基本上,它构成了产生声音的软件和声卡之间的接口。它是主节点 14 和次节点 3 上的字符设备。
- /dev/fd0
第一个软盘驱动器。如果您有幸拥有多个驱动器,那么它们将按顺序编号。它是主节点 2 和次节点 0 上的字符设备。
- /dev/fb0
第一个帧缓冲区设备。帧缓冲区是软件和图形硬件之间的抽象层。这意味着应用程序不需要知道您拥有哪种硬件,而只需知道如何与帧缓冲区驱动程序的 API(应用程序编程接口)进行通信,该 API 定义明确且标准化。帧缓冲区是一个字符设备,位于主节点 29 和次节点 0 上。
- /dev/hda
/dev/hda 是主 IDE 控制器上的主 IDE 驱动器。 /dev/hdb 是主控制器上的从属驱动器。 /dev/hdc 和 /dev/hdd 分别是辅控制器上的主设备和从属设备。 每个磁盘被分成多个分区。分区 1-4 是主分区,分区 5 及以上是扩展分区内的逻辑分区。因此,引用每个分区的设备文件由几部分组成。例如 /dev/hdc9 引用辅 IDE 控制器上主 IDE 驱动器上的分区 9(扩展分区类型内的逻辑分区)。 主节点号和次节点号有些复杂。对于第一个 IDE 控制器,所有分区都是主节点 3 上的块设备。主驱动器 hda 的次节点号为 0,从属驱动器 hdb 的次节点号为 64。对于驱动器内的每个分区,将分区号添加到驱动器的次节点号上。例如 /dev/hdb5 的主节点号为 3,次节点号为 69(64 + 5 = 69)。辅助接口上的驱动器以相同的方式处理,但主节点为 22。
- /dev/ht0
第一个 IDE 磁带驱动器。后续驱动器编号为 ht1 等。它们是主节点 37 上的字符设备,从次节点 0(对于 ht0)开始,从次节点 1(对于 ht1)开始,等等。
- /dev/js0
第一个模拟操纵杆。后续操纵杆编号为 js1、js2 等。数字操纵杆称为 djs0、djs1 等。它们是主节点 15 上的字符设备。模拟操纵杆从次节点 0 开始,
- /dev/lp0
第一台并行打印机设备。后续打印机编号为 lp1、lp2 等。它们是主模式为 6 且次模式为 0 的字符设备,按顺序编号。
- /dev/loop0
第一个回送设备。回送设备用于安装不位于其他块设备(如磁盘)上的文件系统。例如,如果您希望安装 iso9660 CD ROM 映像而不将其刻录到 CD,则需要使用回送设备来执行此操作。这通常对用户是透明的,并由 mount 命令处理。请参阅 mount 和 losetup 的手册页。回送设备是主节点 7 上的块设备,次节点从 0 开始并按顺序编号。
- /dev/md0
第一个元磁盘组。元磁盘与 RAID(独立磁盘冗余阵列)设备相关。有关详细信息,请参阅 LDP 上最新的 RAID HOWTO。可在以下位置找到http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html。元磁盘设备是主节点 9 上的块设备,次节点从 0 开始按顺序编号。
- /dev/mixer
这是 OSS(开放声音系统)驱动程序的一部分。请参阅 OSS 文档http://www.opensound.com了解更多详情。它是主节点 14、次节点 0 上的字符设备。
- /dev/null
位桶。一个黑洞,您可以将数据发送到该黑洞,但这些数据永远不会再出现。发送到 /dev/null 的任何东西都会消失。例如,如果您希望运行命令但不希望终端上出现任何反馈,那么这很有用。它是主节点 1 和次节点 3 上的字符设备。
- /dev/psaux
PS/2 鼠标端口。这是主节点 10、次节点 1 上的字符设备。
- /dev/pda
并行端口 IDE 磁盘。这些磁盘的命名与内部 IDE 控制器 (/dev/hd* ) 上的磁盘类似。它们是主节点 45 上的块设备。这里需要稍微多解释一下次节点。第一个设备是 /dev/pda,它位于次节点 0 上。通过将分区号添加到设备的次编号可以找到此设备上的分区。每个设备限制为 15 个分区,而不是 63 个(内部 IDE 磁盘的限制)。/dev/pdb 次节点从 16 开始,/dev/pdc 从 32 开始,/dev/pdd 从 48 开始。因此,例如 /dev/pdc6 的次节点号将是 38(32 + 6 = 38)。此方案将您限制为 4 个并行磁盘,每个磁盘有 15 个分区。
- /dev/pcd0
并行端口 CD ROM 驱动器。这些驱动器从 0 开始编号。所有驱动器都是主节点 46 上的块设备。/dev/pcd0 位于次节点 0 上,后续驱动器位于次节点 1、2、3 等上。
- /dev/pt0
并行端口磁带设备。磁带没有分区,因此只是按顺序编号。它们是主节点 96 上的字符设备。次节点编号从 0 开始(对于 /dev/pt0 ),从 1 开始(对于 /dev/pt1 ),依此类推。
- /dev/parport0
原始并行端口。连接到并行端口的大多数设备都有自己的驱动程序。这是一个直接访问端口的设备。它是主节点 99 上的字符设备,次节点为 0。第一个设备之后的后续设备按次节点顺序递增编号。
- /dev/random 或 /dev/urandom
这些是内核随机数生成器。 /dev/random 是一个非确定性生成器,这意味着无法根据前面的数字猜出下一个数字的值。它使用系统硬件的熵来生成数字。当没有更多熵可用时,它必须等到收集到更多熵后才允许从中读取更多数字。 /dev/urandom 的工作原理类似。最初它也使用系统硬件的熵,但是当没有更多熵可用时,它将继续使用伪随机数生成公式返回数字。对于加密密钥对生成等重要目的,这被认为不太安全。如果您最关心的是安全性,那么使用 /dev/random ,如果速度更重要,那么 /dev/urandom 也可以。它们是主节点 1 上的字符设备,次节点 8 用于 /dev/random , 9 用于 /dev/urandom 。
- /dev/sda
第一个 SCSI 总线上的第一个 SCSI 驱动器。以下驱动器的命名与 IDE 驱动器类似。/dev/sdb 是第二个 SCSI 驱动器,/dev/sdc 是第三个 SCSI 驱动器,依此类推。
- /dev/shm/
默认情况下,Ubuntu 将 ramdisk 挂载到 /dev/shm/ 目录中,因此您只需将文件复制/移动到该目录中,并确保它们存储在 RAM 内存中。当输入和输出文件都存储在 ramdisk 中时,这对于视频转换非常有用 — 由此产生的性能将更好,因为 RAM 的读写速度比 HDD 或任何其他存储都要快。这是因为 CPU 无法直接访问 HDD,而可以通过 RAM 访问。
- /dev/ttyS0
第一个串行端口。很多时候,它是用于将外部调制解调器连接到系统的端口。
- /dev/vcs /dev/vcsa
虚拟控制台内存。/dev/vcs0 是字符设备,主编号为 7,次编号为 0,通常模式为 0644,所有者为 root.tty。它指的是当前显示的虚拟控制台终端的内存。/dev/vcs[1-63] 是虚拟控制台终端的字符设备,主编号为 7,次编号为 1 到 63,通常模式为 0644,所有者为 root.tty。/dev/vcsa[0-63] 相同,但使用包含属性的无符号短整型(按主机字节顺序),并以四个字节作为前缀,给出屏幕尺寸和光标位置:行、列、x、y。(x = y = 0,位于屏幕左上角。)
- /dev/零
这是获取许多 0 的简单方法。每次从此设备读取时,它都会返回 0。这有时很有用,例如当您想要一个固定长度的文件但并不真正关心它包含什么时。它是主节点 1 和次节点 5 上的字符设备。
- 虽然这不是完整的列表,但它显示了这些项目的要点。
- 其中很大一部分来自:linux.about.com。其他的用 google ;)