0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简化版操作系统知识体系

小林coding 来源:小林coding 作者:李倩 2022-11-15 14:44 次阅读

大家好,我是小林。 熟悉我的读者都知道,我写了个图解操作系统,很多之前恐惧操作系统的朋友都跟我说,看我的图解系统豁然开朗。 但是可惜的是,我的精力也有限,只能从理论的方面带大家熟知操作系统,没办法从源码的方面带大家更深入。

可能很多人觉得操作系统单纯学个理论,很容易忘记,没有实践的话感觉学的好虚。

实践才能见真知,所以最好的方式就是「手撸」一个操作系统。

说起来容易,但是手撸操作系统这件事我们真的能做到吗?当然可以,如果我们只是实现一个「微型」的操作系统的话,那还是可以实现的。

“操作系统”作为所有软件的基础,是计算机王国的掌舵者。我们常用“灵魂、大脑、内核、基石”等词来形容它,足以见得它对计算机而言有多么重要。

事实也确实如此,作为每个程序员必须好好修炼的“基本功”,它能直接解决我们在工作中的很多疑难杂症,比如做高性能服务端编程时,经常会用到内存、进程、线程、IO 等相关知识。

而且,我一直认为,花大量时间研究 OS 这些底层知识,是很有必要的,虽然短期看不到效果,但却是从 0 到 1 必然的过程。

学懂了这些基本功,再去琢磨那些被“追捧”的流行威廉希尔官方网站 啊、demo 啊,都能轻松地理解背后高级的设计,理解系统中的性能瓶颈。

我也很喜欢研究操作系统,作为程序员的三大浪漫之一,它虽然枯燥无聊,却又存在无限可能。对威廉希尔官方网站 人来说,即便为此消耗了大把时光,费尽心力,也是值得。

正如我的偶像“计算机鬼才”彭东所说:"生活可以一地鸡毛,但操作系统却是心中的光"。

彭东在操作系统上的成就,让我颇为佩服,他被称为“计算机鬼才”,是有原因的。非科班出身,却凭借惊人的意志与热爱,自学微机原理,编程语言,数据结构与算法,翻遍了操作系统和硬件书籍,独立开发了 x86 平台下的 LMOS 和 arm 平台下的 LMOSEM 两个操作系统。

LMOS 现在已经发布 8 个测试版本,是多进程、多线程、多 CPU、支持虚拟内存的全 64 位操作系统内核,代码量足足有 10 万多行。如此浩大的项目,没点“程序员的浪漫”精神,想必很难坚持下来。

他的书《深度探索嵌入式操作系统:从零开始设计、架构和开发》也曾给了我很多启发。

da0fec28-64a8-11ed-8abf-dac502259ad0.png

数十年深入研究操作系统,他对 Linux、BSD、SunOS 等开源操作系统,以及 Windows 的 NT 内核都非常熟悉,在编译器,数据库等基础架构方面也颇有研究。

可以说,在操作系统领域,他是当之无愧的 KOL,非常有发言权。这条路上,会有哪些难点和阻碍,会踩哪些坑,他都了如指掌。

所以,去年听说彭东在极客时间写了一个《操作系统实战45讲》专栏,非常意外,当时我第一时间就订阅了。

最近又开始二刷了,再学一遍还是有很多收获。最让我惊喜的是,彭东把“学操作系统不要死看书”的主张贯穿到专栏里,通过配套实验带你完成一个 OS,当你真的动手写了一个 OS 的时候,对操作系统的理解会是质的飞跃。

下图是彭东梳理的「简化版操作系统知识体系」,图中的每一小块,都会随着课程的进行,逐一展开,建议先马后看。

da2d268a-64a8-11ed-8abf-dac502259ad0.jpg

操作系统简化知识体系图

他会带你从0到1,一步步实现一个基于 x86 平台的 64 位多进程的操作系统——Cosmos,你将拥有一个属于自己的操作系统内核,对 Linux 内核的理解也会更加透彻。

跟着学下来,操作系统架构设计能力会大幅提升,还可以学到系统级别的软件编程技巧,这对我们拓展威廉希尔官方网站 深度和广度是大有裨益的。

最重要的是,求职面试也会成为加分项,自己动手写过操作系统,真有“飘”的资本,简历自然脱颖而出。

记得当时这门课程上线两个月,订阅量就超 10000 订阅了,现在已经将近50000 人学习了,这个结果其实并不意外,毕竟,业界大牛手把手带着写 OS 的机会实在太难得。

我在追更的同时,也不禁佩服,彭东海量的知识储备和极佳的表达能力。要知道,越是底层的知识越不好讲透:要用通俗易懂的语言,把复杂的操作系统“讲”出来;要注意细节与重点的把握和梳理;要把复杂的内容,交付给各个不同思想层次,不同思维方式的人。

