笔言: 我始终相信,故事能承载知识,而非仅供消遣;科研者心中自有对美的敏感,不应被标签所困;歌声里除情爱与劳动,也应有实验室的晨昏、代码间的诗意。我想书写这样一群人——他们用逻辑构建世界,也用艺术栖息其中。

故事大纲(45集微故事版)

核心设定

  1. 作品信息:书名《1990:种下那棵不落叶的树》,文艺副标题《代码山河》;
  2. 核心意象:以“树”【Linux】为核心,根系对应内核、枝干对应子系统、叶对应应用,“不落叶”寓意开源精神的永续;
  3. 主角设定:叶知秋,32岁,名字取“一叶知秋”之意,暗含“从微小预知变革”的内涵;
  4. 关键节点:穿越至1990年春天玉兰花刚开的北京;
  5. 个人特质:随身携带《庄子》,以“庖丁解牛”喻内核优化;调试代码间隙爱吹口琴,最爱《莫斯科郊外的晚上》;厨艺精湛,常以“算法如做菜,火候即时机”教导学生;口头禅为“代码要写得像散文,机器能懂,人也能读”。

第1集 玉兰与引导扇区
叶知秋在1990年北大机房醒来,发现只有DOS可用。偶遇沈书影借阅外文期刊,她质疑“个人写系统”的可行性。

本集专属旁白播放地址
本集播客播客地址

下面是我个定制:
1990:种下那棵不落叶的树》两个版本的主题曲(大家评选一下):
在这里插入图片描述

她是一棵树A版: 歌曲地址
她是一棵树B版: 歌曲地址

在这里插入图片描述


第1集:玉兰与引导扇区

一、开篇:1990年的像素春天

场景:1990年3月,北京。玉兰花瓣飘过北大计算机系老楼的红砖墙。

叶知秋在刺鼻的CRT显示器静电味中醒来。

眼前是14英寸球面显示器,泛着微绿的磷光。屏幕上只有一行字:

C:\>

他低头看手——年轻了三十岁,桌上压着一封泛黄的介绍信:“叶知秋同志,分配至北京大学计算中心实习,1990年3月15日。”

穿越现实瞬间击中他:

  • 键盘是厚重的机械式,Enter键需要用力按下
  • 旁边堆着5.25英寸软盘,标签手写着“DOS 3.3”
  • 墙上日历:1990年3月16日,星期五
  • 窗外自行车铃声响成一片,穿着的确良衬衫的学生抱着书走过

他下意识在键盘上敲下ls——无反应。cd /——无反应。uname -a——只有光标冷漠地闪烁。

“对了,这是DOS时代。”

他敲入dir,屏幕滚出:

IO      SYS     22572  03-07-90
MSDOS   SYS     30128  03-07-90
COMMAND COM     25307  03-07-90

——总共三个文件,就是这台计算机的整个世界。

二、第一个冲突:没有“系统”的世界

叶知秋冲向机房的资料柜。他要找Unix,找Minix,哪怕找一本《操作系统原理》的实践指南。

但柜子里只有:

  • 《DOS 6.0使用手册》(中文盗版影印本)
  • 《IBM PC汇编语言程序设计》
  • 一叠1988年的《计算机世界》报纸
  • 和十几张写满Basic程序的练习纸

关键道具出现:他在柜子底层摸到一个硬壳笔记本。翻开,是前主人手写的笔记:

“1989年11月2日。听加州伯克利的同学说,有一种叫‘Unix’的系统,可以多人同时用一台机器……但我们这里只有DOS。张老师说,系里申请购买Unix的经费被驳回了,需要两万美元外汇。”

笔记本最后一页夹着一片干枯的玉兰花瓣。

就在这时,机房的门被推开了。

三、相遇:玉兰与质疑

沈书影站在门口,手里抱着一叠外文期刊。

她二十六岁,齐肩短发,卡其裤洗得发白,眼镜链上的指南针吊坠轻轻晃动。

“你是新来的实习生?”她的声音平静,带着图书馆特有的安静质感,“机房规定,非工作时间需要登记。”

叶知秋愣住。在2024年,他习惯了一切皆有权限系统管理,而眼前是活生生的“管理员”。

“我……我需要查资料。”他迅速进入角色,“有没有操作系统的书?Unix相关的?”

沈书影走近,把期刊放在桌上。最上面一本是《ACM Communications》1989年12月刊,封面文章标题:《微内核架构的新进展》。

“这是过刊室最新的。”她说,“但你看得懂英文?”

“能看懂一些。”叶知秋心跳加速——这是宝藏。

“你找操作系统资料做什么?”沈书影翻开借阅登记本,“这里只有DOS。学校的VAX机上有VMS系统,但需要教授签字才能用。”

叶知秋沉默了三秒,然后说了一句改变一切的话:

“我想写一个自己的系统。”

沈书影抬眼看他的表情,不是嘲讽,不是惊讶,而是一种专业性的审视。

“用什么写?”她问。

“用C。用汇编。”叶知秋指着那台IBM PC,“用这台机器。”

