Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 1|Răspunde: 0

[Linux] Diferențe între bibliotecile standard glibc și musl în mediul Linux

[Copiază linkul]
Postat peAcum 44 de secunde | | | |
musl Linux și glibc sunt două implementări diferite ale bibliotecii standard C și diferă semnificativ în mai multe privințe.

Istoric și utilizare:

glibc este una dintre cele mai vechi și mai utilizate implementări de biblioteci standard C, cu o istorie îndelungată de dezvoltare și un sprijin larg pentru comunitate. Este adoptat de majoritatea distribuțiilor Linux, în special în medii desktop și server.
musl este o implementare relativ nouă, concepută pentru a oferi biblioteci C mai mici, mai rapide și mai sigure. A fost adoptat de unele distribuții Linux ușoare, cum ar fi Alpine Linux.

Caracteristici și compatibilitate:

GLBC este cuprinzător și complex, suportând multiple extensii și funcții, cu stabilitate și fiabilitate ridicate.
Deși musl are mai puține funcționalități, urmează strict standardul POSIX și are mult mai puțin cod decât glibc, fără a necesita dependențe externe suplimentare. Compatibilitatea binară a MUSL este limitată, dar odată cu lansarea noilor versiuni, compatibilitatea se îmbunătățește treptat.

Performanță și utilizare a resurselor:

MUSL este proiectat să fie ușor, potrivit pentru sisteme încorporate și medii cu resurse limitate și poate crea fișiere executabile statice compacte.
Deși GLBC este puternic, s-ar putea să nu fie la fel de bun ca MUSL în ceea ce privește utilizarea resurselor și performanța.

Depanare și suport pentru dezvoltare:

Deoarece glibc este mai cuprinzător, este de obicei recomandat în timpul depanării aplicațiilor și dezvoltării timpurii.
MUSL poate să nu fie la fel de suportiv ca GLBC în unele unelte de depanare (cum ar fi GDB și Ltrace).

Permise și sprijin comunitar:

MUSL folosește licența MIT, care este mai permisivă decât licența LGPL a lui glibc, facilitând publicarea fișierelor executabile statice.
GLBC beneficiază de un sprijin comunitar mai larg și de resurse mai largi pentru documentare.

Aplicații în domenii specifice:

MUSL excelează în sisteme încorporate, aplicații containerizate și distribuții ușoare.
GLBC este mai comun în mediile desktop și server, suportând mai multe funcționalități și extensii.

Diferențe între mai multe biblioteci cu standarde C

1、. Glibc glibc = GNU C Library este un proiect GNU (GNU Project) și este implementarea bibliotecii standard a limbajului C. În prezent, majoritatea sistemelor GNU/Linux pe desktopuri și servere folosesc această bibliotecă standard în limbajul C. De fapt, implementează funcții comune ale bibliotecii C, suportă multe platforme de sistem și este destul de bogat în funcționalități, dar și relativ voluminos și mare

2. Biblioteca standard a limbajului C Musl-libc proiectul Musl-libc a lansat versiunea 1.0. Musl este o bibliotecă ușoară cu standard C, proiectată ca alternativă la biblioteca GNU C (glibc), uClibc sau Android Bionic pentru sisteme de operare încorporate și dispozitive mobile. Urmează specificația POSIX 2008 și standardul C99, folosește licența MIT și utilizează distribuțiile și proiectele Linux ale lui Musl, inclusiv sabotage, bootstrap-linux, LightCube OS și altele.

3. Dezvoltatorii glibc au lansat Embedded glibc, prescurtat eglibc, al cărui scop principal este aplicarea glibc la aplicații încorporate. Cea mai mare schimbare este să faci mai multe funcții de bibliotecă configurabile. Astfel, dacă nu ai nevoie de anumite funcții în sistemul tău încorporat, le poți reduce fără a le compila în biblioteca eglibc, reducând dimensiunea bibliotecii finale generată de eglibc și îndeplinind cerințele sistemului tău încorporat (fără a depăși o anumită dimensiune). Astfel, poți folosi glibc pentru scopuri de sistem încorporat.

4. uClibc este o mică bibliotecă standard de limbaj C, folosită în principal pentru sisteme încorporate. A fost proiectat inițial pentru uClinux (notă: uClinux nu suportă MMU), deci este mai potrivit pentru microprocesoare. În mod corespunzător, aici 'u' reprezintă μ, Micro sau 'mic'. Caracteristici ale uClibc: (1) uClibc este mult mai mic decât glibc. (2) uClibc este independent, complet reimplementat pentru utilizare în sisteme încorporate. Este incompatibil cu glibc atât în structura codului sursă, cât și în binar.

Tabelul de mai jos arată dimensiunile fișierelor compilate de diferite biblioteci libc.





Precedent:.NET/C# pentru a seta politica de alimentare Windows Server pe modul de înaltă performanță
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com