shell 作業系統和核心

2021-09-02 12:31:45 字數 1034 閱讀 4299

之前在知乎上回答過這個問題「shell、作業系統和核心是一回事嗎?」,現在也在blog上總結一下

核心需要做的工作:程序管理(建立程序、程序排程等)、程序間通訊(管道、訊號等)、檔案操作(在硬碟上以我們熟悉的檔案的形式建立檔案,讀檔案,寫檔案等和儲存修改等),記憶體管理(段、頁,線性位址到實體地址、程序共享頁面),網路(tcp/ip,和遠端的計算機收發訊息的協議),緩衝區(記憶體與外設之間的cache,多程序操作緩衝區),以及最開始的計算機硬體中只是作業系統剛剛載入的空空如也的狀態到系統怠速迎接響應使用者的需求等等等等。核心是作業系統最最核心的部分,可以將核心比喻成大腦,遇到事情,如何應激面對,呼叫自己身體的其他部分(譬如一些外設)。

shell要做的工作:剛剛將核心比喻成大腦,shell我覺得可以比喻成**、眼睛、耳朵等用於感知的器官。使用者的應用程式如何讓核心去排程去執行它,我們不可能一下子將應用程式要做的計算直接塞到大腦(核心)中,shell就是應用程式的入口。shell本身也是乙個程序,當沒有需求的時候它處於休眠狀態,當有需求的時候,它就執行起來。當我們使用者有需求的時候,譬如在terminal執行./helloworld,shell這個程序感知我們這一命令需求,它就作為我們helloworld的父程序,去為我們helloworld未來以後能夠在程序排程的時候被排程做準備工作,例如fork()等,而fork做的工作,譬如建立程序控制塊等就是核心要做的工作,可以比喻成你要記住一篇英語課文,那你的大腦需要分化出一部分腦細胞用於記住這篇課文。

硬體譬如顯示器,硬碟,鍵盤等可以比喻成四肢、手(或者乾脆比喻成骨頭)等,因為他們是能夠幹具體的事情的,譬如你的手能夠將大腦中記住的課文寫下本子上,同時核心也能夠根據應用程式的需要將「hello world!」寫在顯示器上。

還有一部分很重要的就是硬體的驅動程式,可以將它比喻成神經細胞,就是大腦的命令需要他們傳輸到四肢上。

這樣將計算機系統解剖了,可能不恰當。我認為作業系統 = 核心 + shell + 驅動,不知道這麼說恰恰不恰當。哦,對了,作業系統的順利工作離不開中斷技術(硬、軟)!

什麼是作業系統?作業系統和核心的關係

什麼是作業系統 精簡的說的話,作業系統就是乙個協調 管理和控制計算機硬體資源和軟體資源的控制程式。作業系統是裸機上的第乙個軟體程式,作業系統用於管理硬體,並且提供統一的硬體操作介面 用程式呼叫。硬體的介面是比較醜陋複雜的,作業系統封裝後的介面比較優雅,方便應用程式呼叫,不用去直接操作硬體,了解硬體細...

作業系統的核心

核心就是 kernel 它是作業系統最底層的東西,每個作業系統都有自己的核心,由它來掌管整個硬體資源的工作狀態。所以,當有新的硬體加入到作業系統中時,若核心並沒有支援它,這個新硬體就無法工作,因為控制它的核心並不認識它。一般來說,核心為了實現使用者所需要的正確運算結果,必須要管理的事項有以下幾項。1...

作業系統核心編譯

sudo apt get install libncurses5 dev libssl dev sudo apt get install build essential openssl sudo apt get install zlibc minizip sudo apt get install l...