随便截了几个评价,供参考:

da76b6ce-64a8-11ed-8abf-dac502259ad0.png

不得不说,彭东太会讲了,不仅把枯燥的原理讲得明明白白,讲述中还充满魔力,吸引我深挖下去,这门课还有几个不得不提的特色。

1.“保姆级”图示+代码解析,小白也适用

为了方便“计算机小白”理解,快速上手实操,课程中加入了大量的图示和详细的代码注释,足以看出彭东的用心,也能感受到他的“内功深厚”。

比如下面的虚拟内存数据结构设计图,计算机结构示意图,文件系统框架图和进程状态切换流程图等,篇幅限制,这里仅是冰山一角,专栏中还有大量图示和知识导图。

da9a6b78-64a8-11ed-8abf-dac502259ad0.png

再比如,课程中的代码示例,这个详细程度的代码注释,是比较少见的。

daa8bc5a-64a8-11ed-8abf-dac502259ad0.png

摘自《操作系统实战 45讲》第9讲

瞧一瞧-Linux的自旋锁和信号量如何实现?

2.边学边练,对比分析,强化理解 Linux

在介绍每个内核组件实现时,都会先讲清原理,再带你基于设计理解去动手实现;然后与 Linux内核的实现做前后对比。既能边学边练,又能帮你从“上帝视角”审视 Linux 内核。

daba5b2c-64a8-11ed-8abf-dac502259ad0.jpg

3.配套源码,真正动手“run”起来

专栏中的每一讲,都会匹配可以工作的代码,传在 gitee 上;可以跟着课程一步步实现,也可以直接使用每节课提供的代码进行调试,直到最终实现一个操作系统。

实际上,动手“run”起来,哪怕只是读和 clone 老师的代码,也会对操作系统有更深一层的理解。

dad4f400-64a8-11ed-8abf-dac502259ad0.gif

Cosmos系统运行演示

4.开源计划,新的挑战

为了把课程内容实践得更好,最近彭东还整了个“大计划”——筹备建立一个开源社区,把 Cosmos 运作成一个开源项目,专栏的读者都有望优先成为第一批 contributer。

为抛弃历史包袱,未来完整的 Cosmos 会同时开源系统和 CPU 源码,还会考虑根据需求定制芯片。据彭东透露,他邀请到了非常优秀的芯片架构师,来根据操作系统架构特点设计 CPU,想想就很“浪漫”了!

此外,专栏读者都可以免费加入彭东的「操作系统交流群」,他经常在群里答疑解惑,这里还有很多威廉希尔官方网站 内功深厚的大佬,相互交流探讨,光看聊天记录,都能学到不少。

dda1bae2-64a8-11ed-8abf-dac502259ad0.png

订阅后在课程详情页,点击链接即可入群

编辑小姐姐也经常在群里出没,鼓励督促,可以说是伴随式的学习了,我加过的交流群不少,这个群确实非常难得,大佬云集,知识密度高,气氛活跃,学习体验也很好。

说了这么多,来看看课程各章节的知识点和精彩看点吧。

ddc284ac-64a8-11ed-8abf-dac502259ad0.png

再强调一点:

都说程序员 35 岁是个坎,但其实,有坎的是不上不下、“半瓶水”的人。只要扎实基础,勤修内功,那么无论是上层开发,还是理解前沿威廉希尔官方网站 ,都等于加了天然 buff。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6827

    浏览量

    123334
  • 编译器
    +关注

    关注

    1

    文章

    1634

    浏览量

    49134

原文标题:操作系统,你是我的神!

文章出处:【微信号:小林coding,微信公众号:小林coding】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    deepin操作系统介绍

    希望从自己的能力和对桌面操作系统的理解,能给 Linux 的用户与开发者更多的选择。我们也相信 deepin 能够得到更多用户的认可与喜爱,成为开源世界的最佳选择。  一、 deepin 操作系统 先说 Linux 操作系统,它
    的头像 发表于 12-23 09:08 291次阅读
    deepin<b class='flag-5'>操作系统</b>介绍

    【书籍评测活动NO.53】鸿蒙操作系统设计原理与架构

    知识的“指导老师”。 以华为官方为主导,选择最权威的参考资料,由鸿蒙开发团队的专家亲自执笔的新书《鸿蒙操作系统设计原理与架构》即将上市啦 ! 对与鸿蒙生态中的合作伙伴、基于鸿蒙操作系统进行开发
    发表于 12-16 15:10

    如何在windows上emulate不同操作系统

    一、虚拟化威廉希尔官方网站 概述 虚拟化威廉希尔官方网站 允许在单个物理机器上创建多个虚拟机,每个虚拟机都可以运行不同的操作系统。这使得我们可以在Windows系统上模拟其他操作系统,而无需购买额外的硬件。虚拟化威廉希尔官方网站 的关键组件
    的头像 发表于 12-05 15:50 195次阅读

    CapTIvate™威廉希尔官方网站 指南–简化版

    电子发烧友网站提供《CapTIvate™威廉希尔官方网站 指南–简化版.pdf》资料免费下载
    发表于 10-29 09:42 0次下载
    CapTIvate™威廉希尔官方网站
