{"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\/et\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","title":{"rendered":"Google'i arendajad soovitasid v\u00e4lja t\u00f6\u00f6tada oma libc LLVM jaoks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00dcks Google'i arendajatest <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133269.html\">t\u00f5statas<\/a><\/noindex> LLVM-i meililistis teema, mis puudutab mitme platvormi standardse C-raamatukogu (Libc) arendamist LLVM-i projekti raames. Mitmel p\u00f5hjusel ei rahulda Google'i praegused libc (glibc, musl) ning ettev\u00f5te on teel uue teostuse v\u00e4ljat\u00f6\u00f6tamise suunas, mida pakutakse arendada osana LLVM-ist.<\/p>\n<p> Viimastel aegadel kasutatakse LLVM-i arengut Google'i koostamisriistade aluseks. Peamine idee on see, et kui Google on juba hakanud oma libc-d arendama, siis miks mitte kohe arendada oma s\u00fcsteemi LLVM-is, mis pakub juba oma standardraamatukogu C++ jaoks (Libc++), kuid ei oma sarnast standardset raamatukogu C jaoks (Libc).<\/p>\n<p>Arendust kavandatakse j\u00e4rk-j\u00e4rgult, funktsionaalsuse j\u00e4rkj\u00e4rgulise suurendamisega. Esimesed variandid soovitatakse vormistada vahekihtina rakenduse ja s\u00fcsteemi Libc vahel, millest saab laenata veel rakendamata v\u00f5imalusi. P\u00e4rast teatud funktsionaalsuse taseme saavutamist saab uus Libc olla s\u00fcsteemi Libc t\u00e4ielik asendaja. Alustatakse x86-64, Linuxi ja staatilise linkimise toega (d\u00fcnaamiline laadimine, kompositsioon ja t\u00e4iendavad arhitektuurid viiakse ellu teises etapis). <\/p>\n<p>Projekt on praegu algstaadiumis, kuid p\u00f5hieesm\u00e4rgid on juba m\u00e4\u00e4ratletud:<\/p>\n<ul>\n<li class=\"l\"> Modulaarsus ja areng vastavalt graanuliseeritud raamatukogu tarnimise filosoofiale, mitte monoliitsete komplektide kogumile;\n<li class=\"l\"> Toe pakkumine staatilisele linkimisele re\u017eiimides <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Position-independent_code#PIE\">PIE<\/a><\/noindex> (Position-independent executables) ja ilma PIE-ta. CRT (C jooksutegur) ja PIE laadija pakkumine staatiliselt lingitud t\u00e4idetavatele failidele;\n<li class=\"l\"> Enamiku standardse C-raamatukogu funktsioonide toetamine koos POSIX-i t\u00e4iendustega ja m\u00f5ningate s\u00fcsteemispetsiifiliste laiendustega, mis on n\u00f5udlikud olemasolevates rakendustes;\n<li class=\"l\"> Ettevaatlik l\u00e4henemine tootjate spetsiifilistele laiendustele ning nende lisamine ainult vajadusel. Kolmandate osapoolte laienduste toetamises soovitatakse rakendada Clangi ja libc+ l\u00e4henemist;\n<li class=\"l\"> Parimate praktikate kasutamine arenduses, kasutades LLVM-i t\u00f6\u00f6riistu, nagu sanitiseerijate ja fuzzing-testimise rakendamine alates algusest.\n<\/ul>\n<p>\u00dcks LLVM aktiivsetest arendajatest <noindex><a rel=\"nofollow\" href=\"https:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133282.html\">mainis<\/a><\/noindex>, et libc pakkumine LLVM t\u00f6\u00f6riistakogus ei ole m\u00f5ttetu, kuid tavaliselt kasutatakse sellise vajaduse korral musl raamatukogu, mis on kvaliteetselt kirjutatud, toetab erinevaid arhitektuure ja pakub vajalikku funktsionaalsust, sealhulgas d\u00fcnaamilist sidumist. Musli integreerimine LLVM-i ja selle arendamine koosk\u00f5las peamise projektiga v\u00f5ib olla p\u00f5hjendatud.<\/p>\n<p>Oma arvamuse <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133308.html\">avaldas<\/a><\/noindex> Musl projekti autor, kes p\u00fc\u00fcdis p\u00f5hjendada, miks Google'i ettepanek ja libc kaasamine LLVM-i on v\u00e4ga halvad ideed:<\/p>\n<ul>\n<li class=\"l\"> \u00d5ige, \u00fchilduva ja kvaliteetse Libc arendamine ja hooldamine on v\u00e4ga keeruline \u00fclesanne. Probleem ei ole koodimahtudes, vaid \u00f5ige toimimise tagamises ning liidestega seotud raskustes, arvestades tohutut hulka kunagi kirjutatud rakendusi C\/C++-s ja rakendusi teistes keeltes, mille runtime kasutab Libc-d. \u00dcksikud l\u00e4henemised, ilma n\u00fcansse arvesse v\u00f5tmata, toovad kaasa selle, et paljud olemasolevad programmid ei suuda Libc-d kasutada, kuid siis ei oleks selline projekt tarbijatele huvitav.\n<li class=\"l\"> Ettev\u00f5tte arendus v\u00f5ib Libc-d rikku, kuid sundida seda laialdasemaks kasutamiseks, mille tulemuseks on vajadus lisada hacke rakenduste \u00fchilduvuse tagamiseks. Ettev\u00f5tte avatud projekti all arendamine t\u00f5mbab tekkide t\u00f5mbamise vajadusi ja lahendusi ettev\u00f5tte poole, kahjustades kogukonna huve. N\u00e4iteks, kui ilmneb probleem, mis on p\u00f5hjustatud veast muus oma programmis, on kontrollitud arenduses lihtsam tagada Libc \u00fchilduvust selle vea suhtes, kui vea ennast parandada. Apple kasutab selleks BSD libc forki, Google aga rakendab Fuchsia-s musl forki. Musli arendaja kogemus n\u00e4itab, et temaga on peamiselt suhelnud juristid, et selgitada litsentsik\u00fcsimusi, kuid tehniliste detailide t\u00e4psustamiseks ei ole kunagi p\u00f6\u00f6rdutud enne, kui nad on oma harudesse teinud kasutuid ja t\u00f6\u00f6korraldust rikkuvaid muudatusi.\n<li class=\"l\"> Monokultuuri puudumine libc arenduses ja suundumine konsensusel p\u00f5hinevatele standarditele, selle asemel et j\u00e4rgida \u00fchtset juhtimist, motiveerib rakendusarendajaid kasutama standardeid, mitte j\u00e4\u00e4ma kinni konkreetsetesse teadeteellistesse. Just seda p\u00f5hjusel ei toeta musl autor oma teegi integreerimist LLVM-sse, samuti libc arendamist LLVM raames, kuna sellisel juhul kaotatakse libc s\u00f5ltumatu olemus ja konkreetne teostus muutub LLVM-i jaoks esmaklassiliseks lahenduseks, samas kui k\u00f5ik teised on teisej\u00e4rgulised.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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\udd47Google'i arendajad pakkusid v\u00e4lja oma libc arendamist LLVM-i jaoks | ProHoster","description":"\u00dcks Google'i arendajatest t\u00f5statas LLVM-i meililistis mitme platvormiga arenduse teema.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/35694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=35694"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35694\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=35694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=35694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=35694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}