{"id":52800,"date":"2019-11-17T00:00:00","date_gmt":"2019-11-16T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/dostupna-standartnaya-si-biblioteka-picolibc-1-1"},"modified":"2020-02-18T14:00:36","modified_gmt":"2020-02-18T11:00:36","slug":"dostupna-standartnaya-si-biblioteka-picolibc-1-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/dostupna-standartnaya-si-biblioteka-picolibc-1-1","title":{"rendered":"Standardn\u00ed C knihovna PicoLibc 1.1 je k dispozici","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Keith Packard, aktivn\u00ed v\u00fdvoj\u00e1\u0159 Debianu, vedouc\u00ed projektu X.Org a tv\u016frce mnoha X roz\u0161\u00ed\u0159en\u00ed, v\u010detn\u011b XRender, XComposite a XRandR, <noindex><a rel=\"nofollow\" href=\"https:\/\/keithp.com\/blogs\/picolibc-1.1\/\">p\u0159edstavil<\/a><\/noindex> novou standardn\u00ed C knihovnu <noindex><a rel=\"nofollow\" href=\"https:\/\/keithp.com\/picolibc\/\">PicoLibc 1.1<\/a><\/noindex>, kter\u00e1 je vyv\u00edjena pro pou\u017eit\u00ed na vestavn\u00fdch za\u0159\u00edzen\u00edch s omezenou velikost\u00ed trval\u00e9ho \u00falo\u017ei\u0161t\u011b a opera\u010dn\u00ed pam\u011bti. P\u0159i v\u00fdvoji byla \u010d\u00e1st k\u00f3du p\u0159evzata z knihovny <noindex><a rel=\"nofollow\" href=\"http:\/\/sourceware.org\/newlib\/\">newlib<\/a><\/noindex> z projektu Cygwin a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nongnu.org\/avr-libc\/\">AVR Libc<\/a><\/noindex>, kter\u00e1 byla vyv\u00edjena pro mikrokontrol\u00e9ry Atmel AVR. K\u00f3d PicoLibc <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/keith-packard\/picolibc\">distribuov\u00e1no<\/a><\/noindex> je licencov\u00e1n pod licenc\u00ed BSD. Knihovna je podp\u016frn\u00e1 pro architektury ARM (32-bit), i386, RISC-V, x86_64 a PowerPC.<\/p>\n<p>Kit Packard za\u010dal vyv\u00edjet pot\u00e9, co se mu nepoda\u0159ilo naj\u00edt vhodnou variantu Libc, kterou by bylo mo\u017en\u00e9 pou\u017e\u00edt na vestav\u011bn\u00fdch za\u0159\u00edzen\u00edch s malou RAM. Projekt se vyv\u00edj\u00ed od lo\u0148sk\u00e9ho roku. V prvn\u00ed f\u00e1zi projekt p\u0159edstavoval variantu newlib, kde byly funkce stdio nahrazeny kompaktn\u00ed verz\u00ed z avrlibc (stdio v newlib nevhodn\u00e9 z hlediska velk\u00e9 spot\u0159eby zdroj\u016f). Vzhledem k tomu, \u017ee sou\u010dasn\u00e1 \u010dinnost Kita je spojena s neust\u00e1lou prac\u00ed na architektu\u0159e RISC-V a v\u00fdvojem n\u00e1stroj\u016f pro vestav\u011bn\u00e1 za\u0159\u00edzen\u00ed, ned\u00e1vno p\u0159ezkoumal stav implementac\u00ed libc a dosp\u011bl k z\u00e1v\u011bru, \u017ee s drobn\u00fdm zpracov\u00e1n\u00edm m\u016f\u017ee kombinace newlib a avrlibc p\u0159edstavovat dobr\u00e9 univerz\u00e1ln\u00ed \u0159e\u0161en\u00ed. P\u016fvodn\u011b se projekt vyv\u00edjel pod n\u00e1zvem \u201enewlib-nano\u201c, ale aby se p\u0159ede\u0161lo z\u00e1m\u011bn\u011b s knihovnou Newlib, byl p\u0159ejmenov\u00e1n na PicoLibc.<\/p>\n<p>V aktu\u00e1ln\u00ed podob\u011b v Picolibc ji\u017e prob\u011bhla pr\u00e1ce na odstran\u011bn\u00ed ve\u0161ker\u00e9ho k\u00f3du, kter\u00fd nen\u00ed poskytov\u00e1n pod licenc\u00ed BSD (tento k\u00f3d nebyl pou\u017eit p\u0159i sestaven\u00ed pro vestav\u011bn\u00e1 za\u0159\u00edzen\u00ed), co\u017e v\u00fdrazn\u011b zjednodu\u0161ilo ot\u00e1zku licenc\u00ed projektu. Implementace lok\u00e1ln\u00edch vl\u00e1ken byla p\u0159evedena z \u2018struct _reent\u2019 na mechanismus TLS (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Thread-local_storage\">thread-local storage<\/a><\/noindex>). V\u00fdchoz\u00ed kompaktn\u00ed varianta stdio, p\u0159evzat\u00e1 z k\u00f3du knihovny avrlibc, byla aktivov\u00e1na (specifick\u00e9 pro ATmel assemblerov\u00e9 vklady byly p\u0159evedeny do C). Pro sestaven\u00ed byl pou\u017eit n\u00e1stroj Meson, co\u017e umo\u017enilo nezav\u00e1zat se ke sc\u00e9n\u00e1\u0159\u016fm pro sestaven\u00ed newlib a usnadnit p\u0159enos zm\u011bn z newlib. Byla p\u0159id\u00e1na zjednodu\u0161en\u00e1 varianta inicializa\u010dn\u00edho k\u00f3du (crt0), kter\u00fd je p\u0159ipojen k spustiteln\u00e9mu souboru a vykon\u00e1v\u00e1 se p\u0159ed p\u0159ed\u00e1n\u00edm \u0159\u00edzen\u00ed funkci main().<\/p>\n<p>Ve verzi PicoLibc 1.1:<\/p>\n<ul>\n<li class=\"l\"> Byla p\u0159id\u00e1na pomocn\u00e1 knihovna pro podporu technologie \u201e<noindex><a rel=\"nofollow\" href=\"http:\/\/www.keil.com\/support\/man\/docs\/armcc\/armcc_pge1358787046598.htm\">semihosting<\/a><\/noindex>\u201e, kter\u00e1 umo\u017e\u0148uje k\u00f3du prov\u00e1d\u011bn\u00e9mu v prost\u0159ed\u00ed ladic\u00edho programu nebo emul\u00e1toru vyu\u017e\u00edvat mechanismy vstupu\/v\u00fdstupu hostitelsk\u00e9ho syst\u00e9mu;\n<li class=\"l\"> Pro syst\u00e9my, kter\u00e9 podporuj\u00ed syst\u00e9mov\u00e9 v\u00fdskyty open, close, read a write, byly do tinystdio p\u0159id\u00e1ny standardizovan\u00e9 POSIX rozhran\u00ed pro vstup\/v\u00fdstup stdio, v\u010detn\u011b funkc\u00ed fopen a fdopen, a tak\u00e9 byla provedena vazba stdin\/stdout\/stderr na konkr\u00e9tn\u00ed POSIX file deskriptory;\n<li class=\"l\"> Byly p\u0159eneseny ned\u00e1vn\u00e9 zm\u011bny z k\u00f3dov\u00e9 z\u00e1kladny newlib. Mezi n\u011b pat\u0159\u00ed p\u0159id\u00e1n\u00ed stub\u016f libm pro <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man3\/fenv.3.html\">fenv.h<\/a><\/noindex>, kter\u00e9 lze pou\u017e\u00edt v syst\u00e9mech bez podpory v\u00fdpo\u010dt\u016f s plovouc\u00ed desetinnou \u010d\u00e1rkou;\n<li class=\"l\"> Byl p\u0159id\u00e1n p\u0159\u00edklad sestaven\u00ed aplikace \u201eHello world\u201c s picolibc pro syst\u00e9my ARM a RISC-V;\n<li class=\"l\"> Byly odstran\u011bny adres\u00e1\u0159e newlib, libm a mathfp, kter\u00e9 obsahovaly nepou\u017eit\u00fd experiment\u00e1ln\u00ed k\u00f3d.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Zdroj: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51873\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0438\u0442 \u041f\u0430\u043a\u043a\u0430\u0440\u0434 (Keith Packard), \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a Debian, \u043b\u0438\u0434\u0435\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 X.Org \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 X-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439, \u0432\u043a\u043b\u044e\u0447\u0430\u044f XRender, XComposite \u0438 XRandR, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0432\u044b\u043f\u0443\u0441\u043a \u043d\u043e\u0432\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 PicoLibc 1.1, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0430 \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 newlib \u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0421ygwin \u0438 AVR Libc, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0432\u0448\u0435\u0439\u0441\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-52800","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=\"\u041a\u0438\u0442 \u041f\u0430\u043a\u043a\u0430\u0440\u0434 (Keith Packard), \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a Debian, \u043b\u0438\u0434\u0435\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 X.Org \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 X-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439, \u0432\u043a\u043b\u044e\u0447\u0430\u044f XRender, XComposite \u0438 XRandR,\" \/>\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\/cs\/blog\/news\/dostupna-standartnaya-si-biblioteka-picolibc-1-1\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 PicoLibc 1.1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0438\u0442 \u041f\u0430\u043a\u043a\u0430\u0440\u0434 (Keith Packard), \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a Debian, \u043b\u0438\u0434\u0435\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 X.Org \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 X-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439, \u0432\u043a\u043b\u044e\u0447\u0430\u044f XRender, XComposite \u0438 XRandR,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/dostupna-standartnaya-si-biblioteka-picolibc-1-1\" \/>\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-11-16T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:36+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\udd47Standardn\u00ed C knihovna PicoLibc 1.1 je nyn\u00ed k dispozici | ProHoster","description":"Keith Packard, aktivn\u00ed v\u00fdvoj\u00e1\u0159 Debianu, vedouc\u00ed projektu X.Org a tv\u016frce mnoha X roz\u0161\u00ed\u0159en\u00ed, v\u010detn\u011b XRender, XComposite a XRandR,","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/dostupna-standartnaya-si-biblioteka-picolibc-1-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 PicoLibc 1.1 | ProHoster","og:description":"\u041a\u0438\u0442 \u041f\u0430\u043a\u043a\u0430\u0440\u0434 (Keith Packard), \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a Debian, \u043b\u0438\u0434\u0435\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 X.Org \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 X-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439, \u0432\u043a\u043b\u044e\u0447\u0430\u044f XRender, XComposite \u0438 XRandR,","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/dostupna-standartnaya-si-biblioteka-picolibc-1-1","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-11-16T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:36+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52800","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-24 04:56:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:36:37","updated":"2026-01-24 04:56:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/52800","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=52800"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/52800\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=52800"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=52800"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=52800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}