(73) 一个硬盘可以分四个区,每个区称为一个逻辑系统。每个逻辑分区里有一个文件系统,对应有一个文件根节点。被用来挂载逻辑分区根节点的系统称为根文件系统。以下图片给出文件系统中的概念与含义:
- 真正的 linux 系统上用的文件系统如下:
(74)记录下 c 库函数 memcpy 的复制方向:
(75)接着补充下 linux0.11 里使用的虚拟磁盘,因为软盘中的根文件系统最终加载进了内存中的虚拟磁盘区域:4M~6M 的内存区间作为了虚拟磁盘。要了解文件系统,就绕不开虚拟磁盘的初始化与读写等函数与知识:
(76)接着介绍往虚拟磁盘加载根文件系统的函数:
(77)接着介绍文件系统里的一些概念,超级块:
(78)接着复习下 c 语言中的数组初始化。很多时候我们关系数组的初值是多少,比如对磁盘超级块的初始化:
(79)接着介绍加载文件系统时,先加载文件系统的超级块,遇到的函数:
(80)以及 read_super(),本函数里有对全局 super_block [ ] 数组的初始化:
(81) 接着复习下源码中用到的 汇编指令 BT :
(82)接着介绍操作节点 inode 的函数,这些函数会被别的函数调用:
(83) 以及从数组里获取空节点的函数:
(84a) 以及释放节点的函数:
(84b)以及 iput 调用的 同步 sync_dev 函数:
(85)以及获得硬盘文件系统根节点,根目录的函数:
(86)接着介绍最重要的函数 mount_root ( ) ,它调用了上面的许多函数 :
(87)
谢谢