Notes and Experiences of Learning Embedded Linux System Notes and Experiences of Learning Embedded Linux System A typical desktop Linux system consists of three main software layers---Linux kernel, C library and application code. The kernel is the only layer that can fully control the hardware, and the kernel driver represents the application to communicate with the hardware. Above the kernel is the C library, which is responsible for converting POSIX API into a form that the kernel can recognize, and then calling the kernel to pass parameters from the application to the kernel. The application relies on the driver kernel to complete specific tasks. When designing embedded applications, you can not follow this hierarchy. The application can directly communicate with the kernel by bypassing the C library, or the application and the kernel can be bundled together, or even the application can be written as a thread of the kernel and run in the kernel. Although this brings difficulties in porting, it is completely feasible considering the small size requirements of embedded systems. However, our use of the three-layer software structure model to learn embedded Linux will make us understand more clearly, simple and feasible, and make the application flexible. Quick Start The easiest way to build an embedded Linux application is to start with the desktop Linux we use, install a favorite version, and use one of our applications as part of the initialization, and the framework is complete. Of course, embedded Linux applications are much simpler and more specialized than our desktop versions. It may be a terminal for football betting or a digital audio player. In addition to using an embedded CPU, these systems only need a serial port, network port and other small input and output interfaces to complete their specific applications. In terms of software, it can be composed of a kernel loader, a customized kernel and a small number of statically linked applications designed for specific tasks according to the three-layer concept. The reason for using statically linked applications is that the storage space required by a small number of statically linked programs is smaller than the space occupied by the same number of dynamically linked programs. This balance point needs to be obtained in actual development. Maybe you are designing a PDA with many applications, so you may have to use dynamic linking programs to reduce storage space. In your /bin or /sbin directory, use the factory list to see bash, ifconfig, vi..., maybe only a few dozen K, when you run ldd /b...
You Might Like
Recommended ContentMore
Open source project More
Popular Components
Searched by Users
Just Take a LookMore
Trending Downloads
Trending ArticlesMore