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."
And you can try it out on your current PC - the download is a live-cd!
Now we can all switch over from Linux, at least until Hurd ships.
*pummeling ensues*
GNU/Hurd!! I meant GNU/Hurd!!!
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.
Honest question, is Minix compatable with Linux or something? Or do they just sound the same by coincidence? Or is it more like your BSD's in comparision to Linux?
Tannenbaum's home page:
http://www.cs.vu.nl/~ast/
Yes, it's the same guy who wrote the book for your networking course.
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.
Um, how relevant is Minix these days? Is it honestly intended to be used on a PC or is it aimed squarely at embedded devices? I'll admit, I really enjoyed Minix back in the old days, on a single 360k on an 8088.. It was quite an amazing trick. But NOW?
Each processor would proceed sequentially as if it had been better for them not to rise against Saul.
that he'd give him an F in Operating System design in the mid-90s right when linux was getting started.
Given that I never heard of minix being used outside the academic world (and even then, not much) I have to wonder if this guy is some type of Ivory Tower type or if this OS has any intriqueing feature over anything else out there. The only other mention of minix I've seen was the Filesystem to format floppies with...
In case you don't know, Andy was the professor who originally suggested to Linus that he create a kernel, and then provided all the support and positive encouragement that would obviously be needed to successfully complete such an undertaking. He knew from the outset that Linux was going to be a massive hit. He is truely one of Computer Science's great visionaries.
Is a free look-alike version for AT-386 computers. Does such a thing exist?
That'd be cool to give this a bash with our shiny new VMWare players!
... does it run on Linux?
(points the right pinky finger to the lip and laughs hysterically)
Victims of 9/11: <3000. Traffic in the US: >30,000/y
Than being posted under the LINUX section of Slashdot either.
Just think ot the Irony, of the Fater , so to say being listed as a Child.
While not a direct descendent Minix was CERTAINLY the original inspiration for Linus ("Ill tak that as gopsel since Linus himself said so:).
But now what nearly 15-18 years later and well we see no Minix section of Slashdot....
Ahh, I used to run Minix 1.X on an Atari ST ages ago, maybe it's time to take a nostalgia trip.
However, while I agree that microkernels are conceptually smarter, Linux has clearly won the "unix on a PC hardware" contest. But then again, as far as I could tell, that contest was never on AST's agenda anyway. For him the Minix system was a teaching tool.
OK, any mirrors to the VM image here pretty please?
"If A equals success, then the formua is A=X+Y+Z. X is work. Y is play. Z is keep your mouth shut" - A Einstein.
A couple of years ago, I was doing some hacking with the eCos embedded operating system and decided that I wanted to load data off the floppy before running the application, and so needed a floppy driver. Of course, I looked at Linux and BSD systems first, but they had big, hairy drivers. To be fair this is true partially because they try and support all kinds of weird hardware, but they also contain calls into lots of other parts of the system. On a whim, I got out my minix book, looked at the source code, and found the port was a lot easier, and finished it up in a few days (at least reading, I didn't need to write). In any case, the results are here:
"Scivoli": http://www.dedasys.com/freesoftware/ecos.html
and an article (in Italian): http://www.dedasys.com/articles/ecos.html
http://www.welton.it/davidw/
Wow, I was just reading "Just For Fun" for the second time, mainly because of the lack of other books and today I was wondering what happened to Minix. In his book, Linus describes what is wrong with Minix and microkernels in general.
The Tanenbaum-Torvalds Debate
.. so does it finally have a multithreaded filesystem?
That's a good advert.
Comes full circle: minix copied -> linux -> minix 3. I see and feel the humour.
My hobby OS (am moderator at www.mega-tokyo.com - OS development board) has around 8000 lines of code for just the core of the kernel... Must admit, I probably do have better support for threads and more layers and hierarchical constructs to make the code maintainable. It takes him years to bring out a new version, it takes me only a few months.
"yes, he still thinks that micro-kernels are more reliable than monolithic kernels ;"
Does anybody dispute this?
AFAIK reliability is not the main pressing benefit of a monolithic kernel design so much as being able to scramble all over the internal structs of other kernel modules without needing a context switch, which can be very helpful and quick.
Sam
blog.sam.liddicott.com
I have a number of old laptops lying around. It would be nice to use them for embedded systems. Linux is too big to fit. I guess Minix has too few drivers. What to do? Any recommendations?
Kim0
On the news page it states that 'The port of X Windows is coming along well.'
Which implementation of X is it that is being ported? I would hope that it is X.org, and at least the 6.8.2 release.
Cyric Zndovzny at your service.
It is funny, it says a main goal of MINIX 3 is to run in resource constrained environments.
Andy then goes on to boast that it runs in 8MB RAM "with some tweaking". Meanwhile you've got Linux running in 2MB RAM out of the box, with a full TCP/IP stack and probably 1/2MB RAM when cut down and on MMUless systems and with some tweaking.
Linus should post a message to their mailing list and tell Andy he'd give MINIX3 an "F" for resource constrained environments.
The live CD seems to work fine with VMWare workstation. Just make sure you use an IDE hard drive instead of a SCSI, and point your CD-ROM device to the ISO image.
DaC
It's relevance lies in it's use in teaching operating system design
used to be true, but not any more, from TFA:
"MINIX 1 and 2 were intended as teaching tools; MINIX 3 adds the new goal of being usable as a serious system on resource-limited and embedded computers and for applications requiring high reliability."
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.
http://groups.google.com.au/group/comp.os.minix/br owse_thread/thread/c25870d7a41696d2/
"Sure there's porn and piracy on the Web but there's probably a downside too."
Imagine professor Tanenbaum's workload, he is close to a regular visitor on slashdot, remember
this story, and this one?
-- (:> jms cs.vu.nl (_) --"---
I was "there" when Andy and Linus had their first "ding dong". I was doing an OS/Design undergraduate (300 level) course at the time using the AT book and MINIX as the tool through which we had to implement changes to the scheduler. The book was excellent, MINIX was pretty cool but more importantly it was an educational tool to allow us to delve into the guts of an operating system and play around with it. It was so accessible and relatively easy to do, certainly compared to anything else available at the time.
;-)
Cruising the newsgroups was pretty much the done thing at the time and comp.os.minux was pretty high on my list for obvious reasons. Saw this stuff happening at the time and, knowing that AST was always pretty direct was entertained by the whole flame war thing. Anyway my point is that AST saw MINIX as a OS theory educational tool and Linus saw it as too defective to be even that and as such Linux was better. Funny, I agree with them both, kinda. I could never have kernel hacked Linux like I did MINIX at the time and MINIX could never have become my primary desktop at home like it is now. I guess they were just talking at crossed purposes even then. Pretty much standard flamewar
"The first thing to do when you find yourself in a hole is stop digging."
Frim the Minix 3 site:
The main documentation for MINIX 3 is the book
Operating Systems: Design and Implementation 3/e by Andrew S. Tanenbaum and Albert S. Woodhull, Prentice Hall, 2006
Too bad they don't list one of those handy prepaid 2-time-use time machines to buy and actually get the book...guess they're out of stock in the 26th Century.
The Hacker's Guide To The Kernel: Don't panic()!
See? It's Minix 3 already, while Linux is still in 2.x! ;)
Anagram("United States of America") == "Dine out, taste a Mac, fries"
I used to run Minix on my 386 when I was a student . Unfortunately, I couldn't get the source code easly with the 1st edition of the book. I think the publisher had the copyright and have to send them a postcard with $60 or something and they will send you a tape/or floppies. That is a lot of money for a student. But, somebody gave the source to me. And I was looking like the picture of the guy in front of the book, glued my face to my computer :)
Some genious would come up with a patch to micro-kernel-ise Linux.
The point for creating Linux was that Minix was not free for people to modify and spread, Tanenbaum wanted to keep it really nastily asshole private. There was no other choice but to create Linux.
Tanenbaum was in a position to change computing history - after all Minix was already established when there was not yet a hint of Linux - but lost it all because of outright fucking single minded flat headed SELFISHNESS.
Not only that, there is also a VMware image!
-- (:> jms cs.vu.nl (_) --"---
His bio so in terms of why he gets to grade Linux as an F (IMO he was right, its improved since but it was poor, SMP, size of kernel, modularity, the only advantage was that NT and Windows scored a "Not Classified") its because he managed to understand Operating system design to such a level that his work was the BASIS from which Linus was "inspired".
Minix and his work are key reference works in writing pretty much any OS and his work in computer networking and distribution in paticular are top notch. His stuff is very much NOT Ivory Tower (I speak as someone who has had to do bespoke OS work) and very practical way to build operating systems and overcome networking challenges. Heard of the OSI model for networking? Most of the rest of us have heard of it thanks to Andy's work, because we couldn't afford the official reference from ANSI/ISO.
Out of interest what is you have done?
An Eye for an Eye will make the whole world blind - Gandhi
This makes it, as far as I know, the only completely BSD licensed Unix-like operating system in the world. Even the big BSDs can't claim that, as they all rely on gcc.
I was in on the Minix beta testing. It's actually extremely impressive. It's quite minimalist; most of the shell commands are pared down to their bare minimum --- for example, tar doesn't support the j or z flags --- and it tends towards SysV rather than BSD with things like options to ps. It runs happily on a 4MB 486 with 1GB of hard drive, with no virtual memory, and will contentedly churn through a complete rebuild without any trouble whatsoever. Slackware users will probably like it.
Driver support isn't particularly great; apart from the usual communications port drivers, there's a small selection of supported network cards, a FDD driver, an IDE-ATA driver that supports CDROMs, and a BIOS hard disk driver for when you're using SCSI or USB or some other exotic storage. The VFS only supports a single filesystem, MinixFS (surprise, suprise!) but allows you multiple mountpoints. In order to read CDs or DOS floppies you need external commands.
There's no GUI, of course.
As a test, as part of the beta program, I did manage to get ipkg working on it. This required a fair bit of hacking, mostly due to ipkg assuming it was running on a gcc/Linux system, but it did work, and I found myself able to construct and install .ipk packages --- rather impressive. Now the real thing's been released, I need to revisit it.
Oh, yeah, it has one of the nicest boot loaders I've ever seen --- it's programmable!
>> Disclaimer: I am the chief architect of Globule, the experimental content-distribution network used to host www.minix3.org /.'ing is a great way to test your network isn't it? :D
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?
We all hope in a better rivalry between Andy and Linus.
They are both great minds: there can be much more value in their cooperation than in falming each other!
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
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.
This is all well and good until the crashing device driver locks the system bus or grams an NMI etc. And what if the device driver in qestion is the one accessing the disk? How does the microkernel recover from that one when it can't access the drive the device driver is sitting upon?
I can see where his thought processes are coming from, but I still think he lives in Computer Science Heaven, I'm afraid, where all hardware is mathematically perfect and I/O never happens (as it's not mathematically provable).
In the real world device drivers hardly ever crash the system 'cos they're kernel mode, they crash it because the hard-hang the system or denigh the kernel the resources to dig itself out of the hole. Neither of these change by moving the code into user space.
Agrajag: "Oh no, not again!"
There is nothing to "dispute" since that's not even a meaningful claim. People have built very unreliable microkernels and very reliable monolithic kernels.
So far, there is no data to support the idea that among the many variables that determine reliability (effort, programming language, architecture, testing, etc.), the microkernel/monolithic distinction makes any difference whatsoever.
How can that be? Well, for example, microkernel architectures may complicate software development to the point where less time can be devoted to testing or where essential features can't be implemented at all and the project fails altogether.
MINIX 3 released. Is this the beginning of the end of Linux?
Minix v3 looks like a much improved system, with large memory addressing and software like Emacs, vim, Python, Perl and gcc included. However, resource usage has become more like Linux and *BSD in the process, too. While Minix v2 happily ran with 2 MB RAM (I actually used it on a 386sx laptop), Minix v3 requires 8 MB, better 16 MB RAM. This is pretty much the same as NetBSD, an arguably more versatile and mature embedded OS. - Of course, I am aware that Minix is primarily an educational system and the microkernel/driver architecture has interesting hack value. Nevertheless, it seems that Minix' niche has rather shrunk than grown with the direction the project has taken...
gopher://cramer.plaintext.cc http://cramer.plaintext.cc:70
if it hadnt been for tanenbaum refusing to give the source code to linus to study, linus wouldn't have been galled into making his own operating system. and now 15 years later minix is released as open source
the irony of it all!
_ In Egypt Networks: Network Solutions with a Twist
Isn't debugging a microkernel suppost to be a bitch when compaired with a monolithic kernel ?
My limited understanding of what a microkernel is, it makes use of semaphore messages which can lead to problems in diagnosing and fixing race condition bugs.
Is this correct?
G.
This system is pretty close to what the HURD should have become. The core is a simple message-passing infrastructure, and everything else is implemented as a daemon. This makes it easy to write and debug drivers. One thing that is still lacking (AFAIK) is a VFS, but that's being worked on.
Please correct me if I got my facts wrong.
I have done my share of kernel programming and I have always thought that it is pretty horrible that simple device driver bugs can take down the system. Almost all of Windows' Blue Screens are from bad third party drivers. Almost all of the oopses I have seen on linux are from device drivers for extra hardware (I mean drivers not for core common O/S features). On linux device driver debug still seems to be horrible; on Windows it is considerably better but still not as good as application debug.
With common user systems as cheap and fast as they are now, do user mode device drivers make sense? Is the performance worth giving up for the stability? Check out Microsoft's User-mode Driver Framework approach. Here is an old linux journal article on the subject. Does anyone know of other interesting examples of user mode device drivers on any operating systems?
-- soldack
Does Minix have a framebuffer like Linux? Then it would be possible to implement DirectFB http://www.directfb.org/ on top of it. This would give me more reason to renew my wyoDesktop http://wyodesktop.sf.net/ project.
A friend of mine has been trying to get a POSIX test suite on MINIX, and met with mixed success. Apparently, available POSIX test suites tend to rely on features that aren't in POSIX (such as gcc extensions), require optional features to test required features, and/or be severely limited in scope.
In the end, I believe he got some results, but no definitive yes or no on POSIX compliance.
One of the features that isn't supported is the MSG_PEEK flag on recv(2) (I know, because my webserver, muhttpd, uses it). However, this flag may not have been present in the version of POSIX that MINIX aims to comply with...
The bottom line is that a lot of stuff will need porting to run on MINIX, but this doesn't seem to be a very difficult job.
Please correct me if I got my facts wrong.
...and he is a Chuck Moore.
:)
"OS obsolete" - he says
Sounds like a great OS for mobile devices - PDA, cell phones, camera etc. Stable, small, OS not crushing if some driver fail. Why it was never used for mobiles ?
Check http://www.minix3.org/license.html:
Copyright (c) 1987,1997, 2006 , Vrije Universiteit, Amsterdam,
indeed the future of OS.
AFAIK, OS X uses the BSD environment, over their own kernel. The environment is things like compiler, linker, lib, shell, cp and all those other little utilities we all know and love.
that micro-kernels are more "reliable" than monolithic kernels. The problems come with the low performance, but also in the design phase when you have to decide which layers are above which layers. Ie: should the VM (Vistual Memory) be stacked above VFS (Virtual File System) or VFS above VM? VFS requires VM for file m-mapping, VM requires VFS for swap. I'd like to know how Tanenbaum solved this problem :)
Wondering why i am doing so strange posts? I am trying to get a "+5,Flamebait" or "-1,Insightful" rating.
It's much easier to write a microkernel since you simply offload all the needed code to build for a complete system and possibly just forget to implement all the offloaded code. Who is using a shell only system these days even just for operating system classes? It's too easy to implement a microkernel without a GUI possiblity. It leave the taste of "not being able" to implement a GUI. At least as long as there isn't a GUI driver, there is _no_ prove!
I'd really like to see a microkernel with a framebuffer driver, something like DirectFB http://www.directfb.org/.
I didn't find a tarball of source code, just the ISO image. When I loopback-mount the ISO image, I don't find anywhere near 80M of stuff. Is the source on the ISO image?
At least we have modern and very minimalistic UNIX OS !! :D :D :D
:D
And now i have choice to resurect my 386sx with MODERN UNIX [not some old linux / netbsd verions]
i hope that with MINIX 3 gnu/hurd will finally DIE !!!
I agree 100%. And there has been excellent prior work in that area, with fault isolation in single-address space kernels; experiments suggest that single-address space approaches are significantly faster. And it doesn't even have to be Java or C#; languages like Modula-3 or Object Pascal are far safer than C and can get by with a tiny runtime. Heck, even consistent use of C++ for writing kernels would be better than what people are doing now, despite the numerous problems that C++ has.
It is just astounding to me that while anybody else would be laughed at if they tried to write a modern, complex application in ANSI C, operating system designers are somehow considered special, as if concepts like "abstraction", "error handling", and "runtime safety" didn't matter for kernels that are millions of lines big.
Still.. as fast as modern computers are I think we may be reaching a point where raw speed is less important
All else equal, the faster code is better. Either you can actually do things faster, or you can run the faster code on cheaper hardware. Thank-you, lemmings, for giving those of us who know that performance matters an edge against vast numbers of you who've been duped into believing it doesn't.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
Holy crap, I really need to try this new style of karma whoring, it's like taking candy from a blind baby.
/. story.
1. Wait for new
2. Post template "Thank you <someone> for <topic>, it has really done X, Y and Z for me." comment.
3. Insightful++;
4. Karma++;
Izzy Mandelbaum: Your son's pretty funny, Morty. He oughta be a comedian. Jerry: Actually, I am a comedian. Izzy Mandelbaum: That's not funny.
If carrots got you drunk, rabbits would be fucked up. - Comedian Mitch Hedberg R.I.P. 03/30/68-2/24/05
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.
Well, since nobody else has posted a very informative answer...
Linux is based on MINIX. It was built on MINIX, using MINIX. It started off as Linus's weekend hack to build a 386-specific replacement kernel, so he could have MINIX with pre-emptive multi-tasking and memory protection. Andy Tanenbaum didn't want to make MINIX 386-specific because, like the NetBSD and Debian folks, he was trying to make something that would be portable to lots of different hardware. (Like the Atari ST I was running it on.)
Then there was the big flamewar over monolithic kernels vs modular microkernels. Linus went off in a huff and turned Linux into a complete OS by ripping out all the MINIX and adding all the GNU stuff instead. Then over the years he introduced a modular kernel and made it portable to multiple architectures, basically admitting he was wrong but never saying so.
At that point, Linux started to become usable as an OS. And in the mean time, MINIX had been killed by toxic licensing policies of the copyright owner (not Andy Tanenbaum). That, and the x86 architecture had expanded to 90% of the market. So, we arrived at the situation we have today, where MINIX is largely forgotten, and we have a MINIX-like Linux with all the mindshare.
And now, ironically, Andy Tanenbaum has made MINIX 3 only run on the x86. So perhaps he and Linus can now both admit they were wrong in major respects, and make friends?
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
Click here for more information.
These are (according to Wiki) microkernels. Haven't ran either of them, and as I understand at the time, neither of them "sucked", they may have lacked a sufficient community to engender commercial success.
I've never heard of BeOS as "sucking", just that it didn't have software. And from an OS "feel", it was powerful, responsive, and efficient, and implemented some relatively revolutionary features for an OS
AmigaOS was, for its time, quite advanced. Eventually the behemoth Microsoft compensated, but if these two OSes hardly seemed flawed from a fundamental OS design, more brutal economic realities.
Hey, I'm just your average shit and piss factory.
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.
16MB ram in the requirements... all I can say is WOW.
This is supposed to be a simple OS, much simpler than the first version of Linux.
ucLinux can run on 1MB. Older versions can be trimmed enough to run in 200kb even but thats pushing it. Minix now requires 16MB!!! Thats more than ANY BSD out there.
I was interested in running it on MCUs with small ram and flash. Trimming down uCLinux to the extreme uses 200kb of ram by the kernel and one shell. eCos requires under 64kb for simple compilations. eCos is POSIX for the most part, but theres hardly any schedulers in there, and no real filesystem drivers or calls.
Minix is a full OS, but being that simple, I expected the kernel to fit in 64kb ram. I guess I'll use NetBSD as a simpler OS to study before graduating on to Minix 3.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
Actually, the bigger problem with microkernel is debugging. When passing messages around inside an OS, there is a potential for lots of race states and the like. The trick to microkernel is getting the messages to run around as fast as possible without adding synchronization points. Every synchronization point slows the system a little, but makes the system a little more stable. Once you've optimized the system for performance, and small change to any module the kernel talks to can throw the whole thing out of balance, and you need to go back and debug the race states and retune the code.
In short, a kernel can be fast, flexible, or reliable. You can have two, but it is really difficult to have three. Macro-kernels are generally fast and reliable. Micro-kernels can be fast and flexible, flexible and reliable, but rarely are they fast and reliable.
All you need is ColorForth. To be clear, this IDE driver's kind of compact.
Some more links.
It sure is nice to be able to jump from any point in code to another. I also like to allocate all the registers for special internal functions ("global" registers), leaving only EAX for public use (except when used as a return value). Oh yeah, and I love how C lets me have all the speed an elite hacker like myself needs, yet leaves me unencumbered with the last 30 years of advancement in computer science. Likewise, Linux lets me pretend I'm hacking on a PDP-11 in the basement of MIT...I sure hate virtual addressing, it just slows a computer down (you VAX nerds know what I mean).
I think it'll be a while before Hurd comes out, since they appear to be switching from the L4 microkernel to the EROS/Coyotos model.
Although I suppose it's somewhat trivial at this point, I see that Minix 3 doesn't support any x86 processor lower than a 386, whereas previous versions supported everything from an 8088 and up.
:)
It's a bit sad to see that support dropped, although I can see why in this day and age. Although, if you can still find an old 286-based PS/2 kicking around, it would be nice to run the latest and greatest version of Minix on it
Minix's abilities are neither worse nor better, just different. That is the charm.
And technologies can benefit from the others' ideas. For example, many Linux distros have PnP and WLAN-NG, which have architectures in common with microkernels: a pluggable API with dynamically loaded modules.
...that Minix is now a better Linux than Linux? :-S
They're website is down... I hope they're not using Minix as the OS ! http://toolbar.netcraft.com/site_report?url=http:/ /minix3.org
Oh, no it's Solaris 9. Sounds bad...
Disclaimer: I am the chief architect of Globule, the experimental content-distribution network used to host www.minix3.org.
Translation: "Please load-test my network."
"Among the people who actually design operating systems as an academic exercise or a teaching tool, the debate is essentially over. Microkernels have won."
The people who actually design operating systems that are actually used in the real world have a different view...
The reason Linux is kicking ass today has more to do with the GPL vs. BSD than the monolithic vs. microkernel architecture debate.
Andy's still hung up on the mono v. micro thing? Well, as long as he's not trying to compete, that's cool. Nobody tell him, let's see if he figures it out on his own..
Sometimes I feel like our greatest minds are trapped, even lost, in time. Peer pressure and social psyche suck. If only Cannabis were abundantly legal, we'd make a lot more progress.
But its survival of the fittest, I guess. The natural order. Harsh, but fair.
root, no password.
Goddamned trackballs. I hate them.
They have one right here.
Stick Men
If you want to run a UniX operating system on old hardware, for example a mobile computer with 286CPU, Minix is the operating system of choice. Here are installation reports about MiniX on old laptops, notebooks and PDAs. There is also ELKS a Linux version with support for 286CPUs, but ELKS doesn't seem to be maintained anymore. Here are some installation reports about Linux on laptops and notebooks with 286CPU.
Here is the message from 1992:
Path: sparky!uunet!mcsun!sun4nl!star.cs.vu.nl!...@cs.vu. nl
From: a...@cs.vu.nl (Andy Tanenbaum)
Newsgroups: comp.os.minix
Subject: LINUX is obsolete
Message-ID:
Date: 29 Jan 92 12:12:50 GMT
Sender: n...@cs.vu.nl
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam
Lines: 76
I was in the U.S. for a couple of weeks, so I haven't commented much on
LINUX (not that I would have said much had I been around), but for what
it is worth, I have a couple of comments now.
As most of you know, for me MINIX is a hobby, something that I do in the
evening when I get bored writing books and there are no major wars,
revolutions, or senate hearings being televised live on CNN. My real
job is a professor and researcher in the area of operating systems.
As a result of my occupation, I think I know a bit about where operating
are going in the next decade or so. Two aspects stand out:
1. MICROKERNEL VS MONOLITHIC SYSTEM
Most older operating systems are monolithic, that is, the whole operating
system is a single a.out file that runs in 'kernel mode.' This binary
contains the process management, memory management, file system and the
rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360,
MULTICS, and many more.
The alternative is a microkernel-based system, in which most of the OS
runs as separate processes, mostly outside the kernel. They communicate
by message passing. The kernel's job is to handle the message passing,
interrupt handling, low-level process management, and possibly the I/O.
Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the
not-yet-released Windows/NT.
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.
The only real argument for monolithic systems was performance, and there
is now enough evidence showing that microkernel systems can be just as
fast as monolithic systems (e.g., Rick Rashid has published papers comparing
Mach 3.0 to monolithic systems) that it is now all over but the shoutin`.
MINIX is a microkernel-based system. The file system and memory management
are separate processes, running outside the kernel. The I/O drivers are
also separate processes (in the kernel, but only because the brain-dead
nature of the Intel CPUs makes that difficult to do otherwise). LINUX is
a monolithic style system. This is a giant step back into the 1970s.
That is like taking an existing, working C program and rewriting it in
BASIC. To me, writing a monolithic system in 1991 is a truly poor idea.
2. PORTABILITY
Once upon a time there was the 4004 CPU. When it grew up it became an
8008. Then it underwent plastic surgery and became the 8080. It begat
the 8086, which begat the 8088, which begat the 80286, which begat the
80386, which begat the 80486, and so on unto the N-th generation. In
the meantime, RISC chips happened, and some of them are running at over
100 MIPS. Speeds of 200 MIPS and more are likely in the coming years.
These things are not going to suddenly vanish. Wh
Disclaimer: I am the chief architect of Globule, the experimental content-distribution network used to host www.minix3.org.
If you were my student, you wouldn't get a very high grade
From what I can tell, Minix requires a primary partition just like BSD's do, and I don't have any available at the moment.
I think it would be fun to try and compile the GNU Hurd for the Minix microkernel. As long as the Minix uKernel boots on modern hardware, and has IDE, cdrom, and memory management, there's no reason why it couldn't be done in theory at least.
The L4/Hurd crew is currently pretty cutting edge, and they are making some significant advances of late. There has been a huge surge of activity as some of the Eros developers have been making some contributions to the L4/Hurd effort.
Be that as it may, I think it would be cool to get the Hurd running on the Minix microkernel just for fun. Of course I have no idea how to do this, but getting it installed would probably be a good first step.
I already have GRUB installed. Does anybody know if I manage to unpack a Minix tarball onto an extended partition if it will be able to function? I'd likewise like to get NetBSD running on an extended partition. If its possible to accomplish this how about somebody replying with some good info. Don't bother to reply if you don't think it can be done. I'll assume silence equals NO.
Clickety Click
That minix is a useful low-overhead OSS operating system is incidental. the reason it exists is to provide a real base for taunenbaums books on operating systems which are greatly enhanced by the inclusion of the source code for a real working operating system. This has always been the primary goal of minix.
0 ,1144,0131429388,00.html
The third edition of the book is coming out, hence the third release of minix is coming out in lockstep.
http://vig.prenhall.com/catalog/academic/product/
http://notanumber.net/
craig@master ~ $ curl -s -I http://www.minix.org/|head -n 3 HTTP/1.1 200 OK Date: Mon, 24 Oct 2005 23:32:32 GMT Server: Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/4mdk) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2 Interesting. craig@master ~ $ curl -s -I http://www.minix3.org/|head -n 3 HTTP/1.1 200 OK Date: Mon, 24 Oct 2005 23:33:29 GMT Server: Apache/1.3.26 (Unix) PHP/4.4.0 mod_ssl/2.8.10 OpenSSL/0.9.6c Pah! craig@master ~ $ sudo nmap -P0 -v -v -v -n -TPolite -O www.minix3.org [wait] ...
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.18 - 2.6.11 ...
I guess nobody's ported apache to minix yet...
Well that'll teach me to "save time" by not previewing.
... ...
craig@master ~ $ curl -s -I http://www.minix.org/|head -n 3
HTTP/1.1 200 OK
Date: Mon, 24 Oct 2005 23:32:32 GMT
Server: Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/4mdk) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2
Interesting.
craig@master ~ $ curl -s -I http://www.minix3.org/|head -n 3
HTTP/1.1 200 OK
Date: Mon, 24 Oct 2005 23:33:29 GMT
Server: Apache/1.3.26 (Unix) PHP/4.4.0 mod_ssl/2.8.10 OpenSSL/0.9.6c
Pah!
craig@master ~ $ sudo nmap -P0 -v -v -v -n -TPolite -O www.minix3.org
[wait]
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.18 - 2.6.11
I guess nobody's ported apache to minix yet...
Well, as you keep pointing out yourself, you are a typical example of a highly skilled and experienced systems programmer. Thank you for sharing your views and attitudes towards software development and application programmers with us. I think your remarks speak for themselves.
QNX and IBM's VM are the most successful microkernel systems, with tens of thousands of installations and a user base generally happy with their performance.
From the academic world, we have Minix, Mach, EROS, L4, and the Hurd. None of which are very successful. (MacOS X is not based on the microkernel version of Mach; it's based on an earlier version which is basically BSD.)
It's worth reading Jorrit Herder's Minix 3 thesis. This is the guy who wrote the thing. He basically took Minix 2, yanked out all the drivers, and kept adding system calls until they could work outside the kernel. The result is on the ugly side, compared to QNX and VM. He really hasn't thought through the problems of doing device drivers in user space. The supported devices are archaic, like Centronics printers and TTY ports. In particular, no modern I/O (USB, FireWire, etc.) seems to be supported. Those are the ones where a microkernel fits well, because you have a channel driver, which talks to host hardware directly, and device drivers, which need very few privileges. But Minix isn't there yet. Actually, you'd be better off starting with the modern peripherals, especially since the OHCI and UHCI interfaces are well standardized. They also force you to think hard about how startup and shutdown should work, since you have to handle hot plugging. The design works out much better if you treat hot-plugging as the normal case and fixed peripherals as a special case of hot-plugging.
I've written FireWire and USB device drivers for QNX. I've also written UNIX drivers. So I do know what I'm talking about here. It's really much easier under QNX in user space, and the architecture is far cleaner.
The key to microkernel design is getting scheduling and interprocess communication absolutely right. Get scheduling order, scheduling/messaging interaction, scheduling/cache interaction, or interrupt lockout time wrong, and your microkernel will be useless. None of this shows at the API level, yet it's crucial. It's almost impossible to fix this later. It's not clear from the Minix documention how well messaging was done, or how it interacts with scheduling.
Sadly, security seems to have been neglected. Minix 3 still has "root". It doesn't have the security functions of NSA Secure Linux, and it doesn't have an approach to messaging which deals well with security. Retrofitting security is tough and usually fails, Look at the mess in Windows. NT/2000/XP actually have a decent security system, but it's not used, because Windows 3.x/95/98/ME didn't have it, and XP had to be "compatible".
It's a beginning. But probably too late.
and that is lack of applications I need.
I'll download it and try it only after it gains a robust web server, firewall & management tool (ie Shorewall, FireHOL), vim, elm, openssh, and a few more "must-haves".
Looks very promising tho--in theory.
FMI/OS (based on VSTa) is tiny, performant and arguably quite well-designed.
Guess what? The real contribution is in the advancement of the field. That is, the generation of new ideas! Tanenbaum is just slightly ahead here. Compare http://www.informatik.uni-trier.de/~ley/db/indices /a-tree/t/Tanenbaum:Andrew_S=.html to http://www.informatik.uni-trier.de/~ley/db/indices /a-tree/t/Torvalds:Linus.html
And yes, new ideas aren't always practical--very few are actually. But new ideas are the catalyst for better ideas.
+ Spiderfood
minix, the little os that could. After many years Andy comes back and launches an able hobbit os :) "thank you humble coders, we bow to thee :)"
u m/ "Operating Systems, Design and Implementation". After working your way through, you can call yourself a kernel/os designer/programmer.
:))
Install it and next get his book to go with minix : http://cwx.prenhall.com/bookbind/pubbooks/tanenba
I think AT is a brilliant teacher. Looking inside that book : sec2.2 interprocess communication, describing race conditions, semaphores, and the classical IPC problem : The Dining Philosophers Problem. Its all very very nice explained. What about the "The Sleeping barber problem"? lol
Really, and this is no kidding, this book holds the mindset of today's Linux kernel coders. Too bad that Tanenbaum got into that flamewar with Torvalds. Maybe because Linus did his monolithic thing on minix, is what made him angry. But Andy should be proud. He just happened to be around with the best book on that subject, when Torvalds started his Linux kernel in minix. That's no coincidence.
Robert
Service Temporarily Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Additionally, a 503 Service Temporarily Unavailable error was encountered while trying to use an ErrorDocument to handle the request.
the rest of us..
small kernel OSs have their place and as technology makes things smaller and to some point a bit more dedicated...
The time will come where the small kernel OSs are being used more then the big kernel Os's..
Does it really matter that not everyone has heard of gnu? Look back some stuff written way back when the LiGnuX debate started, and you will see that was the justification used to try to name someone else's project. Silly University staffroom politics spilled into the publicly available software world - we can move on now.