我正在寻找有关空设备的一些历史信息。为什么它被称为/dev/null
而不是(例如)/dev/empty
?
FreeBSD 的手册页声明“第 7 版 AT&T UNIX 中出现了一个空设备”,但我找不到任何关于最初选择该名称的参考或提示。
如果事实证明该名称最初是在更古老的操作系统中使用的,我想知道原始设备是如何工作的以及为什么那名字已选定。
答案1
null
被选中是因为它会丢弃所有发送的数据,几乎就像一个空旷的地方。这就是为什么它也被称为黑洞。
这是字符设备,与内存中的实际空间没有连接的流。有趣的事实是你可以制作自己的个性化/dev/null
和mknod -m 666 /dev/null c 1 3
。
此外,EOF
如果您尝试读取它,它会发送。
答案2
“null”意味着“什么都没有”、“没有价值”等等。
“空”意味着一个容器。为了让空性存在,我们需要一个容器。
在计算机科学中,零是一个值,我们需要一个术语来表示“无”。例如,我们有“空指针”,从功能上来说,它是一个指向任何东西的指针。
“/dev/null”是“无设备”。如果我们想让某物消失得无影无踪,我们就把它交给“无”装置。
如果我们给 /dev/empty 一些东西,那么“空”设备就不再是空的,而是我们发送给它的东西的容器。