正如标题所暗示的,我无法弄清楚 Unix 内核如何将逻辑文件偏移量转换为逻辑块号,然后从 i-node 检索它。
作为参考,我要求更详细地解释 Maurice J. Bach 在“UNIX 操作系统的设计”中首先描述的“bmap”算法。
谢谢..
正如标题所暗示的,我无法弄清楚 Unix 内核如何将逻辑文件偏移量转换为逻辑块号,然后从 i-node 检索它。
作为参考,我要求更详细地解释 Maurice J. Bach 在“UNIX 操作系统的设计”中首先描述的“bmap”算法。
谢谢..
不幸的是,我无法帮助您了解 UNIX 的原始实现。但是将高级目录层次结构映射到磁盘表示,以及将裸块设备上的范围分配给文件的工作通常落在一个或多个文件系统上。POSIX 规范对文件系统提出了一些高级别的要求,但实际上最终在磁盘上的内容完全特定于每个文件系统。
ext2 文件系统相对简单,但对它的详细解释仍然占据了一本书的一整章——其中一本书是Daniel P. Bovet 和 Marco Cesati所著的《 Understanding the Linux Kernel 》。
Linux 内核本身附带了更简短、更高级的介绍性文本,也可以在此处找到。该目录还包含有关其他 Linux 文件系统的文档以及“VFS”层,它处理所有或大多数文件系统共有的许多更高级别的方面。Wikipedia 的 ext2 文章也对它进行了高水平的介绍。它还提供了一些指向更详细的在线描述的链接。
不幸的是,这不是一个适合 SO 答案的主题,但我希望上述指示有助于您入门。