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.
Systems
There are two types of system
1. 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.
2 . 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.
Processors
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.
BIOS
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
SDRAM
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 –xvzf 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