MenuetOS – the open source, GUI-equipped operating system written entirely in assembly language – may be as little as a year away from hitting 1.0. And while 12 months may still seem like a long time, it's taken some 13 years of work by the Menuet team to get to this point.
However, although the operating system's creator, Ville Turjanmaa, estimates the time from the current version – 0.99.33, released at the start of this month – to the release of version 1.0 could be around a year, he's happy to admit that that's a guess.
"It's going to take until we feel comfortable with the result," Turjanmaa says. "Timeframe is secondary. It's more important is to have a complete and working set of features and applications. Sometimes a specific time limit rushes application development to the point of delivering incomplete code, which we want to avoid."
arkOS: Building the anti-cloud (on a Raspberry Pi)
Building the tools to build the Internet of Things
AmigaOS 4 developer interview: Why it endures and what the future holds
NBN 2.0: What future for Australia's National Broadband Network?
CurrencyFair: A P2P platform for currency exchange
MenuetOS sits in an interesting nexus between astonishing technical achievement and computerised work of art. The super-speedy, pre-emptive multitasking operating system is still, despite adding more driver support, more included applications, an improved GUI and digital TV support over the years, capable of fitting on a floppy disk (assuming you can find one).
Last year a maths library was added to Menuet's kernel, so the operating system doesn't have to rely on the x87 FPU. "The mathlib evaluates trigonometric, exponential and logarithmic functions in an elegant way, using SIMD instructions," explains developer Akos Mogyorosi.
"Mostly it's even faster than the FPU, and despite the 64-bit data width of double-precision float, it is considered to be precise."
"We're also going to add an x64-based Advanced Audio Coding (AAC) decoder to Menuet's mplayer soon," says Mogyorosi, who wasn't part of the original MenuetOS team but has joined the project and focussed on audio, signal processing and maths functions.
"The decoder has been written from scratch; it's also very small. We haven't included or used any of the libraries written in high-level languages."
Turjanmaa cites the addition of MPEG videos and audio support for file playback, DVDs and digital TV broadcasts as some of the noteworthy achievement of the last couple of years of development.
"We support USB devices, such storages, printers, webcams and digital TV tuners, and have basic network clients and servers," Turjanmaa says. "So before 1.0 we need to improve the existing code and make sure everything is working fine."
Version 1.0 will be a milestone, but, despite the effort that's gone into the operating system already, it won't be the end of the road for the project, Menuet's developers say.
"The main thing for 1.0 is to have all application groups available," Turjanmaa says. That is, there will be applications available for the OS for most of the common tasks people perform with their PCs.
"In other words, there are applications for Internet use, watching movies, using different USB devices, and so on," Turjanmaa explains. Version 2.0 of Menuet would involve improving these applications, as well as adding new features.
"I have had a big dream for a very long time that MenuetOS could use Intel graphics hardware efficiently, because Intel has documented most of it very well and it should not be very hard to get basic acceleration support, even if it were only 2D," says developer Madis Kalme.
"Haswell is a really hot topic in Linux land right now and this is the only way to go in the near future for MenuetOS because other vendors don't share their documentation freely."
"There is no end in sight for overall technological development and I hope that applies to Menuet too," Turjanmaa says.
"I plan to stay with Menuet and assembly coding for a long time ahead. Now that the system calls are available, assembly is an easy language to use, for GUI and otherwise."
Kalme says he wants the project to keep on going. "MenuetOS is perfectly small and simple to start writing something experimental," he explains.
"With other operating systems it could take weeks to get to know to internal workings of the OS. In MenuetOS you simply could draw a pixel anywhere on the screen if you wanted to without worrying about device contexts and bitmaps etc." It's good for prototyping, he adds.
Downloads of the OS have largely remained steady, although there has been a slight increase in the last 12 months. Turjanmaa expects that hitting 1.0 will increase interest as system calls are finalised and people have a more stable platform to build on.
"When we started, most assembly applications were small and specific PC-demos and there was a lot of trial and error involved," Turjanmaa says
"Nowadays, the system calls have matured and standardised and we want to keep the API stable, for GUI and other system functions."
Although many of Menuet's downloads are no doubt from people curious about the project, the team sometimes receives requests from universities for more information about the OS to use in presentation.
The common denominator in projects based around Menuet seems to be that the system's strength when it comes to real-time and time-wise predictable data processing, Turjanmaa says. "If you have an external device, Menuet does a good job at controlling it," he explains
"There has also been interest for using Menuet in the security sector, since code is assembled to machine language at close to 1:1 relation, skipping the possible unknowns of higher level compiler," Turjanmaa adds.