硬件设备管理

驱动程序代码

应用程序和硬件设备的中间人,允许内核和设备之间交换数据。

插入设备驱动代码的两种方法:

  • 编译进内核的设备驱动代码
  • 可插入内核的设备驱动模块

设备文件

即Linux的硬件设备,Linux将硬件设备当成特殊的文件。

设备文件有三种分类:

  1. 字符型设备文件

    处理数据时每次只能处理一个字符的设备,如大多数调制解调器和终端

  2. 块设备文件

    处理数据时每次能处理大块数据的设备,如硬盘

  3. 网络设备文件

    采用数据包发送和接收数据的设备。

节点

Linux为系统上的每个设备都创建一种特殊的文件,称为“节点”。与设备的所有通信透视通过设备节点完成的。

查看Ubuntu 上的设备文件命令
示例仅查看 sd*(硬盘) 和 ttyS*(COM端口) 设备文件

cd /dev;
ls -laF sd* ttyS*;

执行结果(局部)

brw-rw---- 1 root disk    8,  0 4月  23 09:27 sda
brw-rw---- 1 root disk    8,  1 4月  23 09:27 sda1
brw-rw---- 1 root disk    8,  2 4月  23 09:27 sda2
brw-rw---- 1 root disk    8,  5 4月  23 09:27 sda5
brw-rw---- 1 root disk    8,  6 4月  23 09:27 sda6
brw-rw---- 1 root disk    8,  7 4月  23 09:27 sda7
brw-rw---- 1 root disk    8, 16 4月  23 09:27 sdb
brw-rw---- 1 root disk    8, 17 4月  23 09:27 sdb1
brw-rw---- 1 root disk    8, 18 4月  23 09:27 sdb2
brw-rw---- 1 root disk    8, 19 4月  23 09:27 sdb3
brw-rw---- 1 root disk    8, 20 4月  23 09:27 sdb4
brw-rw---- 1 root disk    8, 21 4月  23 09:27 sdb5
brw-rw---- 1 root disk    8, 22 4月  23 09:27 sdb6
crw-rw---- 1 root dialout 4, 64 4月  23 09:27 ttyS0
crw-rw---- 1 root dialout 4, 65 4月  23 09:27 ttyS1
crw-rw---- 1 root dialout 4, 74 4月  23 09:27 ttyS10
crw-rw---- 1 root dialout 4, 75 4月  23 09:27 ttyS11
crw-rw---- 1 root dialout 4, 76 4月  23 09:27 ttyS12

返回结果说明

  • 第一列显示该设备文件的权限。权限的第一个字符表示设备文件的类型
    • b:硬盘文件标记 (块设备)
    • c:COM端口文件标记 (字符型设备)
  • 第五列是主设备节点号,所有sd设备都拥有同一主设备号8;所有ttyS设备都使用4。
  • 第六列是次设备节点号。同一主设备节点号下的每个设备都拥有自己唯一的次设备节点号。

参考资料

《Linux命令行与shell脚本编程大全》(第2版) —— 1.1.1 深入研究Linux内核 (P8-9)

作者:Seeker  创建时间:2019-04-15 17:30
 更新时间:2019-04-23 14:25