You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
7.5 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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