
文章插圖
目錄
一、什么是內(nèi)核?
1.1 內(nèi)核的能力
二、操作系統(tǒng)分層
三、內(nèi)核是如何工作的?
四、Linux 的設(shè)計
4.1 Multitask and SMP(Symmetric multiprocessing)
4.2 ELF(Executable and Linkable Format)
4.3 Monolithic Kernel
4.4 在內(nèi)核層和在用戶層有什么區(qū)別?
五、Window 設(shè)計
六、總結(jié)
一、什么是內(nèi)核?說到操作系統(tǒng) , 就必須說內(nèi)核 。內(nèi)核是操作系統(tǒng)中應(yīng)用連接硬件設(shè)備的橋梁 。
1.1 內(nèi)核的能力對于一個現(xiàn)代的操作系統(tǒng)來說 , 它的內(nèi)核至少應(yīng)該提供以下 4 種基本能力:
管理進程、線程(決定哪個進程、線程使用 CPU);管理內(nèi)存(決定內(nèi)存用來做什么);連接硬件設(shè)備(為進程、和設(shè)備間提供通信能力);提供系統(tǒng)調(diào)用(接收進程發(fā)送來的系統(tǒng)調(diào)用) 。二、操作系統(tǒng)分層從上面 4 種能力來看操作系統(tǒng)和內(nèi)核之間的關(guān)系 , 通常可以把操作系統(tǒng)分成 3 層 , 最底層的硬件設(shè)備抽象、中間的內(nèi)核和最上層的應(yīng)用 。
?
三、內(nèi)核是如何工作的?內(nèi)核權(quán)限非常高 , 它可以管理進程、可以直接訪問所有的內(nèi)存 , 因此確實需要和進程之間有一定的隔離 。這個隔離用類似請求/響應(yīng)的模型 , 非常符合常理 。
?
但不同的是在瀏覽器、服務(wù)端模型中 , 瀏覽器和服務(wù)端是用不同的機器在執(zhí)行 , 因此不需要共享一個 CPU 。但是在進程調(diào)用內(nèi)核的過程中 , 這里是存在資源共享的 。
比如 , 一個機器有 4 個 CPU , 不可能讓內(nèi)核用一個 CPU , 其他進程用剩下的 CPU 。這樣太浪費資源了 。
再比如 , 進程向內(nèi)核請求 100M 的內(nèi)存 , 內(nèi)核把 100M 的數(shù)據(jù)傳回去 。這個模型不可行 , 因為傳輸太慢了 。
所以 , 這里多數(shù)操作系統(tǒng)的設(shè)計都遵循一個原則:進程向內(nèi)核發(fā)起一個請求 , 然后將 CPU 執(zhí)行權(quán)限讓出給內(nèi)核 。內(nèi)核接手 CPU 執(zhí)行權(quán)限 , 然后完成請求 , 再轉(zhuǎn)讓出 CPU 執(zhí)行權(quán)限給調(diào)用進程 。
四、Linux 的設(shè)計Linux 操作系統(tǒng)第一版是1991 年林納斯托·瓦茲(一個芬蘭的小伙子 , 當時 22 歲)用 C 語音寫的 。寫完之后他在網(wǎng)絡(luò)上發(fā)布了 Linux 內(nèi)核的源代碼 。又經(jīng)過了 3 年的努力 , 在 1994 年發(fā)布了完整的核心 Version 1.0 。
4.1 Multitask and SMP(Symmetric multiprocessing)MultiTask 指多任務(wù) , Linux 是一個多任務(wù)的操作系統(tǒng) 。多任務(wù)就是多個任務(wù)可以同時執(zhí)行 , 這里的“同時”并不是要求并發(fā) , 而是在一段時間內(nèi)可以執(zhí)行多個任務(wù) 。當然 Linux 支持并發(fā) 。
SMP 指對稱多處理 。其實是說 Linux 下每個處理器的地位是相等的 , 內(nèi)存對多個處理器來說是共享的 , 每個處理器都可以訪問完整的內(nèi)存和硬件資源 。這個特點決定了在 Linux 上不會存在一個特定的處理器處理用戶程序或者內(nèi)核程序 , 它們可以被分配到任何一個處理器上執(zhí)行 。
4.2 ELF(Executable and Linkable Format)?
這個名詞翻譯過來叫作可執(zhí)行文件鏈接格式 。這是一種從 Unix 繼承而來的可執(zhí)行文件的存儲格式 。我們可以看到 ELF 中把文件分成了一個個分段(Segment) , 每個段都有自己的作用 。
4.3 Monolithic Kernel這個名詞翻譯過來就是宏內(nèi)核 , 宏內(nèi)核反義詞就是 Microkernel , 微內(nèi)核的意思 。Linux 是宏內(nèi)核架構(gòu) , 這說明 Linux 的內(nèi)核是一個完整的可執(zhí)行程序 , 且內(nèi)核用最高權(quán)限來運行 。宏內(nèi)核的特點就是有很多程序會打包在內(nèi)核中 , 比如 , 文件系統(tǒng)、驅(qū)動、內(nèi)存管理等 。當然這并不是說 , 每次安裝驅(qū)動都需要重新編譯內(nèi)核 , 現(xiàn)在 Linux 也可以動態(tài)加載內(nèi)核模塊 。所以哪些模塊在內(nèi)核層 , 哪些模塊在用戶層 , 這是一種系統(tǒng)層的拆分 , 并不是很強的物理隔離 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 寶馬x3參數(shù)配置_凌志suv車型rx300參數(shù)
- iphone8上市時間和上市價格(iphone8配置參數(shù)價格
- e7540參數(shù)配置 e7540處理器性能
- 小米6配置參數(shù)設(shè)置_小米max2參數(shù)
- 小米3c參數(shù)詳細參數(shù) – 小米盒子3增強版配置和參數(shù)
- 金立商務(wù)手機參數(shù) 金立gn800是什么型號
- iphonex配置參數(shù)詳情 蘋果x型號序列號查詢
- 打游戲的筆記本電腦參數(shù) 適合玩游戲的筆記本推薦
- 佳能用適馬還是騰龍好 適馬dp1m參數(shù)
- opporealme配置參數(shù) oppo real me系列
