微內核

Multi tool use在資訊科學中,微内核(英语:Microkernel,μ-kernel),又稱為微核心,是一種內核的設計架構,由一群盡可能將數量最小化的軟體程式組成,它們負責提供、實作一個作業系統所需要的各種機制與功能。這些最基礎的機制,包括了底層位址空間管理,執行緒管理,與行程間通訊(IPC)。
概論
微核心的設計理念,是將系統服務的實作,與系統的基本操作規則區分開來。它實作的方式,是將核心功能模組化,劃分成幾個獨立的行程,各自運行,這些行程被稱為服務(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等,都宣稱採用微核心架構。為了追求效能,他們將需要具備特權的服務組件放進核心空間,違反了微內核的基本設計原則,更為接近整塊性核心的設計方式。這被稱為混合核心。
相關條目
操作系统
|
---|
| 概述 | |
---|
| 内核 |
系统结构 | - Exokernel
- 混合
- 微內核
- 整塊性核心
- 尾闾内核
- 单一内核
|
---|
| 组件 | |
---|
|
---|
| 行程管理 |
概念 | - 上下文交換
- 中斷
- 行程間通訊
- 行程
- 行程控制表
- 实时操作系统
- 线程
- 分時系統
|
---|
| 调度算法 | - 多任务处理
- 固定优先级抢占
- 多级反馈队列
- 抢占式多任务处理
- 循環制
- 短进程优先
|
---|
|
---|
| 記憶體管理和資源保护 | - 总线错误
- 一般保护错误
- 記憶體保護
- 分頁
- 分级保护域
- 記憶體區段錯誤
- 虚拟内存
|
---|
| 存储访问和文件系统
| - 啟動程式
- 碎片整理
- 设备文件
- 文件属性
- Inode
- 日志
- 分区
- 虛擬檔案系統
- 虚拟磁带库
|
---|
| 操作系统列表 | - AmigaOS
- Android
- BeOS
- BSD
- Chrome OS
- CP/M
- DOS
- GNU
- Haiku
- Illumos
- iOS
- Linux
Macintosh
- MINIX
- MorphOS
- MUSIC/SP
- NOS
- NGB TVOS
- OpenVMS
- ORVYL
- OS/2
- OSv
- Pick
- QNX
- ReactOS
- RISC OS
- RSTS/E
- RSX-11
- RT-11
- Solaris
TOPS-10/TOPS-20
- TPF
- tvOS
- UNIX
- Visi On
- VM/CMS
- VS/9
- Microsoft Windows
- Xinu
- z/OS
- watchOS
|
---|
| 其他概念 | 应用程序接口(API)
- 计算机网络
硬件抽象层(HAL)
- Live CD
- Live USB
殼層(OS Shell)
命令行界面(CLI)
图形用户界面(GUI)
- TUI
- VUI
- 预启动执行环境
|
---|
|
^ The MINIX 3 Operating System. minix3.org. (原始内容存档于2012-01-22).
faGYk,AIzQ Y7FdTuqCBSZ,z,xWQ8v QQgubVborNknKgbrR,er9hlF7O PvkP1 XemlHgPleP12t3FjX,OZ5a9XB
Popular posts from this blog
Ramiro Burr's New Blog - to go back: www.ramiroburr.com From Latin rock to reggaeton, boleros to blues,Tex-Mex to Tejano, conjunto to corridos and beyond, Ramiro Burr has it covered. If you have a new CD release, a trivia question or are looking for tour info, post a message here or e-mail Ramiro directly at: musicreporter@gmail.com Top Tejano songwriter Luis Silva dead of heart attack at 64 By Ramiro Burr on October 23, 2008 8:40 AM | Permalink | Comments (12) | TrackBacks (0) UPDATE: Luis Silva Funeral Service details released Visitation 4-9 p.m. Saturday, Rosary service 6 p.m. Saturday at Porter Loring, 1101 McCullough Ave Funeral Service 10:30 a.m. Monday St. Anthony De Padua Catholic Church, Burial Service at Chapel Hills, 7735 Gibbs Sprawl Road. Porter Loring (210) 227-8221 Related New Flash: Irma Laura Lopez: long time record promoter killed in accident NewsFlash: 9:02 a.m. (New comments below) Luis Silva , one of the most well-known ...
政治主題的一部分 政党政治 政治光譜 左派 極左 中間偏左 中间派 中間偏左 激進中間 ( 英语 : Radical centrism ) 中間偏右 右派 中間偏右 極右 政綱 極端 激进 ( 英语 : Political radicalism ) 温和 ( 英语 : Moderate ) 改良 混合 ( 英语 : Syncretic politics ) 第三位置 保守 原教旨 反动 政党制度 无党制 ( 英语 : Non-partisan democracy ) 一党制 一党优...
Skip Main Navigation Links Jump to Footer var prs = rt: function(label,ts) ts==0?ts:new Date().getTime());; Scopus Preview Author search Sources Help Help Tutorials Contact us Close help menu Register if(true) var metainfo = new CARS.metadata(); metainfo.elementId = 'login_loginlink_expand'; metainfo.action = 'toggle'; metainfo.dependency = 'login_loginlink_expand,login_loginlink_collapse,login_pop_container'; metainfo.name = 'login_loginlink_expand'; CARS_dataList.push(metainfo); if(true) var metainfo = new CARS.metadata(); metainfo.elementId = 'login_loginlink_collapse'; metainfo.action = 'toggle'; metainfo.dependency = 'login_loginlink_collapse,login_loginlink_expand,login_pop_container'; metainfo.name = 'login_loginlink_collapse'; CARS_dataList.push(metainfo); Login if(true) var metainfo = new CARS....