开始写这篇总结的时候其实已经是 UTC + 8 的丙午年了,我从今天下午就嚷嚷着要写总结 但一如既往地咕咕到了半夜,可喜可贺,可喜可贺。
你摆烂,我摆烂,开源社区更破烂。
2024 年开了个好头,2025 我仍然活跃在在相对底层一些的开源项目之间,
git log --author='Yao Zi <me@ziyao.cc>' --since=2025-01-01 --until=2025-12-31 --oneline),相对 SoC 支持有意思一些,也比较有成就感的补丁,是在几个大项目之间做了几次紧急 (或者说火星也行)救援,
dwarf_loader: Handle DW_AT_location attrs containing DW_OP_plus_uconst
这个修复 pahole 无法处理较新的 LLVM 生成的 PPC/RISC-V 二进制的补丁恐怕是一年来
在开源社区最尴尬的一次,改一部分写的代码时把更改指针指向的值写成了更改指针的
值,成功让这个补丁变成了一个 NOP ——被指出来的时候实在尴尬至极。考虑是我在测试
补丁的时候只删除了内核生成的 vmlinux 而没有删除 vmlinux.o,导致更改后的
pahole 并没有实际被调用来验证行为,实在是罪过。
再次被狠狠地教训了跑测试的时候一定要确定真的用上了最新的代码但这样的亏也不是
吃过一次两次了,总有想也想不到的情况让你的修改没生效。
2025 年上半年,我参加 eweOS 的开发比较活跃一些;下半年因为个人心情的原因,以及 公司工作和内核上游化所花时间的客观限制,明显做的工作少了不少。
严格意义说来 eweOS 在 2025 年并没有像 2024 年那种从纯粹玩具到可以日用这么大的 进展,我确实让 KiCAD 以及半套开源 FPGA 工具链 Yosys(之所以说是半套,是因为我只 打包和测试了 ECP5 的支持)跑了起来,但大部分时间还是花在了西西弗斯式的打包和修 包上。如前几天的感言,
不过想想,某种意义上软件的依赖兼容性维护就是一场大型的黑瞎子掰苞米罢了, 无非是一棒还是十棒的区别。
我大概还是要继续推一段时间的石头,倒也不算反感——当打包像呼吸一样自然的时候,维 护工作也就变成某种意义上的休闲活动了。
2025 下半年为了简化 rebuild the world 的难度并且让 eweOS 尽可能可 bootstrap,
我开始整理一套 bootstrap eweOS 的脚本
lamber,截至今天除夕夜时已经打通了
x86_64, riscv64 与 loongarch64 的 base 与 base-devel 的构建流程,大概
算是我在 2025 为 eweOS 引入的为数不多的新东西。
作为 eweOS 的 side project,eweOS 的更新检查器 rollmeow 于六月份引入了直接拉取 Git 仓库 版本号的能力,不需要费脑子构建无歧义的正则表达式来匹配版本号了。接下来半年的 使用经验证明了这是一个很有意义的功能。
很可惜 2025 年我只做了 loli-loader
一个 side project。这个项目从 2024 年新建文件夹,到 2025 年年初跑通在 RISC-V
的 Linux 启动,到八月底修好 x86_64 用来在 Win32 ABI 和 SystemV ABI 之间互转的
wrapper,再到十月份发布了一个能在 x86_64, aarch64, riscv64 与
loongarch64 上启动的 v0.1.0,可以称为一个能用的 bootloader 了——感觉做的过程
还是十分开心的。
现在还能想起来在上海的咖啡厅写 extlinux.conf 解析器的时候,七夕节出完差等火车
在喜茶做 aarch64 支持的时候...
做这个小项目也间接推动我去申请了一个 UEFI Forum 的 Adopter membership,期间发现 了一些 UEFI Specification 的 typo 也拜托龙芯中科的群友 修了一下
(UEFI Specification 的修改只能由 Contributor 等级的 member 提出,其前提条件是 每年要交 3300 美元的会费....
Contributor Membership $3,300 annual membership, effective January 1, 2021 Membership benefits as listed above in addition to the following: Opportunity to participate in UEFI Working Groups via invitation Participate on email reflectors related to UEFI Forum activities Preview draft revisions of the UEFI specification
我申请 adopter 的 membership 的时候没看见。我真傻,真的)
感觉学习东西,特别是技能类的而不是知识类的,有个老师傅来带是非常重要的。群友的 话你得听,一定不能我寻思不听劝。
年初感觉自己对计算机微架构的理解还是有些欠缺,遂二月份开始阅读群友推荐的 龙芯的书《CPU 设计实战》,并尝试自己编写一个五级流水的 RISC-V 核心。写数字逻辑 当然要会 HDL 了,我当时参考龙芯的书上简短的 Verilog 教程做了一遍中科大的 Verilog OJ,感觉自己差不多摸明白了 HDL,于是 开始写代码。
可惜自己一如既往地毅力不足,在写完了 instructin fetch 与 instruction decoder 后即弃坑,直到七月初重新捡起来写 CPU 的想法,最后一个周末憋出来了 weakcore 这个多周期 RV32I 核心。
实话实说这个核一开始是按照五级流水设计的,所以会看起来有一些不必要的 register buffering,只恨我三分钟热度没褪去的时候没真的给它改成五级流水。多周期核也太小了 点,搞的我都不好意思说自己会写 CPU,所以还是就算我学会了写 HDL 吧(笑)。
说实话这个算是我小时候就想学但没财力学的东西。我搞驱动不是因为我不喜欢硬件只是 因为我没钱 :P
和画板子一样,手焊板子也是一个手艺活。我目前的焊接流程都是涂上锡膏放上元件然后 加热台铁板烧,对付对付 QFN 尚可,但 BGA 的焊接还是得学,也应该学学用风枪。 手艺活这种事儿啊,永远是熟能生巧。
十月左右因为已经忘记的原因,想起来曾经做过的多语梦,发现自己从来没坚持过英语外
任何语言的学习。痛定思痛后决定循序渐进的自学一门语言,考虑过语料和资料数量,
以及学完后可以奖励自己看无翻译的漫画和本子,还是选择了日语。
之前曾经读过 Tae Kim's Guide to Learning Japanese 的语法部分(The Japanese Grammar Guide),感觉入门曲线比较平缓,而且考虑到我比 较喜欢什么语法都被解释清楚再继续的感觉,于是就选择了这个教程。
至于学习的方式嘛....每天蹲马桶时朗读背诵词汇,然后看一两条语法理解一下。三个月 来确实记住了一些语法,但词汇量还是不够,也没有什么阅读文章的经验。这个学习过程 是否有效,截至本文撰写时恐怕还不算明朗。
我认为我在 2025 实际上工作量是超负荷的。与其说做的太少,不如说揽的事情太多,而 完成的速度又太慢,IOW 就是太好高骛远了点。2025 年底时看到了 xen0n 老师的 blog,
人的一天不会有 48 乃至 96 小时,往自己肩头承揽需要这么多清醒时间才能完成的 责任,不是一种光荣,反而是不负责的错误行为。 “为了证明自己有价值”,这样的 心态本身其实就是低自尊的表现。
深以为然。虽然我还没想明白该如何走出这个怪圈,或许应该试试通过生成式 AI 之类的 技术来提高一下自己的工作效率,或许应该丢掉一些不那么“重要”的事情。对于前者,我 自己都觉得自己有些太老登了;对于后者,我大概还需要些时间从“社区没我转不了”的白 日梦里走出来(笑)。
有时候我自己也会质疑自己花时间做的开源工作是否值得,是否某天晚上突然出现的一场 技术革命就使它的价值化为乌有;而我自己写代码期间有几分是在期待为他人解决问题的 fame,又有几分是真的享受与计算机打交道的过程呢?前者听起来,像是该被 drop 的 事情了。
你会和我做一辈子开源吗?
完成了 3.5/5,70% 的预期目标,可喜可贺。
当然也要有一些不那么技术领域的期待吧,
craft.moe感谢 2025 年所有解答我愚蠢问题的群友们,I'm quite good at confusing myself without any assistance。也感谢我的室友,让我 2025 年宅在家里的日子不是完全孤单 的。
隔年昨夜青灯在,无限妆楼尽醉哗。