微內核

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

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

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

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

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

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

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

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

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

相關條目
 外核心

 单一内核

参考文献 

操作系统技术
微內核