发现了一个练操作系统内功的极好资源
大家好,我是飞哥!
之前给大家介绍过,我是 2010 年就毕业参加工作了,有十多年的后端相关工作经验。在工作的过程中的某一天,我突然意识到我作为一个后端开发,和网络请求打了有十多年的交道了,竟然都连操作系统内核是如何接收一个网络包的都没有搞清楚,简直丢死人!
于是知耻而后勇,我花了有两个星期的时间,查资料、钻研 Linux 源码。从硬中断开始,摸索到软中断、协议栈、系统调用,最后直到用户进程能收到数据,整体全扒了一遍。不怕丢人地说,十年来我第一次真正搞懂了网络包的接收全过程。
这次对操作系统网络收包原理的深度理解对我接下来的工作提供了非常大的帮助。理解了接收全过程以后,我仿佛得到了一幅地图,把我之前见到的、听过的网络性能优化方案在“地图”都找到了正确的位置。对各个技术点也都有了更清晰的理解。之前是只见着了树,这次终于见着了林。
后来的事情大家也都知道,我把我的这部分理解整理了一下,在公众号上发表了 图解Linux网络包接收过程 出来。没想到,大火。当时飞哥的号只有 1000 多粉丝。让我吃惊的是,这篇文章在这点初始粉丝的支持下,阅读竟然很快破了 1 千,而且还是节节升高,直到今天的 6 千多的阅读量。
看来不止我一人,大家之前都有和我类似的困惑: 平时只知道在应用层如何调用,不太理解操作系统具体的实现过程,但其实又对原理特别的好奇!这类深度拆解操作系统实现原理的文章算是引起了大家的共鸣。读者们也都表示当理解内核工作原理以后,回头再看手头的工作中用到的技术点理解的更通透了。
再后来,我又围绕着操作系统在 TCP 内存开销、epoll 、发送包过程等技术点上写了多篇文章。打造了 开发内功修炼网络篇 系列。这些深度挖掘操作系统的文章帮助开发内功修炼带来了从 1 千到 1 万 8 的粉丝数量的飞速增长。 不过有部分读者仍然还不满足。通过飞哥微信问: “有没有更全面,更系统一点的操作系统学习资源推荐?” 。先跑远一点,对于学习资源,我本人其实不太喜欢只局限于看纯理论的东西。我技术文中的东西我都是尽量和大家的工作实践联系起来。因为只有实践过,你才能理解深刻。你现在想想你在学校中学过的知识,是不是当时自己做的实验记得更牢!?而且这也是有研究理论支持的,来看学习金字塔的模型图,实践比纯阅读效率要高 N 倍。
但是目前国内的操作系统经典资源几乎都是理论上的。所以当时我也不免俗地在群里,或者私聊给小伙伴们推荐了一些操作系统方向的经典书籍。因为我当时确实没有找到在实践上也做的很好的资源。
直到前几天,极客时间上发布了一门新课《操作系统实战45讲》。我去观望了一下数据,发现这门刚刚上线 5 天的课,就有了 4500+ 的销量。(经常在极客时间上学习的小伙伴应该清楚 5 天 4500 的销量是多么火的一个数,很多课程卖一年都卖不到这个数)
不过出于对内功技术的挑剔,我还是抱着试一试的心态,买了这门课,先进去学习了几讲。
第一节里作者先是讲了 CPU 是如何执行一段应用程序的,并用图清晰地画了出来。
第二节里提供了一段短到 80 行的 Hello OS 引导的代码 Demo,从引导,到寄存器初始化,到计算机屏幕控制。并能实际编译、安装和运行。能实际跑起来,这一点非常没让我失望。
在加进了课程的读者群以后,你们猜猜看我发现了啥!?
哈哈哈,原来好多号主也都来看这门课程偷师学艺来了!而是都是几万粉以上的大号。
国内的绝大部分操作系统相关的课程都是在空嘴跑火车,这种带着实践学习操作系统的方式真的是太稀缺了。所以这门课能收到这么多的关注也一点不奇怪。
最终实现的操作系统的动态效果如图。
极客时间同学帮我详细介绍了一下作者。彭东是《深度探索嵌入式操作系统:从零开始设计、架构和开发》的作者,Intel 傲腾项目的关键开发者。自己开发了两个操作系统,分别是 x86_64 平台下的 LMOS 和 arm 平台下的 LMOSEM。其中 LMOS 都有 10 万行的代码量了,支持多进程、多线程、多 CPU、虚拟内存等特性。更厉害的是这位牛人并非计算机科班毕业,而纯粹是处于对操作系统和底层技术的热爱。
我觉得能有 10 W 行操作系统经验的作者带领实践,这门课一定不会打飞哥脸,不会拉跨的。而且价格也不贵,才一顿饭钱而已,非常值得。
课程上新特惠,立省 ¥40 结算输 「helloos11」,到手 ¥89如果你是新人, ¥59.9 就能入手
优惠就这几天,抓紧时间