Linux文件与目录管理技术详解
1. 特殊设备介绍
在Linux系统中,存在一些特殊的设备,它们在文件和目录管理中有着独特的用途。
-零设备(Zero Device):零设备位于/dev/zero,主设备号为1,次设备号为5。与空设备类似,内核会默默地丢弃对零设备的写入操作。当从该设备读取数据时,会返回无限的空字节流。
-满设备(Full Device):满设备位于/dev/full,主设备号为1,次设备号为7。从该设备读取请求会返回空字符\0,但写入请求总是会触发ENOSPC错误,表示底层设备已满。
这些特殊设备可用于测试应用程序如何处理极端情况,如文件系统已满的情况。同时,由于空设备和零设备会忽略写入操作,它们提供了一种无开销的方式来丢弃不需要的I/O。
2. 随机数生成器
Linux内核提供了随机数生成器设备,分别为/dev/random和/dev/urandom,主设备号均为1,次设备号分别为8和9。
-工作原理:内核的随机数生成器从设备驱动程序和其他来源收集噪声,将这些噪声连接在一起并进行单向哈希处理,结果存储在熵池中。内核会对熵池中的熵位数进行估计。
-/dev/random:从/dev/random读取