Linux根文件系统结构再认识

Linux根文件系统结构再认识
刘建文(http://blog.csdn.net/keminlau )

INTRO

尽管Linux的根文件系统在形式表现上是一体的(所有数据目录均为根目录下的子目录),但实际它们是多个不同的【逻辑主体】(为了实现不同的逻辑功能)组合在一起的,参见下图。这也解释了为什么有些节点(如/var)可以挂接到不同磁盘分区上。划分这些逻辑部分对清晰把握根文件系统结构,以及整个系统的行为都有很大的好处。在划分之前,先看看“文件系统结构标准”。

 

文件系统结构标准

文件系统结构标准 (Filesystem Hierarchy Standard,下称FHS)定立的目标之一是,程序可按用途性质被安装到指定的位置,用户也能预知程序的安装的文件和目录的位置。FHS通过定义文件系统各部分的涵义、用途,再加上列举所有的特殊情况,如历史遗留问题,达到了这个目标。

LINUX系统的数据文件可以根据【双重标准】来对它们分类:共享的与独享的(shareable vs. unshareable)、变化的和静态的(variable vs. static)。如果数据文件无法按照双重标准分类,它们必须另起目录存放,这样做的原因是可以把不同【使用性质】(usage characteristics)的数据文件分开不同文件系统(磁盘分区)存放。

  • “共享的” (Shareable)是指数据与平台不相关的,如/usr;相反“独享的”(Unshareable)指数据是平台相关的,如配置数据/etc。
  • “静态的”数据是相对非管理员用户而言的,没有更变的权限;而“变化的”则相反。分隔静态与动态数据的目的是为了可把静态数据安装到一个单独的只读的介质(文件系统)中,不必与动态数据一起做频繁的事务管理,比如定期备份。

与数据的【静动态性】面向“用户”不同,数据的【共享专用性】是面向“主机”而言,也就是说,有些数据是本机专用的,而另外一些是多个主机(可是本地的FHS兼容主机,可以是远程主机)共享的。比如根目录分区是本机专用的,而/usr所在分区可共享给多个FHS兼容主机。

双重标准是发展而来的,被纳入FHS,为了支持这个标准,过去默认存放在/usr 、/var、 /etc 等目录的数据都做了相应的调整。

Linux根文件系统逻辑组成

参照FHS,Linux系统按照逻辑功能大致分为以下目录(以具体目录表现逻辑功能,有意思):

  • /
  • /usr
  • /var
  • /opt
  • /home

P.S. 以上目录均可单独安装到一个分区上,最终挂接入根下。

/ (专用的静态的)

根目录的功能由其名可略知,根目录是系统的根本所在(Essential),是系统之所以为本系统的特征表现。也可这样理解,根目录的内容不是可选的,是系统基本功能必备部分。

P.S.如何理解“根本所在”?

我们知道,Linux系统有内核,还会有shell,有gred,还有吗?有vi吧,有GCC吧,有ifconfig吧,还有可能X下大量应用程序。所谓“根本所在”,在内容表现上,就是包括最基本的最通用的部分。当然这部分内容还可能有一些是可选的,这个取决你如何定义基本系统。

根目录的逻辑功能分为两层,第一层是应用的,第二层是管理(administration)的。应用层在上面说了,它用来组成基本系统,包括常用工具(如 ls,放置于/bin),和一些共享库等。第二层是管理用的,对系统进行启动、恢复、修复和配置等。由于根目录是系统的“根本所在”,管理目的,并且是 HOST相关的,如果可以应单独安装在一个尽可能小的分区上。

如何定义基本系统?

由于计算系统基本上是逻辑的,基本系统的定义取决计算任务,而计算任务本身是交错复杂和多样的,所以只能用一个特殊的例子来说明。比如要进行启动、恢复、修复和配置的系统需要些什么?

  • To boot a system, enough must be present on the root partition to mount other filesystems. This includes utilities, configuration, boot loader information, and other essential start-up data.
  • To enable recovery and/or repair of a system, those utilities needed by an experienced maintainer to diagnose and reconstruct a damaged system must be present on the root filesystem.
  • To restore a system, those utilities needed to restore from system backups (on floppy, tape, etc.) must be present on the root filesystem

 

根目录必选组成目录

  • /bin 基本工具或命令
  • /sbin 系统管理工具或命令
  • /etc 主机相关(Host-specific)的配置数据
  • /lib 基本共享库和内核模块
  • /dev 设备文件
  • /boot 引导程序
  • /root 管理员的工作目录
  • /mnt 系统管理员的临时挂接点
  • /tmp 系统级临时文件
  • /media 移动设备挂接点

/usr (共享的静态的)

/usr 目录是系统的一大组成部分。很难用一句说明/usr的用途。不过我们可以透过/usr 的双重标准性质与/和/var对比来理解/usr在系统中的角色。首先,与/相同,/usr是静态的,也就是说/usr下的数据普通用户是不能更改的;但与/不同的是,/usr是共享的,也就可知,/usr下的数据与主机平台不相关的。我们大概知道,/usr与/类似安装有二进制程序、共享库和配置数据,那么从/usr 的双重标准性质可推理得,这些数据及代码都是独立于运行主机的。

而与/var对比呢?/var基本上是动态的和共享的(少量是主机相关的,如/var/log)。/var保存大部分是程序运行期的动态生成数据。

/usr必选组成目录

  • /usr/bin Most user commands
  • /usr/include Header files included by C programs
  • /usr/blib Libraries
  • /usr/local Local hierarchy (empty after main installation)
  • /usr/sbin Non-vital system binaries
  • /usr/share Architecture-independent data

/var

……

/home : User home directories (optional)

……


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#浮点数据类型

文章目录博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 数据类型含义取值范围有效数字位数float32位浮点数1.5X10^-45 ~ 3.4X10^387double64位浮点数5.0X10^-324 ~ 1.7X10^30815 ~ 16 注意: 浮点数有一定的取值范围和有效数字限制…

在Window10上使用Ubuntu终端

在Windows10上使用Ubuntu终端 习惯了ubuntu的开发,回到windows的command可以说是很绝望了。之前偶尔用windows时一直用git-bash来代替。但是发现windows已经添加了对ubuntu子系统的支持,那直接用不是更爽。 1.安装 进入控制面板,开启适用于Li…

httpClient实现微信公众号消息群发

1、实现功能  向关注了微信公众号的微信用户群发消息。(可以是所有的用户,也可以是提供了微信openid的微信用户集合) 2、基本步骤 前提: 已经有认证的公众号或者测试公众账号 发送消息步骤: 发送一个请求微信去获取ac…

为静态博客生成器WDTP移植了一款美美哒主题

前言 关于这个主题的移植后公布,我已经联系了主题作者并取得同意,这个主题是一夜涕所写的Sgreen,预览图见下 关于WDTP 就是一个很方便很便携很快速的cpp编写的带gui跨平台的开源的静态博客生成器,软件作者更新记录在V站可以找到,软…

TCP/IP数据包结构分析

一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析。如:网络监控,故障排查等…… IP包是不安全的&am…

C#decimal数据类型

文章目录博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 为适应高精度的财务和货币计算的需要,C#提供了十进制decimal类型。decimal类型数据特征如下表所示: 数据类型含义取值范围有效数字位数decimal128位高精度十进制…

世界杯快到了,看我用Python爬虫实现(伪)球迷速成!

还有4天就世界杯了,作为一个资深(伪)球迷,必须要实时关注世界杯相关新闻,了解各个球队动态,这样才能在一堆球迷中如(大)鱼(吹)得(特)水…

Bootstrap学习笔记(四)-----Bootstrap每天必学之表单

本文主要讲解的是表单,这个其实对于做过网站的人来说,并不陌生,而且可以说是最为常用的提交数据的Form表单。本文主要来讲解一下内容: 1.基本案例2.内联表单3.水平排列的表单4.被支持的控件5.静态控件6.控件状态7.控件尺寸8.帮助文…

LVS--NAT模型配置

环境准备 管理IP地址角色备注192.168.11.131调度器(Director)对外提供VIP服务的地址为192.168.1.114192.168.11.132RS1 网关为192.168.11.131192.168.11.129RS2 网关为192.168.11.131将Directory开启内核转发 Linux系统默认是禁止数据包转发的。所谓转发…

STL中list的使用(理论)

STL中的list就是一双向链表&#xff0c;可高效地进行插入删除元素。现总结一下它的操作。文中所用到两个list对象c1,c2分别有元素c1(10,20,30) c2(40,50,60)。还有一个list<int>::iterator citer用来指向c1或c2元素。list对象的声明构造()&#xff1a;A. list<in…

C#数据类型转换—使用Convert类转换

文章目录简介用例博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 简介 System.Covert类就是专门进行类型转换的类&#xff0c;Convert类提供的方法可以实现各种进本数据类型之间的转换。Convert类的常用方法如下表&#xff1a; 方法说明ToBo…

服务器租用单线、双线、bgp 相比有哪些区别优势?

2019独角兽企业重金招聘Python工程师标准>>> 在IDC行业中&#xff0c;服务器的稳定性、安全性是考核服务商的主要指标&#xff0c;影响这两个指标的因素有很多&#xff0c;其中比较重要的有三个&#xff0c;分别是服务器的配置、机房骨干网宽带和机房的线路。我们常…

SQL Server 数据库的维护(四)__游标(cursor)

--维护数据库-- --游标(cursor)-- --概述&#xff1a; 注&#xff1a;使用select语句查询结果的结果集是一个整体&#xff0c;如果想每次处理一行或一部分行数据&#xff0c;游标可以提供这种处理机制。可以将游标理解为指针。指针指向哪条记录&#xff0c;哪条记录即是被操作记…

关于在unity中动态获取字符串后在InputField上进行判断的BUG

今天想做一个简单的密码锁定控制功能&#xff0c;但是出现了问题。我是在游戏开始时读取streamingAsset中的text中的文本&#xff0c;其实就是密码如下图密码是123456789 然后我在程序中输入了该密码出现错误&#xff0c;居然错了。 然后我打印读取的文本信息是什么、没错啊。然…

转载 调用xvid 实现解码

2011-06-01 00:26:14) 转载view plaincopy to clipboardprint? /// intinit_decoder() { intret; xvid_gbl_init_t xvid_gbl_init; xvid_dec_create_txvid_dec_create; memset(&xvid_gbl_init, 0,sizeof(xvid_gbl_init_t)); memset(…

