Saturday, February 27, 2010

Anatomy of an Embedded Linux System

At runtime, an embedded Linux system contains the following software components:

• Boot loader: What gets the operating system loaded and running on the board.

• Kernel: The software that manages the hardware and the processes.

• Root file system: Everything under the / directory, containing the programs run by the kernel. Every Linux system has a root file system. Embedded systems have a great amount of flexibility in this respect: the root file system can reside in flash, can be bundled with the kernel, or can reside on another computer on the network.

• Application: The program that runs on the board. The application can be a single file or a collection of hundreds of executables.

All these components are interrelated and thus depend on each other to create a running system. Working on an embedded Linux system requires interaction with all of these, even if your focus is only on the application.

If you’re new to Linux but have used other commercial embedded solutions, the notion of a distinct kernel and root file system can be disorienting. With a traditional embedded solution, the application code is linked into a binary image with the rest of the embedded OS. After initialization, the operating system calls a function that is the entry point into your code and starts running.

Source of Information : Pro Linux Embedded Systems (December 2009)

No comments: