什么是FHS

FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数Linux版本采用这种文件组织形式,FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。 FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。 第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。

F


fssc组织架构 fhs组织是什么意思_文件系统

 

关于上面提到的FHS,这里还有个很重要的内容你一定要明白,FHS是根据以往无数linux用户和开发者的经验总结出来的,并且会维持更新,FHS依据文件系统使用的频繁与否以及是否允许用户随意改动(注意,不是不能,学习过程中,不要怕这些),将目录定义为四种交互作用的形态,如下表所示:

 

可分享的(shareable)

不可分享的(unshareable)

不可变的(static)

/usr(软件放置处)

/etc(配置文件)

/opt(第三方软件)

/boot(开机及内核文件)

可变的(variable)

/var/mail(用户信件邮箱)

/var/run(程序相关)

/var/news(新闻组)

/var/lock(文件锁相关)

 

 

根目录 (/) 的意义与内容
根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心文件、开机所需程序、 函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要,所以在FHS的要求方面,他希望根目录不要放在非常大的分区, 因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。

因此FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和 Windows 的 C 盘一个样。

要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载。因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区去。

哪些目录不可与根目录分开呢?如下这些:

/etc:配置文件

/bin:重要执行档

/dev:所需要的设备文件

/lib:执行档所需的函式库与核心所需的模块

/sbin:重要的系统执行文件

这五个目录不可与根目录分开在不同的分区