O se tasi o atinaʻe mai Google i luga o le lisi o meli LLVM e uiga i le atinaʻeina o le tele-platform standard C library (Libc) o se vaega o le LLVM poloketi. Mo le tele o mafuaʻaga, e le o faamalieina Google i le libc (glibc, musl) o loʻo i ai nei ma o loʻo agai atu le kamupani i le atinaʻeina o se faʻatinoga fou, lea e faʻamoemoe e atiaʻe o se vaega o le LLVM.
O atina'e LLVM talu ai nei na fa'aaogaina e fai ma fa'avae mo le fausiaina o meafaigaluega fa'apotopotoga a Google. O le manatu autu e faapea afai ua amata ona atiaʻe e Google lona libc, aisea la e le vave ai ona atiaʻe lana polokalama o se vaega o le LLVM, lea ua uma ona ofoina atu lana lava faletusi masani mo C ++ (Libc ++), ae leai se faletusi masani tutusa mo C. ( libc).
O le atina'eina ua fuafuaina e fa'atinoina i ni vaega, ma fa'ateleina malie le fa'atinoga. O lomiga muamua ua fautuaina e fa'atinoina o se vaega i le va o le talosaga ma le faiga Libc, lea o le a nono mai ai ni foliga e le'i fa'atinoina. A o'o loa i se tulaga fa'apitoa o le fa'atinoga, o le a mafai ona fa'aaogaina le Libc fou e fai ma sui atoatoa o le faiga Libc. Ua fuafuaina e amata le lagolagoina o le fausaga x86-64. Linux ma le fesoʻotaʻiga tumau (o le uta faʻafouina, fesoʻotaʻiga ma faʻatulagaga faʻaopoopo o le a faʻatinoina lona lua).
O le poloketi o loʻo i ai pea i le amataga o le atinaʻe, ae o sini autu ua uma ona faʻamalamalamaina:
- Modularity ma atinaʻe e tusa ai ma le filosofia o le tuʻuina atu o se faletusi faʻapitoa nai lo se seti monolithic;
- Lagolago mo feso'ota'iga tu'usa'o i faiga (Tuto'atasi tuto'atasi executables) ma leai se PIE. Tuuina atu le CRT (C runtime) ma le PIE loader mo mea e mafai ona fa'aogaina;
- Lagolago mo le tele o galuega masani a le faletusi C, faʻatasi ai ma faʻaopoopoga POSIX ma nisi faʻaopoopoga faʻapitoa e manaʻomia e talosaga o loʻo iai;
- Fa'aeteete i fa'aopoopoga fa'apitoa fa'atau ma na'o fa'aopoopo pe a mana'omia. E tusa ai ma le lagolago mo faʻaopoopoga lona tolu, ua fautuaina e faʻaoga le auala o le Clang ma le libc ++ poloketi;
- Fa'aaogÄ fa'ata'ita'iga sili ile atina'e e fa'aaoga ai le LLVM toolkit, pei ole fa'aogaina ole sanitizer ma fuzz su'ega mai le amataga.
O se tasi o le au atinaʻe LLVM E manino lava e talafeagai le vaʻaia o le libc o se vaega o le LLVM toolkit, ae masani lava, pe a tulaʻi mai se manaʻoga faʻapea, latou te faʻaogaina le faletusi musl, lea e lelei ona tusia, lagolagoina fausaga eseese, ma tuʻuina atu galuega talafeagai, e aofia ai le lagolago mo le malosi. feso'ota'iga. Atonu e talafeagai le fa'aofiina o le musl i le LLVM ma fa'atupuina e pei o se tui fa'atasi ma le galuega autu.
O lou manatu foi O le tusitala o le poloketi Musl, o le na taumafai e finau pe aisea e matua leaga ai le talosaga a Google ma le faʻaofiina o le Libc i le tufatufaina o le LLVM:
- O le atina'eina ma le tausia o se Libc sa'o, fetaui, ma le maualuga o se galuega faigata tele. O le faʻafitauli e leʻo i le aofaʻi o le numera, ae i le faʻamautinoaina o amioga saʻo ma faigata i le faʻatinoina o fesoʻotaʻiga, ma le amanaia o le tele o tusi talosaga na tusia i le C / C ++, faʻapea foʻi ma talosaga i isi gagana, o le taimi e faʻaaogaina ai. e Libc. O se faʻauluuluga e aunoa ma le amanaʻiaina o nuances o le a naʻo le mea moni o le tele o polokalame o loʻo i ai nei o le a le mafai ona galulue faʻatasi ma Libc, ae o sea galuega o le a le fiafia i tagata faʻatau.
- O atinaʻe faʻapisinisi e mafai ona faʻaleagaina le Libc, ae tuleia i le faʻaaogaina lautele, e mafua ai le manaʻoga e faʻaopoopo hacks e faʻamautinoa ai le fetaui i talosaga. O le atina'e i lalo o le fa'auluuluga o se fa'alapotopotoga fa'apitoa e fa'asoa fa'atasi ai ma le a toso le palanikeke aga'i atu i mana'oga ma fofo a le kamupani, e fa'aleagaina ai le manuia o tagata lautele. Mo se faʻataʻitaʻiga, afai e te iloa se faʻafitauli e mafua mai i se pusa i se isi polokalame, i le faʻatonutonuina o le atinaʻe e sili atu ona faigofie le faʻamautinoa o le Libc e fetaui ma lenei pusa nai lo le faʻaleleia o le pusa lava ia. E fa'aaoga e Apple le tui BSD libc mo nei fa'amoemoe, ae fa'aaoga e Google le tui musl i Fuchsia. O le poto masani o le musl developer e tele lava ina faafesootaia o ia e loia mo le faamaninoina o mataupu tau laisene, ae e lei faafesootaia lava e faamanino faamatalaga faapitoa a o lei faia ni suiga le aoga ma faalavelave i ana lala.
- O le leai o se monoculture i le atinaʻeina o le libc ma le taulaʻi atu i tulaga faʻavae faʻatasi nai lo le puleaina o tagata taʻitoʻatasi, lea e faʻamalosia ai tagata faʻapipiʻi talosaga e faʻaogaina tulaga faʻapitoa nai lo le noatia i faʻatinoga faʻapitoa. O le mafuaaga lena e tetee ai le tusitala o le musl i le aofia ai o lana faletusi i le LLVM, faʻapea foʻi ma le faʻaleleia o le libc i totonu o le LLVM, talu ai i lenei tulaga ua leiloa le natura tutoʻatasi o le libc ma o se faʻatinoga faʻapitoa e avea ma fofo muamua mo LLVM, ma isi uma e avea ma fofo lona lua.
puna: opennet.ru
