Operating system (OS) is the heart of any computer device controlling tasks like process scheduling, memory management, and driver implementation. There is a large difference between OS used in main frame or desktop computers, and embedded systems
Embedded Systems
An embedded system is a miniature computer used to perform a single task. This could be a medical device monitoring heartbeat, or a flight control system. Because of size constraints, the processing power as well as memory/storage capacity is less for the same.
Enter the brain
Embedded Linux is a stripped-down version of the original Linux kernel, used in desktops. What makes it different is its capability to run in low power embedded systems, such as smart phones, tablets, medical equipment and avionics system. This OS is a classification of RTOS (Real time operating systems). It means they process data in real time mostly from sensors measuring humidity or temperature, and provide output within a fixed deadline
Components
The main components are listed as below
- Kernel: The heart of the system, it forms as a bridge between the hardware and software. Other functions include memory management, process scheduling and driver implementation.
- Bootloader: Is initiated when the device is powered on. Performs checks on hardware peripherals for errors, as well as loads the Linux kernel to memory.
- Root file system: Contains files and directories used by the operating system. Also includes configuration files, that if tampered can cause runtime error. Malwares usually target this area to gain access to the system
- Device drivers: They are the firmware that communicates between the hardware peripherals and the OS. Drivers provide information about the device type, function and connection port. This helps for isolating the peripherals from high level programming.
A feature provided by Linux kernel, where code can be transported from one machine to the other. Since embedded system lack processing power, code compilation is done on a more powerful system. This can be a desktop PC or a laptop where the code is debugged and checked for error. Then the same is uploaded to the target device. USB (Universal Serial Bus) port is used as the hardware link/connection.
User Space Application
This is the area where the user interacts with the device. This can be a GUI (Graphical User Interface) on an external display. Hardware/Software calls are made to processor such as x86/x64 or an ARM chip from the Linux kernel.
IOT Device
Smart devices have seen a large hype recently, whether it being a personal digital assistant or a smart door lock. Embedded Linux is well suited for these type of applications because of high security, open-source status and good developer support. It seems the Linux kernel is here to stay
Comments
Post a Comment