从头开始构建一个简单的内核空间、磁盘文件系统
这是一个简单的文件系统,用于理解相关内容。这是一个正在开发中的项目。请不要立即使用它。如果你打算学习文件系统,请从头开始。你可以从这个仓库的第一次提交开始,逐步向上推进。源代码文件遵循了 Creative Commons 零版权许可。更多信息请参阅: http://creativecommons.org/publicdomain/zero/1.0/。完整的许可文本请参阅: http://creativecommons.org/publicdomain/zero/1.0/legalcode。
仅支持有限数量的文件系统对象。可以创建文件和目录。实现了 .create 和 .mkdir 支持。可以创建嵌套目录。文件不能超过一个块。尝试操作时将返回 ENOSPC 错误。目录在其数据块中存储子目录的 inode 编号和名称。实现了读取支持。实现了基本写入支持。如果在偏移位置进行写入,可能不会成功。在覆盖整个块时有效。锁定机制尚未得到充分考虑。当前的锁定方案虽然有效,但需要更多的分析和代码审查。可能存在内存泄漏(?)。
初始源代码由 psankar 编写,其他 GitHub 成员贡献了补丁。azat 是第一个贡献者。
特别感谢 Ankit Jain 提供了有趣的对话,帮助我解决了各种知识上的好奇心。
暂无开放 Issues,或尚未同步最近议题。