{"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\/de\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","title":{"rendered":"Entwickler von Google haben vorgeschlagen, eine eigene libc f\u00fcr LLVM zu entwickeln","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ein Entwickler von Google <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133269.html\">hat<\/a><\/noindex> in der LLVM-Mailingliste das Thema der plattform\u00fcbergreifenden Entwicklung einer Standard-C-Bibliothek (Libc) im Rahmen des LLVM-Projekts angesprochen. Aus verschiedenen Gr\u00fcnden ist Google mit den derzeitigen libc (glibc, musl) unzufrieden, und das Unternehmen ist auf dem Weg, eine neue Implementierung zu entwickeln, die als Teil von LLVM weiterentwickelt werden soll.<\/p>\n<p> Die LLVM-Entwicklungen werden zunehmend als Grundlage f\u00fcr die Erstellung von Google-Bautools verwendet. Die Hauptidee ist, dass, wenn Google bereits damit begonnen hat, seine eigene libc zu entwickeln, es sinnvoll w\u00e4re, auch sein System innerhalb von LLVM weiterzuentwickeln, das bereits eine eigene Standardbibliothek f\u00fcr C++ (Libc++) anbietet, jedoch keine \u00e4hnliche Standardbibliothek f\u00fcr C (Libc).<\/p>\n<p>Die Entwicklung soll schrittweise erfolgen, wobei die Funktionalit\u00e4t allm\u00e4hlich erweitert wird. Die ersten Versionen sollen als eine Schicht zwischen der Anwendung und der System-Libc gestaltet werden, aus der noch nicht implementierte Funktionen \u00fcbernommen werden. Nach Erreichung eines bestimmten Funktionsniveaus kann die neue Libc als vollst\u00e4ndiger Ersatz f\u00fcr die System-Libc verwendet werden. Geplant ist zun\u00e4chst die Unterst\u00fctzung der Architektur x86-64, Linux und die statische Verlinkung (dynamisches Laden, Linken und zus\u00e4tzliche Architekturen werden in einem zweiten Schritt umgesetzt). <\/p>\n<p>Das Projekt befindet sich noch in der Anfangsphase, hat jedoch bereits grundlegende Ziele definiert:<\/p>\n<ul>\n<li class=\"l\"> Modularit\u00e4t und Entwicklung gem\u00e4\u00df der Philosophie, eine granulare Bibliothek bereitzustellen, anstatt ein monolithisches Set zu liefern;\n<li class=\"l\"> Unterst\u00fctzung der statischen Verlinkung in Modi mit <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Position-independent_code#PIE\">PIE<\/a><\/noindex> (Positionsunabh\u00e4ngige ausf\u00fchrbare Dateien) und ohne PIE. Bereitstellung von CRT (C-Laufzeit) und Loader f\u00fcr PIE f\u00fcr statisch verlinkte ausf\u00fchrbare Dateien;\n<li class=\"l\"> Unterst\u00fctzung der meisten Funktionen der Standard-C-Bibliothek mit POSIX-Erg\u00e4nzungen und einigen systemabh\u00e4ngigen Erweiterungen, die in bestehenden Anwendungen gefordert sind;\n<li class=\"l\"> Vorsichtiger Umgang mit herstellerspezifischen Erweiterungen und deren Hinzuf\u00fcgung nur bei Bedarf. In Bezug auf die Unterst\u00fctzung von Drittanbietererweiterungen wird vorgeschlagen, den Ansatz der Projekte Clang und libc++ anzuwenden;\n<li class=\"l\"> Verwendung bew\u00e4hrter Praktiken in der Entwicklung unter Verwendung von LLVM-Tools, wie die Anwendung von Sanitizern und Fuzzing-Tests von Anfang an.\n<\/ul>\n<p>Einer der aktiven Entwickler von LLVM <noindex><a rel=\"nofollow\" href=\"https:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133282.html\">wies darauf hin<\/a><\/noindex>, dass die Lieferung von libc im Rahmen des LLVM-Toolkits sinnvoll ist, aber normalerweise bei einem solchen Bedarf die musl-Bibliothek verwendet wird, die qualitativ hochwertig geschrieben ist, verschiedene Architekturen unterst\u00fctzt und die erforderliche Funktionalit\u00e4t bietet, einschlie\u00dflich der Unterst\u00fctzung f\u00fcr dynamisches Binden. Es kann gerechtfertigt sein, musl in LLVM zu integrieren und es als synchronisierten Fork des Hauptprojekts weiterzuentwickeln.<\/p>\n<p>Seine Meinung hat auch <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133308.html\">ausgedr\u00fcckt<\/a><\/noindex> der Autor des Musl-Projekts, der versucht hat zu argumentieren, warum Googles Vorschlag und die Einbeziehung von Libc in die LLVM-Lieferung sehr schlechte Ideen sind:<\/p>\n<ul>\n<li class=\"l\"> Die Entwicklung und Wartung einer korrekten, kompatiblen und hochwertigen Libc ist eine sehr schwierige Aufgabe. Das Problem liegt nicht im Umfang des Codes, sondern in der Gew\u00e4hrleistung korrektes Verhaltens und den Schwierigkeiten bei der Implementierung von Schnittstellen angesichts des riesigen R\u00fcckstands an jemals geschriebenen Anwendungen in C\/C++ sowie Anwendungen in anderen Sprachen, deren Laufzeit Libc verwendet. Ein frontaler Ansatz ohne Ber\u00fccksichtigung von Nuancen f\u00fchrt nur dazu, dass viele bestehende Programme nicht mit Libc arbeiten k\u00f6nnen, was das Projekt f\u00fcr die Nutzer unattraktiv macht.\n<li class=\"l\"> Die Unternehmensentwicklung kann Libc verderben, aber f\u00fcr eine breitere Anwendung durchdringen, was dazu f\u00fchrt, dass Hacks hinzugef\u00fcgt werden m\u00fcssen, um die Kompatibilit\u00e4t in den Anwendungen sicherzustellen. Die Entwicklung unter dem Banner eines unternehmenseigenen Open-Source-Projekts wird die Bed\u00fcrfnisse und L\u00f6sungen des Unternehmens priorisieren, zum Nachteil der Interessen der Gemeinschaft. Zum Beispiel, wenn ein Problem identifiziert wird, das durch einen Fehler in einem anderen eigenen Programm verursacht wurde, ist es in der kontrollierten Entwicklung einfacher, die Kompatibilit\u00e4t von Libc mit diesem Fehler sicherzustellen, als den Fehler selbst zu beheben. Apple verwendet daf\u00fcr einen Fork von BSD libc, w\u00e4hrend Google in Fuchsia einen Fork von musl einsetzt. Die Erfahrung des Entwicklers von musl zeigt, dass sich haupts\u00e4chlich Juristen zur Kl\u00e4rung von Lizenzfragen mit ihm in Verbindung gesetzt haben, aber nie f\u00fcr technische Details, bevor sie nutzlose und funktionsst\u00f6rende \u00c4nderungen in ihre Abzweigungen \u00fcbernahmen.\n<li class=\"l\"> Das Fehlen von Monokulturen bei der Entwicklung von libc und die Ausrichtung auf Konsensstandards anstelle von zentraler Verwaltung motiviert Entwickler von Anwendungssoftware, Standards zu verwenden, anstatt sich an bestimmte Implementierungen zu binden. Aus diesem Grund spricht sich der Autor von musl gegen die Einbeziehung seiner Bibliothek in LLVM aus und auch gegen die Entwicklung von libc im Rahmen von LLVM, da in diesem Fall der unabh\u00e4ngige Charakter von libc verloren geht und eine bestimmte Implementierung zur Erstklassigen L\u00f6sung f\u00fcr LLVM wird, w\u00e4hrend alle anderen dazu Zweitklassig werden.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Quelle: <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.1.1 - 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\/de\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47 Entwickler von Google haben vorgeschlagen, eine eigene libc f\u00fcr LLVM zu entwickeln | ProHoster","description":"Einer der Entwickler von Google brachte in der LLVM-Mailingliste das Thema der plattform\u00fcbergreifenden Entwicklung zur Sprache.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/35694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=35694"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35694\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=35694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=35694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=35694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}