文件系统层结构标准
编辑文件系统层结构标准 (FHS) 是描述用于 UNIX 系统布局的约定的参考。 它因在 Linux 发行版中的使用而变得流行,但它也被其他 UNIX 变体使用。 它由 Linux 基金会维护。 最新版本为 3.0,于 2015 年 6 月 3 日发布。
目录结构
编辑在 FHS 中,所有文件和目录都出现在根目录 / 下,即使它们存储在不同的物理或虚拟设备上。 如果安装了某些子系统,例如 X Window 系统,则其中一些目录仅存在于特定系统上。
这些目录中的大多数都存在于所有类 Unix 操作系统中,并且通常以大致相同的方式使用; 但是,这里的描述是专门针对 FHS 的描述,对于 Linux 以外的平台不具有权威性。
FHS 合规性
编辑大多数 Linux 发行版都遵循文件系统层结构标准,并声明自己的政策以保持 FHS 合规性。 GoboLinux 和 NixOS 提供了故意不兼容的文件系统实现的示例。
一些发行版通常遵循该标准,但在某些地区会偏离该标准。 FHS 是一个追踪标准,因此记录了某个时间点的常见做法。 当然,时代在变,分配目标和需求需要进行试验。 一些常见的偏差包括:
- 现代 Linux 发行版包含一个 /sys 目录作为虚拟文件系统(sysfs,类似于 /proc,它是一个 procfs),它存储并允许修改连接到系统的设备,而许多传统的类 Unix 操作系统 使用 /sys 作为内核源代码树的符号链接。
- 许多现代类 Unix 系统(如 FreeBSD 通过其端口系统)将第三方软件包安装到 /usr/local,同时将代码视为 /usr 中操作系统的一部分。
- 一些 Linux 发行版不再区分 /lib 和 /usr/lib,并将 /lib 符号链接到 /usr/lib。
- 一些 Linux 发行版不再区分 /bin 和 /usr/bin 以及 /sbin 和 /usr/sbin。 他们可能会将 /bin 符号链接到 /usr/bin 并将 /sbin 符号链接到 /usr/sbin。 其他发行版选择合并所有四个,将它们符号链接到 /usr/bin。
现代 Linux 发行版包括一个 /run 目录作为临时文件系统 (tmpfs),它存储易失性运行时数据,遵循 FHS 3.0 版。 根据 FHS 2.3 版,此类数据存储在 /var/run 中,但在某些情况下这是一个问题,因为该目录在早期引导时并不总是可用。 结果,这些程序不得不诉诸诡计,例如使用 /dev/.udev、/dev/.mdadm、/dev/.systemd 或 /dev/.mount 目录,即使设备目录不是为 这样的数据。 在其他优点中,这使得系统更容易在根文件系统以只读方式挂载的情况下正常使用。例如,以下是 Debian 在其 2013 年 Wheezy 版本中所做的更改:
历史
编辑FHS 被创建为 FSSTND(文件系统标准的缩写),主要基于其他类 Unix 操作系统的类似标准。 值得注意的例子如下: hier(7) 对文件系统布局的描述,自第 7 版 Unix(1979 年)发布以来就存在; SunOS 文件系统 (7) 及其继任者 Solaris 文件系统 (5)。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/249595/