fbpx
维基百科

微內核

電腦科學中,微内核(英語:Microkernel,μ-kernel),是一種內核的設計架構,由盡可能精簡的程式所組成,以實現一個作業系統所需要的最基本功能,包括了底層的定址空間管理、執行緒管理、與进程間通訊

微内核的示意图
分别为宏内核、微内核、混合內核的操作系统结构

概論

微核心的設計理念,是將系統服務的實作,與系統的基本操作規則區分開來。它實作的方式,是將核心功能模組化,劃分成幾個獨立的行程,各自運行,這些行程被稱為服務(service)。所有的服務行程,都運行在不同的位址空間。只有需要絕對特權的行程,才能在具特權的執行模式下運行,其餘的行程則在使用者空間運行。

這樣的設計,使內核中最核心的功能,設計上變的更簡單。需要特權的行程,只有基本的线程管理,内存管理进程间通信等,這個部份,由一個簡單的硬體抽象層與關鍵的系統調用組成。其餘的服務行程,則移至使用者空間。

讓服務各自獨立,可以減少系統之間的耦合度,易於實作與除錯,也可增進可移植性。它可以避免單一組件失效,而造成整個系統崩潰,內核只需要重新啟動這個組件,不致於影響其他伺服器的功能,使系統穩定度增加。同時,作業系統也可以視需要,抽換或新增某些服務行程,使功能更有彈性。

因為所有服務行程都各自在不同位址空間運行,因此在微核心架構下,不能像宏内核一樣直接進行函式調用。在微核心架構下,要建立一個行程間通訊機制,通過訊息傳遞的機制來讓服務行程間相互交換訊息,調用彼此的服務,以及完成同步。採用主從式架構,使得它在分散式系統中有特別的優勢,因為遠端系統與本地行程間,可以採用同一套行程間通訊機制。

但是因為行程間通訊耗費的資源與時間,比簡單的函式呼叫還多;通常又會涉及到核心空間到使用者空間的環境切換(context switch)。這使得訊息傳遞有延遲,以及傳輸量(throughput)受限的問題,因此微核心在通訊寬容度不足下,可能出現效能不佳的問題。

就程式碼數量來看,一般來說,因為功能簡化,微核心使用的程式碼比集成式核心更少,其原始碼通常小於10,000行。例如,MINIX 3的原始碼少於6,000行[1]。更少的程式碼,也代表更少的潛藏程式bug,對於重視安全性的人來說會較為偏好。

微核心列表

微内核结构必然是多线程的,第一代微内核,在内核提供了较多的服务,因此被称为“胖微内核”,它的典型代表是Mach,它既是GNU HURD也是Mac OS X的内核。第二代微内核只提供最基本的OS服务,典型的OS是QNX,QNX在黑莓手机BlackBerry 10系统中被采用。L4微内核系列也是著名的微核心。

變種微核心

包括Windows NTMac OS X等,都宣稱採用微核心架構。為了追求效能,他們將需要具備特權的服務組件放進核心空間,違反了微內核的基本設計原則,更為接近整塊性核心的設計方式。這被稱為混合核心

相關條目

参考文献

  1. ^ The MINIX 3 Operating System. minix3.org. [2016-04-01]. (原始内容存档于2012-01-22). 

微內核, 在電腦科學中, 微内核, 英語, microkernel, kernel, 是一種內核的設計架構, 由盡可能精簡的程式所組成, 以實現一個作業系統所需要的最基本功能, 包括了底層的定址空間管理, 執行緒管理, 與进程間通訊, 微内核的示意图, 分别为宏内核, 微内核, 混合內核的操作系统结构, 目录, 概論, 微核心列表, 變種微核心, 相關條目, 参考文献概論, 编辑微核心的設計理念, 是將系統服務的實作, 與系統的基本操作規則區分開來, 它實作的方式, 是將核心功能模組化, 劃分成幾個獨立的行程, 各. 在電腦科學中 微内核 英語 Microkernel m kernel 是一種內核的設計架構 由盡可能精簡的程式所組成 以實現一個作業系統所需要的最基本功能 包括了底層的定址空間管理 執行緒管理 與进程間通訊 微内核的示意图 分别为宏内核 微内核 混合內核的操作系统结构 目录 1 概論 2 微核心列表 3 變種微核心 4 相關條目 5 参考文献概論 编辑微核心的設計理念 是將系統服務的實作 與系統的基本操作規則區分開來 它實作的方式 是將核心功能模組化 劃分成幾個獨立的行程 各自運行 這些行程被稱為服務 service 所有的服務行程 都運行在不同的位址空間 只有需要絕對特權的行程 才能在具特權的執行模式下運行 其餘的行程則在使用者空間運行 這樣的設計 使內核中最核心的功能 設計上變的更簡單 需要特權的行程 只有基本的线程管理 内存管理和进程间通信等 這個部份 由一個簡單的硬體抽象層與關鍵的系統調用組成 其餘的服務行程 則移至使用者空間 讓服務各自獨立 可以減少系統之間的耦合度 易於實作與除錯 也可增進可移植性 它可以避免單一組件失效 而造成整個系統崩潰 內核只需要重新啟動這個組件 不致於影響其他伺服器的功能 使系統穩定度增加 同時 作業系統也可以視需要 抽換或新增某些服務行程 使功能更有彈性 因為所有服務行程都各自在不同位址空間運行 因此在微核心架構下 不能像宏内核一樣直接進行函式調用 在微核心架構下 要建立一個行程間通訊機制 通過訊息傳遞的機制來讓服務行程間相互交換訊息 調用彼此的服務 以及完成同步 採用主從式架構 使得它在分散式系統中有特別的優勢 因為遠端系統與本地行程間 可以採用同一套行程間通訊機制 但是因為行程間通訊耗費的資源與時間 比簡單的函式呼叫還多 通常又會涉及到核心空間到使用者空間的環境切換 context switch 這使得訊息傳遞有延遲 以及傳輸量 throughput 受限的問題 因此微核心在通訊寬容度不足下 可能出現效能不佳的問題 就程式碼數量來看 一般來說 因為功能簡化 微核心使用的程式碼比集成式核心更少 其原始碼通常小於10 000行 例如 MINIX 3的原始碼少於6 000行 1 更少的程式碼 也代表更少的潛藏程式bug 對於重視安全性的人來說會較為偏好 微核心列表 编辑微内核结构必然是多线程的 第一代微内核 在内核提供了较多的服务 因此被称为 胖微内核 它的典型代表是Mach 它既是GNU HURD也是Mac OS X的内核 第二代微内核只提供最基本的OS服务 典型的OS是QNX QNX在黑莓手机BlackBerry 10系统中被采用 L4微内核系列也是著名的微核心 變種微核心 编辑包括Windows NT Mac OS X等 都宣稱採用微核心架構 為了追求效能 他們將需要具備特權的服務組件放進核心空間 違反了微內核的基本設計原則 更為接近整塊性核心的設計方式 這被稱為混合核心 相關條目 编辑外核心单一内核参考文献 编辑 The MINIX 3 Operating System minix3 org 2016 04 01 原始内容存档于2012 01 22 取自 https zh wikipedia org w index php title 微內核 amp oldid 68693338, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。