Linux目录结构和系统结构

提到 GNU/Linux 系统的目录结构,不得不说一下FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),正是这一标准的存在,详细的定义了类 Unix 操作系统中各种应用软件,管理工具,开发工具,脚本以及帮助文档的位置,让遵循该标准的各种 GNU/Linux 发行版目录结构几乎都是一致的。

在 FHS 中,根据文件的共享性和文件是否要求被修改的特点,其将文件划分为可共享文件/不可共享文件以及可变数据文件/静态数据文件两大类。FHS 将不同属性的文件划归到不同的目录,以便系统管理。

如下表所示:

文件类型 共享文件 不可共享文件
静态数据文件 /usr
/opt
/boot
/etc
可变数据文件 /var/mail
/var/spool/news
/var/run
/var/lock

需要注意,并不是所有在文件系统中的文件都是可共享的,每个拥有本地存储设备的系统都会有自己不可共享的文件。通过目录文件性质的划分,可以很方便的将其他主机上的共享文件目录挂载到本地系统。

Linux 目录结构

因为 FHS 目录规定,你会发现 GNU/Linux 不同的发行版都存在以下目录结构:

目录 说明
/ 整个文件系统层次结构的根目录。
/bin 用户可用的必要命令目录,面向所有用户,例如,ls,cp等命令都在该目录。
/boot 引导程序文件所在目录。
/dev 设备文件目录,如光驱、磁盘等,访问该目录下某个文件相当于访问某个硬件设备。
/etc 系统的配置文件目录,作为一些软件启动时默认配置文件读取的目录。
/home 用户的家目录,该目录下不同的账号可以对应不同的目录。
/lib 主要存放动态链接库。类似的目录有/usr/lib、/usr/local/lib等。
/lib64 64位系统有/lib64文件夹,主要存放动态链接库。
/media 可移除媒体(如CD-ROM)的挂载点 (在FHS-2.3中出现)。
/mnt 临时挂载的文件系统。比如cdrom,u盘等。
/proc 虚拟文件系统,是系统内存的映射。可直接访问这个目录来获取系统信息。
/opt 可选应用软件包。
/root 超级用户的家目录。
/srv 主要用来存储本机或本服务器提供的服务或数。
/tmp 临时文件目录,在系统重启时目录中文件不会被保留。
/usr 默认软件都会存于该目录下。
/var 动态文件,在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。

更多关于FHS目录的规定,可以参看https://www.pathname.com/fhs/pub/fhs-2.3.pdf

Linux 系统结构

GNU/Linux 的系统结构包括以下几部分,如下图所示:

应用程序:例如文本编辑器,Web浏览器,X Winodow,网络应用程序,系统工具等一系列的应用。这些应用通过系统调用接口与 Linux 内核发生交互。

Shell&函数库:Shell 是 GNU/Linux 系统的命令解释器,用于处理输入,实现和系统的交互。库函数则为编程提供接口,实现对系统调用的再次封装,为上层程序调用提供更简便的接口。

Linux内核:操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、文件和网络系统等,决定着系统的性能和稳定性。

设备驱动:设备驱动负责驱动系统的相关硬件,使其正常的发挥作用。

对于 GNU/Linux 这样一个复杂的操作系统,逐步的明白其目录结构以及系统结构,对于用户了解 GNU/Linux 系统会有很大的帮助,希望本文能让大家对 GNU/Linux 系统的目录结构和系统结构有个初步的认识。

你可能感兴趣的:(Linux目录结构和系统结构)