Na fautuaina e le au atiaʻe mai Google le atinaʻeina o latou lava libc mo LLVM

O se tasi o atinaʻe mai Google siitia 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 pai (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 faasino atuE 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 fa'aalia 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

FaŹ»atau talimalo faŹ»atuatuaina mo nofoaga ma DDoS puipuiga, VPS VDS servers šŸ”„ Fa'atau le 'upega tafa'ilagi talimalo fa'atuatuaina ma le puipuiga DDoS, 'au'aunaga VPS VDS | ProHoster