Embedded Linux Native or Java?

Linux is unique because one has the options to either go native or go virtual machine via Java. This is because Microsoft will always go for native, not until .NET was created. However, Microsoft .NET is still proprietary.

Embedded Linux is an optimized OS of Linux of smaller-footprint nature. And there is a difference between embedded Linux native and embedded Linux Java.

Embedded Linux Java
For this type of OS, JVM technology will be incorporated into it. Thus, the OS actually uses Java classes from MIDP and CLDC packages closely.

This is better known as software platform, because its primary objective is to be hardware independence. For instance, let take one example called the Embedix Plus by Lineo Inc, where it incorporates the following components into one platform.

1. Embedded Linux
2. Embedix SDK
3. Jeode JVM
4. Opera Web Browser

Essentially, this type should be known as Embedded-Linux-VM (virtual machine), putting considerations of availability of JVM and .NET

Embedded Linux Native

The OS uses C/C++ objects. One of such example is qtopia.

This is better known as hardware platform.

How they Compete ?
Of course both types of platforms wanted to sell to OEM or embedded device manufacturers. To do that, they need to prove a good case for each of the following criterias:

1. Faster TTM (Time to Market)
2. Cheaper total development cost

Therefore, essentially, embedded Linux-VM would provide justification where by manufacturers can achieve the abovementioned winner-criterias by following the integrated specifications already considered well researched and proven. This goes on to imply that when choosing microprocessor for a particular project, there are two options:

1. Choose the one (out of so many) which comes out with the best performance with respect to the software platform.
2. Choose the few which are recommended by platform providers (Lineo Inc). For instance, Java based microprocessor is one of such.

As for Embedded Linux Native, processes are more complex because SDK needs to be customized according to microprocessor specifications. Compare with Embedded Linux Java, it seems that the former has to incur higher cost and thus failling the stated criterias.

Different Marketing Strategies

Therefore, both would be marketed differently ?

For Embedded Linux-VM, the target should be directed at device manufacturers who don't have the capability of producing own microprocessors.

As for Embedded Linux-native, it should be marketed for device manufacturers with microprocessors producing ability as well as microprocessor producers such as Intel.

JVM Support
The big confusion is that both platforms (software-centric and hardware-centric) are also capable of supporting Java. This is because for the case of embedded Linux native, manufacturers can also integrate third party JVM to it so that end-users may be able to install Java-based applications at home.

Thus, the difference is that for Embedded Linux-native, core applications (such as phone book, voice controller and etc) are build using native languages such as C/C++, because the core system works closely with objects from such classes.

For Embedded Linux-Java, core applications are written in Java. One good example is Nokia 6610, where the OS is called Nokia OS (I am not sure if it evolved from Linux), however, the core objects are based on Java MIDP and CLDC.

How to differentiate ?
One good way to is to check out the developer documentation because that is the place where it exposes information about APIs.

Nokia OS

One CANNOT tell merely from the phone specifications ... For instance, refer to the following phones...

Motorola E680
Motorola A760

Both uses Linux for the OS, but which type ?


barramundi said…
Have you heard of TRON?
Anonymous said…
Looking for information and found it at this great site... » » »