[Organization] Differences and connections between uclibc, eglibc, and glibc

[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

3.  uclibc and 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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325027207&siteId=291194637