首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么“umount”不是拼写为“unmount”?

为什么“umount”不是拼写为“unmount”?
EN

Unix & Linux用户
提问于 2011-03-21 21:04:45
回答 3查看 20.1K关注 0票数 80

我想知道umount命令不是unmount的历史原因还是实际原因。

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2011-03-21 21:21:20

这可以追溯到Unix的第一版,在那里所有的标准文件名最多只有6个字符长(想想passwd),尽管这个版本支持文件名中的8个字符。大多数命令都有一个以.c结尾的相关源文件(例如umount.c),它只为基名留出6个字符。

6个字符的限制也可能是早期开发版本的保留,或者是继承自当时有6个字符限制的IBM系统。(早期的C实现对标识符有6个字符的限制,较长的标识符被接受,但编译器只查看前6个字符,因此foobar1foobar2是相同的变量。)

(我记得我记得一个umount手册页面,它把拼写列为未知来源的错误,但现在找不到了。)

票数 98
EN

Unix & Linux用户

发布于 2017-03-04 02:24:40

似乎有一些错误的信息在这里坐了一段时间了。

使用缩写名称的umount命令最有可能的原因是它遵循它使用的系统调用的名称:umount()

具有umount()名称的“卸载”系统调用的可能原因是,早期的链接器将外部标识符的长度限制在某些类型系统上的6个字符(仅一种情况下)(当时保持与此类工具的兼容性是有意义的),而"umount“是”卸载“的一种逻辑缩写形式。参见C语言第一版的第179页,以获得在发布时感兴趣的各种系统的外部标识符特征的列表。

还请注意,早期的C编译器将标识符的前8个字符视为重要字符,但允许标识符更长。(K&R第33页)

请注意,符号表中的标识符长度与文件名长度没有任何直接关系,至少在Unix中没有(Unix符号表,因为V1有8个标识符字符,尽管在V1手册中注意到汇编程序“生成最多7个字节的符号”)。

票数 12
EN

Unix & Linux用户

发布于 2011-03-21 21:16:12

票数 -1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/9832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档