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."

106 of 528 comments (clear)

  1. live-CD by DreamerFi · · Score: 5, Informative

    And you can try it out on your current PC - the download is a live-cd!

    1. Re:live-CD by xgadflyx · · Score: 2, Funny

      Well before I burn the bandwidth, does it have KDE or Gnome?

      --
      Civilization, the death of dreams.
    2. Re:live-CD by m50d · · Score: 2, Informative

      Not necessarily. Just make it posix-compliant (it should be pretty close) and able to run X (which shouldn't require any core OS changes if you're not worried about acceleration, so shouldn't affect the ability of students to understand the main thing), and then you can compile any fancy gui you like for it, with no effect at all on the main system.

      --
      I am trolling
    3. Re:live-CD by Ed+Avis · · Score: 2, Informative

      I believe there has long been an X11 port for Minix-386 (an enhanced and slightly bigger version of Minix running in protected mode on 386 boxes).

      If you want a simpler windowing system you could try MGR.

      --
      -- Ed Avis ed@membled.com
    4. Re:live-CD by the+big+v · · Score: 3, Informative

      Long ago, in a land far-far away, a fellow at Bell Labs (IIRC, named Steve Uhler) released for the Sun3 (ie, 68030 based boxes) a windowing system called MGR. It was wickedly simple, and entirely network transparent. That is, if you could telnet/ssh/whatever to a remote system and open a shell, you could run graphical applications.

      The core was extremely small and simple. Unfortunately, the apps were few and far between, existing mostly of basic tools like a terminal and a "Mickey Mouse Watch" emulator. It would have filled your wish for a nice GUI which is extremely simple to implement. The major drawback was parts were writtin in 68030 assembler, making portability challenging.

      --
      The only ``intuitive'' interface is the nipple. After that, it's all learned.
  2. Phew by Anonymous Coward · · Score: 5, Funny

    Now we can all switch over from Linux, at least until Hurd ships.

    *pummeling ensues*

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

    1. 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...

    2. Re:Phew by ajs318 · · Score: 2, Informative

      No. You would be switching the kernel from Linux to Minix {or The Hurd}, whilst retaining a GNU userland. So you would be switching over to GNU/Minix, or GNU/Hurd.

      There are two parts to an operating system; the kernel {which provides a very low level interface to the computer's hardware} and the userland {which provides an interface to people}. The GNU project has created a viable userland, but is still having difficulty producing a kernel. Linus Torvalds -- then a student of Tanenbaum -- created Linux, originally a simple kernel which has now grown into something much bigger.

      When you type "ls" {which is a userland command} into the shell {another userland process, which accepts commands from users [by means of a call to the kernel], passes them to the process sheduler [another userland process ..... often having PID=1 and capable to bring down a system if inelegantly terminated] and sends back the output generated from the command}, the "ls" command is invoked. The kernel checks to see if there is an undamaged copy of "ls" in memory already, and if not loads one. The "ls" command passes a call to the kernel to read the directory listing from the disk, then generates some human-readable output from this data. The shell calls the kernel to write this information to the screen.

      It was when hackers wrapped a GNU userland around the Linux kernel that the magic really began to happen. Of course, you could just as easily wrap a GNU userland around the FreeBSD kernel, or a BSD userland around Linux, but GNU and Linux just hit it off the best.

      The delicious irony of all this is that Linux really was first created just to prove a point: that a monolithic kernel could sometimes outperform a microkernel {which Tanenbaum disputed}. Though apparently counter-intuitive, this is not really all that surprising when you think about it a little harder: certain Typical Real Life Operations are predictable enough to optimise very hard, and a monolithic kernel naturally supports harder optimisation than a microkernel at the expense of some flexibility. If the operations you optimise hardest happen commonly enough, then the performance gain can be significant. {Cf. if you live in an area with plenty of sunshine, waste disposal by landfill, and your water heater runs on almost any fuel besides electricity, then terry nappies will definitely be greener; whereas if your household waste is burned in a reasonably modern power plant, your water heater is electric and prevailing weather conditions are such that you need to use a tumble drier for the majority of your washing loads, disposables might work out better.}

      --
      Je fume. Tu fumes. Nous fûmes!
    3. Re:Phew by Anonymous Coward · · Score: 3, Informative
      So you would be switching over to GNU/Minix, or GNU/Hurd.

      True, but you overlooked the fact that I said, "I meant switch over from GNU/Linux!" [emphasis added]. You think you're contradicting me, but you're not.

      Linus Torvalds -- then a student of Tanenbaum

      Torvalds was never a student of Tanenbaum. Like many computing students the world over, myself included, he learned something about OS hacking using Minix, which is Tanenbaum's baby, but he wasn't a student of Tanenbaum. Tanenbaum teaches at Vrije Universiteit in the Netherlands; Torvalds went to Helsinki University in Finland.

      Linux really was first created just to prove a point: that a monolithic kernel could sometimes outperform a microkernel

      No, that's not right either. Presumably this fiction follows from your earlier fiction about Linus being a student of Tanenbaum. Tanenbaum's take on the matter is as follows.

      Before there was Linux there was MINIX, which had a 40,000-person newsgroup, most of whom were sending me email every day. I was going crazy with the endless stream of new features people were sending me. I kept refusing them all because I wanted to keep MINIX small enough for my students to understand in one semester. My consistent refusal to add all these new features is what inspired Linus to write Linux. Both of us are now happy with the results. [Source: Tanenbaum's FAQ]

      Go brush up on your research skills. We can work on your stylistic elements after you get your facts straight.

    4. Re:Phew by forkazoo · · Score: 2, Informative

      Ah, I think I understand this kernel/userland distinction. What you are saying is that Linux is just a kernel, and the GNU people make X11 and KDE, which is how people actually interact with the system. Oh, wait, no they didn't. They made ls and whatnot. Oooooh, they makes it surely worth noting loudly everytime I talk about my OS.

      To be fair, I do prefer the GNU userland to the BSD stuff. None of it would exst without gcc, which is probably the single most important Open Source project in existence. But, even so, I find the "GNU/Linux" issue to be just a bunch of whiny pedantry.

  3. Love this quote by strider44 · · Score: 5, Interesting

    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.

    1. Re:Love this quote by strider44 · · Score: 4, Interesting

      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. What is going to happen is that they will gradually take over from the 80x86 line. They will run old MS-DOS programs by interpreting the 80386 in software. (I even wrote my own IBM PC simulator in C, which you can get by FTP from ftp.cs.vu.nl = 192.31.231.42 in dir minix/simulator.) I think it is a gross error to design an OS for any specific architecture, since that is not going to be around all that long. Another one. Reading predictions from fifteen years ago is really quite entertaining, showing that even the smartest people can get things slightly wrong.

    2. 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...

    3. Re:Love this quote by E1ven · · Score: 4, Interesting

      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.

      And while it's not 15 years out, IIRC, the IA-64 architecture did actually use a software translator. (Although to be fair, I think that was more of a VLIW style chip)

      While I don't claim to understand the entire 15 year history of chip production perfectly, I wouldn't be so quick to dismiss his comments. He was more right than he was wrong.

      --
      Colin Davis
    4. Re:Love this quote by mklencke · · Score: 2, Informative

      > They will run old MS-DOS programs by interpreting the 80386 in software.

      Well, this is partly true :-) I use Dosbox quite often for playing old games, tinkering with TASM, etc.

    5. 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.
    6. Re:Love this quote by MikeFM · · Score: 2, Informative

      I tried it about 8 years ago so my experience is probably way outdated. Then it wouldn't even boot on about 7 of 10 of my PCs and the ones that did boot were pretty limited. I think it was QNX that had one feature I did find interesting though.. the ability to move your logged in GUI session from client machine to client machine without shutting apps down or logging out. It was a pretty cool feature similar to what we can do with VNC today but smoother. I'd love to see that work in X. (If that wasn't QNX then I have no idea what it was!)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    7. Re:Love this quote by schotter · · Score: 2, Interesting

      So much of FreeBSD's kernel was shoehorned into XNU that it's doubtful you could call it a microkernel anymore -- they don't usually contain networking stacks and firewalls and things, or at least that how much theory I remember about them. I've seen people call XNU a Frankenkernel though.

    8. Re:Love this quote by ChrisDolan · · Score: 2, Informative

      How about Mac OS X and Windows NT/2000/XP? Those are microkernel-based architectures. OS X uses Mach under the hood. Some BSD variants also support running on otop of Mach.

    9. Re:Love this quote by DrXym · · Score: 3, Informative

      QNX Neutrino is an example of a microkernel which doesn't suck. In fact QNX sees heavy use in realtime environments, where both space and performance matter a great deal. Some applications of QNX put considerable importance on the thing not collapsing in a heap after a failure of some part.

    10. 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.
    11. Re:Love this quote by wilsone8 · · Score: 3, Informative

      The original Windows NT architecture might have been a microkernel. But ever since the 4.0 version where Microsoft pulled the video subsystem into kernel space, there is no way you can still call that a microkernal. And they have only been pulling more and more into kernal space (for example, large portions of the IIS 6.0 HTTP processor actually run in kernel space on Windows Server 2003).

      --
      The real problem is not whether machines think but whether men do. - B.F. Skinner
    12. 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.)

    13. Re:Love this quote by naasking · · Score: 3, Informative

      The biggest problem seems to be that that extra layer of abstraction slows things down (which makes sense really). [...] If heavy usage servers can be run as virtual machines in Xen then why not use a microkernel too?

      Funny you should mention Xen, because it's essentially a microkernel running other kernels as protected processes.

      So. Any examples of microkernel OS's that handle heavy server load, function well as a desktop, and can handle multimedia tasks like gaming?

      Other posts mention QNX, so I won't bother.

      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).

      You'd be surprised. There's a lot of vested interest in the current programming paradigms and existing codebase. A principled microkernel architecture might just be incompatible with POSIX, which eliminates a large swath of portable and useful software.

      If you want performance, you need look no further than L4, EROS (and it's successor CapROS). For a principled design, I'd go with EROS/CapROS or the next generation capability system Coyotos (who's designers are trying very hard to implement POSIX while maintaining capability security).

      Something useful right now, doesn't exist as far as I know.

    14. Re:Love this quote by ChrisDolan · · Score: 2, Informative

      Good point. Both OS X and NT+ do violate the microkernel philosophy in the name of performance (Wikipedia calls them Hybrid kernels). However, they differ significantly from monolithic kernels like Linux in that third party drivers are by default outside of the kernel instead of inside.

      So perhaps they're millikernels? :-)

    15. Re:Love this quote by Sentry21 · · Score: 4, Informative

      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).

      The OS X kernel is a different situation. Darwin is a mixture of microkernel and monolithic, as is (for example) Linux. In Linux, a lot of things (like device configuration, etc.) get done in userspace by daemons using a kernel interface, which means the kernel need only contain the code necessary to initialize the device. Darwin's kernel (xnu), however, is a more complex design in terms of overall design (though the internals may be less complex - I'm not a kernel developer), and is derived from Mach 3.0 and FreeBSD 5.0.

      Mach provides xnu with kernel threads, message-passing (for IPC), memory management (including protected memory and VM), kernel debugging, realtimeness, and console I/O. It also enables the use of the Mach-O binary format, which allows one binary to contain code for multiple architectures (e.g. x86 and PPC). In fact, when I installed OpenDarwin quite a while ago, all the binaries that came with it were dual-architecture-enabled, meaning I could mount the same drive on PPC or x86 and execute them (which is kind of neat).

      The BSD kernel provides (obviously) the BSD layer, as well as POSIX, the process model, security policies, UIDs, networking, VFS (with filesystem-independant journalling), permissions, SysV IPC, the crypto framework, and some primitives.

      On top of all that is IOKit, the driver framework. It uses a subset of C++, and the OO design allows faster development with less code, and easier debugging as well. It is multi-threaded, SMP-safe, and allows for hot-plugging and dynamic configuration, and most interestingly of all, some drivers can be written to run in userspace, providing stability in the case of a crash.

      Now, as to your comment about performance, it is possible you are referring to the tests done using MySQL a while back, which shows MySQL performance as being (as I recall) abysmal compared to Linux on the same hardware. The problem with that test is that MySQL uses functions that tell the kernel to flush writes to disk. These functions are supposed to block so that the program can't continue until the writes are done and the data is stored on the platter. On OS X, this is exactly what happens, and every time MySQL requests data be flushed, the thread doing the flushing has to wait until the data is on the platter (or at the very least, in the drive's write cache). On Linux, this function returns instantly, as Linux (apparently) assumes that hard drives and power supplies are infallible, and obviously if you're that concerned about your data, get a UPS.

      It should be noted that MySQL, in the online manual, strongly recommend turning that feature off for production systems, forcing Linux to block until the write is completed, and lowering performance. I would be interested to see a benchmark comparing the two with this configuration.

      This discrepancy in the way Linux handles flush requests vs. the way OS X handles them gives a noticable drop in performance in a standard MySQL situation. I am told that the version that ships with OS X Server 10.4 is modified so as to increase performance while keeping reliability. Unfortunately, I cannot confirm this at this point.

    16. Re:Love this quote by iabervon · · Score: 2, Interesting

      It turns out that, in order to get good RISC performance, you need to design a new architecture every few revisions. The RISC instruction set that the P4 uses is different from the P3, which is different from the P2, and so forth. The benefit of the way Intel does things is that, since they're emulating a CISC instruction set on a RISC core, they can switch to emulating the same CISC instruction set on a better RISC core, and nobody has to be told about the new architecture. The translation layer can optimize the input for the chip it's running on, and take advantage of things like how many registers the chip actually has and how many branch delay slots it uses. And it turns out to be easier to translate CISC into RISC than RISC into other RISC, because you've got a better idea of what the code is actually doing.

    17. Re:Love this quote by po8 · · Score: 2, Informative

      Cheriton's V System didn't suck. I used it in a commercial project in the late 1980s and loved it; it met all of your criteria. If Cheriton had open-sourced it, I think it would have had a huge impact. But he didn't, and for whatever reason it hasn't.

    18. Re:Love this quote by Samrobb · · Score: 2, Interesting
      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.
      I'm surprised nobody's mentioned this yet... there was an article in the latest C/C++ User's Journal titled Interprocess Communication & the L4 Microkernel. Made for interesting reading. The main idea seems to be that traditional microkernel designs spend too much time and effort having the kernel validate messages.
      --
      "Great men are not always wise: neither do the aged understand judgement." Job 32:9
    19. 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.

    20. 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.

  4. Honest question by Frogbert · · Score: 4, Interesting

    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?

    1. Re:Honest question by TheMMaster · · Score: 5, Interesting

      more like your BSD's in comparision to Linux :)

      all three are more or less posix compliant operating systems, which means that most software should run on both.

      Some software that requires some functionality not found in posix will need to be ported sperately. Like xorg for instance, but, most of the gnu tools will probably run (probably) and there is the question what c library it uses, if it uses its own, there are going to be a whole myrad of other interesting problems, if it uses glibc or bsd's libc, then it's easier.

      in other words :"more like your BSD's in comparision to Linux"

      --
      Fighting for peace is like fucking for virginity
    2. Re:Honest question by shadowknot · · Score: 5, Informative

      Linus Torvalds was kind of inspired by minix to create a more useable and extensible Open Source OS and the original source for the Linux Kernel was written using a minix install. Check out the DVD of RevolutionOS for a detailed history.

    3. Re:Honest question by /ASCII · · Score: 5, Informative

      Linus was never Tannenbaums student. They met online in a classic flamewar where Tannenbaum delivered such classic comments as 'If you where my student, you wouldn't get a very high grade'. But Linux was born out of gripes Linus had with Minix.

      --
      Try out fish, the friendly interactive shell.
    4. Re:Honest question by Anonymous Coward · · Score: 3, Funny

      Could you please forward the contact information for this Andy Tanenbaum person to me at the address below. I would like to have a word with him. Thanks.

      355 South 520 West
      Suite 100
      Lindon, UT 84042

    5. Re:Honest question by leuk_he · · Score: 2, Informative

      GNU/Linux is somehow compatible with minux.

      They both run most of the gnu toolset. Note that minux has more of a bsd like license. "Redistributions in binary form must reproduce the above copyright notice...". Note that the minux distirbution contains a lot of the (GPL) gnu tool.

    6. Re:Honest question by TDRighteo · · Score: 5, Informative

      Ah, no, Linus was definately not Tanenbaum's student. Quite aside from the fact that Tanenbaum taught in the Netherlands and Linus studied in Finland, we couldn't have this quote if he was:

      I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)
      --- Andy Tanenbaum

      However, Linus did admit that at least one academic from his own university shared Tanenbaum's opinions, and thus he was unlikely to be getting high marks anyway. ;-)

      As has been pointed to before, you can find an abstract of the famous "Linus vs Tanenbaum" posts to comp.os.minix here.

    7. 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.

    8. Re:Honest question by arkane1234 · · Score: 2, Informative

      That is why Linux original used ext2 (same fs as minix)

      No, Minix used (uses? not sure what the "new" minix uses) the minix filesystem, which was only able to address I think it was 32mb of space.
      Linux had the EXT2 filesystem at a later date, migrating away from the Minix filesystem. If you compile your kernel, you'll still see the option to have the minix filesystem functionality compiled in. (or modularized)

      I still remember having to decide if I wanted to go with the "new" ext2 filesystem, which will not be compatible with older kernels. *g* Back then, that was a big deal, or so it seemed.

      Btw, saying that Minix and Linux are "trying" to be like Unix is about like saying that Hyundai and Acura are alot like Toyota because they are trying to be cars.

      --
      -- This space for lease, low setup fee, inquire within!
  5. About Tannenbaum. by Anonymous Coward · · Score: 3, Informative

    Tannenbaum's home page:

    http://www.cs.vu.nl/~ast/

    Yes, it's the same guy who wrote the book for your networking course.

  6. 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 TrappedByMyself · · Score: 4, Funny

      Your contributions have been much appreciated.

      Yes, thank you. My sadistic operating systems professor used your textbook. Your name still gives me nightmares to this day.

      --

      Help me take back Slashdot. When did 'News for Nerds' become 'FUD and Conspiracy Theories for Extremist Nutjobs'?
    2. Re:Thank you, Dr. Tanenbaum. by E1ven · · Score: 2, Interesting

      He also deserves praise for his work on the 2004 Election. He updated a map every day, using poll data from a number of sources, and mapping it against the electoral values of each state.
      It was a tremendous site, and I look forward to his coverage of the 2006 Senate.

      --
      Colin Davis
    3. 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.
    4. Re:Thank you, Dr. Tanenbaum. by tchuladdiass · · Score: 2, Interesting

      Actually, your analogy works perfect for this. Your Ford Hybrid is comprised of muliple components, but the main part that people see and feel is made by Ford, so it is a Ford, even though the kernel (hybrid drivetrain) is Honda.
      In the case of a typical Linux-kernel based distribution, the bulk of what you interact with (if you take out the GUI), i.e., the part that people see and feel (bash, cp, ls, gcc, emacs (ducks) is all GNU.
      Of course, I've left out anything related to the GUI above. To the old-timers, the GUI is nothing more than the equivilant of leather seats in your hybrid suv, but to others it is the equivalant to the Shelby modifications on a 67 Ford Mustang.
      Where am I going with this? Well, I think a Linux system should actually be refered to by the name of the distribution, i.e., you have a Red Hat OS, a Debian system, etc. There is a lot more that goes into putting together a distribution than just throwing together a kernel and a bunch of utilities. The only thing that should actually be called a GNU or GNU/Linux system is a distribution assembled and published by the GNU folks themselves.

  7. Minix on a modern machine? by Achra · · Score: 3, Interesting

    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.
    1. Re:Minix on a modern machine? by Inominate · · Score: 4, Informative

      It's not relevant as an actual operating system. It's relevance lies in it's use in teaching operating system design. Minix is a very simple, yet complete OS.

    2. Re:Minix on a modern machine? by E1ven · · Score: 4, Informative

      Historically, that's been true, but the 3.0 version seems to be re-targetted toward being a more functional OS as well.
      While I'm sure it's still primarily intended for Teaching, He's focusing on reliability as the selling point of the new version-
      It's got an advantage over Linux in that all drivers run in user-space. That means drivers can't bring down the whole kernel. Given that most kernel bugs come from driver implementations, this is a very nice feature.

      "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."

      --
      Colin Davis
  8. for those that don't know by Anonymous Coward · · Score: 5, Funny

    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.

    1. Re:for those that don't know by Anonymous Coward · · Score: 3, Funny

      Whoosh!

    2. 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...

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

      Thankyou for such an enlightening and fact-laden post. I think I'll add it to Wikipedia.

  9. Is there a VMWare disk image? by nmoog · · Score: 3, Interesting

    That'd be cool to give this a bash with our shiny new VMWare players!

    1. Re:Is there a VMWare disk image? by nmoog · · Score: 3, Funny

      Mental note... RTFA then post... VMWare Disk Image located on their homepage!

      Slashdotted but. Any mirrors?

  10. But... by orzetto · · Score: 2, Funny

    ... 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
    1. Re:But... by biryokumaru · · Score: 2, Informative

      Why, yes, yes it does.

      --
      When you're afraid to download music illegally in your own home, then the terrorists have won!
  11. 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.

  12. Re:Mirrors, Mirrors on the wall by berryvanhalderen · · Score: 2, Informative

    Please don't, as this is also a nice gathering tool for measuring the slashdot effect and see if our replicated web server is holding out. We are using a dozen machines over the world to host the content.

  13. The code is nice by DavidNWelton · · Score: 4, Interesting

    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

  14. remembering the old tanenbaum vs linus debates.. by hkultala · · Score: 2, Interesting

    .. so does it finally have a multithreaded filesystem?

  15. More reliable by samjam · · Score: 2, Interesting

    "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

  16. Old laptops by Kim0 · · Score: 2, Interesting

    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

    1. Re:Old laptops by Vo0k · · Score: 4, Informative

      NetBSD.
      I've found myself in similar situation once, Linux or Solaris wouldn't fit with reasonable amount of useful stuff on a 200M harddrive of an old SUN. Then I managed to fit most of the NetBSD distro, with 2 desktop managers, Netscape Navigator (pre-Moz times), bunch of servers for running a remote diskless workstation and still managed to cut 40M of diskspace for swap memory for that remote workstation :)

      --
      Anagram("United States of America") == "Dine out, taste a Mac, fries"
    2. Re:Old laptops by Tx · · Score: 2, Interesting

      Windows 98 can be shrunk to ~4MB, and has plenty of drivers. And I kid thee not, I have seen Windows 95 used as an embedded OS in some very expensive products. Scary.

      --
      Oh no... it's the future.
  17. X11 port? by CyricZ · · Score: 2, Interesting

    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.
  18. 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$$.

  19. 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 idlake · · Score: 2, Informative

      At issue isn't whether Tanenbaum is right or whether he is wrong, at issue is his methdology. Tanenbaum is unscientific: he focuses on a single variable and ignores all the others; he fails to even state his claims properly, let alone support them with data; and he fails to justify a novel approach with a detailed empirical analysis of prior work. Tanenbaum just tinkers and makes grand claims. That's why he should receive a failing grade.

      As for microkernels being new, they are not. They have been around for at least a quarter of a century (arguably longer), and they have received more than their fair share of attention and study. There have been many other ideas in OS design since then; if anything deserves attention, it is them.

      Perhaps the most obvious and straightforward idea for how to improve reliability and decrease development costs for operating systems is to start applying modern, proven software development technologies: object-oriented programming languages, tools, design methodologies, safe runtimes, reflection, garbage collection, etc. The hypothesis that doing so improves reliability is far more plausible than Tanenbaum's hypothesis that we can stick with using ANSI C if we only use some hare-brained scheme of dividing everything up into separate address spaces. And, in fact, there is actual experimental evidence that using safe runtimes with monolithic kernels is more efficient for fault isolation than using unsafe runtimes with microkernels.

    2. Re:Tanenbaum gets a failing grade by 0xABADC0DA · · Score: 5, Interesting

      It's because traditional microkernels solve the wrong problem. The goal is reliability and flexibility (user-space drivers and whatnot). The wrong problem is using separate memory spaces to achieve the goals. They are just too clumsy... they are ridiculously slow, are coarse grained (4k page is the smallest unit), and you cannot apply a filter to memory accesses.

      If the microkernel was combined with a safe language, like Java or C#, then the problems would go away. You wouldn't need to change the page table, so that massive penalty is not there. Accessing memory through a memory object would allow any arbitrary range (down to single bits). You could also apply a filter, so the driver could implement the commands to the disk but the hardware access object would only allow valid use of the bus; this wouldn't be perfect but would greatly increase reliability over microkernels, which are already much more reliable than monolithic.

      And speed? It could be faster than C-based code for various reasons (using the dirty bit to accellerate garbage collection, no context switches, etc). It's not like there isn't precendent: the berkely packet filter is actually an interpreted bytecode that is run inside the kernel. It has a number of restrictions to ensure safety (like only branching forwards), but basically in all unix operating systems it is a giant switch statement that interprets the bytecode. This is plenty fast enough to handle the packets, orders of magnitude faster than sending the packets into user-space.

      If Tanenbaum really cared about reliability or safety or simplicity he would make a managed microkernel, not more of this C/asm based crap.

    3. Re:Tanenbaum gets a failing grade by Salamander · · Score: 2, Interesting
      Tanenbaum is unscientific: he focuses on a single variable and ignores all the others; he fails to even state his claims properly, let alone support them with data; and he fails to justify a novel approach with a detailed empirical analysis of prior work.

      Bullshit. He has written whole books on the subject, stating his claims and supporting them with data more than you will ever do in your entire lifetime.

      As for microkernels being new, they are not. They have been around for at least a quarter of a century

      Yes, that's about how long ago Tanenbaum suggested them. Criticizing Tanenbaum's idea as "not new" when he's the very one who makes it quite old is just ridiculous.

      Perhaps the most obvious and straightforward idea for how to improve reliability and decrease development costs for operating systems is to start applying modern, proven software development technologies: object-oriented programming languages, tools, design methodologies, safe runtimes, reflection, garbage collection, etc.

      Object-oriented programming, tools, etc.? Very useful in an OS context, where dispatch tables for things like device drivers and filesystems predate the languages you probably use. Design methodologies? Obviously useful, and tautologically so, but what an OS designer considers a good methodology might not be the same as what some UML/pattern masturbator thinks is good. Safe runtimes? Yeah, that would suck for performance even more than microkernels are claimed to (incorrectly in light of examples such as L4 and QNX). Reflection? Simply useless in this context. Garbage collection? Ridiculous.

      Have you ever worked on operating systems? It sure doesn't look like it. 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. Kernels and embedded systems are fundamentally different. Some of what you suggest might provide valid alternatives to the problem of what to do after code has failed, but none of it addresses the issue of how to prevent it from failing in the first place. Part of the point of microkernels is to reduce dependencies and make code more maintainable; it's a specific application of good old modularity, just as OOP is a different application of that same age-old concept. All of the things you mention are essentially orthogonal to microkernel vs. monolithic. You could implement every one of your ideas in either context, but I guarantee that a microkernel without reflection and garbage collection would be more maintainable and thus (over time) more robust and performant than a monolithic kernel with them. Stick to wimpy user code. Leave OS design to those with experience in that domain.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    4. 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.

    5. 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.
    6. Re:Tanenbaum gets a failing grade by naasking · · Score: 3, Interesting

      Tanenbaum is unscientific: he focuses on a single variable and ignores all the others; he fails to even state his claims properly, let alone support them with data; and he fails to justify a novel approach with a detailed empirical analysis of prior work.

      Even if what you say is true, there are plenty of others making very detailed analyses of microkernel architectures, and they have reached many of the same conclusions: that microkernels are feasible, useful, and practical, if done correctly. The real problem is that microkernels have a stigma attached to them, and because they are hard to properly design and implement. As such, only researchers have traditionally worked on them, and we all know researchers are not going to develop a full-featured system like Linux. Hopefully, that will change with CapROS.

      See my other posts in this thread:
      Performance
      Examples of microkernel sytems

    7. Re:Tanenbaum gets a failing grade by Salamander · · Score: 4, Interesting

      Experience with Mach, Hurd, Darwin, and Minix shows that this is clearly not the case: many common microkernels have proven to be more difficult to extend and maintain, to be less robust, and to perform worse than monolithic kernels.

      How unscientific of you, to draw such an unrelated conclusion from that data. The operating systems you have mentioned have been less prevalent in the marketplace. They have had smaller numbers of users and, more importantly, engineers working on them than, say, Linux. That does not in any way demonstrate that they are more difficult to extend and maintain, as there are plenty of other reasons for what has happened in the market. How do you know that they wouldn't be even more marginal than they are had they been designed as monolithic kernels, or that Linux wouldn't be even more successful if it had been designed as a microkernel? What actual evidence do you have to say otherwise? None.

      Microkernels are an attempt to overcome the problems with unsafe, static runtimes and languages by putting components into separate address spaces

      Wrong. Shared vs. separate address space is an implementation choice; microkernel vs. monolithic is a design choice. That microkernels are typically implemented using separate address spaces is irrelevant. If you had actually worked in operating systems you'd also know that totally shared vs. totally separate are not the only options for address-space relationships. Linux's process/thread/address-space model is based (without attribution, naturally) on something called nUnix, which Dave Mitchell implemented and I inherited at Encore before Linux existed. One of its key ideas is/was that parts of a process could be shared without having to share everything. SysV's shared memory goes back even further than that. Even within the kernel one can implement some forms of inter-component memory protection without resorting to completely separate address spaces. Been there, done that. I was the one who wrote code at Encore to let two operating systems run side by side in the same box, on separate sets of processors with separate memory and exception vectors and - most importantly - so that a memory fault in one wouldn't take the other down. That was done in a slightly different context (one was an RTOS and the other a GPOS) but the same techniques could just as easily be applied to a microkernel.

      If you have a safe, dynamic runtime, you don't need a microkernel architecture.

      And how is that "safe, dynamic runtime" not itself a microkernel?

      Among software developers, people like you are among the last holdouts that think it's OK to write millions of lines of C code with ad-hoc self-invented object-like dispatch tables and manual storage management.

      Yeah, I'm such a dinosaur, working here in what is acknowledged as one of the leading-edge areas of the storage industry, implementing a highly available distributed system. Riiight. What do you do that anyone should remember you for, Mr. Expert? In actual fact I don't think it's a good idea to write "millions of lines of C..." when one has a choice. If I were to design another microkernel it would be every bit as current in terms of software-engineering methodology as anything you've ever done, but that doesn't mean it would be implemented as a "managed code" environment. I understand the concept of informed tradeoffs as opposed to mere uninformed dogma. I produce working and shipping systems based on that. Come back when you've done likewise.

      Instead of making it easier for people to modify the kernel, they try to keep it some obscure art form.

      OS development doesn't need to be made hard; it's inherently hard. In an OS, everything you do has to be done with an eye toward reentrancy and concurrency, performance and minimal resource consum

      --
      Slashdot - News for Herds. Stuff that Splatters.
    8. 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.
  20. Recollections by awol · · Score: 4, Interesting

    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."
    1. Re:Recollections by i_am_not_a_bomba · · Score: 2, Funny
      Cruising the newsgroups was pretty much the done thing at the time

      Were you wearing an onion on your belt?

  21. Tannenbaum still ahead! by Vo0k · · Score: 4, Funny

    See? It's Minix 3 already, while Linux is still in 2.x! ;)

    --
    Anagram("United States of America") == "Dine out, taste a Mac, fries"
  22. VMware image. Was :live-CD by JanMark · · Score: 4, Informative

    Not only that, there is also a VMware image!

    --
    -- (:> jms cs.vu.nl (_) --"---
  23. Educational standards on Slashdot... by MosesJones · · Score: 5, Interesting

    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
  24. It's all BSD licensed by david.given · · Score: 4, Informative
    It's worth pointing out that one of Minix's great selling-points is that it's all BSD licensed --- including the tool chain. It doesn't use gcc by default; its native compiler is the BSD licensed Amsterdam Compiler Kit.

    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!

    1. Re:It's all BSD licensed by Skjellifetti · · Score: 2, Informative

      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.

      Must be a lot of added bloat in there. Minix 1.5 used to run very happily on a PC XT w/ 640K RAM and a 40 MB disk. It would run on a minimal machine w/ as little as 256K RAM and 2 360K floppies. I haven't booted it in a century or so, but I still have an XT with Minix installed on it and a box of 20 or so 360K floppies with binaries and source.

      In fact, the lack of 386 memory management mode in Minix was one of the prime reasons that Linus started writing Linix. Tanenbaum was very reluctant to add features such as 386 mode and swapping. And IIRC, the Minix version on my XT did not even have a hard drive boot loader and required a 360K floppy disk to boot.

      One other point that I always wondered about w/ Minix was the security claims that Tanenbaum made for Minix 1.5. Again, IIRC, he offered a Dutch dollar for any new security bugs found. This always amused me since the 8088 has no memory management security and it is therefore trivial to write multitudes of user programs that could conquer the world. I don't suppose those counted, though. I assume that a 386 version that is running in 386 mode really is secure and not just pretend secure like 1.5.

    2. 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.

  25. 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?

  26. Re:Would be nice if... by MyHair · · Score: 2, Informative

    http://www.mklinux.org/

    Not sure how current it is, and it might be for 68000-based CPUs if I'm not confusing it with another project.

  27. Device drivers: Andrew is living on denial. by MROD · · Score: 5, Interesting

    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!"
    1. Re:Device drivers: Andrew is living on denial. by TA · · Score: 2, Interesting
      > 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?

      The web page says that you have to keep a copy of the driver in RAM ...! The whole reincarnation concept is simply a gigantic hack and nothing else.

    2. Re:Device drivers: Andrew is living on denial. by justins · · Score: 2, Interesting
      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).

      If by "him" you mean Andy Tanenbaum you probably ought to give him the benefit of the doubt, as his position is being represented by some random slashdot person. Maybe just email him.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
  28. user mode device drivers by soldack · · Score: 3, Interesting

    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
  29. No source? by Markus+Registrada · · Score: 2, Interesting

    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?

    1. Re:No source? by david.given · · Score: 2, Informative
      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?

      Yes, it is --- it's on a Minix filesystem tucked away at the top of the ISO filesystem. If you boot the CD, you'll get a complete Minix LiveCD based system, with all the source on it.

      If you want to access it from Linux you'll need to persuade Linux to parse the partition table on the CD, which it normally won't do --- the easiest way to do this is to dd the whole lot off the CD and onto a scratch drive. Linux will then see the partition table, and you'll be able to find and mount the Minix filesystem.

  30. Re:Tanenbaum blew it by tchuladdiass · · Score: 2, Informative

    Actually, you could modify it. You just couldn't distribute modified versions of it. You could, however, distribute patches against the original code as much as you wanted.
    As to the reason for this, Andy T. had wanted to make the source widely available, but at that time (1990) there wasn't wide-spread access to the Internet (you had to be at a university that was on it, which many weren't, or you had to work for at a government shop). So the only choice was to have it published in the traditional maner (in this case, through Prentice Hall). But the publisher's at that time would only publish something if, and only if, they were exclusive. Andy fought hard to even get the publisher to allow "shadow copies" of the software (i.e., an instructor could give out copies to his students, or you could give out up to around 5 copies from a purchased copy).
    If the Internet was more in full swing at the time, where you didn't need a traditional publisher, then I'm sure that things would have been different.

  31. agreed 100% by idlake · · Score: 3, Interesting

    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.

    1. Re:agreed 100% by Salamander · · Score: 2, Informative
      Perhaps you would care to define what you consider those "microkernel design principles" to be? Be sure to contrast them against object oriented programming, active objects, and message passing.

      Oh, I get it. I'm supposed to distinguish microkernels from other things only in terms of aspects you dislike, allowing you to appropriate anything you do like for "your side" of the debate? Sorry, not falling for it. As I said earlier, both microkernels and OOP are variants of the same basic concept: modularity. Like one, like both. Hate one, hate both. Making arbitrary distinctions for the sole sake of hyping one and dissing the other is dishonest.

      Monolithic kernels written in languages like Java make it impossible for components to "twiddle" each other's data

      Then such a kernel's not very monolithic, is it? Idiot. What do you call that piece of code that takes care of loading classes and dealing with reflection and garbage collection and other forms of inter-component mediation and safety enforcement in your microkernel-less utopia, Mr. Smartass? Oh, right. It's a microkernel. Sheesh.

      Conversely, microkernels frequently "twiddle" each other's data--they just do so by sending requests to do so.

      Oh, so Java objects can't exchange messages, or implement trivial getter/setter methods? Yeah, right. The kind of twiddling you mention is trivially possible in any language or environment, whether it be C or Java or Linux or QNX. I've even written about that problem. . .twice, and both before you showed up to be educated. Attributing a problem only to one paradigm when it applies to both is, again, dishonest.

      You're just lucky I'm not charging you my usual hourly rate for being your own private tutor. You couldn't afford it, and will never be able to while you have more attitude than knowledge.

      --
      Slashdot - News for Herds. Stuff that Splatters.
  32. 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.

  33. Answer from someone who was there by metamatic · · Score: 3, Interesting

    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
    1. Re:Answer from someone who was there by kl76 · · Score: 4, Interesting

        It started off as Linus's weekend hack to build a 386-specific replacement kernel


      There was already a 386-specific 32-bit version of the MINIX kernel around at the time; it was called MINIX-386, unsurprisingly enough, and was widely used in the MINIX hacker community.


      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.


      There wasn't ever any MINIX code in Linux - there couldn't have been, as MINIX was a commercial product at the time. What there was, was plenty of minor MINIX influences on the design (lack of raw disk devices, "kernel", "fs" and "mm" subdirectories in the kernel source, Minix-compatible on-disk filesystem format, major/minor device numbers etc.) but no major ones (ie. the microkernel paradigm).


        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.


      Well, yes, you had to pay for MINIX, but there were no free OSs to speak of in those days. The reason MINIX seemed to disappear was that most of the MINIX hacker types were using MINIX because it was the closest thing to real UNIX they could afford. Once Linux appeared, as open source, with its simple goal of being a UNIX clone (rather than a model OS for teaching purposes, as MINIX was meant to be), it was inevitable that most of the MINIX hacker community would migrate en masse.
    2. Re:Answer from someone who was there by metamatic · · Score: 2, Informative

      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.

      There wasn't ever any MINIX code in Linux

      Linux-the-kernel never contained MINIX code, but Linux-the-OS was Linux-the-kernel running inside an OS made of MINIX code. A new Linux-the-OS was made by ripping the MINIX bits out and replacing them with the OS bits from GNU and newly written stuff as necessary.

      And I don't remember ever hearing about MINIX-386--but then again, as I mentioned, I wasn't using x86 hardware...

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  34. Re:Thank-you "It's fast enough" Lemmings by naasking · · Score: 3, Interesting

    All else equal, the faster code is better.

    Sure, but all things are not equal, and an improvement that obviously improves performance, often doesn't. OS programming isn't quite the same as pure user-level programming, so optimizations aren't so clear-cut.

    People often assume that monolithic kernels are faster than properly designed microkernels due to less supervisor-user context switching, but this often isn't the largest cost in modern systems. For instance, monolithic kernels can't/don't schedule their interrupt handling through the common scheduler, so they're nearly impossible to use for realtime.

    Reliability, flexibility and security is also dramatically improved in decomposed microkernel designs, so really, suffering a 5-10% performance penalty to gain an extra few 9's in reliability (99.99% uptime as opposed to 99%) is often worth it IMO.

  35. 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.

  36. System Requirements by mnmn · · Score: 3, Interesting

    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
    1. Re:System Requirements by argent · · Score: 4, Informative
      16MB ram in the requirements... all I can say is WOW.
      What hardware do I need to run MINIX 3?<br>
      You need an Intel 386 or higher with 4 MB of RAM, an IDE hard disk with 100 MB of free disk space, and an IDE CD-ROM for booting.
  37. Debugging a high performance messaging system by RevMike · · Score: 3, Informative
    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).

    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.

  38. Globule? by Thuktun · · Score: 4, Funny

    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."

  39. Re:BeOS and AmigaOS are microkernels by LocalH · · Score: 2, Funny

    The only thing worse than an Amiga zealot is an anti-Amiga zealot.

    --
    FC Closer