{"id":189,"date":"2001-04-06T12:53:00","date_gmt":"2001-04-06T20:53:00","guid":{"rendered":"http:\/\/www.netjeff.com\/wp\/?p=189"},"modified":"2001-04-06T12:53:00","modified_gmt":"2001-04-06T20:53:00","slug":"microkernel-os-vs-monolithic-os","status":"publish","type":"post","link":"https:\/\/www.netjeff.com\/wp\/?p=189","title":{"rendered":"Microkernel OS vs. monolithic OS"},"content":{"rendered":"<p>\nAndy Tanenbaum (author of the Minix OS) and Linus Torvalds (author of Linux) had this interesting <a href=\"http:\/\/www.dina.dk\/%7Eabraham\/Linus_vs_Tanenbaum.html\">debate on comp.os.minix<\/a> in Jan &amp; Feb of 1992.  <\/p>\n<p>Andy had a nice definition of things:<br  \/><\/p>\n<blockquote><p>the<br \/>\nwhole [monolithic] operating system is a single a.out file that runs in<br \/>\n'kernel mode.' This binary contains the process management, memory<br \/>\nmanagement, file system and the rest. Examples of such systems are<br \/>\nUNIX, MS-DOS, VMS, MVS, OS\/360, MULTICS, and many more.<\/p>\n<p>In a<br \/>\nmicrokernel-based system, in which most of the OS runs as separate<br \/>\nprocesses, mostly outside the kernel. They communicate by message<br \/>\npassing. The kernel's job is to handle the message passing, interrupt<br \/>\nhandling, low-level process management, and possibly the I\/O. Examples<br \/>\nof this design are the RC4000, Amoeba, Chorus, Mach, and Windows\/NT.<\/p><\/blockquote>\n<p>Minix<br \/>\nis micro-kernel and Linux is monolithic (at least as of 1992). It's a<br \/>\nvery interesting discussion between two interesting guys.<\/p>\n<p>Linus<br \/>\nbrings up the issue of multithreading support in Linux vs. Minix. Andy<br \/>\nhas a response that is funny until you realize what things were like<br \/>\nback in 1992:<br  \/><\/p>\n<blockquote><p>When there is only one job active, the<br \/>\nnormal case on a small PC, it [multithreading] buys you nothing and<br \/>\nadds complexity to the code.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Andy Tanenbaum (author of the Minix OS) and Linus Torvalds (author of Linux) had this interesting debate on comp.os.minix in Jan &amp; Feb of 1992. Andy had a nice definition of things: the whole [monolithic] operating system is a single a.out file that runs in <a class=\"more-link\" href=\"https:\/\/www.netjeff.com\/wp\/?p=189\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-189","post","type-post","status-publish","format-standard","hentry","category-tech"],"_links":{"self":[{"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=189"}],"version-history":[{"count":0,"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/189\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.netjeff.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}