{"id":35694,"date":"2019-10-31T22:05:48","date_gmt":"2019-10-31T19:05:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm\/"},"modified":"2019-10-31T22:05:48","modified_gmt":"2019-10-31T19:05:48","slug":"razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","title":{"rendered":"Google-udviklere har foresl\u00e5et at udvikle deres egen libc til LLVM","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>En af udviklerne fra Google <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133269.html\">rejste<\/a><\/noindex> emnet om udvikling af en multiplatform standard C-bibliotek (Libc) i LLVM-mailinglisten. Af forskellige grunde er Google utilfredse med de nuv\u00e6rende libc (glibc, musl), og virksomheden er p\u00e5 vej til at udvikle en ny implementering, som foresl\u00e5s udviklet som en del af LLVM.<\/p>\n<p> LLVM's funktionalitet har p\u00e5 det seneste v\u00e6ret brugt som grundlag for at opbygge Google's byggev\u00e6rkt\u00f8jer. Hovedideen er, at hvis Google allerede er begyndt at udvikle sin libc, hvorfor s\u00e5 ikke udvikle sit system som en del af LLVM, som allerede tilbyder sit standardbibliotek for C++ (Libc++), men ikke har et tilsvarende standardbibliotek for C (Libc).<\/p>\n<p>Udviklingen planl\u00e6gges at v\u00e6re trinvis, hvor funktionaliteten gradvist \u00f8ges. De f\u00f8rste versioner foresl\u00e5s at blive udformet som et lag mellem applikationen og det systembaserede Libc, fra hvilket der vil blive l\u00e5nt endnu ikke implementerede funktioner. Efter at have n\u00e5et et bestemt funktionsniveau, vil den nye Libc kunne anvendes som en fuld erstatning for systemets Libc. Den f\u00f8rste st\u00f8tte vil v\u00e6re til arkitektur x86-64, Linux og statisk binding (dynamisk indl\u00e6sning, sammenkobling, og yderligere arkitekturer skal implementeres som n\u00e6ste skridt). <\/p>\n<p>Projektet er stadig i en tidlig udviklingsfase, men de grundl\u00e6ggende m\u00e5l er allerede defineret:<\/p>\n<ul>\n<li class=\"l\"> Modularitet og udvikling i overensstemmelse med filosofien om at levere et granul\u00e6rt bibliotek i stedet for et monolitisk s\u00e6t;\n<li class=\"l\"> Underst\u00f8ttelse af statisk binding i tilstande med <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Position-independent_code#PIE\">PIE<\/a><\/noindex> (Position-uafh\u00e6ngige eksekverbare filer) og uden PIE. Levering af CRT (C runtime) og en PIE-indl\u00e6ser for statisk bundtet eksekverbare filer;\n<li class=\"l\"> Underst\u00f8ttelse af st\u00f8rstedelen af funktionerne i standard C-biblioteket med tilf\u00f8jelser fra POSIX og nogle system-specifikke udvidelser, der er efterspurgt i eksisterende applikationer;\n<li class=\"l\"> Forsigtig tilgang til producent-specifikke udvidelser og deres tilf\u00f8jelse kun n\u00e5r n\u00f8dvendigt. For st\u00f8tte af tredjeparts udvidelser foresl\u00e5s det at anvende tilgangen fra Clang- og libc-projekterne;\n<li class=\"l\"> Anvendelse af bedste praksis i udviklingen ved brug af LLVM-v\u00e6rkt\u00f8js\u00e6t, s\u00e5som anvendelse af sanitizer og fuzzing-test fra starten.\n<\/ul>\n<p>En af de aktive udviklere af LLVM <noindex><a rel=\"nofollow\" href=\"https:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133282.html\">at<\/a><\/noindex>, at det giver mening at inkludere libc i LLVM-v\u00e6rkt\u00f8js\u00e6t, men almindeligvis, n\u00e5r s\u00e5dan et behov opst\u00e5r, bruges musl-biblioteket, som er veludviklet, underst\u00f8tter forskellige arkitekturer og leverer den n\u00f8dvendige funktionalitet, herunder underst\u00f8ttelse af dynamisk linking. Det kan v\u00e6re berettiget at integrere musl i LLVM og udvikle det som en fork, der er synkroniseret med det prim\u00e6re projekt.<\/p>\n<p>Sin holdning har ogs\u00e5 <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133308.html\">udtrykt<\/a><\/noindex> forfatteren af Musl-projektet, som fors\u00f8gte at argumentere for, hvorfor Googles forslag og inkluderingen af Libc i LLVM-distributionen er meget d\u00e5rlige id\u00e9er:<\/p>\n<ul>\n<li class=\"l\"> At udvikle og vedligeholde en korrekt, kompatibel og high-quality Libc er en meget vanskelig opgave. Problemet ligger ikke i m\u00e6ngden af kode, men i at sikre korrekt adf\u00e6rd og de udfordringer, der er forbundet med implementeringen af gr\u00e6nsefladerne, givet det enorme antal applikationer, der nogensinde er skrevet i C\/C++, samt applikationer p\u00e5 andre sprog, hvis runtime bruger Libc. En direkte tilgang uden hensyntagen til nuancer vil blot f\u00f8re til, at mange eksisterende programmer ikke vil kunne fungere sammen med Libc, og s\u00e5 vil et s\u00e5dant projekt ikke v\u00e6re interessant for forbrugerne.\n<li class=\"l\"> Virksomhedsudvikling kan \u00f8del\u00e6gge Libc, men fremme det til bred anvendelse, hvilket vil resultere i behovet for at tilf\u00f8je hacks for at sikre kompatibilitet i applikationerne. Udvikling under banneret for et virksomhedsejet open source-projekt vil tr\u00e6kke t\u00e6ppet mod virksomhedens behov og l\u00f8sninger, p\u00e5 bekostning af f\u00e6llesskabets interesser. For eksempel, n\u00e5r der opst\u00e5r et problem for\u00e5rsaget af en fejl i et andet af deres programmer, er det lettere at sikre, at Libc forbliver kompatibel med denne fejl i den kontrollerede udvikling, end at rette selve fejlen. Apple bruger en fork af BSD libc til disse form\u00e5l, mens Google anvender en fork af musl i Fuchsia. Erfaringen fra musl-udvikleren viser, at de prim\u00e6rt har v\u00e6ret i kontakt med advokater for at afklare licenssp\u00f8rgsm\u00e5l, men aldrig er blevet kontaktet for at afklare tekniske detaljer f\u00f8r ubrugelige og funktionsforstyrrende \u00e6ndringer er blevet foretaget i deres forks.\n<li class=\"l\"> Frav\u00e6ret af monokultur i udviklingen af libc og fokus p\u00e5 standarder, der udvikles p\u00e5 grundlag af konsensus, i stedet for ensidig styring, motiverer udviklere af applikationer til at bruge standarder i stedet for at v\u00e6re knyttet til specifikke implementeringer. Derfor er forfatteren af musl imod at inkludere sit bibliotek i LLVM, ligesom han er imod udviklingen af libc inden for LLVM, da det p\u00e5 den m\u00e5de mister karakteren af uafh\u00e6ngighed, og en bestemt implementering bliver en f\u00f8rsteklasses l\u00f8sning for LLVM, mens alle andre bliver andenklassede.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Kilde: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50970\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Google \u043f\u043e\u0434\u043d\u044f\u043b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 LLVM \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 (Libc) \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LLVM. \u041f\u043e \u0440\u044f\u0434\u0443 \u043f\u0440\u0438\u0447\u0438\u043d Google \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 libc (glibc, musl) \u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c LLVM. \u041d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 LLVM \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35694","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Google \u043f\u043e\u0434\u043d\u044f\u043b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 LLVM \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0437 Google \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u043e\u044e libc \u0434\u043b\u044f LLVM | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Google \u043f\u043e\u0434\u043d\u044f\u043b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 LLVM \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:05:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:05:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Udviklere fra Google har foresl\u00e5et at udvikle deres egen libc til LLVM | ProHoster","description":"En af udviklerne fra Google tog emnet omkring udviklingen af en flerplatformsl\u00f8sning op p\u00e5 LLVMs mailingliste.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0437 Google \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u043e\u044e libc \u0434\u043b\u044f LLVM | ProHoster","og:description":"\u041e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Google \u043f\u043e\u0434\u043d\u044f\u043b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 LLVM \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439.","og:url":"https:\/\/prohoster.info\/da\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:05:48+00:00","article:modified_time":"2019-10-31T19:05:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35694","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 00:24:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:57:46","updated":"2026-01-22 00:24:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/35694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=35694"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/35694\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=35694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=35694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=35694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}