{{위키데이터 속성 추적}}
[[파일:OS-structure.svg|섬네일|450px|모놀리딕과 마이크로커널 기반 운영 체제의 구조]]
'''마이크로커널'''(microkernel)은 [[컴퓨터 과학]]에서 [[운영 체제]]에 추가되어야 하는 [[메커니즘]]을 최소한으로 제공하는 초소형 커널이다. 이러한 미니멀리티 메커니즘에는 낮은 수준의 [[주소 공간]] 관리, [[스레드 (컴퓨팅)|스레드]] 관리, [[프로세스 간 통신]](IPC)을 포함한다. 하드웨어가 여러 개의 [[보호 링|링]]과 [[CPU 모드]]를 제공한다면 마이크로커널은 최고 권한 수준(일반적으로 [[보호 링|수퍼바이저 및 커널 모드]]로 부름)에서 실행되는 유일한 소프트웨어가 된다. 소스 코드 크기 측면에서 마이크로커널은 일반적으로 10,000줄 이하의 코드를 지니는 경향이 있다. 이를테면 [[미닉스]] 3의 경우 6,000줄 이하의 코드가 있다.<ref>{{웹 인용 |url=http://www.minix3.org/ |title=The MINIX 3 Operating System |work=minix3.org |archiveurl=https://web.archive.org/web/20120621091849/http://www.minix3.org/ |archivedate=2012-06-21 |확인날짜=2012-06-08 |url-status=dead }}</ref>

== 역사 ==
마이크로커널은 1980년대에 컴퓨터 세상의 변화에 발맞추고 기존의 모노 커널(mono-kernel)을 이 새로운 시스템에 적응시키는 데 대한 문제점에 마주하면서 개발되었다. 새로운 장치 드라이버, [[프로토콜 스택]], 파일 시스템 및 기타 낮은 수준의 시스템들이 내내 개발되고 있었다. 이 코드는 일반적으로 모놀리딕 커널에 위치했기 때문에 상당한 작업과 주의가 필요한 코드 관리가 필요했다.

마이크로커널은 [[엑소커널]]과 매우 관계가 있다.<ref name="Liedtke_96">{{저널 인용
 | last = Liedtke
 | first = Jochen
 | date = September 1996
 | title = Towards Real Microkernels
 | journal = Communications of the ACM
 | volume = 39
 | issue = 9
 | pages = 70–77
 | pmid =
 | doi = 10.1145/234215.234473
 | id =
 | url =
 | laysummary =
 | laysource =
 | laydate =
 | quote =
 }}</ref> 이들은 [[하이퍼바이저]]와 많은 공통점이 있지만<ref name="Heiser_UL_06">{{저널 인용
 |title        = Are Virtual-Machine Monitors Microkernels Done Right?
 |authorlink1  = Gernot Heiser
 |last1        = Heiser
 |first1       = Gernot
 |last2        = Uhlig
 |first2       = Volkmar
 |last3        = LeVasseur
 |first3       = Joshua
 |journal      = ACM SIGOPS Operating Systems Review
 |volume       = 40
 |issue        = 1
 |pages        = 95–99
 |date         = January 2006
 |url          = http://os.ibds.kit.edu/65_747.php
 |publisher    = ACM
 |doi          = 10.1145/1113361.1113363
 |format       = PDF
 |access-date  = 2016-08-12
 |archive-date = 2014-01-13
 |archive-url  = https://web.archive.org/web/20140113115308/http://os.ibds.kit.edu/65_747.php
 |url-status   = dead
}}</ref> 후자의 경우 미니멀리티를 고수하지 않으며 [[가상 머신]] 지원에 특화되어 있다.

== 나노커널 ==
나노커널(nanokernel) 또는 피코커널(picokernel)이라는 용어는 역사적으로 다음을 가리킨다.
# 모든 커널 코드의 양이 매우 작은 커널
# 운영 체제 밑에 존재하는 가상화 계층 ([[하이퍼바이저]])
# 가장 낮은 수준의 커널 부분을 형성하는 [[하드웨어 추상화 계층]](HAL)

== 같이 보기 ==
* [[커널 (컴퓨팅)]]
** [[엑소커널]]
** [[하이브리드 커널]]
** [[모놀리식 커널]]
* [[신뢰 컴퓨터 기반]]
* [[임베디드 리눅스]]
* [[NuttX]]
* [[VxWorks]]

== 각주 ==
{{각주}}

== 추가 문헌 ==
* [http://citeseer.csail.mit.edu/cs?q=microkernel scientific articles about microkernels]{{깨진 링크|url=http://citeseer.csail.mit.edu/cs?q=microkernel }} (on [[CiteSeer]]), including:
** {{저널 인용 | author=   Dan Hildebrand|제목=An Architectural Overview of QNX|journal=Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures  | year=1992 |   pages=113–126 | isbn=   1-880446-42-1 }} - the basic QNX reference.
** {{저널 인용 | 제목=Can We Make Operating Systems Reliable and Secure? | author=Tanenbaum, A., Herder, J. and Bos, H. | journal=Computer | month=May | year=2006 | url=http://www.computer.org/portal/site/computer/menuitem.eb7d70008ce52e4b0ef1bd108bcd45f3/index.jsp?&pName=computer_level1&path=computer/homepage/0506&file=cover1.xml&xsl=article.xsl | pages=44–51 | doi=10.1109/MC.2006.156 | volume=39 | issue=5 | 확인날짜=2019-05-04 | 보존url=https://web.archive.org/web/20170621194406/https://www.computer.org/portal/site/computer/menuitem.eb7d70008ce52e4b0ef1bd108bcd45f3/index.jsp?&pName=computer_level1&path=computer%2Fhomepage%2F0506&file=cover1.xml&xsl=article.xsl | 보존날짜=2017-06-21 | url-status=dead }} -the basic reliable reference.
** {{저널 인용 |제목=Microkernel Operating System Architecture and Mach | author=Black, D.L., Golub, D.B., Julin, D.P., Rashid, R.F., Draves, R.P., Dean, R.W., Forin, A., Barrera, J., Tokuda, H., Malan, G., and Bohman, D. |journal=J. of Information Processing|volume=14 | month=March | year=1992 | issue=4}} - the basic Mach reference.
* [http://c2.com/cgi/wiki?MicroKernel MicroKernel page] from the [[Portland Pattern Repository]]
* The [[Tanenbaum–Torvalds debate]]
** [http://www.oreilly.com/catalog/opensources/book/appa.html The Tanenbaum-Torvalds Debate, 1992.01.29]
** Tanenbaum, A. S. "[https://web.archive.org/web/20180618202352/https://www.computer.org/portal/site/computer/menuitem.5d61c1d591162e4b0ef1bd108bcd45f3/index.jsp?&pName=computer_level1_article&TheCat=1005&path=computer%2Fhomepage%2F0506&file=cover1.xml&xsl=article.xsl& Can We Make Operating Systems Reliable and Secure?]".
** Torvalds, L. [http://www.realworldtech.com/forums/index.cfm?action=detail&id=66630&threadid=66595&roomid=11 Linus Torvalds about the microkernels again, 2006.05.09]
** Shapiro, J. "[https://web.archive.org/web/20080511190311/http://www.coyotos.org/docs/misc/linus-rebuttal.html Debunking Linus's Latest]".
** Tanenbaum, A. S. "[http://www.cs.vu.nl/~ast/reliable-os/ Tanenbaum-Torvalds Debate: Part II]".

{{운영 체제}}
{{전거 통제}}

[[분류:마이크로커널| ]]
[[분류:운영체제 기술]]