为什么UNIX中的“ls”和DOS中的“dir”有不同的名称?

为什么UNIX中的“ls”和DOS中的“dir”有不同的名称?

为什么它们对列出目录的相同命令使用不同的名字?当然,它们可以相互通信并同意一个通用名称,例如cdunix 和 dos 都使用相同的名称。

这种使用不同名称的决定给开发人员和用户带来了很多麻烦,也增加了两个系统之间的不兼容性。他们是故意这样做的吗?那么“cd”怎么会是一样的呢?

答案1

请注意,Unix 是先出现的(您的问题的措辞看起来好像恰恰相反)。

DOS 继承dir控制/管理,它来自虚拟机管理系统/引入选项的字符(在引入目录时,迫使 DOS 采用不同的字符作为目录分隔符)具有相同的起源。

为什么 VMS 设计者不遵循 Unix?因为在设计 VMS 时,Unix 还很年轻,还没有成为后来的事实标准(部分原因是POSIX标准化工作)。VMS 和 Unix 在许多方面都有不同的设计;我怀疑是否有人故意使它们不兼容。CP/M 和 DOS,以及早期版本的 Windows 都遵循 VMS,因为当时没有令人信服的理由选择 Unix 而不是 VMS;Windows NT 首席设计师之前曾从事 VMS 工作,这进一步影响了 Windows 向 VMS 而非 Unix 的转变。后来,当 Unix 成为服务器上的标准操作系统时,Windows 已经根深蒂固地成为与众不同的,无法改变。尽管如此,Windows 确实获得了一定程度的 POSIX 兼容性(有时通过第三方软件);例如,内部 API 确实接受/路径分隔符。

答案2

这些命令之所以不同,是因为它们几乎是并行开发的,没有交互。DOS 命令通常是 QDOS 的衍生品,而 QDOS 本身又衍生自 CP/M(Gary Kildall 的微型计算机控制程序),这几乎是英特尔微处理器的第一个操作系统,最初是为英特尔的 8080 CPU 设计的,并且在很大程度上是为了让 PL/M 能够控制软盘驱动器而编写的。这一切都发生在 20 世纪 70 年代初。

Linux 很大程度上是 Unix 的衍生品,许多命令具有相同的名称,执行相同(或非常非常相似的功能)。Unix 于 1969 年开始开发,因此许多初始命令命名与 CP/M 同时进行。

CP/M 针对的是个人计算机,而 Unix 针对的是小型计算机,通常用于企业实验室或大学研究中心,两者之间实际上并无合作。

现在,它基本上保持原样以确保差异化,双方都不愿意承认对方的命名惯例更优越。

不过,两个系统都允许命令别名。

相关内容