引言
Inalineの小站很久没有更新了,感觉上次编写博客都已经是两年半之前的事情了。
不过相比这不是因为懒癌犯了,而是花费时间创作,编写有意义的,高质量的文章。而不是为了充实博客的内容,大量使用 AI 粗制滥造一堆学术垃圾。正所谓
慢工出细活 —— 《胡雪岩全传·灯火楼台》
不过博客没有更新的这一个月我在干什么呢?其实完成万恶的暑假作业也是其中的一部分,这毕竟是学生的本职工作(虽然不得不承认暑假作业没有任何存在的意义)。大部分时间还是宅在家里,没事就看动漫,看刘慈欣老师的小说。累了就打开电脑写两行代码放松一下(写代码放松是什么鬼(ー_ー)!!)。
这期间我正经的学习了一遍 Go 语言,从基本语法到并发编程再到网络编程。基本上有了构建 Web 后端的能力。并且也了解到了一些 Rust 语言。这里不过多赘述学这两种编程语言的过程了。
在经过我每天坐在电脑前跟终端黑窗口以及上面红色的报错信息搏斗若干之后。我成功的开发出了两个项目。分别是 Line OS 和 API 开放平台项目。每个都有 Claude Code 辅助的成分在,不过我基本不用 auto 模式,也是会有点代码审查的。PS: 一阵头脑风暴之后,认为篇幅太长,这篇博客只写 LineOS。
Line OS Project
简介

LineOS 的 Logo.
是的,你没听错,LineOS它确确实实是个“操作系统”,准确来说是 使用 Rust 开发的基于 X86_64 架构的兼容 POSIX 的类 Unix 操作系统内核。一个完完整整的可以跑在真正的电脑上的操作系统。
不过你说这玩意有什么实际作用,那我可能就只能回答你“Just For Fun”了,纯粹就是想写。
不过我认为这里就不合适把我的项目从头到尾都再说一遍了,不然这不纯纯成炫技的了嘛?换句话说就嘉豪嘛。所以我还是选择放一些截图,然后描述这其中的开发经历。最后对代码感兴趣的可以上 github clone 跑着玩,按照国际惯例按照 README 装好依赖直接 make run 自动编译并且跑起来,遵循 MIT 协议开源。
Gitee: https://gitee.com/Inaline/Line-OS
截图

代码统计工具 SCC 截图(共 2.3 万行代码文件)

开机后画面截图

简单文件系统(FAT32 + VFS)演示

启动新进程以及点阵中文字体加载演示

多进程以及管道/信号演示
废话(开发经历)
这里是开发经历,章节名称写为废话是因为我觉得“哪个项目不是这样开发出来的?”因此这个章节可能毫无营养价值。
首先这个项目是因为看到 B站 20W代码更新量, 耗时6个月 | 全新的 CoolPotOS 发布! 这个视频有感而发写的项目。选用 Rust 纯粹是因为 C 工具链过于烦人,而且也确实好奇 Rust。
其实这并不是我第一次开发操作系统,早在24年的时候我就仿照过《30天自制操作系统》这本书,编写过一个可以进入 32位保护模式 C 内核的简单系统,甚至称不上一个操作系统。
这次带来的 LineOS 完全则是不同的体验。至少,我对操作系统底层有了更加深入的认识。也让我增添一分对嵌入式开发的兴趣。
即使调试的过程中每一个 Kernel Panic,每一个 CPU Exception 造成的“三重故障”调试起来都让我倍感无力。但运行成功那一刻的喜悦,带来的喜悦早就让调试时每一个气的想砸键盘的瞬间烟消云散。(嗯,够生硬的比喻句,小说白看了,硬凑都凑不出来合适的)
整个开发过程没有难到每一个个寄存器都要你手动去操作。大部分的开发都已经是站在了巨人的肩膀上,引导加载程序 GRUB2 直接帮你省掉若干行汇编,自己一行也不用写。文件系统 Rust FATFS开源实现。更重要的是,这一切的概念完全是 Unix 的实现,而不需要自己去设计验证。换句话说就是有的参考。
不过可千万不要以为就没有难的地方了,整个操作系统最难的地方不是虚拟磁盘系统,不是帧缓冲点阵字体的加载与渲染,而是一个不起眼的服务,你见不到它,但没有它整个系统都得崩。Linux 多进程模型的 Fork + Exec 系统,其中点名 Fork 的难度,整个开发过程中 50% 的 CPU Exception 都来自它的妙笔生花。Fork 听着就是把进程复制一遍嘛,实则远比这复杂的多。不然人家 Fork 为什么被称为 “Unix 最强大的系统调用” 呢。
最后,简单提到一个工具,为了这个操作系统我还写了一个 .PF2 格式点阵字体(一般是 GRUB 使用)的 TUI 编辑器,还支持直接通过 ttf 文件生成 pf2 字体。我想这可能对我后面的一个项目有些帮助,我已经不仅仅满足于在电脑上跑两个软件了。最近想要做一些嵌入式开发,所以我购买了 ESP32-C3 单片机,附带一个 4.2 寸水墨屏,打算制作一个水墨屏阅读器。
写在最后的一些碎碎念
可能是最近 AI 用多了吧,怎么感觉自己写的文章都一股子 LLM 的味道,不能给我调教成 DeepSeek 思维了吧。不过我的博客真的没用 AI 写的哇 ˶ᗜ𐃷ᗜ˶。
还有就是文章说的不是炫技,但我自己都觉得还能感受到一些炫技的存在。不过不写这些的话,我就真的不知道博客该写点儿什么了呢。
最后,也可能是比较要划清界限的一点了。最近知乎,CSDN上各种 Vibe Answering, Vibe Bloging AI 写的内容我也是都看反胃了。一言难尽,就算用 AI 也给我用好了啊,用个好点的模型,塞点儿资料,写个好的提示词也不至于被人们讨厌成这样。
不过我可以肯定本站不会采纳 AIGC 的文章,也不对文章进行 AI 润色。
评论 (2)