你好,我是LMOS。
感谢你的一路相伴,我们的《操作系统实战45讲》专栏写到此处,你亦能学至此处,多半是出于兴趣,出于一种对操作系统的热爱,出于一种对事物本质发自内心的苛求……
如果是这样,请你永远保持这份心性,它会给你带来更多意想不到的结果。走到这里,也让我们先停住前进的脚步,回忆一下这一路走来都做了些什么事情,收获了什么,有什么让我们印象深刻的体会?
我作为Cosmos和《操作系统实战45讲》专栏这两大作品的作者先来开个头,跟你说说我自己的感受和体会,可以用两个“出乎意料”来表示。
第一个“出乎意料”,是课程出乎意料的难写。我之前写过书,也写过多个操作系统内核,更是做过业界重量级的傲腾项目,但是专栏之难,超过我之前做过所有的项目之难。
一开始,我也不明白为什么写专栏比写代码难?但经历了整个专栏的筹备、备稿、修改,一直到更新和答疑的各个环节,我才深刻地体会到这点。
我最初设计整个专栏的时候,就想兼顾宏观思路和细节实现,既带你领略操作系统的壮观风景,也能作为指导手册让你跟着我动手实现。但是写起来才发现,为了完成这两点,我实际花的时间跟精力,远远超过了预估。
写专栏,难就难在要用通俗的大白话,把复杂的操作系统“讲”出来,而不只是写出来;难就难在细节与重点的把握和梳理。如果只有细节,就难以体现出重点。可是如果只有重点思路,我又担心内容会让你觉得过于抽象;难就难在,我要交付的对象,不再是编译器,而是各个不同思想层次、不同思维方式的人。
第二个“出我意料”,是出我意料的“热”。我搞了很多年的操作系统,感觉操作系统在整个行业之中非常冷,操作系统之冷,是那种高处不胜寒的“冷”,是学校老师都只愿意从理论上一笔带过的“冷” ,是互联网时代的创新企业无法触及,也不敢触及的“冷”。
但是出我意料的是,专栏刚刚上线不久就引起了业界广泛关注,其热度超出了我的想像。我以为在业务为王的今天,很少有人会关注这么底层的操作系统。不得不说,这些关注从侧面说明了操作系统在各从业人员心中的重要性,同时也说明了我们对亲手实现一个操作系统这件事充满好奇。
前面这些是对专栏的体会和感受,下面我想谈一谈写Cosmos的感受。相信看过专栏的同学,对操作系统工程之浩大,代码之精微,都有了深切的体会和认知。说开发成熟操作系统之难,难于上青天,这绝不是夸张和开玩笑。
在互联网时代,我可能比围观的同学更清楚,不能基于功利的目的去开发Cosmos,在今天它无法直接给我们产生价值,我开发Cosmos是基于兴趣,是对技术的探索和追求。我就是那种人——生活可以一地鸡毛,但操作系统却是心中的光。
Cosmos断断续续开发很多年,几次推倒重来,正是在这种一次次重构之下,摸索、总结,才设计出了今天Cosmos的架构。很多代码要反复测试验证,对于没有达到预期的代码,我需要对其算法进行分析,找出原因。
Cosmos的调试是最难的,往往需要查找其文件的反汇编代码,然后一条一条对比,在脑中模拟指令的执行过程和结果,并发现隐藏其中的Bug,这些都是极其烦琐的事情。不瞒你说,我也会一个bug卡好几天,感觉写内核仿佛是一场“法事”,一个人念咒、画符,请神跳舞……可以说,若没有“爱”的加持,真的很难坚持下来。
其实,我们写专栏的顺序正是我开发Cosmos过程的顺序,只有这样,才能把我的经验原样分享给你们。
因为我就是从Hello World应用程序开始,探索计算机是如何运行一个应用程序的,进而一步步了解了操作系统内核中的所有组件,在心中建立了一个现代操作系统内核的模型。
因为操作系统内核必须要运行在具体的计算平台上,所以我研读了大量的芯片手册,并且着重了解了其中CPU和内存的细节。接着,我又学习了编译工具集。有了这些基础,我开始写引导器和初始化代码,逐步实现了内存管理、进程调度、设备I/O、文件系统、网络和若干设备驱动程序,最后实现了系统调用和应用程序库。
虽然这些组件比成熟的操作系统内核中的组件简单得多,但实现的都是最关键、最核心、最必要的功能机制,简小而全面一直是我的思想,而这也正是我们这些操作系统初学者想要的。
我们的专栏虽然结束了,但是我们的Cosmos才刚刚开始。不知道你是否也在思考,我们亲自建造的Cosmos,为什么没有强大的文件系统和网络组件,为什么没有精美且高性能的图形界面,为什么没有工业级的安全性?
如果你真的在思考、在好奇,如果你真的有兴趣,还想继续探索,我真诚地希望你能再次阅读更多的书籍,或者借助万能的互联网,去搜寻资料,去寻找答案。
相信以这份好奇和兴趣为动力,必定会从一无所知,到知道一点点,再到知道一部分,慢慢地积累,也许有一天你会惊奇地跳起来,用尽全身力气喊出来:“原来我也能了”,“我真的能了”!
到了那一天,想必我们也已经有了全新的开始,那一定将是真正具备创造性的开始。
如果你愿意,也可以加入我们的Cosmos开源社区,让我们再续前缘,一起开发Cosmos操作系统,让我们一起开始创造性的工作。
Cosmos开源社区以Cosmos的“Ψ(Psi)”架构为基础进行展开,Ψ(Psi)内核架构有别于微内核、宏内核、混合内核,它吸收了其它内核架构的优势,完全摒弃了其它内核架构的劣势,这就导致了现有的硬件架构体系,不适应运行这样的Cosmos。
为此,我们将以RISCV处理器为基础进行扩展,形成“Ψ(Psi)”架构的RISCV处理器,这个处理器将成为运行Cosmos特有的处理器,同时这个“Ψ(Psi)”架构的RISCV处理器也会开源,形成硬件、软件双开源的方式,欢迎各方勇士加入,一起迎接挑战,一起开创IT新纪元。
也许有一天,人们会用着我们建造的操作系统,在我们自己设计的计算机上,听着杜比级别的音乐、看着4K画质的高清电影、玩着如梦如幻的3D游戏、和远方的恋人进行视频通话、进行超大规模的科学计算、处理着海量级的网络数据……
但是别忘了,这仅仅是因为我们最初那一点点求知欲和兴趣……
虽然暂时需要告别,但我期待后会有期。感谢3个多月的同行,真心希望我的专栏对你有所帮助。
我知道,很多同学总是默默潜水,默默学习。所以在专栏即将结束的今天,我希望听听你学习这个专栏的感受。这里我为你准备了一份毕业问卷,题目不多,希望你可以花两分钟填一下。
评论