<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Filesystem on Q先生的世界</title>
		<link>https://qianzhou.tech/tags/filesystem/</link>
		<description>Recent content in Filesystem on Q先生的世界</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Sun, 14 Apr 2024 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://qianzhou.tech/tags/filesystem/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>经典系统排障｜FUSE 调试与排障：getattr 风暴、缓存、并发、权限与 macOS/Linux 差异</title>
				<link>https://qianzhou.tech/2024/04/14/fuse-debugging-and-troubleshooting/</link>
				<pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate>
				<guid>https://qianzhou.tech/2024/04/14/fuse-debugging-and-troubleshooting/</guid>
				<description>&lt;h1 id=&#34;经典系统排障fuse-调试与排障getattr-风暴缓存并发权限与-macoslinux-差异&#34;&gt;经典系统排障｜FUSE 调试与排障：getattr 风暴、缓存、并发、权限与 macOS/Linux 差异&lt;/h1&gt;&#xA;&lt;p&gt;上一篇文章，我们已经把最小 Go 文件系统接到了 FUSE 上，并真正走通了 &lt;code&gt;ls&lt;/code&gt;、&lt;code&gt;cat&lt;/code&gt;、&lt;code&gt;touch&lt;/code&gt; 这些最基本的链路。&lt;/p&gt;</description>
			</item>
			<item>
				<title>经典系统实践｜把 Go 文件系统接到 FUSE：真正挂载起来，并走通 ls/cat/touch 全链路</title>
				<link>https://qianzhou.tech/2024/04/07/mount-go-filesystem-with-fuse/</link>
				<pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate>
				<guid>https://qianzhou.tech/2024/04/07/mount-go-filesystem-with-fuse/</guid>
				<description>&lt;h1 id=&#34;经典系统实践把-go-文件系统接到-fuse真正挂载起来并走通-lscattouch-全链路&#34;&gt;经典系统实践｜把 Go 文件系统接到 FUSE：真正挂载起来，并走通 ls/cat/touch 全链路&lt;/h1&gt;&#xA;&lt;p&gt;前面两篇，我们已经把这个最小 Go 文件系统做到了两个层次：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;先实现了最小 on-disk filesystem，包含 superblock、inode、bitmap、directory entry 和 path walk&lt;/li&gt;&#xA;&lt;li&gt;再补了一层最小 WAL / journal，让它在崩溃恢复语义上不再完全裸奔&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;到这里，其实你已经有了一个“能工作的本地文件系统引擎”。&lt;/p&gt;</description>
			</item>
			<item>
				<title>经典系统实践｜给 Go 文件系统加上最小 WAL / Journal：事务边界、Redo Log 与崩溃恢复</title>
				<link>https://qianzhou.tech/2024/03/31/add-wal-to-go-filesystem/</link>
				<pubDate>Sun, 31 Mar 2024 00:00:00 +0000</pubDate>
				<guid>https://qianzhou.tech/2024/03/31/add-wal-to-go-filesystem/</guid>
				<description>&lt;h1 id=&#34;经典系统实践给-go-文件系统加上最小-wal--journal事务边界redo-log-与崩溃恢复&#34;&gt;经典系统实践｜给 Go 文件系统加上最小 WAL / Journal：事务边界、Redo Log 与崩溃恢复&lt;/h1&gt;&#xA;&lt;p&gt;上一篇文章，我们已经用 Go 搭了一个最小可理解文件系统骨架。&lt;/p&gt;&#xA;&lt;p&gt;它已经有了：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;superblock&lt;/li&gt;&#xA;&lt;li&gt;inode table&lt;/li&gt;&#xA;&lt;li&gt;block bitmap&lt;/li&gt;&#xA;&lt;li&gt;data blocks&lt;/li&gt;&#xA;&lt;li&gt;目录项&lt;/li&gt;&#xA;&lt;li&gt;路径查找&lt;/li&gt;&#xA;&lt;li&gt;最朴素的 &lt;code&gt;create/read/write/delete&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;如果只在正常路径上跑，这个 toy filesystem 已经能说明很多问题。&lt;/p&gt;</description>
			</item>
			<item>
				<title>经典系统实践｜用 Go 实现一个最小可理解文件系统：Superblock、inode、Bitmap 与目录树</title>
				<link>https://qianzhou.tech/2024/03/24/build-a-filesystem-in-go/</link>
				<pubDate>Sun, 24 Mar 2024 00:00:00 +0000</pubDate>
				<guid>https://qianzhou.tech/2024/03/24/build-a-filesystem-in-go/</guid>
				<description>&lt;h1 id=&#34;经典系统实践用-go-实现一个最小可理解文件系统superblockinodebitmap-与目录树&#34;&gt;经典系统实践｜用 Go 实现一个最小可理解文件系统：Superblock、inode、Bitmap 与目录树&lt;/h1&gt;&#xA;&lt;p&gt;上一篇文章，我们从对象存储研发工程师的角度，把文件系统里最容易在生产中踩坑的几个语义拆了一遍：&lt;/p&gt;</description>
			</item>
			<item>
				<title>经典系统深度解析｜从对象存储研发工程师视角看文件系统：VFS、Page Cache、Journal 与崩溃一致性</title>
				<link>https://qianzhou.tech/2024/03/17/filesystem-from-object-storage-perspective/</link>
				<pubDate>Sun, 17 Mar 2024 00:00:00 +0000</pubDate>
				<guid>https://qianzhou.tech/2024/03/17/filesystem-from-object-storage-perspective/</guid>
				<description>&lt;h1 id=&#34;经典系统深度解析从对象存储研发工程师视角看文件系统vfspage-cachejournal-与崩溃一致性&#34;&gt;经典系统深度解析｜从对象存储研发工程师视角看文件系统：VFS、Page Cache、Journal 与崩溃一致性&lt;/h1&gt;&#xA;&lt;p&gt;很多工程师做对象存储久了，会逐渐形成一种错觉：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;我们做的是 object，不是 file&lt;/li&gt;&#xA;&lt;li&gt;底层文件系统只是一个“本地持久化容器”&lt;/li&gt;&#xA;&lt;li&gt;真正复杂的是副本、纠删码、数据分片、元数据服务和一致性协议&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;这几个判断都不能说错，但它们很容易让人忽略一个事实：&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
