Growth of the Number of Smartphone Operating Systems

About two to three years ago, a lot was written about mobile network operators and mobile developers and their difficulties resulting from the need to develop and maintain their offerings for number of different mobile operating systems and Java implementations. These days, however, I don't come across such reports often anymore.

I find that a bit surprising because instead of the number of mobile operating systems going down and thus also the concerns of network operators and developers, the number has actually gone up. Especially in the smartphone sector, Nokia and Microsoft no longer have a dominance and the list has become quite long these days:

  • Nokia with Symbian / S60,
  • Nokia with Maemo 5,
  • Microsoft with Windows Mobile,
  • Google with Android,
  • Apple with the iPhone OS,
  • Palm with the PalmPre WebOS,
  • RIM with the Blackberry OS.

Some are still more niche than others but all are quite popular in the news media and except for Palm, who's limited to CDMA for the moment (but probably not much longer), devices of all vendors can be seen in the street.

Also it seems the platform of choice for software development has shifted. Some years ago, you were working on Nokia / Symbian if you had a cool application. These days, I don't hear much of that anymore, with most developers having gone to the Apple platform.

So while for developers and network operators things are probably not getting any easier, the good things I see in diversity are more competition resulting in interesting new developments and better resiliency of the ecosystem against pandemic malware attacks.

Symbian vs. Memo? – Some Thoughts

This week, the Financial Times Deutschland ran an article that Nokia is about to "change its strategy" ("Strategiewende") concerning their use of smartphone operating systems, that "they are loosing faith" in Symbian ("verliert Vertrauen") and are about to "abolish" ("verwerfen") Symbian in favor of Maemo.

Tough words which are immediately followed by the statement that in the future, Nokia will equip "many" of its new phones with Maemo. To me that doesn't quite sound like abolishment or loosing faith but more like continuing the path of working on more than one operating system.

The article only cites internal sources so it's difficult to verify the claim or the spin of the article. Other news websites have picked up the story (e.g. here, here and here) but I don't quite believe it yet.

Here's how I see things:

Something is going on behind the scenes at Nokia concerning their smartphones and I am not quite sure what it is. The innovation in the smartphone sector Nokia has so long driven with their Nseries range has notably slowed down. I have my Nokia N95 for almost 18 months now, and I am still waiting for a successor. Neither an iPhone nor the N97, that has just started shipping recently, are what I'm looking for. From that point of view, the speculation is understandable.

But the latest Maemo device, the N810, was released in the same timeframe as the N95, back in 2007. So Nokia has definitely not really pushed that OS with new hardware either. There are rumors of a new Maemo device to be released shortly, but I don't think that this is a change of strategy or loosing faith in Symbian.

The FTD article says Symbian is old, has 20 million lines of code by now and is difficult to extend. I would hold against it that Maemo, which is based on Linux, has probably similar complexity and Linux itself is not much younger either. But it's open source and well known by programmers which are two formidable advantages over Symbian. Symbian is going open source, too. How much that will draw programmers to it, however, still remains to be seen.

An advantage of Symbian over Maemo is it's integration of 2G and 3G network stacks, something Maemo does't have for any hardware with which it was released so far. On the other hand that seems to be something that can be overcome, as shown by Google's Android, which is based on Linux as well. 

Also, a change from Symbian to Maemo would not solve Nokia's challenges concerning platform popularity and an encompassing ecosystem such as a popular web store, synchronization to web services or to a PC, etc. These aspects have nothing to do with the operating system running on the mobile device itself.

The article further says that Nokia is loosing smartphone market share. After many years with little competition, I'd say this is not really surprising with strong competition coming from several directions now such as RIM, Apple and Google. That's not something that could be fixed by changing to another operating system.

But market share is not everything. I'd rather have a smaller market share of a big market than a big market share of a small market. I don't have the numbers here, so maybe someone can help me out with this, but I think there's a fair chance that with all the attention of companies with good products other than Nokia on the smartphone sector, the number of smartphones sold are probably increasing.

