LMOS来信:第二季课程带你“手撕”计算机基础 你好,我是LMOS。

2021年,我在极客时间上开设了我的第一门课程《操作系统实战45讲》,和你分享了我多年来研究操作系统的一些成就和经验。

我本以为在业务为王、各种新技术层出不穷的今天,很少有人会关注操作系统这种底层且异常复杂的技术。但出乎意料,这门课程一上线引起很多朋友的关注,曾经一度稳居极客时间课程榜单之首。期间我也收获了不少朋友的赞许,感谢你们的认可。

同时,结合我的观察和收到的留言、提问,我发现了几类常见的问题。

第一类就是心浮气躁,这是最常见的。我觉得学习任何东西都要首先静下心来,一步一个脚印,一个问题一个问题地攻克,层层推进。遇到困难可以歇一歇,但不可以就此中断和放弃。

计算机产品的设计方法,无非是层层抽象,层次越高,暴露给用户的功能越简单,层次越低,隐藏的细节越复杂。而操作系统是计算机最底层的软件,又经过半个多世纪的发展,其复杂程度可想而知,包含的知识体量也大的惊人。

你不可能一下子就学会这些,必然是要长期坚持,一步步推进才可以,不能因为遇到一点点困难就放弃。

第二类是过于纠结名词概念。概念是什么?概念是把所感知的事物的共同本质特点抽象出来,加以概括,是人脑对客观事物本质的反映。这种反映常常用一些名词来标示和记载,是思维活动的结果和产物。

而计算机里我们看到的很多概念名称,很多时候都是某项功能实现后,设计者取了个名词,来指代这个功能。而在我的课程中讲的就是操作系统底层实现,是事物的本质,是具体实现操作系统的过程,而非操作系统概念(这些在很多的理论书籍都能轻易获得)。

这种讲解可能不同于你之前接触到的知识,但有助于打破原先的抽象,把关注点从表层概念转移到技术的设计与功能实现上,这样才能见到操作系统的本质。

第三类则是基础不足。操作系统算是计算机领域里非常综合的学科,涉及的知识点非常宽泛,主要包括硬件体系、编译原理、开发语言、数据结构、通用算法、图形系统、网络通信等,里面每一项都可以成为一个独立学科。很多同学由于刚刚入门,或者所在岗位没有接触过所有这些基础知识点,所以学习起来感觉有点吃力。

这些问题让我回想起了自己当年的学习经历。我在操作系统领域摸索研究了十多年头,先后开发了LMOS(基于x86_64的多进程支持SMP的操作系统)和LMOSEM(基于ARM32支持软实时的嵌入式操作系统),还写过嵌入式操作系统的相关书籍。这些经历告诉我,应该使用什么方法和拥有什么基础,才能写出操作系统。

在我的学习探索过程中,你们遇到的这些问题、这些困难,我也未能躲过,我也停下过,但只是歇一歇,从未放弃。遇到不懂的就去学习,遇到问题就去解决问题,一步一步积累,慢慢精进。

这么多年,很多朋友询问我,为什么执著于操作系统?我每次都笑着回答,因为我喜欢。

从本质上说,操作系统是巨大的软件工程,代码量都是几千万行级别,学习起来极为困难,学校也不乏照本宣科去读读理论的情况,从来不会系统地去编写一个操作系统。就算是成熟的操作系统公司,也只会招能力极强的高手,再内部培训,这导致太多感兴趣的人无从下手。

从我自己的学习经历来看,工程师们学好操作系统等基础知识,是一个长期受益的选择,对我们的技术成长相当重要。

为了帮助你系统和深入地理解并实践操作系统,我为你准备了一门新课《计算机基础实战课》。整个课程是一套完整系统基础知识,包含大量的计算机基础内容。

如果第一季你没有学明白,正在发愁自己怎么补充前置知识,想掌握基础,那么第二季正好可以作为基础知识的补充,里面大部分知识点都是操作系统初学者需要了解的。

如果你第一季学得还不错,说明你有浓厚的兴趣和深厚计算机基础知识,但是Cosmos是个全新的产物 ,不具备工作实用性,虽然其中的技术让人受益无穷。第二季作为一门基础课程,它的广度更大,是一门综合性基础课程,它也是第一季内容的一个补充,方便你把自己的知识版图扩展开来,并把其中的内容应用于平常工作之中。

就拿我自己来说,我既做过前端、后端的工作,也做过内核的开发。能来回穿梭于底层与高层之间,不至于手忙脚乱,最大的依仗就是深厚的计算机基础。即便你还没决定好未来的技术发展路线,计算机核心的基础知识对工程师来说,也是必学的前置内容。

基础不牢,地动山摇。基础筑牢,海阔天高。让我们一起精进技术,突破自己!

现在课程已经上线了,点这里了解课程内容。

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e5%ae%9e%e6%88%9845%e8%ae%b2/LMOS%e6%9d%a5%e4%bf%a1%ef%bc%9a%e7%ac%ac%e4%ba%8c%e5%ad%a3%e8%af%be%e7%a8%8b%e5%b8%a6%e4%bd%a0%e2%80%9c%e6%89%8b%e6%92%95%e2%80%9d%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%9f%ba%e7%a1%80.md