到处都要核酸,干脆搞这个!

编程技术宇宙

共 1365字,需浏览 3分钟

 ·

2022-05-04 07:11

大家五一假期好。

以往五一,我要么出去玩,要么回老家农忙,比如去年回家收油菜。

ba28500712a4cbc99814e978aa08b2a1.webp

今年情况大家都懂得,到处都是要核酸,就懒得跑了,趁着假期多看点书吧。

最近又在研读操作系统方面的东西,回顾了我从一开始学习操作系统至今的整个历程,大致分为了几个阶段:

1、是什么?

一开始的时候,一下子会有一大批的新名词打过来:

进程与线程、进程间通信、虚拟内存、系统调用、中断与异常、同步与异步、锁、文件系统···

在这个阶段,主要方式是看书,通过看书去学习弄懂这些概念的意义。然后知道每一个技术名字的含义以及它背后大概是如何实现的。

2、怎么做?

等弄懂了这些个技术名词的含义,第二阶段,会去研究它们的实现细节,看源码是最常用的方式,不管是开源的Linux,还是(半开源)的Windows,莫不如是。

比如探究系统调用的完整链条,比如研究进程创建的完整过程,再比如研究线程切换到底咋切换的···

3、总结与反思

当同时接触了多个操作系统内核之后,比如我先后学习了Windows内核和Linux内核,进入到第三个阶段,开始会横向对比它们的差异和相通之处,思考操作系统本质到底是什么?

比如任务调度要解决的核心问题到底是什么?

Windows的异步过程调用APC和Linux的Signal为什么如此相似,是巧合还是必然?

锁的本质又是什么?

······

现在讲操作系统的人有很多,但真正能讲好的人,其实没几个。

有一类人,他写的内容基本上网络上或者书上随处可见的东西,鲜有自己的理解。你要说他不是原创吧,确实也是他写的,你要说他是原创吧,这跟搬运书籍内容也差不了太多。

有一类人,他不给你讲具体的技术,而是扯一些泛泛而谈的东西,看书看视频啦,多动手啦,看源码啦之类的。你要说这不是干货吧,确实也是学习方法分享,你要说这是干货吧,但换个领域,这一套话也是适用。

还有一类人,他写的确实很干,但也正因为太干了,一上来就是很多专业名字术语,对读者的门槛要求很高,太容易劝退。

但有一个人,他不仅循循善诱、一步一步递进,还能融入自己的理解(这一点很重要,如果全是书本上有的,那还不如直接看书),把操作系统一层一层拨开给你看。

这个人,就是我不止一次推荐的那个家伙:闪客

他写了一个Linux操作系统相关的系列专栏,从零开始,以一个读小说的心态,从开机启动后的代码执行顺序,带着大家阅读和赏析 Linux 0.11 全部核心代码,了解操作系统的技术细节和设计思想。

9d101e70728873e66baa5a985608f4bf.webp

这个系列文章如今已经写了几十篇,据说已经有很多出版社在接洽他写书出版了。

我一口气看了好多篇,看得出来他花了很多心思,每一篇都有很多图片,尤其是他擅长的动图。没有大段大段的教科书式的晦涩描述,全是用大白话带着大家学习Linux源码。

57abf8a982f0a7d270a400008cd9cb0f.webp

而且他最擅长的就是从一个最简单的模型开始构建,一步一步迭代出操作系统中的真实实现。而不是绝大多数文章一上来就拿现状讲这是什么那是什么。

从最简单的模型开始,一步步搞懂每一次变化的原因,才会知其然更知其所以然。

就是这么优秀的系列文章,却因为起的标题太过朴素,很容易湮没在如今动辄“进腾讯了”、“进阿里了”、“进字节了”、“100万!”之类闪瞎眼的标题流之中。

我觉得,好东西,应该让更多人看到。

大家可以在他的公众号回复【os】追更这个系列。

相信我,百度一下就能找到的东西,我不会推荐给你。

浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报