You’ve no doubt heard of Linux! Linus Torvalds , the inventor of Linux, was quoted as saying ” Linux will never run on anything but a PC with an IDE hard disk since that is all that I have”
Embedded Linux is a type of Linux operating sytem / kernal that is designed to be installed and used within embedded devices and appliances like television sets. Embedded Linux is quite different from the standard Linux OS. It is specifically customized for embedded systems.
What is Linux ?
Just like Windows XP , 8 and MAC OS X , Linux is an Operating System. An Operating System is a software that manages various hardware resources associated with a desktop. Linux is distributed under an open source license. It includes freedom to run the program for any purpose, to redistribute copies, to distribute modified copies, study how the program works and modify it. Get started : OpenSource
Let us discuss certain pieces of the operating system :
- The Bootloader : The software that manages the boot process of the computer.
- The Kernel : This is one piece of the whole which is actually called “Linux”. It is the core of the system and manages CPU, memory. It is the “lowest” level of the OS.
- The Shell : Linux command line which allows you to control the computer via commands typed into text interface.
- Graphical Server : This is the subsystem that displays on your computer ( commonly the X Server )
- Desktop Environment : Each environment includes built in applications. Ex- Gnome ( which I have crashed a lot of times)
Characteristics of an Embedded System
- Contains a processing system
- Designed for a specific purpose
- Often resource limited
- Power limited
BIOS Vs Bootloader
- The BIOS (Basic Input Output System) is a firmware code that lives in the flash memory (Lives in Flash to facilitate field upgrade of BIOS itself) on the motherboard.
- BIOS is a complex set of system-configuration software routines that have knowledge of the low level details of the hardware architecture.
- When power is applied to the desktop computer, BIOS immediately takes control of the processor which is a critical piece of desktop computer.
- The primary responsibility is to initialize the hardware, especially the memory subsytem, and load an OS from PC’s hard drive.
- In a typical embedded system, a bootloader is the software program that performs a similar function.
A Bootloader performs the following functions :
- Initializes critical hardware components, such as SDRAM controller ( we will discuss it in detail in the coming lessons ) , graphic controllers.
- Initializes system memory in preparation for passing control to the OS ( A very important concept we are going to deal in future )
- Provides a mechanism for locating and loading your OS image.
Don’t you remember this ?
If you face difficulty in understanding certain terms, do not worry. We will go into every detail in the coming chapters. This was an introductory lesson. Later on, I’m gonna show you the types of memory in Arduino, how to integrate the concepts which will help in understanding the basics of an embedded system. Next lesson : Booting process