漫画赏析：Linux 内核到底长啥样
今天，我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel”。 TurnOff.us 是一个极客漫画网站，他们会画一些关于编程语言、Web、云计算、Linux 相关的漫画。
内核 漫画
113.57.245.107
有意思
lovetoheart [QQ Browser 9.5|Windows 10]
2017-03-11T21:27:06.000
112.64.216.40
有点意思&nbsp; &nbsp;哈哈哈
执着的夏风 [Chromium 56.0|Ubuntu]
2017-03-11T23:17:34.000
120.36.190.221
还真的有人专门解释了 ，哈哈哈好
chenxinlong [Chrome 56.0|Mac 10.11]
2017-03-12T00:33:41.000
123.120.86.57
为什么不呢，我会做成一个系列
linux [Chrome 56.0|Mac 10.11]
2017-03-12T08:05:45.000
120.236.162.192
一目了然，生动有趣！
来自广东的 Firefox 52.0|Windows 7 用户
2017-03-13T09:00:51.000
1.180.235.38
有意思。
SageMa [Firefox 52.0|Windows 7]
2017-03-13T09:08:35.000
27.223.99.130
不错不错！
绿色圣光 [Firefox 52.0|GNU/Linux]
2017-03-13T11:40:11.000
112.64.217.17
有意思
生命不能琐碎 [Chromium 53.0|Ubuntu]
2017-03-13T14:33:46.000
111.203.12.97
hhhh 好玩
噪音未来 [Chrome 56.0|Windows 7]
2017-03-13T14:38:03.000
211.157.146.4
小丑尖尖的耳朵像精灵，应该指的是daemon吧
编程浪子 [Chrome 56.0|GNU/Linux]
2017-03-13T14:49:40.000
112.247.54.241
形象直观的解说Linux kernel，有心人，谢谢你了！
来自山东菏泽的 Chrome 47.0|Windows 7 用户
2017-03-13T18:26:53.000
106.120.101.170
真的很不错，想要转发到自己的博客，稍后会研读一下转发规则，谢谢作者
来自北京的 Firefox 51.0|Windows 8.1 用户
2017-03-14T09:48:35.000
123.120.86.57
保留出处、作者、译者这些就可以转载的~
linux [Chrome 56.0|Mac 10.11]
2017-03-14T21:18:21.000
183.14.132.118
棒极了，写代码时间长了，看个文章，酷
何亮 [Chrome 56.0|Windows 7]
2017-03-15T10:27:08.000
119.130.187.178
简单易懂
来自广东广州的 Firefox 45.0|GNU/Linux 用户
2017-03-16T12:00:51.000
58.211.119.28
虽然没看懂，但厉害了。
FoamValue [Chrome 57.0|Mac 10.12]
2017-03-16T13:31:58.000
61.223.149.108
知名的恐龍書要是也能用這種方式講解作業系統，那就很棒了。
来自台湾的 Firefox 52.0|Mac 10.12 用户
2017-03-18T16:47:13.000
117.140.188.59
意犹未尽啊,,,讲完了?
M_Kepler [Chrome 57.0|GNU/Linux]
2017-03-18T22:46:49.000
117.33.112.153
so...设备驱动算不算
来自陕西宝鸡的 WeChat 6.5|Android 5.1 用户
2017-03-20T19:58:43.000
218.197.153.121
原作者博客下也有人问小丑是啥，作者回复是GNOME进程
来自湖北武汉武汉大学的 Chrome 73.0|GNU/Linux 用户
2019-03-27T11:14:07.000
182.38.113.226
讲解的太有意思了，感谢作者分享！！
来自山东威海的 Firefox 83.0|Ubuntu 用户
2020-11-28T17:20:52.000
113.57.25.122
稍微有个疑问，底层地基部分是文件421的企鹅，是属于玩了一个文件421 读写执行的梗
来自湖北武汉的 Chrome 108.0|Windows 10 用户
2023-04-14T11:14:04.000
今天，我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel”。 TurnOff.us 是一个极客漫画网站，他们会画一些关于编程语言、Web、云计算、Linux 相关的漫画。
今天，我来为大家解读一幅来自 TurnOff.us 的漫画 “[InSide The Linux Kernel](http://turnoff.us/geek/inside-the-linux-kernel/)” 。 [TurnOff.us](http://turnoff.us/) 是一个极客漫画网站，作者Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。今天解读的便是其中的一篇。


在开始，我们先来看看这幅漫画的全貌！


![](/data/attachment/album/201703/20/172808pim5iueyqwa5egww.jpg)


这幅漫画是以一个房子的侧方刨面图来绘画的。使用这样的一个房子来代表 Linux 内核。


### 地基


作为一个房子，最重要的莫过于其地基，在这个图片里，我们也从最下面的地基开始看起：


![地基](/data/attachment/album/201703/20/173034wv1qodoavs7v11q1.jpg)


地基（底层）由一排排的文件柜组成，井然有序，文件柜里放置着“文件”——电脑中的文件。左上角，有一只胸前挂着 421 号牌的小企鹅，它表示着 PID（<ruby> 进程 ID <rp>  （ </rp> <rt>  Process ID </rt> <rp>  ） </rp></ruby>） 为 421 的进程，它正在查看文件柜中的文件，这代表系统中正有一个进程在访问文件系统。在右下角有一只小狗，它是<ruby> 看门狗 <rp>  （ </rp> <rt>  watchdog </rt> <rp>  ） </rp></ruby> ，这代表对文件系统的监控。


![一层（地面层）](/data/attachment/album/201703/20/173228e3ehznhh5wzuwnhk.jpg)


### 一层（地面层）


看完了地基，接下来我们来看地基上面的一层，都有哪些东西。


![进程表](/data/attachment/album/201703/20/173346wq87xgqp8kzk1up7.jpg)


在这一层，最引人瞩目的莫过于中间的一块垫子，众多小企鹅在围着着桌子坐着。这个垫子的区域代表进程表。


左上角有一个小企鹅，站着，仿佛在说些什么这显然是一位家长式的人物，不过看起来周围坐的那些小企鹅不是很听话——你看有好多走神、自顾自聊天的——“喂喂，说你呢，哇塞娃（171），转过身来”。它代表着 Linux 内核中的初始化（init）进程，也就是我们常说的 PID 为 1 的进程。桌子上坐的小企鹅都在<ruby> 等待状态 <rp>  （ </rp> <rt>  wait </rt> <rp>  ） </rp></ruby>中，等待工作任务。


![看门狗](/data/attachment/album/201703/20/173448yl694u97ihh6sl9h.jpg)


瞧瞧，垫子（进程表）两旁有两只小狗，它会监控小企鹅的状态（监控进程），当小企鹅们不听话时，它就会汪汪地叫喊起来。


![http 进程](/data/attachment/album/201703/20/173557n1i1xscsxiclue5s.jpg)


在这层的左侧，有一只号牌为 1341 的小企鹅，守在门口，门上写着 80，说明这个 PID 为 1341 的小企鹅负责接待 80 端口，也就是我们常说的 HTTP （网站）的端口。小企鹅头上有一片羽毛，这片羽毛大有来历，它是著名的 HTTP 服务器 Apache 的 Logo。喏，就是这只：


![apache logo](/data/attachment/album/201703/11/181641irppc393zm96lcbw.jpg)


向右看，我们可以看到这里仍有一扇门，门上写着 21，但是，看起来这扇门似乎年久失修，上面的门牌号都歪了，门口也没人守着。看起来这个 21 端口的 FTP 协议有点老旧了，目前用的人也比以前少了，以至于这里都没人接待了。


![无人看守的 FTP 进程](/data/attachment/album/201703/20/173801cijdj9iuqdzh4v2v.jpg)


而在最右侧的一个门牌号 22 的们的待遇就大为不同，居然有一只带着墨镜的小企鹅在守着，看起来好酷啊，它是黑衣人叔叔吗？为什么要这么酷的一个企鹅呢，因为 22 端口是 SSH 端口，是一个非常重要的远程连接端口，通常通过这个端口进行远程管理，所以对这个端口进来的人要仔细审查。


![SSH 守护进程](/data/attachment/album/201703/20/173855y3zutv6w2bgwfg2u.jpg)


它的身上写着 52，说明它是第 52 个小企鹅。


![到达文件系统](/data/attachment/album/201703/20/174017tl49c9ca4lh9wzur.jpg)


在图片的左上角，有一个向下台阶。这个台阶是底层（地基）的文件系统中的，进程们可以通过这个台阶，到文件系统中去读取文件，进行操作。


![Cron 任务](/data/attachment/album/201703/20/174114ex2yjd282wewe2dj.jpg)


在这一层中，有一个身上写着 217 的小企鹅，他正满头大汗地看着自己的手表。这只小企鹅就是定时任务（Crontab），他会时刻关注时间，查看是否要去做某个工作。


![管道](/data/attachment/album/201703/20/174204sqh4o4v94cwpvoib.jpg)


在图片的中部，有两个小企鹅扛着管道（PipeLine）在行走，一只小企鹅可以把自己手上的东西通过这个管道，传递给后面的小企鹅。不过怎么看起来前面这种（男？）企鹅累得满头大汗，而后面那只（女？）企鹅似乎游刃有余——喂喂，前面那个，裤子快掉了~


![Wine](/data/attachment/album/201703/20/174246utkckjcfj4efbf8z.jpg)


在这一层还有另外的一个小企鹅，它手上拿着一杯红酒，身上写着 411，看起来有点不胜酒力。它就是红酒（Wine）小企鹅,它可以干（执行）一些来自 Windows 的任务。


### 跃层


在一层之上，还有一个跃层，这里有很多不同的屏幕，每个屏幕上写着 TTY（这就是对外的终端）。比如说最左边 tty4 上输入了“fre”——这是想输入“freshmeat...”么 ：d ；它旁边的 tty2 和 tty3 就正常多了，看起来是比较正常的命令；tty7 显示的图形界面嗳，对，图形界面（X Window）一般就在 7 号终端；tty5 和 tty6 是空的，这表示这两个终端没人用。等等，tty1 呢？


![跃层](/data/attachment/album/201703/20/174350fb4ugtub22yd193d.jpg)


tty（终端）是对外沟通的渠道之一，但是，不是每一个进程都需要 tty，某些进程可以直接通过其他途径（比如端口）来和外部进行通信，对外提供服务的，所以，这一层不是完整的一层，只是个跃层。


好了，我们有落下什么吗？


![小丑？](/data/attachment/album/201703/20/174437u57e34zke23nb2e7.jpg)


这小丑是谁啊？


啊哈，我也不知道，或许是病毒？你说呢？

