Hacker News 中文摘要

RSS订阅

理解bin、sbin、usr/bin、usr/sbin的划分(2010) -- Understanding the bin, sbin, usr/bin, usr/sbin split (2010)

文章摘要

文章解释了Linux系统中bin、sbin、usr/bin和usr/sbin目录的区别:bin和sbin存放系统启动和修复所需的基本命令,usr/bin和usr/sbin存放用户安装的应用程序。这种划分源于早期Unix系统因磁盘空间有限而采取的分区策略,虽然后来硬件发展已不再需要,但这一传统仍被保留下来。

文章总结

理解/bin、/sbin、/usr/bin与/usr/sbin目录划分的历史渊源

本文由Rob Landley撰写,追溯了Unix系统中常见目录划分的历史背景。作者指出,这种目录结构源于1970年代PDP-11计算机的存储限制:

  1. 历史背景:
  • 1969年Unix诞生时使用PDP-7计算机
  • 1971年升级到PDP-11时,由于1.5MB的根磁盘空间不足,系统文件被扩展到第二块磁盘(挂载为/usr)
  • 后来新增第三块磁盘挂载为/home后,系统文件占据了前两块磁盘
  1. 现代系统的矛盾:
  • 早期设计考虑:确保系统能先挂载/usr(如mount命令不能放在/usr/bin)
  • 但现代系统通过initrd/initramfs解决启动依赖问题
  • 共享库机制要求/lib与/usr/bin必须版本匹配
  • 随着硬盘容量增长(1990年代已达100MB),分区限制已无意义
  1. 后续发展:
  • 各发行版衍生出不同规则(如/tmp与/usr/tmp的清理策略)
  • 标准化组织延续了这些历史遗留设计
  • 作者建议通过符号链接简化目录结构(如将/bin链接到/usr/bin)
  1. 现状:
  • Busybox只是遵循历史惯例放置文件
  • 这些目录划分在现代系统中已失去实际意义
  • 嵌入式系统开发者更倾向于简化结构

文章以幽默笔调批评了标准化组织对历史设计的盲目延续,将其比作"官僚主义"的产物。作者最后用星战前传、永远的毁灭公爵和新可乐的比喻,讽刺GPLv3协议同样是不合时宜的产物。

(注:原文中的邮件列表导航信息、重复标题和签名档等无关内容已删除,保留了核心的技术论述和历史分析)

评论总结

以下是评论内容的总结:

  1. 历史遗留问题
    多数评论认为Linux目录结构的复杂性源于历史原因。

    • "many rules from many places are now in force that maintain the historical structure" (jagged-chisel)
    • "there was of course a time when an immutable OS was the default" (miggol)
  2. 对现状的批评
    许多评论指出当前目录结构不合理,但改变困难。

    • "An amalgam of ideas which are there just because" (behnamoh)
    • "FHS is now a standard...it hasn't made any sense at all" (shevy-java)
  3. 替代方案
    有评论提到GoboLinux等替代方案,但未成主流。

    • "see GoboLinux which has more sane dirs" (behnamoh)
    • "Is there a mainstream distro that disregards all the legacy cruft?" (roger_)
  4. 技术细节讨论
    部分评论深入讨论特定目录的用途差异。

    • "/usr/local exists so you don't accidentally mess up your distro" (paulddraper)
    • "/opt is 'the wild west'...with no distinction" (paulddraper)
  5. 幽默与调侃
    一些评论用幽默方式表达对复杂性的无奈。

    • "Obligatory XKCD Standards" (cowlby)
    • "Oh, how I wish I was born in the '60s" (M95D)
  6. 改进建议
    有评论提出重新设计的构想。

    • "I would set it up like so: /bin for all system binaries" (IgorPartola)
    • "packages should turn to portable applications isolated within their own directories" (drtgh)

总结:评论普遍认为Linux目录结构存在历史遗留问题,虽有不合理之处但因兼容性难以改变,同时也有对替代方案和改进建议的讨论。