LuneOS tries to keep webOS alive
Even the most dedicated watchers of mobile operating systems may have been surprised recently when a distribution called "LuneOS" announced its first release (code-named "Affogato"). LuneOS, it turns out, is a version of webOS, a mobile operating system originally created by Palm. WebOS has had a bit of a troubled history, but it still has a dedicated following of users and developers. LuneOS is another attempt to turn webOS into a useful system for those users. The effort is a noble one, but the LuneOS developers have a lot of ground to cover yet.
After its initial fall when Palm ran into financial trouble, webOS seemed destined for great things after HP announced that it would be open-sourcing the system and using it as the core of its mobile strategy. The euphoria did not last long, however; HP canceled most of its mobile initiatives before they really even got started. The webOS system was eventually sold to LG, which has since incorporated webOS into its "Smart TV" product line.
LG also took over the management of the Open webOS project, which is meant to continue the development of webOS as an open-source project. The software is still clearly being developed, but it seems like a stretch to describe Open webOS as a truly successful project at this point. Activity is low, the last weblog posting was in March, and there have been no releases usable by the community. A recent GigaOM article described the webOS acquisition as a "failed experiment," attributing the failure to internal corporate power struggles. Also, importantly, LG has abandoned the "LunaSysMgr" user interface, replacing it with a proprietary interface module on its TVs. So there really is not much for an outside development community to work with.
The webOS Ports project is working to rectify this situation by creating a webOS distribution that is installable on real-world devices. Its developers have taken the webOS code and based it on the Android kernel and some low-level Android user-space components; the libhybris library is used to do impedance matching between Android components (that expect the "bionic" C library) and glibc. Rather than maintain LunaSysMgr on their own, project members decided to write a new user interface (called "Luna Next") from scratch. This module reuses some LunaSysMgr code, but is based on Qt and WebKit. The project has also replaced the on-screen keyboard (with Maliit) and a number of other components.
The result is a system that retains a number of webOS concepts but is increasingly distant from webOS itself. The goal of this work is described in the release announcement:
The current "Affogato" release is available for four devices: the HP TouchPad, the Nexus 4 phone, the Nexus 7 Tablet, and the Galaxy Nexus phone. The latter two devices will not be supported going forward; development effort will focus on the TouchPad and the Nexus 4. As it happens, your editor has a sacrificial Nexus 4 sitting around just waiting for a chance to run an experimental new operating system. So giving LuneOS Affogato a try seemed like the obvious thing to do.
The LuneOS experience
A prospective LuneOS user might be forgiven for thinking that they are
getting off to a rocky start. The installation
instructions start with a list of seven rules that one must agree
to before installing the system; they include things like which URLs may be
publicly posted and a requirement to "fastidiously follow
" the
project's IRC channel. Your editor, never a big IRC fan, stands in
violation; a visit from the webOS Ports Police is nervously anticipated.
As of this writing, the URL on that page for the actual installation image is incorrect. Your editor dug around and finally ended up with the webos-ports-package-mako.zip image (dated September 1) from this directory (hopefully posting that URL is not a violation of rule #6). At that point, assuming the device is already unlocked and has the ClockworkMod Recovery image on it, installing LuneOS is a matter of a single adb sideload command followed by a reboot.
When the system boots, it starts by presenting an end-user license agreement stating that LuneOS can only be used for non-commercial purposes. That restriction is blamed on the existence of binary driver blobs (taken from Android) in the system itself. One must agree before anything else can be done. The problem with "non-commercial" licenses, of course, is that "non-commercial" is poorly defined. Whether testing the device for an LWN article qualifies will, one might imagine, have to be worked out in that conversation with the aforementioned webOS Ports Police.
The feel of the system resembles that of past webOS devices, unsurprisingly. There is a home screen with a dock at the bottom for a few applications including a launcher for all the rest. There is a single button that, when tapped, zooms back to a scrollable list of all running applications, allowing quick switching between them. The set of available applications includes a web browser, an email client, a PDF viewer, a fairly extensive terminal emulator, a calendar, a calculator, and not a whole lot more. There is a tool for software management, but no indication of a functioning repository for add-on applications.
The overall presentation is attractive and, in many ways, pleasant to use. It must be said, though, that the lack of a "back" button makes itself felt frequently; it often feels like applications lead the user into dead-end screens that cannot be escaped from. What's worse, though, is that things really just do not work very well. Response is often sluggish and applications will become unresponsive for lengthy periods of time. WiFi networking is supposed to work in this release, but it never was able to see any of the (many) access points visible from LWN's testing laboratory. In general, it does not feel like a system that one would want to use even for serious testing, much less as an actual phone.
In all fairness, the LuneOS developers never claimed to have a production-ready system. They are, as is mentioned a couple of times in the Affogato announcement, a small group trying to take on a large task. It is unsurprising that this task is taking a long time to come to fruition. Indeed, unless it can bring in some more developers, the webOS Ports community may have a hard time ever getting LuneOS to a point where it might be truly useful for anybody other than the most committed webOS enthusiasts.
It would be a good thing if they did succeed. As nice as Android is, it is
in need of strong competition from at least one open-source
alternative. LuneOS, a community-developed distribution based on a
known-to-be-popular system, could possibly be such an alternative if it could
build up some momentum. That looks like a long shot, though; the barriers
to entry in this area are high and getting higher and it is not at all
clear that a small, unfunded project like LuneOS can ever get much
traction. But, then, that's what was once said about operating system
kernels, so one never knows.
