umask 中的字母“u”是什么意思?

Las*_*ssi 1 umask terminology history historical-unix

是“用户面具”还是什么?

维基百科没有详细信息,但表示该功能自 1978 年以来一直存在于 Unix 中。

POSIX 只是说它是“文件模式创建掩码”。

Jde*_*eBP 5

有一个长期存在的解释,例如Wolfram Rosler's list 中这个条目,它的意思是“用户”。该条目是在 2000 年提交的,并将其归因于“umask”U_cmask在进程的“u区域”中设置了一个字段。

这是一个有点可疑的解释,原文中承认的疑问以问题的形式提出,因为在“u领域”中还有其他一些事物,所有这些领域都是按惯例命名的,不是由系统设置的。以“u”开头的电话。这可能是事后二十年的合理化。u_something

另一方面,“u”代表“用户”在当今已被广泛接受,并在 2000 年被广泛接受,尽管对此的“u区域”解释是可疑的。umask自 1980 年代后期以来,有关 UNIX 的书籍将其描述为“用户文件创建掩码”(尽管它们都没有提及“u区域”)。

  • AT&T Unix System 5 Release 3 的印刷手册中是这样描述的。
  • 在 1989 X/Open Portability Guide中是这样描述的。
  • 在 Peter Norton 的 1991 年Unix 指南中是这样描述的。
  • Simson Garfinkel 和 Gene Spafford 在 1991 年的Practical UNIX Security 中明确明确指出
    umask(“用户文件创建模式掩码”的 UNIX 简写)

问题是1985年之前的作品中没有出现这个名字扩展中的“user”这个词。我能找到的最早的是Rebecca Thomas的1985 A user guide to the UNIX system,其次是“ umask(用户掩码)”在 Andersons 的 1986 年The UNIX C Shell Field Guide 中

  • Stephen R. Bourne 在 1983 年的The UNIX System中收集了第 7 版 UNIX 的手册条目。umask()第 294 页上的系统调用在任何地方都不包含“用户”一词,只是将其称为“文件创建模式掩码”。一个 forsh根本没有提到这个主题。
  • 1983 年Unix 分时系统:贝尔实验室的Unix 程序员手册重复了 Bourne 的措辞(这是意料之中的):
    NAME umask — 设置文件创建模式掩码

    概要
    umask(complmode)

    描述
    Umask 设置一个由creat(T) 或mknod(2)创建文件时使用的掩码:[…]

  • 在宇宙的 BSD 方面,1987 年UNIX 程序员参考手册 (PRM): 4.3 Berkeley Software Distribution, Virtual VAX-11 Version也没有提到“用户”这个词:
    NAME umask — 设置文件创建模式掩码

    概要
    oumask = umask(numask) int oumask, numask;

    描述
    Umask 将进程的文件模式创建掩码设置为numask并返回掩码的先前值。[…]

  • 在 Marc J. Rochkind 1985 年的高级 UNIX 编程中没有“用户” ,只有“文件模式创建掩码”。
  • 在 Waite Group 的 1987 Unix System V Bible(“文件创建掩码”)中也没有。

在 4 个十年的大部分时间里,“u”代表“用户”已被广泛接受;但很难追溯到名称的最初造词,与“u区域”的联系仅在事实发生二十年后才出现,“用户”一词似乎出现在第 7 版 UNIX 和 AT&T Unix 系统之间的某个时间点5 第 3 版,并且这个词可能是在此之后被人们编写正式 doco 引入的,作为对“u”的看似合理的扩展。

进一步阅读