Zhvilluesit e Google duan të zhvillojnë libc-in e tyre për LLVM

LLVM_Logo

Një nga zhvilluesit e Google paraqiti në listën e postave LLVM temën e zhvillimit një bibliotekë standarde standarde ndër-platformë (Libc) brenda kornizës së projektit LLVM.

Për disa arsye, Google nuk është i kënaqur me libc aktual (glibc, musl) dhe kompania është në rrugën e duhur për të zhvilluar një zbatim të ri, të cilën ai synon ta zhvillojë si pjesë e LLVM. Zhvillimet e LLVM janë përdorur kohët e fundit si bazë për ndërtimin e mjeteve të Google.

Zhvillimi është planifikuar të jetë gradual, duke rritur gradualisht funksionalitetin. Propozohet që opsionet e para të marrin formën e një shtrese të ndërmjetme midis aplikacionit dhe sistemit libc, nga e cila do të huazohen tiparet e parealizuara.

Pas arritjes së një niveli të caktuar të funksionalitetit, Libc i ri mund të përdoret si një zëvendësim i plotë për sistemin Libc.

Plannedshtë planifikuar të fillojë me mbështetjen për arkitekturën x86-64, Linux dhe lidhjen statike (ngarkimi dinamik, paketimi dhe arkitekturat shtesë do të zbatohen së dyti).

Projekti është ende në fazën fillestare të zhvillimit, por objektivat themelorë janë përcaktuar tashmë:

  • Modulariteti dhe zhvillimi në përputhje me filozofinë e furnizimit me një bibliotekë të imtësishme, në vend se një ansambël monolit.
  • Mbështetja e lidhjes statike në modalitetet PIE (ekzekutues të pavarur nga pozicioni) dhe pa PIE. Siguroni CRT (Koha e ekzekutimit) dhe PIE ngarkuesin për skedarët ekzekutues të lidhur statikisht.
  • Mbështet shumicën e funksioneve të bibliotekës C standard me shtojcat POSIX dhe disa shtesa specifike të sistemit që kërkohen në aplikacionet ekzistuese.
  • Qëndrim i kujdesshëm ndaj zgjatjeve specifike nga ofruesi dhe vetëm duke i shtuar ato kur është e nevojshme. Për mbështetjen e ekstensionit të palëve të treta, është propozuar që të përdoret qasja e projektit Clang dhe libc ++.
  • Përdorimi i praktikave më të mira në zhvillim duke përdorur mjetet LLVM, të tilla si aplikimi i dezinfektuesve dhe eliminimi i testeve që nga fillimi.

Një nga zhvilluesit aktivë të LLVM tregoi se shpërndarja e libc si pjesë e paketës së mjeteve LLVM nuk është pa kuptim, por përgjithësisht me një nevojë të tillë ata përdorin bibliotekën e muskujve, Isshtë i shkruar mirë, mbështet arkitektura të shumta dhe ofron funksionalitetin e nevojshëm, duke përfshirë lidhjen dinamike.

Përfshirja e Musl në LLVM dhe zhvillimi i tij si një pirun i sinkronizuar me projektin kryesor mund të justifikohet.

Mendimi i tij u shpreh gjithashtu nga autori i projektit Muslim, i cili u përpoq të argumentonte pse propozimi i Google dhe përfshirja e Libc në shpërndarjen e LLVM janë ide shumë të këqija:

Zhvillimi dhe mirëmbajtja e një libc të saktë, të pajtueshëm dhe me cilësi të lartë është një detyrë shumë e vështirë. Problemi nuk është në sasinë e kodit, por në sigurimin e sjelljes korrekte.

Dhe vështirësitë me implementimin e ndërfaqes, duke marrë parasysh depon e madhe të aplikacioneve të shkruara në C / C ++, si dhe aplikacionet në gjuhë të tjera, koha e ekzekutimit përdoret nga Libc.

Afrimi në ballë pa marrë parasysh nuancat do të çojë vetëm në faktin se shumë programe ekzistuese nuk do të jenë në gjendje të punojnë me Libc, por një projekt i tillë nuk do të jetë me interes për konsumatorët.

Zhvillimi i korporatave mund të prishë Libc, por nxisin përdorim të gjerë, i cili do të rezultojë në nevojën për të shtuar hacks për të siguruar pajtueshmërinë në aplikime.

Zhvillimi nën kujdesin e një projekti të hapur të korporatave do të drejtojë mbulimin drejt nevojave dhe vendimeve të ndërmarrjes, në dëm të interesave të komunitetit.

Për shembull, në rastin e identifikimit të një problemi të shkaktuar nga një gabim në një program tjetër tuajin, në zhvillimin nën kontroll, është më lehtë të garantoni pajtueshmërinë e Libc me këtë gabim sesa të korrigjoni vetë gabimin.

Apple përdor pirunin BSD libc për këto qëllime dhe Google përdor pirunin Fuchsia. Përvoja e zhvilluesit e Musl sugjeron që avokatët e kontaktuan atë kryesisht për të sqaruar çështjet e licencimit.

Fuente: http://lists.llvm.org


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.