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."
Minix+Laptop (Score:3, Funny)
Re:Minix+Laptop (Score:5, Insightful)
yeah... just now getting shared lib support? Am I supposed to be impressed, surprised, amused, perhaps scholastically challenged on a theoretical level...?
Don't be a dick. I first used Minix back in the late 1980s, when it first came out, on an IBM PC/AT. It's great for educational purposes, perhaps even better than Linux/BSD. Any continuing progress on something like this is a good thing.
Bowling alleys run on Minix (Score:2)
Minix was/is not confined to the academia
It also runs the machines in your local bowling allies
Re:Minix+Laptop (Score:4, Interesting)
Shared libraries aren't easy to implement and they're not a part of the kernel (Minix is about the kernel). Adding shared libraries adds a lot of complexity and infrastructure. The executables in Minix were kept simple on purpose. Minix resembles a more classic Unix style in many ways.
Pragmatically, it was not feasible to have shared libraries when Minix was new, most Unix systems of the time were still experimenting with it, and you need specific tools chain support that just wasn't there. Now why it didn't change over the intervening years is undoubtedly due to the reason that it's just not all that important for the purpose of Minix which is education.
how does it compare to NetBSD as a teaching tool? (Score:5, Interesting)
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?
Re:how does it compare to NetBSD as a teaching too (Score:4, Informative)
Re: (Score:1)
Dunno if I'm replying to a troll or if you genuinely believe what you're saying but whatever...
I'm no open-source advocate and I'm all for people making money from their work, but I think your comment applies as much to commercial consumer-grade software than to open-source.
The profit motive from selling software means that companies will often choose to add new features rather than make current software better. And generally, businesses do that because they think that's what people will pay for.
The quality
Re: (Score:3)
Ah, the classic Slashdot Troll comment, which will here succeed in getting a bite. :) But it will be a short bite: this is exactly how proprietary software works as well. You will despair if you ever see the internals of any of the major proprietary software packages you use regularly.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:2)
Re: (Score:2)
I find it intensely annoying too. But I ackowledge his right to write as he pleases. And that I'm under no compulsion to read it.
Re: (Score:2)
I don't deny his rights to write it, nor my rights to not read it. That doesn't mean it is beyond criticism.
Re: (Score:2)
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.
Re: (Score:1)
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...
Re: (Score:1)
Re: (Score:2)
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.
Hardware compatibility (Score:5, Informative)
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.
Re: (Score:2)
I mean they don't expect it to be installed on COTS hardware and used as a web server or workstation. It is, as you said, expected to be used as a teaching tool.
Re: (Score:2)
Re: (Score:2)
Yeah but the minix web page does say thae think it is appropriate for netbook type devices. I am currently torrenting the CD image in the hope that I can get it to boot with PXE. The netboot howto says to use the USB image but that seems to be deprecated at the moment.
Re:Hardware compatibility (Score:4, Informative)
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 [minix3.org]:
"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 [minix3.org]:
"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 [minix3.org].
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."
Re: (Score:2)
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.
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:1)
It ran fine on my 286 in 1999. It had an original ne2000 IIRC, but it was only useful as a terminal.
Virtual (Score:1)
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)
Actually, in the release announcement [minix3.org], 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)
Re: (Score:3)
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
Is this a serious OS? (Score:2)
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.
Re:Is this a serious OS? (Score:4, Informative)
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"
Re: (Score:2)
Re: (Score:2)
I fondly remember Pascal. Awesome language.
Re: (Score:2)
Re: (Score:2)
> Awesome language at being verbose; almost as bad as Cobol.
FTFY
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
Re: (Score:2)
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.
Re: (Score:2)
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
Re: (Score:2)
"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.
Re: (Score:2)
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.
http://stackoverflow.com/questions/10155003/how-did-turbo-pascal-overlays-work [stackoverflow.com]
NOT version 3 (Score:1)
Please be aware that MINIX 3 is not your grandfather's MINIX
http://www.cs.vu.nl/~ast/reliable-os/ [cs.vu.nl]
Re: (Score:3)
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.
Re: (Score:2)
Re: (Score:3, Interesting)
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.
Re: (Score:2)
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...
Re: (Score:2)
It is available under a BSD-type license [minix3.org] which will make it more attractive to some companies than Linux which is under the GPL.
Re: (Score:2)
Linux...but its restrictive license is an inherent handicap.
So it's a handicap because...
1. Any fixes/improvements/forks that people make have to be Open Source, thereby helping the original kernel.
2. Microsoft and Apple can't steal parts of the code and use it in their OSes legally.
These are handicaps to corporations, not to Linux or the users, so I'm fine with these "handicaps."
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
Even if not explicitly stated, every piece of unique work has a natural copyright anyway.
That may be your religion, but I don't share it.
Copyright isn't natural, it's a legal concept. That aside, it is a fact that any original creative work is copyrighted automatically, that's not religion.
I realize that you're just nitpicking at the original wording by lawyers, but when I was younger, it actually used to be called "natural copyright" more. Now it's known more as a common law copyright or copyright by natural law. In fact, the wiki page [wikipedia.org] says that it stems from the idea as a natural right. Gov site for other readers. [copyright.gov] I didn't mean to say that it's "natural." Only using the phrasing of my generation.
Eventually, the F/OSS version can't compete and keep up and eventually dies.
So why does F/OSS still exist at all? Reality seems to disagree with you. Because F/OSS doesn't need to compete it doesn't have to die, it just needs people who are interested in it, and we live in a big world. New fancy features may not always be developed as fast as with proprietary software because the motive to score big with a hype isn't so strong, but F/OSS software does tend to gradually improve.
You're right with most F/OSS software, but my sentence applies to the context in which I pr
Re: (Score:2)
Better for embedded than for servers (Score:2)
Re: (Score:2)
wow (Score:2)
Re: (Score:2)
I believe it cost less than $100 and included the book that Tanenbaum wrote to go with it.
Re: (Score:2)
Re: (Score:2)
"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.
Microkernel vs. Monolithic Kernel (Score:2)
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
Re: (Score:1)
HURD is a crappy hybrid system based on an horrid microkernel and pretty much dead because of lack of leadership.
Minix3 is an actively developed pure microkernel and multiserver system with ambition and under the direction of a person who knows the fuck he's doing.
If you can't tell them apart, you will not make the cut in the immediate future.
Re: (Score:1)
Speed an issue? You're thinking Mach. It has rained since then.
Here's some facts:
https://archive.fosdem.org/2012/schedule/event/549/96_Martin_Decky-Microkernel_Overhead.pdf [fosdem.org]
Re: (Score:2)
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)
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.
Re: (Score:2)
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.
Hurd (Score:2)
Re: (Score:2)
Yes.
Everyone should study projects that never get to the finish line.
Duke Nukem has finally managed to disqualify itself . . .
hawk
Great to finally see some advancement on Minix (Score:1)
Re: (Score:2)