So without further facts I can't quite go along with the message of the FTD article that Symbian is going to be ditched. What do you think?

Application Aware OS’es – Knowing When To Drop Back to GPRS

Here's a thought about reversing the concept of bearer aware applications: What if the OS of a mobile device would monitor the traffic behavior of applications running on a mobile device and then reselect to the most suitable access network for the application mix currently used?

Let me give you a practical example: While only my e-mail client is checking my inbox every couple of minutes it would be much better if the mobile was using the 2G GPRS/EDGE network instead of a 3G network in order to conserve power and to improve the autonomy time. The problem is actually very real and has to do with 3G networks keeping the mobile in a much more power consuming state after each data transfer until it goes back into idle mode. For details see here.

So when the OS detects that only such periodic and small data transfers are ongoing it could attach to the GPRS network. This could work even if other applications, such as the web browser, still run in the background but aren't actively being used at the moment. If I then use the browser again to go to a new web page, the OS could then quickly go back to the 3G network.

The beauty of the approach would be that applications would not have to be modified. A little hook in the IP stack to monitor incoming and outgoing traffic and making a decision on that to reselect to a different access network, while keeping the IP address, shouldn't be to difficult to get into an OS. Maybe something for an Android programmer? Or will Apple or the Symbian foundation be faster?

Other alternatives to make mobile Internet access for background applications more power effective could be the package of Continuous Packet Connectivity features of HSPA+ (see here, here and here) or the new air interface of LTE. But if they are as efficient as GPRS/EDGE and how long it takes for them to become available remains to be seen.

Qt on S60

This week, Trolltech / Nokia have released their Qt cross platform application framework for the Symbian / S60 platform, the OS and GUI of Nokia's flagship N- and Eseries phones. Qt is probably best known as the toolkit used in KDE, one of the most popular graphical user interfaces for Linux and programs such as Skype and Google Earth. The promise of this framework is to code once and deploy everywhere.

Qt does not only standardize GUI development across platforms but has many libraries to do other tasks such as networking, database access, scripting, etc. in a cross-platform way. With three mobile platforms now supported, i.e. Windows Mobile, mobile Linux and S60, it will become easier than ever do write mobile software for different hardware platforms.

Despite using the native GUI elements of the different OSes I wonder how Qt applications will look like on S60!? Will programmers be sensitive enough to customize the user interface of their programs to the look and feel of the individual operating systems, which of course reduces the benefits of the cross platform approach, or will they go for a more relaxed style and try to make the application work the same on all platforms they plan to make their application available? Or maybe the major benefit of this move is less cross-platform deployment and more attracting developers to the S60 platform that already know Qt? Time will tell.

Nokia and Open Source

Stefan Constantinescu over at Intomobile made me aware of an interesting podcast with Ari Jaaksi he must have given recently at an open source developer conference (not sure which one).  In the podcast, Ari talks about Nokia’s involvement and interest in Open Source for their Internet tablet and for the open source based applications on their S60 platform (e.g. the Webkit browser).

It’s interesting to compare Nokia’s Open Source involvement with that of Google/Android: Nokia uses Open Source software to create their own (hardware) products. This is good for them because they can build products quicker, it’s good for the open source community as the contribute back to the community, and it’s good for application developers as they have a reasonably open platform for which they can develop their applications.

Google’s approach with Android, however, is quite different. Their interest is creating a platform for themselves and others so that hopefully many companies develop devices and software based on Android.

In the short term, Nokia’s concept works quite well as the Internet tablets they have built around their Maemo platform are great and there is not yet much competition. In the mid- and long term, however, I see their approach sidelined a bit once Linux in general and Google/Android in particular become more widespread in the mobile world. And Intel is pushing with their Mobile Internet Devices, too, likely to become a nice hardware platform in the future for new device manufacturers which then need to look for an open OS. Nokia’s Maemo is then just one of many Linux based partly/fully open operating system but limited to Nokia products while other Linux based OS’es will run on more devices.

What do you think, might there be a point when Nokia opens up Maemo for third party devices?


