Home >Operation and Maintenance >Linux Operation and Maintenance >what is embedded linux
embedded linux refers to embedded Linux, and embedded Linux refers to the standard Linux that has been miniaturized and tailored to be solidified in a memory chip or microcontroller with a capacity of only a few K or M bytes, which is suitable for A dedicated Linux operating system for specific embedded applications.
#The operating environment of this tutorial: linux7.3 system, Dell G3 computer.
What is embedded linux?
refers to embedded Linux.
1. Embedded Linux (Embedded Linux) refers to the standard Linux that has been miniaturized and cured into a memory chip or microcontroller with a capacity of only a few K or M bytes, suitable for specific embedded applications. A dedicated Linux operating system for typical applications.
2. Characteristics of Embedded Linux
Copyright fee: free;
Purchase fee: media cost;
Technical support: free software around the world Developers provide support;
Network features: free and excellent performance;
Software porting: easy, open code, supported by many application software;
Application product development cycle: Short, new products are launched quickly because there are many public codes that can be referenced and transplanted;
Real-time performance: RT_Linux, hardhat Linux and other embedded Linux support real-time performance;
Stability: good;
Security: Good.
3. Market Prospects and Business Opportunities of Embedded Linux
Embedded Linux has huge market prospects and business opportunities, and a large number of professional companies and products have emerged, such as Montavista, Lineo, Emi wait. There are industry associations, such as Embedded Linux Consortum, etc. It is supported by world-renowned computer companies and OEM board-level manufacturers, such as IBM, Motorola, Intel, etc. Traditional embedded system manufacturers have also adopted Linux strategies, such as Lynxworks, Windriver, QNX, etc. There is also support from a large number of embedded Linux enthusiasts on intelnet. Embedded Linux supports almost all embedded CPUs and is ported to almost all embedded OEM boards.
IV. Application fields of embedded Linux
Embedded Linux has a wide range of application fields. The main application fields are information appliances: PDA, STB-Set-stopbox, Digital Telephone, Answering Machine, Screen Phone, data network: Ethernet switches, Router, Bridge, Hub, Remote access servers, ATM, Frame relay, remote communications, medical electronics, transportation, computer peripherals, industrial control, aviation fields, etc.
5. Advantages of embedded Linux
The development and research of embedded Linux is a hot spot in the field of operating systems. About half of the embedded systems that have been successfully developed currently use It's Linux. The reason why Linux can achieve such brilliant results in the embedded system market is inseparable from its own excellent characteristics.
1. Extensive hardware support
Linux can support multiple architectures such as x86, ARM, MIPS, ALPHA, PowerPC, etc. It has been successfully transplanted to dozens of hardware platforms and can almost run On all popular CPUs. Linux has an unusually rich driver resource, supports a variety of mainstream hardware devices and the latest hardware technologies, and can even run on processors without a memory management unit (MMU), which further promotes the application of Linux in embedded systems.
2. The kernel is efficient and stable
The efficiency and stability of the Linux kernel have been verified by a large number of facts in various fields. The Linux kernel design is very exquisite, divided into process scheduling, memory management, process It consists of five parts: inter-communication, virtual file system and network interface. Its unique module mechanism can insert or remove certain modules into the kernel in real time according to user needs. These characteristics allow the Linux system kernel to be tailored very compactly, which is very suitable for the needs of embedded systems.
3. Open source code, rich software
Linux is an open source free operating system, which provides users with the greatest degree of freedom. Since embedded systems vary widely, they often need to be customized for specific applications. To modify and optimize your application, access to the source code becomes critical. Linux software resources are very rich. Almost every common program can be found on Linux, and the number is still increasing. When developing embedded application software on Linux, you generally do not need to start from scratch. Instead, you can choose a similar free software as a prototype and carry out secondary development on it.
4. Excellent development tools
The key to developing embedded systems is a complete set of development and debugging tools. The traditional embedded development and debugging tool is the In-Circuit Emulator (ICE), which provides a complete simulation environment for the target program by replacing the microprocessor of the target board, so that developers can clearly understand The working status of the program on the target board facilitates monitoring and debugging the program. Online emulators are very expensive and are only suitable for very low-level debugging. If you are using embedded Linux, once the software and hardware can support normal serial port functions, you can develop and debug well without using an online emulator. work, thereby saving a considerable amount of development costs. Embedded Linux provides developers with a complete tool chain (Tool Chain). It uses GNU's gcc as the compiler and gdb, kgdb, and xgdb as debugging tools. It can easily implement everything from the operating system to application software. level of debugging.
5. Complete network communication and file management mechanism
Linux has been inseparable from the Internet since its birth, supports all standard Internet network protocols, and is easily transplanted to embedded systems among. In addition, Linux also supports file systems such as ext2, fat16, fat32, romfs, etc., which lay a good foundation for the development of embedded system applications.
6. Challenges of Embedded Linux
At present, the research and development boom of embedded Linux systems is booming and occupies a large market share. In addition to some traditional Linux companies (such as RedHat , MontaVista, etc.) are engaged in the development and application of embedded Linux, famous companies such as IBM, Intel, and Motorola have also begun to conduct research on embedded Linux. Although the prospects are bright, for now, there is still a gap between the research results of embedded Linux and the real requirements of the market. To develop a truly mature embedded Linux system, efforts need to be made in the following aspects.
1. Improve the real-time performance of the system
Although Linux has been successfully applied to various embedded devices such as PDAs, mobile phones, car TVs, set-top boxes, network microwave ovens, etc., it is still used in medical, It cannot be directly applied in situations with very strict real-time requirements such as aviation, transportation, and industrial control. The reason is that the existing Linux is a general operating system. Although it also uses many technologies to speed up the operation and response of the system, And it complies with the POSIX 1003.1b standard, but is not essentially an embedded real-time operating system. The Linux kernel scheduling strategy basically follows that of the UNIX system. Applying it directly to the embedded real-time environment will have many defects, such as interrupts being turned off when running the kernel thread, time uncertainty in the time-sharing scheduling strategy, and Lack of high-precision timers and so on. For this reason, using Linux as the underlying operating system and performing real-time transformation on it to build an embedded system with real-time processing capabilities is an increasingly popular solution.
2. Improve the kernel structure
The Linux kernel adopts a monolithic structure. The entire kernel is a separate, very large program. This allows all parts of the system to directly Communication can effectively shorten the switching time between tasks and improve the system response speed, but it is not consistent with the characteristics of small storage capacity and limited resources of embedded systems. Embedded systems often use another architecture called microkernel, that is, the kernel itself only provides some of the most basic operating system functions, such as task scheduling, memory management, interrupt handling, etc., and is similar to the file system Additional functions such as network protocols and network protocols run in user space and can be selected based on actual needs. Although the execution efficiency of Microkernel is not as good as that of Monolithic, it greatly reduces the size of the kernel, facilitates maintenance and transplantation, and can better meet the requirements of embedded systems. You can consider transforming the Linux kernel part into a Microkernel so that Linux can have high performance while meeting the small size requirements of embedded systems.
3. Improve the integrated development platform
The introduction of the embedded Linux system integrated development platform is an intrinsic requirement for the further development and application of embedded Linux. Traditionally, embedded systems are oriented to specific applications, and software and hardware must cooperate closely. However, with the continuous expansion of the scale of embedded systems and the continuous expansion of application fields, the emergence of embedded operating systems has become a This is inevitable, because only in this way can embedded systems develop in a hierarchical and modular direction. Obviously, the embedded integrated development platform is also in line with the above development trend. An excellent embedded integrated development environment can provide relatively complete simulation functions and can realize the simultaneous development of embedded application software and embedded hardware, thereby getting rid of the "embedded The development of application software relies on the development of embedded hardware and is predicated on the development of embedded hardware." A complete embedded integrated development platform usually includes a compiler, connector, debugger, tracker, optimizer and integrated user interface. Currently, Linux is in the research of specific system customization platforms based on graphical interface, and commercial embedded systems such as Windows CE There is still a big gap compared with traditional operating systems, and the overall integrated development environment needs to be improved and perfected.
Related recommendations: "Linux Video Tutorial"
The above is the detailed content of what is embedded linux. For more information, please follow other related articles on the PHP Chinese website!