超级块 i节点 数据块 目录块 间接块
来源:互联网 发布:ubuntu mp3播放器 编辑:程序博客网 时间:2024/05/01 13:17
文件系统是用来存储文件内容、文件属性、和目录。这些类型的数据如何存储在磁盘块上的呢?unix/linux使用了一个简单的方法。如图所示.
它将磁盘块分为三个部分:
1)
2)
3)
二、创建一个文件的过程
我们现在知道文件的内容和属性是分开存放的,那么又是如何管理它们的呢。现在我们以创建一个文件为例来讲解。在命令行输入命令:
$ who >userlist
当完成这个命令时。文件系统中增加了一个存放命令who输出内容的新文件,那么这整个过程到底是怎么回事呢?
文件有属性和内容,内核将文件内容存放在数据区,文件属性存放在i-节点,文件名存放在目录。图2显示了创建一个文件的例子,假如这个新文件要3个存储块来存放内容。
四个步骤如下:
1)
2)
3)
4)
三、创建一个目录的过程
前面说了创建一个文件的大概过程,那么创建一个目录时又是怎么回事呢?
我们知道,目录其实也是文件,只是它的内容比较特殊:包含文件名字列表,列表一般包含两个部分:i-节点号和文件名。所以它的创建过程和文件创建过程一样,只是第二步写的内容不同。一个目录创建时至少包括两个链接:“.”,“..”
我们可以通过系统命令来查看目录的内容:
[root@localhost ~]# ls -i1a/
1310721backup
我们发现“.”和“..”都指向i-节点2.实际上当用mkfs创建一个文件系统时,mkfs会将根目录的父目录指向自己
四、理解链接
五、如果有大文件如何实现
文件内容的分配情况是必须记录在i-节点的磁盘序号列表里的。但是i-节点只包含一个最多含有13个项的分配链表,如果分配的数据块超过13个块时怎么办?
Linux用到一个间接块来解决此问题.比如我们要记录14个块的编号,可以把前面10个记录在i-节点的磁盘序号列表里。另外4个编号放在一个数据块中。在i-节点的第11项里记录存放编号的数据块的指针,通过这个指针就能找到余下的4个数据块的编号,这个用来存放编号的数据就叫间接块。道理就和某些货物放在架上而把剩下的放在仓库里,并打个标签记下在仓库中具体位置的编号一样。
但当间接块也存满了时我们还可以再开第二个间接块,甚至3、4、5。。。更多额外块。但内核并不会把这些块记录在文件的i-节点的第12、13项里。而是开辟一个新的块的来存放这些间接块的列表,并在i-节点的第12项存放这一新额外块的编号。这存放着那个存储着第2、3、4、及后继额外块的编号的块的编号,这个块称为二级间接块.
同理当二级间接块饱和时还可以开辟第三级。
- 超级块 i节点 数据块 目录块 间接块
- 超级块 i节点 数据块 目录块 间接块
- 超级块 i节点 数据块 目录块 间接块
- 超级块 i节点 数据块 目录块 间接块(转)
- 引导块,超级快,i节点表
- 超级块
- 块
- 块
- 块
- 超级块与索引节点
- 超级块与索引节点
- 目录、目录项、超级块、索引节点、文件
- ext2读取并产生间接块和数据块
- Linux文件系统分析之二(超级块,i节点位图和逻辑块位图)
- 数据块
- 数据块
- 块数据I/O操作
- linux内核注释v0.11-超级块、inode索引节点和磁盘块(逻辑块)
- hdu 1196
- Oracle数据块实现原理深入解读
- xmame 模拟器分析0
- 简易的上升式广告。
- 字符串
- 超级块 i节点 数据块 目录块 间接块
- Android4.1手写笔输入、悬浮事件分析
- ssh连接linux
- Python一行读入多个整数/字符串
- Cocos2d-x之图片编辑器TexturePacker
- 产品和商品的区别 sku spu的区别 什么事关键属性?什么事商品属性?
- Metasploit渗透学习日记四
- scanf, printf使用
- probe函数何时被调用