I/O 设备模型:一个能与 CPU 交换数据的接口/控制器
操作系统:设备也是操作系统中的对象
I/O 设备的主要功能:
操作系统:设备 = 支持各类操作的对象 (文件)
把系统调用 (read/write/ioctl/...) “翻译” 成与设备寄存器的交互
例子:/dev/
中的对象
/dev/pts/[x]
- pseudo terminal/dev/zero
- “零” 设备/dev/null
- “null” 设备/dev/random
, /dev/urandom
- 随机数生成器head -c 512 [device] | xxd
设备模型
typedef struct devops {
int (*init)(device_t *dev);
int (*read) (device_t *dev, int offset, void *buf, int count);
int (*write)(device_t *dev, int offset, void *buf, int count);
} devops_t;
I/O 设备看起来是个 “黑盒子”
设备不仅仅是数据,还有
例子
“字节流” 以内的功能
“字节流” 以外的功能