今天,我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。 TurnOff.us 是一个极客漫画网站,作者Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。今天解读的便是其中的一篇。 在开始之前,我们先来看看这幅漫画的全貌!

标题

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

地基

一个房子最重要的就是地基,所以我们先从地基讲起。

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

第一层

接下来的一层就比较热闹了:

在这一层,最引人瞩目的莫过于中间的一块垫子,众多小企鹅在围着着桌子坐着。这个垫子的区域代表进程表。 左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长式的人物,不过看起来周围坐的那些小企鹅不是很听话——你看有好多走神、自顾自聊天的——“喂喂,说你呢,哇塞娃(171),转过身来”。它代表着 Linux 内核中的初始化(init)进程,也就是我们常说的 PID 为 1 的进程。桌子上坐的小企鹅都在等待状态wait中,等待工作任务。

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

这两位企鹅累的满头大汗,任劳任怨的在搬动着管道。

一只小企鹅可以把自己手上的东西通过这个管道,传递给后面的小企鹅。不过怎么看起来前面这只(男?)企鹅累得满头大汗,而后面那只(女?)企鹅似乎游刃有余——喂喂,前面那个,裤子快掉了~

当然,同样辛勤劳动的还有这位小老弟,cron进程。看它急得头上都冒汗了,这位老弟不断的看着手表,执行着周期性任务。

这只pid为1341的小企鹅就是大名鼎鼎的apache http服务器进程。它坚守在80端口提供http服务。它头上的羽毛就是apache的标志。

这位带着墨镜的企鹅守护着22端口。它看着要比其他的企鹅要更加有威严,脸上彷佛写着生人勿进四个字。原来它看护的是用于SSH服务的22端口,SSH服务常常用于远程登陆,所以必须要仔细审查。

还有年久失修的FTP端口21。FTP服务用的人已经很少了,以至于连门牌都快掉了。

这位端着红酒,略带醉意的就是wine,有了它,我们可以在Linux上运行一些简单的windows程序。类似的项目还有LKL(Linux Kernel Library) https://github.com/lkl。

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

跃层

首先我们来看看跃层,也是最接近用户的一层。两只企鹅在名为TTY的窗口面前工作,一只企鹅在控制台前戳戳点点,另一只在仔细端详程序的输出。TTY中文为电传打字机,关于TTY,可以追溯到计算机的远古时代,那时候我们使用的还只是没有主机的打字机。设备的输入要经过长长的串行线路才能到达那昂贵的大型主机(Mainframe Computer)。

作为Unix-like的Linux也继承了这一特性,在/dev目录下和ps命令的输出中我们都可以看到它的身影。

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

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

好了,我们有落下什么吗?

这小丑是谁啊? 啊哈,我也不知道,或许是病毒?你说呢?

参考:

https://linux.cn/article-8476-1.html SSH 协议端口号 22 背后的故事07

https://blog.csdn.net/liigo/article/details/9227205 Linux 软件看门狗 watchdog

https://en.wikipedia.org/wiki/Linux_Kernel_Library LKL的维基百科

http://turnoff.us/ 漫画出处

https://linux.cn/article-8290-1.html 引文出处

本文分享自微信公众号 - Linux阅码场(LinuxDev),作者:Linux内核之旅

原文出处及转载信息见文内详细说明,如有侵权,请私信删除。

原始发表时间:2018-11-18

