What is Embedded Linux?
        Embedded Linux is one of the emerging fields in Embedded Systems allowing the engineers to be flexible in implementation of bigger tasks.
    It is mingled with day to day life such as mobile phones, home security systems and house hold equipments. It also has a great impact on achieving difficult tasks such as missile launching.
    To make it clear, it is nothing but the implementation of RTOS Linux kernel (core) in the processor for doing difficult tasks.


There are two types of systems as shown in the fig.
General Purpose Systems
    These systems refer to the computers which we are using in the houses and offices. General purpose systems act as a general platform for programming and performing certain other tasks.
    General purpose systems prefer an operating system which may be UNIX, GNU/LINUX or Windows.
     Here are some of the advantages of LINUX over other Operating System:
•    Free of cost (usually called open source).
•    Supports multi-user (First operating system to support multi user. In olden days one server carried an OS while other shares the same processor in the server).
•    Flexible for programming.
•    Better Security (It has the best security than any other operating system).
General purpose systems can perform any task but in small applications there
Is no need for bigger OS and hardware system. To overcome this concept Embedded System came, which is explained in the following section.
Embedded Systems
    Embedded Systems are different from that of the general purpose system. This system is generally of resources constrained. The resources refer to the hardware components.
    Embedded Systems may or may not require an RTOS, whereas general purpose systems always do need an OS.
Difference between RTOS and OS
    In general we hear the term OS which is nothing but the Operating System. Most of us are familiar in using the Operating Systems such as Windows 98, Windows XP etc. There is a new term used in the Embedded Systems named RTOS which is a Real Time OS.

Embedded OS

    Operating systems are widely used in general purpose systems which may be LINUX or Windows. All operating systems uses an important concept called Time Sharing.
    Time Sharing is nothing but performing many operations at a time, this has been take care by the OS.
    The concept of time sharing can be best understood from the following figure.

            The concept of DMA also comes into the picture in time sharing. In general purpose systems the tasks are allocated at different time slots. The user does not have any idea when the task will be completed.

Embedded RTOS
    The RTOS are similar to the operating system but has smaller kernel (core of the operating system) size. It also uses the time sharing concept.
    In general purpose the allocation of time can be adjusted by the OS, but in RTOS the time cannot be adjusted.


     The General purpose systems use x86 processor.
    Embedded Systems use controllers or processors such as ARM, FPGA etc.

Compiling and Cross Compiling

        The RTOS cannot be used as such like an operating system. It has to be cross compiled for the particular processor. Other packages such as BIOS programming, Boot loader and Root file system also has to be used in Embedded linux environment.


    Basic Input Output System is the firmware that initializes the system. BIOS Programming has to be written and stored in to the flash memory.

Boot loader   

    An important package which is responsible for the kernel on the memory.
In General Purpose System Linux uses GRUB boot loader whereas the Embedded Linux system uses the U-boot bootloader.
Linux kernel
    Lot of Linux kernel versions are available which can be cross-compiled for particular processor.

Root file system
    Root file system contains all the binaries of the operating system.

Steps to make an Embedded Linux System to boot up
Hardwares used
    Processor – s3c2440
    Nor flash
    Nand flash
Software packages
    Linux kernel 2.6.29
    u-boot bootloader
    busy box

Compilation steps for linux kernel
Step 1:
    tar –xvvzf arm-linux-gcc.tar.gz
    unpacking the gcc compiler.
Step 2:
    Export PATH=$PATH:~/usr/local/arm/4.3.2/bin   
    The tool chain for compiler is set
Step 3:
     Tar –xvvzf linux-2.6.29.tar.gz.
    Unpacking the kernel
Step 4:
    Make ARCH=arm CROSS_COMPILE=~/usr/local/arm/4.3.2/bin/
Step 5:
    Make ARCH=arm CROSS_COMPILE=~/usr/local/arm/4.3.2/bin/ -uImage

Linux Kernel NutShell Configuration Tutorial part 1

Linux Kernel NutShell Retrieving Tutorial part 2

Linux Kernel NutShell Installing Tutorial part 3
List of Embedded System Companies in India
Linux Kernel NutShell Configuration Tutorial part 1


  1. naveen January 11, 2011 at 6:47 PM  

    Hai i am doing Mtech in embedded systems can u suggest some usefull projects that can be implemented using this embedded kernel. I am a beginner in this field. Can you help me please.
    thanking you
    Naveen R