- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux011文件系统的实现
Linux 0.11 文件系统的实现
第一节. 概述
Linux 0.11 只支持一种文件系统,那就是Minux 1.0 文件系统。这是一个与Minix 操作系统相兼容,并且与
Unix 文件系统较为接近的索引文件系统。
第二节. 静态结构
Minux 1.0 文件系统一共由六个部分组成
1. 引导块,俗称MBR ,是磁盘的第一个盘块,用来标记并在系统开机时BIOS 自检完毕后,被自动读入到
内存0x7c00 位置运行。它的主要任务是提供磁盘分区信息和最早的操作系统引导工作。它的大小只有
0x0200 字节(在Minix 1.0 文件系统中,它实际占1 个盘块,大小1K ),并且在第0x01FE 的位置
必须填充0x55AA 来告之BIOS 该磁盘可以被引导。引导块的结构是由硬件规定的,现在普遍使用的引
导块结构是IBM 兼容PC 采用的结构。
2. 超级块,提供磁盘上的文件系统结构信息。例如文件系统的幻数,最大文件长度,inode 结点数和逻辑
块数等等。超级块既静态驻扎在磁盘第二个盘块上,又会在磁盘被挂载时驻扎进内存(所谓挂载,主要任
务就是载入磁盘的超级块和inode 位图和逻辑块位图)。不过在内存中的超级块结构更加庞大,增加了
很多运行时的参数,例如于inode 和逻辑块的位图在高速缓冲区的位置(在Minix1.0 文件系统中高速
缓冲区中能容纳8 个inode 位图和8 个逻辑块位图),设备号,磁盘挂载到的inode 结点等信息。
Linux 0.11 在内存中为超级块开辟的空间只能容纳8 个超级块(定义在include/linux/fs.h ),也就
1 19
是说Linux 0.11 只支持8 个磁盘同时挂载。
3. inode 位图。所谓inode ,是一种记录文件或目录所有源信息的数据结构,驻扎在磁盘和内存中,它记
录的信息有文件类型(宏定义在include/const.h 内),文件权限,文件拥有主和拥有组,最近修改时
间,被硬链接的次数,以及最重要的,文件占用的所有逻辑块的编号,在Minix 1.0 文件系统中一个文
件最多占用7+512+512×512 个逻辑块,如果是在内存中,它还会记录有等待该inode 解锁的进程链
表,所在的设备号,引用计数,是否锁定,是否是脏数据块(所谓脏数据块,是指当inode 被载入到内
存后被修改过,但修改后的inode 还没有写回磁盘的状态),是否安装其他文件系统,文件读写指针,
是否是最新内容。它的标识符是一个数字,通常被存为i 结点号。(你也许会很惊讶,inode 从不记录文
件名和文件路径,这得益于在索引文件系统中,硬链接的存在,使得一个文件可能拥有多个文件名和多个
路径。因此,文件名由文件所在目录决定,文件路径则在文件打开时根据当前用户的所在路径)所谓
inode 位图,正是标记哪些i 结点号已经被使用过,哪些还没有被使用过的一张位图表。0 号inode 不
被使用。
4. 逻辑块位图。与inode 位图类似。它记录磁盘哪些逻辑块已经被使用过,哪些没有。在Minix 1.0 文件
系统中,逻辑块大小与盘块大小相同,都是1K,但是逻辑块是从文件系统第一个数据区的盘块开始编号
的。
5. 数据区,占满除上述区域以外的磁盘所有区域。
第三节. 高速缓冲区
讲Minix 1.0 文件系统,就必须先从高速缓冲区讲起。这是因为高速缓冲区是内存和磁盘之间进行数据传输的桥
梁。在Linux 0.11 系统中,绝不可能实现内存与磁盘的直接数据交互,因为没有这些代码。内存与磁盘都只和
高速缓冲区打交道,即使是磁盘上的超级块,位图等特殊块都不例外,因此,不能理解高速缓冲区就不可能理解
文件系统。
在Linux 0.11 中,高速缓冲区位于内核和主内存之间,并且至少拥有从内核代码到内存640K 之间的区域。如
果内存较大,则还会从内存1M 的区域开始扩张。如果内存超过12MB,缓冲区末端位置在4M ,否则如果超过
6MB ,缓冲区末端位置在2MB。
高速缓冲区虽然位于内存,但不使用段页式管理,而是用和盘块,逻辑块大小相同(1K )的缓冲块管理。并在高
速缓冲区前部创建缓冲头(buffer_hea
您可能关注的文档
- invitation邀请函-aquatechtrade.pdf
- internationalinstituteforcarbon-neutralenergyresearch水素.pdf
- itm创建情境situation的基本准则-ibm.pdf
- imtainsanggoubaychina桑沟湾多营养层次综合养殖模式.ppt
- jaegerlecoultreuk6783jaegerlecoultre排名萧邦手表女款价格_萧.doc
- ja全厚连情报.pdf
- jka多阀控制器-北京康洁之晨水处理技术有限公司.pdf
- k.means融合fcm算法聚类研究-evcarexpocom.pdf
- jtgf42008公路沥青路面再生技术规范-绍兴公路管理局.pdf
- kennethebehringdiscoverytrip-环球自然日.pdf
- lexium05cbook-工业电气分销网.pdf
- linkersoft产品介绍-上海凌柯计算机系统有限公司欢迎您的访问!.ppt
- linux系统下can总线通信的设计及实现designandimplementation.pdf
- listening听speaking说reading读writing写-readingchinese.pdf
- listen函式设定socket等待外部连线.ppt
- ljd-c接地引下线导通测试仪-珠海立翔科技有限公司.pdf
- llsta和elm算法在转子故障诊断中的应用-自动化仪表.pdf
- lm386中文资料pdf.pdf
- lm290umw友台半导体.pdf
- llc一型串并联谐振变换器小信号电路模型-华南师范大学学报.pdf
文档评论(0)