为什么 Windows 上的 traceroute 被命名为 tracert - 我正在阅读的一本书声称有一些历史背景

为什么 Windows 上的 traceroute 被命名为 tracert - 我正在阅读的一本书声称有一些历史背景

这本书名叫《UNIX 和 Linux 系统管理手册》第 5 版在有关 traceroute 的页面上,脚注中说“Windows 有自己的版本,名为 tracert(对于知道原因的人来说,历史知识有特别之处)”。我将其从我的语言翻译成了英语,因此英语版本中的表述可能有所不同。

您知道为什么是“tracert”而不是“traceroute”吗?是否真的有一些有趣的历史解释,例如“Windows 在过去不能有超过 X 个字母的命令”或类似的东西?

//顺便说一句,我怀疑这可能是一些长单词。有人告诉我,这可能与Windows 8.3 命名约定

8.3 文件名最多限制为八个字符

这是“tracert”名称的原因吗?还是它只是一个转移注意力的花招?

答案1

你的假设是正确的:tracert是在 DOS操作系统,从 1981 年开始广泛使用,直到 1995 年 Windows 应用程序占据主导地位。

DOS 使用 8.3 文件名,因此“traceroute.exe”对于可执行文件名来说太长了。其他 Linux/UNIX 实用程序也存在同样的问题。


由于说法相矛盾,我进一步搜索了这个问题。历史事实是,除非使用第三方产品,否则 Windows 3.1 不支持 TCP/IP。必须使用 1993 年推出的 Windows for Workgroups 3.11。

引自维基百科Windows 3.11

在 Windows 3.x 中,需要 Winsock 软件包来支持 TCP/IP 网络。通常使用第三方软件包,但在 1994 年 8 月,微软发布了一个附加软件包(代号为 Wolverine),该软件包在 Windows for Workgroups 3.11 中提供 TCP/IP 支持。Wolverine 是一个 32 位堆栈(可通过 WinSock Thunk 从 16 位 Windows 应用程序访问),这使其性能优于大多数可用的第三方 TCP/IP Windows 堆栈。

需要提醒的是,Windows 3.1x 只是 MS-DOS 6.22 之上的一个图形层,因此文件名当然仍在 8.3 中。

你可以在文章中进一步了解在 Windows 3.1x 中使用 TCP/IP 的详细信息 使用 Microsoft 的 TCP/IP 堆栈让您的电缆调制解调器/DSL 与 Windows for Workgroups 配合使用,我相信这篇文章的日期是 1998 年。文章包含以下内容:

TRACERT.EXE(跟踪路由)是另一个有用的诊断程序。其工作原理与 ping 类似,只不过它实际上显示的是站点的路径。

相关内容