CINXE.COM

Microkernel - Wikipedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Microkernel - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"7db29228-aaa2-4502-bff1-e9fc8eeee0ef","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Microkernel","wgTitle":"Microkernel","wgCurRevisionId":1275264783,"wgRevisionId":1275264783,"wgArticleId":20023,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["CS1 maint: location missing publisher","Articles with short description","Short description matches Wikidata","Use dmy dates from February 2021","All articles with unsourced statements","Articles with unsourced statements from November 2012","Articles with unsourced statements from June 2015","Articles containing potentially dated statements from 2012","All articles containing potentially dated statements","Articles with unsourced statements from August 2010", "CS1 maint: multiple names: authors list","Microkernels"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Microkernel","wgRelevantArticleId":20023,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":50000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q726378", "wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","mediawiki.page.media","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js", "ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.15"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/OS-structure.svg/1200px-OS-structure.svg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="640"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/OS-structure.svg/800px-OS-structure.svg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="427"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/OS-structure.svg/640px-OS-structure.svg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="341"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Microkernel - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Microkernel"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Microkernel&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Microkernel"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Microkernel rootpage-Microkernel skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Microkernel" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Microkernel" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Microkernel" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Microkernel" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History</span> </div> </a> <ul id="toc-History-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Introduction" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Introduction"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Introduction</span> </div> </a> <ul id="toc-Introduction-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Inter-process_communication" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Inter-process_communication"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Inter-process communication</span> </div> </a> <ul id="toc-Inter-process_communication-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Servers" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Servers"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Servers</span> </div> </a> <ul id="toc-Servers-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Device_drivers" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Device_drivers"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Device drivers</span> </div> </a> <ul id="toc-Device_drivers-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Essential_components_and_minimality" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Essential_components_and_minimality"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Essential components and minimality</span> </div> </a> <ul id="toc-Essential_components_and_minimality-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Performance" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Performance"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Performance</span> </div> </a> <ul id="toc-Performance-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Security" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Security"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Security</span> </div> </a> <ul id="toc-Security-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Third_generation" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Third_generation"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>Third generation</span> </div> </a> <ul id="toc-Third_generation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Examples" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>Examples</span> </div> </a> <ul id="toc-Examples-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Nanokernel" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Nanokernel"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>Nanokernel</span> </div> </a> <ul id="toc-Nanokernel-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">12</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">13</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Further_reading" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Further_reading"> <div class="vector-toc-text"> <span class="vector-toc-numb">14</span> <span>Further reading</span> </div> </a> <ul id="toc-Further_reading-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Microkernel</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 34 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-34" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">34 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%86%D9%88%D8%A7%D8%A9_%D8%AF%D9%82%D9%8A%D9%82%D8%A9_(%D9%86%D8%B8%D8%A7%D9%85_%D8%AA%D8%B4%D8%BA%D9%8A%D9%84)" title="نواة دقيقة (نظام تشغيل) – Arabic" lang="ar" hreflang="ar" data-title="نواة دقيقة (نظام تشغيل)" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%AE%E0%A6%BE%E0%A6%87%E0%A6%95%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%95%E0%A6%BE%E0%A6%B0%E0%A7%8D%E0%A6%A8%E0%A7%87%E0%A6%B2" title="মাইক্রোকার্নেল – Bangla" lang="bn" hreflang="bn" data-title="মাইক্রোকার্নেল" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%9C%D1%96%D0%BA%D1%80%D0%B0%D1%8F%D0%B4%D1%80%D0%BE" title="Мікраядро – Belarusian" lang="be" hreflang="be" data-title="Мікраядро" data-language-autonym="Беларуская" data-language-local-name="Belarusian" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%8F%D0%B4%D1%80%D0%BE" title="Микроядро – Bulgarian" lang="bg" hreflang="bg" data-title="Микроядро" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/Mikrokernel" title="Mikrokernel – Bosnian" lang="bs" hreflang="bs" data-title="Mikrokernel" data-language-autonym="Bosanski" data-language-local-name="Bosnian" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Microkernel" title="Microkernel – Catalan" lang="ca" hreflang="ca" data-title="Microkernel" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Mikroj%C3%A1dro" title="Mikrojádro – Czech" lang="cs" hreflang="cs" data-title="Mikrojádro" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Mikrokernel" title="Mikrokernel – German" lang="de" hreflang="de" data-title="Mikrokernel" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Micron%C3%BAcleo" title="Micronúcleo – Spanish" lang="es" hreflang="es" data-title="Micronúcleo" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%B1%DB%8C%D8%B2%D9%87%D8%B3%D8%AA%D9%87" title="ریزهسته – Persian" lang="fa" hreflang="fa" data-title="ریزهسته" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation#Systèmes_à_micro-noyaux" title="Noyau de système d&#039;exploitation – French" lang="fr" hreflang="fr" data-title="Noyau de système d&#039;exploitation" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%BB%A4%EB%84%90" title="마이크로커널 – Korean" lang="ko" hreflang="ko" data-title="마이크로커널" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A4%BE%E0%A4%87%E0%A4%95%E0%A5%8D%E0%A4%B0%E0%A5%8B%E0%A4%95%E0%A4%B0%E0%A5%8D%E0%A4%A8%E0%A5%87%E0%A4%B2" title="माइक्रोकर्नेल – Hindi" lang="hi" hreflang="hi" data-title="माइक्रोकर्नेल" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Mikrokernel" title="Mikrokernel – Indonesian" lang="id" hreflang="id" data-title="Mikrokernel" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Kernel#Microkernel" title="Kernel – Italian" lang="it" hreflang="it" data-title="Kernel" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-sw mw-list-item"><a href="https://sw.wikipedia.org/wiki/Microkernel" title="Microkernel – Swahili" lang="sw" hreflang="sw" data-title="Microkernel" data-language-autonym="Kiswahili" data-language-local-name="Swahili" class="interlanguage-link-target"><span>Kiswahili</span></a></li><li class="interlanguage-link interwiki-lmo mw-list-item"><a href="https://lmo.wikipedia.org/wiki/Microkernel" title="Microkernel – Lombard" lang="lmo" hreflang="lmo" data-title="Microkernel" data-language-autonym="Lombard" data-language-local-name="Lombard" class="interlanguage-link-target"><span>Lombard</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Mikrokernel" title="Mikrokernel – Hungarian" lang="hu" hreflang="hu" data-title="Mikrokernel" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%AE%E0%B5%88%E0%B4%95%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%95%E0%B5%87%E0%B5%BC%E0%B4%A3%E0%B5%BD" title="മൈക്രോകേർണൽ – Malayalam" lang="ml" hreflang="ml" data-title="മൈക്രോകേർണൽ" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/Microkernel" title="Microkernel – Mongolian" lang="mn" hreflang="mn" data-title="Microkernel" data-language-autonym="Монгол" data-language-local-name="Mongolian" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Microkernel" title="Microkernel – Dutch" lang="nl" hreflang="nl" data-title="Microkernel" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB" title="マイクロカーネル – Japanese" lang="ja" hreflang="ja" data-title="マイクロカーネル" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Mikrokjerne" title="Mikrokjerne – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Mikrokjerne" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Mikroj%C4%85dro" title="Mikrojądro – Polish" lang="pl" hreflang="pl" data-title="Mikrojądro" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Micron%C3%BAcleo_(computa%C3%A7%C3%A3o)" title="Micronúcleo (computação) – Portuguese" lang="pt" hreflang="pt" data-title="Micronúcleo (computação)" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Micronucleu" title="Micronucleu – Romanian" lang="ro" hreflang="ro" data-title="Micronucleu" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%8F%D0%B4%D1%80%D0%BE" title="Микроядро – Russian" lang="ru" hreflang="ru" data-title="Микроядро" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Mikrokernel" title="Mikrokernel – Slovak" lang="sk" hreflang="sk" data-title="Mikrokernel" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/K%C3%A4ytt%C3%B6j%C3%A4rjestelm%C3%A4n_ydin#Mikroydin" title="Käyttöjärjestelmän ydin – Finnish" lang="fi" hreflang="fi" data-title="Käyttöjärjestelmän ydin" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Mikrok%C3%A4rna" title="Mikrokärna – Swedish" lang="sv" hreflang="sv" data-title="Mikrokärna" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Mikro_%C3%A7ekirdek" title="Mikro çekirdek – Turkish" lang="tr" hreflang="tr" data-title="Mikro çekirdek" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9C%D1%96%D0%BA%D1%80%D0%BE%D1%8F%D0%B4%D1%80%D0%BE" title="Мікроядро – Ukrainian" lang="uk" hreflang="uk" data-title="Мікроядро" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Microkernel" title="Microkernel – Vietnamese" lang="vi" hreflang="vi" data-title="Microkernel" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%BE%AE%E5%85%A7%E6%A0%B8" title="微內核 – Chinese" lang="zh" hreflang="zh" data-title="微內核" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q726378#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Microkernel" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Microkernel" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Microkernel"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Microkernel&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Microkernel&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Microkernel"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Microkernel&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Microkernel&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Microkernel" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Microkernel" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Microkernel&amp;oldid=1275264783" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Microkernel&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Microkernel&amp;id=1275264783&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FMicrokernel"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FMicrokernel"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Microkernel&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Microkernel&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q726378" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Kernel that provides fewer services than a traditional kernel</div> <p class="mw-empty-elt"> </p> <figure typeof="mw:File/Thumb"><a href="/wiki/File:OS-structure.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/67/OS-structure.svg/450px-OS-structure.svg.png" decoding="async" width="450" height="240" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/67/OS-structure.svg/675px-OS-structure.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/67/OS-structure.svg/900px-OS-structure.svg.png 2x" data-file-width="750" data-file-height="400" /></a><figcaption>Structure of monolithic and microkernel-based operating systems, respectively</figcaption></figure> <p>In <a href="/wiki/Computer_science" title="Computer science">computer science</a>, a <b>microkernel</b> (often abbreviated as <b>μ-kernel</b>) is the near-minimum amount of <a href="/wiki/Software" title="Software">software</a> that can provide the mechanisms needed to implement an <a href="/wiki/Operating_system" title="Operating system">operating system</a> (OS). These mechanisms include low-level <a href="/wiki/Address_space" title="Address space">address space</a> management, <a href="/wiki/Thread_(computing)" title="Thread (computing)">thread</a> management, and <a href="/wiki/Inter-process_communication" title="Inter-process communication">inter-process communication</a> (IPC). </p><p>If the hardware provides multiple <a href="/wiki/Protection_ring" title="Protection ring">rings</a> or <a href="/wiki/CPU_modes" title="CPU modes">CPU modes</a>, the microkernel may be the only software executing at the most privileged level, which is generally referred to as <a href="/wiki/Kernel_mode" class="mw-redirect" title="Kernel mode">supervisor or kernel mode</a>. Traditional operating system functions, such as <a href="/wiki/Device_driver" title="Device driver">device drivers</a>, <a href="/wiki/Protocol_stack" title="Protocol stack">protocol stacks</a> and <a href="/wiki/File_system" title="File system">file systems</a>, are typically removed from the microkernel itself and are instead run in <a href="/wiki/User_space" class="mw-redirect" title="User space">user space</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> </p><p>In terms of the source code size, microkernels are often smaller than <a href="/wiki/Monolithic_kernel" title="Monolithic kernel">monolithic kernels</a>. The <a href="/wiki/MINIX_3" class="mw-redirect" title="MINIX 3">MINIX&#160;3</a> microkernel, for example, has only approximately 12,000 lines of code.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=1" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Microkernels trace their roots back to Danish computer pioneer <a href="/wiki/Per_Brinch_Hansen" title="Per Brinch Hansen">Per Brinch Hansen</a> and his tenure in Danish computer company <a href="/wiki/Regnecentralen" title="Regnecentralen">Regnecentralen</a> where he led software development efforts for the RC 4000 computer.<sup id="cite_ref-ieee_2002_3-0" class="reference"><a href="#cite_note-ieee_2002-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> In 1967, Regnecentralen was installing a RC 4000 prototype in the <a href="/wiki/Zak%C5%82ady_Azotowe_Pu%C5%82awy" title="Zakłady Azotowe Puławy">Zakłady Azotowe Puławy</a> fertilizer plant in Poland. The computer used a small real-time operating system tailored for the needs of the plant. Brinch Hansen and his team became concerned with the lack of generality and reusability of the RC 4000 system. They feared that each installation would require a different operating system so they started to investigate novel and more general ways of creating software for the RC 4000.<sup id="cite_ref-Hansen_2004_4-0" class="reference"><a href="#cite_note-Hansen_2004-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> In 1969, their effort resulted in the completion of the <a href="/wiki/RC_4000_multiprogramming_system" title="RC 4000 multiprogramming system">RC 4000 Multiprogramming System</a>. Its nucleus provided inter-process communication based on message-passing for up to 23 unprivileged processes, out of which 8 at a time were protected from one another. It further implemented scheduling of time slices of programs executed in parallel, initiation and control of program execution at the request of other running programs, and initiation of data transfers to or from peripherals. Besides these elementary mechanisms, it had no built-in strategy for program execution and resource allocation. This strategy was to be implemented by a hierarchy of running programs in which parent processes had complete control over child processes and acted as their operating systems.<sup id="cite_ref-Hansen_1969_5-0" class="reference"><a href="#cite_note-Hansen_1969-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> </p><p>Following Brinch Hansen's work, microkernels have been developed since the 1970s.<sup id="cite_ref-Wulf_74_7-0" class="reference"><a href="#cite_note-Wulf_74-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> The term microkernel itself first appeared no later than 1981.<sup id="cite_ref-Rashid_81_8-0" class="reference"><a href="#cite_note-Rashid_81-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> Microkernels were meant as a response to changes in the computer world, and to several challenges adapting existing "<a href="/wiki/Mono-kernel" class="mw-redirect" title="Mono-kernel">mono-kernels</a>" to these new systems. New device drivers, protocol stacks, file systems and other low-level systems were being developed all the time. This code was normally located in the monolithic kernel, and thus required considerable work and careful code management to work on. Microkernels were developed with the idea that all of these services would be implemented as user-space programs, like any other, allowing them to be worked on monolithically and started and stopped like any other program. This would not only allow these services to be more easily worked on, but also separated the kernel code to allow it to be finely tuned without worrying about unintended side effects. Moreover, it would allow entirely new operating systems to be "built up" on a common core, aiding OS research. </p><p>Microkernels were a very hot topic in the 1980s when the first usable <a href="/wiki/Local_area_network" title="Local area network">local area networks</a> were being introduced.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (November 2012)">citation needed</span></a></i>&#93;</sup>. The AmigaOS <a href="/wiki/Exec_(Amiga)" title="Exec (Amiga)">Exec</a> kernel was an early example, introduced in 1986 and used in a PC with relative commercial success. The lack of memory protection, considered in other respects a flaw, allowed this kernel to have very high message-passing performance because it did not need to copy data while exchanging messages between user-space programs.<sup id="cite_ref-amiga_rkm_libs_exec_9-0" class="reference"><a href="#cite_note-amiga_rkm_libs_exec-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup> </p><p>The same mechanisms that allowed the kernel to be distributed into user space also allowed the system to be distributed across network links. The first microkernels, notably <a href="/wiki/Mach_(kernel)" title="Mach (kernel)">Mach</a> created by <a href="/wiki/Richard_Rashid" title="Richard Rashid">Richard Rashid</a>, proved to have disappointing performance, but the inherent advantages appeared so great that it was a major line of research into the late 1990s.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup> However, during this time the speed of computers grew greatly in relation to networking systems, and the disadvantages in performance came to overwhelm the advantages in development terms.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (June 2015)">citation needed</span></a></i>&#93;</sup> </p><p>Many attempts were made to adapt the existing systems to have better performance, but the overhead was always considerable and most of these efforts required the user-space programs to be moved back into the kernel. By 2000, most large-scale <a href="/wiki/Mach_(kernel)" title="Mach (kernel)">Mach</a> kernel efforts had ended, although Apple's <a href="/wiki/MacOS" title="MacOS">macOS</a>, released in 2001, still uses a <a href="/wiki/Hybrid_kernel" title="Hybrid kernel">hybrid kernel</a> called <a href="/wiki/XNU" title="XNU">XNU</a>, which combines a heavily modified (hybrid) <a href="/wiki/OSF/1" title="OSF/1">OSF/1</a>'s <a href="/wiki/Mach_kernel" class="mw-redirect" title="Mach kernel">Mach kernel</a> (<a href="/wiki/OSFMK" class="mw-redirect" title="OSFMK">OSFMK</a> 7.3 kernel) with code from BSD UNIX,<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">&#91;</span>12<span class="cite-bracket">&#93;</span></a></sup> and this kernel is also used in <a href="/wiki/IOS" title="IOS">iOS</a>, <a href="/wiki/TvOS" title="TvOS">tvOS</a>, and <a href="/wiki/WatchOS" title="WatchOS">watchOS</a>. <a href="/wiki/Windows_NT" title="Windows NT">Windows NT</a>, starting with <a href="/wiki/Windows_NT_3.1" title="Windows NT 3.1">NT 3.1</a> and continuing with <a href="/wiki/Windows_11" title="Windows 11">Windows 11</a>, uses a hybrid kernel design. As of 2012<sup class="plainlinks noexcerpt noprint asof-tag update" style="display:none;"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Microkernel&amp;action=edit">&#91;update&#93;</a></sup>, the Mach-based <a href="/wiki/GNU_Hurd" title="GNU Hurd">GNU Hurd</a> is also functional and included in testing versions of <a href="/wiki/Arch_Linux" title="Arch Linux">Arch Linux</a> and <a href="/wiki/Debian" title="Debian">Debian</a>. </p><p>Although major work on microkernels had largely ended, experimenters continued development.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (November 2012)">citation needed</span></a></i>&#93;</sup> It has since been shown that many of the performance problems of earlier designs were not a fundamental limitation of the concept, but instead due to the designer's desire to use single-purpose systems to implement as many of these services as possible.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (November 2012)">citation needed</span></a></i>&#93;</sup> Using a more pragmatic approach to the problem, including <a href="/wiki/Assembly_code" class="mw-redirect" title="Assembly code">assembly code</a> and relying on the processor to enforce concepts normally supported in software led to a new series of microkernels with dramatically improved performance. </p><p>Microkernels are closely related to <a href="/wiki/Exokernel" title="Exokernel">exokernels</a>.<sup id="cite_ref-Liedtke_96_13-0" class="reference"><a href="#cite_note-Liedtke_96-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup> They also have much in common with <a href="/wiki/Hypervisor" title="Hypervisor">hypervisors</a>,<sup id="cite_ref-Heiser_UL_06_14-0" class="reference"><a href="#cite_note-Heiser_UL_06-14"><span class="cite-bracket">&#91;</span>14<span class="cite-bracket">&#93;</span></a></sup> but the latter make no claim to minimality and are specialized to supporting <a href="/wiki/Virtual_machine" title="Virtual machine">virtual machines</a>; the <a href="/wiki/L4_microkernel" class="mw-redirect" title="L4 microkernel">L4 microkernel</a> frequently finds use in a hypervisor capacity. </p> <div class="mw-heading mw-heading2"><h2 id="Introduction">Introduction</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=2" title="Edit section: Introduction"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Early operating system kernels were rather small, partly because computer memory was limited. As the capability of computers grew, the number of devices the kernel had to control also grew. Throughout the early history of <a href="/wiki/Unix" title="Unix">Unix</a>, kernels were generally small, even though they contained various <a href="/wiki/Device_driver" title="Device driver">device drivers</a> and <a href="/wiki/File_system" title="File system">file system</a> implementations. When address spaces increased from 16 to 32 bits, kernel design was no longer constrained by the hardware architecture, and kernels began to grow larger. </p><p>The <a href="/wiki/Berkeley_Software_Distribution" title="Berkeley Software Distribution">Berkeley Software Distribution</a> (BSD) of <a href="/wiki/Unix" title="Unix">Unix</a> began the era of larger kernels. In addition to operating a basic system consisting of the CPU, disks and printers, BSD added a complete <a href="/wiki/Protocol_stack" title="Protocol stack">TCP/IP networking system</a> and a number of "virtual" devices that allowed the existing programs to work 'invisibly' over the network. This growth continued for many years, resulting in kernels with millions of lines of <a href="/wiki/Source_code" title="Source code">source code</a>. As a result of this growth, kernels were prone to bugs and became increasingly difficult to maintain. </p><p>The microkernel was intended to address this growth of kernels and the difficulties that resulted. In theory, the microkernel design allows for easier management of code due to its division into <a href="/wiki/User_space" class="mw-redirect" title="User space">user space</a> services. This also allows for increased security and stability resulting from the reduced amount of code running in <a href="/wiki/Kernel_mode" class="mw-redirect" title="Kernel mode">kernel mode</a>. For example, if a networking service crashed due to <a href="/wiki/Buffer_overflow" title="Buffer overflow">buffer overflow</a>, only the networking service's memory would be corrupted, leaving the rest of the system still functional. </p> <div class="mw-heading mw-heading2"><h2 id="Inter-process_communication">Inter-process communication</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=3" title="Edit section: Inter-process communication"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Inter-process_communication" title="Inter-process communication">Inter-process communication</a> (IPC) is any mechanism which allows separate processes to communicate with each other, usually by sending <a href="/wiki/Message_passing" title="Message passing">messages</a>. <a href="/wiki/Shared_memory" title="Shared memory">Shared memory</a> is, strictly defined, also an inter-process communication mechanism, but the abbreviation IPC usually refers to message passing only, and it is the latter that is particularly relevant to microkernels. IPC allows the operating system to be built from a number of smaller programs called servers, which are used by other programs on the system, invoked via IPC. Most or all support for peripheral hardware is handled in this fashion, with servers for device drivers, <a href="/wiki/Network_protocol_stack" class="mw-redirect" title="Network protocol stack">network protocol stacks</a>, file systems, graphics, etc. </p><p>IPC can be synchronous or asynchronous. Asynchronous IPC is analogous to network communication: the sender dispatches a message and continues executing. The receiver checks (<a href="/wiki/Polling_(computer_science)" title="Polling (computer science)">polls</a>) for the availability of the message, or is alerted to it via some notification mechanism. Asynchronous IPC requires that the kernel maintains buffers and queues for messages, and deals with buffer overflows; it also requires double copying of messages (sender to kernel and kernel to receiver). In synchronous IPC, the first party (sender or receiver) blocks until the other party is ready to perform the IPC. It does not require buffering or multiple copies, but the implicit rendezvous can make programming tricky. Most programmers prefer asynchronous send and synchronous receive. </p><p>First-generation microkernels typically supported synchronous as well as asynchronous IPC, and suffered from poor IPC performance. <a href="/wiki/Jochen_Liedtke" title="Jochen Liedtke">Jochen Liedtke</a> assumed the design and implementation of the IPC mechanisms to be the underlying reason for this poor performance. In his <a href="/wiki/L4_microkernel_family" title="L4 microkernel family">L4 microkernel</a> he pioneered methods that lowered IPC costs by an <a href="/wiki/Order_of_magnitude" title="Order of magnitude">order of magnitude</a>.<sup id="cite_ref-Liedtke_93_15-0" class="reference"><a href="#cite_note-Liedtke_93-15"><span class="cite-bracket">&#91;</span>15<span class="cite-bracket">&#93;</span></a></sup> These include an IPC system call that supports a send as well as a receive operation, making all IPC synchronous, and passing as much data as possible in registers. Furthermore, Liedtke introduced the concept of the <i>direct process switch</i>, where during an IPC execution an (incomplete) <a href="/wiki/Context_switch" title="Context switch">context switch</a> is performed from the sender directly to the receiver. If, as in L4, part or all of the message is passed in registers, this transfers the in-register part of the message without any copying at all. Furthermore, the overhead of invoking the scheduler is avoided; this is especially beneficial in the common case where IPC is used in a <a href="/wiki/Remote_procedure_call" title="Remote procedure call">remote procedure call</a> (RPC) type fashion by a client invoking a server. Another optimization, called <i>lazy scheduling</i>, avoids traversing scheduling queues during IPC by leaving threads that block during IPC in the ready queue. Once the scheduler is invoked, it moves such threads to the appropriate waiting queue. As in many cases a thread gets unblocked before the next scheduler invocation, this approach saves significant work. Similar approaches have since been adopted by <a href="/wiki/QNX" title="QNX">QNX</a> and <a href="/wiki/MINIX_3" class="mw-redirect" title="MINIX 3">MINIX 3</a>.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2010)">citation needed</span></a></i>&#93;</sup> </p><p>In a series of experiments, Chen and Bershad compared memory <a href="/wiki/Cycles_per_instruction" title="Cycles per instruction">cycles per instruction</a> (MCPI) of monolithic <a href="/wiki/Ultrix" title="Ultrix">Ultrix</a> with those of microkernel <a href="/wiki/Mach_(kernel)" title="Mach (kernel)">Mach</a> combined with a <a href="/wiki/4.3BSD" class="mw-redirect" title="4.3BSD">4.3BSD</a> <a href="/wiki/Unix" title="Unix">Unix</a> server running in <a href="/wiki/User_space" class="mw-redirect" title="User space">user space</a>. Their results explained Mach's poorer performance by higher MCPI and demonstrated that IPC alone is not responsible for much of the system overhead, suggesting that optimizations focused exclusively on IPC will have a limited effect.<sup id="cite_ref-Chen_Bershad_93_16-0" class="reference"><a href="#cite_note-Chen_Bershad_93-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup> Liedtke later refined Chen and Bershad's results by making an observation that the bulk of the difference between Ultrix and Mach MCPI was caused by capacity <a href="/wiki/CPU_cache#CACHE-MISS" title="CPU cache">cache-misses</a> and concluding that drastically reducing the cache working set of a microkernel will solve the problem.<sup id="cite_ref-Liedtke_95_17-0" class="reference"><a href="#cite_note-Liedtke_95-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup> </p><p>In a client-server system, most communication is essentially synchronous, even if using asynchronous primitives, as the typical operation is a client invoking a server and then waiting for a reply. As it also lends itself to more efficient implementation, most microkernels generally followed L4's lead and only provided a synchronous IPC primitive. Asynchronous IPC could be implemented on top by using helper threads. However, experience has shown that the utility of synchronous IPC is dubious: synchronous IPC forces a multi-threaded design onto otherwise simple systems, with the resulting synchronization complexities. Moreover, an RPC-like server invocation sequentializes client and server, which should be avoided if they are running on separate cores. Versions of L4 deployed in commercial products have therefore found it necessary to add an asynchronous notification mechanism to better support asynchronous communication. This <a href="/wiki/Signal_(computing)" class="mw-redirect" title="Signal (computing)">signal</a>-like mechanism does not carry data and therefore does not require buffering by the kernel. By having two forms of IPC, they have nonetheless violated the principle of minimality. Other versions of L4 have switched to asynchronous IPC completely.<sup id="cite_ref-elphinstone_2013_18-0" class="reference"><a href="#cite_note-elphinstone_2013-18"><span class="cite-bracket">&#91;</span>18<span class="cite-bracket">&#93;</span></a></sup> </p><p>As synchronous IPC blocks the first party until the other is ready, unrestricted use could easily lead to deadlocks. Furthermore, a client could easily mount a <a href="/wiki/Denial-of-service" class="mw-redirect" title="Denial-of-service">denial-of-service</a> attack on a server by sending a request and never attempting to receive the reply. Therefore, synchronous IPC must provide a means to prevent indefinite blocking. Many microkernels provide <a href="/wiki/Timeout_(telecommunication)" class="mw-redirect" title="Timeout (telecommunication)">timeouts</a> on IPC calls, which limit the blocking time. In practice, choosing sensible timeout values is difficult, and systems almost inevitably use infinite timeouts for clients and zero timeouts for servers. As a consequence, the trend is towards not providing arbitrary timeouts, but only a flag which indicates that the IPC should fail immediately if the partner is not ready. This approach effectively provides a choice of the two timeout values of zero and infinity. Recent versions of L4 and MINIX have gone down this path (older versions of L4 used timeouts). QNX avoids the problem by requiring the client to specify the reply buffer as part of the message send call. When the server replies the kernel copies the data to the client's buffer, without having to wait for the client to receive the response explicitly.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">&#91;</span>19<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Servers">Servers</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=4" title="Edit section: Servers"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Microkernel servers are essentially <a href="/wiki/Daemon_(computer_software)" class="mw-redirect" title="Daemon (computer software)">daemon</a> programs like any others, except that the kernel grants some of them privileges to interact with parts of physical memory that are otherwise off limits to most programs. This allows some servers, particularly device drivers, to interact directly with hardware. </p><p>A basic set of servers for a general-purpose microkernel includes file system servers, device driver servers, networking servers, <a href="/wiki/Display_server" class="mw-redirect" title="Display server">display servers</a>, and user interface device servers. This set of servers (drawn from <a href="/wiki/QNX" title="QNX">QNX</a>) provides roughly the set of services offered by a Unix <a href="/wiki/Monolithic_kernel" title="Monolithic kernel">monolithic kernel</a>. The necessary servers are started at system startup and provide services, such as file, network, and device access, to ordinary application programs. With such servers running in the environment of a user application, server development is similar to ordinary application development, rather than the build-and-boot process needed for kernel development. </p><p>Additionally, many "crashes" can be corrected by simply <a href="/wiki/Crash-only_software" title="Crash-only software">stopping and restarting the server</a>, which would not be feasible if the entire kernel had to reboot. However, part of the system state is lost with the failing server, hence this approach requires applications to cope with failure. A good example is a server responsible for <a href="/wiki/Internet_protocol_suite" title="Internet protocol suite">TCP/IP</a> connections: If this server is restarted, applications will experience a "lost" connection, a normal occurrence in a networked system. For other services, failure is less expected and may require changes to application code. For QNX, restart capability is offered as the QNX High Availability Toolkit.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">&#91;</span>20<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Device_drivers">Device drivers</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=5" title="Edit section: Device drivers"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Device_driver" title="Device driver">Device drivers</a> frequently perform <a href="/wiki/Direct_memory_access" title="Direct memory access">direct memory access</a> (DMA), and therefore can write to arbitrary locations of physical memory, including various kernel data structures. Such drivers must therefore be trusted. It is a common misconception that this means that they must be part of the kernel. In fact, a driver is not inherently more or less trustworthy by being part of the kernel. </p><p>While running a device driver in user space does not necessarily reduce the damage a misbehaving driver can cause, in practice it is beneficial for system stability in the presence of buggy (rather than malicious) drivers: memory-access violations by the driver code itself (as opposed to the device) may still be caught by the memory-management hardware. Furthermore, many devices are not DMA-capable, their drivers can be made untrusted by running them in user space. Recently, an increasing number of computers feature <a href="/wiki/IOMMU" class="mw-redirect" title="IOMMU">IOMMUs</a>, many of which can be used to restrict a device's access to physical memory.<sup id="cite_ref-Wong_07_21-0" class="reference"><a href="#cite_note-Wong_07-21"><span class="cite-bracket">&#91;</span>21<span class="cite-bracket">&#93;</span></a></sup> This also allows user-mode drivers to become untrusted. </p><p>User-mode drivers actually predate microkernels. The <a href="/wiki/Michigan_Terminal_System" title="Michigan Terminal System">Michigan Terminal System</a> (MTS), in 1967, supported user space drivers (including its file system support), the first operating system to be designed with that capability.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">&#91;</span>22<span class="cite-bracket">&#93;</span></a></sup> Historically, drivers were less of a problem, as the number of devices was small and trusted anyway, so having them in the kernel simplified the design and avoided potential performance problems. This led to the traditional driver-in-the-kernel style of Unix,<sup id="cite_ref-Lions_book_23-0" class="reference"><a href="#cite_note-Lions_book-23"><span class="cite-bracket">&#91;</span>23<span class="cite-bracket">&#93;</span></a></sup> Linux, and Windows NT. With the proliferation of various kinds of peripherals, the amount of driver code escalated and in modern operating systems dominates the kernel in code size. </p> <div class="mw-heading mw-heading2"><h2 id="Essential_components_and_minimality">Essential components and minimality</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=6" title="Edit section: Essential components and minimality"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>As a microkernel must allow building arbitrary operating system services on top, it must provide some core functionality. At a minimum, this includes: </p> <ul><li>Some mechanisms for dealing with <a href="/wiki/Address_space" title="Address space">address spaces</a>, required for managing memory protection</li> <li>Some execution abstraction to manage CPU allocation, typically <a href="/wiki/Thread_(computing)" title="Thread (computing)">threads</a> or <a href="/wiki/Scheduler_activations" title="Scheduler activations">scheduler activations</a></li> <li><a href="/wiki/Inter-process_communication" title="Inter-process communication">Inter-process communication</a>, required to invoke servers running in their own address spaces</li></ul> <p>This minimal design was pioneered by <a href="/wiki/Brinch_Hansen" class="mw-redirect" title="Brinch Hansen">Brinch Hansen</a>'s <a href="/wiki/RC_4000_Multiprogramming_System" class="mw-redirect" title="RC 4000 Multiprogramming System">Nucleus</a> and the hypervisor of IBM's <a href="/wiki/VM_(operating_system)" title="VM (operating system)">VM</a>. It has since been formalised in Liedtke's <i>minimality principle</i>: </p> <blockquote><p>A concept is tolerated inside the microkernel only if moving it outside the kernel, i.e., permitting competing implementations, would prevent the implementation of the system's required functionality.<sup id="cite_ref-Liedtke_95_17-1" class="reference"><a href="#cite_note-Liedtke_95-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup></p></blockquote> <p>Everything else can be done in a usermode program, although device drivers implemented as user programs may on some processor architectures require special privileges to access I/O hardware. </p><p>Related to the minimality principle, and equally important for microkernel design, is the <a href="/wiki/Separation_of_mechanism_and_policy" title="Separation of mechanism and policy">separation of mechanism and policy</a>, it is what enables the construction of arbitrary systems on top of a minimal kernel. Any policy built into the kernel cannot be overwritten at user level and therefore limits the generality of the microkernel.<sup id="cite_ref-Liedtke_96_13-1" class="reference"><a href="#cite_note-Liedtke_96-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup> Policy implemented in user-level servers can be changed by replacing the servers (or letting the application choose between competing servers offering similar services). </p><p>For efficiency, most microkernels contain schedulers and manage timers, in violation of the minimality principle and the principle of policy-mechanism separation. </p><p>Start up (<a href="/wiki/Booting" title="Booting">booting</a>) of a microkernel-based system requires <a href="/wiki/Device_driver" title="Device driver">device drivers</a>, which are not part of the kernel. Typically, this means that they are packaged with the kernel in the boot image, and the kernel supports a bootstrap protocol that defines how the drivers are located and started; this is the traditional bootstrap procedure of <a href="/wiki/L4_microkernel_family" title="L4 microkernel family">L4 microkernels</a>. Some microkernels simplify this by placing some key drivers inside the kernel (in violation of the minimality principle), <a href="/wiki/LynxOS" title="LynxOS">LynxOS</a> and the original <a href="/wiki/Minix" title="Minix">Minix</a> are examples. Some even include a <a href="/wiki/File_system" title="File system">file system</a> in the kernel to simplify booting. A microkernel-based system may boot via multiboot compatible boot loader. Such systems usually load statically-linked servers to make an initial bootstrap or mount an OS image to continue bootstrapping. </p><p>A key component of a microkernel is a good <a href="/wiki/Inter-process_communication" title="Inter-process communication">IPC</a> system and virtual-memory-manager design that allows implementing page-fault handling and swapping in usermode servers in a safe way. Since all services are performed by usermode programs, efficient means of communication between programs are essential, far more so than in monolithic kernels. The design of the IPC system makes or breaks a microkernel. To be effective, the IPC system must not only have low overhead, but also interact well with CPU scheduling. </p> <div class="mw-heading mw-heading2"><h2 id="Performance">Performance</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=7" title="Edit section: Performance"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>On most mainstream processors, obtaining a service is inherently more expensive in a microkernel-based system than a monolithic system.<sup id="cite_ref-Liedtke_96_13-2" class="reference"><a href="#cite_note-Liedtke_96-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup> In the monolithic system, the service is obtained by a single system call, which requires two <i>mode switches</i> (changes of the processor's <a href="/wiki/Ring_(computer_security)" class="mw-redirect" title="Ring (computer security)">ring</a> or <a href="/wiki/CPU_modes" title="CPU modes">CPU mode</a>). In the microkernel-based system, the service is obtained by sending an IPC message to a server, and obtaining the result in another IPC message from the server. This requires a <a href="/wiki/Context_switch" title="Context switch">context switch</a> if the drivers are implemented as processes, or a function call if they are implemented as procedures. In addition, passing actual data to the server and back may incur extra copying overhead, while in a monolithic system the kernel can directly access the data in the client's buffers. </p><p>Performance is therefore a potential issue in microkernel systems. The experience of first-generation microkernels such as <a href="/wiki/Mach_(kernel)" title="Mach (kernel)">Mach</a> and <a href="/wiki/ChorusOS" title="ChorusOS">ChorusOS</a> showed that systems based on them performed very poorly.<sup id="cite_ref-Chen_Bershad_93_16-1" class="reference"><a href="#cite_note-Chen_Bershad_93-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup> However, <a href="/wiki/Jochen_Liedtke" title="Jochen Liedtke">Jochen Liedtke</a> showed that Mach's performance problems were the result of poor design and implementation, specifically Mach's excessive <a href="/wiki/CPU_cache" title="CPU cache">cache</a> footprint.<sup id="cite_ref-Liedtke_95_17-2" class="reference"><a href="#cite_note-Liedtke_95-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup> Liedtke demonstrated with his own <a href="/wiki/L4_microkernel" class="mw-redirect" title="L4 microkernel">L4 microkernel</a> that through careful design and implementation, and especially by following the minimality principle, IPC costs could be reduced by more than an order of magnitude compared to Mach. L4's IPC performance is still unbeaten across a range of architectures.<sup id="cite_ref-Liedtke_ESHHIJ_97_24-0" class="reference"><a href="#cite_note-Liedtke_ESHHIJ_97-24"><span class="cite-bracket">&#91;</span>24<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Gray_CCMH_05_25-0" class="reference"><a href="#cite_note-Gray_CCMH_05-25"><span class="cite-bracket">&#91;</span>25<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-vanSchaik_Heiser_07_26-0" class="reference"><a href="#cite_note-vanSchaik_Heiser_07-26"><span class="cite-bracket">&#91;</span>26<span class="cite-bracket">&#93;</span></a></sup> </p><p>While these results demonstrate that the poor performance of systems based on first-generation microkernels is not representative for second-generation kernels such as L4, this constitutes no proof that microkernel-based systems can be built with good performance. It has been shown that a monolithic Linux server ported to L4 exhibits only a few percent overhead over native Linux.<sup id="cite_ref-Hartig_97_27-0" class="reference"><a href="#cite_note-Hartig_97-27"><span class="cite-bracket">&#91;</span>27<span class="cite-bracket">&#93;</span></a></sup> However, such a single-server system exhibits few, if any, of the advantages microkernels are supposed to provide by structuring operating system functionality into separate servers. </p><p>A number of commercial multi-server systems exist, in particular the <a href="/wiki/Real-time_operating_system" title="Real-time operating system">real-time systems</a> <a href="/wiki/QNX" title="QNX">QNX</a> and <a href="/wiki/Integrity_(operating_system)" title="Integrity (operating system)">Integrity</a>. No comprehensive comparison of performance relative to monolithic systems has been published for those multiserver systems. Furthermore, performance does not seem to be the overriding concern for those commercial systems, which instead emphasize reliably quick interrupt handling response times (QNX) and simplicity for the sake of robustness. An attempt to build a high-performance multiserver operating system was the IBM Sawmill Linux project.<sup id="cite_ref-Gefflaut_JPLEUTDR_00_28-0" class="reference"><a href="#cite_note-Gefflaut_JPLEUTDR_00-28"><span class="cite-bracket">&#91;</span>28<span class="cite-bracket">&#93;</span></a></sup> However, this project was never completed. </p><p>It has been shown in the meantime that user-level device drivers can come close to the performance of in-kernel drivers even for such high-throughput, high-interrupt devices as Gigabit Ethernet.<sup id="cite_ref-Leslie_CFGGMPSEH_05_29-0" class="reference"><a href="#cite_note-Leslie_CFGGMPSEH_05-29"><span class="cite-bracket">&#91;</span>29<span class="cite-bracket">&#93;</span></a></sup> This seems to imply that high-performance multi-server systems are possible. </p> <div class="mw-heading mw-heading2"><h2 id="Security">Security</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=8" title="Edit section: Security"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The security benefits of microkernels have been frequently discussed.<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">&#91;</span>30<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">&#91;</span>31<span class="cite-bracket">&#93;</span></a></sup> In the context of security the minimality principle of microkernels is, some have argued, a direct consequence of the <a href="/wiki/Principle_of_least_privilege" title="Principle of least privilege">principle of least privilege</a>, according to which all code should have only the privileges needed to provide required functionality. Minimality requires that a system's <a href="/wiki/Trusted_computing_base" title="Trusted computing base">trusted computing base</a> (TCB) should be kept minimal. As the kernel (the code that executes in the privileged mode of the hardware) has unvetted access to any data and can thus violate its integrity or confidentiality, the kernel is always part of the TCB. Minimizing it is natural in a security-driven design. </p><p>Consequently, microkernel designs have been used for systems designed for high-security applications, including <a href="/wiki/KeyKOS" title="KeyKOS">KeyKOS</a>, <a href="/wiki/Extremely_Reliable_Operating_System" class="mw-redirect" title="Extremely Reliable Operating System">EROS</a> and military systems. In fact <a href="/wiki/Common_criteria" class="mw-redirect" title="Common criteria">common criteria</a> (CC) at the highest assurance level (<a href="/wiki/Evaluation_Assurance_Level" title="Evaluation Assurance Level">Evaluation Assurance Level</a> (EAL) 7) has an explicit requirement that the target of evaluation be "simple", an acknowledgment of the practical impossibility of establishing true trustworthiness for a complex system. Again, the term "simple" is misleading and ill-defined. At least the Department of Defense Trusted Computer System Evaluation Criteria introduced somewhat more precise verbiage at the B3/A1 classes: </p> <style data-mw-deduplicate="TemplateStyles:r1244412712">.mw-parser-output .templatequote{overflow:hidden;margin:1em 0;padding:0 32px}.mw-parser-output .templatequotecite{line-height:1.5em;text-align:left;margin-top:0}@media(min-width:500px){.mw-parser-output .templatequotecite{padding-left:1.6em}}</style><blockquote class="templatequote"><p>"The TCB shall [implement] complete, conceptually simple protection mechanisms with precisely defined semantics. Significant system engineering shall be directed toward minimizing the complexity of the TCB, as well as excluding from the TCB those modules that are not protection-critical."</p><div class="templatequotecite">—&#8202;<cite>Department of Defense Trusted Computer System Evaluation Criteria</cite></div></blockquote> <p>In 2018, a paper presented at the Asia-Pacific Systems Conference claimed that microkernels were demonstrably safer than monolithic kernels by investigating all published critical <a href="/wiki/Common_Vulnerabilities_and_Exposures" title="Common Vulnerabilities and Exposures">CVEs</a> for the <a href="/wiki/Linux" title="Linux">Linux</a> kernel at the time. The study concluded that 40% of the issues could not occur at all in a formally verified microkernel, and only 4% of the issues would remain entirely unmitigated in such a system.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">&#91;</span>32<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Third_generation">Third generation</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=9" title="Edit section: Third generation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>More recent work on microkernels has been focusing on formal specifications of the kernel API, and formal proofs of the API's security properties and implementation correctness. The first example of this is a mathematical proof of the confinement mechanisms in EROS, based on a simplified model of the EROS API.<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">&#91;</span>33<span class="cite-bracket">&#93;</span></a></sup> More recently (in 2007) a comprehensive set of machine-checked proofs was performed of the properties of the protection model of <a href="/wiki/L4_microkernel_family#High_assurance:_seL4" title="L4 microkernel family">seL4</a>, a version of L4.<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">&#91;</span>34<span class="cite-bracket">&#93;</span></a></sup> </p><p>This has led to what is referred to as <i>third-generation microkernels</i>,<sup id="cite_ref-Klein_EHACDEEKNSTW_09_35-0" class="reference"><a href="#cite_note-Klein_EHACDEEKNSTW_09-35"><span class="cite-bracket">&#91;</span>35<span class="cite-bracket">&#93;</span></a></sup> characterised by a security-oriented API with resource access controlled by <a href="/wiki/Capability-based_security" title="Capability-based security">capabilities</a>, <a href="/wiki/Virtual_machines#System_virtual_machines" class="mw-redirect" title="Virtual machines">virtualization</a> as a first-class concern, novel approaches to kernel resource management,<sup id="cite_ref-Elkaduwe_DE_08_36-0" class="reference"><a href="#cite_note-Elkaduwe_DE_08-36"><span class="cite-bracket">&#91;</span>36<span class="cite-bracket">&#93;</span></a></sup> and a design goal of suitability for <a href="/wiki/Formal_methods" title="Formal methods">formal analysis</a>, besides the usual goal of high performance. Examples are <a href="/w/index.php?title=Coyotos&amp;action=edit&amp;redlink=1" class="new" title="Coyotos (page does not exist)">Coyotos</a>, <a href="/wiki/L4_microkernel_family#High_assurance:_seL4" title="L4 microkernel family">seL4</a>, Nova,<sup id="cite_ref-TUD_37-0" class="reference"><a href="#cite_note-TUD-37"><span class="cite-bracket">&#91;</span>37<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Steinberg_Kauer_EuroSys_2010_38-0" class="reference"><a href="#cite_note-Steinberg_Kauer_EuroSys_2010-38"><span class="cite-bracket">&#91;</span>38<span class="cite-bracket">&#93;</span></a></sup> <a href="/wiki/Redox_(operating_system)" title="Redox (operating system)">Redox</a> and Fiasco.OC.<sup id="cite_ref-TUD_37-1" class="reference"><a href="#cite_note-TUD-37"><span class="cite-bracket">&#91;</span>37<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Lackor_Warg_IIES_09_39-0" class="reference"><a href="#cite_note-Lackor_Warg_IIES_09-39"><span class="cite-bracket">&#91;</span>39<span class="cite-bracket">&#93;</span></a></sup> </p><p>In the case of seL4, complete formal verification of the implementation has been achieved,<sup id="cite_ref-Klein_EHACDEEKNSTW_09_35-1" class="reference"><a href="#cite_note-Klein_EHACDEEKNSTW_09-35"><span class="cite-bracket">&#91;</span>35<span class="cite-bracket">&#93;</span></a></sup> i.e. a mathematical proof that the kernel's implementation is consistent with its formal specification. This provides a guarantee that the properties proved about the API actually hold for the real kernel, a degree of assurance which goes beyond even CC EAL7. It was followed by proofs of security-enforcement properties of the API, and a proof demonstrating that the executable binary code is a correct translation of the C implementation, taking the compiler out of the TCB. Taken together, these proofs establish an end-to-end proof of security properties of the kernel.<sup id="cite_ref-Klein_AEMSKH_14_40-0" class="reference"><a href="#cite_note-Klein_AEMSKH_14-40"><span class="cite-bracket">&#91;</span>40<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Examples">Examples</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=10" title="Edit section: Examples"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Some examples of microkernels are: </p> <ul><li><a href="/wiki/AmigaOS" title="AmigaOS">AmigaOS</a></li> <li><a href="/wiki/Amoeba_(operating_system)" title="Amoeba (operating system)">Amoeba OS</a></li> <li>BlackBerry <a href="/wiki/QNX" title="QNX">QNX</a></li> <li><a href="/wiki/Genode" title="Genode">Genode</a></li> <li><a href="/wiki/HarmonyOS" title="HarmonyOS">HarmonyOS</a> (<a href="/wiki/HarmonyOS_NEXT" title="HarmonyOS NEXT">HarmonyOS NEXT</a>)</li> <li><a href="/wiki/HelenOS" title="HelenOS">HelenOS</a></li> <li><a href="/wiki/Nintendo_Switch_system_software#Technology" title="Nintendo Switch system software">Horizon</a> (<a href="/wiki/Nintendo_Switch_system_software" title="Nintendo Switch system software">Nintendo Switch system software</a>)</li> <li>The <a href="/wiki/L4_microkernel_family" title="L4 microkernel family">L4 microkernel family</a></li> <li><a href="/wiki/Mach_(kernel)" title="Mach (kernel)">Mach</a></li> <li><a href="/wiki/Mac_OS_7" class="mw-redirect" title="Mac OS 7">Mac OS 7</a> to <a href="/wiki/Mac_OS_9" title="Mac OS 9">Mac OS 9</a> (<a href="/wiki/Mac_OS_nanokernel" title="Mac OS nanokernel">Mac OS nanokernel</a>)</li> <li><a href="/wiki/Minix" title="Minix">Minix</a></li> <li><a href="/wiki/Midori_(operating_system)" title="Midori (operating system)">Midori</a></li> <li><a href="/wiki/Redox_(operating_system)" title="Redox (operating system)">Redox</a></li> <li><a href="/wiki/Symbian" title="Symbian">Symbian</a></li> <li><a href="/wiki/Fuchsia_(operating_system)#Kernel" title="Fuchsia (operating system)">Zircon</a></li> <li><a href="/wiki/Phantom_OS" title="Phantom OS">Phantom OS</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="Nanokernel">Nanokernel</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=11" title="Edit section: Nanokernel"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The term <i>nanokernel</i> or <i>picokernel</i> historically referred to: </p> <ul><li>A kernel where the total amount of kernel code, i.e. code executing in the privileged mode of the hardware, is very small. The term <i>picokernel</i> was sometimes used to further emphasize small size. The term <i>nanokernel</i> was coined by Jonathan S. Shapiro in the paper <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110621235229/http://www.cis.upenn.edu/~KeyKOS/NanoKernel/NanoKernel.html"><i>The KeyKOS NanoKernel Architecture</i></a>. It was a sardonic response to <a href="/wiki/Mach_(kernel)" title="Mach (kernel)">Mach</a>, which claimed to be a microkernel while Shapiro considered it monolithic, essentially unstructured, and slower than the systems it sought to replace. Subsequent reuse of and response to the term, including the picokernel coinage, suggest that the point was largely missed. Both <i>nanokernel</i> and <i>picokernel</i> have subsequently come to have the same meaning expressed by the term microkernel.</li> <li>A virtualization layer underneath an operating system, which is more correctly referred to as a <a href="/wiki/Hypervisor" title="Hypervisor">hypervisor</a>.</li> <li>A <a href="/wiki/Hardware_abstraction_layer" class="mw-redirect" title="Hardware abstraction layer">hardware abstraction layer</a> that forms the lowest-level part of a kernel, sometimes used to provide <a href="/wiki/Real-time_computing" title="Real-time computing">real-time</a> functionality to normal operating systems, like <a href="/wiki/Adaptive_Domain_Environment_for_Operating_Systems" title="Adaptive Domain Environment for Operating Systems">Adeos</a>.</li></ul> <p>There is also at least one case where the term nanokernel is used to refer not to a small kernel, but one that supports a <a href="/wiki/Nanosecond" title="Nanosecond">nanosecond</a> clock resolution.<sup id="cite_ref-udel_41-0" class="reference"><a href="#cite_note-udel-41"><span class="cite-bracket">&#91;</span>41<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=12" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Kernel_(operating_system)" title="Kernel (operating system)">Kernel (operating system)</a> <ul><li><a href="/wiki/Exokernel" title="Exokernel">Exokernel</a></li> <li><a href="/wiki/Hybrid_kernel" title="Hybrid kernel">Hybrid kernel</a></li> <li><a href="/wiki/Loadable_kernel_module" title="Loadable kernel module">Loadable kernel module</a></li> <li><a href="/wiki/Monolithic_kernel" title="Monolithic kernel">Monolithic kernel</a></li></ul></li> <li><a href="/wiki/Microservices" title="Microservices">Microservices</a></li> <li><a href="/wiki/Tanenbaum%E2%80%93Torvalds_debate" title="Tanenbaum–Torvalds debate">Tanenbaum–Torvalds debate</a></li> <li><a href="/wiki/Trusted_computing_base" title="Trusted computing base">Trusted computing base</a></li> <li><a href="/wiki/Unikernel" title="Unikernel">Unikernel</a></li> <li><a href="/wiki/Multi-Environment_Real-Time" title="Multi-Environment Real-Time">Multi-Environment Real-Time</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=13" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFHerder2005" class="citation web cs1">Herder, Jorrit N. (23 February 2005). <a rel="nofollow" class="external text" href="http://www.minix3.org/theses/herder-true-microkernel.pdf">"Toward a True Microkernel Operating System"</a> <span class="cs1-format">(PDF)</span>. <i>minix3.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">22 June</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=minix3.org&amp;rft.atitle=Toward+a+True+Microkernel+Operating+System&amp;rft.date=2005-02-23&amp;rft.aulast=Herder&amp;rft.aufirst=Jorrit+N.&amp;rft_id=http%3A%2F%2Fwww.minix3.org%2Ftheses%2Fherder-true-microkernel.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://wiki.minix3.org/doku.php?id=www:documentation:read-more">"read-more"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">20 December</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=read-more&amp;rft_id=http%3A%2F%2Fwiki.minix3.org%2Fdoku.php%3Fid%3Dwww%3Adocumentation%3Aread-more&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-ieee_2002-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-ieee_2002_3-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.computer.org/profiles/per-hansen">"Per Brinch Hansen"</a>. IEEE Computer Society<span class="reference-accessdate">. Retrieved <span class="nowrap">13 September</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Per+Brinch+Hansen&amp;rft.pub=IEEE+Computer+Society&amp;rft_id=https%3A%2F%2Fwww.computer.org%2Fprofiles%2Fper-hansen&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Hansen_2004-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-Hansen_2004_4-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBrinch_Hansen2004" class="citation book cs1">Brinch Hansen, Per (2004). <a rel="nofollow" class="external text" href="http://brinch-hansen.net/memoirs/contents.html"><i>A Programmer's Story: The Life of a Computer Pioneer</i></a><span class="reference-accessdate">. Retrieved <span class="nowrap">13 September</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=A+Programmer%27s+Story%3A+The+Life+of+a+Computer+Pioneer&amp;rft.date=2004&amp;rft.aulast=Brinch+Hansen&amp;rft.aufirst=Per&amp;rft_id=http%3A%2F%2Fbrinch-hansen.net%2Fmemoirs%2Fcontents.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Hansen_1969-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-Hansen_1969_5-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBrinch_Hansen1969" class="citation techreport cs1">Brinch Hansen, Per (April 1969). <a rel="nofollow" class="external text" href="http://brinch-hansen.net/papers/1969a.pdf"><i>RC 4000 Software: Multiprogramming System</i></a> <span class="cs1-format">(PDF)</span> (Technical report). Regnecentralen<span class="reference-accessdate">. Retrieved <span class="nowrap">13 September</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=report&amp;rft.btitle=RC+4000+Software%3A+Multiprogramming+System&amp;rft.pub=Regnecentralen&amp;rft.date=1969-04&amp;rft.aulast=Brinch+Hansen&amp;rft.aufirst=Per&amp;rft_id=http%3A%2F%2Fbrinch-hansen.net%2Fpapers%2F1969a.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBrinch_Hansen,_Per1970" class="citation journal cs1">Brinch Hansen, Per (1970). <a rel="nofollow" class="external text" href="http://www.brinch-hansen.net/papers/1970a.pdf">"The Nucleus of a Multiprogramming Operating System"</a> <span class="cs1-format">(PDF)</span>. <i>Communications of the ACM</i>. <b>13</b> (4): <span class="nowrap">238–</span>250. <a href="/wiki/CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&#160;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.105.4204">10.1.1.105.4204</a></span>. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F362258.362278">10.1145/362258.362278</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:9414037">9414037</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Communications+of+the+ACM&amp;rft.atitle=The+Nucleus+of+a+Multiprogramming+Operating+System&amp;rft.volume=13&amp;rft.issue=4&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E238-%3C%2Fspan%3E250&amp;rft.date=1970&amp;rft_id=https%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fsummary%3Fdoi%3D10.1.1.105.4204%23id-name%3DCiteSeerX&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A9414037%23id-name%3DS2CID&amp;rft_id=info%3Adoi%2F10.1145%2F362258.362278&amp;rft.au=Brinch+Hansen%2C+Per&amp;rft_id=http%3A%2F%2Fwww.brinch-hansen.net%2Fpapers%2F1970a.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Wulf_74-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wulf_74_7-0">^</a></b></span> <span class="reference-text">.<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWulfCohenCorwinJones1974" class="citation journal cs1">Wulf, William; Cohen, Ellis; Corwin, William; Jones, Anita; Levin, Roy; Pierson, C.; Pollack, Fred (June 1974). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F355616.364017">"HYDRA: The Kernel of a Multiprocessor Operating System"</a>. <i>Communications of the ACM</i>. <b>17</b> (6): <span class="nowrap">337–</span>345. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F355616.364017">10.1145/355616.364017</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:8011765">8011765</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Communications+of+the+ACM&amp;rft.atitle=HYDRA%3A+The+Kernel+of+a+Multiprocessor+Operating+System&amp;rft.volume=17&amp;rft.issue=6&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E337-%3C%2Fspan%3E345&amp;rft.date=1974-06&amp;rft_id=info%3Adoi%2F10.1145%2F355616.364017&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A8011765%23id-name%3DS2CID&amp;rft.aulast=Wulf&amp;rft.aufirst=William&amp;rft.au=Cohen%2C+Ellis&amp;rft.au=Corwin%2C+William&amp;rft.au=Jones%2C+Anita&amp;rft.au=Levin%2C+Roy&amp;rft.au=Pierson%2C+C.&amp;rft.au=Pollack%2C+Fred&amp;rft_id=https%3A%2F%2Fdoi.org%2F10.1145%252F355616.364017&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Rashid_81-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-Rashid_81_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRashidRobertson1981" class="citation conference cs1">Rashid, Richard; Robertson, George (December 1981). "Accent: A communication oriented network operating system kernel". <i>SOSP '81 Proceedings of the eighth ACM symposium on Operating systems principles</i>. Pacific Grove, California, USA. pp.&#160;<span class="nowrap">64–</span>75. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F800216.806593">10.1145/800216.806593</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=Accent%3A+A+communication+oriented+network+operating+system+kernel&amp;rft.btitle=SOSP+%2781+Proceedings+of+the+eighth+ACM+symposium+on+Operating+systems+principles&amp;rft.place=Pacific+Grove%2C+California%2C+USA&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E64-%3C%2Fspan%3E75&amp;rft.date=1981-12&amp;rft_id=info%3Adoi%2F10.1145%2F800216.806593&amp;rft.aulast=Rashid&amp;rft.aufirst=Richard&amp;rft.au=Robertson%2C+George&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-amiga_rkm_libs_exec-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-amiga_rkm_libs_exec_9-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSassenrath1986" class="citation book cs1">Sassenrath, Carl (1986). <i>Amiga ROM Kernel Reference Manual</i>. Exec.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Amiga+ROM+Kernel+Reference+Manual&amp;rft.place=Exec&amp;rft.date=1986&amp;rft.aulast=Sassenrath&amp;rft.aufirst=Carl&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span><span class="cs1-maint citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_book" title="Template:Cite book">cite book</a>}}</code>: CS1 maint: location missing publisher (<a href="/wiki/Category:CS1_maint:_location_missing_publisher" title="Category:CS1 maint: location missing publisher">link</a>)</span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html">"CMU CS Project Mach Home Page"</a>. <i>www.cs.cmu.edu</i>. Carnegie Mellon University<span class="reference-accessdate">. Retrieved <span class="nowrap">8 August</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=www.cs.cmu.edu&amp;rft.atitle=CMU+CS+Project+Mach+Home+Page&amp;rft_id=https%3A%2F%2Fwww.cs.cmu.edu%2Fafs%2Fcs%2Fproject%2Fmach%2Fpublic%2Fwww%2Fmach.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFJim_Magee" class="citation audio-visual cs1">Jim Magee. <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=ggnFoDqzGMU"><i>WWDC 2000 Session 106 - Mac OS X: Kernel</i></a>. 14 minutes in. <a rel="nofollow" class="external text" href="https://ghostarchive.org/varchive/youtube/20211211/ggnFoDqzGMU">Archived</a> from the original on 11 December 2021.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=WWDC+2000+Session+106+-+Mac+OS+X%3A+Kernel&amp;rft.au=Jim+Magee&amp;rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DggnFoDqzGMU&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/mac/#documentation/Porting/Conceptual/PortingUnix/glossary/glossary.html#//apple_ref/doc/uid/TP40002859-TPXREF101">"Porting UNIX/Linux Applications to Mac OS X"</a>. Apple<span class="reference-accessdate">. Retrieved <span class="nowrap">26 April</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Porting+UNIX%2FLinux+Applications+to+Mac+OS+X&amp;rft.pub=Apple&amp;rft_id=https%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fmac%2F%23documentation%2FPorting%2FConceptual%2FPortingUnix%2Fglossary%2Fglossary.html%23%2F%2Fapple_ref%2Fdoc%2Fuid%2FTP40002859-TPXREF101&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Liedtke_96-13"><span class="mw-cite-backlink">^ <a href="#cite_ref-Liedtke_96_13-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Liedtke_96_13-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Liedtke_96_13-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLiedtke1996" class="citation journal cs1">Liedtke, Jochen (September 1996). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F234215.234473">"Towards Real Microkernels"</a>. <i>Communications of the ACM</i>. <b>39</b> (9): <span class="nowrap">70–</span>77. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F234215.234473">10.1145/234215.234473</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:2867357">2867357</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Communications+of+the+ACM&amp;rft.atitle=Towards+Real+Microkernels&amp;rft.volume=39&amp;rft.issue=9&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E70-%3C%2Fspan%3E77&amp;rft.date=1996-09&amp;rft_id=info%3Adoi%2F10.1145%2F234215.234473&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A2867357%23id-name%3DS2CID&amp;rft.aulast=Liedtke&amp;rft.aufirst=Jochen&amp;rft_id=https%3A%2F%2Fdoi.org%2F10.1145%252F234215.234473&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Heiser_UL_06-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-Heiser_UL_06_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHeiserUhligLeVasseur2006" class="citation journal cs1"><a href="/wiki/Gernot_Heiser" title="Gernot Heiser">Heiser, Gernot</a>; Uhlig, Volkmar; LeVasseur, Joshua (January 2006). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140113115308/http://os.ibds.kit.edu/65_747.php">"Are Virtual-Machine Monitors Microkernels Done Right?"</a>. <i>ACM SIGOPS Operating Systems Review</i>. <b>40</b> (1). ACM: <span class="nowrap">95–</span>99. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1113361.1113363">10.1145/1113361.1113363</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:7414062">7414062</a>. Archived from <a rel="nofollow" class="external text" href="http://os.ibds.kit.edu/65_747.php">the original</a> on 13 January 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">13 January</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=ACM+SIGOPS+Operating+Systems+Review&amp;rft.atitle=Are+Virtual-Machine+Monitors+Microkernels+Done+Right%3F&amp;rft.volume=40&amp;rft.issue=1&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E95-%3C%2Fspan%3E99&amp;rft.date=2006-01&amp;rft_id=info%3Adoi%2F10.1145%2F1113361.1113363&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A7414062%23id-name%3DS2CID&amp;rft.aulast=Heiser&amp;rft.aufirst=Gernot&amp;rft.au=Uhlig%2C+Volkmar&amp;rft.au=LeVasseur%2C+Joshua&amp;rft_id=http%3A%2F%2Fos.ibds.kit.edu%2F65_747.php&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Liedtke_93-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-Liedtke_93_15-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLiedtke1993" class="citation conference cs1"><a href="/wiki/Jochen_Liedtke" title="Jochen Liedtke">Liedtke, Jochen</a> (December 1993). <i>Improving IPC by kernel design</i>. 14th ACM Symposium on Operating System Principles. Asheville, NC, USA. pp.&#160;<span class="nowrap">175–</span>88. <a href="/wiki/CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&#160;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.40.1293">10.1.1.40.1293</a></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=Improving+IPC+by+kernel+design&amp;rft.place=Asheville%2C+NC%2C+USA&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E175-%3C%2Fspan%3E88&amp;rft.date=1993-12&amp;rft_id=https%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fsummary%3Fdoi%3D10.1.1.40.1293%23id-name%3DCiteSeerX&amp;rft.aulast=Liedtke&amp;rft.aufirst=Jochen&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Chen_Bershad_93-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-Chen_Bershad_93_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Chen_Bershad_93_16-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFChenBershad1993" class="citation conference cs1">Chen, J. Bradley; Bershad, Brian N. (December 1993). <a rel="nofollow" class="external text" href="https://people.eecs.berkeley.edu/~prabal/resources/osprelim/CB93.pdf">"The Impact of Operating System Structure on Memory System Performance"</a> <span class="cs1-format">(PDF)</span>. <i>SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles</i>. Asheville, NC, USA. pp.&#160;<span class="nowrap">120–</span>133. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F168619.168629">10.1145/168619.168629</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=The+Impact+of+Operating+System+Structure+on+Memory+System+Performance&amp;rft.btitle=SOSP+%2793+Proceedings+of+the+fourteenth+ACM+symposium+on+Operating+systems+principles&amp;rft.place=Asheville%2C+NC%2C+USA&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E120-%3C%2Fspan%3E133&amp;rft.date=1993-12&amp;rft_id=info%3Adoi%2F10.1145%2F168619.168629&amp;rft.aulast=Chen&amp;rft.aufirst=J.+Bradley&amp;rft.au=Bershad%2C+Brian+N.&amp;rft_id=https%3A%2F%2Fpeople.eecs.berkeley.edu%2F~prabal%2Fresources%2Fosprelim%2FCB93.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Liedtke_95-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-Liedtke_95_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Liedtke_95_17-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Liedtke_95_17-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLiedtke1995" class="citation conference cs1"><a href="/wiki/Jochen_Liedtke" title="Jochen Liedtke">Liedtke, Jochen</a> (December 1995). "On µ-Kernel Construction". <i>SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles</i>. Copper Mountain Resort, CO, USA. pp.&#160;<span class="nowrap">237–</span>250. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F224056.224075">10.1145/224056.224075</a></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=On+%C2%B5-Kernel+Construction&amp;rft.btitle=SOSP+%2795+Proceedings+of+the+fifteenth+ACM+symposium+on+Operating+systems+principles&amp;rft.place=Copper+Mountain+Resort%2C+CO%2C+USA&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E237-%3C%2Fspan%3E250&amp;rft.date=1995-12&amp;rft_id=info%3Adoi%2F10.1145%2F224056.224075&amp;rft.aulast=Liedtke&amp;rft.aufirst=Jochen&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-elphinstone_2013-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-elphinstone_2013_18-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFElphinstoneHeiser2013" class="citation conference cs1">Elphinstone, Kevin; Heiser, Gernot (November 2013). "From L3 to seL4: What Have We Learnt in 20 Years of L4 Microkernels?". <i>SOSP '13 Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles</i>. Farmington, PA, USA. pp.&#160;<span class="nowrap">133–</span>150. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F2517349.2522720">10.1145/2517349.2522720</a></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=From+L3+to+seL4%3A+What+Have+We+Learnt+in+20+Years+of+L4+Microkernels%3F&amp;rft.btitle=SOSP+%2713+Proceedings+of+the+Twenty-Fourth+ACM+Symposium+on+Operating+Systems+Principles&amp;rft.place=Farmington%2C+PA%2C+USA&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E133-%3C%2Fspan%3E150&amp;rft.date=2013-11&amp;rft_id=info%3Adoi%2F10.1145%2F2517349.2522720&amp;rft.aulast=Elphinstone&amp;rft.aufirst=Kevin&amp;rft.au=Heiser%2C+Gernot&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="qnx_ipc" class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.neutrino.sys_arch/topic/ipc_Sync_messaging.html">"Synchronous Message Passing"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">3 September</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Synchronous+Message+Passing&amp;rft_id=https%3A%2F%2Fwww.qnx.com%2Fdevelopers%2Fdocs%2F7.0.0%2F%23com.qnx.doc.neutrino.sys_arch%2Ftopic%2Fipc_Sync_messaging.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20050824015422/http://www.qnx.com/download/download/8107/QNX_High_Availability_Toolkit.pdf">"The QNX High Availability Toolkit"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://www.qnx.com/download/download/8107/QNX_High_Availability_Toolkit.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 24 August 2005.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=The+QNX+High+Availability+Toolkit&amp;rft_id=http%3A%2F%2Fwww.qnx.com%2Fdownload%2Fdownload%2F8107%2FQNX_High_Availability_Toolkit.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Wong_07-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wong_07_21-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWong2007" class="citation journal cs1">Wong, William (27 April 2007). <a rel="nofollow" class="external text" href="http://www.electronicdesign.com/embedded/io-io-its-virtual-work-we-go">"I/O, I/O, It's Off to Virtual Work We Go"</a>. <i><a href="/wiki/Electronic_Design_(magazine)" title="Electronic Design (magazine)">Electronic Design</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">8 June</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Electronic+Design&amp;rft.atitle=I%2FO%2C+I%2FO%2C+It%27s+Off+to+Virtual+Work+We+Go&amp;rft.date=2007-04-27&amp;rft.aulast=Wong&amp;rft.aufirst=William&amp;rft_id=http%3A%2F%2Fwww.electronicdesign.com%2Fembedded%2Fio-io-its-virtual-work-we-go&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAlexander1971" class="citation conference cs1">Alexander, Michael T. (1971). "Organization and Features of the Michigan Terminal System". <i>Proceedings of the November 16–18, 1971, Fall Joint Computer Conference</i>. Vol.&#160;40. pp.&#160;<span class="nowrap">589–</span>591. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1478873.1478951">10.1145/1478873.1478951</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:14614148">14614148</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=Organization+and+Features+of+the+Michigan+Terminal+System&amp;rft.btitle=Proceedings+of+the+November+16%E2%80%9318%2C+1971%2C+Fall+Joint+Computer+Conference&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E589-%3C%2Fspan%3E591&amp;rft.date=1971&amp;rft_id=info%3Adoi%2F10.1145%2F1478873.1478951&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A14614148%23id-name%3DS2CID&amp;rft.aulast=Alexander&amp;rft.aufirst=Michael+T.&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Lions_book-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-Lions_book_23-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLions1977" class="citation book cs1">Lions, John (1 August 1977). <a href="/wiki/Lions%27_Commentary_on_UNIX_6th_Edition,_with_Source_Code" class="mw-redirect" title="Lions&#39; Commentary on UNIX 6th Edition, with Source Code"><i>Lions' Commentary on UNIX 6th Edition, with Source Code</i></a>. Peer-To-Peer Communications. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-1-57398-013-5" title="Special:BookSources/978-1-57398-013-5"><bdi>978-1-57398-013-5</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Lions%27+Commentary+on+UNIX+6th+Edition%2C+with+Source+Code&amp;rft.pub=Peer-To-Peer+Communications&amp;rft.date=1977-08-01&amp;rft.isbn=978-1-57398-013-5&amp;rft.aulast=Lions&amp;rft.aufirst=John&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Liedtke_ESHHIJ_97-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-Liedtke_ESHHIJ_97_24-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLiedtkeElphinstoneSchönbergHärtig1997" class="citation conference cs1"><a href="/wiki/Jochen_Liedtke" title="Jochen Liedtke">Liedtke, Jochen</a>; Elphinstone, Kevin; Schönberg, Sebastian; Härtig, Hermann; <a href="/wiki/Gernot_Heiser" title="Gernot Heiser">Heiser, Gernot</a>; Islam, Nayeem; Jaeger, Trent (May 1997). <i>Achieved IPC performance (still the foundation for extensibility)</i>. 6th Workshop on Hot Topics in Operating Systems. Cape Cod, MA, USA: IEEE. pp.&#160;<span class="nowrap">28–</span>31. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FHOTOS.1997.595177">10.1109/HOTOS.1997.595177</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=Achieved+IPC+performance+%28still+the+foundation+for+extensibility%29&amp;rft.place=Cape+Cod%2C+MA%2C+USA&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E28-%3C%2Fspan%3E31&amp;rft.pub=IEEE&amp;rft.date=1997-05&amp;rft_id=info%3Adoi%2F10.1109%2FHOTOS.1997.595177&amp;rft.aulast=Liedtke&amp;rft.aufirst=Jochen&amp;rft.au=Elphinstone%2C+Kevin&amp;rft.au=Sch%C3%B6nberg%2C+Sebastian&amp;rft.au=H%C3%A4rtig%2C+Hermann&amp;rft.au=Heiser%2C+Gernot&amp;rft.au=Islam%2C+Nayeem&amp;rft.au=Jaeger%2C+Trent&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Gray_CCMH_05-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-Gray_CCMH_05_25-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGrayChapman,_MatthewChubb,_PeterMosberger-Tang,_David2005" class="citation conference cs1">Gray, Charles; Chapman, Matthew; Chubb, Peter; Mosberger-Tang, David; <a href="/wiki/Gernot_Heiser" title="Gernot Heiser">Heiser, Gernot</a> (April 2005). <a rel="nofollow" class="external text" href="http://www.usenix.org/publications/library/proceedings/usenix05/tech/general/gray.html"><i>Itanium—a system implementor's tale</i></a>. USENIX Annual Technical Conference. Annaheim, CA, USA. pp.&#160;<span class="nowrap">264–</span>278.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=Itanium%E2%80%94a+system+implementor%27s+tale&amp;rft.place=Annaheim%2C+CA%2C+USA&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E264-%3C%2Fspan%3E278&amp;rft.date=2005-04&amp;rft.aulast=Gray&amp;rft.aufirst=Charles&amp;rft.au=Chapman%2C+Matthew&amp;rft.au=Chubb%2C+Peter&amp;rft.au=Mosberger-Tang%2C+David&amp;rft.au=Heiser%2C+Gernot&amp;rft_id=http%3A%2F%2Fwww.usenix.org%2Fpublications%2Flibrary%2Fproceedings%2Fusenix05%2Ftech%2Fgeneral%2Fgray.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-vanSchaik_Heiser_07-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-vanSchaik_Heiser_07_26-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFvan_SchaikHeiser2007" class="citation conference cs1">van Schaik, Carl; <a href="/wiki/Gernot_Heiser" title="Gernot Heiser">Heiser, Gernot</a> (January 2007). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070426092901/http://www.ertos.nicta.com.au/publications/"><i>High-performance microkernels and virtualisation on ARM and segmented architectures</i></a>. 1st International Workshop on Microkernels for Embedded Systems. Sydney, Australia: NICTA. pp.&#160;<span class="nowrap">11–</span>21. Archived from <a rel="nofollow" class="external text" href="http://ertos.nicta.com.au/publications">the original</a> on 26 April 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">1 April</span> 2007</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=High-performance+microkernels+and+virtualisation+on+ARM+and+segmented+architectures&amp;rft.place=Sydney%2C+Australia&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E11-%3C%2Fspan%3E21&amp;rft.pub=NICTA&amp;rft.date=2007-01&amp;rft.aulast=van+Schaik&amp;rft.aufirst=Carl&amp;rft.au=Heiser%2C+Gernot&amp;rft_id=http%3A%2F%2Fertos.nicta.com.au%2Fpublications&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Hartig_97-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-Hartig_97_27-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHärtigHohmuthLiedtkeSchönberg1997" class="citation conference cs1">Härtig, Hermann; Hohmuth, Michael; <a href="/wiki/Jochen_Liedtke" title="Jochen Liedtke">Liedtke, Jochen</a>; Schönberg, Sebastian (October 1997). <a rel="nofollow" class="external text" href="http://portal.acm.org/citation.cfm?id=266660&amp;dl=ACM&amp;coll=&amp;CFID=15151515&amp;CFTOKEN=6184618">"The performance of μ-kernel-based systems"</a>. <i>Proceedings of the sixteenth ACM symposium on Operating systems principles - SOSP '97</i>. Vol.&#160;31. pp.&#160;<span class="nowrap">66–</span>77. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F268998.266660">10.1145/268998.266660</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-89791-916-5" title="Special:BookSources/0-89791-916-5"><bdi>0-89791-916-5</bdi></a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:1706253">1706253</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=The+performance+of+%CE%BC-kernel-based+systems&amp;rft.btitle=Proceedings+of+the+sixteenth+ACM+symposium+on+Operating+systems+principles+-+SOSP+%2797&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E66-%3C%2Fspan%3E77&amp;rft.date=1997-10&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A1706253%23id-name%3DS2CID&amp;rft_id=info%3Adoi%2F10.1145%2F268998.266660&amp;rft.isbn=0-89791-916-5&amp;rft.aulast=H%C3%A4rtig&amp;rft.aufirst=Hermann&amp;rft.au=Hohmuth%2C+Michael&amp;rft.au=Liedtke%2C+Jochen&amp;rft.au=Sch%C3%B6nberg%2C+Sebastian&amp;rft_id=http%3A%2F%2Fportal.acm.org%2Fcitation.cfm%3Fid%3D266660%26dl%3DACM%26coll%3D%26CFID%3D15151515%26CFTOKEN%3D6184618&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Gefflaut_JPLEUTDR_00-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-Gefflaut_JPLEUTDR_00_28-0">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGefflautJaegerParkLiedtke2000" class="citation conference cs1">Gefflaut, Alain; Jaeger, Trent; Park, Yoonho; <a href="/wiki/Jochen_Liedtke" title="Jochen Liedtke">Liedtke, Jochen</a>; Elphinstone, Kevin J.; Uhlig, Volkmar; Tidswell, Jonathon E.; Deller, Luke; et&#160;al. (2000). <i>The Sawmill multiserver approach</i>. 9th ACM SIGOPS European Workshop. Kolding, Denmark. pp.&#160;<span class="nowrap">109–</span>114. <a href="/wiki/CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&#160;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.8376">10.1.1.25.8376</a></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=The+Sawmill+multiserver+approach&amp;rft.place=Kolding%2C+Denmark&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E109-%3C%2Fspan%3E114&amp;rft.date=2000&amp;rft_id=https%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fsummary%3Fdoi%3D10.1.1.25.8376%23id-name%3DCiteSeerX&amp;rft.aulast=Gefflaut&amp;rft.aufirst=Alain&amp;rft.au=Jaeger%2C+Trent&amp;rft.au=Park%2C+Yoonho&amp;rft.au=Liedtke%2C+Jochen&amp;rft.au=Elphinstone%2C+Kevin+J.&amp;rft.au=Uhlig%2C+Volkmar&amp;rft.au=Tidswell%2C+Jonathon+E.&amp;rft.au=Deller%2C+Luke&amp;rft.au=Reuther%2C+Lars&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Leslie_CFGGMPSEH_05-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-Leslie_CFGGMPSEH_05_29-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLeslieChubbFitzRoy-DaleGötz2005" class="citation journal cs1">Leslie, Ben; Chubb, Peter; FitzRoy-Dale, Nicholas; Götz, Stefan; Gray, Charles; Macpherson, Luke; Potts, Daniel; Shen, Yueting; Elphinstone, Kevin; <a href="/wiki/Gernot_Heiser" title="Gernot Heiser">Heiser, Gernot</a> (September 2005). "User-level device drivers: achieved performance". <i>Journal of Computer Science and Technology</i>. <b>20</b> (5): <span class="nowrap">654–</span>664. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs11390-005-0654-4">10.1007/s11390-005-0654-4</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:1121537">1121537</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Journal+of+Computer+Science+and+Technology&amp;rft.atitle=User-level+device+drivers%3A+achieved+performance&amp;rft.volume=20&amp;rft.issue=5&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E654-%3C%2Fspan%3E664&amp;rft.date=2005-09&amp;rft_id=info%3Adoi%2F10.1007%2Fs11390-005-0654-4&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A1121537%23id-name%3DS2CID&amp;rft.aulast=Leslie&amp;rft.aufirst=Ben&amp;rft.au=Chubb%2C+Peter&amp;rft.au=FitzRoy-Dale%2C+Nicholas&amp;rft.au=G%C3%B6tz%2C+Stefan&amp;rft.au=Gray%2C+Charles&amp;rft.au=Macpherson%2C+Luke&amp;rft.au=Potts%2C+Daniel&amp;rft.au=Shen%2C+Yueting&amp;rft.au=Elphinstone%2C+Kevin&amp;rft.au=Heiser%2C+Gernot&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFTanenbaum" class="citation web cs1"><a href="/wiki/Andrew_S._Tanenbaum" title="Andrew S. Tanenbaum">Tanenbaum, Andrew S.</a> <a rel="nofollow" class="external text" href="http://www.cs.vu.nl/~ast/reliable-os/">"Tanenbaum-Torvalds debate, part II"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Tanenbaum-Torvalds+debate%2C+part+II&amp;rft.aulast=Tanenbaum&amp;rft.aufirst=Andrew+S.&amp;rft_id=http%3A%2F%2Fwww.cs.vu.nl%2F~ast%2Freliable-os%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text">Tanenbaum, A., Herder, J. and Bos, H. (May 2006).</span> </li> <li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBiggsLeeHeiser2018" class="citation conference cs1">Biggs, Simon; Lee, Damon; Heiser, Gernot (2018). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/abs/10.1145/3265723.3265733">"The Jury Is In: Monolithic OS Design Is Flawed: Microkernel-based Designs Improve Security"</a>. <i>Proceedings of the 9th Asia-Pacific Workshop on Systems</i>. Jeju Island, Republic of Korea: Association for Computing Machinery. pp.&#160;<span class="nowrap">1–</span>7. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3265723.3265733">10.1145/3265723.3265733</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=The+Jury+Is+In%3A+Monolithic+OS+Design+Is+Flawed%3A+Microkernel-based+Designs+Improve+Security&amp;rft.btitle=Proceedings+of+the+9th+Asia-Pacific+Workshop+on+Systems&amp;rft.place=Jeju+Island%2C+Republic+of+Korea&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E1-%3C%2Fspan%3E7&amp;rft.pub=Association+for+Computing+Machinery&amp;rft.date=2018&amp;rft_id=info%3Adoi%2F10.1145%2F3265723.3265733&amp;rft.aulast=Biggs&amp;rft.aufirst=Simon&amp;rft.au=Lee%2C+Damon&amp;rft.au=Heiser%2C+Gernot&amp;rft_id=https%3A%2F%2Fdl.acm.org%2Fdoi%2Fabs%2F10.1145%2F3265723.3265733&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFShapiroWeber" class="citation conference cs1">Shapiro, Jonathan S.; Weber, Samuel. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160303174121/http://www.eros-os.org/papers/oakland2000.ps"><i>Verifying the EROS Confinement Mechanism</i></a>. IEEE Conference on Security and Privacy. Archived from <a rel="nofollow" class="external text" href="http://www.eros-os.org/papers/oakland2000.ps">the original</a> on 3 March 2016.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=Verifying+the+EROS+Confinement+Mechanism&amp;rft.aulast=Shapiro&amp;rft.aufirst=Jonathan+S.&amp;rft.au=Weber%2C+Samuel&amp;rft_id=http%3A%2F%2Fwww.eros-os.org%2Fpapers%2Foakland2000.ps&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFElkaduweKleinElphinstone2007" class="citation book cs1">Elkaduwe, Dhammika; Klein, Gerwin; Elphinstone, Kevin (2007). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111129122037/http://ertos.org/publications/papers/Elkaduwe_GE_07.abstract"><i>Verified Protection Model of the seL4 Microkernel</i></a>. submitted for publication. Archived from <a rel="nofollow" class="external text" href="http://ertos.org/publications/papers/Elkaduwe_GE_07.abstract">the original</a> on 29 November 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">10 October</span> 2007</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Verified+Protection+Model+of+the+seL4+Microkernel&amp;rft.pub=submitted+for+publication&amp;rft.date=2007&amp;rft.aulast=Elkaduwe&amp;rft.aufirst=Dhammika&amp;rft.au=Klein%2C+Gerwin&amp;rft.au=Elphinstone%2C+Kevin&amp;rft_id=http%3A%2F%2Fertos.org%2Fpublications%2Fpapers%2FElkaduwe_GE_07.abstract&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Klein_EHACDEEKNSTW_09-35"><span class="mw-cite-backlink">^ <a href="#cite_ref-Klein_EHACDEEKNSTW_09_35-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Klein_EHACDEEKNSTW_09_35-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKleinElphinstoneHeiserAndronick2009" class="citation conference cs1">Klein, Gerwin; Elphinstone, Kevin; Heiser, Gernot; Andronick, June; Cock, David; Derrin, Philip; Elkaduwe, Dhammika; Engelhardt, Kai; Kolanski, Rafal; Norrish, Michael; Sewell, Thomas; Tuch, Harvey; Winwood, Simon (October 2009). <a rel="nofollow" class="external text" href="http://www.sigops.org/sosp/sosp09/papers/klein-sosp09.pdf"><i>seL4: Formal verification of an OS kernel</i></a> <span class="cs1-format">(PDF)</span>. 22nd ACM Symposium on Operating System Principles. Big Sky, MT, USA.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=seL4%3A+Formal+verification+of+an+OS+kernel&amp;rft.place=Big+Sky%2C+MT%2C+USA&amp;rft.date=2009-10&amp;rft.aulast=Klein&amp;rft.aufirst=Gerwin&amp;rft.au=Elphinstone%2C+Kevin&amp;rft.au=Heiser%2C+Gernot&amp;rft.au=Andronick%2C+June&amp;rft.au=Cock%2C+David&amp;rft.au=Derrin%2C+Philip&amp;rft.au=Elkaduwe%2C+Dhammika&amp;rft.au=Engelhardt%2C+Kai&amp;rft.au=Kolanski%2C+Rafal&amp;rft.au=Norrish%2C+Michael&amp;rft.au=Sewell%2C+Thomas&amp;rft.au=Tuch%2C+Harvey&amp;rft.au=Winwood%2C+Simon&amp;rft_id=http%3A%2F%2Fwww.sigops.org%2Fsosp%2Fsosp09%2Fpapers%2Fklein-sosp09.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Elkaduwe_DE_08-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-Elkaduwe_DE_08_36-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFElkaduweDerrinElphinstone2008" class="citation conference cs1">Elkaduwe, Dhammika; Derrin, Philip; Elphinstone, Kevin (April 2008). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100424035229/http://www.ertos.nicta.com.au/publications/papers/Elkaduwe_DE_08.abstract"><i>Kernel design for isolation and assurance of physical memory</i></a>. 1st Workshop on Isolation and Integration in Embedded Systems. Glasgow, UK. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1435458">10.1145/1435458</a>. Archived from <a rel="nofollow" class="external text" href="http://ertos.nicta.com.au/publications/papers/Elkaduwe_DE_08.abstract">the original</a> on 24 April 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">17 August</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=Kernel+design+for+isolation+and+assurance+of+physical+memory&amp;rft.place=Glasgow%2C+UK&amp;rft.date=2008-04&amp;rft_id=info%3Adoi%2F10.1145%2F1435458&amp;rft.aulast=Elkaduwe&amp;rft.aufirst=Dhammika&amp;rft.au=Derrin%2C+Philip&amp;rft.au=Elphinstone%2C+Kevin&amp;rft_id=http%3A%2F%2Fertos.nicta.com.au%2Fpublications%2Fpapers%2FElkaduwe_DE_08.abstract&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-TUD-37"><span class="mw-cite-backlink">^ <a href="#cite_ref-TUD_37-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-TUD_37-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120406021703/http://www.inf.tu-dresden.de/index.php?node_id=2697">"TUD Home: Operating Systems: Research: Microkernel &amp; Hypervisor"</a>. <i>Faculty of Computer Science</i>. Technische Universität Dresden. 12 August 2010. Archived from <a rel="nofollow" class="external text" href="http://www.inf.tu-dresden.de/index.php?node_id=2697">the original</a> on 6 April 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">5 November</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Faculty+of+Computer+Science&amp;rft.atitle=TUD+Home%3A+Operating+Systems%3A+Research%3A+Microkernel+%26+Hypervisor&amp;rft.date=2010-08-12&amp;rft_id=http%3A%2F%2Fwww.inf.tu-dresden.de%2Findex.php%3Fnode_id%3D2697&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Steinberg_Kauer_EuroSys_2010-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-Steinberg_Kauer_EuroSys_2010_38-0">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSteinbergKauer2010" class="citation conference cs1">Steinberg, Udo; Kauer, Bernhard (April 2010). <i>NOVA: A Microhypervisor-Based Secure Virtualization Architecture</i>. Eurosys 2010. Paris, France. pp.&#160;<span class="nowrap">209–</span>222. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1755913.1755935">10.1145/1755913.1755935</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=NOVA%3A+A+Microhypervisor-Based+Secure+Virtualization+Architecture&amp;rft.place=Paris%2C+France&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E209-%3C%2Fspan%3E222&amp;rft.date=2010-04&amp;rft_id=info%3Adoi%2F10.1145%2F1755913.1755935&amp;rft.aulast=Steinberg&amp;rft.aufirst=Udo&amp;rft.au=Kauer%2C+Bernhard&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Lackor_Warg_IIES_09-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-Lackor_Warg_IIES_09_39-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLackorzynskiWarg2009" class="citation conference cs1">Lackorzynski, Adam; Warg, Alexander (March 2009). <a rel="nofollow" class="external text" href="http://portal.acm.org/citation.cfm?id=1519135&amp;dl=ACM"><i>Taming Subsystems – Capabilities as Universal Resource Access Control in L4</i></a>. IIES'09: Second Workshop on Isolation and Integration in Embedded Systems. <a href="/wiki/Nuremberg" title="Nuremberg">Nuremberg</a>, Germany. <a href="/wiki/CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&#160;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.629.9845">10.1.1.629.9845</a></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=Taming+Subsystems+%E2%80%93+Capabilities+as+Universal+Resource+Access+Control+in+L4&amp;rft.place=Nuremberg%2C+Germany&amp;rft.date=2009-03&amp;rft_id=https%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fsummary%3Fdoi%3D10.1.1.629.9845%23id-name%3DCiteSeerX&amp;rft.aulast=Lackorzynski&amp;rft.aufirst=Adam&amp;rft.au=Warg%2C+Alexander&amp;rft_id=http%3A%2F%2Fportal.acm.org%2Fcitation.cfm%3Fid%3D1519135%26dl%3DACM&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-Klein_AEMSKH_14-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-Klein_AEMSKH_14_40-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKleinAndronickElphinstoneMurray2014" class="citation journal cs1">Klein, Gerwin; Andronick, June; Elphinstone, Kevin; Murray, Toby; Sewell, Thomas; Kolanski, Rafal; Heiser, Gernot (February 2014). "Comprehensive Formal Verification of an OS Microkernel". <i>ACM Transactions on Computer Systems</i>. <b>32</b> (1): 2:1–2:70. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F2560537">10.1145/2560537</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:4474342">4474342</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=ACM+Transactions+on+Computer+Systems&amp;rft.atitle=Comprehensive+Formal+Verification+of+an+OS+Microkernel&amp;rft.volume=32&amp;rft.issue=1&amp;rft.pages=2%3A1-2%3A70&amp;rft.date=2014-02&amp;rft_id=info%3Adoi%2F10.1145%2F2560537&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A4474342%23id-name%3DS2CID&amp;rft.aulast=Klein&amp;rft.aufirst=Gerwin&amp;rft.au=Andronick%2C+June&amp;rft.au=Elphinstone%2C+Kevin&amp;rft.au=Murray%2C+Toby&amp;rft.au=Sewell%2C+Thomas&amp;rft.au=Kolanski%2C+Rafal&amp;rft.au=Heiser%2C+Gernot&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> <li id="cite_note-udel-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-udel_41-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDavid_L._Mills_and_Poul-Henning_Kamp2000" class="citation web cs1">David L. Mills and Poul-Henning Kamp (28 November 2000). <a rel="nofollow" class="external text" href="http://www.eecis.udel.edu/~mills/database/papers/nano/nano2.pdf">"The Nanokernel"</a> <span class="cs1-format">(PDF)</span><span class="reference-accessdate">. Retrieved <span class="nowrap">28 August</span> 2017</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=The+Nanokernel&amp;rft.date=2000-11-28&amp;rft.au=David+L.+Mills+and+Poul-Henning+Kamp&amp;rft_id=http%3A%2F%2Fwww.eecis.udel.edu%2F~mills%2Fdatabase%2Fpapers%2Fnano%2Fnano2.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span></span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Microkernel&amp;action=edit&amp;section=14" title="Edit section: Further reading"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="http://citeseerx.ist.psu.edu/search?q=microkernel">Scientific articles about microkernels</a> (on <a href="/wiki/CiteSeerX" title="CiteSeerX">CiteSeerX</a>), including: <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDan_Hildebrand1992" class="citation conference cs1">Dan Hildebrand (1992). "An Architectural Overview of QNX". <i>Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures</i>. pp.&#160;<span class="nowrap">113–</span>126. <a href="/wiki/CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&#160;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.459.4481">10.1.1.459.4481</a></span>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/1-880446-42-1" title="Special:BookSources/1-880446-42-1"><bdi>1-880446-42-1</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=An+Architectural+Overview+of+QNX&amp;rft.btitle=Proceedings+of+the+Workshop+on+Micro-kernels+and+Other+Kernel+Architectures&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E113-%3C%2Fspan%3E126&amp;rft.date=1992&amp;rft_id=https%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fsummary%3Fdoi%3D10.1.1.459.4481%23id-name%3DCiteSeerX&amp;rft.isbn=1-880446-42-1&amp;rft.au=Dan+Hildebrand&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span> – the basic QNX reference.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFTanenbaum,_A.,_Herder,_J._and_Bos,_H.2006" class="citation journal cs1">Tanenbaum, A., Herder, J. and Bos, H. (May 2006). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170621194406/https://www.computer.org/portal/site/computer/menuitem.eb7d70008ce52e4b0ef1bd108bcd45f3/index.jsp?&amp;pName=computer_level1&amp;path=computer%2Fhomepage%2F0506&amp;file=cover1.xml&amp;xsl=article.xsl">"Can We Make Operating Systems Reliable and Secure?"</a>. <i>Computer</i>. <b>39</b> (5): <span class="nowrap">44–</span>51. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMC.2006.156">10.1109/MC.2006.156</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:99779">99779</a>. Archived from <a rel="nofollow" class="external text" href="http://www.computer.org/portal/site/computer/menuitem.eb7d70008ce52e4b0ef1bd108bcd45f3/index.jsp?&amp;pName=computer_level1&amp;path=computer/homepage/0506&amp;file=cover1.xml&amp;xsl=article.xsl">the original</a> on 21 June 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">3 April</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Computer&amp;rft.atitle=Can+We+Make+Operating+Systems+Reliable+and+Secure%3F&amp;rft.volume=39&amp;rft.issue=5&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E44-%3C%2Fspan%3E51&amp;rft.date=2006-05&amp;rft_id=info%3Adoi%2F10.1109%2FMC.2006.156&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A99779%23id-name%3DS2CID&amp;rft.au=Tanenbaum%2C+A.%2C+Herder%2C+J.+and+Bos%2C+H.&amp;rft_id=http%3A%2F%2Fwww.computer.org%2Fportal%2Fsite%2Fcomputer%2Fmenuitem.eb7d70008ce52e4b0ef1bd108bcd45f3%2Findex.jsp%3F%26pName%3Dcomputer_level1%26path%3Dcomputer%2Fhomepage%2F0506%26file%3Dcover1.xml%26xsl%3Darticle.xsl&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span><span class="cs1-maint citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_journal" title="Template:Cite journal">cite journal</a>}}</code>: CS1 maint: multiple names: authors list (<a href="/wiki/Category:CS1_maint:_multiple_names:_authors_list" title="Category:CS1 maint: multiple names: authors list">link</a>)</span> -the basic reliable reference.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBlack,_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.1992" class="citation journal cs1">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. (March 1992). "Microkernel Operating System Architecture and Mach". <i>Journal of Information Processing</i>. <b>14</b> (4).</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Journal+of+Information+Processing&amp;rft.atitle=Microkernel+Operating+System+Architecture+and+Mach&amp;rft.volume=14&amp;rft.issue=4&amp;rft.date=1992-03&amp;rft.au=Black%2C+D.L.%2C+Golub%2C+D.B.%2C+Julin%2C+D.P.%2C+Rashid%2C+R.F.%2C+Draves%2C+R.P.%2C+Dean%2C+R.W.%2C+Forin%2C+A.%2C+Barrera%2C+J.%2C+Tokuda%2C+H.%2C+Malan%2C+G.%2C+and+Bohman%2C+D.&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span><span class="cs1-maint citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_journal" title="Template:Cite journal">cite journal</a>}}</code>: CS1 maint: multiple names: authors list (<a href="/wiki/Category:CS1_maint:_multiple_names:_authors_list" title="Category:CS1 maint: multiple names: authors list">link</a>)</span> – the basic Mach reference.</li></ul></li> <li>*<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVarhol1994" class="citation journal cs1">Varhol, Peter D. (January 1994). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20060307075538/http://www.byte.com/art/9401/sec8/art2.htm">"Small Kernels Hit It Big"</a>. <i>Byte</i>. Archived from <a rel="nofollow" class="external text" href="http://www.byte.com:80/art/9401/sec8/art2.htm">the original</a> on 7 March 2006<span class="reference-accessdate">. Retrieved <span class="nowrap">20 September</span> 2017</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Byte&amp;rft.atitle=Small+Kernels+Hit+It+Big&amp;rft.date=1994-01&amp;rft.aulast=Varhol&amp;rft.aufirst=Peter+D.&amp;rft_id=http%3A%2F%2Fwww.byte.com%3A80%2Fart%2F9401%2Fsec8%2Fart2.htm&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMicrokernel" class="Z3988"></span> An assessment of the present and future state of microkernel based OSes as of January 1994</li> <li><a rel="nofollow" class="external text" href="http://c2.com/cgi/wiki?MicroKernel">MicroKernel page</a> from the <a href="/wiki/Portland_Pattern_Repository" title="Portland Pattern Repository">Portland Pattern Repository</a></li> <li>The <a href="/wiki/Tanenbaum%E2%80%93Torvalds_debate" title="Tanenbaum–Torvalds debate">Tanenbaum–Torvalds debate</a> <ul><li><a rel="nofollow" class="external text" href="http://www.oreilly.com/catalog/opensources/book/appa.html">The Tanenbaum-Torvalds Debate, 1992.01.29</a></li> <li>Tanenbaum, A. S. "<a rel="nofollow" class="external text" href="http://www.computer.org/csdl/mags/co/2006/05/r5044-abs.html">Can We Make Operating Systems Reliable and Secure?</a>".</li> <li>Torvalds, L. <a rel="nofollow" class="external text" href="http://www.realworldtech.com/forums/index.cfm?action=detail&amp;id=66630&amp;threadid=66595&amp;roomid=11">Linus Torvalds about the microkernels again, 2006.05.09</a></li> <li>Shapiro, J. "<a rel="nofollow" class="external text" href="https://web.archive.org/web/20160922022726/http://www.coyotos.org/docs/misc/linus-rebuttal.html">Debunking Linus's Latest</a>".</li> <li>Tanenbaum, A. S. "<a rel="nofollow" class="external text" href="http://www.cs.vu.nl/~ast/reliable-os/">Tanenbaum-Torvalds Debate: Part II</a>".</li></ul></li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Microkernels-nanokernels667" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Microkernel" title="Template:Microkernel"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Microkernel" title="Template talk:Microkernel"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Microkernel" title="Special:EditPage/Template:Microkernel"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Microkernels-nanokernels667" style="font-size:114%;margin:0 4em"><a class="mw-selflink selflink">Microkernels</a>-<a class="mw-selflink-fragment" href="#Nanokernel">nanokernels</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Kernel_(operating_system)" title="Kernel (operating system)">Kernels</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/L4_microkernel_family" title="L4 microkernel family">L4</a> family</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/Eumel" title="Eumel">Eumel</a></i> → <i><a href="/wiki/L3_microkernel" class="mw-redirect" title="L3 microkernel">L3</a></i> → <a href="/wiki/L4_microkernel_family" title="L4 microkernel family">L4</a>°</li> <li><a href="/wiki/Open_Kernel_Labs" title="Open Kernel Labs">OKL4</a>°</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Macintosh" class="mw-redirect" title="Macintosh">Macintosh</a> hosted</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/Mac_OS_nanokernel" title="Mac OS nanokernel">Mac OS nanokernel</a></i></li> <li><i><a href="/wiki/NuKernel" class="mw-redirect" title="NuKernel">NuKernel</a></i></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Psion_(company)" title="Psion (company)">Psion</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/EKA1" title="EKA1">EKA1</a></i> → <i><a href="/wiki/EKA2" title="EKA2">EKA2</a></i>^°</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Amiga" title="Amiga">Amiga</a>-type</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/Exec_(Amiga)" title="Exec (Amiga)">Exec</a></i> <ul><li><a href="/wiki/Exec_(Amiga)#ExecSG" title="Exec (Amiga)">ExecSG</a></li></ul></li> <li><a href="/wiki/Quark_(kernel)" title="Quark (kernel)">Quark</a></li> <li><i><a href="/wiki/WarpOS" title="WarpOS">WarpOS</a></i></li></ul> </div></td></tr></tbody></table><div> <ul><li><i><a href="/wiki/Adaptive_Domain_Environment_for_Operating_Systems" title="Adaptive Domain Environment for Operating Systems">ADEOS</a></i>°</li> <li><i><a href="/wiki/EROS_(microkernel)" title="EROS (microkernel)">EROS</a></i>^°</li> <li><i><a href="/wiki/K42" title="K42">K42</a></i>°</li> <li>Little Kernel</li> <li><i><a href="/wiki/Mach_(kernel)" title="Mach (kernel)">Mach</a></i>° <ul><li><a href="/wiki/GNU_Mach" title="GNU Mach">GNU Mach</a>°</li></ul></li> <li><i><a href="/wiki/MicroEmpix" title="MicroEmpix">MicroEmpix</a></i></li> <li><a href="/wiki/Green_Hills_Software#Real-time_operating_systems" title="Green Hills Software">µ-velOSity</a>^</li> <li><i><a href="/wiki/Spring_(operating_system)#The_nucleus" title="Spring (operating system)">nucleus</a></i></li> <li>Off++ → Plan B</li> <li><i><a href="/wiki/Taligent#Pink_system" title="Taligent">Opus</a></i></li> <li><i><a href="/wiki/PowerUP_(accelerator)#PowerUP_software" title="PowerUP (accelerator)">PowerUP</a></i></li> <li><a href="/wiki/RTLinux" title="RTLinux">RTLinux</a>°</li> <li><a href="/wiki/TI-RTOS#RTOS_kernel_overview" title="TI-RTOS">TI-RTOS kernel</a>^°</li> <li><i><a href="/wiki/Vanguard_(microkernel)" title="Vanguard (microkernel)">Vanguard</a></i></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Operating_system" title="Operating system">Operating<br />systems</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/POSIX" title="POSIX">POSIX</a> support</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Unix-like" title="Unix-like">Unix-like</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <li><i><a href="/wiki/ARX_(operating_system)" title="ARX (operating system)">ARX</a></i></li> <li><a href="/wiki/GNU_Hurd" title="GNU Hurd">GNU Hurd</a>°</li> <li><i><a href="/wiki/Lites" title="Lites">Lites</a></i></li> <li><i><a href="/wiki/Meiko_Scientific#MeikOS" title="Meiko Scientific">MeikOS</a></i></li> <li><a href="/wiki/Minix" title="Minix">Minix</a>° <ul><li><a href="/wiki/Minix-vmd" class="mw-redirect" title="Minix-vmd">Minix-vmd</a>°</li> <li><a href="/wiki/Minix_3" title="Minix 3">Minix 3</a>°</li></ul></li> <li><i><a href="/wiki/MkLinux" title="MkLinux">MkLinux</a></i>°</li> <li><i><a href="/wiki/Multi-Environment_Real-Time" title="Multi-Environment Real-Time">Multi-Environment Real-Time</a></i>^ (<i>MERT</i> – <i>Unix-RT</i>)</li> <li><i><a href="/wiki/OS2000" title="OS2000">OS2000</a></i></li> <li><a href="/wiki/QNX" title="QNX">QNX</a>^</li> <li><a href="/wiki/Redox_(operating_system)" title="Redox (operating system)">Redox</a>°</li> <li><i><a href="/wiki/Spring_(operating_system)" title="Spring (operating system)">Spring</a></i></li> <li><a href="/wiki/Tinix" title="Tinix">Tinix</a></li> <li><i><a href="/wiki/UNICOS" title="UNICOS">UNICOS</a></i></li> <li><i><a href="/wiki/VSTa" title="VSTa">VSTa</a></i></li> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Partial</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/ChorusOS" title="ChorusOS">ChorusOS</a>^</i></li> <li><a href="/wiki/Integrity_(operating_system)" title="Integrity (operating system)">Integrity</a>^</li> <li><a href="/wiki/Nucleus_RTOS" title="Nucleus RTOS">Nucleus RTOS</a>^</li> <li><a href="/wiki/NuttX" title="NuttX">NuttX</a>^°</li> <li><a href="/wiki/Operating_System_Embedded" class="mw-redirect" title="Operating System Embedded">OSE</a>^</li> <li><a href="/wiki/RIOT_(operating_system)" title="RIOT (operating system)">RIOT</a>^°</li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Capability-based_security" title="Capability-based security">Capability-based</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/GNOSIS" title="GNOSIS">GNOSIS</a></i> → <i><a href="/wiki/KeyKOS" title="KeyKOS">KeyKOS</a></i> → <i><a href="/wiki/EROS_(microkernel)" title="EROS (microkernel)">EROS</a></i> → CapROS</li> <li><i><a href="/wiki/Hydra_(operating_system)" title="Hydra (operating system)">Hydra</a></i></li> <li><a href="/wiki/L4_microkernel_family#High_assurance:_seL4" title="L4 microkernel family">seL4</a>^°</li> <li><i><a href="/wiki/Midori_(operating_system)" title="Midori (operating system)">Midori</a></i></li> <li><i><a href="/wiki/NLTSS" title="NLTSS">NLTSS</a></i></li> <li><i><a href="/wiki/HarmonyOS_NEXT" title="HarmonyOS NEXT">HarmonyOS NEXT</a> (<a href="/wiki/OpenHarmony" title="OpenHarmony">OpenHarmony</a>, <a href="/wiki/OpenHarmony#Oniro_OS" title="OpenHarmony">Oniro OS</a>)</i> → <i><a href="/wiki/HarmonyOS" title="HarmonyOS">HarmonyOS</a></i></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/L4_microkernel_family" title="L4 microkernel family">L4</a> kernel</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/L4Linux" title="L4Linux">L<sup>4</sup>Linux</a>^°</li> <li><a href="/wiki/PikeOS" title="PikeOS">PikeOS</a>^</li> <li><i><a href="/wiki/REX_OS" title="REX OS">REX OS</a></i>^</li> <li><a href="/wiki/Wombat_(operating_system)" title="Wombat (operating system)">Wombat</a>^°</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Java_virtual_machine" title="Java virtual machine">Java virtual machine</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/JavaOS" title="JavaOS">JavaOS</a></i> (<i><a href="/wiki/JavaOS#Chorus/Jazz" title="JavaOS">Chorus/Jazz</a></i>^ integrates <i><a href="/wiki/ChorusOS" title="ChorusOS">ChorusOS</a></i>^)</li> <li><i><a href="/wiki/JX_(operating_system)" title="JX (operating system)">JX</a></i>°</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Macintosh" class="mw-redirect" title="Macintosh">Macintosh</a> hosted</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="Unix-like13" scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Unix-like" title="Unix-like">Unix-like</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/MachTen" title="MachTen">MachTen</a></i></li> <li><i><a href="/wiki/MacMach" title="MacMach">MacMach</a></i></li></ul> </div></td></tr></tbody></table><div> <ul><li><i><a href="/wiki/Copland_(operating_system)" title="Copland (operating system)">Copland</a></i></li> <li><i><a href="/wiki/Mac_OS_8#Mac_OS_8.6" title="Mac OS 8">Classic Mac OS</a></i> (<a href="/wiki/PowerPC" title="PowerPC">PowerPC</a> kernel)</li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Psion_(company)" title="Psion (company)">Psion</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <li><i><a href="/wiki/EPOC_(operating_system)" title="EPOC (operating system)">EPOC</a></i> → <i><a href="/wiki/Symbian" title="Symbian">Symbian</a> OS</i>^°</li> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Amiga" title="Amiga">Amiga</a>-type</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AmigaOS" title="AmigaOS">AmigaOS</a></li> <li><a href="/wiki/AROS_Research_Operating_System" title="AROS Research Operating System">AROS</a>° <ul><li><a href="/wiki/AROS_Research_Operating_System#AspireOS" title="AROS Research Operating System">AspireOS</a>°</li> <li><a href="/wiki/AROS_Research_Operating_System#Broadway" title="AROS Research Operating System">Broadway</a>°</li> <li><a href="/wiki/AROS_Research_Operating_System#Icaros_Desktop" title="AROS Research Operating System">Icaros Desktop</a>°</li></ul></li> <li><a href="/wiki/MorphOS" title="MorphOS">MorphOS</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Singularity_(operating_system)" title="Singularity (operating system)">Singularity</a></li> <li><a href="/wiki/ThreadX" title="ThreadX">ThreadX</a>^</li> <li><i><a href="/wiki/Verve_(operating_system)" title="Verve (operating system)">Verve</a></i></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/AIM_alliance" title="AIM alliance">AIM alliance</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i>Pink</i> → <i><a href="/wiki/Taligent" title="Taligent">Taligent</a> OS</i> → <i><a href="/wiki/Workplace_OS" title="Workplace OS">Workplace OS</a></i></li></ul> </div></td></tr></tbody></table><div> <ul><li><i><a href="/wiki/Amoeba_(operating_system)" title="Amoeba (operating system)">Amoeba</a></i>°</li> <li><i><a href="/wiki/BeRTOS" title="BeRTOS">BeRTOS</a></i>^°</li> <li><a href="/wiki/ChibiOS/RT" title="ChibiOS/RT">ChibiOS/RT</a>^°</li> <li><a href="/wiki/FreeRTOS" title="FreeRTOS">FreeRTOS</a>^°</li> <li><a href="/wiki/HelenOS" title="HelenOS">HelenOS</a>°</li> <li><a href="/wiki/Micro-Controller_Operating_Systems" title="Micro-Controller Operating Systems">µC/OS</a>^°</li> <li><a href="/wiki/MQX" title="MQX">MQX</a>^</li> <li><a href="/wiki/OpenComRTOS" title="OpenComRTOS">OpenComRTOS</a>^</li> <li><a href="/wiki/Phantom_OS" title="Phantom OS">Phantom OS</a>^°</li> <li><i><a href="/wiki/RC_4000_multiprogramming_system" title="RC 4000 multiprogramming system">RC 4000</a></i></li> <li><a href="/wiki/SharpOS" title="SharpOS">SharpOS</a>°</li> <li><i><a href="/wiki/SPIN_(operating_system)" title="SPIN (operating system)">SPIN</a></i>°</li> <li><i><a href="/wiki/Thoth_(operating_system)" title="Thoth (operating system)">Thoth</a></i>^ → <i><a href="/wiki/Harmony_(operating_system)" title="Harmony (operating system)">Harmony</a></i>^ → <i><a href="/wiki/V_(operating_system)" title="V (operating system)">V</a></i></li> <li><a href="/wiki/Versatile_Real-Time_Executive" title="Versatile Real-Time Executive">VRTX</a>^</li> <li><a href="/wiki/Zephyr_(operating_system)" title="Zephyr (operating system)">Zephyr</a>^°</li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software_framework" title="Software framework">Frameworks</a>, <a href="/wiki/Software_development_kit" title="Software development kit">kits</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <li><a href="/wiki/Cosmos_(operating_system)" title="Cosmos (operating system)">Cosmos</a>°</li> <li><a href="/wiki/Genode" title="Genode">Genode</a>°</li> <li><a href="/wiki/TI-RTOS" title="TI-RTOS">TI-RTOS</a>^°</li> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programmer" title="Programmer">Developers</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Gordon_Bell_(QNX)" title="Gordon Bell (QNX)">Gordon Bell</a></li> <li><a href="/wiki/Thomas_Bushnell" title="Thomas Bushnell">Thomas Bushnell</a></li> <li><a href="/wiki/David_Cheriton" title="David Cheriton">David Cheriton</a></li> <li><a href="/wiki/Dan_Dodge" title="Dan Dodge">Dan Dodge</a></li> <li><a href="/wiki/Per_Brinch_Hansen" title="Per Brinch Hansen">Per Brinch Hansen</a></li> <li><a href="/wiki/Gernot_Heiser" title="Gernot Heiser">Gernot Heiser</a></li> <li><a href="/wiki/Jochen_Liedtke" title="Jochen Liedtke">Jochen Liedtke</a></li> <li><a href="/wiki/James_G._Mitchell" title="James G. Mitchell">James G. Mitchell</a></li> <li><a href="/wiki/Ike_Nassi" title="Ike Nassi">Ike Nassi</a></li> <li><a href="/wiki/Richard_Rashid" title="Richard Rashid">Richard Rashid</a></li> <li><a href="/wiki/Andrew_S._Tanenbaum" title="Andrew S. Tanenbaum">Andrew S. Tanenbaum</a></li> <li><a href="/wiki/Avie_Tevanian" title="Avie Tevanian">Avie Tevanian</a></li> <li><a href="/wiki/William_Wulf" title="William Wulf">William Wulf</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><i>Italics</i> <b>= discontinued</b></li> <li><b>^ = <a href="/wiki/Real-time_operating_system" title="Real-time operating system">Real-time</a></b></li> <li><b>° = <a href="/wiki/Open-source_software" title="Open-source software">Open-source software</a></b><br /><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:Microkernel-based_operating_systems" title="Category:Microkernel-based operating systems">Category: Microkernel-based operating systems</a></b> <span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:Microkernels" title="Category:Microkernels">Category: Microkernels</a></b></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Operating_systems310" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Operating_systems" title="Template:Operating systems"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Operating_systems" title="Template talk:Operating systems"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Operating_systems" title="Special:EditPage/Template:Operating systems"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Operating_systems310" style="font-size:114%;margin:0 4em"><a href="/wiki/Operating_system" title="Operating system">Operating systems</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Comparison_of_operating_systems" title="Comparison of operating systems">Comparison</a></li> <li><a href="/wiki/Forensic_software_engineering" title="Forensic software engineering">Forensic engineering</a></li> <li><a href="/wiki/History_of_operating_systems" title="History of operating systems">History</a></li> <li><a href="/wiki/List_of_operating_systems" title="List of operating systems">List</a></li> <li><a href="/wiki/Timeline_of_operating_systems" title="Timeline of operating systems">Timeline</a></li> <li><a href="/wiki/Usage_share_of_operating_systems" title="Usage share of operating systems">Usage share</a></li> <li><a href="/wiki/Comparison_of_user_features_of_operating_systems" title="Comparison of user features of operating systems">User features comparison</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Variants</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Disk_operating_system" title="Disk operating system">Disk operating system</a></li> <li><a href="/wiki/Distributed_operating_system" title="Distributed operating system">Distributed operating system</a></li> <li><a href="/wiki/Embedded_operating_system" title="Embedded operating system">Embedded operating system</a></li> <li><a href="/wiki/Hobbyist_operating_system" title="Hobbyist operating system">Hobbyist operating system</a></li> <li><a href="/wiki/Just_enough_operating_system" title="Just enough operating system">Just enough operating system</a></li> <li><a href="/wiki/Mobile_operating_system" title="Mobile operating system">Mobile operating system</a></li> <li><a href="/wiki/Network_operating_system" title="Network operating system">Network operating system</a></li> <li><a href="/wiki/Object-oriented_operating_system" title="Object-oriented operating system">Object-oriented operating system</a></li> <li><a href="/wiki/Real-time_operating_system" title="Real-time operating system">Real-time operating system</a></li> <li><a href="/wiki/Supercomputer_operating_system" title="Supercomputer operating system">Supercomputer operating system</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Kernel_(operating_system)" title="Kernel (operating system)">Kernel</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em"><a href="/wiki/Computer_architecture" title="Computer architecture">Architectures</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Exokernel" title="Exokernel">Exokernel</a></li> <li><a href="/wiki/Hybrid_kernel" title="Hybrid kernel">Hybrid</a></li> <li><a class="mw-selflink selflink">Microkernel</a></li> <li><a href="/wiki/Monolithic_kernel" title="Monolithic kernel">Monolithic</a></li> <li><a href="/wiki/Multikernel" title="Multikernel">Multikernel</a></li> <li><a href="/wiki/Vkernel" title="Vkernel">vkernel</a></li> <li><a href="/wiki/Rump_kernel" title="Rump kernel">Rump kernel</a></li> <li><a href="/wiki/Unikernel" title="Unikernel">Unikernel</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em">Components</th><td class="navbox-list-with-group navbox-list navbox-even" style="padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Device_driver" title="Device driver">Device driver</a></li> <li><a href="/wiki/Loadable_kernel_module" title="Loadable kernel module">Loadable kernel module</a></li> <li><a href="/wiki/User_space_and_kernel_space" title="User space and kernel space">User space and kernel space</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Process_management_(computing)" title="Process management (computing)">Process management</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:6em">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd" style="padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Computer_multitasking" title="Computer multitasking">Computer multitasking</a> (<a href="/wiki/Cooperative_multitasking" title="Cooperative multitasking">Cooperative</a>, <a href="/wiki/Preemption_(computing)" title="Preemption (computing)">Preemptive</a>)</li> <li><a href="/wiki/Context_switch" title="Context switch">Context switch</a></li> <li><a href="/wiki/Interrupt" title="Interrupt">Interrupt</a></li> <li><a href="/wiki/Inter-process_communication" title="Inter-process communication">IPC</a></li> <li><a href="/wiki/Process_(computing)" title="Process (computing)">Process</a></li> <li><a href="/wiki/Process_control_block" title="Process control block">Process control block</a></li> <li><a href="/wiki/Real-time_operating_system" title="Real-time operating system">Real-time</a></li> <li><a href="/wiki/Thread_(computing)" title="Thread (computing)">Thread</a></li> <li><a href="/wiki/Time-sharing" title="Time-sharing">Time-sharing</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:6em"><a href="/wiki/Scheduling_(computing)" title="Scheduling (computing)">Scheduling<br />algorithms</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Fixed-priority_pre-emptive_scheduling" title="Fixed-priority pre-emptive scheduling">Fixed-priority preemptive</a></li> <li><a href="/wiki/Multilevel_feedback_queue" title="Multilevel feedback queue">Multilevel feedback queue</a></li> <li><a href="/wiki/Round-robin_scheduling" title="Round-robin scheduling">Round-robin</a></li> <li><a href="/wiki/Shortest_job_next" title="Shortest job next">Shortest job next</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Memory_management_(operating_systems)" title="Memory management (operating systems)">Memory management</a>,<br /><a href="/wiki/System_resource" title="System resource">resource</a> protection</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bus_error" title="Bus error">Bus error</a></li> <li><a href="/wiki/General_protection_fault" title="General protection fault">General protection fault</a></li> <li><a href="/wiki/Memory_paging" title="Memory paging">Memory paging</a></li> <li><a href="/wiki/Memory_protection" title="Memory protection">Memory protection</a></li> <li><a href="/wiki/Protection_ring" title="Protection ring">Protection ring</a></li> <li><a href="/wiki/Segmentation_fault" title="Segmentation fault">Segmentation fault</a></li> <li><a href="/wiki/Virtual_memory" title="Virtual memory">Virtual memory</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Non-volatile_memory" title="Non-volatile memory">Storage</a> access,<br /><a href="/wiki/File_system" title="File system">file systems</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Booting#BOOT-LOADER" title="Booting">Boot loader</a></li> <li><a href="/wiki/Defragmentation" title="Defragmentation">Defragmentation</a></li> <li><a href="/wiki/Device_file" title="Device file">Device file</a></li> <li><a href="/wiki/File_attribute" title="File attribute">File attribute</a></li> <li><a href="/wiki/Inode" title="Inode">Inode</a></li> <li><a href="/wiki/Journaling_file_system" title="Journaling file system">Journal</a></li> <li><a href="/wiki/Disk_partitioning" title="Disk partitioning">Partition</a></li> <li><a href="/wiki/Virtual_file_system" title="Virtual file system">Virtual file system</a></li> <li><a href="/wiki/Virtual_tape_library" title="Virtual tape library">Virtual tape library</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Supporting concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/API" title="API">API</a></li> <li><a href="/wiki/Computer_network" title="Computer network">Computer network</a></li> <li><a href="/wiki/Hardware_abstraction" title="Hardware abstraction">HAL</a></li> <li><a href="/wiki/Live_CD" title="Live CD">Live CD</a></li> <li><a href="/wiki/Live_USB" title="Live USB">Live USB</a></li> <li><a href="/wiki/Shell_(computing)" title="Shell (computing)">Shell</a> <ul><li><a href="/wiki/Command-line_interface" title="Command-line interface">CLI</a></li> <li><a href="/wiki/User_interface" title="User interface">User interface</a></li></ul></li> <li><a href="/wiki/Preboot_Execution_Environment" title="Preboot Execution Environment">PXE</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox authority-control" aria-label="Navbox390" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Help:Authority_control" title="Help:Authority control">Authority control databases</a>: National <span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q726378#identifiers" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4684244-5">Germany</a></span></li></ul></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐api‐ext.codfw.main‐68c5fdd74d‐4g4nr Cached time: 20250212002557 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.654 seconds Real time usage: 0.763 seconds Preprocessor visited node count: 4342/1000000 Post‐expand include size: 174217/2097152 bytes Template argument size: 4771/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 6/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 179522/5000000 bytes Lua time usage: 0.402/10.000 seconds Lua memory usage: 6245842/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 649.580 1 -total 46.13% 299.679 1 Template:Reflist 16.27% 105.715 8 Template:Navbox 15.47% 100.477 18 Template:Cite_conference 15.03% 97.601 10 Template:Cite_web 14.20% 92.224 1 Template:Microkernel 12.23% 79.445 5 Template:Citation_needed 10.68% 69.374 1 Template:Short_description 10.67% 69.279 5 Template:Fix 8.22% 53.402 10 Template:Cite_journal --> <!-- Saved in parser cache with key enwiki:pcache:20023:|#|:idhash:canonical and timestamp 20250212002610 and revision id 1275264783. Rendering was triggered because: page-edit --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&amp;type=1x1&amp;usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Microkernel&amp;oldid=1275264783">https://en.wikipedia.org/w/index.php?title=Microkernel&amp;oldid=1275264783</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Category</a>: <ul><li><a href="/wiki/Category:Microkernels" title="Category:Microkernels">Microkernels</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:CS1_maint:_location_missing_publisher" title="Category:CS1 maint: location missing publisher">CS1 maint: location missing publisher</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Use_dmy_dates_from_February_2021" title="Category:Use dmy dates from February 2021">Use dmy dates from February 2021</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_November_2012" title="Category:Articles with unsourced statements from November 2012">Articles with unsourced statements from November 2012</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_June_2015" title="Category:Articles with unsourced statements from June 2015">Articles with unsourced statements from June 2015</a></li><li><a href="/wiki/Category:Articles_containing_potentially_dated_statements_from_2012" title="Category:Articles containing potentially dated statements from 2012">Articles containing potentially dated statements from 2012</a></li><li><a href="/wiki/Category:All_articles_containing_potentially_dated_statements" title="Category:All articles containing potentially dated statements">All articles containing potentially dated statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_August_2010" title="Category:Articles with unsourced statements from August 2010">Articles with unsourced statements from August 2010</a></li><li><a href="/wiki/Category:CS1_maint:_multiple_names:_authors_list" title="Category:CS1 maint: multiple names: authors list">CS1 maint: multiple names: authors list</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 12 February 2025, at 00:25<span class="anonymous-show">&#160;(UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Microkernel&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" lang="en" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Microkernel</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>34 languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-d4975d858-xgblq","wgBackendResponseTime":126,"wgPageParseReport":{"limitreport":{"cputime":"0.654","walltime":"0.763","ppvisitednodes":{"value":4342,"limit":1000000},"postexpandincludesize":{"value":174217,"limit":2097152},"templateargumentsize":{"value":4771,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":6,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":179522,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 649.580 1 -total"," 46.13% 299.679 1 Template:Reflist"," 16.27% 105.715 8 Template:Navbox"," 15.47% 100.477 18 Template:Cite_conference"," 15.03% 97.601 10 Template:Cite_web"," 14.20% 92.224 1 Template:Microkernel"," 12.23% 79.445 5 Template:Citation_needed"," 10.68% 69.374 1 Template:Short_description"," 10.67% 69.279 5 Template:Fix"," 8.22% 53.402 10 Template:Cite_journal"]},"scribunto":{"limitreport-timeusage":{"value":"0.402","limit":"10.000"},"limitreport-memusage":{"value":6245842,"limit":52428800}},"cachereport":{"origin":"mw-api-ext.codfw.main-68c5fdd74d-4g4nr","timestamp":"20250212002557","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Microkernel","url":"https:\/\/en.wikipedia.org\/wiki\/Microkernel","sameAs":"http:\/\/www.wikidata.org\/entity\/Q726378","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q726378","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2001-09-25T14:50:16Z","dateModified":"2025-02-12T00:25:56Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/6\/67\/OS-structure.svg","headline":"kernel that provides fewer services than a traditional kernel"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10