在開始,我們先來看看這幅漫畫的全貌!

這幅漫畫是以一個房子的側方刨面圖來繪畫的,使用這樣的一個房子來代表 Linux 內核,
地基
作為一個房子,最重要的莫過于其地基,在這個圖片里,我們也從最下面的地基開始看起:

地基(底層)由一排排的檔案柜組成,井然有序,檔案柜里放置著“檔案”——電腦中的檔案,左上角,有一只胸前掛著 421 號牌的小企鵝,它表示著 PID(行程 IDProcess ID) 為 421 的行程,它正在查看檔案柜中的檔案,這代表系統中正有一個行程在訪問檔案系統,
在右下角有一只小狗,它是看門狗watchdog ,這代表對檔案系統的監控,

一層(地面層)
看完了地基,接下來我們來看地基上面的一層,都有哪些東西,

在這一層,最引人矚目的莫過于中間的一塊墊子,眾多小企鵝在圍著著桌子坐著,這個墊子的區域代表行程表,
左上角有一個小企鵝,站著,仿佛在說些什么這顯然是一位家長式的人物,不過看起來周圍坐的那些小企鵝不是很聽話——你看有好多走神、自顧自聊天的——“喂喂,說你呢,哇塞娃(171),轉過身來”,它代表著 Linux 內核中的初始化(init)行程,也就是我們常說的 PID 為 1 的行程,桌子上坐的小企鵝都在等待狀態wait中,等待作業任務,

瞧瞧,墊子(行程表)兩旁有兩只小狗,它會監控小企鵝的狀態(監控行程),當小企鵝們不聽話時,它就會汪汪地叫喊起來,

在這層的左側,有一只號牌為 1341 的小企鵝,守在門口,門上寫著 80,說明這個 PID 為 1341 的小企鵝負責接待 80 埠,也就是我們常說的 HTTP (網站)的埠,小企鵝頭上有一片羽毛,這片羽毛大有來歷,它是著名的 HTTP 服務器 Apache 的 Logo,喏,就是這只:

向右看,我們可以看到這里仍有一扇門,門上寫著 21,但是,看起來這扇門似乎年久失修,上面的門牌號都歪了,門口也沒人守著,看起來這個 21 埠的 FTP 協議有點老舊了,目前用的人也比以前少了,以至于這里都沒人接待了,

而在最右側的一個門牌號 22 的們的待遇就大為不同,居然有一只帶著墨鏡的小企鵝在守著,看起來好酷啊,它是黑衣人叔叔嗎?為什么要這么酷的一個企鵝呢,因為 22 埠是 SSH 埠,是一個非常重要的遠程連接埠,通常通過這個埠進行遠程管理,所以對這個埠進來的人要仔細審查,

它的身上寫著 52,說明它是第 52 個小企鵝,

在圖片的左上角,有一個向下臺階,這個臺階是底層(地基)的檔案系統中的,行程們可以通過這個臺階,到檔案系統中去讀取檔案,進行操作,

在這一層中,有一個身上寫著 217 的小企鵝,他正滿頭大汗地看著自己的手表,這只小企鵝就是定時任務(Crontab),他會時刻關注時間,查看是否要去做某個作業,

在圖片的中部,有兩個小企鵝扛著管道(PipeLine)在行走,一只小企鵝可以把自己手上的東西通過這個管道,傳遞給后面的小企鵝,不過怎么看起來前面這種(男?)企鵝累得滿頭大汗,而后面那只(女?)企鵝似乎游刃有余——喂喂,前面那個,褲子快掉了~

在這一層還有另外的一個小企鵝,它手上拿著一杯紅酒,身上寫著 411,看起來有點不勝酒力,它就是紅酒(Wine)小企鵝,它可以干(執行)一些來自 Windows 的任務,
躍層
在一層之上,還有一個躍層,這里有很多不同的螢屏,每個螢屏上寫著 TTY(這就是對外的終端),比如說最左邊 tty4 上輸入了“fre”——這是想輸入“freshmeat...”么 :d ;它旁邊的 tty2 和 tty3 就正常多了,看起來是比較正常的命令;tty7 顯示的圖形界面噯,對,圖形界面(X Window)一般就在 7 號終端;tty5 和 tty6 是空的,這表示這兩個終端沒人用,等等,tty1 呢?

tty(終端)是對外溝通的渠道之一,但是,不是每一個行程都需要 tty,某些行程可以直接通過其他途徑(比如埠)來和外部進行通信,對外提供服務的,所以,這一層不是完整的一層,只是個躍層,
好了,我們有落下什么嗎?

這小丑是誰啊?
啊哈,我也不知道,或許是病毒?你說呢?
作者: Daniel Stori
原文:http://turnoff.us/geek/inside-the-linux-kernel/
譯者: LCTT 白宦成
譯文:https://linux.cn/article-8290-1.html
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2021最新版)
2.勁爆!Java 協程要來了,,,
3.最新!Log4j 2.x 再發版,正式解決核彈級漏洞,又要熬夜了,,,
4.Spring Boot 2.6 正式發布,一大波新特性,,
5.《Java開發手冊(嵩山版)》最新發布,速速下載!
覺得不錯,別忘了隨手點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/380812.html
標籤:Java
