Unix 目录结构的来历

厚德菌 一个八〇后文艺范儿佛系程序员。 本文由博客端 http://hoode.top 主动推送
本贴最后更新于 222 天前,其中的信息可能已经天翻地覆

作者: 阮一峰

日期: 2012 年 2 月 6 日

Unix(包含 Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。

举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr 子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还有/opt/bin。它们有何区别?

长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Unix 文件系统结构标准》(Filesystem Hierarchy Standard),死记硬背不同目录的区别。

昨天,我读到了 Rob Landley 的简短解释,这才恍然大悟,原来 Unix 目录结构是历史造成的。

话说 1969 年,Ken ThompsonDennis Ritchie 在小型机 PDP-7 上发明了 Unix。1971 年,他们将主机升级到了 PDP-11。

当时,他们使用一种叫做 RK05 的储存盘,一盘的容量大约是 1.5MB。

没过多久,操作系统(根目录)变得越来越大,一块盘已经装不下了。于是,他们加上了第二盘 RK05,并且规定第一块盘专门放系统程序,第二块盘专门放用户自己的程序,因此挂载的目录点取名为/usr。也就是说,根目录"/"挂载在第一块盘,"/usr"目录挂载在第二块盘。除此之外,两块盘的目录结构完全相同,第一块盘的目录(/bin, /sbin, /lib, /tmp...)都在/usr 目录下重新出现一次。

后来,第二块盘也满了,他们只好又加了第三盘 RK05,挂载的目录点取名为/home,并且规定/usr 用于存放用户的程序,/home 用于存放用户的数据。

从此,这种目录结构就延续了下来。随着硬盘容量越来越大,各个目录的含义进一步得到明确。

  /:存放系统程序,也就是 At&t 开发的 Unix 程序。

  /usr:存放 Unix 系统商(比如 IBM 和 HP)开发的程序。

  /usr/local:存放用户自己安装的程序。

  /opt:在某些系统,用于存放第三方厂商开发的程序,所以取名为 option,意为"选装"。

(完)

文档信息

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    834 引用 • 900 回帖 • 304 关注
  • 代码
    447 引用 • 544 回帖 • 6 关注

广告 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...