Slashdot Mirror


MenuetOS, an Operating System Written Entirely In Assembly, Hits 1.0

angry tapir writes: MenuetOS, a GUI-toting, x86-based operating system written entirely in assembly language that's super-fast and can fit on a floppy disk, has hit version 1.0 — after almost a decade and a half of development. (And yes, it can run Doom). The developers say it's stable on all hardware with which they've tested it. In this article, they talk about what MenuetOS can do, and what they plan for the future. "For version 2.0 we'll mostly keep improving different application classes, which are already present in 1.00. For example, more options for configuring the GUI and improving the HTTP client. The kernel is already working well, so now we have more time to focus on driver and application side."

17 of 368 comments (clear)

  1. Wow. Still? by halivar · · Score: 5, Insightful

    I remember futzing around with this little project 15 years ago. I am pleased to see that, not only is it still going strong, it's pretty remarkably modern.

  2. Really? by ArcadeMan · · Score: 5, Funny

    Question: MenuetOS is entirely written in assembly? There's no traces of other languages, such as C?
    Reply: nop

  3. Re:It can run Doom by perpenso · · Score: 5, Funny

    and their website looks like it's from 1995 as well!

    So its not bloated and it is fast too? Seems appropriate. :-)

  4. 30 seconds of music from iTunes. by perpenso · · Score: 5, Funny

    It fits on a floppy disk? We are in 2015, right? What is a 'floppy disk'?

    Its a unit of storage space measurement equivalent to about 30 seconds of music from iTunes.

  5. Re:Floppy disk? by camperdave · · Score: 5, Funny

    It fits on a floppy disk? We are in 2015, right? What is a 'floppy disk'?

    It's an object lesson in using pure assembly. By the time you get anything useful done, technology has moved on.

    --
    When our name is on the back of your car, we're behind you all the way!
  6. What next? by Anonymous Coward · · Score: 5, Funny

    Now that they've got this thing working, what would be really cool is if they could come up with a way of getting it to run on different processor architectures, in case x86 loses out to ARM in the long run.

    I'm thinking maybe they could write some sort of abstraction layer whereby the instructions are originally written in some sort of higher level format, which could then be automatically turned into machine code for different hardware using a special program. You could do all sorts of things with that kind of system. I'm surprised nobody's thought of it before, actually.

  7. Re:So give it another 15 years... by zieroh · · Score: 5, Funny

    Except edit text.

    --
    People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
  8. Re:It can run Doom by smooth+wombat · · Score: 5, Insightful

    Finally, a web site which doesn't try to overrun your browser with unnecessary rotating images and the latest and greatest shiny because some web designer said, "Why not?"

    In other words, a web site which is useful.

    --
    We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
  9. Entire OS in about 1/3 of i7 Cache by perpenso · · Score: 5, Insightful

    I'm not reallyd sure that I understand that point. To me, thst would sound reasonable for educstionsl Ãr entertainment purposes, but are there any other meaningful reasons for writing an entire OS in assembler?

    The entire OS would occupy about 1/3 of an Intel i7's cache. For ultra-high performance apps that might actually be useful.

    Of course that includes user land apps and such so the footprint of the OS itself would probably be far smaller.

    1. Re:Entire OS in about 1/3 of i7 Cache by lgw · · Score: 5, Informative

      None of that follows from it being written in assembly.

      My first 5 years as a dev were spent working on a team that maintained an all-assembly OS, database, print server, and so on. Very fast, very small. But you can get all that in C, and a modern C compiler on full optimization produces object much faster than any sane, maintainable assembly source.

      It's a mindset issue, not a toolset issue. Actually using assembly is a great way to keep the right mindset throughout. Plus, learning to read assembly fluently, find bugs by glancing at core dumps, fix bugs with a sector editor to save an assembler pass when you're in a hurry, bugfix a running program in memory - all of that builds your coding muscles, even if it all a bit silly for a modern prod environment.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    2. Re:Entire OS in about 1/3 of i7 Cache by lgw · · Score: 5, Informative

      From experience I know that a well-trained, well-weathered assembly hacker can generate code faster than the compiler.

      This hasn't been true since instruction pipelining. And it hasn't been true for maintainable assembly source for abut 20 years.

      Quick, what's the fastest way to multiply an integer by 8? Did you answer "depends on the previous 20 instructions, but probably 3 adds separated by 3-4 instructions each"? There's just too much state to keep track of with which silicon is doing what for how long following each instruction.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    3. Re: Entire OS in about 1/3 of i7 Cache by lgw · · Score: 5, Informative

      Not a left shift?

      Depends - did you do a shift or multiply in the previous several instructions? When do you need the result? Do you need to add anything else soon, or is the adding silicon idle? Modern compilers actually keep track of all that. For sure, if you need to shift two values, doing each a different way is faster.

      The important stuff the coder can provide to help with optimization comes down to: avoid conditional branches, and emphasize locality of reference (I miss the days when a 256-byte lookup table was the fast answer to most bitwise questions).

      --
      Socialism: a lie told by totalitarians and believed by fools.
  10. Come a long way by Anonymous Coward · · Score: 5, Insightful

    Wow, slashdot has come a long way from when I first started reading "chips & dips" in 1997. Even just 10 years ago, a story like this would have been met with enthusiasm and honest support, with a virtual pat on the back to the developers.

    Today, a story like this is reduced to a mere platform for chest-beating (see the parent above). As in, "nevermind the lame story, look at me instead". Why in the world are you people even here?

  11. Re:Not Open by bluefoxlucid · · Score: 5, Interesting

    I wonder what use they're thinking at all. Minix 3 is a step forward: were we to port Linux interfaces for udev, kevents, and such onto Minix, we could drop a Linux userland onto it wholesale, with systemd and all, and benefit from a core operating system which lends itself to drastic rearchitecting.

    Consider that running Minix as an OS-level virtualizer--OpenVZ, LXC--is a trivial task, one which requires only providing a different network server and different security features (e.g. users and groups, and their flow through the file system driver and such), largely doable on the existing code base. You could even run Xen on top of Minix with a minor tweak.

    Consider that Minix is a collection of services which may be extended by adding other services. It is interfaces and features, not tightly-bonded kernel code. The shape and form of the OS can be changed without commitment: to add services to handle Linux services is not to change Minix, for you may simply not use those services; you could instead add services to make Minix pretend to be OpenBSD. You could replace its threading model or scheduler by swapping out a service, providing a system that uses the advanced features of DragonflyBSD.

    There, again, we see a step forward: DragonflyBSD, with its non-locking semaphores, its highly-efficient threading model, its ability to freeze an application and thaw it after a reboot, to checkpoint running applications--a feature Minix does not possess, but could simply by adding a new kernel service--and even to move applications between machines. Extending some of these things would be to bring the features of OpenMOSIX: check pointing and running an application on a different boot cycle or different machine brings the magic of scheduling applications across a cluster of machines acting as one.

    Why, then, do we persist in creating these tinker toys, instead of extending, cannibalizing, or imitating those things which show real progress? Why has Minix not embraced the great strides forward made by Linux and integrated its interfaces so as to integrate its user space in distribution? Why has Linux not subsumed the threading model of Dragonfly BSD? Why has someone chosen to create an OS to no purpose, rather than to create a unified system carrying and integrating the lessons from all prior systems?

  12. Re: floppy disk... by rubycodez · · Score: 5, Funny

    it grows to 2.5"?

  13. Re:Looks great for industrial by itzly · · Score: 5, Insightful

    Or a $10 ARM chip, programmed in C.

  14. is this year by goombah99 · · Score: 5, Funny

    of assembly language on the desktop? will it run linux?

    --
    Some drink at the fountain of knowledge. Others just gargle.