Vývojáři Google chtějí vyvinout vlastní libc pro LLVM

LLVM_Logo

Jeden z vývojářů Google představil na konferenci LLVM téma vývoje cross-platformní standardní C knihovna (Libc) v rámci projektu LLVM.

Z několika důvodů Google není s aktuálním libc spokojen (glibc, musl) a společnost je na dobré cestě k vývoji nové implementace, který hodlá rozvíjet jako součást LLVM. Vývoj LLVM byl nedávno použit jako základ pro vytváření nástrojů Google.

Vývoj je plánován postupně, postupně se zvyšuje funkčnost. Navrhuje se, aby první možnosti měly podobu mezivrstvy mezi aplikací a systémem libc, ze které budou vypůjčeny nerealizované funkce.

Po dosažení určité úrovně funkčnosti lze nový Libc použít jako úplnou náhradu za systém Libc.

Plánuje se začít s podporou architektury x86-64, Linuxu a statické vazby (dynamické načítání, balení a další architektury budou implementovány jako druhé).

Projekt je stále v počáteční fázi vývoje, ale základní cíle již byly definovány:

  • Modularita a vývoj v souladu s filozofií poskytování granulární knihovny, spíše než monolitický soubor.
  • Podpora statického odkazu v režimech PIE (spustitelné soubory nezávislé na poloze) a bez PIE. Poskytněte CRT (C Runtime) a zavaděč PIE pro staticky spojené spustitelné soubory.
  • Podporuje většinu funkcí knihovny C. standardně s POSIX zásuvnými moduly a některými systémově specifickými rozšířeními, které jsou vyžadovány ve stávajících aplikacích.
  • Opatrný přístup ke konkrétním rozšířením od poskytovatele a přidávat je pouze v případě potřeby. Pro podporu rozšíření třetích stran se navrhuje použít projektový přístup Clang a libc ++.
  • Použití osvědčených postupů při vývoji pomocí nástrojů LLVM, jako je aplikace dezinfekčních prostředků a vyloučení testů od začátku.

Jeden z aktivních vývojářů LLVM to naznačil dodávka libc jako součást sady nástrojů LLVM není to bez smyslu, ale obecně s takovou potřebou používají musl knihovnu, Je dobře napsaný, podporuje více architektur a poskytuje potřebné funkce, včetně dynamického propojení.

Začlenění Musla do LLVM a jeho vývoj jako synchronizované vidlice s hlavním projektem lze ospravedlnit.

Jeho názor vyjádřil také autor projektu Musl, který se snažil argumentovat, proč jsou návrh Google a zahrnutí Libc do dodávky LLVM velmi špatnými nápady:

Vývoj a údržba správného, ​​kompatibilního a vysoce kvalitního libc je velmi obtížný úkol. Problém není v množství kódu, ale v zajištění správného chování.

A potíže s implementací rozhraní, s ohledem na obrovské úložiště aplikací napsaných v C / C ++, stejně jako aplikací v jiných jazycích, jejichž běh používá Libc.

Přístup na čelo bez zohlednění nuancí povede pouze k tomu, že mnoho stávajících programů nebude schopno pracovat s Libcem, ale takový projekt nebude pro spotřebitele zajímavý.

Firemní rozvoj může Libc zničit, ale řídit široké použití, což bude mít za následek potřebu přidat hacky, aby byla zajištěna kompatibilita v aplikacích.

Rozvoj pod záštitou otevřeného firemního projektu povede k pokrytí potřeb a rozhodnutí společnosti na úkor zájmů komunity.

Například v případě identifikace problému způsobeného chybou v jiném vlastním programu, ve vývoji pod kontrolou, je snazší zaručit kompatibilitu Libc s touto chybou, než opravit chybu samotnou.

Apple pro tyto účely používá vidlici BSD libc a Google používá vidličku Fuchsia. Zkušenosti Musla s vývojáři naznačují, že právníci ho kontaktovali především kvůli objasnění licenčních problémů.

zdroj: http://lists.llvm.org


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.