有的人可能知道除了 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 ,只是多數來說是這樣。
最後,這個小妖精到底是誰啊?他是作者的自畫像?還是某個跑進系統來的病毒?或者只是剛好作者畫膩了企鵝想換個角色?就讓大家自己猜猜看囉!