Please create an account to participate in the Slashdot moderation system


Forgot your password?
Operating Systems Education Software Unix Upgrades Technology Linux

Minix 3.2.1 Released 107

kthreadd writes "Minix, originally designed as an example for teaching operating system theory which was both inspiration and cause for the creation of Linux has just been released as version 3.2.1. Major new features include full support for shared libraries and improved support for USB devices such as keyboards, mice and mass storage devices. The system has received many performance improvements and several userland tools have been imported from NetBSD."
This discussion has been archived. No new comments can be posted.

Minix 3.2.1 Released

Comments Filter:
  • by Chompjil ( 2746865 ) on Saturday February 23, 2013 @04:38PM (#42991227)
    Verry, nice, may look forward into it for my old laptop from 2007 I won in a raffle
  • Afaik, NetBSD and Minix are the two most prominent operating systems that advertise clean source code and architecture, suitable for examination by people learning OS principles, as one of their explicit design goals. NetBSD seems more popular as an actual system to use, and is clean architecture has led it to be famously ported everywhere. Does someone have experience with Minix to compare?

    • by pipeep ( 2106308 ) on Saturday February 23, 2013 @07:58PM (#42992399)
      I'm currently in a university course where Minix 3.2.1 is being used to teach OS principles. It's certainly small, and therefore semi-easy to wrap your head around. But I would not agree that its source code is "clean". They have a lot of really old code and suffer from coding guidelines that have changed greatly over time. I've never seen someone mix tabs and spaces so much in a piece of code. And can anyone say "no namespacing"? That said, I don't have much familiarity of the internals of other kernels, but I'm not too impressed by Minix.
    • Well, from Minix 3.2 onwards, they have included NetBSD userland w/ the Minix kernel, so you then have the best of both. I had Minux as a part of my OS course in 1994 (I think it was Minix 1 then), and Tannenbaum's book, which it came w/. Minix 3 is very different in that whereas in the book, at the time, the only microkernel OSs that Tannenbaum discussed were Amoeba and Mach 3, Minix 1 (and even 1.5 & 2) were not microkernel OSs. However, in Minix 3, Tannenbaum converted his theory into practice, an

      • One more thing - in Minix, like in FBSD, LLVM/Clang is now the default compiler instead of GCC
      • One thing I think is that the NetBSD guys should consider adapting this as their kernel, given that they target mainly embedded systems, and Minix, w/ the microkernel, is a much better fit for that. Maybe merge the 2, and make it the standard target for current x86 and ARM systems.

        Merging kernels is no trivial job. The only reasonable thing that could be done would be to have the BSD kernel sitting on the top of a microkernel, just like MacOS X does.

      • by Anonymous Coward

        If the Minix kernel is BSD-licensed, another thought would be for Debian to try it instead of Hurd, depending upon which microkernel is farther along...

    • I have some experience with Minix, from 1995, when I modified the memory allocation algorithm for a class at University :). I don't think it's an OS I would actually use though!
      • Yeah it was my first Unix because my old XT couldn't run Linux (which was *very* new at the time). It was great to mess around with, and I managed to hack together a driver for my wang hard drive controller, but the lack of a TCP sockets stack really limited its usefulness.

  • by MichaelSmith ( 789609 ) on Saturday February 23, 2013 @04:46PM (#42991263) Homepage Journal

    Looking under "Drivers, FS" it would seem that the Minix developers are still focusing on keeping it compatible with qemu and virtualbox, ie, they don't expect anybody to run it on real hardware and use it for real jobs.

    • by Raenex ( 947668 ) on Saturday February 23, 2013 @05:48PM (#42991559)

      Looking under "Drivers, FS" it would seem that the Minix developers are still focusing on keeping it compatible with qemu and virtualbox, ie, they don't expect anybody to run it on real hardware and use it for real jobs.

      How does support for virtual hardware mean they don't expect people to run it under real hardware too? I don't follow your logic. Not only that, your conclusion is directly contradicted by the Minix website []:

      "Research Projects

      MINIX 3 won a grant from the European Research Council for 2.5 million [euros] to further research in highly reliable operating systems. Due to its modular nature and fault tolerance, it is easy to use it as a basis for operating systems research or for a product."

      and more []:

      "It was only with the third version, MINIX 3, and the third edition 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 into an industrial-grade system with a focus on the embedded market, especially for those applications that need high reliability and availability."

      • I have found hardware support in minix to be very poor, in fact I don't think I have ever been able to get it running in a non-virtualised environment. By targeting embedded systems they are in effect saying that thy expect developers to port minix to their hardware.

        • never had a problem on any machine I've owned for the last 20 years, it does target the most common chipsets a studen't's pc would have for a command line system

          • I would like to try it on my eeepc 701 but the USB installer seems to be depricated and that installer was requred for PXE installations as well. Many CD installation kernels support TFTP or NFS, both of which I support but so far I can't find any information on how (if at all) to use them with the minix microkernel. I assume that booting is more complex for a microkernel because of all the different parts so maybe netbooting is out for now.

          • by kwark ( 512736 )

            It ran fine on my 286 in 1999. It had an original ne2000 IIRC, but it was only useful as a terminal.

    • by Anonymous Coward

      VM isnt for real jobs? Tell VMware that.. or Microsoft ... These days fewer and fewer people run anything of value on bare hardware, beyond a hypervisor and perhaps support tools depending which HV you chose. ( since not all are self-hosing )

    • Minix being ARMed (Score:4, Interesting)

      by unixisc ( 2429386 ) on Saturday February 23, 2013 @08:59PM (#42992699)

      Actually, in the release announcement [], they clearly mentioned that

      There are exciting new developments coming in the near future that aren’t part of this release. For example, the MINIX team has been working hard on MINIX/ARM support, of which significant parts have made it to mainline, yet official ARM support is slated for the near future and is not officially part of this release.

      This is a great move on their part, since Minix, w/ its microkernel, is just perfect for embedded systems and aside from routers, those tend to run on ARM based platforms. I recall reading somewhere that they were porting it to the Raspberry Pi, and hopefully, to other ARM platforms as well. In fact, something like Minix is perfect for Raspberry Pi, and once their ARM port is complete, it would be a good kernel on which to base whatever else is needed. In fact, the Raspberry Pi guys would do well to join hands w/ Tannenbaum and offer Minix as the OS of choice w/ Raspberry Pi.

      Regarding the stuff about the drivers, it was just the Virtio and VBFS that seemed to be about VMs - others, like Ext2 support were about real filesystems. (I'm guessing that for an OS targeted at embedded applications, things like Ext4, Btrfs, ZFS, Hammer, et al wouldn't be appropriate file systems to use)

    • by tlhIngan ( 30335 )

      Looking under "Drivers, FS" it would seem that the Minix developers are still focusing on keeping it compatible with qemu and virtualbox, ie, they don't expect anybody to run it on real hardware and use it for real jobs.

      Well, it's a teaching OS, and if you want to teach how to write an OS, it would help to be able to not need another PC to do it on - after all, you'll build it on the host OS (Minix is self-hosting, so it could be that), but you'd rather not replace your obviously-working kernel with your te

  • Or is it more for teaching? If its angling to be a serious OS I think they may be wasting their time to be honest - that horse bolted in 1991.

    • by Anonymous Coward on Saturday February 23, 2013 @04:58PM (#42991333)

      Wikipedia will give you an answer quicker (30 seconds) than Slashdot responses (5 minutes):

      "MINIX is a Unix-like computer operating system based on a microkernel architecture created by Andrew S. Tanenbaum for educational purposes"

      • by cnettel ( 836611 )
        Many computer systems have been created with education of computer science concepts in mind (or at least as an important design goal). Pascal and BASIC were to a varying degree created with this purpose in mind (Dr. Jekyll and Mr. Hyde, if you will...). During the microcomputer revolution, they became the de facto norm. Only far later did C intrude to a significant extent into that market.
        • by gatkinso ( 15975 )

          I fondly remember Pascal. Awesome language.

          • by c0lo ( 1497653 )
          • > Awesome language at being verbose; almost as bad as Cobol.


            Pascal sucks for readability: its ass-backwards variable declarations so you can't declare multiple variables, verbose keywords, redundant keywords, two character assignment ':=' (colon equals) instead one '=' (equals) (this WOULD of been fine if you were forced to use this in an IF statement and the single 'equals' elsewhere), and useless distinction between functions and procedures makes it hard to focus on the code when you have to wade t

            • Sorry for being pedantic, but your "C" example declares Pythagoras() as returning a float yet you cast the return value of sqrt() to int. As it seems that your intent was to truncate, you should use floor() instead of relying on casting hacks.

              • Thanks for the catch. The return type is a typo -- should be int, else the compiler will be doing unnecessary casts.

                floor() ceil() are slow as hell as they will promote a float to a double. floorf() and ceilf() should be available but may be unportable / unavailable. :-/

                One of C's design flaws is that it will silently upcast char to int to float to double and there is no way portable nor standard way to stop the idiotic compiler from doing so or to print a compile-type "info", "warning", or "error" if it

                • by Viol8 ( 599362 )

                  "One of C's design flaws is that it will silently upcast char to int to float to double"

                  I consider that a feature, not a flaw.

                  "Likewise there is no portable or standard way to inform the user of downcasts either, or to disable them entirely."

                  Every C compiler I've ever used will tell you when that happens. Some may require specific command line error flagging requests but they'll all do it.

          • by ls671 ( 1122017 )

            Yeap, turbo pascal overlays on a 8086 with 640K.

            Overlays basically allowed you to swap part of your running executable out manually from within your program.


      • by Anonymous Coward

        Please be aware that MINIX 3 is not your grandfather's MINIX ... MINIX 1 was written as an educational tool ... MINIX 3 is that plus a start at building a highly reliable, self-healing, bloat-free operating system ... MINIX 1 and MINIX 3 are related in the same way as Windows 3.1 and Windows XP are: same first name []

    • by Trepidity ( 597 )

      I don't think they have any expectation people will use it as a desktop or server OS. They do seem to have a goal of making it suitable for use by embedded-system developers.

      • I would say that they've then been beaten to THAT punch by many embedded systems developers. I'm not even going to cite teh urls. Embedded linux is not a mystery.
    • Re: (Score:3, Interesting)

      by Anonymous Coward

      MINIX has always been first and foremost a teaching OS. What is exciting is that in recent years, the capability seems to have broken through a wall, and the practical usages has started growing quickly. That means it can now be used for both purposes, which makes it even better at its primary purpose.

      MINIX is not trying to be Linux. MINIX is trying to be MINIX, and the exciting thing is that it is now succeeding! So it is one of a growing multitude of options in the free and open source community.

      • MINIX is not trying to be Linux. MINIX is trying to be MINIX, and the exciting thing is that it is now succeeding!

        So, "Run Forrest, run!" is more apropos of here than in any use that quote has ever been applied to before in any IT article...

    • It is available under a BSD-type license [] which will make it more attractive to some companies than Linux which is under the GPL.

  • I remember seeing this for the Atari ST back in the day but was put off by the price back then as istr it coming with full manuals and support but at a price. Amazed it's still going.
    • I believe it cost less than $100 and included the book that Tanenbaum wrote to go with it.

      • The download is for free, and if one buys the book, one gets the free CD/DVD (whichever it is)
        • "It cost $100" was a historic reference, i.e. that's how much it cost back in the late 80s when he originally wrote and published the book. Back then it wasn't released under a free licence, it was released under a propriety one. It switched to the BSD licence (I think) sometime in the 90s.

  • Okay guys, let's start the flame war. I honestly think the Microkernel is better.

    1. Everything is more modular and separated. This just makes sense to me, and I think code would be easier to maintain with a diverse community of people.

    2. If the X module dies, the OS can continue running like normal, as long as it's not the base module. For example, as humans, if you lose an arm, you can continue to live. It is losing your "brain module" that will kill you. With Microkernel, there is a lot less re
    • by Anonymous Coward

      Speed an issue? You're thinking Mach. It has rained since then.

      Here's some facts: []

    • Also, to prevent a hung driver from crashing the whole system, if a driver gets into an infinite loop, the scheduler will gradually lower its priority until it becomes idle. Eventually the 'reincarnation server' will see that it is not responding to status requests, so it will kill and restart the looping driver. In a monolithic system, a looping driver could hang the system.

      I do think microkernels are not for everywhere, and that it's ideal for embedded systems, where the code size is a big advantage. T

  • Embedded Market (Score:5, Informative)

    by crow ( 16139 ) on Saturday February 23, 2013 @08:38PM (#42992587) Homepage Journal

    I spoke with Andy Tannenbaum when we were at the OSDI conference last October. He said that Minix has a role in the embedded market, especially in places where companies want to avoid the GPL.

    It's a large and growing market. Much as I would prefer Linux, I agree that there's plenty of room for Minix in that market.

    • by LWATCDR ( 28044 )

      That and they where supposed to do some interesting stuff with like self healing for high reliability I find it very interesting at the Kernel level. I would love to see some way out projects that might do well at replacing X or at least closer intergeneration of X with audio.

  • Is the GNU Hurd kernel a good choice for teaching or OS study in general?
    • by hawk ( 1151 )


      Everyone should study projects that never get to the finish line.

      Duke Nukem has finally managed to disqualify itself . . .


  • It seems to me that the tradeoffs Minix makes lends itself to better hardening and security, let alone simplicity and maintainability in the code base. I am excited to see what the Minix community produces now that they have some dedicated developers and are using NetBSD pkgsrc for userland. Cheers!

FORTUNE'S FUN FACTS TO KNOW AND TELL: A giant panda bear is really a member of the racoon family.