前言
一张数学考卷,不是把最后一题最难的20分做出来,就算征服了整张考卷。
你会一道最难的题,真觉得剩下的80%,就是小菜一碟?
kernel不是编程天花板
kernel在不断地增长,torvalds大神也投入很多时间维护内核。全世界的开发者在用智慧贡献自己的代码。看看git多么地繁忙。
代码文件目录。
内核里有许多惊为天人的巧妙设计,每个细节都值得推敲,每段注释又是一段故事。
用漫画看看内核里都有些啥?
各司其职,还有汪汪,还有文件系统的一个个抽屉,形象吧。
好了,外行看个热闹,内行看个门道。相信你一定会注意到一些精巧的小细节。下面是细节剖析。
一切的基础,要从文件存取开始。PID=421的进程在读文件。还有一个看门狗。
这一桌子上,在文件系统的上层,是一堆进程,等着上饭。左边有一个幼儿园老师一样的小企鹅,指挥者各个进程听话。
PID=1341的进程守护者80端口,这个是http服务。也就是apachehttpweb服务器。
注意到这个半垂的21端口吗,ftp,早就不安全,而且也老旧了。
酷酷的22端口,是SSH服务监听的端口,稳定安全而又耍酷。
注意到楼梯口这个指示牌了吗,它指示这是去“文件系统FileSystem”的入口。
房间里这个忙碌的小企鹅是cron,整个系统时间调度都是它在跑。
还有那些pipeline用于连接不同的功能。
还有这个喝的晕乎乎的wine,要不少需要运行windows应用,它也可以休息了。
用户面对的,是一个个终端。linux是真正的多用户系统。看,这个大屏幕多么繁忙。
还有跑偏了的zombie进程,四处游荡。
怎么样,经过漫画一看,是不是觉得linux有趣的多了?
掌握工具,创造工具
都会编码了,还有什么能够阻挡你对自由的向往?
想证明你的实力吗,linus大神说了:
Talkischeap,showmethecode.
甭嘚啵嘚,来段代码看看。而开源社区的打什么,也真的是在用行动,用代码践行着这个格言。所以,内核拥有者源源不断的澎湃动力。
比如觉得内核里
init
管理系统进程调度实在不便,编写出来的脚本文件很麻烦,能不能化繁从简呢?有的。LennartPoettering为了解决这个混沌状态,开发了systemd。在centos7以后标配为系统发行版的任务调度应用。下面是systemd套件的架构功能图。
是不是看到很励志啊?有想法,有能力,有思维,大胆地给内核贡献代码吧。
全世界数以亿计的计算机运行着你写的代码,成就感能不爆棚吗?
Comeon!
结语
学内核而不止于内核。
王安石说:“读经则不足以知经”。
只有你博览群书,开阔眼界之后,再回来kernel看风景,相信你“坐看云起时”,别有一番领悟。
偶是@程序员小助手,持续分享编程与程序员成长相关的内容,~~