官方说明 UNC(通用命名约定)

官方说明 UNC(通用命名约定)

有人可以指出定义通用命名约定 (UNC) 的手册页或规范吗?我正在寻找这个想法的原始来源

答案1

\\hostname\directory\…据我所知,该语法并不(直接)起源于 Unix 世界。我不知道它的起源;据我在网上找到的信息,UNC并非源自Netware,也不是来自Plan9或VMS。到 1995 年,它已成为 Windows NT 和 OS/2 的本机功能。 OS/2 的概念早在1993年5月,它早于 Windows NT 的第一个版本。它可能起源于局域网管理器(由 Microsoft 在 IBM 的 OS/2 之上开发,当时 IBM 和 Microsoft 共享 OS/2 代码)。

UNC 的早期提及是美国专利 5363487(第 29 栏底部,图 9),由 Microsoft 于 1989 年提交(感谢约翰·萨默菲尔德供参考)。后来的一项专利,美国 5341499(IBM),确认“通用命名约定是由 IBM 和 Microsoft 共同发明的,用于他们共同开发的局域网(LAN)软件产品”。这很可能是指 LAN Manager。

UNC 中有一点 Unix 的灵感,因为它消除了对驱动器号的需要,允许直接引用网络驱动器,而不必首先分配驱动器号(并确保不会发生冲突,只有 26 个驱动器号)或 32 个驱动器号)。但 Unix 从几乎第一天起就使用了更灵活的安装点系统,其中网络驱动器可以连接到目录层次结构中的任何点,而不是顶部。

Unix 承认 UNC,因为它允许//在路径的开头进行特殊处理。来自POSIX 基本原理(A.4.11 路径名解析):

其他网络系统使用构造//主机名来达到相同的目的。

请注意,理由中提到了“其他系统”,而不是“历史用法”。这强烈暗示这//hostname/directory不是 Unix 世界中的历史用法,而是可能存在 POSIX 实现的其他一些系统中的用法。

答案2

通过“//主机名/目录/文件名”符号将本地文件系统扩展为更大网络的一部分至少可以追溯到 Apollo/DomainOS (1981),尽管当时它不被称为 UNC。 Apollo/DomainOS 可以与 SysV 和 BSD Unix 环境一起使用。

请参阅第 1 章http://www.typewriting.org/Articles/Apollo/005488-02.pdf

答案3

我记得(和维基百科同意), UNC 一词源自微软Windows

事实上,我不认为我已经曾经之前听说它起源于UNIX。

此外,我在 POSIX 或任何 RFC 中都找不到任何对 UNC 的引用。我在其他地方找到的所有参考资料都与 Windows 相关。您引用的单数参考文献将 UNIX 作为起源引用 Windows 作为起源。

他们在芝麻街上玩一个游戏......

其中一件事情与其他事情不同......

这种缺乏参考的情况是我能找到的最好证据,可以得出该术语并非起源于 UNIX 的结论。诚然,缺乏证据并不等于不存在的证据。但似乎更有可能的是,PC Mag 的定义中存在错误,而不是 POSIX 规范中存在巨大的遗漏,并且一直以来都没有 RFC 定义 UNC,更不用说提及它了。

但如果我错了,我很乐意对自己的帖子投反对票。

相关内容