musl Linux ir glibc yra du skirtingi C standartinės bibliotekos įgyvendinimai, kurie labai skiriasi keliais aspektais.
Istorija ir naudojimas:
glibc yra vienas iš ankstesnių ir plačiausiai naudojamų C standartinių bibliotekų diegimų, turintis ilgą kūrimo istoriją ir platų bendruomenės palaikymą. Jį priima dauguma "Linux" platinimų, ypač darbalaukio ir serverio aplinkoje. musl yra palyginti naujas įgyvendinimas, skirtas teikti mažesnes, greitesnes ir saugesnes C bibliotekas. Jį pritaikė kai kurie lengvi Linux platinimai, tokie kaip Alpine Linux.
Savybės ir suderinamumas:
GLBC yra visapusiškas ir sudėtingas, palaikantis daugybę plėtinių ir funkcijų, pasižymintis dideliu stabilumu ir patikimumu. Nors musl turi mažiau funkcijų, jis griežtai laikosi POSIX standarto ir turi daug mažiau kodo nei glibc, nereikalaujantis jokių papildomų išorinių priklausomybių. MUSL dvejetainis suderinamumas yra ribotas, tačiau išleidus naujas versijas, suderinamumas palaipsniui gerėja.
Našumas ir išteklių naudojimas:
MUSL sukurtas taip, kad būtų lengvas, tinkamas įterptosioms sistemoms ir ribotų išteklių aplinkai ir gali kurti kompaktiškus statinius vykdomuosius failus. Nors GLBC yra galingas, išteklių naudojimo ir našumo požiūriu jis gali būti ne toks geras kaip MUSL.
Derinimo ir kūrimo palaikymas:
Kadangi glibc yra išsamesnis, jis paprastai rekomenduojamas derinant programą ir ankstyvą kūrimą. MUSL gali būti ne toks palaikantis kaip GLBC kai kuriuose derinimo įrankiuose (pvz., GDB ir Ltrace).
Leidimai ir bendruomenės parama:
musl naudoja MIT licenciją, kuri yra švelnesnė nei glibc LGPL licencija, todėl lengviau skelbti statinius vykdomuosius failus. GLBC turi didesnę bendruomenės paramą ir platesnius dokumentacijos išteklius.
Taikymas konkrečiose srityse:
MUSL išsiskiria įterptosiomis sistemomis, konteinerinėmis programomis ir lengvais paskirstymais. GLBC labiau paplitęs darbalaukio ir serverio aplinkoje, palaikantis daugiau funkcijų ir plėtinių.
Kelių C standartinių bibliotekų skirtumai
1、. Glibc glibc = GNU C biblioteka yra GNU projektas (GNU projektas) ir yra C kalbos standartinės bibliotekos įgyvendinimas. Šiuo metu dauguma GNU/Linux sistemų staliniuose kompiuteriuose ir serveriuose naudoja šią C kalbos standartinę biblioteką. Jis iš tikrųjų įgyvendina įprastas C bibliotekos funkcijas, palaiko daugybę sistemos platformų ir yra gana daug funkcijų, bet taip pat gana didelis ir didelis
2. Musl-libc C kalbos standartinė biblioteka Musl-libc projektas išleido 1.0 versiją. "Musl" yra lengva C standartinė biblioteka, sukurta kaip alternatyva GNU C bibliotekai (glibc), uClibc arba Android Bionic įterptosioms operacinėms sistemoms ir mobiliesiems įrenginiams. Jis atitinka POSIX 2008 specifikaciją ir C99 standartą, naudoja MIT licenciją ir naudoja Musl Linux platinimus ir projektus, įskaitant sabotažą, bootstrap-linux, LightCube OS ir kt.
3. glibc kūrėjai pristatė Embedded glibc, sutrumpintai kaip eglibc, kurio pagrindinis tikslas yra pritaikyti glibc įterptosioms programoms. Didžiausias pokytis yra tai, kad daugiau bibliotekos funkcijų yra konfigūruojamos. Tokiu būdu, jei jums nereikia tam tikrų funkcijų jūsų įterptinėje sistemoje, galite jas apkarpyti nekompiliuodami jų į savo eglibc biblioteką, sumažindami galutinės sugeneruotos eglibc bibliotekos dydį ir atitikdami įterptinės sistemos reikalavimus (neviršijant tam tikro dydžio). Tokiu būdu galite naudoti glibc įterptinės sistemos tikslais.
4. uClibc yra nedidelė C kalbos standartinė biblioteka, daugiausia naudojama įterptinėms sistemoms. Iš pradžių jis buvo sukurtas uClinux (pastaba: uClinux nepalaiko MMU), todėl labiau tinka mikroprocesoriams. Atitinkamai, čia "u" reiškia μ, mikro arba "mažytį". uClibc savybės: (1) uClibc yra daug mažesnis nei glibc. (2) uClibc yra nepriklausomas, visiškai iš naujo įdiegtas naudoti įterptinėse sistemose. Jis nesuderinamas su glibc tiek šaltinio kodo struktūroje, tiek dvejetainėje sistemoje.
Žemiau esančioje lentelėje pateikiami skirtingų libc bibliotekų sudaryti failų dydžiai.
|