Slashdot Mirror


Andy Tanenbaum Releases Minix 3

Guillaume Pierre writes "Andy Tanenbaum announced the availability of the next version of the Minix operating system. "MINIX 3 is a new open-source operating system designed to be highly reliable and secure. This new OS is extremely small, with the part that runs in kernel mode under 4000 lines of executable code. The parts that run in user mode are divided into small modules, well insulated from one another. For example, each device driver runs as a separate user-mode process so a bug in a driver (by far the biggest source of bugs in any operating system), cannot bring down the entire OS. In fact, most of the time when a driver crashes it is automatically replaced without requiring any user intervention, without requiring rebooting, and without affecting running programs. These features, the tiny amount of kernel code, and other aspects greatly enhance system reliability."In case anyone wonders: yes, he still thinks that micro-kernels are more reliable than monolithic kernels ;-) Disclaimer: I am the chief architect of Globule, the experimental content-distribution network used to host www.minix3.org."

23 of 528 comments (clear)

  1. Thank you, Dr. Tanenbaum. by CyricZ · · Score: 3, Insightful

    I just want to thank you, Andy, for your decades of effort towards advancing the field of computing. Your contributions have been much appreciated. After all, if it were not for Minix we would not have Linux today. Thanks, Andy!

    --
    Cyric Zndovzny at your service.
    1. Re:Thank you, Dr. Tanenbaum. by MikeFM · · Score: 3, Insightful

      That's okay. My experience has been that RMS is never shy to give himself credit.

      I really appreciate and love the FSF, GPL, free software, and GNU tools but I'm never going to call Linux GNU/Linux. Let him put his adverts on his own damn stuff rather than trying to convince everyone else to do so. Just because my car sits on a foundation of Goodyear tires doesn't mean I'm going to call it a Goodyear/Focus. Sure that might sound like a new years resolution but it's still dumb and a nightmare in product advertising. I'd be shocked to see Ford advertising it that way.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  2. Re:This guy told linus by Anonymous Coward · · Score: 1, Insightful

    That's because Minix is an academic operating system, meant to be used for teaching and perhaps research purposes. It's not supposed to be taking over the world of operating systems. That was part of the motivation for Linus and friends to go off and make Linux because Tannenbaum didn't want Minix to be made overly complex and riddled with real-world inconsistencies and hacks (thus it could remain an effective teaching tool).

  3. Re:Love this quote by Anonymous Coward · · Score: 2, Insightful

    ...which is exactly what everything post Pentium Pro does... So yes, he got it exactly right...

  4. Re:This guy told linus by LizardKing · · Score: 5, Insightful

    Linus would have deserved that "F" in operating system design, but he wasn't writing his kernel to get grades on a computer course. If he had been then he probably wouldn't have written a crude, monolithic kernel that was totally unportable. Apart from the crudity of it, those were his explicit goals - to write a monolithic kernel that would run optimally on his 80386. (Bear in mind that the Linux kernel we know today is pretty far removed from that early version in design and implementation).

    As for AT, he's a very smart guy. He writes books on operating system deign and networking that clearly describe quite complex topics. Even if you don't like the idea of microkernels, the "Operating Systems ..." book that describes the Minix kernel is an excellent read.

  5. Re:for those that don't know by Anonymous Coward · · Score: 2, Insightful

    That stiff breeze you just felt was from the sarcasm of the OP going over your head at mach 1...

  6. Re:Love this quote by Anonymous Coward · · Score: 0, Insightful

    Keep in mind, that modern CPU architectures tend to translate to a much more RISC like set of instructions internally. It wouldn't be horribly wrong to argue that they are translating, although using dedicated Hardware, instead of software.

    Also keep in mind that the difference between RISC and CISC is that CISC has a translation layer between the user-visible instruction set and the native hardware instruction set (microcode), where as RISC does not.

  7. Re:This guy told linus by asciiRider · · Score: 2, Insightful

    "This Guy"

    Is a TEACHER
    Is an AUTHOR
    Ia a HACKER

    Now shut the $^#( up before I hunt you down and stuff that minix formatted floppy up your A$$.

  8. Tanenbaum gets a failing grade by idlake · · Score: 4, Insightful

    Tanenbaum rightly criticized Linus for creating a big monolithic operating system kernel, but at least Linus was copying something that was successful and he made it a success himself.

    But, geez, how often do microkernels have to fail before Tanenbaum will admit that there must be something fundamentally wrong with his approach, too? Microkernels attempt to address the right problem (kernel fault isolation), just in such an idiotic way that they keep failing in the real world. But instead of a detailed criticial analysis of previous failures, Tanenbaum and Herder just go on merrily implementing Minix3, apparently on the assumption that all previous failures of microkernels were just due to programmer incompetence, an incompetence that they themselves naturally don't suffer from.

    Both Linux-style monolithic kernels and Tanenbaum-style microkernels are dead ends. But at least Linux gets the job done more or less in the short term. In the long term, we'll probably have to wait for dinosaurs like Tanenbaum to die out before a new generation of computer science students can approach the problem of operating system design with a fresh perspective.

    1. Re:Tanenbaum gets a failing grade by 0xABADC0DA · · Score: 2, Insightful

      What you propose might be good for application space, but part of the reason those tools and applications work is because of the support they get from the kernel and other parts of the base system on which they run.

      The vast majority of what a monolithic kernel does *is* application-like. Keeping track of lists and hashtables of sockets, files, processes. Accessing them in O(1) time. Allocating and deallocating memory for those. Keeping track of buffers and balancing cache sizes. These are all the things that object-oriented, managed languages are good at and where C/asm sucks big time.

      C is suited for the few parts of the kernel that require running in fixed time windows or direct hardware access. But those places are very few. The fact that the rest of it is in C is because a) that's how it's always been done, b) people are short-sighted and lazy so don't mix safe/unsafe code because it takes more up-front work c) the people writing the kernel code couldn't understand for example the hotspot optimizer if they tried. Hell these people optimize the freakin caches lines to save a few nanoseconds but don't give a crap that you have to run at least 1000 user-space instruction per system call or half the processor time is completely wasted.

      You safe-kernel naysaysers act like writing kernel code is hard. It isn't. It just takes a lot of patience and diligence (mostly because it's in C). It's not like there's anything CS-hard in the linux kernel.

    2. Re:Tanenbaum gets a failing grade by Salamander · · Score: 2, Insightful
      You safe-kernel naysaysers act like writing kernel code is hard. It isn't. It just takes a lot of patience and diligence (mostly because it's in C). It's not like there's anything CS-hard in the linux kernel.

      The classic response of someone who has never actually done any serious kernel work. Just because it's not CS-hard doesn't mean it's not real-world-hard, and I think I know a bit about that because I've been solving problems that are hard in both senses for quite a while. Your use of "naysayer" only gives away your own bigotry. Think about what "safe" means in that context. It means that the code doesn't have direct access to underlying resources, with that access then done on your behalf by "someone else" but there is no someone else when you're the kernel. Those "safe" environments require exactly the kind of performance-robbing intermediation for which you criticize microkernels; in a way, what you're proposing is actually a microkernel of a different (and inferior) sort. Do you want to have every PCI-register access trap to a safety-guaranteeing handler? If you don't see how badly that would suck, grow a clue.

      Compile-time safety checks are a wonderful thing, and I've applied cutting-edge forms of that technology in both kernel and user work. The run-time checks of your "managed code" utopia, though, are simply impractical for an OS kernel.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    3. Re:Tanenbaum gets a failing grade by Godeke · · Score: 2, Insightful

      I'm not suggesting "back to the future". I was simply pointing out you beat the poster up for suggesting things that have been done and continue to be done. Your personal opinion of the merits of the design notwithstanding, you for all practical purposes called the poster a moron for suggesting that OOP might have some use in operating system realms (the "third paragraph of beatdown"). Yet, it is quite clear that it isn't as far fetched as your verbal beating of the poster would make it appear.

      Not everyone is doing desktop programming and even there I'm not entirely convinced that hardware support for a more encapsulated view of the enviroment is a *bad* thing. Just because something is the current flavor (and has massive inertia due to installed bases) doesn't mean it is the only or even best way to do something.

      Of course, I take more offense at the fact that modern PC designs still rely on an hardware interrupt scheme that is so failure prone that a single misbehaving device can cripple the entire system. Which makes a lot of the discussion about "reliability through userland drivers" a fairly moot point.

      --
      Sig under construction since 1998.
  9. Re:Love this quote by MikeFM · · Score: 4, Insightful

    That'd be more convincing if I could see a microkernel OS that didn't suck. The theory is great.. sort of like object oriented programming.. but doesn't always work out. The biggest problem seems to be that that extra layer of abstraction slows things down (which makes sense really). Then you have to weigh the benefits of running faster and leaner or easier programming. From a programmers point of view most will like the abstracted and easier option because you can spend more time writing code and less time debugging and fixing but real world usgae doesn't always work well with that.

    Still.. as fast as modern computers are I think we may be reaching a point where raw speed is less important and well designed microkernels can probably run almost as fast as monolithic kernels. If heavy usage servers can be run as virtual machines in Xen then why not use a microkernel too?

    So. Any examples of microkernel OS's that handle heavy server load, function well as a desktop, and can handle multimedia tasks like gaming? OS X uses BSD under a microkernel I think but my experience is that it is slow and the tests I've seen have shown that Linux performs a lot better on it than OS X (no idea if that was due to microkernel use). I'd find it hard to believe that with solid numbers showing that microkernel is just as fast and without additional overhead that someone like Linus wouldn't use it since it's an easier programming model (better for security, stability, etc).

    --
    At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  10. Software? by Jacek+Poplawski · · Score: 2, Insightful

    But how mature and how usable this OS is?
    What about software for Minix?
    On website there is info about packages - gcc, vim/emacs, old Python, no ncurses, no X... What can I install (by compiling) on Minix and what is not possible and why?

  11. Re:Love this quote by RAMMS+EIN · · Score: 2, Insightful

    ``While I could go into a long story here about the relative merits of the two designs, suffice it to say that among the people who actually design operating systems, the debate is essentially over. Microkernels have won.

    In retrospect that might have been a bit overconfident.''

    Perhaps, but it's true as stated. The consensus among OS designers really was that microkernels were superior. Linus opted for a monolithic kernel, because he didn't believe in Microkernels, but he was the odd one out. Linux's success also doesn't demonstrate superiority of monolithic kernels over microkernels. Linux's success is due to the enormous mindshare among developers and users, not the design.

    Also, Linux isn't a pure monolithic kernel. Almost everything is loaded as a module these days, and modules can communicate through message passing, and can even be implemented is userspace in some cases (e.g. filesystem drivers with FUSE). Even the direct function calling that modules do can be seen as just an optimization of what MINIX does with message passing.

    --
    Please correct me if I got my facts wrong.
  12. Re:Phew by Haeleth · · Score: 2, Insightful

    GNU/Hurd!! I meant GNU/Hurd!!!

    No, you meant GNU. Just GNU. The only reason we say "GNU/Linux" is that that involves adding a non-GNU kernel (Linux) to the GNU operating system. But when you're using the Hurd as your kernel, you are just using the GNU operating system, the way Stallman intended it, and the proper name for the system is "GNU".

    This is, of course, all moot, given that the Hurd has about 5 users...

  13. Re:Honest question by jtshaw · · Score: 2, Insightful

    If you read Linus' book he basically says he started writing Linux because he thought Minix was terrible. That is why Linux original used ext2 (same fs as minix). So in reality, Minix and they have similar sounding names because they are both trying to be like unix.

  14. Re:Love this quote by AKAImBatman · · Score: 2, Insightful

    To be really fair, RISC was made obsolete by superscalar architectures.

    I'm sorry, but, HUH? Superscalar architectures were really only made possible by RISC platforms. In traditional CISC, the variety of instruction structure made it very difficult to order the instructions for multi-execution. Not to mention that the silicon was already rather convoluted in CISC structures, thus making it even more difficult to fit superscalar execution.

    The truth is that RISC won out. And so did CISC. Make sense? Allow me to explain:

    The key concept behind RISC was that it simplified the silicon sufficiently to ramp up the clock speed in exchange for requiring more instructions to perform the same task as CISC. Since a higher clock speed can more than make up for any per-instruction performance differences, the early 90's was ruled by high speed chips such as Alphas.

    However, CISC chips retained several features, not the least of which was the ability to build a far simpler compiler. Thus a compromise was reached. Microcode was added to RISC chips, thus making them appear to be CISC chips. All the improvements in clock speed were retained, but the chip had an extra pipeline stage to convert a short CISC instruction into a long (and hopefully Superscalar!) set of RISC instructions.

    And now you know why nearly every RISC chip in existence had Superscalar execution prior to it being added to the Pentium. (Sorry, but Intel was REALLY late to the game on most of this high-performance stuff. Fortunate for them, Intel has a rather massive R&D department that was able to develop combinations of experimental chip technology far faster than any of their competitors.)

  15. Microkernels... by Dwonis · · Score: 2, Insightful
    yes, he still thinks that micro-kernels are more reliable than monolithic kernels

    Of course he does. Everyone does. The old argument between Linus and Andy was never about reliability. It was about *practicality* and *efficiency*. Microkernels usually incur a lot of overhead. Andy thought the overhead was worth it; Linus didn't.

  16. And what hardware does it support? by markdj · · Score: 2, Insightful

    Where does it list the hardware it supports? I'm not talking about CPU or HD or CD. I'm talking about network card, video card, DVD, printer, etc. In my opinion the biggest problem with UNIX/LINUX/MINIX type OS's is the problem of hardware support. Since most hardware shops don't have the resources to create and test drivers for multiple OS's, they concentrate on Windows and let someone else come up with drivers for other OS's. That leaves the UNIX/LINUX/MINIX type OS's constantly behind the curve since they have to have someone create drivers after the hardware is released and by the time the driver is tested and stable, the hardware is obsolete.

  17. Re:It's all BSD licensed by assantisz · · Score: 2, Insightful
    Tanenbaum has now overcome a 15 year old mistake, but it's far too late to make a difference.

    What the hey are you talking about? Minix is still a very popular operating system for teaching OS design principles. Why would you ever get the idea that Minix is supposed to be a Linux/UNIX/Windows/whatever killer? It was never designed to be anything bigger than an academic excercise. Never. Period.

  18. Re:Love this quote by T-Ranger · · Score: 2, Insightful

    Your little case study of Intel only proves that Intel is incapable of creating a long-term-worthy CPU core. And that might not even be true ... The Pentium M is built on the line of P-Pro/P3, not the all-new P4. I dont think that there is a sufficently large pool of modern RISC processors around that one can make any general statements on the R&D cycle of RISC processors.

    What could be stated is that by having a CISC-on-RISC processor one can persue multipe RISC cores and allow them to flourish, die, and be revived on entirely unpredictable market demands, and long term developement costs of a paticular core. This isnt unique to CPU design, nor is it a new concept. Brooks covers multiple implementations in Mythical Man-Month.. Virtual machines be it software ala Java, Smalltalk, Lisp, or the virtual-to-the-exteeem AS/400 platform.

    No new lessons to be learnt here.

  19. Re:Love this quote by johansalk · · Score: 2, Insightful

    Coca Cola is far more popular than much healthier drinks. The marketplace is governed by economic and political considerations that should not mean what fails it is inferior.