Linux 学习笔记 2016.03.22
花了两天时间才对LINUX的文件系统有了点稍微的理解,今天就把自己的浅薄理解写下来吧,希望不要被大牛看到了嘲笑我啊。
首先必须得贴出一些连接了,我的感悟就是从这些文章里面得到的
http://baike.baidu.com/link?url=hPkfyLC5jM3QEJVv8GJRisej-APWvZ_5NDosSqgmHYn0QQEZNqXYh_77sA5fesQurMkHuEST0G2Q_BFefXbima
http://c.biancheng.net/cpp/html/2780.html
http://zhidao.baidu.com/link?url=9_m6kxrozLdoAYN5sBy0nNhRWJKXdW9s6DzFkny2ll4qoOghf68pK5HkXjZoMNGjtZzb0B04zvijGkENpZnJLN6q6Nt-ICCESvULy37sZsG
先说啥事文件系统吧,我的理解就是文件系统就是操作系统为了有效的操作文件,存储文件,索引文件等创造的一套方法和规定,这一整套方法和规定,再加上符合这些规定的硬件实体合起来叫文件系统。
2、现实中有支持各种规格的文件系统,操作系统为了兼容这些文件系统,并且向用户屏蔽这些不同系统之间的差异,创造了一套固定的规则,叫做虚拟文件系统,用户在操作各种制式的文件时,不用管真正硬件的存储细节,全都按照虚拟文件系统的规则去操作就行了,各个实际的文件系统为了适应这套虚拟的规则,需要通过定义接口节点和操作函数来作为桥梁,。
3、虚拟系统的规则和 ext2,ext3,ext4等文件系统兼容,这几种的文件存储方法是每个目录文件实体都保存着其目录下面各个文件名字和其对应的inode节点号,这就是目录文件的特殊性,它里面的数据形式是一定的,就存着文件夹下面的各文件和文件名的一一对应的表格,每个目录中有两个隐藏文件,就是自己本身(目录也是文件)的节点号,和他的父目录的节点号,注意,所有文件实体都是存在硬盘的数据区的。
4、虚拟文件系统规定了硬盘要有一个超级块,里面存着本硬盘的各个信息,如分块数目啊,inode节点个数啊,不说了,其实都在上面的第二个链接里面,忘了的时候记得去看看哈。
5、文件系统挂载,所有文件操作都需要在某个特定的文件系统下进行,至于是在哪个文件系统下进行的,得看当前文件所在的目录(或者其上一级的任意目录)所挂载的文件系统时什么,在哪个文件系统下进行文件操作会调用该文件系统对应的文件操作方法。一般来说一个分区或者硬件只挂载一个位置,而一个位置也只能挂载一个文件系统,再次挂载其他的会覆盖掉当前的,在其子目录下面进行挂载的话,其子目录往下都是新的,但是其和其子目录平行或者在其上面登记的还是原来的文件系统。
6、根路径在安装系统的时候把系统所在硬盘的一个分区挂载到了跟路径下,所以在其下面进行的文件操作在默认情况下是在根目录所在的文件系统下操作的。
7、不同的是,根目录下面的boot是有独立的分区挂载到其下面的。,还有swap也是这样。
8、文件系统中的超级块啊,inode列表啊啥的的作用区间仅仅是一个文件系统,不能夸系统去,inode列表也是很占空间的,需要存的节点与实际数据块的对应关系的数量巨大啊