Q先生的世界

面朝大海,春暖花开

经典系统排障|FUSE 调试与排障:getattr 风暴、缓存、并发、权限与 macOS/Linux 差异

FUSE 真正难的地方通常不是把 demo 跑起来,而是为什么它跑起来以后和你想得完全不一样

围绕 Go FUSE 文件系统的真实调试问题,系统拆解 getattr 风暴、缓存语义、并发访问、权限模型以及 macOS/Linux 差异,并给出可执行的排障思路。

经典系统实践|把 Go 文件系统接到 FUSE:真正挂载起来,并走通 ls/cat/touch 全链路

当 toy filesystem 真能被 mount 以后,inode、目录项和路径查找就不再只是你代码里的概念了

在最小 Go 文件系统和 WAL 续篇的基础上,继续通过 FUSE 把文件系统真正挂载起来,讲清 syscall、FUSE 回调和本地存储引擎之间的完整链路,并演示 ls、cat、touch 的工作流。

经典系统实践|给 Go 文件系统加上最小 WAL / Journal:事务边界、Redo Log 与崩溃恢复

一旦一个逻辑操作要修改多个物理位置,日志几乎就是迟早的事

在前一篇最小 Go 文件系统的基础上,继续实现一版最小可理解 WAL / journal,讲清事务边界、日志格式、commit 语义、恢复流程与 Go 代码骨架。

经典系统实践|用 Go 实现一个最小可理解文件系统:Superblock、inode、Bitmap 与目录树

不要一上来就盯 ext4,先自己写一个能 mount 到脑子里的最小文件系统

从对象存储研发工程师视角,用 Go 实现一个最小可理解文件系统,系统讲清 superblock、inode、bitmap、directory、path walk、write path 与崩溃一致性。

经典系统深度解析|从对象存储研发工程师视角看文件系统:VFS、Page Cache、Journal 与崩溃一致性

对象存储并没有绕开文件系统,它只是把最关键的语义压力都压到了文件系统上

从对象存储研发工程师的视角,系统性拆解 Linux 文件系统中的 VFS、inode、page cache、extent、journal、fsync、rename 与崩溃一致性,并给出源码路径与伪代码。