learn-tech/专栏/操作系统实战45讲/LMOS来信:第二季课程带你“手撕”计算机基础.md
2024-10-16 06:37:41 +08:00

53 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

因收到Google相关通知网站将会择期关闭。相关通知内容
LMOS来信第二季课程带你“手撕”计算机基础
你好我是LMOS。
2021年我在极客时间上开设了我的第一门课程《操作系统实战45讲》和你分享了我多年来研究操作系统的一些成就和经验。
我本以为在业务为王、各种新技术层出不穷的今天,很少有人会关注操作系统这种底层且异常复杂的技术。但出乎意料,这门课程一上线引起很多朋友的关注,曾经一度稳居极客时间课程榜单之首。期间我也收获了不少朋友的赞许,感谢你们的认可。
同时,结合我的观察和收到的留言、提问,我发现了几类常见的问题。
第一类就是心浮气躁,这是最常见的。我觉得学习任何东西都要首先静下心来,一步一个脚印,一个问题一个问题地攻克,层层推进。遇到困难可以歇一歇,但不可以就此中断和放弃。
计算机产品的设计方法,无非是层层抽象,层次越高,暴露给用户的功能越简单,层次越低,隐藏的细节越复杂。而操作系统是计算机最底层的软件,又经过半个多世纪的发展,其复杂程度可想而知,包含的知识体量也大的惊人。
你不可能一下子就学会这些,必然是要长期坚持,一步步推进才可以,不能因为遇到一点点困难就放弃。
第二类是过于纠结名词概念。概念是什么?概念是把所感知的事物的共同本质特点抽象出来,加以概括,是人脑对客观事物本质的反映。这种反映常常用一些名词来标示和记载,是思维活动的结果和产物。
而计算机里我们看到的很多概念名称,很多时候都是某项功能实现后,设计者取了个名词,来指代这个功能。而在我的课程中讲的就是操作系统底层实现,是事物的本质,是具体实现操作系统的过程,而非操作系统概念(这些在很多的理论书籍都能轻易获得)。
这种讲解可能不同于你之前接触到的知识,但有助于打破原先的抽象,把关注点从表层概念转移到技术的设计与功能实现上,这样才能见到操作系统的本质。
第三类则是基础不足。操作系统算是计算机领域里非常综合的学科,涉及的知识点非常宽泛,主要包括硬件体系、编译原理、开发语言、数据结构、通用算法、图形系统、网络通信等,里面每一项都可以成为一个独立学科。很多同学由于刚刚入门,或者所在岗位没有接触过所有这些基础知识点,所以学习起来感觉有点吃力。
这些问题让我回想起了自己当年的学习经历。我在操作系统领域摸索研究了十多年头先后开发了LMOS基于x86_64的多进程支持SMP的操作系统和LMOSEM基于ARM32支持软实时的嵌入式操作系统还写过嵌入式操作系统的相关书籍。这些经历告诉我应该使用什么方法和拥有什么基础才能写出操作系统。
在我的学习探索过程中,你们遇到的这些问题、这些困难,我也未能躲过,我也停下过,但只是歇一歇,从未放弃。遇到不懂的就去学习,遇到问题就去解决问题,一步一步积累,慢慢精进。
这么多年,很多朋友询问我,为什么执著于操作系统?我每次都笑着回答,因为我喜欢。
从本质上说,操作系统是巨大的软件工程,代码量都是几千万行级别,学习起来极为困难,学校也不乏照本宣科去读读理论的情况,从来不会系统地去编写一个操作系统。就算是成熟的操作系统公司,也只会招能力极强的高手,再内部培训,这导致太多感兴趣的人无从下手。
从我自己的学习经历来看,工程师们学好操作系统等基础知识,是一个长期受益的选择,对我们的技术成长相当重要。
为了帮助你系统和深入地理解并实践操作系统,我为你准备了一门新课《计算机基础实战课》。整个课程是一套完整系统基础知识,包含大量的计算机基础内容。
如果第一季你没有学明白,正在发愁自己怎么补充前置知识,想掌握基础,那么第二季正好可以作为基础知识的补充,里面大部分知识点都是操作系统初学者需要了解的。
如果你第一季学得还不错说明你有浓厚的兴趣和深厚计算机基础知识但是Cosmos是个全新的产物 ,不具备工作实用性,虽然其中的技术让人受益无穷。第二季作为一门基础课程,它的广度更大,是一门综合性基础课程,它也是第一季内容的一个补充,方便你把自己的知识版图扩展开来,并把其中的内容应用于平常工作之中。
就拿我自己来说,我既做过前端、后端的工作,也做过内核的开发。能来回穿梭于底层与高层之间,不至于手忙脚乱,最大的依仗就是深厚的计算机基础。即便你还没决定好未来的技术发展路线,计算机核心的基础知识对工程师来说,也是必学的前置内容。
基础不牢,地动山摇。基础筑牢,海阔天高。让我们一起精进技术,突破自己!
现在课程已经上线了,点这里了解课程内容。