从头设计一个简单的文件系统分两部分:设计,和实现。 设计方面你可以参考一下《Practical File System Design》(这本书以BeOS的文件系统作为例子),《UNIX Filesystems: Evolution, Design, and Implementation》(比较老但是好在文件系统的变化不是特别大),以较简单的文件系统如FAT入手学习设计一个文件系统要考虑哪些方面。 实现方面,你需要首先决定在哪个OS上实现你的文件系统,Windows,还是Linux。视OS不同,内核编程、调试的基础知识必不可少,再结合一些开源项目,仔细分析学习代码。 [解决办法] Windows上,《Inside the Windows NT File System》和《Windows NT File System Internals》也是必不可少的;Linux上,因为都是开源的,以开源文档和代码为主要学习材料吧。