14 ms·
Minix 3.2.0: One step closer to the promise of highly reliable OS
- dfc 15y ago"Your job is being a professor and researcher: That's one hell of a good excuse for some of the brain-damages of Minix." Linus Torvalds' post to comp.os.minix newsgroup.
- fuzzix 15y agoWe're all well aware of the Usenet flamewar 20 years ago. What has that to do with Minix now?
- dfc 15y agonot everyone is aware: http://news.ycombinator.com/item?id=3683984 http://news.ycombinator.com/item?id=3683984
- vivekprakash 15y agoIf something is very successful, it doesn't mean it is very good and nothing can replace it. The world is currently divided into many school of thoughts, and only time will tell which kernel design is going to win the war. Also, there has been growing hatred towards Linux with its bloated kernel and eating all the RAM!
- muyuu 15y agoThat's because many people have no idea how to even read the memory usage stats in Linux.
- unimpressive 15y agoThis. http://www.linuxatemyram.com/ http://www.linuxatemyram.com/
- dfc 15y agoNo "kernel design is going to win the war." Just like you will never find a "one size fits all" shoe. Different problems require different solutions.
- snowwrestler 15y agoWhat's the point of having memory if the OS isn't going to use it?
- stonemetal 15y agoSo that applications can use it?
- harshreality 15y agoIf anything is bloated, it's typical linux userland. The linux kernel, with uclibc, busybox, dropbox, and other userland tweaks, can fit onto an embedded router with 4MB flash and 16MB ram. Linux caches in RAM pages of files it reads. It will evict them at the drop of a hat if it needs to. Sadly, no matter how many blog entries appear on the subject, people still expect to see free ram, and think linux is bloated when they don't see any. If you don't like that behavior, I don't know if any OSes leave "free" ram untouched. They might call it free though, even when it's used by the OS for caching. On the issue of microkernels vs monolithic, I prefer microkernels for their elegance in theory. If one appears with performance in the ballpark of linux, that glibc supports and that will run linux userland with no problems, I'll switch. I will not, however, give up functionality in the name of ideology.
- Symmetry 15y agoI'm given to understand that Debian and Arch linux have GNU Hurd live CDs out there for people who want to run it. I don't really know much about the OS, but does it meet your requirements?
- duskwuff 15y agoHurd makes Minix look like a rock-solid production OS by comparison.
- noselasd 15y agoThat's because people and tools look at the wrong values. $ free -m total used free shared buffers cached Mem: 2009 1491 518 0 466 363 -/+ buffers/cache: 661 1348 Swap: 1992 0 1992 Here, you want the number 1348, which is the "free" memory you have, not the number "518" which at first glance is the "free" memory.
- andyjohnson0 15y agoIf you're think of this as a Linux vs Minix 'war' then you are looking at it the wrong way. Minix is intended for research/education. Its not going to replace Linux because they do different things.
- vivekprakash 15y agoI didn't intend to sound the way it seems i sounded. Sorry for that! Btw, the focus of Minix 3 has changed and it is no longer intended just for research/education. Minix 3 was publicly announced on 24 October 2005 by Andrew Tanenbaum and it is comprehensively redesigned to be usable as a serious system on resource-limited and embedded computers and for applications requiring high reliability.
- dchest 15y agoNot anymore: "It was only with the third version, MINIX 3, and the third version of the book, published in 2006, that the emphasis changed from teaching to a serious research and production system, especially for embedded systems. A few of the many differences between MINIX 2 and MINIX 3 are given here. Going forward, we are making a serious effort to turn MINIX 3 in an industrial-grade system with a focus on the embedded market, especially for those applications that need high reliability and availability." http://www.minix3.org/other/read-more.html http://www.minix3.org/other/read-more.html
- andyjohnson0 15y agoOkay, I wasn't aware of the Minix 3 redesign, so I stand corrected on that. Thanks for updating me! But I'm fairly skeptical about how much use (if any) Minix is getting outside research and education. Aren't there already widely deployed HR/HA OSs that target the embedded market? What real advantages does Minix have over something like VxWorks?
- pjmlp 15y agoMaybe by being open source. Does VxWorks come with source code? I guess this might be critical to some type of applications. For me the positive is to see more microkernel architectures getting spread.
- llimllib 15y agoHonest question: is the title of this article sarcastic?
- vivekprakash 15y agoNo, it's not. May be you don't know MINIX 3 very well ;)
- llimllib 15y agoI don't know it at all. Minix to me has a reputation as the punch line of a joke about how to design kernels for the real world. (I don't claim that it's true, just that that's what I associate it with.) Can you sell me on why I should be interested?
- vivekprakash 15y ago"Ten years ago, most computer users were young people or professionals with lots of technical expertise. When things went wrong – which they often did – they knew how to fix things. Nowadays, the average user is far less sophisticated, perhaps a 12-year-old girl or a grandfather. Most of them know about as much about fixing computer problems as the average computer nerd knows about repairing his car. What they want more than anything else is a computer that works all the time, with no glitches and no failures. Many users automatically compare their computer to their television set. Both are full of magical electronics and have big screens. Most users have an implicit model of a television set: (1) you buy the set; (2) you plug it in; (3) it works perfectly without any failures of any kind for the next 10 years. They expect that from the computer, and when they do not get it, they get frustrated. When computer experts tell them: "If God had wanted computers to work all the time, He wouldn't have invented ‘Reset’ buttons" they are not impressed. For lack of a better definition of dependability, let us adopt this one: A device is said to be dependable if 99% of the users never experience any failures during the entire period they own the device. By this definition, virtually no computers are dependable, whereas most TVs, iPods, digital cameras, camcorders, etc. are. Techies are willing to forgive a computer that crashes once or twice a year; ordinary users are not. Home users aren't the only ones annoyed by the poor dependability of computers. Even in highly technical settings, the low dependability of computers is a problem. Companies like Google and Amazon, with hundreds of thousands of servers, experience many failures every day. They have learned to live with this, but they would really prefer systems that just worked all the time. Unfortunately, current software fails them. The basic problem is that software contains bugs, and the more software there is, the more bugs there are. Various studies have shown that the number of bugs per thousand lines of code (KLoC) varies from 1 to 10 in large production systems. A really well-written piece of software might have 2 bugs per KLoC over time, but not fewer. An operating system with, say, 4 million lines of code is thus likely to have at least 8000 bugs. Not all are fatal, but some will be. A study at Stanford University showed that device drivers – which make up 70% of the code base of a typical operating system – have bug rates 3x to 7x higher than the rest of the system. Device drivers have higher bug rates because (1) they are more complicated and (2) they are inspected less. While many people study the scheduler, few look at printer drivers. The Solution: Smaller Kernels The solution to this problem is to move code out of the kernel, where it can do maximal damage, and put it into user-space processes, where bugs cannot cause system crashes. This is how Minix 3 is designed." From http://www.linux-magazine.com/Issues/2009/99/Minix-3 http://www.linux-magazine.com/Issues/2009/99/Minix-3
- parley 15y agoMany software engineers strive for modularity and component decoupling, sacrificing some things (e.g. performance, to a varying degree) and gaining others. I agree with this line of thinking, and I see no reason not to apply it to OS kernels as well. The MMU is a really good friend to have, and I think most systems in this world should appreciate reliability more than performance, especially when it comes to the kernel. I always get a bit sad as I think of the general state of things, remembering that a decade ago I thought today everything would be properly divided and sandboxed with a minimum of necessary privileges. I guess user experience trumps it in many cases.
- telent 15y agoIt's interesting (to me at least) that we have largely dispensed with the Unix privilege model in production and replaced it with running an entire unix system for each application, virtually hosted on the real one. I wonder if, had there been more emphasis historically on reliability and decoupling, we would nowadays be running more than one service on a host instead of running them in individual VMs hypervised by that host. I suspect the answewer is "no, not entirely" due to other limitations of the model: ports under 1024 are root-only, regular users can't call chroot(), etc etc - but there have been solutions proposed/designed/implemented for most of this stuff , they just haven't had much uptake.
- parley 15y agoGood point. I heartily agree. The hardware is the resource the software is utilizing, and the better thought through and perhaps the more uniform (thus receiving much scrutiny and work) the tools for delegating and regulating access to those resources in order to preserve reliability, the better and more efficient the utilization of said resource, I should think.
- tedunangst 15y agoI think it's entirely possible to admin a multi service box, but it requires more skill and effort. Putting everything in a distinct VM makes all your problems look more like nails. Also, who wants to say they admin the server when they can say they admin the server cluster?
- dfc 15y agoI thought this was an interesting twist in the history of Linux and Minix: Other important differences: * The MINIX project now uses `git` as its version-control system
- vivekprakash 15y agoI don't understand if Git has anything to with it. Simply because Linux and Minix differ on their views on kernel design, it doesn't mean Minix shouldn't use a better scm :)
- dfc 15y agoI thought it was interesting that tanenbaum's operating system is now using something that Linus made. I think it is a neat detail to an old story. Circle of life, small world whatever cliche you want to attach to it. It was not meant as a jab at minix, i thought others would appreciate the continued interconnection between Linus and AST. I apologize that I did not explain my comment in greater detail.
- marekmroz 15y agoI have heard this over and over, "wohoo Linus won because Tanenbaum is using git", and frankly this is just ridiculous. Their disagreement was over how the kernel should be architected, not over personal issues. Not using a certain vcs because you disagree with its author on a completely unrelated subject would really be childish. Moreover, vcs used to manage Minix'es source has zero impact on the merit of using one kernel architecture over the other. [EDIT]: I understand that the "kernel war" argument is not what you meant, nevertheless Minix using Git is hardly a twist in Linux vs Minix history.
- dfc 15y agoHardly a twist? So twenty years ago you think it most people would have found it likely that Linus's operating system would lead to the creation of the SCM that minix uses?
- ef4 15y agoThe monolithic kernel vs microkernel debate has always come down to performance vs simplicity & reliability. Simplicity I'll grant, but the reliability argument doesn't really strike me as relevant. Having overseen many thousands of server years worth of uptime, it's almost never the kernel's fault when something breaks. Linux is pretty solid. Most of us are far more limited by the reliability of our applications. There are niches where higher-assurance kernels are worth it, and maybe that's where microkernels can shine.
- rwmj 15y agoDon't forget reliability (or otherwise) of PC hardware. No kernel is going to save you if your PCI bus locks up.
- zedshaw 15y agoYeah, that happens to me all the time. I'm in the habit of running hardware with a faulty PCI bus for very long periods of time so I don't really need anything more complex than Windows 95 since the kernel doesn't matter when you have a faulty PCI bus.
- stcredzero 15y agoThe scary thing is, is that was precisely the state of affairs with cheap desktops in the heyday of win95. My understanding is that the hardware got cheaper to match the software, then there was no motivation to improve the software, because the hardware would've crashed the machine anyhow.
- wolf550e 15y agohttp://redhill.net.au/b/b-bad.html http://redhill.net.au/b/b-bad.html
- hetman 15y agoAs of Ubuntu 11.10 my netbook randomly kernel panics with the default Wi-Fi drivers. It sure would be great if it didn't take out everything I was looking at because of one bad driver. Just saying.
- andyjohnson0 15y agoAs a student I did an OS design module in 1987-88. The main set text was Tannenbaum's book Operating Systems Design and Implementation. I remember it had the full Minix source as an appendix, and I don't remember it being a particularly thick book. Would I be right in assuming that Minix has put on a bit of weight since then?
- vivekprakash 15y agoYes, it has changed a lot since then and also put on some heavy weight in kernel and userland. The goal of Minix 3 is to become a highly reliable, flexible, and secure OS which can be used as a product in a serious way. Visit http://en.wikipedia.org/wiki/MINIX_3 http://en.wikipedia.org/wiki/MINIX_3 for a comprehensive information.
- maaku 15y agoAlthough vivek, it's worth pointing out that the size of the kernel itself hasn't grown much.
- vivekprakash 15y agoYou are right to some extent. Yet, there has been many improvements in the kernel since 1988, especially after Minix 3 was announced. And yes, the code base has significantly grown in all of drivers, user-space servers and userland.
- hollerith 15y agoI see that nedit (a text editor that usually runs on X11) and Gnu Go have been ported to Minix 3. Do any non-toy web browsers run on Minix 3?
- maaku 15y agoTheir roadmap shows someone working on a Firefox port. If they could get full-screen webkit/chrome with auto-updating working, there's a lot of potential use-cases that open up. A truly reliable, always-on web device with low power requirements? Sign me up.
- JohnQPasserby 15y agoIt's irritating when these so-called "open source" projects don't have a link to the source from the home page or anywhere else obvious.
- boyter 15y agoWhy the downvote? This is an issue. When collecting repositories for searchco.de I literally have spent hours hunting around on many project pages looking for the page which points you at how to get the source for a project. Its usually buried in a wiki page in the developer subdomain. A simple link from the homepage with "Get Source" would save myself and im certain a lot of others a great deal of time.
- JohnQPasserby 15y agocan I ask what are your imagined use cases for searchco.de? It looks interesting but I cannot think of what I could use it for
- boyter 15y agoIts just a semi replacement for Google code search. To be honest, its just something I play with. If something comes from it great, if not im not terribly worried about it.
- JohnQPasserby 15y agoIt's neat, but it's hard to find something unless you can guess what people name their fn and vars for programming domain X
- boyter 15y agoTrue. I have been using it a lot recently to learn how the Guava and Guice API's work in the real world. So perhaps that's its target market. I also tend to use it when trying to remember how some feature of a language works EG lambdas in python http://searchco.de/?q=lambda+ext%3Apy&cs=on http://searchco.de/?q=lambda+ext%3Apy&cs=on
- shirro 15y agoI want to like Minix. I had a copy of Design and Implementation and was going to download Minix when I heard of this new Linux thing, filled a bunch of floppies with an early Linux distro and never looked back. One of AST's arguments against monolithic was that it would be too hard to port to other systems. Just checked Minix 3 requirements - x86 only, not even x86-64. No ARM. Hard to see how it has progressed from being an academic thing.