domenica 4 dicembre 2011

Maui

Some years ago I started several projects all based on the Linux kernel and GNU userland with the intent to create a better desktop user experience.
I was not satisfied by GNU/Linux distributions in the day by day use, my ideal system was BeOS which by that time was dead with Be, Inc the company behind it. An Open Source effort to recreate it, known as OpenBeOS (now Haiku), was started in 2001, but it certanly wasn't a viable option because it was in an embryonic state and what was missing from the original BeOS API was scheduled after R1 which as of today it's not reached yet!

BeOS shipped with a state of the art C++ API and a very elegant desktop with many features that later became standards like metadata and queries; it simply was everything Linux wasn't.


Basically I though GNU/Linux on desktop had the following major problems:
  • No coherent API and design.
  • Low propensity of developers of all desktop environments and toolkits towards a functional, uncomplicated and pleasant, out of the box experience.
  • Several software to do the same thing, none of them complete.
  • Inability to move to modern graphics architecture because of the dogma of X11 compatibility.
Haiku was progressing, and I kept thinking that it wouldn't go anywhere without a Linux kernel and its better hardware compatibility.  Although Haiku was still years away from completion, in 2003 I started porting its API to Linux.

I made two prototypes, the first was running on X11 with Cairo (which I believe was called Xr/Xc at that time) and the other more successful was based on DirectFB and had not display server (all client side). The Haiku API would have been a good start to implement what was missing from BeOS because of its age (layouts, notifications, standardized actions a-la QAction and many more) without waiting a lot of years.
At some point the enourmous amount of work needed to complete the project and the lack of interest from the potential users threw me into despair. We have to be honest here, BeOS zealots were not willing to use a Linux-based BeOS bastard (they did prefer to wait more that ten years for an early 2000 era operating system almost exactly the same as BeOS), at the same time Linux users was skeptical about it and I certanly did not help missing the second part of the "release early, release often" mantra.

With this project left behind be I decided to take another path: between 2004 and 2005 Qt 4 Technology Preview came out and it was amazing. Clean, complete, modular, supported the MVC pattern, multi-threading and OpenGL. In 2005, the Mockup project was started.
I didn't have much spare time to dedicate on the project, so in the end it was abandoned.

The years passed...

...and suddenly last year, browsing the web, I discovered a nice project: Wayland. Finally there's a viable option that can finally let X11 retire. I started writing some code for a file manager and a panel without the goal to restart the Mockup project.

I was just looking for a challenging pet project and I didn't want to publicly announce something.
Some more month passed, it's 2011 now and I feel it's time for me to write this blog entry because I'm proud of the code I wrote so far - in the last month I wrote a lot of code, my effort and committment is way more than my previous attempts.

So stay tuned to learn more about the Maui operating system.

2 commenti:

Gustav ha detto...
Questo commento è stato eliminato dall'autore.
Gustav ha detto...

Ciao Pier Luigi, I would just like to say one thing: Bravo, bravo, bravo!

If I could expand on that: your Maui project is so refreshing as a huge kick in the pants for the Linux community. I am a Linux user, working with multimedia, and I have grown weary of Linux recently, and there are a couple of reasons for this.

The first being an integrated desktop in Linux has lost its focus, and instead the Linux kernel is being implemented in gadgets and not the kind of heavy duty hardware that could be placed in production. Developers are now broken into groups around differing desktops trying to make them work, instead of addressing how to get 1080p working in a video editing program, or a clean audio microphone connection, just a couple of examples.

I like Qt but I can't stand KDE, because it craves so many resources in its current form. Its pretty, mind you, but I just want to get stuff done. I was considering a Qt Razor setup on Arch, but I could not get audio at all working on the Arch installation, so that was quickly abandoned.

And everything you mentioned about package management holds true. I recently installed a Bodhi Linux system for a friend, but it broke after a couple of system wide upgrades.

I was searching for a system that was not unlike Maui. I found an old and dead project, GoboLinux, that had a new and exiting file system that addressed a lot of integrational package issues. Every application had its own working library in a sub-directory, thus the system would have a central working core, but a de-centralised applications base. There were also a great deal of soft links to a central library to save space, (i think). And the X11 window system is getting rickety and flaky, amazingly its lasted all these years, but there are new challenges with HD video and hyper sharp LED screens. I was so glad to see Wayland in a new distro - especially since Ubuntu had abandoned the Wayland project.

I welcome a tour through Maui, even though its still in a pre-alpha state. I wish you well, Pier Luigi. In boca al lupo!

Sincerely Gustav