为什么 Linux 没有二进制 API?

为什么 Linux 没有二进制 API?

如果我想自动化任何事情,我总是必须解析文本(无论如何都必须从二进制生成)。/proc文件系统就是一个例子。

有没有理由不提供无需解析即可读取的二进制等效项?文本在终端上很方便浏览,但创建依赖于该信息的实用程序却很糟糕。

答案1

Linux 倾向于快速发展,并且变化经常涉及更新 /proc 之类的 API。

修改文本 API 非常容易,不会破坏任何东西(例如,添加一列,使行更长)。可以制作一个可以不断发展而不会破坏任何东西的 ABI,但这要困难得多,而且无论如何,您可能最终都需要解析二进制数据结构才能使其工作。

而且,正如评论中指出的那样,/proc 中的文本接口使得使用脚本语言来处理它变得非常容易,并且大多数脚本语言使得解析 /proc 中的内容变得简单。

如果您在解析 /proc 中的内容时遇到问题,最好寻找一个已经为您解析 /proc 的语言库。

我相信 /proc 中有一些二进制的东西,但大部分都是文本。ioctl() 等接口几乎完全是二进制的。

相关内容