今天,为大家解读一幅来自 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,某些进程可以直接通过其他途径(比如端口)来和外部进行通信,对外提供服务的,所以,这一层不是完整的一层,只是个跃层。

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

这小丑是谁啊?

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

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

免责声明:转发文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

看漫画,学Linux内核!看完明白小企鹅们在干啥了吧?相关推荐

  1. 看漫画学python电子书-看漫画还能学Python❓❓❓| 0基础小白福音

    ��你还在枯燥无味地学编程吗?你还在闷头背诵那些根本没有理解的内容?根本不用那么煎熬!想不想来体验一下翻着漫画就搞定Python的感觉?? <看漫画学Python:有趣.有料.好玩.好用(全彩版 ...

  2. 看漫画学python_《看漫画学Python:有趣、有料、好玩、好用(全彩版)(博文视点出品)》(关东升)【摘要 书评 试读】- 京东图书...

    在大数据和人工智能时代,Python是一门举足轻重的编程语言.本书通过漫画讲解Python,学习起来生动有趣,非常值得我们阅读和学习. 微信公众号[程序员小灰]运营者.图书<漫画算法>作者 ...

  3. 看漫画学python电子书-看漫画学Python(有趣有料好玩好用全彩版)

    导语 内容提要 Python是一门既简单又强大的编程语言,被广泛应用于数据分析.大数据.网络爬虫.自动化运维.科学计算和人工智能等领域.Python也越来越重要,成为国家计算机等级考试科目,某些中小学 ...

  4. 完整版看漫画学Python全套资料,新手入门不容错过哦~

    你还在枯燥无味地学编程吗? 你还在闷头背诵那些根本没有理解的内容吗? 根本不用那么煎熬!想不想来体验一下翻着漫画就搞定Python的感觉?? <看漫画学Python:有趣.有料.好玩.好用(全彩 ...

  5. 《看漫画学Python》1、2版分享,python最佳入门教程,中学生用业余时间都能学会,北大教授看完都这样定义它

    前言 学习Python的小伙伴大部分应该都知道<看漫画学Python:有趣.有料.好玩.好用(全彩版)>这本书! 但是刚开始接触Python的朋友都会有一个共同的烦恼,自学好无聊,好枯燥, ...

  6. 风靡全网的《看漫画学Python》1、2版分享,python最佳入门教程,中学生用业余时间都能学会,北大教授看完都这样定义它

    前言 学习Python的小伙伴大部分应该都知道<看漫画学Python:有趣.有料.好玩.好用(全彩版)>这本书! 但是刚开始接触Python的朋友都会有一个共同的烦恼,自学好无聊,好枯燥, ...

  7. 看漫画学Java,这本书带你从青铜成为Java王者 【赠书福利】

    文末送书福利,记得看完哈 小白兔一直想学习 Java,在它学习了一些 Java 知识后,想通过 Java 来完成实际操作,但是还不是很懂,于是它询问了这方面的大牛--大牛哥. 小白兔:"我打 ...

  8. python入门学习[看漫画学Python:有趣、有料、好玩、好用读书笔记]

    写在前面:本文中绝大多数图片来源于图书:看漫画学Python:有趣.有料.好玩.好用,本文仅供个人学习使用,如有侵权,请联系删除. 学习编程语言最好的方式就是多写,多写,多写!!!哪有什么快速掌握,能 ...

  9. 爆火的《看漫画学Python》出PDF版了,文末自取

    学习Python的小伙伴大部分应该都知道<看漫画学Python:有趣.有料.好玩.好用(全彩版)>这本书! 毕竟,如果在B站搜索"漫画 Python"等相关关键词,会看 ...

最新文章

  1. 2020年Spring Cloud最后一个大版本发布!
  2. html多重边框,中间空白,CSS揭秘之多重边框的实现
  3. 全球及中国烯丙基硫脲行业十四五需求产量及投资规模预测报告2022版
  4. HTML-参考手册: URL 编码
  5. AutoMapper入门使用
  6. 谈EXPORT_SYMBOL使用
  7. linux搭建vsftp服务器_Linux安装配置vsftp搭建FTP的详细配置
  8. 英特尔布局5G 提供端到端的解决方案
  9. 【nyoj - 890】 分东西 (水题 二进制)
  10. php 防止url输入,php防止伪造数据从地址栏URL提交的方法
  11. explorer.exe中发生未处理的win32异常
  12. 转 .net里如何判断中文字符长度
  13. python中serial模块的使用_python中pyserial模块使用方法
  14. 加密芯片——摘要算法特点与应用注意事项
  15. VS2015编译ffmpeg的问题解决
  16. Adobe Flash离线安装包下载
  17. 如果你毕业想进央企, 那就选这些大学, 性价比很高
  18. 华为无线2020春招一面二面主管面-3.25
  19. java 百度经纬度 转换为 高德经纬度 谷歌
  20. 云业务“探路” 中国联通成立产业互联网子公司

热门文章

  1. php写的squid验证辅助器
  2. python opencv立体测距 立体匹配BM算法
  3. DM365 u-boot启动分析
  4. h.264 视频解码的一点小经验(ffmpeg)
  5. SLVS-EC接口学习
  6. 32位oracle_oracle 性能调优
  7. c++分治法求最大最小值实现_程序员:算法导论,分治法、归并排序,伪代码和Java实现...
  8. Visual Studio 2008 环境变量的配置(参考设置VS2010)
  9. This is Me!——回顾第一个项目的前前后后
  10. 双网卡oracle rac,Linux+Oracle 10g RAC双网卡绑定和解除绑定的实现(2)