Slashdot Mirror


MINIX 3.2 Released With Some Major Changes

An anonymous reader writes "MINIX 3.2.0 was released today (alternative announcement). Lots of code has been pulled in from NetBSD, replacing libc, much of the userspace and the bootloader. This should allow much more software to be ported easily (using the pkgsrc infrastructure which was previously adopted) while retaining the microkernel architecture. Also Clang is now used as a default compiler and ELF as the default binary format, which should allow MINIX to be ported to other architectures in the near future (in fact, they are currently looking to hire someone with embedded systems experience to port MINIX to ARM). A live CD is available." The big highlight is the new NetBSD based userland — it replaces the incredibly old fashioned and limited Minix userland. There's even experimental SMP support. Topping it all off, the project switched over to git which would make getting involved in development a bit easier for the casual hacker.

39 of 120 comments (clear)

  1. Git? by ledow · · Score: 2, Interesting

    Git? Seriously? So the system developed by the primary "enemy" (or so it's portrayed) of the designer of MINIX (and most vocal opponent of the way MINIX operates) is used to develop MINIX itself now, presumably because "it works" even if it's not architecturally perfect?

    I can't decide if that's incredibly ironic, or a wonderfully beautiful illustration of Open Source.

    1. Re:Git? by Anonymous Coward · · Score: 2

      I don't think it's ironic, I don't judge a hammer by who created it, and git is just a hammer in a different context.

    2. Re:Git? by Noryungi · · Score: 5, Funny

      That was in 1992. Get a life.

      Seriously, though, Torvalds vs Tanenbaum is so 20th century.

      --
      The right to offend is far more important than the right not to be offended. (Rowan Atkinson)
    3. Re:Git? by renoX · · Score: 2

      Git is a userspace application, Tanenbaum and Torvalds disagree about the best way to design a kernel, that's a totally different topic..

      > I can't decide if that's incredibly ironic, or a wonderfully beautiful illustration of Open Source.

      Neither, just a pragmatic decision very similar to MINIX's reuse of NetBSD's userland.

    4. Re:Git? by Errtu76 · · Score: 2

      I don't think Git is used to _develop_ MINIX. If anything, it's used to keep track of code changes.

      But I understand your point though. I think it's just using the right tools to get the job done, no matter who developed them.

    5. Re:Git? by Half-pint+HAL · · Score: 4, Funny

      Git is a userspace application, Tanenbaum and Torvalds disagree about the best way to design a kernel, that's a totally different topic..

      That's 20th century thinking, you dinosaur. In the 21st century, you cannot disagree with someone without hating them and everything they stand for. I am now obliged to call you an idiot for disagreeing with me, or in modern parlance: "being wrong". w0t??? U iz a bag of FAIL!!!! I bet you're a communist who votes for pinkos!!!

      Welcome to the Century of the Misanthrope.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
  2. Neat by laffer1 · · Score: 4, Interesting

    I see an interesting convergence of some technologies happening. clang is on the roadmap for several BSDs and now is default on Minix. NetBSD tools were pulled in which are also used in part on several other systems. The Minix folks will probably upstream fixes to NetBSD as well as make improvements to llvm.

    It's great to see alternatives to GNU tools gaining ground. It's the only logical choice for embedded systems due to licensing. We're going to need to step up our game and make our own tools with threats like Wayland coming.

    1. Re:Neat by Sodki · · Score: 3, Interesting

      >It's great to see alternatives to GNU tools gaining ground. It's the only logical choice for embedded systems due to licensing. We're going to need to step up our game and make our own tools with threats like Wayland coming.

      What threat does Wayland poses? It's MIT licensed. And X.org isn't going anywhere anytime soon.

    2. Re:Neat by arkane1234 · · Score: 2

      For those of us that don't know what Wayland could be, might you freshen our feeble minds with it's definition?

      You'll have to forgive us peons.

      --
      -- This space for lease, low setup fee, inquire within!
    3. Re:Neat by Hatta · · Score: 4, Interesting

      clang is on the roadmap for several BSDs and now is default on Minix.

      It will be nice if people start to realize that their code needs to compile on things other than GCC. These days you can't even compile a lot of software if you have a different version of GCC than the author did.

      --
      Give me Classic Slashdot or give me death!
    4. Re:Neat by serviscope_minor · · Score: 4, Interesting

      For those of us that don't know what Wayland could be, might you freshen our feeble minds with it's definition?

      It's a massive FUD attack designed to replace Xorg with a less featureful but shinier replacement which also makes a number of the same mistakes that were made by OSX and Windows, rather than keeping the better design of parts of Xorg. On the other hand, it's something new which will keep the developers who have got bored with Xorg happy.

      Wayland won't feature remote windowing. The best we can hope for is a pixel-scraper which dumps compressed bitmaps over the network.

      Wayland seems to feature client side decorations. This has the advantage that every toolkit will give subtly different window decorations, hung applications will have immovable windows and it will be difficult to imlement global policies such as snap-to-window or snap to edge etc.

      Wayland also solves a host of completely unrelated problems (apparently). See, one problem with Xorg is tearing in video. I don't have this problem on any of the intel chipsets I have, so it's clearly not an Xorg problm but a problem with drivers for other chipsets. Wayland people claim that wayland will solve this, apparently by magically dealing with the undocumented chips and proprietary blobs from other vendors.

      Wayland does reduce the latency for compositing windowmanagers by removing a number of program->xorg->WM->xorg messages. Given that these are coming at a rate of positively 10s per second from your mouse, this is terribly important since Linux can't deal with high data rate, low latency messages.

      About the only use-case for wayland is so that you can have a nice graphical transition butween multiple X servers running on a single monitor on a computer. I think that's definitely giving up network transparency for!

      Wayland also seems to incite blatantly disengenuous claims from people who should know better like "oh you will be able to run Xorg on top of wayland". This completely ignores the fact that new wayland only programs won't have remote networking and secondly on every other system which does this, X11 is very much a second class citizen and the programs don't integrate properly with the native system.

      Oh, apparently the BEST thing about Wayland is that it no longer has the 1980's style graphic primitives. This means that X is old and unfashionable. It also means that the Wayland developers have apparently never heard of software modularity where a bunch of rarely used function calls can sit somewhere on the side in a different source file and not clutter up the main body of code.

      --
      SJW n. One who posts facts.
    5. Re:Neat by sardaukar_siet · · Score: 2

      Why is Wayland a 'threat'? Open source is evolution. Let Wayland come - if users go for it, they go for it and it becomes the new thing. If not, it was a try and I'm sure some good ideas can be harvested from it still. Where's the love, brah?

    6. Re:Neat by sardaukar_siet · · Score: 2

      If that happens, open-source will route around it - it does that. Something else will come out on the other side that discontent people will like and gravitate towards. Or, Linux will wither away and die. Which outcome do you think is more likely?

    7. Re:Neat by Flammon · · Score: 2

      Excellent post! I would love to see a reply with equal quality so if there's anyone out there with some Wayland answers, please post!

    8. Re:Neat by canistel · · Score: 3, Insightful

      Wayland won't feature remote windowing. The best we can hope for is a pixel-scraper which dumps compressed bitmaps over the network.

      You people need to get over your whole "x11 can run over the network" thing... I don't care what the theory is, nothing beats RDP (windows remote desktop) for running applications. I've used them all: rdp, vnc, ssh -X, nx... nothing comes close to rdp, and if you guys took of the "windows sucks" blinders you would admit that too. Whatever advantages Xorg might have, running appliations remotely is absolutely NOT one of them.

    9. Re:Neat by Cid+Highwind · · Score: 4, Insightful

      Wayland won't feature remote windowing. The best we can hope for is a pixel-scraper which dumps compressed bitmaps over the network.

      Which is what we've got now with Xorg + any non-trivial widget set, no?

      --
      0 1 - just my two bits
    10. Re:Neat by Myopic · · Score: 2

      That depends on your needs. What are you developing? If not an OS, then you have a heck of a lot of options.

    11. Re:Neat by macshit · · Score: 2

      Note that clang is quite gcc-compatible (by design), so a lot of "gcc only" code works fine with it. Thus it's probably not going to do so much to reduce the popularity of gcc extensions.

      Howevery, although it largely implements the same interface as gcc, because it's an entirely separate implementation, it's is very useful as a way to detect inadvertent dependencies on gcc quirks / bugs (compile and test your project with both gcc and clang).

      --
      We live, as we dream -- alone....
  3. Just because it isn't in production by tepples · · Score: 2

    Just because MINIX is not popular in public-facing production systems doesn't necessarily make it any less valuable as a training tool to teach of operating system design.

    1. Re:Just because it isn't in production by vlm · · Score: 3, Interesting

      training tool

      Its an educational tool not a training tool. Education is learning how stuff works, training is votech. Almost no one in the world will ever be hired because of minix on a resume. It is helpful for learning how OS work. Another way to put it is education gives you something interesting to think about, makes life worth living. Training gives you a way to make money to afford the contemplative life of an educated person. Its an educational tool.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  4. Re:Minix by Anonymous Coward · · Score: 3, Insightful

    Seconded. Aside from a purely nostalgic standpoint, not sure how relevant MINIX is in this day and age, given the hardware and OS choices available. Still, I guess people have the right to work on whatever the hell they want to.

  5. Re:Minix by arkane1234 · · Score: 3, Interesting

    Remember it for what it was originally made for... an operating system to learn from while coding.
    You might not remember those days, but when you have a working operating system that is minimal in code size, it's easier to grasp.

    I'm just a little disoriented by the need to advance it, unless it's a minimal codebase of the NetBSD variety. Then again, they did say it was "pulled" from NetBSD, so that'd mean in my mind it's not minimal... which nullifies that. ... and we're back to square one.

    --
    -- This space for lease, low setup fee, inquire within!
  6. Re:Minix by jdgeorge · · Score: 3

    Perhaps it's being used for educational purposes. Linux is a bit huge to use as a learning tool for various aspects of how operating systems work. I speculate that pulling in code from NetBSD seems to make sense to provide more up-to-date examples of modern OS architecture issues.

  7. Re:ARM port by Chrisq · · Score: 3

    MINIX on ARM will be very interesting if it happens. As I gather the footprint will be much smaller compared to Linux!

    Will it? You are probably comparing Minix to the bloated x86 Linux distributions. ARM Linux is much smaller

  8. Real world microkernels? by xonen · · Score: 2

    I wonder, how is real-world useability state of microkernels? As i know of only 3 serious open source projects developing an actual useable microkernel for pc-ish hardware (namely: minix, hurd and -shoot me- reactos), how does minix compare to hurd. Which of those 2 projects would be likely to be a serious (`production`-ready) alternative for linux?

    On first sight, it seems Hurd is a few steps further - debian delivers an experimental distro around a Hurd kernel (comparable to the debian/freebsd project) for a few years now, whereas minix just implemented netBSD's userland with this release. On the other hand, news on Hurd has been steadily stale for a decade or 2.

    If our future would be easy selectable kernels (linux/hurd/minix) and userland (gnu/*bsd), in any combination of our liking and/or most suited for the goals, then i'd welcome it, but i'm quite sure this is an oversimplification of current reality, and probably future, especially seen current *bsd vs linux development (partly caused by licensing issues). Maybe some expert on the matter could enlighten us with enduser-understandable technical details, and a comparison on those projects, please.

    --
    A glitch a day keeps the bugs away.
    1. Re:Real world microkernels? by anonymov · · Score: 2

      Here's one real-world microkernel OS, for example.

      Though most real-world is neither pure micro- nor pure macro-kernel, Win NT, OS X and Linux are stuck somewhere inbetween with varying degree of user-space/kernel-space separation.

    2. Re:Real world microkernels? by xonen · · Score: 2

      commercial Unix-like real-time operating system, aimed primarily at the embedded systems market

      That's exactly what i ment.. Commercial, not open-source, and secondly, aimed at embedded systems.

      And indeed, most current kernels will be some hybrid between monolithic and micro. That's what makes Hurd and Minix so interesting: pure userland drivers/servers/ or whatever you call it; sshfs and fuse just faints by it. From a programmer stance of view, it narrows the gap between database (in the broad sense) / filesystem / IO, allowing way more efficient approaches of dealing with data and information services.

      --
      A glitch a day keeps the bugs away.
  9. Re:ARM port by LizardKing · · Score: 3, Informative

    ARM Linux is much smaller

    The Linux kernel itself usually isn't. The C libraries that come with the distributions ARM board vendors often bundle with their hardware are typically smaller as they don't usually use glibc (or a derivative of it).

  10. Re:Why? by LizardKing · · Score: 2

    A full featured kernel and userland that allows you to tinker with a micro-kernel based system. Linux and the BSD's are all monolithic kernels, even where they offer modules support (Darwin, the core of OS X, isn't a true micro-kernel based system either).

  11. Re:ARM port by DrXym · · Score: 3, Informative

    Embedded dists tend to use uClibc + BusyBox. Android uses a BSD user-land with a C runtime implementing a subset of Posix called BIONIC. The kernel would be compiled down to strip out superfluous drivers, filesystems, subsystems and so on.

  12. Re:Minix by tlhIngan · · Score: 3

    Remember it for what it was originally made for... an operating system to learn from while coding.
    You might not remember those days, but when you have a working operating system that is minimal in code size, it's easier to grasp.

    I'm just a little disoriented by the need to advance it, unless it's a minimal codebase of the NetBSD variety. Then again, they did say it was "pulled" from NetBSD, so that'd mean in my mind it's not minimal... which nullifies that. ... and we're back to square one.

    I think it's evolving the userspace side - while the Minix is the kernel side. The userspace of Minix suffered and gets crufty as people can't use what they already know since the Minix userspace starts looking a little barren.

    There are lots of teaching operating systems out there. Most are just applications that run on another OS to teach basic concepts like multithreading, locking and such. Minix appears to be the end goal - an OS that can be taught running on real hardware. A userspace revamp to make it feel modern and not a toy. And being able to go and compile some program you wrote on an OS you're tinkering with can trigger excitement among students.

    And there's probably a ton of OS research going on with Minix as well, and not having to put up with limitations on tools because the userspace can't run them is helpful.

  13. Re:ARM port by OrangeTide · · Score: 2

    I wouldn't call Bionic a real BSD user-land. Bits and piece of the libc were copied from BSD, but a lot of it was written from scratch by Google.

    OS X is a real BSD user-land, even if there are a fair amount of change (or as I would call them, compatibility issues)

    --
    “Common sense is not so common.” — Voltaire
  14. Re:ARM port by DrXym · · Score: 3, Insightful
    Yes. The uClibc C runtime ditches or makes optional a lot of stuff which is superfluous for embedding - locale stuff, math and so on and is optimized to save space, not necessarily performance and doesn't provide a stable ABI. Busybox doesn't offer a full implementation of various tools either, just the basics. Both are also modular so you're meant to pick what features you want or not at compile time. It's fine for embedding because space is usually at a premium, e.g. the rootfs has to sit in a small flash partition.

    So you could use them on a desktop but the question is why in most cases since you would have the CPU and memory to support the fullblown libs. I doubt uClibc would compile against desktop style applications and most dists would expect full blown GNU tools to function. You'd probably have to roll your own dist for that.

  15. Minix is cool by spaceyhackerlady · · Score: 3, Insightful

    I respect Minix for its attempt at doing something different from the monolithic OSs we almost invariably use.

    Linux and its ilk are very powerful, but they're not the only way to solve problems. Keep up the good work!

    ...laura

  16. Hurd by unixisc · · Score: 4, Interesting

    Of the various microkernels that ever existed @ different times, Mach 3 was less than satisfactory, Chorus ended up digested by Sun, and Amoeba itself today stands discontinued. L4 is a 2nd generation microkernel that has been tried out in some projects, including a Linux project called L4Linux as well as an OS/2 successor called OSfree. There are some other microkernels, such as Coyotos & Viengoos that have in the past been tried by the Hurd project.

    I'd think that something like Minix 3.0 (not 3.2) would be a good microkernel to base Hurd on. Given the licensing differences, the Hurd guys may need to fork Minix anyway in order to get a microkernel that has everything that Hurd needs. If they get that, they can then continue on the rest of the project, and finally have the GNU's own kernel (which ain't Linux).

    On another note, I wonder why the Minix guys chose the NetBSD userland, since NetBSD is the least used BSD among the big 3. They could have simply gone w/ FreeBSD, which would have given them a range of targeting options, allowing them to borrow from PC-BSD for netbooks, pFSense for routers/firewalls, FreeNAS for storage, and so on.

    And finally, I do hope they get an arm version sometime. Another suggestion - they might want to get a Raspberry Pi and port the ARM Minix to that platform, making it the target platform for this initially.

    1. Re:Hurd by manu0601 · · Score: 3, Insightful

      On another note, I wonder why the Minix guys chose the NetBSD userland, since NetBSD is the least used BSD among the big 3

      This is probably because NetBSD emphasis on portability often makes its code the cleanest one.

  17. Re:Minix by bzipitidoo · · Score: 2

    Oh, I remember that all right. What I remember is that circa 1989, the vi editor Minix had could not handle text files larger than 32k! Our first assignment was to hack on some source that was, of course, in a file larger than 32k, so we had to use split to break it into pieces, then cat to join everything together. Compiling might fail because you ran out of hard drive space, or memory, or file handles, process table entries, or who knows what. Over and over, Minix told its users that their cheesy consumer PCs just weren't big and good enough for a real OS. Lame!

    In short, in those days Minix was a horrible OS. Made DOS + Windows 3.1 look like a model of usability by comparison. And now, Minix is the hotness in microkernels and embedded devices? Disorienting indeed.

    That was a long time ago. I'd like to see Minix improve and succeed. And that because I feel nearly everything about computing has become seriously bloated. How did libc get so gigantic? Despite the bloat, computers are still so inflexibly, unthinkingly literal they make the most severe autism patients look like they gush with empathy and understanding.

    --
    Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
  18. Re:Minix by CraigParticle · · Score: 2

    Linux can be configured to run in 2MB of RAM and 2MB of flash or less. It can run in 4MB RAM with a full network stack, busybox, and several hundred K remaining for apps.

    There is no other full featured free unix like kernel which can do that. Certainly none of the free BSDs.

    I'll take the bait. Care to show a reference to running a modern Linux kernel w/ 2 MB RAM, or 4 MB RAM with busybox, on i386 or ARM? Busybox can do wonders for storage requirements (e.g. for NAND FLASH), but it doesn't help with RAM at all! I found 8 MB to be difficult enough (!), last I tried ulibc and busybox on i386.

    Just as a point of discussion, generic NetBSD is smaller than generic Linux (e.g. Debian) on the ARM platforms I've been using. A line from top shows the latest (NetBSD 5.1.2) kernel RAM footprint on ARM9: about 1.2 MB, with numerous filesystems, NFS, networking, USB support, etc. built in. This includes all kernel modules.

        PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
            0 root 125 0 0K 1240K schedule 0:00 0.00% 0.00% [system]

    Running 1 instance of httpd, sshd, and two user processes, minus 1.5 MB of buffers/cache, it's using 5.5 MB of RAM right now. Tightened up, it might boot in 4 MB but I haven't tried. Do note that this is with the standard (Net)BSD libc, all completely generic, 'out-of-the-box'.

    Amazing work has been done to cram Linux into small places, but I think it's somewhat disingenuous to say that no BSD is close. I'd say NetBSD provides a rather interesting starting point.