有的人可能知道除了 Windows 以外,还有个家族庞大的操作系统,虽然不像 Android 那么随处可见,但起码跟 Android 有点亲戚关系。那就是 Linux 。最近有个 Geek 漫画网站 Turnoff 贴了 Daniel Stori 这位漫画作者的一篇漫画“Inside the Linux Kernal”,简单透过一些可爱的角色来介绍整个 Linux 基础架构的样貌。
首先我们先来看看“Inside the Linux Kernal”这个漫画的主要画风,其实只有一张图,图里有好几个企鹅。每个企鹅其实都有个身份。光看图可能不会领会每个企鹅的角色,没关系,让我们继续看下去。
这篇漫画画的是一栋大房子,大家可以注意到他有三层楼,正确的说是地下一层,地上两层。最上面那一层只有一点点,姑且当作他是独立的一层。既然要看懂,那么先从地下室看起吧。
在地下室我们可以看到许许多多的资料柜,抽屉拉开可以看到档案。这里是 Linux 的档案系统 FileSystem,左上角的地方有个身上挂着 421 这个数字的企鹅,代表 PID 421。PID 的意思是 Process ID,是代表每个程式的 Process 在系统里的代号。这个企鹅正在翻找资料,代表某个代号为 421 的 Process 正在读取或存取资料。右下角则有个小狗狗,代表 Watchdog 看门狗。虽然跟某个游戏同名,但这里指的是系统对档案系统的监控程式。
接着看到一楼,一楼的角色就多了,从刚刚地下室的部分我们可以知道,每个企鹅的身上通常都有号码,有的还会有说明。每个企鹅扮演不同的角色,在这个平面生活着。一楼有三个对外出口,其实代表外部进入系统的方式。当然也有可爱的 Watchdog 在监控著企鹅们。
首先看到一楼右下方,这里看到一个长桌。几个企鹅坐在这里像在开会或上课,底下铺着地毯。这里代表 Process Table,有个看起来像是大家长的企鹅正在对大家说话,也有个身上号码写着171的企鹅转过头没在听。整个地方代表 Kernel 内的 init Process,地毯则代表整个系统的 Process Table。所有坐在桌前的企鹅们都在等待着 Process,在系统状态中,这些 Process 被视为 wait 。
Process Table 旁的 Watchdog 紧盯着整个 Process Table 的状态,如果状况失控, Watchdog 就会提醒主人处理这些企鹅。
漫画中一楼有三个出口,为在整张图最左边的是编号 80 的出口,而有个号码为 1341 的企鹅头顶着一片羽毛守着门。 80 这个数字同时也是 httpd 网页服务器的预设埠号,若系统作为网页服务器时,连入主机读取网页的使用者必定会经过 port 80 。当然,提到 httpd 网页服务器,就不得不提到大名鼎鼎的 Apache 了。Apache 网页服务器软件的代表符号就是一片印地安羽毛,这也点出了这个站在80号出口的企鹅的真实身份。
一楼三门已经介绍了最左边的 80 号门,现在介绍比较靠近图中间的 21 号门。21号门也就是 port 21 ,是 FTP 服务的预设埠号,但随着 FTP 常出现安全性问题,是新手骇客突破系统的最佳路径后,Port 21 也渐渐比较少被用到。光看这个门牌都歪了,还贴了个禁止通行的符号,就知道这个门是多么不受欢迎了。
三门终于讲到最后一门,就是漫画中最右边的一扇门,这扇门不但有端正的门牌,还有个戴墨镜的企鹅在把手,延续前面两个门的经验,我们已经可以确定这个门是 Port 22 ,英文说明也注记这是 ssh daemon。ssh 的意思是 Secure Shell,是一种建立在应用层与传输层基础上的安全协议,为电脑提供安全的传输环境。FTP 不安全,那就用 ssh+FTP 安全的传输档案。埠号改为21号相邻的22号,远端连线控制 Linux 不安全,那就透过 ssh 加密远端连线连进来,也因此这个埠通常是各家 Linux 重点注意安全漏洞的地方。这里的小企鹅也就看起来一脸保镖样了。
讲完了门来看看楼梯,这个楼梯是一楼通往地下的入口。刚刚说过一楼就是档案系统 FileSystem,这里的FS就是指 FileSystem。
在通往 FS 的楼梯附近可以看到一个满头大汗看着手表的企鹅,他叫做 Cron。Cron 是 Linux 系统中用来进行定时任务的 Process,所以这里的企鹅严守时间,绝不漏掉任何一项预定计划。
这里则可以看到两个扛着水管的企鹅,从发型来看好像性别不一样(?),这是 pipe,pipe是 Linux 指令的一种命令形式,让两个 Process 来传递资讯,同时执行一个指令,将指令更妥善的输出给使用者。
这个摇晃着红酒杯嘴唇像染著鲜血的企鹅,其实是 Linux 上的开放源代码专案“WINE”,WINE 如同字面上的意义是酒,但真正的作用是让 Windows 程式能尽可能的在 Linux 底下执行。虽然不能模拟的尽善尽美,但已经能做到许多人想做的事。一些专案甚至衍生自 WINE ,开发出功能更强,甚至跑些游戏大作都有机会的模拟软件。
一楼看过了,接着我们上阁楼(或者说楼中楼)。这里可以看到六个屏幕,每个屏幕上的标签写着 tty,tty 代表 TeleTYpewriter ,主要是因为这个画面有点像以前的电传打字机,tty 一般来说有 1~7 的数字编号,也就是 tty1、tty2、tty3……一直到 tty7。通常 tty1 到 tty6 都是指令界面,像是漫画中 tty4 中输入了 fre,tty7 就是一般 Linux 的图形界面所在终端位置,但也不一定每个都是 tty7 ,只是多数来说是这样。
最后,这个小妖精到底是谁啊?他是作者的自画像?还是某个跑进系统来的病毒?或者只是刚好作者画腻了企鹅想换个角色?就让大家自己猜猜看啰!