Linux系列六之根文件系统

2019-05-04  本文已影响0人  Cehae

一、什么是根文件系统

在传统的Windows机器的目录结构中,可能会包括C:盘或者D:盘,而他们一般就称之为特定逻辑磁盘的根目录。从文件系统的层面来说,每一个分区都包含了一个根目录区,也即系统中存在多个根目录。但是在Linux系统中,目录结构与Windows上有较大的不同。系统中只有一个根目录,路径是"/",而其它的分区只是挂载在根目录中的一个文件夹,如"/proc"和"system"等等,这里的"/"就是Linux中的根目录。

对应根目录也就存在一个根目录文件系统的概念,我们可以将某一个分区挂载为根目录文件系统。简单的来说,根目录文件系统就是一种目录结构,包括了Linux启动的时候所必须的一些目录结构和重要文件。根文件系统有两种,一种是虚拟根文件系统,另外一种是真实的根文件系统。在Kernel启动的初始阶段,首先去创建虚拟的根文件系统(rootfs),接下来再去调用do_mount来加载真正的文件系统,并将根文件系统切换到真正的文件系统。

二、根文件系统基本目录结构

2-1、根文件系统基本目录结构详解

搜狗截图20190503214525.png

2-2、/bin /sbin /lib和/usr/bin /usr/sbin /usr/lib以及/usr/local/bin /usr/local/sbin /usr/local/lib的区别

搬运于官方文档

/bin   This  directory contains executable programs which are needed in single user mode and to bring the sys‐
              tem up or repair it.
/sbin  Like  /bin, this directory holds commands needed to boot the system, but which are usually not executed
              by normal users.
/usr/bin
              This  is  the  primary directory for executable programs.  Most programs executed by normal users which
              are not needed for booting or for repairing the system and which are not installed  locally  should  be
              placed in this directory.
/usr/sbin
              This directory contains program binaries for system administration which are not essential for the boot
              process, for mounting /usr, or for system repair.
/usr/local/bin
              Binaries for programs local to the site.
/usr/local/sbin
              Locally installed programs for system administration.

现在有一些变化,在大约五年前,大量Linux系统都将/bin、/lib弄成/usr/bin、/usr/lib的符号链接。此外,不同系统还会有很多的细微区别,比如Redhat系喜欢把32位的库放在/lib、/usr/lib,64位的库放在/lib64、/usr/lib64,而Debian系喜欢把平台相关的那层名字放在/lib、/usr/lib的子目录里,比如/usr/lib/x86_64-linux-gnu/。然后,各种配置文件的文件名、路径也会有区别,比如ssh服务器的配置文件可能叫/etc/ssh/sshd.conf,也可能叫/etc/ssh/sshd_config。。。

分成三块的最早的渊源,据说是这样的:

  1. Unix开发者的机器的硬盘不够了,新加了一块,挂在/usr上;
  2. 又TM不够了,再加一块,挂在/usr/local上;
  3. 不知怎么,就变成规范了。。。。
上一篇下一篇

猜你喜欢

热点阅读