Linux根文件系统层级标准FHS

(一)程序编译方式

Linux中的标准C库为glibc,应用程序或多或少都会用到这个库

  • 动态链接
  • 静态编译

(二)终端

  • 终端是硬件设备,关联一个用户接口,如shell
  • 进程的类型
    • 与终端相关的,通过终端启动
    • 与终端无关,操作系统引导启动过程当中自动启动的

(三)操作系统的组成部分

从静态视角来看,由kernal和application组成

(四)FHS:Filesystem Hierarchy Standard

  • /bin:所有用户可用的基本命令程序文件
  • /sbin:供系统管理使用的工具程序
  • /boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等
  • /dev:存储特殊文件或设备文件
    • 设备分为两种类型:字符设备(线性设备),如键盘,显示器;块设备(随机设备),如硬盘
  • /etc:系统程序的静态配置文件
  • /home:普通用户家目录的集中位置,Optional
  • /root:管理员的家目录,Optional,之所以是可选的,因为管理员不该登陆系统
  • /lib:为系统启动或者根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块
    • libc.so.*:动态链接的C库
    • ld*:运行时链接器/加载器
    • modules:用于存储内核模块的目录
  • /lib64:64位系统特有的存放共享库的路径
  • /media:便携式设备挂载点。cdrom,floppy等
  • /mnt:其它文件系统的临时挂载点
  • /opt:附加应用程序的安装位置,Optional
  • /srv:当前主机为服务提供的数据
  • /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录,可供所有用户执行写入操作,有特殊权限
  • /usr:全局共享只读数据路径,自己也是层级结构,仅次于根目录第二重要
    • bin,sbin:不是开机立刻要用的,可能是在附加程序运行过程中需要用的
    • lib,lib64:仅供/usr/bin和/usr/sbin使用的共享库,但是/usr/bin和/usr/sbin使用的共享库也有一部分存放在根目录下的lib和lib64中
    • include:C程序用到的头文件
    • share:man文档,程序文档放在这里。注:CentOS是这样的,其它发行版本未必
    • X11R6:x-window程序的安装位置
    • src:程序源码文件
    • local:又是一个层级结构,用于安装本地应用程序,或者第三方应用程序,其下的目录结构和/usr很类似,像一个独立王国
  • /var:存储经常发生变化的数据的目录,也是一个层级结构。可以具体查FHS标准。
  • /proc:基于内存的(临时的)虚拟文件系统,用于为内核及进程在运行时存储其相关信息,它们多为内核参数,例如:net.ipv4.ip_forward,虚拟为net/ipv4//ip_forward,存储于/proc/sys下,因此其完整路径为:/proc/sys/net/ipv4//ip_forward
  • /sys:虚拟文件系统,提供了一种比/proc更为理想的访问内核数据的途径,其主要作用在于为管理Linux设备提供一种统一模型的接口。参考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/
原文地址:https://www.cnblogs.com/jacky1982/p/7599611.html