bin、sbin、usr/bin、usr/sbin的区别

30 年 2010 月 XNUMX 日,大卫·科利尔 (David Collier) 写道:

我注意到在 busybox 中链接被分为这四个目录。
是否有一些简单的规则来确定哪个链接应该位于哪个目录中......
例如,kill在/bin中,killall在/usr/bin中......我在这个分区中看不到任何逻辑。

您可能知道 Ken Thompson 和 Dennis Ritchie 于​​ 7 年在 PDP-1969 上创建了 Unix。 因此,在 1971 年左右,他们升级到带有一对 RK11 磁盘(每个 05 MB)的 PDP-1,5。

当操作系统增长并且不再适合第一个磁盘(根 FS 所在的位置)时,它们将部分移动到主目录所在的第二个磁盘(因此,挂载点称为 /usr - 来自单词用户)。 他们复制了所有必要的操作系统目录(/bin、/sbin、/lib、/tmp ...)并将文件放在新磁盘上,因为旧磁盘空间不足。 然后他们有第三个磁盘,他们将其安装在 /home 目录中,并将用户的主目录移动到那里,以便操作系统可以占用两个磁盘上的所有剩余空间,这些是 多达三兆字节 (哇!)。

当然,他们必须制定一个规则,“当操作系统启动时,它必须能够在/usr中挂载第二个磁盘,所以不要将mount之类的程序放在/usr中的第二个磁盘上,否则你会这是一个先有鸡还是先有蛋的问题。” 就是这么简单。 那是 6 年前的 Unix V35。

/bin 和 /usr/bin(以及所有此类目录)的拆分是这些事件的遗产,是 70 年代的实施细节,几十年来一直被官僚复制。 他们从未问过这个问题 为什么, они просто делали так. Это разделение перестало иметь смысл ещё до того, как Linux был создан, по нескольким причинам:

  1. 启动时,会使用 initrd 或 initramfs,它可以解决诸如“我们在那个文件之前需要这个文件”之类的问题。 因此,我们有 已经有了 用于加载其他所有内容的临时文件系统。
  2. 共享库(由 Berkley 的人添加到 Unix 中)不允许您独立更改 /lib 和 /usr/lib 的内容。 这两个部分必须匹配,否则将无法工作。 这在 1974 年并没有发生,因为当时由于静态链接,它们具有一定的独立性。
  3. 廉价硬盘在 100 年左右突破了 1990 MB 的大关,大约在同一时间,分区大小调整软件出现(分区魔法 3.0 于 1997 年问世)。

当然,既然有划分,就有人提出了合理化的规则。 例如,根分区是各种一般操作系统功能所必需的,并且您需要将本地文件放在 /usr 中。 或者将 AT&T 分发的内容放入 /usr 中,将 IBM AIX、Dec Ultrix 或 SGI Irix 添加的分发内容放入 /usr,并且 /usr/local 包含特定于您的系统的文件。 然后有人认为 /usr/local 不是安装新软件的正确位置,所以让我们添加 /opt! 如果 /opt/local 也出现,我不会感到惊讶......

Разумеется, за 30 лет из-за такого разделения появлялись и исчезали всякие интересные специфичные для отдельных дистрибутивов правила. Например, «/tmp очищается при перезагрузке, а /usr/tmp — нет». (И в Ubuntu /usr/tmp нет в принципе, а в Gentoo /usr/tmp — это символическая ссылка на /var/tmp, на который теперь распространяется то правило, и он не очищается при перезагрузке. Да, это всё было ещё до tmpfs. А ещё бывает, что корневая ФС доступна только на чтение, и тогда в /usr тоже не надо ничего писать, а надо писать в /var. Или в / 基本上 除了 /etc 之外无法写入,有时尝试将其移至 /var ...)

Бюрократы вроде Linux Foundation (которые поглотили Free Standards Group во время расширения годы назад) с радостью документируют и усложняют эти правила, даже не пытаясь понять, почему они появились. Они не догадываются, что Кен и Дэннис просто перенесли часть ОС в их домашнюю директорию, из-за того, что диск RK05 на PDP-11 был слишком мал.

我很确定 busybox 只是以与历史开发相同的方式放置文件。 到目前为止还没有真正的理由这样做。 就我个人而言,我只是将 /bin、/sbin 和 /lib 链接到 /usr 中的类似目录。 毕竟,使用嵌入式软件的人试图理解并简化......

来源: habr.com

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster