{"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\/ro\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","title":{"rendered":"Dezvoltatorii de la Google au propus s\u0103 dezvolte propria libc pentru LLVM","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Unul dintre dezvoltatorii de la Google <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133269.html\">a adus \u00een discu\u021bie<\/a><\/noindex> \u00een lista de discu\u021bii LLVM tema dezvolt\u0103rii unei biblioteci standard multiplatform\u0103 C (Libc) \u00een cadrul proiectului LLVM. Din diverse motive, Google nu este mul\u021bumit de bibliotecile libc existente (glibc, musl) \u0219i compania \u00ee\u0219i propune dezvoltarea unei noi implement\u0103ri, care va fi propus\u0103 pentru dezvoltare ca parte a LLVM.<\/p>\n<p> Dezvolt\u0103rile LLVM din ultima vreme sunt folosite ca baz\u0103 pentru construirea instrumentarului Google. Ideea principal\u0103 este c\u0103, dac\u0103 Google a \u00eenceput deja dezvoltarea propriei libc, de ce s\u0103 nu \u00ee\u0219i dezvolte direct sistemul ca parte a LLVM, care deja ofer\u0103 propria bibliotec\u0103 standard pentru C++ (Libc++), dar nu are o bibliotec\u0103 standard similar\u0103 pentru C (Libc).<\/p>\n<p>Dezvoltarea este planificat\u0103 s\u0103 se desf\u0103\u0219oare etapizat, cresc\u00e2nd treptat func\u021bionalitatea. Primele variante vor fi propuse sub forma unei straturi \u00eentre aplica\u021bie \u0219i sistemul Libc, din care vor fi preluate func\u021bionalit\u0103\u021bile care nu sunt \u00eenc\u0103 implementate. Dup\u0103 atingerea unui anumit nivel de func\u021bionalitate, noua Libc va putea fi utilizat\u0103 ca o \u00eenlocuire complet\u0103 a sistemului Libc. Se va \u00eencepe cu suportul pentru arhitectura x86-64, Linux \u0219i legarea static\u0103 (\u00eenc\u0103rcarea dinamic\u0103, legarea \u0219i arhitecturile suplimentare vor fi implementate \u00een a doua etap\u0103). <\/p>\n<p>Proiectul este \u00eenc\u0103 \u00eentr-o etap\u0103 incipient\u0103 de dezvoltare, dar deja sunt definite obiectivele de baz\u0103:<\/p>\n<ul>\n<li class=\"l\"> Modularitate \u0219i dezvoltare conform filozofiei furniz\u0103rii unei biblioteci granulare, nu a unui set monolitic;\n<li class=\"l\"> Suport pentru legarea static\u0103 \u00een moduri cu <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Position-independent_code#PIE\">PIE<\/a><\/noindex> (executabile independente de pozi\u021bie) \u0219i f\u0103r\u0103 PIE. Furnizarea CRT (runtime C) \u0219i a unui \u00eenc\u0103rc\u0103tor PIE pentru fi\u0219ierele executabile legate static;\n<li class=\"l\"> Suport pentru cea mai mare parte a func\u021biilor bibliotecii standard C, cu ad\u0103ugiri POSIX \u0219i unele extensii specifice sistemului, solicitate \u00een aplica\u021biile existente;\n<li class=\"l\"> O abordare prudent\u0103 fa\u021b\u0103 de extensiile specifice furnizorilor \u0219i ad\u0103ugarea acestora doar c\u00e2nd este necesar. \u00cen ceea ce prive\u0219te suportul pentru extensiile externe, se propune aplicarea abord\u0103rii proiectelor Clang \u0219i libc++;\n<li class=\"l\"> Utilizarea celor mai bune practici \u00een dezvoltare cu ajutorul instrumentarului LLVM, cum ar fi utilizarea sanitizatorilor \u0219i a test\u0103rii prin fuzzing \u00eenc\u0103 din primele etape.\n<\/ul>\n<p>Unul dintre dezvoltatorii activi ai LLVM <noindex><a rel=\"nofollow\" href=\"https:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133282.html\">am indicat<\/a><\/noindex>, ceea ce face ca livrarea libc ca parte din instrumentele LLVM s\u0103 aib\u0103 sens, dar de obicei, \u00een astfel de situa\u021bii, se utilizeaz\u0103 biblioteca musl, care este bine scris\u0103, suport\u0103 diverse arhitecturi \u0219i ofer\u0103 func\u021bionalitatea necesar\u0103, inclusiv suport pentru legarea dinamic\u0103. Integrul musl \u00een LLVM \u0219i dezvoltarea sa ca un fork sincronizat cu proiectul principal poate fi justificat\u0103.<\/p>\n<p>De asemenea, \u0219i-a exprimat <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133308.html\">opinia<\/a><\/noindex> autorul proiectului Musl, care a \u00eencercat s\u0103 argumenteze de ce propunerea Google de a include Libc \u00een livrarea LLVM este o idee foarte proast\u0103:<\/p>\n<ul>\n<li class=\"l\"> Dezvoltarea \u0219i men\u021binerea unei Libc corecte, compatibile \u0219i de \u00eenalt\u0103 calitate este o sarcin\u0103 foarte dificil\u0103. Problema nu const\u0103 \u00een volumul de cod, ci \u00een asigurarea unui comportament corect \u0219i dificult\u0103\u021bile \u00een implementarea interfe\u021belor av\u00e2nd \u00een vedere imensitatea aplica\u021biilor scrise vreodat\u0103 \u00een C\/C++, precum \u0219i a aplica\u021biilor \u00een alte limbaje, a c\u0103ror execu\u021bie utilizeaz\u0103 Libc. O abordare brutal\u0103 care ignor\u0103 nuan\u021bele va conduce doar la faptul c\u0103 multe programe existente nu vor reu\u0219i s\u0103 func\u021bioneze cu Libc, iar atunci un astfel de proiect nu va fi de interes pentru consumatori.\n<li class=\"l\"> Dezvoltarea corporativ\u0103 poate deteriora Libc, dar poate fi impus\u0103 pentru utilizare extins\u0103, rezult\u00e2nd astfel necesitatea ad\u0103ug\u0103rii de hacks pentru a asigura compatibilitatea \u00een aplica\u021bii. Dezvoltarea sub egida unui proiect corporatist deschis va trasa o direc\u021bie \u00een func\u021bie de nevoile \u0219i solu\u021biile companiei, \u00een detrimentul intereselor comunit\u0103\u021bii. De exemplu, \u00een cazul \u00een care se descoper\u0103 o problem\u0103 provocat\u0103 de o eroare \u00een alt\u0103 aplica\u021bie de\u021binuta de ei, \u00een dezvoltarea controlat\u0103 este mai u\u0219or s\u0103 se asigure compatibilitatea Libc cu aceast\u0103 eroare dec\u00e2t s\u0103 se corecteze eroarea \u00een sine. Apple folose\u0219te pentru aceste scopuri un fork al BSD libc, iar Google aplic\u0103 \u00een Fuchsia un fork musl. Experien\u021ba dezvoltatorului musl arat\u0103 c\u0103 de obicei l-au contactat avoca\u021bii pentru a clarifica \u00eentreb\u0103ri legate de licen\u021biere, dar niciodat\u0103 nu s-au adresat pentru detalii tehnice \u00eenainte de a aduce \u00een forks-urile lor modific\u0103ri inutile \u0219i care deranjeaz\u0103 func\u021bionarea.\n<li class=\"l\"> Lipsa monoculturii \u00een dezvoltarea libc \u0219i orientarea c\u0103tre standardele dezvoltate pe baza consensului, \u00een loc de o gestionare unitar\u0103, motiveaz\u0103 dezvoltatorii de aplica\u021bii s\u0103 foloseasc\u0103 standardele, nu s\u0103 se ata\u0219eze de implement\u0103ri specifice. De aceea, autorul musl se opune includerii bibliotecii sale \u00een LLVM, precum \u0219i dezvolt\u0103rii libc \u00een cadrul LLVM, deoarece \u00een acest caz se pierde caracterul independent al libc \u0219i o anumit\u0103 implementare devine solu\u021bia de prim rang pentru LLVM, iar toate celelalte \u2014 de rang secund.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Sursa: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50970\">opennet.ro<\/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.2 - 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\/ro\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Dezvoltatorii de la Google au propus dezvoltarea propriei lor libc pentru LLVM | ProHoster","description":"Unul dintre dezvoltatorii de la Google a ridicat pe lista de discu\u021bii LLVM tema dezvolt\u0103rii unei solu\u021bii multi-platform\u0103.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/35694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=35694"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/35694\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=35694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=35694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=35694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}