[maemo-developers] Maemo & Linux mainstream again (was Re: Projects Nokia should support (yours?))

From: Carsten V. Munk cvm at cs.au.dk
Date: Sun Oct 26 00:12:29 EEST 2008
Quim Gil wrote:
> The strategy taken for Maemo is different, promoting the direct 
> collaboration with the relevant upstream projects and going as far as 
> possible with the open source way of working. Maemo is mostly based of 
> open source components. Any manufacturer could take that code base and 
> add their own hardware adaptation and find/develop the set of 
> applications to offer. As for today Nokia is not interested building a 
> business out of that. The Maemo team rather invests the money aligning 
> more and better with the mainstream Linux. 
 From a system/OS developers point of view, Maemo platform developer and
a Nokia tablet lover, I have given some thought to what would help some
of the frustrations I've had regarding Maemo as a system and as a platform.

Some of these frustrations deal with the difficulty of porting
applications for the platform, but I also have respect for Maemo being
the best user friendly (and quite open) OS around for embedded devices
targeted towards users. And obviously that adds to the interest in
having applications you write for Maemo would be able to be easily
ported to other tablet/portable "less powerful than desktop" devices -
but I'm not confident about the statement of "taking that code base" and
being able to construct a sane Maemo-like platform - as we've tried to
take fairly standard Maemo platform applications and put them on let's
say later versions of Debian, with Hildon, with quite a lot of hardships
caused by this.

What I would love to see in Maemo 5 would be, - not focusing on the user
interface or hardware items, but on the Maemo platform itself, under the
surface:

Reconstruct Maemo - take the latest packages from Debian or Ubuntu, stay
consistent in package naming, it's been a long while since you forked.
  - sure, build them with device specific optimizations, but keep up
when there's new releases. Sure, customize with busybox and such, but,
in the process of rebuilding the base system platform, release scripts
for bootstrapping a Maemo image, keep the system development open
(public SVN like with Hildon) - which would make developers happy in
terms of knowing how the base system is going to change - and adapt to
them before new OS releases come out.

Stay out of making closed source solutions for the basic simple UNIX
system setup - for hardware, sure, binary blobs are alright, just don't
let them block kernel updates and such.  For power savings, - you've
mentioned using HAL, Upstart and OHM - make closed plugins for OHM, HAL,
sure - they're for the hardware interfacing, - the software and OS
architecture is what people are interested in, because compared to many
other embedded linux, it works quite well, has very little power
consumption and probably has the envy of platform makers.

See where I'm going with this? People would with this setup take the
base of Maemo, port them on to their new tech, giving back to the open
source community a platform that can be quickly adapted to new devices.
When new devices come out, the applications of those device communities
will directly port to Nokia's tablet, leaving Nokia to be able to
compete on quality, hardware interfacing, having good karma with the
open source community, and specialize in tablet specific
differentiations - with people interested in developing their underlying
system platform as it benefits them. Just see Windows Mobile - there's
-tons- of applications for these devices, due to the pervasiveness of
the OS.

Nokia/Maemo -could- put themselves in the same position by simply
working with upstream, doing some small changes, working with the
community, and poof, you have a general platform for tablets - the
devices this runs on don't need to be power hungry netbooks, they'll be
just fine with a low-power ARM processor at 400mhz. And in connection
with the idea of Pervasive Computing, this is a wonderful thing. Low
cost, low powered tablets with low power consumption. And this is where
the open source community is missing out - proper OS'es for these devices.

Moving up to user interface - if you're going to do break API, use
seperate directories for the standard API and the embedded API (GTK,
GTKMM for instance). Ship
embedded API in the FIASCO image, sure, - but use tricks like pkg-config
maemo-gtk to make applications "able" to use the embedded extensions
(and use launchers to load the specific embedded libraries), and don't
make the embedded and standard API be mutually exclusive. For instance,
try running Maemo GTK on a window manager that isn't matchbox - it
doesn't work well. This would make "porting" easier, and help bringing
Maemo GTK vs GTK deltas down as you conciously have to consider if you
want to use traditional hildon + GTK or hildon + Maemo GTK. Let's say we
want a partition editor for our tablets. It'd be a matter of a
recompile, maybe helping a bit along with hildon extensions, but you
don't run into the issues of no vfuncs for instance, which breaks the
compilation, easily :P

Use Xorg+omapfb driver (non-kdrive), as you're planning already and have
hildon desktop on top - but don't force the system to run a hildon
desktop. Work with open source community to provide a more seamless API
for connectivity instead of stuff like libconic (which depends on icd).
Sure, seamless connectivity is closed, but why really? It also keeps the
users from being able to investigate what is wrong when their university
network fails to let then log on. There's wpa_supplicant, linux wireless
extensions and other possibilities. Things like applications relying on
icd behaviour/API from libconic makes them locked to the Nokia
tablet+Maemo combination.

Beyond the level of Hildon? Do what you want, it's differentation, -
interface with your hardware but standardize your interfaces (HAL
battery info, GPS connectivity, etc), so you don't lock Maemo apps to
the Nokia tablet+Maemo combination. This would give you benefits in
terms of getting apps from other devices too, add Nokia tablet specific
services, but keep the platform open and keep the development open. You
may find it benefits you in terms of people actively working and
contributing to the underlying system. Even if it means a possible
explosion in tablet devices, - Nokia has the brand, quality and the
know-how of the platform, and knows how to polish it for the users. Not
saying Nokia should make a business out of it, but they would benefit
from this move of having a open underlying software platform/OS
infrastructure.

For good measure, these thoughts are not blame or complaint or to flame.
They're hopes for a better Maemo platfom for tablets, which I'd love to
see, as a developer and as a user.

Regards,
Stskeeps/Carsten Munk
(this post does not reflect my employers view, and only reflects my own
personal views)



More information about the maemo-developers mailing list