1990:种下那棵不落叶的树-第1集 玉兰与引导扇区
摘要:《1990:种下那棵不落叶的树》以Linux开源系统为灵感,讲述程序员叶知秋穿越回1990年,在北大机房从零开始编写操作系统的故事。首集《玉兰与引导扇区》展现他与图书管理员沈书影的相遇,两人围绕计算机启动原理展开技术对话,通过512字节的引导扇区程序,折射出早期计算机开发的艰辛与理想。作品融合科技与人文,以“树”为意象,传递知识自由与技术创新精神。
笔言: 我始终相信,故事能承载知识,而非仅供消遣;科研者心中自有对美的敏感,不应被标签所困;歌声里除情爱与劳动,也应有实验室的晨昏、代码间的诗意。我想书写这样一群人——他们用逻辑构建世界,也用艺术栖息其中。
故事大纲(45集微故事版)
核心设定
- 作品信息:书名《1990:种下那棵不落叶的树》,文艺副标题《代码山河》;
- 核心意象:以“树”【Linux】为核心,根系对应内核、枝干对应子系统、叶对应应用,“不落叶”寓意开源精神的永续;
- 主角设定:叶知秋,32岁,名字取“一叶知秋”之意,暗含“从微小预知变革”的内涵;
- 关键节点:穿越至1990年春天玉兰花刚开的北京;
- 个人特质:随身携带《庄子》,以“庖丁解牛”喻内核优化;调试代码间隙爱吹口琴,最爱《莫斯科郊外的晚上》;厨艺精湛,常以“算法如做菜,火候即时机”教导学生;口头禅为“代码要写得像散文,机器能懂,人也能读”。
第1集 玉兰与引导扇区
叶知秋在1990年北大机房醒来,发现只有DOS可用。偶遇沈书影借阅外文期刊,她质疑“个人写系统”的可行性。
下面是我个定制:
《1990:种下那棵不落叶的树》两个版本的主题曲(大家评选一下):

第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年。
“你相信我?”他问。
“我不相信你能成功。”沈书影实事求是,“但如果你真想试试,至少该从正确的资料开始。”
知识点在此刻展开:
叶知秋指着书中的图示,开始解释——既是说给沈书影听,也是梳理自己的思路:
-
计算机启动的“第一声心跳”:
“按下电源键后,CPU从地址0xFFFF0开始执行——这里是BIOS的入口。BIOS检查内存、磁盘、键盘,就像乐团指挥上台前检查每个乐手。” -
寻找引导扇区:
“然后BIOS按照预设顺序(软驱A、硬盘C…)查找可启动设备。它在每个设备的第一个扇区(512字节)寻找‘签名’:最后两个字节必须是0x55和0xAA。就像遗嘱的最后签名,证明‘这是我’。” -
那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’。”
“用中文说。”沈书影忽然说。
“什么?”
“如果这是中国的第一行代码,”沈书影看着窗外玉兰,“让它用中文说。”
阳光完全照进机房。灰尘在光柱中飞舞,像正在苏醒的字节。
叶知秋打开饭盒,小米粥的香气弥漫开来。
本集终
本集核心技术点总结
-
计算机启动流程:BIOS → 查找引导设备 → 读取引导扇区(512字节) → 验证0x55AA签名 → 加载至0x7C00 → 跳转执行
-
引导扇区的本质:操作系统的“第一句话”,必须极度精简,任务是加载真正的内核
-
1990年的开发环境:无网络、无现代工具、用DEBUG手工汇编、靠纸质手册查硬件端口
-
内存布局认知:理解0x7C00的由来和意义,是操作系统开发者的“地理课”
-
从理论到实践的第一公里:如何把教科书知识变成可执行的机器码,是每个系统程序员必须跨越的门槛
下集预告:叶知秋将在512字节的限制内,实现中文“你好”的显示。沈书影带来意外消息:清华计算机系一位教授,正在寻找“懂操作系统底层的人”……

本集片尾曲:
第一个字节是花开的模样A版: 音乐地址
第一个字节是花开的模样B版: 音乐地址
版权声明
1990:种下那棵不落叶的树和主题曲和片尾曲以及相关封面图片等 ©[李林][2025]。本作品采用 知识共享 署名-非商业性使用 4.0 国际许可协议 进行授权。
这意味着您可以:
- 在注明原作者并附上原文链接的前提下,免费分享、复制本文档与设计。
- 在个人学习、研究或非营利项目中基于此进行再创作。
这意味着您不可以:
- 将本作品或衍生作品用于任何商业目的,包括企业培训、商业产品开发、宣传性质等。
如需商业用途或宣传性质授权,请务必事先联系作者。
作者联系方式:[1357759132@qq.com]
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐



所有评论(0)