Linux kernel 分析之二十三:文件系统

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

通过对源代码的分析,我们可以将minix文件系统分为四个部分,如下如1-1

l 高速缓冲区的管理程序。主要实现了对硬盘等块设备进行数据高速存取的函数。

l 文件系统的底层通用函数。包括文件索引节点的管理、磁盘数据块的分配和释放以及文件名与i节点的转换算法。

l 有关对文件中的数据进行读写操作的函数。包括字符设备、块设备、管道、常规文件的读写操作,由read_write.c函数进行总调度。

l 涉及到文件的系统调用接口的实现,这里主要涉及文件的打开、关闭、创建以及文件目录等系统调用,分布在nameiinode等文件中。

 

 

图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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Professional Linux Kernel Architecture》是一本讲解Linux内核实现原理和架构的经典著作。本书对Linux内核的各个方面进行了详细的介绍,包括进程管理、内存管理、文件系统、设备驱动程序等。 该书以实现角度讲解了Linux内核的基本结构和组成部分,旨在帮助读者更好地理解Linux内核的工作原理和实现方式。作者深入浅出地讲解了Linux内核的组成部分,如进程和系统调用,文件系统实现,虚拟内存管理等,让读者对Linux内核实现有更深刻的认识。 该书的内容十分丰富,涵盖了很多关键的主题和概念。作者对每一章节都进行了详细的讲解,给出了大量的代码示例和实际应用案例,可以让读者更好地掌握Linux内核的实现原理和内部运作机制。 总之,《Professional Linux Kernel Architecture》是一本值得阅读的优秀著作,对于那些想深入了解Linux内核实现原理和架构的开发人员和研究人员来说,这本书无疑是不可或缺的一本参考书。 ### 回答2: 《Professional Linux Kernel Architecture》是一本关于 Linux 内核架构的专业书籍。这本书是为那些想要理解 Linux 内核如何工作的程序员和系统管理员设计的。 这本书的主要重点是关于 Linux 内核架构如何工作的细节和原理。书中作者对 Linux 内核进行了全面的分析,并讨论了 Linux 内核的各个组件和功能。这些组件包括进程管理、内存管理、文件系统解析和网络协议栈等。 书中还包括有针对 Linux 内核开发的示例代码和实用工具,以及针对 Linux 内核调试和性能优化的建议。此外,书中还探讨了 Linux 内核的未来发展方向和趋势,以帮助读者更好地理解这个系统。 总而言之,《Professional Linux Kernel Architecture》是一本深入了解 Linux 内核的重要读物,它将帮助程序员和系统管理员理解和运用 Linux 内核,从而提高他们的技能和能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值