前置概念
Major Number (主设备号):
- 标识驱动程序 (Driver)。
- 它告诉内核:“这是一类什么设备?”
- 例如:主设备号 8 可能对应 SCSI 磁盘驱动;主设备号 4 对应 TTY 终端驱动。
Minor Number (次设备号):
- 标识具体的设备实例 (Device Instance)。
- 它告诉驱动程序:“我要操作你管理的哪一个设备?”
- 例如:对于 SCSI 驱动(主号 8),次设备号 0 代表第一块硬盘 (sda),次设备号 1
mknod 指令
- 本质上创建了一个「文件」,这个文件映射到内核中的驱动程序
# 语法: mknod [名称] [类型] [主设备号] [次设备号]
sudo mknod /dev/my_serial_port c 4 64
# 这时候如果向 /dev/my_serial_port 写入数据,通常会被写入 ttyS0
- 类型:c为字符设备;b为块设备
- 主设备号:即上面说的major number
- 次设备号:即上面说的minor number
Char Device Driver(字符设备)

- 无缓存,实时性强。一个字节一个字节地流过
- 例如:键盘,终端tty
- 直接和用户请求交互