{"id":120974,"date":"2024-12-13T15:46:01","date_gmt":"2024-12-13T13:46:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10"},"modified":"2024-12-13T15:46:01","modified_gmt":"2024-12-13T13:46:01","slug":"vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","title":{"rendered":"Sortie du syst\u00e8me de fichiers tol\u00e9rant aux pannes LittleFS 2.10","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>La version 2.10 du projet LittleFS a \u00e9t\u00e9 publi\u00e9e, d\u00e9veloppant un syst\u00e8me de fichiers compact pour les appareils int\u00e9gr\u00e9s et les microcontr\u00f4leurs. Initialement, le syst\u00e8me de fichiers a \u00e9t\u00e9 cr\u00e9\u00e9 par la soci\u00e9t\u00e9 ARM pour le syst\u00e8me d'exploitation Mbed OS, mais a ensuite \u00e9t\u00e9 s\u00e9par\u00e9 en un projet distinct. Le code du FS est \u00e9crit en langage C et est distribu\u00e9 sous licence BSD. La mise en \u0153uvre de r\u00e9f\u00e9rence de LittleFS est fournie sous la forme d'une biblioth\u00e8que C, sur laquelle un module FUSE et des liaisons pour divers langages de programmation ont \u00e9t\u00e9 cr\u00e9\u00e9s.     <\/p>\n<p>Caract\u00e9ristiques de LittleFS :  <\/p>\n<ul>\n<li class=\"l\"> Exigences en ressources faibles et prise en charge du fonctionnement dans des conditions de taille limit\u00e9e de RAM. Dans la mise en \u0153uvre de LittleFS, seuls des tampons statiquement d\u00e9finis sont utilis\u00e9s (sans allocation dynamique de m\u00e9moire) et les appels r\u00e9cursifs ne sont pas utilis\u00e9s, ce qui permet de maintenir la taille de la m\u00e9moire vive consomm\u00e9e et des structures de service de LittleFS sur le stockage toujours constante, ind\u00e9pendamment de ce qui est enregistr\u00e9 dans le FS et de la taille du stockage.\n<li class=\"l\"> M\u00e9canismes d'\u00e9galisation de l'usure des supports Flash (wear leveling), permettant de minimiser la r\u00e9utilisation des blocs et de r\u00e9partir uniform\u00e9ment les op\u00e9rations de nettoyage des blocs sur la m\u00e9moire Flash, dont le contr\u00f4leur ne fournit pas de solution \u00e0 cette t\u00e2che.\n<li class=\"l\"> Une tr\u00e8s haute r\u00e9silience aux pannes \u2014 le syst\u00e8me consid\u00e8re un arr\u00eat impr\u00e9vu (arr\u00eat d\u00fb \u00e0 une coupure de courant) comme une situation normale et garantit que le stockage sur disque reste int\u00e8gre \u00e0 tout moment. Pour \u00e9viter la corruption et la perte de donn\u00e9es, un m\u00e9canisme copy-on-write (COW) est utilis\u00e9, qui conserve les modifications \u00e0 un nouvel emplacement au lieu de r\u00e9\u00e9crire l'information.\n<li class=\"l\"> Atomicit\u00e9 des op\u00e9rations telles que la suppression et le renommage, m\u00eame en cas de coupure de courant pendant leur ex\u00e9cution. Les modifications de fichier ne sont \u00e9crites sur le disque qu'apr\u00e8s l'appel de sync ou close. Les d\u00e9saccords caus\u00e9s par des op\u00e9rations qui ne peuvent pas \u00eatre effectu\u00e9es de mani\u00e8re atomique sont r\u00e9solus par un gestionnaire sp\u00e9cial de d\u00e9-orphanage, qui passe par tout l'arbre FS apr\u00e8s le chargement.\n<li class=\"l\"> Prise en charge des fonctions de type POSIX pour le travail avec des fichiers et des r\u00e9pertoires.  <\/ul>\n<p>Le contenu des fichiers dans LittleFS est pr\u00e9sent\u00e9 sous forme de listes COW CTZ, assurant un niveau de complexit\u00e9 O(1) lors de l'ajout et O(nlogn) lors de la lecture. L'allocation des blocs se fait par le balayage du syst\u00e8me de fichiers \u00e0 la recherche des blocs utilis\u00e9s dans une r\u00e9gion de taille fixe, stock\u00e9e sous forme de vecteur de bits. Pour simplifier le scan, tous les r\u00e9pertoires font partie d'une liste cha\u00een\u00e9e englobant l'ensemble du syst\u00e8me de fichiers. En cas d'erreur lors de l'\u00e9criture d'un bloc, un nouveau bloc est allou\u00e9 et les donn\u00e9es sont transf\u00e9r\u00e9es dans celui-ci.     <\/p>\n<p>Parmi les changements dans la nouvelle version de LittleFS :  <\/p>\n<ul>\n<li class=\"l\"> Le code de parsing des chemins de fichiers a \u00e9t\u00e9 remodel\u00e9, ce qui a permis de rapprocher le comportement du syst\u00e8me de fichiers des syst\u00e8mes POSIX et des attentes des utilisateurs dans des situations telles que la terminaison d'un chemin par un slash, le traitement des chemins vides et la navigation en dehors de la racine du syst\u00e8me de fichiers.\n<li class=\"l\"> Deux nouveaux exemples de p\u00e9riph\u00e9riques de blocs ramcrc32bd et ramrsbd ont \u00e9t\u00e9 ajout\u00e9s, mettant en \u0153uvre un m\u00e9canisme de correction d'erreurs compatible avec LittleFS. Actuellement, LittleFS ne supporte pas la d\u00e9tection et la correction des erreurs, et ces op\u00e9rations sont transf\u00e9r\u00e9es au niveau des p\u00e9riph\u00e9riques de blocs.\n<li class=\"l\"> La fonction lfs_mkdir a \u00e9t\u00e9 mise \u00e0 jour pour prendre en charge les barres obliques finales, c'est-\u00e0-dire que l'appel \u00e0 lfs_mkdir(\u00ab a\/ \u00bb) ne g\u00e9n\u00e8re plus d'erreur.\n<li class=\"l\"> Dans les fonctions lfs_stat et lfs_getattr, une erreur est maintenant renvoy\u00e9e lors de l'utilisation de slashes de terminaison si le chemin existant dans le syst\u00e8me de fichiers n'est pas un r\u00e9pertoire.\n<li class=\"l\"> Une tentative d'ouverture d'un fichier avec un slash de terminaison dans le nom via la fonction lfs_file_open entra\u00eenera maintenant l'erreur LFS_ERR_NOTDIR si le fichier n'est pas un r\u00e9pertoire dans le syst\u00e8me de fichiers, LFS_ERR_ISDIR si le nom pointe vers un r\u00e9pertoire dans le syst\u00e8me de fichiers, et LFS_O_CREAT si le fichier n'existe pas.\n<li class=\"l\"> Une tentative d'acc\u00e8s \u00e0 l'ext\u00e9rieur du syst\u00e8me de fichiers racine, par exemple lfs_stat(\u00ab \/.. \/a \u00bb), entra\u00eenera maintenant un message d'erreur.\n<li class=\"l\"> Indiquer un chemin vide n'est plus synonyme d'acc\u00e8s au r\u00e9pertoire racine, donc l'appel \u00e0 lfs_stat(\u00ab \u00bb) produira un message d'erreur.    <\/ul>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62398\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LittleFS 2.10, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0443\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0431\u044b\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 ARM \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Mbed OS, \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442. \u041a\u043e\u0434 \u0424\u0421 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 BSD. \u042d\u0442\u0430\u043b\u043e\u043d\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LittleFS \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043d\u0430 \u0431\u0430\u0437\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u043d FUSE-\u043c\u043e\u0434\u0443\u043b\u044c [&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-120974","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\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LittleFS 2.10, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0443\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432.\" \/>\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\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10\" \/>\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\u0412\u044b\u043f\u0443\u0441\u043a \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b LittleFS 2.10 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LittleFS 2.10, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0443\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10\" \/>\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=\"2024-12-13T13:46:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-12-13T13:46:01+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\udd47Lancement du syst\u00e8me de fichiers tol\u00e9rant aux pannes LittleFS 2.10 | ProHoster","description":"La version 2.10 du projet LittleFS a \u00e9t\u00e9 publi\u00e9e, d\u00e9veloppant un syst\u00e8me de fichiers compact pour les dispositifs embarqu\u00e9s et les microcontr\u00f4leurs.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","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\u0412\u044b\u043f\u0443\u0441\u043a \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b LittleFS 2.10 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LittleFS 2.10, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0443\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","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":"2024-12-13T13:46:01+00:00","article:modified_time":"2024-12-13T13:46:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"120974","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":"default","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-23 08:53:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 08:53:19","updated":"2026-01-23 08:53:19","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\/120974","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=120974"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/120974\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=120974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=120974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=120974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}