Hello World
“We are such stuff as dreams are made on, and our little life is rounded with a sleep.”
“我们不过是由梦的材料做成的,我们短暂的一生以一场睡眠收束。”
(William Shakespeare《暴风雨》第四幕第一场)
“2 月 24 日”
雪粒子打在铁皮上,沙、沙。风从坡道下面推上来,水塔的影子在雪里断掉一截。
我偶尔会想,睡着的东西还算不算在这个世界上。
贩卖机在坡道下面,只亮着一半,铁皮是烫的。
我:「呼……」
水科:「拿反了?」
我:「啊、」
罐底印着保质期,印着摇一摇。没有印不能把它忘在睡着的机器里。
我:「所以 Arch 的休眠到底是什么呢?」
水科:「抄一遍」
我:「抄什么……」
水科:「内存里的世界。原样,每一个字节,连同它当时正在做什么……」
我:「那不就等于死了吗?」
水科:「不算死。算睡着了,书签也一起抄进去了……」
我:「书签……」
水科:「交换分区最开头,六个字符的签名。S1SUSP」
我:「谁认得这种东西啊……」
水科:「醒来的时候有人认得,就把镜像整个读回内存,从上次那一行接着跑……」
我:「文件系统呢?」
水科:「没有卸载过。空闲块的地图、事务号、树根的位置,全都还在……」
我:「那、那个……」
水科:「说」
我:「所以它一直在门后面睡着?」
水科:「它一直在睡觉,而且它以为自己还醒着……」
咔。
我把咖啡喝了一半,剩下的塞进兜里。
“2 月 25 日”
霜。兜里的铁皮冰得像刀,变成了会割人的东西。
同一台机器的另一个系统,风扇转得像在生气。
我:「就玩几把……」
匹配中匹配中匹配中匹配中匹配中匹配中。
资源管理器里多出来一个盘符,btrfs。
我:「为什么 Windows 看得见它!」
水科:「因为你装了驱动」
我:「我装过这种东西吗?」
水科:「win-btrfs。第三方驱动,开源,作者是 Marek Marczykowski-Górecki」
水科:「它让 Windows 直接读写 btrfs,子卷、压缩都认得……」
我:「……读写?」
水科:「读写」
我:「所以我排队的时候顺手点进去了……」
水科:「还往那边复制了两个文件?」
我:「那、那个,有什么问题吗……」
水科:「问题在于,那扇门后面睡着一个世界!」
我:「门……」
水科:「分区。驱动不认识门,它只认得扇区……」
我:「一来一回……」
水科:「一来一回,两边互相写。btrfs 是写时复制,回收这件事各自算了一遍……」
三日月:「假设 1……那扇门后面,睡着一个世界……」
我:「嗯、」
三日月:「假设 2……推门进去的人,不知道自己推开了门」
三日月:「假设 3……睡着的那个,也不知道自己被人推过……」
我:「那不就是什么都没发生吗?」
三日月:「呵呵」
三日月:「发生了……只是没有人知道」
我:「那还算存在吗……」
三日月:「你想要它算吗」
三日月:「这些都只是注释。你想要多少,就可以增加到多少」
那天我打了两把三角洲,一把第七名。
贩卖机在坡道下面,只亮着一半,铁皮是烫的。
到家门口才想起来,兜里还有一只凉的。
“2 月 26 日”
早上七点,坡道,霜还在。我按了电源键。
它没有醒。它重新启动了,没有人去认那六个字符。
启动到一半卡住,mount 失败,bad superblock。
屏幕下面还有一行重复了很多遍,parent transid verify failed。
水科:「想要 8121」
我:「找到 8120……」
水科:「差一次提交……」
我:「差一次会怎样呢?」
水科:「树断了」
没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了没了。
我:「……啊,水壶开了」
我把火关掉,把面放进去。博客第二次死掉的时候我正在煮面。
第一次死掉是很久以前的事。这次面煮好了,博客还是没有。
我:「那、那个,超级块在最前面吧,第一千零二十四个字节……」
水科:「那是 ext4。btrfs 在 64KiB,四 KiB,前面留给引导代码」
我:「啊、我以为都一样呢……就一份吗?」
水科:「三份。64MiB 一份,256GiB 一份,因为总有人会把它写坏……」
我:「啊哈哈,说得好像在说别人……」
水科:「说的就是你。开头三十二个字节是校验和,默认 crc32c,再往后是魔数 _BHRfS_M」
我:「那、那个,我先跑了 btrfs check --repair……」
水科:「谁让你跑的!」
我:「名字里有 repair……」
水科:「手册里写着它可能把事情弄得更糟。超×1000 蠢」
我:「呜……然后我跑了 btrfs rescue super-recover……」
水科:「它只把最新的一份搬回来,被覆盖掉的树块救不了……」
屏幕上说超级块恢复了,可是树还是断的。
我:「数据……」
水科:「没了」
我:「蓝得盆啊蓝得盆,你怎么能这么不小心呢?」
水科:「你在跟谁说话?」
我:「跟我自己……」
“2 月 26 日”
同一天,第二次。屋顶的雪化了一半。
桌上那只空罐子压着一叠纸,铁皮不烫了。
我:「hexo init 跑完了,四十分钟……上次是三天」
水科:「为什么快了?」
我:「因为上次我不知道自己在做什么……」
水科:「这次就知道了?」
我:「这次也不知道,只是手记得……」
死过一次的东西,写起来反而快。source/_posts 是空的。
水科:「记得做备份,一份在机器外面……」
我:「啊、是、」
对了,还有一件事。最近找到了一份心仪的工作,国内一家做 RISC-V 芯片的公司。
————————————————————————2026/02/20 10:41from ??subject 意向————————————————————————
看过你写的东西
clang 和工具链
来吗
我:「就这些……」
水科:「没有称呼,没有落款」
我:「我回了一个字,来」
水科:「……这次没有休眠吧」
我:「这次是关机」
坡道上面站着一个人,大衣没有扣。
神代:「RISC-V!Clang!工具链!」
神代:「指令集是地基,编译器是王座!」
神代:「从 IR 到汇编,从汇编到硅,全部由我来命名!」
神代:「所以醒来吧!睡着的世界也是世界!死过一次的东西写得更快!」
我:「啊、那个,你好」
他没有回答。
我:「以后大概会写几篇 RISC-V 的东西……」
水科:「还有 clang?」
我:「嗯、还有 clang」
“2 月 24 日”
贩卖机在坡道下面,只亮着一半,铁皮是烫的。
那一夜我握着它站了很久,然后按下 hibernate,看着屏幕黑掉。
风扇停下来,房间安静得能听见冰箱。
门。
关上了。
所谓睡着,就是把温度交给别的东西保管。罐子在兜里凉掉了,可它还是同一只罐子。
那么凉掉的那部分去了哪里呢。去了兜里。
……不对,那是我的体温。
被抄下来的世界也一样,抄下来的只是那一刻的温度。
世界存不存在,我想了很久,结论是明天要记得买新的咖啡。对我来说只有这种程度。
铁皮冰得像刀,可是刀不会自己承认它割了人。
贩卖机在坡道下面,只亮着一半,铁皮还是烫的。
是我先凉了。
我偶尔还会想,睡着的东西还算不算在这个世界上。
幸福的每一天……
每一天都很幸福……
我便是生活在这样一个世界上……
我偶尔会思考这种事情。
……
晚安,诗音。
