昨天刷課時,刷到一張很有趣的關於 Linux 內核的漫畫,感覺會對剛接觸 Linux 的同學對 Linux 內核有更好的理解,在這裡分享給大家。
內核漫畫#
一些理解#
這張漫畫很好的展示了 Linux 基本的一些運作原理,Linux 作為一個分層結構的系統,在漫畫中將其簡單分為三層,底層為文件系統,用來管理和操作文件,中間層為進程管理運行的地方,上層為一些 tty,也就是命令行工具來處理系統與用戶交互的一些地方。
底層#
我們先從底層開始看,首先底層是一個 filesystem,也就是管理操作文件的地方,這裡的每一隻小企鵝我們可以理解為一個進程,我們可以看到這隻編號為 421 的企鵝正在打開文件櫃,這裡就可以理解為一個 PID 為 421 的進程正在讀取文件夾對文件系統進行一些操作。
中間層#
中間層為進程管理運行的地方,我們可以看到有很多隻不同的小企鵝在各司其職,在右下角的 process table 這裡桌子上坐著的小企鵝中,我們可以看到有一隻編號為 171 的小企鵝眯著眼在休息,這裡我們可以理解為在這個進程很空閒,並沒有在處理任務。
在進程以外,我們還可以看到幾隻小狗,這些小狗其實就是一些對進程管理和監控的系統,然後我們看牆上其實也有很多有意思的地方,比如左邊這個 1341 進程,我們可以看到它正在監聽 80 端口,所以說這個進程正在處理一些網絡輸入輸出的任務。
在後面還有一個 21 端口,我們可以看到這個 21 接口的牌牌已經搖搖欲墜了,說明很久都沒有人光顧這個接口了,大家應該知道 21 接口是負責 ftp 協議的,也一方面反映這個協議已經比較老舊了。
21 端口正好可以與隔壁的 22 端口比較一下,22 端口大家都知道為 SSH 默認監聽端口,我們可以看到監聽 22 端口的這隻小企鵝戴個墨鏡,感覺是非常的 famous 非常的精神抖擻,這也側面反映出 SSH 或者是 22 端口是目前比較常用或者比較流行的一個端口。
然後我們看到中間有一隻大企鵝 217 cron,這其實是一隻處理定時任務調度的進程。
也有一隻叫 wine 的企鵝,這個進程使得在運行 Linux、FreeBSD 或其他一些操作系統的計算機上運行一些 Windows 應用程序成為可能。
在後面可以看到有兩隻企鵝在一起搬一根管道,這裡也說明不同進程之間其實是可以通過管道進行通信的,不同進程是允許通信的。
最後我們可以看到有個樓梯是可以直接通往 FS 低層的文件系統的,也就是 421 這隻企鵝在幹的事。
頂層#
頂層主要是一些 tty,這層會與很多命令行接口來處理用戶的輸入,我們看到也有企鵝在監聽這些 tty,然後接收到用戶的輸入後通過進程處理後輸出一些結果。
腦圖#
最後給大家分享一張 Linux 的思維導圖,大家有需要自取。