In many ways, Linux is similar to other operating systems such as Windows, OS X or iOS, in that Linux has a graphical interface and types of software you are accustomed to using such as word processing applications and many others that have Linux equivalents.
But Linux is also different because as an open source OS, the code used to create Linux is free and available to the public to view, edit, and—for users with the appropriate skills—to contribute to.
Some would say the heart of the embedded Linux system is the Linux kernel architecture. The Linux kernel is one layer in the architecture of the entire Linux system. The kernel is conceptually composed of five major subsystems: the process scheduler, the memory manager, the virtual file system, the network interface, and the inter-process communication interface.
These subsystems interact with each other using function calls and shared data structures.
The Linux kernel subsystems maintain internal representation consistency by using a specific procedural interface. Each of the subsystems is composed of modules that communicate only with adjacent layers.
Analysts believe the conceptual architecture of the Linux kernel has more than proven its success. Essential factors for this success were the provision for the organization of developers, and the provision for system extensibility. The Linux kernel architecture was required to support a large number of independent volunteer developers.
This requirement suggested that the system portions that require the most development — the hardware device drivers and the file and network protocols — be implemented in an extensible fashion.
The Linux architect chose to make these systems be extensible using a data abstraction technique: each hardware device driver is implemented as a separate module that supports a common interface.
In this way, a single developer can add a new device driver, with minimal interaction required with other developers of the Linux kernel. Many in the industry feel that the success of the kernel implementation by a large number of volunteer developers proves the correctness of this strategy.
Want to learn more? Tonex offers Embedded Linux System Overview training, a 2-day course that gives participants a solid understanding of Linux kernel and libraries and utilities for embedded applications.
Learn about tools and techniques to develop an embedded Linux device. The use of Linux in embedded products has increased in recent years, with Linux now being used in many consumer electronic devices, medical devices, wearable gadgets and military applications.
For more information, questions, comments, contact us.