MenuetOS, an operating system written entirely in assembly, hits 1.0

Menuet's kernel includes pre-emptive multitasking support and the super-compact operating system includes an impressive GUI



MenuetOS, a GUI-toting, x86-based operating system written entirely in assembly language, has hit version 1.0.

The milestone comes after almost a decade and a half of development for the operating system, which despite having an impressive graphical user interface is still compact enough to fit on a floppy disk (assuming you can find one).

The 32-bit version of the system is released as open source until the GPL, while the 64-bit version is free for personal and educational use (commercial use requires negotiating with the MenuetOS team).

Menuet's pre-emptive kernel runs stable and is suitable for tasks including precise timing and machine control

Ville Turjanmaa

Menuet supports pre-emptive multitasking, multiple processors, a range of networking, audio and USB-based devices, including assorted mice and keyboards, digital TV tuners, webcams and printers. Its GUI includes support for transparency.


Most importantly, you can run Quake on the super-speedy OS (as well as Doom, the Dosbox emulator, and SCUMM for those who wish to relive the glory days of LucasArts adventure games.)

I last caught up with the creators of MenuetOS in late 2013.

Since then, the team has been working on getting everything ready for version 1.0 said the operating system's creator and project lead, Ville Turjanmaa.

"Now, Menuet is stable on all the hardware we've tested it with," Turjanmaa told Computerworld Australia.

On the application side, the team has released MediaPlayer 1.00. "Now it decodes movies (mpeg2/mp3), mp3-music and DVB-T Digital TV broadcasts," Turjanmaa said.

In addition to MediaPlayer, the operating system includes a range of application software out of the box, including a web browser and web server, an FTP client and server, a chess program, a Tetris clone, an email client and an IRC client.

There's also editor and FASM assembler for working on applications and new drivers.


"Menuet's primary goal was to write an operating system 100 per cent in assembly for faster code execution and smaller memory use," Turjanmaa said. "And with 1.00, I believe we've accomplished this goal."

"Another goal was to include all the common features, which we would expect from a modern operating system," he added.

The OS supports 64-bit pre-emptive multitasking on both the kernel and application sides running across all CPU cores.

"So Menuet's pre-emptive kernel runs stable and is suitable for tasks including precise timing and machine control," Turjanmaa said.

Looking beyond version 1.0, Turjanmaa said the team would look at improving the applications available for the OS.

"For version 2.0 we'll mostly keep improving different application classes, which are already present in 1.00," he said.

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

"There are other interesting plans as well, but it's too early to talk about those."


Along with Turjanmaa, other contributors to Menuet have included Mike Hibbett, Jarek Pelczar, Mike Hibbett, Madis Kalme and Tom Tollet.

Turjanmaa said that one of the things that kept him motivated during the lengthy development process was the chance to work on an area that "doesn't have pre-existing answers".

"And with Menuet, we have the opportunity to explore these uncharted areas," he said. "So it mainly boils down to curiosity."

"We've already managed to overcome many obstacles and so-called 'impossible' challenges," he added.

Hibbett, who headed up work on networking, said one of the aspects of Menuet's development he's proudest of is building a functional TCP/IP stack and Ethernet driver set in assembler.

"But equally [I'm proud of] building and working with a wonderful team of hackers around the world — some as young as 10 years' old!"

"I'm happy about how well all the individual components work together," Turjanmaa said when asked if there were any parts of Menuet he was especially proud of.

Read more: Coding education key to Australia's competitiveness, says Shorten

"Menuet has 64bit pre-emptive multitasking with Ring-3 protection across all CPU cores. Also the graphical user interface, which has real-time transparency, works well and doesn't require a special graphics card API to function. All calculations take place in the main x86, which greatly reduces compatibility issues.

"So once you've configured Menuet to run on computer, you can be quite sure there are no compatibility surprises later."

"I'm also lucky to have worked with wonderful and brilliant developers from around the world!" he added.

Follow Rohan on Twitter: @rohan_p


Join the newsletter!


Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

Tags operating systemssoftware developerssoftware developmentassembly

More about LucasArts

Show Comments