“它只有640KB内存。没有硬盘,只有两个软驱。CPU是8088,频率4.77MHz。”沈书影报出参数,像报出一本书的索书号,“而且,你只有一个人。”

“我知道。”

“为什么?”

叶知秋看向窗外,玉兰花开得正好。他想起2024年那些庞杂、臃肿、却垄断一切的操作系统。

“因为……”他轻声说,“我想种一棵不一样的树。”

四、第一堂课:引导扇区是什么

沈书影没有笑。她拉过一把椅子坐下。

“那你现在卡在哪儿?”

“最开头。”叶知秋敲了敲屏幕,“计算机启动时,BIOS会做硬件自检,然后寻找可启动设备。它找到软盘或硬盘的第一个扇区——512字节,读进内存0x7C00地址,然后跳转过去执行。”

他语速很快,是2024年工程师的本能。说完才意识到,这是1990年。

但沈书影点了点头:“我在《IBM PC技术参考手册》里读到过。那512字节叫‘引导扇区’(Boot Sector)。”

叶知秋惊讶地看着她。

“我是国家图书馆科技文献部的。”沈书影解释,“我的工作是知道资料在哪里,以及它们大概说了什么。”

她起身,从自己带来的期刊底下抽出一本厚厚的英文书——《IBM PC/AT Technical Reference》,1986年版。

“这个可能对你有用。”

叶知秋接过书,翻开扉页,看到国家图书馆的藏书章和借阅卡——上一个借阅人是1987年。

“你相信我?”他问。

“我不相信你能成功。”沈书影实事求是,“但如果你真想试试,至少该从正确的资料开始。”

知识点在此刻展开

叶知秋指着书中的图示,开始解释——既是说给沈书影听,也是梳理自己的思路:

  1. 计算机启动的“第一声心跳”
    “按下电源键后,CPU从地址0xFFFF0开始执行——这里是BIOS的入口。BIOS检查内存、磁盘、键盘,就像乐团指挥上台前检查每个乐手。”

  2. 寻找引导扇区
    “然后BIOS按照预设顺序(软驱A、硬盘C…)查找可启动设备。它在每个设备的第一个扇区(512字节)寻找‘签名’:最后两个字节必须是0x55和0xAA。就像遗嘱的最后签名,证明‘这是我’。”

  3. 那512字节的魔法
    “一旦找到,BIOS就把这512字节整个读进内存地址0x7C00处,然后跳过去执行。从此,BIOS的工作结束,这512字节接管计算机。”

沈书影若有所思:“所以,你要写的第一个东西,就是这512字节?”

“对。它叫‘引导加载程序’(Bootloader)。它的任务很简单:把真正的操作系统内核从磁盘读到内存,然后跳过去。”

“但512字节够吗?”

“不够。所以真正的引导加载程序都是分阶段的:第一阶段只有512字节,它负责把第二阶段(可能几KB)读进来,再由第二阶段加载内核。”叶知秋苦笑,“但我们现在,连第一阶段都还没有。”

五、第一个障碍:没有工具

理论清晰了,现实问题来了。

“你怎么写这512字节?”沈书影问,“用BASIC?”

“用汇编。必须用汇编,因为要直接控制硬件。”

“怎么编译?”

叶知秋环顾机房。角落里有一台更老的机器,旁边放着《Turbo C 2.0使用指南》。

“也许可以用C写个框架,但关键部分必须内嵌汇编。”他站起来,“但首先,我需要知道这台机器的具体硬件地址——磁盘控制器的端口号、内存映射位置……”

他走到窗前,玉兰花的香气飘进来。1990年的春天,没有互联网,没有搜索引擎,没有GitHub。每一个硬件细节,都需要翻手册或实验得到。

沈书影也站起来:“我下周要去国图整理一批新到的外文资料。如果有操作系统相关的,我帮你留意。”

“为什么帮我?”

沈书影走到门口,回头时,晨光照在她的眼镜上:

“去年秋天,我父亲工作的印刷厂引进了一套德国排版系统。所有操作都是德文界面,厂里没人看得懂。那套系统花了国家三十万美元外汇,却成了废铁。”

她顿了顿:“我父亲说,技术不应该这样。它应该让人看懂,让人能用。”

门轻轻关上。

六、夜晚:第一个字节

深夜,叶知秋留在机房。

他用DEBUG工具(DOS自带的低级调试器)开始实验。这是2024年他从未接触过的原始工具——一切皆在命令行,一切皆需手动计算地址。

关键场景
他写下第一个汇编指令:

mov ax, 0x07C0
mov ds, ax

——设置数据段寄存器,告诉CPU“我们的数据在0x7C00这个区域”。

但DEBUG只接受十六进制机器码。他必须查表,把mov ax, 0x07C0转换成B8 C0 07,再把mov ds, ax转换成8E D8

他一个字节一个字节地输入:

B8 C0 07 8E D8

然后执行。

计算机没有任何反应——因为这只是设置寄存器的指令,没有输出。

但他看着屏幕上那行十六进制代码,仿佛看到了种子破土的第一道裂缝。

知识点深化
叶知秋在笔记本上画出示意图:

内存布局:
0x00000 ┌─────────────┐
        │ 中断向量表  │
