{"id":14154,"date":"2016-04-12T17:24:37","date_gmt":"2016-04-12T21:24:37","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=14154"},"modified":"2016-04-12T17:24:37","modified_gmt":"2016-04-12T21:24:37","slug":"lessons-learned-from-30-years-of-minix","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2016\/04\/12\/lessons-learned-from-30-years-of-minix\/","title":{"rendered":"Lessons Learned From 30 Years of MINIX"},"content":{"rendered":"<p><a href=\"http:\/\/cacm.acm.org\/magazines\/2016\/3\/198874-lessons-learned-from-30-years-of-minix\/fulltext\">Andrew S. Tanenbaum<\/a> (via <a href=\"https:\/\/alpha.app.net\/jws\/post\/68468859\">Jeremy W. Sherman<\/a>):<\/p>\n<blockquote cite=\"http:\/\/cacm.acm.org\/magazines\/2016\/3\/198874-lessons-learned-from-30-years-of-minix\/fulltext\">\n<p>My idea was to write the system, called MIni-uNIX, or MINIX, for the new IBM PC, which was cheap enough (starting at $1,565) a student could own one. Because early PCs did not have a hard disk, I designed MINIX to be V7 compatible yet run on an IBM PC with 256kB RAM and a single 360kB 5&#188;-inch floppy disk&mdash;a far smaller configuration than the PDP-11 V7 ran on. Although the system was supposed to run on this configuration (and did), I realized from the start that to actually compile and build the whole system on a PC, I would need a larger system, namely one with the maximum possible RAM (640kB) and two 360kB 5&#188;-inch floppy disks.<\/p>\n<p>[&#8230;]<\/p>\n<p>The L4 microkernel runs on the radio chip inside more than one billion cellphones worldwide and also on the security processor inside recent iOS devices like the iPhone 6. L4 is so small, a version of it consisting of approximately 9,000 lines of C was formally proven correct against its specification, something unthinkable for multimillion-line monolithic systems. Nevertheless, microkernels remain controversial for historical reasons and to some extent due to somewhat lower performance.<\/p>\n<p>[&#8230;]<\/p>\n<p>Although funding has now ended, the MINIX project is not ending. It is instead transitioning to an open source project, like so many others. Various improvements are in progress now, including some very interesting ones (such as being able to update nearly all of the operating system drivers, file system, memory manager, and process manager) on the fly to major new versions (potentially with different data structures) while the system is running. These updates require no down time and have no effect on running processes, except for the system freezing very briefly before continuing. The structure of the system as a collection of servers makes live update much simpler than in traditional designs, since it is possible to do a live update on, say, the memory manager, without affecting the other (isolated) components because they are in different address spaces<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/L4_microkernel_family\">Wikipedia<\/a> has more information about L4:<\/p>\n<blockquote cite=\"https:\/\/en.wikipedia.org\/wiki\/L4_microkernel_family\"><p>After some experience using L3, Liedtke came to the conclusion that several other Mach concepts were also misplaced. By simplifying the microkernel concepts even further he developed the first L4 kernel which was primarily designed with high performance in mind. In order to wring out every bit of performance the entire kernel was written in assembly language, and its IPC was 20 times faster than Mach&rsquo;s.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Andrew S. Tanenbaum (via Jeremy W. Sherman): My idea was to write the system, called MIni-uNIX, or MINIX, for the new IBM PC, which was cheap enough (starting at $1,565) a student could own one. Because early PCs did not have a hard disk, I designed MINIX to be V7 compatible yet run on an [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[295,31,85,845,281,71,573,163],"class_list":["post-14154","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-history","tag-ios","tag-iphone","tag-kernel","tag-mach","tag-programming","tag-touch-id","tag-unix"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/14154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=14154"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/14154\/revisions"}],"predecessor-version":[{"id":14155,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/14154\/revisions\/14155"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=14154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=14154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=14154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}