<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          漫畫 | Linux 內(nèi)核,簡直太形象了!

          共 2054字,需瀏覽 5分鐘

           ·

          2021-08-05 13:36

          星標/置頂公眾號??,硬核文章第一時間送達!

          來源  | EET


          今天,為大家解讀一幅來自 TurnOff.us 的漫畫 “InSide The Linux Kernel” 。

          TurnOff.us 是一個極客漫畫網(wǎng)站,作者Daniel Stori 畫了一些非常有趣的關于編程語言、Web、云計算、Linux 相關的漫畫。今天解讀的便是其中的一篇。

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


          這幅漫畫是以一個房子的側方刨面圖來繪畫的。使用這樣的一個房子來代表Linux 內(nèi)核。

          一、地基

          一個房子最重要的就是地基,所以我們先從地基講起。

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



          二、第一層

          接下來的一層就比較熱鬧了:

          在這一層,最引人矚目的莫過于中間的一塊墊子,眾多小企鵝在圍著著桌子坐著。這個墊子的區(qū)域代表進程表。

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



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

          這兩位企鵝累的滿頭大汗,任勞任怨的在搬動著管道。

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



          當然,同樣辛勤勞動的還有這位小老弟,cron進程。看它急得頭上都冒汗了,這位老弟不斷的看著手表,執(zhí)行著周期性任務。



          這只pid為1341的小企鵝就是大名鼎鼎的apache http服務器進程。它堅守在80端口提供http服務。它頭上的羽毛就是apache的標志。





          這位帶著墨鏡的企鵝守護著22端口。它看著要比其他的企鵝要更加有威嚴,臉上彷佛寫著生人勿進四個字。原來它看護的是用于SSH服務的22端口,SSH服務常常用于遠程登陸,所以必須要仔細審查。



          還有年久失修的FTP端口21。FTP服務用的人已經(jīng)很少了,以至于連門牌都快掉了。



          這位端著紅酒,略帶醉意的就是wine,有了它,我們可以在Linux上運行一些簡單的windows程序。類似的項目還有
          LKL(Linux Kernel Library) https://github.com/lkl



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



          三、躍層

          最后,我們來看看躍層,也是最接近用戶的一層。兩只企鵝在名為TTY的窗口面前工作,一只企鵝在控制臺前戳戳點點,另一只在仔細端詳程序的輸出。TTY中文為電傳打字機,關于TTY,可以追溯到計算機的遠古時代,那時候我們使用的還只是沒有主機的打字機。設備的輸入要經(jīng)過長長的串行線路才能到達那昂貴的大型主機(Mainframe Computer)。

          作為Unix-like的Linux也繼承了這一特性,在/dev目錄下和ps命令的輸出中我們都可以看到它的身影。

          在一層之上,還有一個躍層,這里有很多不同的屏幕,每個屏幕上寫著 TTY(這就是對外的終端)。比如說最左邊 tty4 上輸入了“fre”——這是想輸入“freshmeat...”么 :d ;它旁邊的 tty2 和 tty3 就正常多了,看起來是比較正常的命令;tty7 顯示的圖形界面噯,對,圖形界面(X Window)一般就在 7 號終端;tty5 和 tty6 是空的,這表示這兩個終端沒人用。等等,tty1 呢?

          tty(終端)是對外溝通的渠道之一,但是,不是每一個進程都需要 tty,某些進程可以直接通過其他途徑(比如端口)來和外部進行通信,對外提供服務的,所以,這一層不是完整的一層,只是個躍層。



          好了,我們有落下什么嗎?


          這小丑是誰啊?
          啊哈,我也不知道,或許是病毒?你說呢?

          -END-

          2T 程序員大禮包大放送,包括 C/C++、Linux、Python、Java、PHP、人工智能、單片機、樹莓派等。

          關注公眾號??,后臺回復1024」,即可免費獲?。?/span>

          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲第一视频欧美在线视频 | 91aV影院在线播放 | 伊人久久久 | 免费黄色一级片 | 操美女逼逼网站 |