首页 > 其他分享 >操作系统实战45讲00056

操作系统实战45讲00056

时间:2022-12-30 11:46:53浏览次数:63  
标签:架构 操作系统 45 专栏 内核 Cosmos 00056 我们

你好,我是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个多月的同行,真心希望我的专栏对你有所帮助。

我知道,很多同学总是默默潜水,默默学习。所以在专栏即将结束的今天,我希望听听你学习这个专栏的感受。这里我为你准备了一份毕业问卷,题目不多,希望你可以花两分钟填一下。

标签:架构,操作系统,45,专栏,内核,Cosmos,00056,我们
From: https://www.cnblogs.com/gongxianjin/p/17014500.html

相关文章

  • 操作系统实战45讲00055
    你好,我是艾恩凝。很高兴受邀来写用户故事,可以“吐槽”一下与我结缘的操作系统实战专栏。不对,是夸赞。其实,这门课在去年底宣传的时候,我就知道了。那时朋友圈铺天盖地在发消......
  • 操作系统实战45讲00058
    你好,我是LMOS。2021年,我在极客时间上开设了我的第一门课程《操作系统实战45讲》,和你分享了我多年来研究操作系统的一些成就和经验。我本以为在业务为王、各种新技术层出......
  • 操作系统实战45讲00057
    你好,我是编辑宇新。春节将至,先给你拜个早年:愿你2022年工期变长,需求变少,技术水平更加硬核。距离我们专栏更新结束已经过去了不少时间,给坚持学习的你点个赞。学习操作系统......
  • 操作系统实战45讲00032
    你好,我是LMOS。在上一课中,我们实现了建立设备的接口,这相当于制定了部门的相关法规,只要遵守这些法规就能建立一个部门。当然,建立了一个部门,是为了干活的,吃空饷可不行。其......
  • 操作系统实战45讲00034
    你好,我是LMOS。你有没有想过,蜜蜂把劳动成果变成蜜糖存放在蜂巢中,人类把劳动成果量化成财富存放在银行,但一个进程的劳动成果放在哪里呢?看到这里,你可能有疑问,进程有劳动成......
  • 操作系统实战45讲00035
    你好,我是LMOS。上一节课中,我们已经设计好了文件系统数据结构,相当于建好了仓库的基本结构。今天,我将和你一起探索仓库的划分,即什么地方存放仓库的管理信息,什么地方存放进......
  • 操作系统实战45讲00036
    你好,我是LMOS。我们在上一节课中,已经建立了仓库,并对仓库进行了划分,就是文件系统的格式化。有了仓库就需要往里面存取东西,对于我们的仓库来说,就是存取应用程序的文件。所......
  • 操作系统实战45讲00037
    你好,我是LMOS。在前面的课程中,我们已经实现了Cosmos下的文件系统rfs,相信你已经感受到了一个文件系统是如何管理文件的。今天我们一起来瞧一瞧Linux是如何管理文件,也验证一......
  • 操作系统实战45讲00038
    你好,我是LMOS。从这节课起,我们就要开始学习网络篇的内容了。网络是一个极其宏大的知识结构,我会通过五节课带你了解计算机网络的关键内容。具体我们是这样安排的。作为网......
  • 操作系统实战45讲00039
    你好,我是LMOS。上节课我们对一次请求到响应的过程积累了一些宏观认识,相信你已经对整个网络架构有了一个整体蓝图。这节课,让我们来仔细研究一下网络数据是如何在内核中流......