为什么 MAKEDEV 脚本的名称全部大写?

mon*_*onq 7 filenames devices history

虽然通常所有 Linux 命令都以小写形式拼写,但MAKEDEV脚本并非如此,它是大写形式。有什么原因吗?

Kus*_*nda 9

Linux 很可能从已有的 Unix 中借用了这个脚本。

我能够追踪到的这个脚本的最早版本是/dev/MAKE在 BSD 4 上调用的,我相信它是从 1980 年左右开始的。它显然是这样命名的,因为它制作了设备文件。名称的大写可能是为了将其与设备文件本身区分开来,但这是推测性的。

在此之前,设备文件似乎是用实际的 Makefile 制作的,如Bell Labs Research V7 快照 (1979) 中所示,在此之前我根本不确定/dev层次结构是否存在。

在 BSD 4.1 (1982) 中,该脚本仍被称为/dev/MAKE,但在 BSD 4.1c_2 (1983)中似乎存在/dev/MAKEDEV.local某种描述脚本。目前尚不清楚它/dev/MAKEDEV旁边是否有脚本。

在 BSD 4.4 Lite2 版本(根据存储库为 1995 年,但文件本身的 SCCS 时间戳表示8.1 (Berkeley) 6/9/93)中,我们可以看到带有最终名称的脚本/dev/MAKEDEV以及一些特定于系统的MAKEDEV脚本。此时,Linux 端已经存在同名脚本(如 Stephen Kitt 所述)。

  • 是的,日期不一定匹配。文件内部的修订控制标题中的日期可以说明它们的年龄。Diomidis Spinellis 写了很多关于如何将存储库放在一起的文章,它使阅读变得有趣(好吧,对于所有这些东西的历史感兴趣的人!)。TUHS 邮件列表也有很多信息。 (2认同)

Ste*_*itt 7

As far as I can determine, this is the history of MAKEDEV on Linux:

  • in March 1992, Jim Winstead added an installation helper in version 0.95a of his root diskette, called /INSTALL/mkdev;
  • in July 1992, this became /dev/MAKEDEV in version 0.96 of the root diskette;
  • by December 1993, Nick Holloway has expanded on this in a dedicated MAKEDEV project (version 1.2 appears to be the first publicly-released version).

所以脚本名称的关键是从/INSTALL/mkdevto的切换/dev/MAKEDEV。我猜它是大写的,以避免与设备节点名称发生任何潜在的混淆和命名空间冲突,因为它们(总是?)以小写字母开头。这早在 FHS 之前很久,当时二进制文件存在于各个地方(包括/etc),因此在其中包含设备节点创建脚本/dev就足够了。