这个问题只是出于好奇,但我怀疑其他人也会好奇。通过搜索 errno.h(Linux 2.6)我发现 ENOANO“无阳极”。没有任何迹象表明“无阴极”错误。通过查看内核源代码索引,它似乎并没有被称为阳极的设备使用,而只是被一些晦涩的设备驱动程序故意用作奇怪的错误代码。谷歌搜索没有发现任何有趣的东西。
这可能是个笑话吗?它是否在 POSIX 等标准文档中定义,但没有用?
答案1
ENOANO
出现在Linux 0.97,于 1992 年 8 月 1 日发布。在很长一段时间里,它没有在任何地方被使用;从那时起,它时不时地在某些驱动程序中被用作“我不知道要使用什么错误代码”。现在仅在uapi/asm-generic/errno.h
(即在用户层程序的头文件),但它被自动移到那里,所以这并不能表明是否有人关心它。
0.97 中的标errno.h
头引起了一些关注,因为它是SCO声称是从Unix SVR4复制的。在上海合作组织声称时,Linus Torvalds 不记得该文件是如何组装的;他后来发现它是根据 libc 2.2.2 已知的值生成的.这是一个适用于 Linux 的 C 库,通过适用于 Linux 的 GCC 端口进行分发。该库可能包含当时存在的各种 UNIX 变体的错误代码。
斯蒂芬·查泽拉斯被发现使用术语“阳极”在 Convergent/Burroughs Unix (CENTIX) 中作为同义词索引节点。我发现另一本书(从 1993 年开始)提到“anode”是“inode”的变体,但除此之外,即使在那时,它似乎也相当晦涩难懂。这索拉里斯errno.h
确认了 Convergent 的起源:它在标题为“Convergent 错误返回”的部分中列出了 ENOANO(以及其他一些具有深奥描述的错误代码,但至少可以模糊地理解,例如“无效交换”、“交换已满”或“无效插槽”,其中很少有驱动程序使用)。
因此,ENOANO 可能表示在 20 世纪 80 年代的某些商业 Unix 中,内核已经耗尽了 inode 的内存,或者文件系统的 inode 表已满。 Unix 现在已经被遗忘了,它的术语现在也被遗忘了,并且由于某些怪癖,错误代码仍然存在。
至少不是“lp0着火了”。
答案2
我想知道与“Write Anywhere 文件系统布局 EP 1003103 A2”专利有什么关系,该专利似乎描述了我们现在所说的分布式文件系统。