Jazelle: Executing Java ME Bytecode in Hardware

From time to time I have wondered before why current mobile phones are able to execute Java ME applications so well and with good performance. To me this was a bit surprising to me since Java ME programs are not compiled for a specific hardware platform but instead into a machine independent ‘byte code’. This enables Java applications to run on a wide variety of Java enabled handsets. To execute machine independent byte code a Java Virtual Machine (JVM) is required. On the PC for example, JVM’s are implemented in software. On mobile devices, however, I found out today that ARM for example offers a CPU operating mode referred to as Jazelle which executes Java byte code in hardware. This way Java applications can be executed much faster as if a software JVM interprets the byte code. Pretty slick! For details see the Wikipedia entry on ARM processor and ARM’s description of Jazelle.

P.S.: A long time ago Sun, the inventor of Java, tried hard to push JAVA CPU’s for desktop machines but never really succeeded. Now, a decade later, there are indeed Java CPU’s, just for a slightly different purpose. Looks like there were a bit ahead of the time.

When ARM and Intel meet on Mobile Devices

Interesting times ahead in the mobile hardware world. Today, most mobile, wireless and embedded devices are based on a chip with a processor design from ARM. Although many companies such as Texas Instruments, Marvell, STM, VLSI etc. design and produce chips for small devices, most are based on a CPU core licensed from ARM. On the desktop and PC world, things are equally clear with Intel’s x86 design dominating. With both architectures now targeting powerful mobile devices, these two worlds are about to collide.

The ARM design was initially targeted at ultra low power embedded devices. As technology evolved so did ARM’s design of their processors and it is estimated that an ARM processor core is used in 95% of mid- to high-end mobile phones today. The current ARM-11 high-end platform for example is used in devices such as Nokia’s N-series phones like the N95 and in Internet tables like for example the Nokia N800 and N810. The ARM-11 platform is the result of a bottom-up approach, as it has evolved from earlier platforms for simpler devices. According to ARM’s web page all phones of mobile giants such as Sony Ericcson, Nokia, LG, Samsung, etc. are ARM powered. This shows how flexible the ARM architecture is today since requirements range from voice telephony with ultra ultra low power requirements to full blown multimedia devices. Today, a lot of operating systems support the ARM architecture. Examples are fully embedded operating systems of low-end to mid-range mobile devices to operating systems for smartphones like Symbian, Windows Mobile and these days also Linux. Linux is about to become popular in the mobile device world e.g. with Nokia’s Internet tablets and in the future with devices built around Google’s Android OS. The advantage of using Linux on mobile devices is the wide variety of available software from the Linux desktop world, which often only has to be slightly adapted and recompiled for the ARM processor architecture.

On the other end there is Intel who seems to be keen to enter the mobile space with it’s x86 processor line. A couple of years ago they tried to get a foothold in the mobile space by licensing ARM technology and building a product line around that. However, they have since abandoned this approach and are now tuning their x86 architecture for low power consumption and ultra small packaging. This is kind of a top-down approach, i.e. streamlining a desktop processor architecture for smaller devices. Their advantage: No or few adaptations are required to run applications written for the desktop. Adaptation is usually only required for smaller screen sizes, mobile device specific desktop environments and less disk and memory capacity. In theory, Microsoft Windows can also run on x86 based devices but in practice it is too resource hungry.  On the downside, Intel’s platform for Mobile Internet Devices (MIDs) and Ultra Mobile PCs (UMPCs) does not have a native cellular interface like ARM has. Thus, device manufacturers have to look around for additional chips in case they want to put 3G connectivity into their devices. Intel, however, will surely use their mobile platform to combine it with their own WiMAX chips.

For the moment, Intel and ARM have not made contact yet. Intel’s design is still too heavy for most mobile devices but they have gained a lot of ground lately. ARMs architecture on the other hand keeps pushing forward with increased processing power and additional functionality embedded in the main chip. Give it another 12-18 months, however, and I think they will have similar offers for mobile devices. Expect heavy architecture competition.

Further resources: