Loading... # 存储技术书——在不可靠的硬件上构建可靠的数据家园 # 一、概述 ## 1. 简介 ### A. 是什么 存储技术书是一本从结绳记事到 Flash 物理、从文件系统理论到动手实现的存储技术书,包含 KnotFS——一个教学级日志结构化嵌入式文件系统的完整实现(纯 C,约 840 行代码)。 ### B. 为什么学 - 理解存储的本质:从硬件物理特性到软件抽象层 - 掌握文件系统设计原理:思想实验、FAT、日志结构化 - 学习 Flash 存储特性:磨损均衡、掉电安全 - 动手实现生产级文件系统:从零构建 KnotFS ### C. 学完能做什么 - 理解 Flash 存储的物理特性和限制 - 设计和实现嵌入式文件系统 - 分析现有文件系统源码(如 LittleFS) - 在实际项目中集成自定义存储解决方案 ## 2. 前置知识 ### A. 必备技能 - C 语言编程能力 - 基本的计算机组成原理知识 - Linux 基本操作 ### B. 推荐知识 - 嵌入式系统开发经验 - 操作系统文件系统基础概念 # 二、书籍结构 ## 1. 全书概览 全书共 39 节,分为五章: ## 2. 章节内容 ### A. 第一章:存储的本质(5 节) 从结绳记事到 Flash 存储的历史演进,探讨存储的三大原罪: - 磨损:存储介质的物理损耗 - 中断:供电中断导致的数据丢失 - 噪音:读写过程中的信号干扰 ### B. 第二章:Flash 物理世界(5 节) 深入 Flash 存储的物理层: - 浮栅晶体管工作原理 - NOR Flash 与 NAND Flash 区别 - SLC、MLC、TLC 存储单元特性 - 磨损的物理根源与寿命限制 ### C. 第三章:文件系统理论(8 节) 文件系统设计核心思想: - 思想实验:如何设计可靠存储 - FAT 文件系统解析 - 日志结构化文件系统原理 - 磨损均衡算法 - 掉电安全机制 ### D. 第四章:LittleFS 源码解析(6 节) 深入开源嵌入式文件系统: - Metadata Pair 机制 - CTZ Skip-List 数据结构 - Block Allocator 策略 - 实际源码走读 ### E. 第五章:从零构建 KnotFS(15 节) 完整实现教学级文件系统: - 系统架构设计 - 核心数据结构 - 读写操作实现 - 磨损均衡实现 - 掉电恢复机制 - 生产集成思考 # 三、KnotFS 文件系统 ## 1. 系统架构 ```mermaid graph TB subgraph 应用层 APP[应用程序] end subgraph KnotFS层 API[KnotFS API] FS[文件系统核心] LOG[日志管理器] WA[磨损均衡] end subgraph 存储层 DRV[Flash驱动] NOR[NOR Flash] NAND[NAND Flash] end APP --> API API --> FS FS --> LOG FS --> WA LOG --> DRV WA --> DRV DRV --> NOR DRV --> NAND ```  ## 2. 核心特性 - 日志结构化设计 - 磨损均衡算法 - 掉电安全保证 - 异步操作支持 - 纯 C 实现,易于移植 ## 3. 技术指标 - 代码量:约 840 行 C 代码 - 适用场景:嵌入式系统 - 存储介质:NOR/NAND Flash - 接口:标准文件操作 API # 四、快速开始 ## 1. 环境准备 需要具备: - GCC 或其他 C 编译器 - Make 工具 - Linux/Unix 环境 ## 2. 编译运行 ```bash cd knotfs make && make test ``` 编译成功后,可以运行测试程序验证功能。 ## 3. 测试验证 测试程序会验证: - 文件创建与删除 - 数据读写一致性 - 磨损均衡效果 - 掉电恢复能力 # 五、技术亮点 ## 1. 教学级设计 - 代码结构清晰,注释详细 - 从简单到复杂的渐进式实现 - 每个设计决策都有明确理由 ## 2. 生产级思考 虽然定位为教学项目,但考虑了实际生产环境的需求: - 内存占用优化 - 错误处理完善 - 性能考虑周全 ## 3. 完整的配套资源 - 理论基础扎实 - 源码解析详细 - 实战案例丰富 # 六、姊妹篇系列 本书是"汽车电子七部曲"系列中的存储之卷,另外五部已发布: ## 1. 从沙子到车辙——一个工程师的理解 从图灵机到 CAN 总线,从半导体物理到 AUTOSAR,一部为汽车电子工程师写的全景入门。 ## 2. PTP 技术书——从思想实验到协议实现 从时间同步的思想实验开始,到 PTP 协议实现,逐机制拆解 + 动手实践。 ## 3. HSM 技术书——从思想实验到安全基石 从岩画密码学到硬件安全模块,完整覆盖车载 HSM 的技术链路。 ## 4. UDS 技术书——从望闻问切到 UDS 协议实现 一本从诊断元问题出发,直通 ISO 14229 协议规范与 AUTOSAR DCM 源码、再到亲手实现 UDS 栈的技术书。 ## 5. 功能安全——ISO 26262 分析与代码实现 以免疫系统为叙事线索的功能安全技术书。兼顾 ISO 26262 标准分析、源码拆解与动手实现。 # 七、适用人群 ## 1. 嵌入式工程师 需要理解存储底层,优化系统性能 ## 2. 文件系统开发者 学习现有设计思路,提升设计能力 ## 3. 存储技术爱好者 深入了解 Flash 物理特性和文件系统原理 ## 4. 汽车电子工程师 作为"汽车电子七部曲"的一部分,构建完整知识体系 # 八、学习建议 ## 1. 学习路径 - 先读第一、二章,建立存储和 Flash 的物理认知 - 再读第三章,理解文件系统理论 - 然后读第四章,学习成熟实现 LittleFS - 最后读第五章,跟随教程实现 KnotFS ## 2. 实践建议 - 每读完一节,动手运行相关代码 - 对理论部分进行思想实验 - 尝试修改 KnotFS 源码,观察效果 ## 3. 进阶方向 - 研究其他文件系统(如 FAT32、ext4) - 学习更高级的存储技术(如 SSD FTL) - 参与开源存储项目 # 九、许可证信息 - 书籍内容:CC BY-NC-ND 4.0(非商业性使用) - KnotFS 源码:MIT License *** ## 参考资料 1. [存储技术书 GitHub 仓库](https://github.com/Lularible/storage-book) 2. [在线阅读本书](https://web-l.github.io/lularible-books/storage-book/index.html) 最后修改:2026 年 07 月 21 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