---
author: Daniel Stori
category: 极客漫画
comments_data:
- date: '2017-03-11 21:27:06'
  message: 有意思
  postip: 113.57.245.107
  username: lovetoheart [QQ Browser 9.5|Windows 10]
- date: '2017-03-11 23:17:34'
  message: 有点意思&nbsp; &nbsp;哈哈哈
  postip: 112.64.216.40
  username: 执着的夏风 [Chromium 56.0|Ubuntu]
- date: '2017-03-12 00:33:41'
  message: 还真的有人专门解释了 ，哈哈哈好
  postip: 120.36.190.221
  username: chenxinlong [Chrome 56.0|Mac 10.11]
- date: '2017-03-12 08:05:45'
  message: 为什么不呢，我会做成一个系列
  postip: 123.120.86.57
  username: linux [Chrome 56.0|Mac 10.11]
- date: '2017-03-13 09:00:51'
  message: 一目了然，生动有趣！
  postip: 120.236.162.192
  username: 来自广东的 Firefox 52.0|Windows 7 用户
- date: '2017-03-13 09:08:35'
  message: 有意思。
  postip: 1.180.235.38
  username: SageMa [Firefox 52.0|Windows 7]
- date: '2017-03-13 11:40:11'
  message: 不错不错！
  postip: 27.223.99.130
  username: 绿色圣光 [Firefox 52.0|GNU/Linux]
- date: '2017-03-13 14:33:46'
  message: 有意思
  postip: 112.64.217.17
  username: 生命不能琐碎 [Chromium 53.0|Ubuntu]
- date: '2017-03-13 14:38:03'
  message: hhhh 好玩
  postip: 111.203.12.97
  username: 噪音未来 [Chrome 56.0|Windows 7]
- date: '2017-03-13 14:49:40'
  message: 小丑尖尖的耳朵像精灵，应该指的是daemon吧
  postip: 211.157.146.4
  username: 编程浪子 [Chrome 56.0|GNU/Linux]
- date: '2017-03-13 18:26:53'
  message: 形象直观的解说Linux kernel，有心人，谢谢你了！
  postip: 112.247.54.241
  username: 来自山东菏泽的 Chrome 47.0|Windows 7 用户
- date: '2017-03-14 09:48:35'
  message: 真的很不错，想要转发到自己的博客，稍后会研读一下转发规则，谢谢作者
  postip: 106.120.101.170
  username: 来自北京的 Firefox 51.0|Windows 8.1 用户
- date: '2017-03-14 21:18:21'
  message: 保留出处、作者、译者这些就可以转载的~
  postip: 123.120.86.57
  username: linux [Chrome 56.0|Mac 10.11]
- date: '2017-03-15 10:27:08'
  message: 棒极了，写代码时间长了，看个文章，酷
  postip: 183.14.132.118
  username: 何亮 [Chrome 56.0|Windows 7]
- date: '2017-03-16 12:00:51'
  message: 简单易懂
  postip: 119.130.187.178
  username: 来自广东广州的 Firefox 45.0|GNU/Linux 用户
- date: '2017-03-16 13:31:58'
  message: 虽然没看懂，但厉害了。
  postip: 58.211.119.28
  username: FoamValue [Chrome 57.0|Mac 10.12]
- date: '2017-03-18 16:47:13'
  message: 知名的恐龍書要是也能用這種方式講解作業系統，那就很棒了。
  postip: 61.223.149.108
  username: 来自台湾的 Firefox 52.0|Mac 10.12 用户
- date: '2017-03-18 22:46:49'
  message: 意犹未尽啊,,,讲完了?
  postip: 117.140.188.59
  username: M_Kepler [Chrome 57.0|GNU/Linux]
- date: '2017-03-20 19:58:43'
  message: so...设备驱动算不算
  postip: 117.33.112.153
  username: 来自陕西宝鸡的 WeChat 6.5|Android 5.1 用户
- date: '2019-03-27 11:14:07'
  message: 原作者博客下也有人问小丑是啥，作者回复是GNOME进程
  postip: 218.197.153.121
  username: 来自湖北武汉武汉大学的 Chrome 73.0|GNU/Linux 用户
- date: '2020-11-28 17:20:52'
  message: 讲解的太有意思了，感谢作者分享！！
  postip: 182.38.113.226
  username: 来自山东威海的 Firefox 83.0|Ubuntu 用户
- date: '2023-04-14 11:14:04'
  message: 稍微有个疑问，底层地基部分是文件421的企鹅，是属于玩了一个文件421 读写执行的梗
  postip: 113.57.25.122
  username: 来自湖北武汉的 Chrome 108.0|Windows 10 用户
count:
  commentnum: 22
  favtimes: 15
  likes: 0
  sharetimes: 0
  viewnum: 47397
date: '2017-03-11 18:16:00'
editorchoice: false
excerpt: 今天，我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel”。 TurnOff.us 是一个极客漫画网站，他们会画一些关于编程语言、Web、云计算、Linux
  相关的漫画。
fromurl: http://turnoff.us/geek/inside-the-linux-kernel/
id: 8290
islctt: true
largepic: /images/p/201703/20/172808pim5iueyqwa5egww.jpg.large.jpg
permalink: /article-8290-1.html
pic: /data/attachment/album/201703/20/172808pim5iueyqwa5egww.jpg.thumb.jpg
related: []
reviewer: ''
selector: ''
summary: 今天，我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel”。 TurnOff.us 是一个极客漫画网站，他们会画一些关于编程语言、Web、云计算、Linux
  相关的漫画。
tags:
- 内核
- 漫画
thumb: false
title: 漫画赏析：Linux 内核到底长啥样
titlepic: false
translator: bestony
updated: '2017-03-11 18:16:00'
---

今天，我来为大家解读一幅来自 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)


这小丑是谁啊？


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