Linux 命令真的是 C 目标文件吗?

Are Linux commands really C object files?

我正在阅读 Kernighan & Ritchie 的 "The C Programming Language",并发现了一些模仿某些 Unix 命令(也在 Linux 中实现)的程序,例如 cat 命令。该程序采用命令行参数,就像原始 cat 命令一样。 我只是想知道它们是否相同。 如果我错了,请纠正我,我们将不胜感激。

在命令行环境中(例如,当然,Unix/Linux),一个主要的抽象单元是命令。命令有一个定义良好的接口:它期望的命令行参数、它读取的输入(如果有的话)以及它生成的输出。您可以随时重新实现命令,使用不同的内部算法或不同的语言,或者只是因为您想编写自己的版本。是的,cat 最初是用 C 编写的,但我们可以用 C++、Perl、Python、sh 或其他语言重写它。只要我们的重新实现满足同样的接口需求,我们就可以准确的说"is" cat.