INTRO
认识Linux根文件系统结构,尽管Linux的根文件系统在形式表现上是一体的(所有数据目录均为根目录下的子目录),但实际它们是多个不同的【逻辑主体】(为了实现不同的逻辑 功能)组合在一起的,参见下图。这也解释了为什么有些节点(如/var)可以挂接到不同磁盘分区上。划分这些逻辑部分对清晰把握根文件系统结构,以及整个 系统的行为都有很大的好处。在划分之前,先看看“文件系统结构标准”。
文件系统结构标准
文件系统结构标准 (Filesystem Hierarchy Standard ,下称FHS)定立的目标之一是,程序可按用途性质被安装到指定的位置,用户也能预知程序的安装的文件和目录的位置。FHS通过定义文件系统各部分的涵 义、用途,再加上列举所有的特殊情况,如历史遗留问题,达到了这个目标。
LINUX系统的数据文件可以根据【双重标准】来对它们分类:共享的与独享的(shareable vs. unshareable)、变化的和静态的(variable vs. static)。如果数据文件无法按照双重标准分类,它们必须另起目录存放,这样做的原因是可以把不同【使用性质】(usage characteristics)的数据文件分开不同文件系统(磁盘分区)存放。
“共享的” (Shareable)是指数据与平台不相关的,如/usr;相反“独享的”(Unshareable)指数据是平台相关的,如配置数据/etc。
“静态的”数据是相对非管理员用户而言的,没有更变的权限;而“变化的”则相反。分隔静态与动态数据的目的是为了可把静态数据安装到一个单独的只读的介质 (文件系统)中,不必与动态数据一起做频繁的事务管理,比如定期备份。
与数据的【静动态性】面向“用户”不同,数据的【共享专用性】是面向“主机”而言,也就是说,有些数据是本机专用的,而另外一些是多个主机(可是本地的 FHS兼容主机,可以是远程主机)共享的。比如根目录分区是本机专用的,而/usr所在分区可共享给多个FHS兼容主机。
双重标准是发展而来的,被纳入FHS,为了支持这个标准,过去默认存放在/usr 、/var、 /etc 等目录的数据都做了相应的调整。
Linux文件系统逻辑组成
参照FHS,Linux系统按照逻辑功能大致分为以下目录(以具体目录表现逻辑功能,有意思):
/
/usr
/var
/opt
/home
P.S. 以上目录均可单独安装到一个分区上,最终挂接入根下。
/ (专用的静态的)
根目录的功能由其名可略知,根目录是系统的根本所在(Essential),是系统之所以为本系统的特征表现。换句话说,本目录的内容不是可选的, 是系统基本功能必备部分。