目录
文章目录
趣解 Linux 内核
今天,我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。 TurnOff.us 是一个极客漫画网站,作者 Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。今天解读的便是其中的一篇。
地基
地基(底层)由一排排的文件柜组成,井然有序,文件柜里放置着 “文件” —— 电脑中的文件。左上角,有一只胸前挂着 421 号牌的小企鹅,它表示着 PID(Process 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(这就是对外的终端)。比如说最左边 tty4 上输入了 “fre” ——这是想输入 “freshmeat…” 么 :d ;它旁边的 tty2 和 tty3 就正常多了,看起来是比较正常的命令;tty7 显示的图形界面,对,图形界面(X Window)一般就在 7 号终端;tty5 和 tty6 是空的,这表示这两个终端没人用。等等,tty1 呢?
跃层,也是最接近用户的一层。两只企鹅在名为 TTY 的窗口面前工作,一只企鹅在控制台前戳戳点点,另一只在仔细端详程序的输出。TTY 中文为电传打字机,关于 TTY,可以追溯到计算机的远古时代,那时候我们使用的还只是没有主机的打字机。设备的输入要经过长长的串行线路才能到达那昂贵的大型主机(Mainframe Computer)。
作为 Unix-like 的 Linux 也继承了这一特性,在 /dev 目录下和 ps 命令的输出中我们都可以看到它的身影。
TTY(终端)是对外沟通的渠道之一,但是,不是每一个进程都需要 tty,某些进程可以直接通过其他途径(比如端口)来和外部进行通信,对外提供服务的,所以,这一层不是完整的一层,只是个跃层。
好了,我们有落下什么吗?
来源:oschina
链接:https://my.oschina.net/u/4300092/blog/4262983