正如标题所示,我无法弄清楚Unix内核如何将逻辑文件偏移转换为逻辑块号,然后从i节点检索它。
作为参考,我要求莫里斯·巴赫(Maurice J. Bach)在“UNIX操作系统的设计”中首先描述的“bmap”算法的更详细解释。
谢谢..
答案 0 :(得分:4)
我遗憾的是无法帮助你原来实现UNIX;但是将高级目录层次结构映射到磁盘表示,以及将裸块设备上的范围分配给文件的工作通常属于一个或多个文件系统。 POSIX规范对文件系统提出了一些高级要求,但实际上最终在磁盘上的内容完全针对每个文件系统。
ext2文件系统比较简单,但对它的详细解释仍然填满了整本书的一章 - 其中一本书是Daniel P. Bovet和Marco Cesati的 Understanding the Linux Kernel 。
Linux内核本身和can also be found here附带了一个更简短,更高级别的介绍性文本。该目录还包含documentation on other Linux file systems以及“VFS”层,它处理许多高级方面,这些方面对于所有或大多数文件系统是通用的。 Wikipedia's ext2 article也涵盖了高层次。它还提供了一些指向更详细的在线描述的链接。
遗憾的是,这不是一个适合SO答案的话题,但我希望上面的内容可以帮助你开始。