/home 目录是在什么时候出现的?

str*_*gee 30 fhs history directory-structure home

最初在 Unix 中,/usr用于用户(主)目录。因此,如果我有一个名为 的用户alex,我的主目录将是/usr/alex. (有趣的是,Unix 的后继者Plan 9 中仍然有用户目录/usr。)

现在,当然,我们将主目录存储在/home. (至少在 GNU/Linux 上。我不知道其他的 Unices,但 OS X 不算数。)这在什么时候成为标准做法?它出现在什么 Unix 风格中?其他 Unices 的采用需要多长时间?先后/home已通过大家?

我在这里做了一些搜索,但什么也没找到。

jll*_*gre 26

这个变化是由 BSD 在 1985 年之后(BSD 4.2 仍在记录 /usr)和 1988 年或之前(BSD 4.3/SunOS 4.1hier(7)手册页已经记录 /home)引入的。紧随其后的是 Solaris 2.0(融合了 System V 和 BSD),后来被大多数其他 Unix 供应商采用。

这是来自 Solaris 2.0useradd手册页:

   -D 显示 group、basedir、skel、shell、
               不活动,并过期。与 -g、-b、-f 或 -e 一起使用时
               选项,-D 选项设置默认值
               指定的字段。默认值为:

                       组其他(GID 为 1)
                       基于     /home
                       skel /etc/skel
                       外壳 /sbin/sh
                       不活动 0
                       过期空(未设置)。

在此之前,较旧的 Unix 使用传统/usr目录或某些变体,如 SVR3 和 SVR4.0 中记录的 /user1。Unix 版本 7hier(7) 手册页定义/usr为用户主目录的默认位置:

/usr/wd/     initial working directory of a user, typically wd is the
             user's login name
Run Code Online (Sandbox Code Playgroud)

Unix 版本 6,第一个在贝尔实验室之外广泛发布的 Unix 还没有hier手册页,但已经在使用和记录 /usr.

有几个原因可以解释从/usr其他事物的转变,包括:

  • 对于某些 Unix 版本,升级操作系统会破坏/usr目录

  • 禁止使用、、等用户名tmp,因为它们与.srcbinlocal/usr

  • 使用/usr作为自动安装的基本目录是不可能的,因为它不为空(感谢约翰指出这)

  • 无盘机器预计将只读 NFS 共享用于/usr但可读写的主目录

  • 另一个原因(使用 /home)是将它与 /usr 分开,以便能够自动挂载用户主目录。 (2认同)