第一范文网 - 专业文章范例文档资料分享平台

Linux 0.1.1文件系统的源码阅读 - 图文

来源:用户分享 时间:2020-06-21 本文由青山常有雾 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Linux 0.11文件系统的源码阅读总结 1. minix文件系统

对于linux 0.11内核的文件系统的开发,Linus主要参考了Andrew S.Tanenbaum所写的《MINIX操作系统设计与实现》,使用的是其中的1.0版本的MINIX文件系统。而高速缓冲区的工作原理参见M.J.Bach的《UNIX操作系统设计》第三章内容。

通过对源代码的分析,我们可以将minix文件系统分为四个部分,如下如1-1。 ? 高速缓冲区的管理程序。主要实现了对硬盘等块设备进行数据高速存取的函数。 ? 文件系统的底层通用函数。包括文件索引节点的管理、磁盘数据块的分配和释放

以及文件名与i节点的转换算法。

? 有关对文件中的数据进行读写操作的函数。包括字符设备、块设备、管道、常规

文件的读写操作,由read_write.c函数进行总调度。

? 涉及到文件的系统调用接口的实现,这里主要涉及文件的打开、关闭、创建以及

文件目录等系统调用,分布在namei和inode等文件中。

图1-1 文件系统四部分之间关系图

1.1超级块

首先我们了解一下MINIX文件系统的组成,主要包括六部分。对于一个360K软盘,其各部分的分布如下图1-2所示:

图 1-2 建有MINIX文件系统的一个360K软盘中文件系统各部分的布局示意图

注释1:硬盘的一个扇区是512B,而文件系统的数据块正好是两个扇区。

注释2:引导块是计算机自动加电启动时可由ROM BIOS自动读入得执行代码和数据。 注释3:逻辑块一般是数据块的2幂次方倍数。MINIX文件系统的逻辑块和数据块同等大小

对于硬盘块设备,通常会划分几个分区,每个分区所存放的不同的文件系统。硬盘的第一个扇区是主引导扇区,其中存放着硬盘引导程序和分区表信息。分区表中得信息指明了硬盘上每个分区的类型、在硬盘中其实位置参数和结束位置参数以及占用的扇区总数。其结构如下图1-3所示。

图1-3 硬盘设备上的分区和文件系统

对于可以建立不同的多个文件系统的硬盘设备来说,minix文件系统引入超级块进行管理硬盘的文件系统结构信息。其结构如下图1-4所示。其中,s_ninodes表示设备上得i节点总数,s_nzones表示设备上的逻辑块为单位的总逻辑块数。s_imap_blocks和s_zmap_blocks分别表示i节点位图和逻辑块位图所占用的磁盘块数。

s_firstdatazone表示设备上数据区开始处占用的第一个逻辑块块号。s_log_zone_size是使用2为底的对数表示的每个逻辑块包含的磁盘块数。对于MINIX1.0文件系统该值为0,因此其逻辑块的大小就等于磁盘块大小。s_magic是文件系统魔幻数,用以指明文件系统的类型。对于MINIX1.0文件系统,它的魔幻数是0x137f。

图 1-4 MINIX超级块结构

对于超级块来说有两个特殊之处:

? 逻辑位图的最低比特位(位0)闲置不用,并在创建文件系统时会预先置1。 ? I节点位图的最低比特位(位0)闲置不用,并在创建文件系统时会预先置1。

因此i节点位图只能表示8191个i节点的状况。

1.2 i节点

I节点则是用来存放文件的相关信息。对于每个文件或者目录名都有一个i节点,各自i节点结构中存放着对应文件的相关信息。其i节点的结构(32个字节)如图1-6所示。

其中i_mode字段的是用来保存文件的类型和访问权限属性。其15-12用于保存文件类型,为11-9保存执行文件时设置的信息,位8-0用于设置范文权限。如图1-5所示。

I节点有一个特殊之处:

? I节点0是闲置不用的,在文件系统创建时被置1。

图 1-5 i节点属性字段内容

图 1-6 MINIX文件系统1.0版的i节点结构

其中文件所占用得盘上逻辑块号数组结构如下图1-7所示。

图 1-7 i节点的逻辑块(区块)数组的功能

1.3文件类型、属性和目录项

Linux下文件属性的查看可以通过“ls –l”,具体如下图1-8所示:

图 1-8 linux下“ls –l“显示的文件信息

从上图可以看出来,在linux下通常可以分为六种类型的文件:

? 正规文件(‘-’),系统对其不做任何解释,包含有任何长度的字节流。 ? 目录(‘d’)在linux下也是一种文件,文件管理系统会对其内容进行解释。 ? 符号链接(‘s’)用于使用不同的文件名来引用另外一个文件。分为软链接和

硬链接。软链接可以跨文件系统进行链接,删除时不会影响到源文件;而硬链

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育Linux 0.1.1文件系统的源码阅读 - 图文 全文阅读和word下载服务。

Linux 0.1.1文件系统的源码阅读 - 图文 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1091300.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top