Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 1|Odpowiedź: 0

[linux] Różnice między bibliotekami standardowymi glibc a musl w środowisku Linuksa

[Skopiuj link]
Opublikowano44 sekundy temu | | | |
musl Linux i glibc to dwie różne implementacje standardowej biblioteki C i różnią się znacząco pod kilkoma względami.

Historia i użycie:

glibc jest jedną z wcześniejszych i najczęściej używanych implementacji bibliotek standardu C, z długą historią rozwoju i szerokim wsparciem społeczności. Jest stosowany przez większość dystrybucji Linuksa, zwłaszcza w środowiskach desktopowych i serwerowych.
Musl to stosunkowo nowa implementacja zaprojektowana z myślą o mniejszych, szybszych i bardziej bezpiecznych bibliotekach w języku C. Został zaadaptowany przez niektóre lekkie dystrybucje Linuksa, takie jak Alpine Linux.

Funkcje i kompatybilność:

GLBC jest kompleksowe i złożone, obsługujące wiele rozszerzeń i funkcji, oferując wysoką stabilność i niezawodność.
Chociaż musl ma mniej funkcji, ściśle przestrzega standardu POSIX i ma znacznie mniej kodu niż glibc, nie wymagając dodatkowych zależności zewnętrznych. Kompatybilność binarna MUSL jest ograniczona, ale wraz z pojawieniem się nowych wersji zgodność stopniowo się poprawia.

Wydajność i zużycie zasobów:

MUSL został zaprojektowany jako lekki, odpowiedni do systemów wbudowanych i środowisk o ograniczonych zasobach, a także może tworzyć kompaktowe, statyczne pliki wykonywalne.
Chociaż GLBC jest potężne, może nie dorównać MUSL pod względem zużycia zasobów i wydajności.

Debugowanie i wsparcie rozwojowe:

Ponieważ glibc jest bardziej kompleksowy, zwykle zaleca się go podczas debugowania aplikacji i wczesnego rozwoju.
MUSL może nie być tak wspierający jak GLBC w niektórych narzędziach do debugowania (takich jak GDB i Ltrace).

Pozwolenia i wsparcie społeczności:

musl korzysta z licencji MIT, która jest bardziej wyrozumiała niż licencja LGPL należąca do glibc, co ułatwia publikowanie statycznych plików wykonywalnych.
GLBC ma większe wsparcie społeczności i szersze zasoby dokumentacyjne.

Zastosowania w konkretnych dziedzinach:

MUSL wyróżnia się w systemach wbudowanych, aplikacjach kontenerowych oraz lekkich dystrybucjach.
GLBC jest bardziej powszechne w środowiskach desktopowych i serwerowych, obsługując więcej funkcji i rozszerzeń.

Różnice między kilkoma bibliotekami standardu C

1、. Glibc glibc = Biblioteka GNU C to projekt GNU (Projekt GNU) i jest implementacją biblioteki standardowej w języku C. Obecnie większość systemów GNU/Linux na komputerach stacjonarnych i serwerach korzysta z tej biblioteki standardowej w języku C. Faktycznie implementuje typowe funkcje biblioteki C, obsługuje wiele platform systemowych i jest dość bogaty w funkcje, ale także stosunkowo obszerny i duży

2. Projekt Musl-libc w języku C wydał wersję 1.0. Musl to lekka biblioteka standardu C zaprojektowana jako alternatywa dla biblioteki GNU C (glibc), uClibc lub Android Bionic dla systemów operacyjnych wbudowanych i urządzeń mobilnych. Spełnia specyfikację POSIX 2008 i standard C99, korzysta z licencji MIT oraz korzysta z dystrybucji i projektów Linux należących do Musl, w tym sabotage, bootstrap-linux, LightCube OS i innych.

3. Twórcy glibc uruchomili Embedded glibc, w skrócie eglibc, którego głównym celem jest zastosowanie glibc w aplikacjach wbudowanych. Największą zmianą jest umożliwienie konfigurowania większej liczby funkcji bibliotecznych. W ten sposób, jeśli nie potrzebujesz pewnych funkcji w systemie wbudowanym, możesz je przyciąć bez kompilowania ich do biblioteki eglibc, zmniejszając rozmiar ostatecznej wygenerowanej biblioteki eglibc i spełniając wymagania systemu wbudowanego (nie przekraczając określonego rozmiaru). W ten sposób możesz używać glibc do celów systemów wbudowanych.

4. uClibc to mała biblioteka standardów języka C, głównie używana w systemach wbudowanych. Został pierwotnie zaprojektowany dla uClinux (uwaga: uClinux nie obsługuje MMU), więc jest bardziej odpowiedni dla mikroprocesorów. Odpowiednio, tutaj 'u' oznacza μ, Micro lub 'malutki'. Cechy uClibc: (1) uClibc jest znacznie mniejszy niż glibc. (2) uClibc jest niezależny, całkowicie ponownie zaimplementowany do zastosowań w systemach wbudowanych. Jest niekompatybilny z glibc zarówno pod względem kodu źródłowego, jak i binarnego.

Poniższa tabela przedstawia rozmiary plików kompilowane przez różne biblioteki libc.





Poprzedni:.NET/C# do ustawienia polityki zasilania Windows Server w trybie wysokiej wydajności
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com