{"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\/fr\/blog\/news\/dostupna-standartnaya-si-biblioteka-picolibc-1-1","title":{"rendered":"La biblioth\u00e8que standard C PicoLibc 1.1 est disponible","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Keith Packard, d\u00e9veloppeur actif de Debian, leader du projet X.Org et cr\u00e9ateur de nombreuses extensions X, y compris XRender, XComposite et XRandR, <noindex><a rel=\"nofollow\" href=\"https:\/\/keithp.com\/blogs\/picolibc-1.1\/\">pr\u00e9sent\u00e9<\/a><\/noindex> le lancement d'une nouvelle biblioth\u00e8que standard C <noindex><a rel=\"nofollow\" href=\"https:\/\/keithp.com\/picolibc\/\">PicoLibc 1.1<\/a><\/noindex>, d\u00e9velopp\u00e9e pour \u00eatre utilis\u00e9e sur des appareils embarqu\u00e9s avec un stockage permanent et une m\u00e9moire vive limit\u00e9s. Dans le d\u00e9veloppement, une partie du code a \u00e9t\u00e9 emprunt\u00e9e \u00e0 la biblioth\u00e8que <noindex><a rel=\"nofollow\" href=\"http:\/\/sourceware.org\/newlib\/\">newlib<\/a><\/noindex> du projet Cygwin et <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nongnu.org\/avr-libc\/\">AVR Libc<\/a><\/noindex>, d\u00e9velopp\u00e9e pour les microcontr\u00f4leurs Atmel AVR. Le code de PicoLibc <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/keith-packard\/picolibc\">est distribu\u00e9<\/a><\/noindex> sous licence BSD. La biblioth\u00e8que est compil\u00e9e pour les architectures ARM (32 bits), i386, RISC-V, x86_64 et PowerPC.<\/p>\n<p>Kit Packard a commenc\u00e9 \u00e0 d\u00e9velopper apr\u00e8s ne pas avoir trouv\u00e9 d'alternative ad\u00e9quate \u00e0 Libc \u00e0 utiliser sur des appareils int\u00e9gr\u00e9s avec peu de RAM. Le projet est en cours de d\u00e9veloppement depuis l'ann\u00e9e derni\u00e8re. Au premier stade, le projet \u00e9tait une variante de newlib, o\u00f9 les fonctions stdio ont \u00e9t\u00e9 remplac\u00e9es par une version compacte d'avrlibc (stdio dans newlib ne convenait pas en raison de sa consommation de ressources). \u00c9tant donn\u00e9 que l'activit\u00e9 actuelle de Kit est li\u00e9e \u00e0 un travail constant avec l'architecture RISC-V et le d\u00e9veloppement d'outils pour des appareils int\u00e9gr\u00e9s, il a r\u00e9cemment r\u00e9\u00e9valu\u00e9 l'\u00e9tat des impl\u00e9mentations de libc et a conclu qu'avec quelques ajustements, la combinaison de newlib et avrlibc pourrait devenir une bonne solution universelle. Le projet s'est initialement d\u00e9velopp\u00e9 sous le nom de \u00ab newlib-nano \u00bb, mais pour \u00e9viter toute confusion avec la biblioth\u00e8que Newlib, il a \u00e9t\u00e9 rebaptis\u00e9 PicoLibc.<\/p>\n<p>Dans sa forme actuelle, Picolibc a d\u00e9j\u00e0 r\u00e9alis\u00e9 des travaux pour supprimer tout code non fourni sous licence BSD (ce code n'a pas \u00e9t\u00e9 utilis\u00e9 lors de la compilation pour des appareils int\u00e9gr\u00e9s), ce qui a consid\u00e9rablement simplifi\u00e9 la situation en ce qui concerne la licence du projet. L'impl\u00e9mentation des flux locaux a \u00e9t\u00e9 transf\u00e9r\u00e9e de 'struct _reent' au m\u00e9canisme TLS (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Thread-local_storage\">stockage local des threads<\/a><\/noindex>). Une version compacte par d\u00e9faut de stdio, emprunt\u00e9e \u00e0 la code de la biblioth\u00e8que avrlibc (les insertions en assembleur sp\u00e9cifiques \u00e0 Atmel ont \u00e9t\u00e9 r\u00e9\u00e9crites en C), a \u00e9t\u00e9 activ\u00e9e. Le cadre de compilation Meson a \u00e9t\u00e9 utilis\u00e9, ce qui a permis de ne pas d\u00e9pendre des scripts de compilation de newlib et de simplifier le transfert des modifications de newlib. Une version simplifi\u00e9e du code d'initialisation (crt0), attach\u00e9e \u00e0 l'ex\u00e9cutable et ex\u00e9cut\u00e9e avant de transf\u00e9rer le contr\u00f4le \u00e0 la fonction main(), a \u00e9t\u00e9 ajout\u00e9e.<\/p>\n<p>Dans la version PicoLibc 1.1 :<\/p>\n<ul>\n<li class=\"l\"> Une biblioth\u00e8que d'assistance a \u00e9t\u00e9 ajout\u00e9e pour prendre en charge la technologie \u00ab<noindex><a rel=\"nofollow\" href=\"http:\/\/www.keil.com\/support\/man\/docs\/armcc\/armcc_pge1358787046598.htm\">semihosting<\/a><\/noindex>\u00bb, permettant au code s'ex\u00e9cutant dans un environnement de d\u00e9bogage ou d'\u00e9mulateur d'utiliser les m\u00e9canismes d'entr\u00e9e\/sortie du syst\u00e8me h\u00f4te;\n<li class=\"l\"> Pour les syst\u00e8mes prenant en charge les appels syst\u00e8me open, close, read et write, des interfaces d'entr\u00e9e\/sortie stdio standardis\u00e9es POSIX ont \u00e9t\u00e9 ajout\u00e9es dans tinystdio, y compris les fonctions fopen et fdopen, ainsi que le lien stdin\/stdout\/stderr \u00e0 des descripteurs de fichiers d\u00e9finis dans POSIX;\n<li class=\"l\"> Des modifications r\u00e9centes du code de newlib ont \u00e9t\u00e9 transf\u00e9r\u00e9es. Y compris des stubs libm pour <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man3\/fenv.3.html\">fenv.h<\/a><\/noindex>, qui peuvent \u00eatre utilis\u00e9s sur des syst\u00e8mes sans prise en charge des calculs \u00e0 virgule flottante;\n<li class=\"l\"> Un exemple de compilation de l'application \u00ab Hello world \u00bb avec picolibc pour les syst\u00e8mes ARM et RISC-V a \u00e9t\u00e9 ajout\u00e9;\n<li class=\"l\"> Les r\u00e9pertoires newlib, libm et mathfp, contenant du code exp\u00e9rimental inutilis\u00e9, ont \u00e9t\u00e9 supprim\u00e9s.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source : <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.2 - 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\/fr\/blog\/news\/dostupna-standartnaya-si-biblioteka-picolibc-1-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Biblioth\u00e8que standard C PicoLibc 1.1 disponible | ProHoster","description":"Keith Packard, d\u00e9veloppeur actif de Debian, leader du projet X.Org et cr\u00e9ateur de nombreuses extensions X, y compris XRender, XComposite et XRandR,","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/dostupna-standartnaya-si-biblioteka-picolibc-1-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/52800","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=52800"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/52800\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=52800"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=52800"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=52800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}