指南–<b class='flag-5'>简化版</b>

    linux操作系统安装步骤 linux操作系统的特点及组成

    Linux操作系统安装步骤 Linux操作系统是一种开源的操作系统,它以其稳定性、安全性和灵活性而闻名。以下是安装Linux操作系统的一般步骤,以Ubuntu为例: 1. 准备工作 在
    的头像 发表于 10-21 11:24 552次阅读

    LDO PSRR测量简化版

    电子发烧友网站提供《LDO PSRR测量简化版.pdf》资料免费下载
    发表于 10-18 09:23 0次下载
    LDO PSRR测量<b class='flag-5'>简化版</b>

    工控机支持什么操作系统

    工控机,全称工业控制计算机(Industrial Personal Computer, IPC),支持多种操作系统以满足不同行业和应用场景的需求。具体来说,工控机常见的操作系统包括:
    的头像 发表于 09-11 09:24 452次阅读

    简单认识RTOS实时操作系统

    RTOS(Real Time Operating System,实时操作系统)是一种专门设计用于在严格时间限制内处理任务的操作系统。它以其高实时性、多任务处理能力和资源管理能力在工业自动化、医疗设备、航空航天、汽车电子等众多领域得到广泛应用。以下是对RTOS实时
    的头像 发表于 08-20 11:20 2767次阅读

    Windows操作系统是什么?它有哪些特点?

    Windows操作系统是由美国微软公司(Microsoft Corporation)开发和推出的一种计算机操作系统。自1985年Windows 1.0版本发布以来,Windows系统经历了多次重大
    的头像 发表于 08-07 16:30 2586次阅读

    嵌入式实时操作系统:Intewell操作系统与VxWorks操作系统有啥区别

    Intewell操作系统和VxWorks操作系统都是工业领域常用的操作系统,它们各有特点和优势。以下是它们之间的一些主要区别:
    的头像 发表于 07-08 14:16 442次阅读
    嵌入式实时<b class='flag-5'>操作系统</b>:Intewell<b class='flag-5'>操作系统</b>与VxWorks<b class='flag-5'>操作系统</b>有啥区别

    微内核实时操作系统的介绍

    微内核实时操作系统(Microkernel Real-Time Operating System, μRTOS)是一种专为实时设计的操作系统。它采用微内核架构,以提高系统的可靠性、安全性和可扩展性。以下是关于微内核实时
    的头像 发表于 05-11 17:13 506次阅读

    如何根据需求选择合适的新加坡VPS操作系统?

    选择合适的新加坡VPS操作系统您需要考虑哪些因素,如何根据需求选择合适的新加坡VPS操作系统?rak部落小编为您整理发布选择合适的新加坡VPS操作系统需要考虑哪些因素。
    的头像 发表于 05-10 11:14 449次阅读
    如何根据需求选择合适的新加坡VPS<b class='flag-5'>操作系统</b>?

    基于鸿道(Intewell®)操作系统研发的农业机器人操作系统

    江苏大学与科东软件联合研发“农业机器人操作系统”,并成立“农业机器人操作系统”联合实验室,奋力推进农业智能化,推动农业科技创新。“农业机器人操作系统”的威廉希尔官方网站 革新,对提高农业生产效率、保护环境、应对农业劳动力短缺及促进智慧农业发展
    的头像 发表于 04-30 11:09 433次阅读

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统和实时应用提供一个稳定、可预测和高效运行环境的操作系统。实时操作系统确保了系统能够在严格的时间限制内响
    的头像 发表于 04-16 16:30 1280次阅读
    带你认识实时<b class='flag-5'>操作系统</b>(rtos)

    深度解析全球操作系统格局

    操作系统是负责协调、管理和控制计算机硬件与软件资源的程序,是整个计算机的核心系统软件。 按照操作系统面向的设备类型,通用操作系统主要包括桌面操作系统
    的头像 发表于 01-18 15:00 1187次阅读
    深度解析全球<b class='flag-5'>操作系统</b>格局