About Embedded Linux

Introduction
          Linux has suddenly become  the choice for embedded devices.The reasons for this change are  many ,we shall try here to count a few prominant ones and give a brief description for the same.
                As we know linux as desktop platform has gained wide acceptence -more so for runnig on servers. The shift from other platforms to linux has been fueled by the stability,evolution of the platform to cater to varied needs of users and device manufacturers. The device suport for the platform is increasing with drivers being written for new and newer devices  as the platform is gaining favours of device manufacturers.
    But the greatest thing to have allowed this all to happen is free availability of source and thus a large community of developers that work together to create the great support network for the platform.Similar reasons  apply to growth of linux as an embedded platform.Here we shall try to enumerate a few discretely.

Advatages:
a)Linux Architecture & Open Source :
                The effect of this great advantage needn't be described - the  gains are obvious.We have full control over the kernel code which helps alot in the   development process.The design of the kernel to support muliple platforms ,with clear identification of arch,h/w dependent part has helped tremendously in integration of support for various platforms to the kernel.
    Linux being open source helps people share resources and collaborate on the development of support openly with no associated issues of other proprietary  OS.

b)Lot of driver support:
                With increase in device support ,the number of different embedded applications that can use linux as their platform has increased many folds over the last few years.Besides these drivers themselves are freely available under GPL .This adds reliability since they have been tested on h/w by many people.With such community work and sharing of information bugs get removed fast.

c)Active linux development groups and mailing lists:
                Linux is one of the blessed platforms that has got tremendous support form individuals how are actively involved in development and porting of linux for different platforms.Thus there are ports of linux available for various h/w combinations avaible on the net.Add to that the mailing lists that these people maintain and we can imagine how easy it becomes to start on a new architecture and get it working well in a small time.

d)Increasing processing power and ram size:
                We have much bigger ram and processing power available these days on the new embedded devices ,with MMU,networking support and many peripherals.Which makes the tidious task of writing a custom kernel and then worrying about making it capable of multitasking rather unnecessary. So for most purposes just porting linux for the architecture and then using the appropriate cross-compilers suffices.In fact linux has been ported for devices as diverse as from mictocontrollers(without the elaborate MMU setups-refer to ucLinux) to  complex SoCs  like the OMAP that we are working  with.

e)Networking support:
              Linux network stack is known to function very well and embedded linux brings the same advantage to the new embedded device which are increasingly becoming network oriented.

f)Human interaction:
                Linux works just well for making interactive embedded devices with many small GUI toolkits available for video interaction with the user.There are many video h/w handling libraries available that give good fuctionality in as small as 100 KB of ram-size.


A few Good Sites to read about scope and advantages of embedded linux:
http://www.linuxdevices.com
http://www.uclinux.org
http://www.mvista.com/dswp/index.html
http://www.mvista.com/dswp/Leveraging_Linux.pdf

About the 2.6 kernel that is even better for embedded

Another document from RedHat

A document from Mayan& Ankit on similar issues


Avinash Prasad
Dec'2003