0x00400 ├─────────────┤
        │ BIOS数据区  │
0x00500 ├─────────────┤
        │ DOS暂存区   │
0x07C00 ├─────────────┤ ← 引导扇区加载到这里!
        │ 我们的代码  │
        │ (512字节)   │
0x07E00 ├─────────────┤
        │ 可用内存     │
        └─────────────┘

“0x7C00这个地址是IBM PC设计时就定下的。”他自言自语,“为什么是这里?因为往下是DOS的地盘,往上是可用内存,这里刚好是个安全岛。”

窗外传来远处火车的汽笛声。1990年的北京,大多数人都已入睡。

七、花瓣与签名

凌晨三点,叶知秋趴在桌上睡着了。

他梦见2024年的开源社区大会,成千上万的开发者,屏幕上流动着光鲜的代码。然后画面碎裂,变成1990年这间昏暗机房,只有他一个人,面对512字节的空白。

醒来时,身上多了一件深蓝色的工装外套——不知是谁留下的。

桌上那本《IBM PC技术参考手册》摊开着,翻到“磁盘I/O端口”章节。书页间,夹着几片新鲜的玉兰花瓣。

花瓣下压着一张纸条,字迹工整:

“0x1F0-0x1F7:IDE主控制器端口
0x3F6:IDE控制寄存器
软驱控制器:0x3F0-0x3F7
(来自《PC技术内幕》1989版,国图藏)

另:引导扇区最后两字节必须是0x55 0xAA,否则BIOS不认。
——沈”

叶知秋拿起花瓣,香气清冷。

他忽然明白了:引导扇区的0x55AA签名,就像这片花瓣——一个简单的标记,证明“我曾存在过,我正在开始”。

八、片尾:第一行代码

清晨六点,叶知秋写完了引导扇区的框架。

只有50个字节,连屏幕上一个字符都还无法输出。但这是从0到1的突破。

他在DEBUG里输入最后一条指令:

jmp $   ; 无限循环,停在这里

对应的机器码是EB FE

然后他把这512字节(实际只用了开头几十字节,后面用0填充)写回软盘的第一个扇区。

重启计算机。

屏幕漆黑,只有左上角一个光标闪烁——BIOS正在运行。

光标停住。三秒后,屏幕依然漆黑。

没有报错,没有画面,什么都没有。

但叶知秋笑了。

“BIOS读了我的扇区。”他轻声说,“它认出了0x55AA签名,跳转到了我的代码。我的代码执行了——虽然只是设置寄存器然后死循环。但它执行了。”

窗外,晨光照亮玉兰树的枝头。第一朵花在风中轻轻颤动。

沈书影推门进来,手里拿着两个铝饭盒。

“食堂还没开,我从家里带了粥。”她说,看了一眼屏幕,“失败了?”

“没有。”叶知秋接过饭盒,“它启动了。虽然立刻睡着了,但它确实启动了。”

沈书影看着屏幕上的漆黑,又看看叶知秋眼中的光,似乎明白了什么。

“接下来呢?”她问。

“接下来,我要让它在屏幕上说一句话。”叶知秋说,“一句很简单的话:‘Hello, World’。”

“用中文说。”沈书影忽然说。

“什么?”

“如果这是中国的第一行代码,”沈书影看着窗外玉兰,“让它用中文说。”

阳光完全照进机房。灰尘在光柱中飞舞,像正在苏醒的字节。

叶知秋打开饭盒,小米粥的香气弥漫开来。

本集终


本集核心技术点总结

  1. 计算机启动流程:BIOS → 查找引导设备 → 读取引导扇区(512字节) → 验证0x55AA签名 → 加载至0x7C00 → 跳转执行

  2. 引导扇区的本质:操作系统的“第一句话”,必须极度精简,任务是加载真正的内核

  3. 1990年的开发环境:无网络、无现代工具、用DEBUG手工汇编、靠纸质手册查硬件端口

  4. 内存布局认知:理解0x7C00的由来和意义,是操作系统开发者的“地理课”

  5. 从理论到实践的第一公里:如何把教科书知识变成可执行的机器码,是每个系统程序员必须跨越的门槛


下集预告:叶知秋将在512字节的限制内,实现中文“你好”的显示。沈书影带来意外消息:清华计算机系一位教授,正在寻找“懂操作系统底层的人”……


在这里插入图片描述

本集片尾曲:
第一个字节是花开的模样A版: 音乐地址
第一个字节是花开的模样B版: 音乐地址


版权声明
1990:种下那棵不落叶的树和主题曲和片尾曲以及相关封面图片等 © [李林] [2025]

本作品采用 知识共享 署名-非商业性使用 4.0 国际许可协议 进行授权。
这意味着您可以:

  • 注明原作者附上原文链接的前提下,免费分享、复制本文档与设计。
  • 个人学习、研究或非营利项目中基于此进行再创作。

这意味着您不可以:

  • 将本作品或衍生作品用于任何商业目的,包括企业培训、商业产品开发、宣传性质等。

如需商业用途或宣传性质授权,请务必事先联系作者。
作者联系方式:[1357759132@qq.com]

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