Linux目录结构和系统结构 | 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 系统的目录结构和系统结构有个初步的认识。