Home > Articles > Operating Systems, Server > Linux/UNIX/Open Source

  • Print
  • + Share This
Like this article? We recommend

Like this article? We recommend


The first question anyone who begins building an OS will be asked is, "Why bother?" It’s a reasonable question, because there are already a lot of operating systems around, and they all have one major advantage over a new one—lots of existing applications. For some the answer is fun; for others, it’s a learning experience. For many, the answer is "because no one’s done it quite like this before."

In the case of MenuetOS, it’s not so much that no one has ever done it like this, just that no one has for a few decades. MenuetOS is a full-featured OS written entirely in x86 assembly language (specifically, the FASM dialect).

The reasoning behind this is two-fold. First, it is an attempt to prove that it is still possible to write complex programs entirely in modern assembly languages. The second is to create a small (and thus hopefully relative bug-free) and yet full-featured system.

Booting MenuetOS is an incredible experience. The entire system fits on one single 1.44MB floppy disk (compare this to MS DOS 6.22, which required 3MB and then another 10MB for Windows). Most of the boot time is taken answering a few questions about the system, such as the amount of available memory and the display resolution to use. Within seconds, you are in a graphical environment and able to run programs.

The standard distribution comes with a few example apps, such as a text editor and calculator. It’s enough to start developing, because it includes FASM, but not enough to really use. Application support gained a boost relatively recently with the addition of a C library, allowing both C and FASM applications to run. Ports of both Doom and Quake exist, showing that isn’t just trivial for applications, and sound works with an AC97-compatible sound card.

Would I use MenuetOS on a real system? Almost certainly not. If I were planning on creating an x86-based embedded system, however, it might be an interesting starting point. The minimum requirement of 32MB of RAM isn’t a lot by today’s standards, and it would run quite nicely on something like AMD’s Geode line of processors.

  • + Share This
  • 🔖 Save To Your Account