C# 数值和字符串之间的相互转换

文章目录方法用例ToString&#xff08;&#xff09;方法Parse&#xff08;&#xff09;方法博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 方法 ToString&#xff08;&#xff09;方法&#xff1a;数值类型的 ToString&#xff08;&#xff…

LeetCode Reverse Words in a String III

原题链接在这里&#xff1a;https://leetcode.com/problems/reverse-words-in-a-string-iii/#/description 题目&#xff1a; Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial wo…

创业感悟:技术兄弟为什么一直没有起来(1)

相信很多做技术的朋友&#xff0c;看到“人脉”两个字&#xff0c;就显得有些敏感&#xff0c;有人甚至产生一种“抵触”的心理。 因为在很多人的心中&#xff0c;会自动的把“人脉”和“关系”关联起来&#xff0c;会把“人脉”与“走后门”&#xff0c;甚至会和“酒桌文化”&…

kali开启ssh

修改 vi /etc/ssh/sshd_config 1.将 permitrootlogin 前面的注释去掉,并且后面改为yes 如果没有则添加permitrootlogin yes 2.将#PasswordAuthentication no的注释去掉&#xff0c;并且将NO修改为YES //kali中默认是yes 3.按Esc , 同时按shift和冒号键 ,输入wq &#xff0c;回…

C# 引用类型与值类型转换-装箱和拆箱

文章目录简介用例装箱拆箱博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 简介 拆箱就是把 “引用” 类型转化为 “值” 类型&#xff1b; 装箱就是把 “值” 类型转化为 “引用” 类型&#xff1b; 装箱与拆箱是数据类型转换的一种特殊应用…