Unix文件系统基本结构
来源:互联网 发布:q宠大乐斗代玩软件 编辑:程序博客网 时间:2024/05/16 17:41
一个磁盘分成一个或多个分区,每个分区可以包含一个文件系统
一个分区分为三部分:
+ 超级块, 文件系统中第一块被称为超级块。这个块存放文件系统本身的结构信息,比如每个区域的大小,未被使用的磁盘块的信息。
+ i节点, 超级块的下一个部分就是i节点表,文件系统中的每个文件在该表中都对应一个i节点。i节点是固定长度的记录项,它包含有关文件的大部分信息。Linux文件系统使用 索引节点i 来记录文件信息,索引节点是一个结构,用固定长度,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
+ 数据区, 文件的内容保存在这个区域上,磁盘上所有块的大小都一样,如果文件包含了超过一个块的内容,则文件内容会存放在多个磁盘块中,并把磁盘块的分配情况记录在文件的i节点中的磁盘序列表中。
仔细观察一个柱面组的i节点和数据块部分,可以看到下图所示情况
一个文件系统维护了一个索引节点的数组 即为目录项,目录项中的每一项包括文件索引节点i的节点号和文件名,所以目录只是将文件的名称和它的索引节点号结合在一起的一张表。
对于一个文件来说有唯一的索引节点与之对应,而一个索引节点却可以有多个文件名与之对应,因此磁盘上的同一个文件可以通过不同的路径去访问它。
在上图中有两个目录项指向同一i节点。每个i节点有一个链接计数器,其值是指向该i节点的目录项数。只有当链接计数器减少为0时,才可删除该文件。这也就是为什么解除对一个文件的链接操作并不总是意味着,释放该文件占用的磁盘块的原因。而且删除一个目录项的函数被称为unlink而不是delete的原因。
每个文件系统都对它们的i节点进行编号,因此目录项中的i节点指向同一文件系统的i节点,不能使一个目录项指向另一个文件系统的i节点,因此硬连接不能跨越文件系统。
当在不更换文件系统情况下为一个文件更名时,该文件的实际内容并未移动,只需构造一个指向现有i节点的新目录项,并解除与旧目录项的链接。这就是mv命令的通常操作方式。
介绍完文件系统之后,下边了解一下符号链接(软链接)和硬链接的区别
可以用ln命令对一个已经存在的文件建立一个新的连接,而不复制文件的内容。连接有软连接和硬连接之分,软连接又叫符号连接。
符号链接是指向一个文件的间接指针,硬链接直接指向文件的i节点。
硬连接 软连接
硬链接指向文件的i节点 它的数据是它所连接的文件的路径名,是指向一个文件的间接指针
目录不能有硬连接,但超级用户可以 目录也适用
不能跨越文件系统 可以跨越文件系统
文件在磁盘中只有一个拷贝 也是只有一份拷贝
索引节点的引用为0时才可以删除文件 可以删除原有文件保留连接文件,没有防误删功能
可以防止误删除
- Unix文件系统基本结构
- UNIX 文件系统基本操作
- UNIX 文件系统基本操作
- UNIX 文件系统基本操作
- UNIX 文件系统基本操作
- UNIX 文件系统基本操作
- UNIX 文件系统基本操作
- 第三节 UNIX文件系统结构
- unix/linux文件系统结构标准
- unix/linux文件系统层次结构
- Unix文件系统的层次结构
- Linux文件系统基本结构
- Linux文件系统基本结构
- Linux文件系统基本结构
- UNIX系统基本结构
- 熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作
- 2.Linux文件系统基本结构
- 04-Linux-文件系统基本结构
- 《剑指Offer》学习笔记--面试题18:树的子结构
- JUnit入门
- JDK在MAC OS X下的路径设置
- 搭建SonarQube分析Objective-C代码遇到的问题
- LTE-层映射和预编码
- Unix文件系统基本结构
- 学术论文评价指标
- 第四章
- java 调用webservice的各种方法总结
- eclipse部署,在tomcat中找不到eclipse发布的项目。eclipse更改项目发布路径
- (MediaPlayer和SoundPool)Android中的音频播放
- Oracle脚本编写“青铜”守则
- Android 结合实例学会AsyncTask的用法
- IOS常用库整理