Menu Close

Linux下设备文件管理

设备文件包括系统的物理设备和虚拟设备,如硬盘、显卡、显示屏、键盘。虚拟设备的一个例子是控制台,用“

1
/dev/console

”来描述。

设备文件有两种类型。

  • 字符设备
    • 每次访问一个字符
    • 一个字符等于一个字节
    • 如键盘、串口…
  • 块设备
    • 通过更大的单元–块,进行访问
    • 一个块>一个字节
    • 如硬盘等…

你可以读写块设备文件,尽管该文件可能包含二进制数据,读取后显示出无法理解的乱码。向文件写入数据,有时可以帮助定位硬件连接故障。比如,你可以将文本文件导入打印机设备“

1
/dev/lp0

”,或者将调制解调命令发送到合适的串口“

1
/dev/ttyS0

”。但是,除非这些操作都小心完成,否则可能会导致一场大灾难。所以要特别小心。

常规访问打印机,使用lp(1)

设备的节点数可以通过执行ls(1)得到,如下所示。

$ ls -l /dev/sda /dev/sr0 /dev/ttyS0 /dev/zero
brw-rw---T  1 root disk     8,  0 Oct 16 20:57 /dev/sda
brw-rw---T+ 1 root cdrom   11,  0 Oct 16 21:53 /dev/sr0
crw-rw---T  1 root dialout  4, 64 Oct 16 20:57 /dev/ttyS0
crw-rw-rw-  1 root root     1,  5 Oct 16 20:57 /dev/zero
  • 1
    /dev/sda

    “的主设备号是8,次设备号是0。它可以被

    1
    disk

    群组的用户读写。

  • 1
    /dev/sr0

    “的主设备号是11,次设备号是0。它可以被

    1
    cdrom

    群组的用户读写。

  • 1
    /dev/ttyS0

    “的主设备号是4,次设备号是64。它可以被

    1
    dailout

    群组的用户读写。

  • 1
    /dev/zero

    “的主设备号是1,次设备号是5。它可以被任意用户读写。

在现代Linux系统中,处在”

1
/dev

“之下的文件系统会自动被udev()机制填充。

特殊设备文件

还有一些特殊的设备文件。

表 1.10. 特殊设备文件列表

设备文件 操作 响应描述
1
/dev/null
读取 返回“文件结尾字符(EOF)“
1
/dev/null
写入 无返回(一个无底的数据转存深渊)
1
/dev/zero
读取 返回”

1
\0

空字符”(与ASCII中的数字0不同)

1
/dev/random
读取 从真随机数产生器返回一个随机字符,供应真熵(缓慢)
1
/dev/urandom
读取 从能够安全加密的伪随机数产生器返回一个随机字符
1
/dev/full
写入 返回磁盘已满(ENOSPC)错误

这些特别设备文件经常和shell数据重定向联合使用

Posted in Linux, Linux
0 0 投票数
Article Rating
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论

相关链接