[Introduction to glibc, uclibc, eglibc]
1.Glibc
glibc = GNU C Library
Is the GNU Project (GNU Project) project, the implementation of the C language standard library (C standard library).
At present, this set of C language standard library is used in common desktop and server GNU/Linux systems.
It implements the functions of common C libraries, supports many kinds of system platforms, and has complete functions, but it is also relatively bloated and huge.
2.uClibc
A small C language standard library, mainly for embedded use.
It was originally designed for uClinux (Note: uClinux does not support MMU), so it is more suitable for microprocessors.
Correspondingly, the u here means μ, Micro, and tiny.
Features of uClibc:
(1) uClibc is much smaller than glibc.
(2) uClibc is independent and completely re-implemented in order to be applied to embedded systems. It is not compatible with glibc in terms of source structure and binary.
3.EGLIBC
EGLIBC = Embedded GLIBC
EGLIBC is a (new) variant of glibc, introduced by (later) FSF, the original author of glibc, for the purpose of using glibc for embedded systems.
The goals of EGLIBC are:
(1) Keep source and binary levels compatible with Glibc
Source code architecture and ABI level compatible
If this goal is really achieved, it means that the program you compiled with glibc before can be directly replaced with eglibc without recompiling.
In this way, many of the previous programs can be reused.
(2) Reduce (memory) resource occupation/consumption
(3) Make more modules configurable (to tailor unneeded modules on demand)
(4) Improve support for cross-compilation and cross-testing
The main feature of Eglibc is that it can be configured, so that in the embedded system, modules that you do not need, such as NIS, locale, etc., can be cut out and not compiled into the library, which reduces the size of the generated library. .
For more features, you can go to: Features of Eglibc
[The origin/history/difference/connection of glibc, uClibc, Elibc]
1. To write a program, you need to use a lot of C language library functions. All library functions add up to the corresponding C language (standard) function library.
2. The C language standard library currently used in ordinary GNU/Linux systems is called glibc. Its functions are very complete and there are many functions, but there are too many codes, and the size of the compiled function library is also very large, that is, it occupies a lot of resources.
3. In embedded systems, C language is also required to write code to achieve specific functions, and C language function libraries are also required. However, due to the limited resources in embedded systems, it is not suitable for direct use (too resource-intensive) gLibc.
4. So someone (without referring to glibc, but starting from scratch) re-implemented a C language function library called uClibc for use in embedded systems. . Also, uClibc does not support MMU (Memory Management Unit).
5. Later, the developers of glibc launched an Embedded glibc, or eglibc for short, whose main purpose is to use glibc in the embedded field.
The biggest change is to change more library functions to configurable ones, so that if you don't need some functions in your embedded system, you can cut them out and not compile the functions into your eglibc library , make the size of the final generated eglibc library smaller, and finally meet the requirements of your embedded system (no more than a certain size), so that the purpose of referencing glibc to the embedded system is achieved.
It can be simply understood as:
glibc, uClibc, eglibc are all C language function libraries:
1. uClibc is used in embedded systems (MMU is not supported), glibc is used in desktop systems
2. eglibc is also used in embedded systems (with less resource consumption), it is an embedded version of glibc, and is compatible with glibc in source and binary.
other:
For "the difference between eglibc and glibc" and "the difference between uClibc and glibc", you can also refer to: Difference between uClibc, eglibc and glibc
Which is quoted, the foreigner wrote:
http://www.uclibc.org/downloads/Glibc_vs_uClibc_Differences.txt
Which is introduced in detail, the comparison of the technical details of uclibc and glibc.
If you are interested in the details, you can go and see.
【References】
1.uClibc
2. EGLIBC
4. Difference between glibc, eglibc and glib
5. Difference between uClibc, eglibc and glibc
Please indicate: On the road » [Organization] Differences and connections between uclibc, eglibc, and glibc