漫画趣解Linux内核相关推荐

  1. [转帖]漫画趣解Linux内核

    漫画趣解Linux内核 https://blog.csdn.net/juS3Ve/article/details/84207142 Linux 内核漫画 今天,我来为大家解读一幅来自 TurnOff. ...

  2. 详解Linux内核之双向循环链表 By邪恶八进制

    [转载]详解Linux内核之双向循环链表 详解Linux内核之双向循环链表 信息来源:邪恶八进制信息安全团队(www.eviloctal.com) 摘要:      本文详解了内核中面向对象的list ...

  3. linux内核中的hook函数详解,linux内核中的hook函数详解

    在编写linux内核中的网络模块时,用到了钩子函数也就是hook函数.现在来看看linux是如何实现hook函数的. 先介绍一个结构体: struct nf_hook_ops,这个结构体是实现钩子函数 ...

  4. 详解Linux内核IO技术栈

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 在开始正式的讨论 ...

  5. CVE-2021-20226:详解 Linux 内核 IO_URING 子系统中的引用计数漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 趋势科技 ZDI 发布文章,详细描述了2020年6月收到的最近引入的 io_uring 子系统的引用计数漏洞情况.该漏洞导致在任意 fil ...

  6. 详解Linux内核态调试工具kdump

    目录 1.kdump介绍 1.1.kexec及其实现机制 1.2.几个基本概念 1.3.kdump机制 1.4.kdump执行流程 2.Kdump配置与使用 2.1.内核配置 2.2.安装kdump ...

  7. Linux内核中的vfs,详解linux内核VFS

    虚拟文件系统(VFS) 在我看来, "虚拟"二字主要有两层含义: 1, 在同一个目录结构中, 可以挂载着若干种不同的文件系统. VFS隐藏了它们的实现细节, 为使用者提供统一的接口 ...

  8. linux内核rop姿势详解,Linux内核ROP姿势详解(二)

    前言 在本教程的第1部分中,我们已经演示了如何为我们的系统(3.13.0-32内核-Ubuntu 12.04.5 LTS)找到有用的ROP gadgets用来构建一个用来提权的ROP链.我们还开发了一 ...

  9. linux内核编译 menuconfig详解,Linux内核编译menuconfig介绍

    menuconfig menuconfig是常用的配制工具,不用特意安装,好像是和GCC一起装上的. 注:menuconfig要用到ncurses的库,所以要安装它.下面的命令可以安装. apt-ge ...

最新文章

  1. 让 FileUpload 文本框只读
  2. HttpClient 讲解 (2) 项目封装
  3. c语言和java和汇编语言_C语言和汇编语言的区别是什么?
  4. php函数 chm,php函数手册chm最新
  5. Android 应用开发(43)---开关按钮ToggleButton和开关Switch
  6. Python selenium报错:selenium.common.exceptions.ElementClickInterceptedException
  7. 2.1.PHP7.1 狐教程-【PHP基础】
  8. promise的理解和使用-尚硅谷教程笔记
  9. 34 个免费学习编程的最佳网站
  10. 英语不好的程序员怎么样才能自己读英文官方文档?
  11. 教你如何用直播源码快速搭建直播平台
  12. 野火Linux内核编译
  13. 离散数学3_第1章__一些重要的重言蕴涵式__推理定律
  14. Huffman编解码
  15. 测试适合染发颜色的软件,5秒测出你适合染什么颜色的头发!准到爆!
  16. 百度搜索稳定性问题分析的故事(上)
  17. 紫光服务器型号,紫光新华三全新HPE Gen10系列服务器响彻“云”端
  18. 中国石油大学《化工热力学》第一阶段在线作业
  19. python实现两张图片拼接(身份证正反面图片拼接)
  20. 海康经纬度 转换 GPS坐标

热门文章

  1. 网络安全先驱传奇大佬自杀了,他的一生足够拍成一部电影
  2. 2022-06-29 AndroidR 获取接近传感器Proximity Sensor的信号,休眠和唤醒。
  3. 编程基础——鱼龙混杂来两波
  4. mysql 3306无法访问_Mysql 3306端口无法被远程机器访问
  5. 你想每天定时向你的女朋友发一句早安吗 ?教你实现一个微信机器人
  6. 团队的英文翻译缩写_动漫团队名称-团队英文名称~~人数不限的、 最好是** – 手机爱问...
  7. php微信绑定银行卡_微信开发企业支付到银行卡PHP
  8. h5 实现微信支付以及易宝银行卡支付
  9. 深入浅出移动直播技术之帧率、码率和分辨率
  10. 计算机二级的公共基础课水平测试,计算机二级公共基础知识复习试题含答案