diff --git a/source/chapter6/2fs-implementation.rst b/source/chapter6/2fs-implementation.rst index 7c120dbf..0f81a85a 100644 --- a/source/chapter6/2fs-implementation.rst +++ b/source/chapter6/2fs-implementation.rst @@ -847,7 +847,7 @@ easy-fs 超级块 --------------------------------------- 本层的代码在 ``efs.rs`` 中。 -上面介绍了 easy-fs 的磁盘布局设计以及数据的组织方式 -- 即各类磁盘数据结构。但是它们都是以比较零散的形式分开介绍的,并没有体现出磁盘布局上各个区域是如何划分的。实现 easy-fs 的整体磁盘布局,将各段区域及上面的磁盘数据结构结构整合起来就是简易文件系统 ``EasyFileSystem`` 的职责。它知道每个布局区域所在的位置,磁盘块的分配和回收也需要经过它才能完成,因此某种意义上讲它还可以看成一个磁盘块管理器。 +上面介绍了 easy-fs 的磁盘布局设计以及数据的组织方式 -- 即各类磁盘数据结构。但是它们都是以比较零散的形式分开介绍的,并没有体现出磁盘布局上各个区域是如何划分的。实现 easy-fs 的整体磁盘布局,将各段区域及上面的磁盘数据结构整合起来就是简易文件系统 ``EasyFileSystem`` 的职责。它知道每个布局区域所在的位置,磁盘块的分配和回收也需要经过它才能完成,因此某种意义上讲它还可以看成一个磁盘块管理器。 注意从这一层开始,所有的数据结构就都放在内存上了。 @@ -997,7 +997,7 @@ easy-fs 超级块 } } -inode 和数据块的分配/回收也由 ``EasyFileSystem`` 知 负责: +inode 和数据块的分配/回收也由 ``EasyFileSystem`` 负责: .. code-block:: rust @@ -1550,4 +1550,4 @@ inode 和数据块的分配/回收也由 ``EasyFileSystem`` 知 负责: - 第 39 行获取源码目录中的每个应用的源代码文件并去掉后缀名,收集到向量 ``apps`` 中。 - 第 48 行开始,枚举 ``apps`` 中的每个应用,从放置应用执行程序的目录中找到对应应用的 ELF 文件(这是一个 Linux 上的文件),并将数据读入内存。接着需要在 easy-fs 中创建一个同名文件并将 ELF 数据写入到这个文件中。这个过程相当于将 Linux 上的文件系统中的一个文件复制到我们的 easy-fs 中。 -尽管没有进行任何同步写回磁盘的操作,我们也不用担心块缓存中的修改没有写回磁盘。因为在 ``easy-fs-fuse`` 这个应用正常退出的过程中,块缓存因生命周期结束会被回收,届时如果块缓存的 ``modified`` 标志为 true ,就会将其修改写回磁盘。 \ No newline at end of file +尽管没有进行任何同步写回磁盘的操作,我们也不用担心块缓存中的修改没有写回磁盘。因为在 ``easy-fs-fuse`` 这个应用正常退出的过程中,块缓存因生命周期结束会被回收,届时如果块缓存的 ``modified`` 标志为 true ,就会将其修改写回磁盘。