FHS根文件系统

文件系统的本质:实现文件能够按照名称进行存取的内核级别的软件应用程序

FHS根文件系统就是以层次化方式组织所有的文件,根文件系统所在的磁盘分区叫做根分区,也是所有文件的访问入口

所有文件的访问需要预先挂载,挂载的本质就是将该文件所在的分区关联到根分区上某个特定目录下;因此,内核先访问根分区,然后访问与之关联的分区(待访问文件所在分区),最后访问文件

FHS根文件系统的结构如下

../../../../_images/13.jpg
  • /:根文件系统的根,系统上所有文件的访问入口

  • 存放操作系统自身运行使用的二进制程序

    • /bin: 管理员和普通用户都可以使用
    • /sbin:管理员才能执行的命令
  • 存放运行正常功能的二进制程序

    • /usr/bin:管理员和普通用户都可以使用
    • /usr/sbin:管理员才能执行的命令
  • 存放第三方软件的二进制程序

    • /usr/local/bin:管理员和普通用户都可以使用
    • /usr/local/sbin:管理员才能执行的命令
  • /boot:存放系统引导文件:内核、``ramfs文件``、``bootloader(grub)``

  • /dev:存放内核识别的设备文件(设备在内核中会映射成设备文件存放在该目录下,该目录下的设备文件要想实现被访问必须先进行挂载)

    • 该目录的生成机制

      • 1.内核在初始化时通过devtmps(用于在内核初始化时为基本设备创建设备文件的临时文件系统)机制在initramfs(根文件系统所在设备的设备驱动模块)上创建基本设备文件
      • 2.用户空间初始化时通过udev机制在结合/etc/udev/rules.d/*.rules配置文件在/dev目录下创建devtmps尚未创建的设备文件
      • 3.如果还有设备文件没有创建,就使用mknod命令手动创建设备文件
    • cdrom:光盘(CD/DVD)映射形成的便携式设备文件,它是一个符号链接,链接到sr0设备文件

    • sr0:光盘(CD/DVD)映射形成的便携式设备文件

    • zer0:该设备文件存储的全部是0

    • null:存储到该设备文件中的数据都会自动消失

    • console:物理终端控制台,集成在芯片中,系统刚启动时或启动过程中进行交互的终端

    • ttys#:串行终端,使用串口连接的终端,#代表数字

    • tty#:虚拟终端,附加在物理终端上可以任意切换,系统启动完成后进行交互的终端,#代表数字

      • Ctrl+Alt+F1~F6快捷键可以启动或者说切换到虚拟终端tty1~tty6
      • Ctrl+Alt+F7快捷键可以启动图形终端
    • pts/#:伪终端,远程连接或图形界面下打开的命令接口,#代表数字

  • /etc:配置文件的集中存放目录

    • fstab:该文件定义了设备文件自动挂载表,系统开机初始化时,会读取该文件根据自动挂载表进行自动挂载设备文件操作。可以通过编辑该文件实现开机自动挂载设备;该文件中六段的意义如下:

      • 1、要挂载的设备:设备的描述形式===设备文件路径LABEL=""UUID=""
      • 2、挂载点:有的文件系统没有挂载点,swap就没有挂载点,它的挂载点就是swap
      • 3、文件系统类型:xfsswapext4
      • 4、挂载选项:多个选项间使用逗号分隔,默认是defaults
      • 5、备份频率:0-从不备份1-每日备份2-每隔一天备份
      • 6、开机自检次序:1-首先自检,通常只能被/使用2-根自检完后再自检0-从不自检
    • services:名称解析库,实现端口和服务名称之间进行转换

    • mtab:存放当前系统所有的设备挂载信息,mount命令会自动修改该文件

    • init.d:目录,存放系统开机初始化脚本文件

    • ld.so.conf:存放程序编译源代码过程中链接(ld)时所要查找动态格式共享对象库时所要查找的路径

    • ld.so.conf.d:目录,存放动态链接库查找路径的所有配置文件

    • sysconfig:存放系统级别的应用信息

  • /home:普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录

  • /root:管理员的家目录

  • /lib:存放32位库文件

  • /lib64:存放64位库文件

  • /media:专用挂载位置,通常用来挂载便携式设备

  • /mnt:专用挂载位置,通常用来挂载额外的存储设备

  • /misc:杂项,备用目录

  • /opt:可选目录,但通常用来安装第三方软件

  • /proc:所显示的文件都不是文件,伪文件系统,保存运行中的内核参数的映射,不能使用vim等编辑器打开;该目录下的绝大数文件都没有写权限,即使是管理员也无法编辑修改大多数文件;linux将内核中所有进程的参数通过/proc伪文件系统目录向用户空间提供访问查看的入口。每一个进程会以自己的PID号为目录名创建一个目录文件来保持自己的相关信息

    • version:存放当前系统正在运行内核的版本
    • partitions:存放当前系统所有挂载磁盘的分区信息
    • meminfo:存放当前系统的内存信息
    • filesystems;存放当前系统内核识别出的文件系统的类型信息
    • mounts:存放当前系统所有的设备挂载信息,内核维持并修改该文件的信息
    • vm/swappiness:该文件定义了Linux的内存使用机制
    • sys:该目录下的文件有很多是提供写权限的,即提供了修改内核参数的入口
    • cmdline:内核启动时传递给内核的参数。每个进程目录下都有一个该文件用来传递参数给内核
  • /sys:伪文件系统,系统级别的用于配置硬件设备相关的参数

  • /srv:为服务提供数据存放位置

  • /tmp:临时文件系统:默认存放30天

  • /usr:存放应用程序的相关文件

    • shared: 存放应用程序的说明帮助文档
    • include:存放应用程序的头文件
  • /var:存放经常发生变化的文件

    • /var/log:存放日志文件
    • /var/lock:存放锁文件
    • /var/cache:存放缓存文件