{"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\/pt\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","title":{"rendered":"Lan\u00e7amento do sistema de arquivos tolerante a falhas LittleFS 2.10","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi lan\u00e7ado o projeto LittleFS 2.10, que desenvolve um sistema de arquivos compacto para dispositivos embarcados e microcontroladores. Inicialmente, o sistema de arquivos foi criado pela ARM para o sistema operacional Mbed OS, mas depois foi separado em um projeto independente. O c\u00f3digo do FS \u00e9 escrito em linguagem C e distribu\u00eddo sob licen\u00e7a BSD. A implementa\u00e7\u00e3o de refer\u00eancia do LittleFS \u00e9 fornecida como uma biblioteca C, a partir da qual foi criado um m\u00f3dulo FUSE e wrappers para v\u00e1rias linguagens de programa\u00e7\u00e3o.     <\/p>\n<p>Caracter\u00edsticas do LittleFS:  <\/p>\n<ul>\n<li class=\"l\"> Baixos requisitos de recursos e suporte para opera\u00e7\u00e3o em condi\u00e7\u00f5es de tamanho de RAM limitado. Na implementa\u00e7\u00e3o do LittleFS, s\u00e3o utilizados apenas buffers definidos estaticamente (sem aloca\u00e7\u00e3o din\u00e2mica de mem\u00f3ria) e n\u00e3o s\u00e3o feitas chamadas recursivas, o que garante que o tamanho da mem\u00f3ria RAM consumida e das estruturas auxiliares do LittleFS no armazenamento permane\u00e7am constantes, independentemente do que \u00e9 gravado no FS e do tamanho do armazenamento.\n<li class=\"l\"> Mecanismos para nivelamento de desgaste de dispositivos Flash, permitindo minimizar a reutiliza\u00e7\u00e3o de blocos e distribuir uniformemente as opera\u00e7\u00f5es de limpeza de blocos na mem\u00f3ria Flash, cujo controlador n\u00e3o fornece uma solu\u00e7\u00e3o para essa tarefa.\n<li class=\"l\"> Alta resist\u00eancia a falhas \u2014 O sistema considera a interrup\u00e7\u00e3o acidental (finaliza\u00e7\u00e3o devido a falta de energia) como uma situa\u00e7\u00e3o normal e garante que o armazenamento no disco permane\u00e7a \u00edntegro a qualquer momento. Para evitar a corrup\u00e7\u00e3o e perda de dados, \u00e9 utilizado o mecanismo copy-on-write (COW), onde as altera\u00e7\u00f5es n\u00e3o sobrescrevem as informa\u00e7\u00f5es, mas s\u00e3o salvas em um novo local.\n<li class=\"l\"> Atomicidade na realiza\u00e7\u00e3o de opera\u00e7\u00f5es, como exclus\u00e3o e renomea\u00e7\u00e3o, mesmo em caso de perda de energia durante sua execu\u00e7\u00e3o. As altera\u00e7\u00f5es em um arquivo s\u00e3o gravadas no disco apenas ap\u00f3s a chamada sync ou close. Descompassos causados por opera\u00e7\u00f5es que n\u00e3o podem ser realizadas de forma at\u00f4mica s\u00e3o resolvidos por um manipulador especial de deorphan, que percorre toda a \u00e1rvore do FS ap\u00f3s a carga.\n<li class=\"l\"> Suporte a fun\u00e7\u00f5es semelhantes ao POSIX para trabalhar com arquivos e diret\u00f3rios.  <\/ul>\n<p>O conte\u00fado dos arquivos em LittleFS \u00e9 apresentado como listas COW-CTZ, oferecendo um n\u00edvel de complexidade O(1) ao adicionar e O(nlogn) ao ler. A aloca\u00e7\u00e3o de blocos \u00e9 feita por meio da varredura do sistema de arquivos em busca de blocos utilizados em uma \u00e1rea de tamanho fixo, armazenada como um vetor de bits. Para simplificar a varredura, todos os diret\u00f3rios fazem parte de uma lista encadeada que abrange todo o sistema de arquivos. Se um erro for detectado ao gravar um bloco, um novo bloco \u00e9 alocado e os dados s\u00e3o transferidos para ele.     <\/p>\n<p>Entre as mudan\u00e7as na nova vers\u00e3o do LittleFS:  <\/p>\n<ul>\n<li class=\"l\"> O c\u00f3digo de an\u00e1lise de caminhos de arquivos foi revisado, permitindo que o comportamento do sistema de arquivos se aproxime das expectativas dos usu\u00e1rios em sistemas POSIX em situa\u00e7\u00f5es como a finaliza\u00e7\u00e3o de caminhos com barra, o tratamento de caminhos vazios e a navega\u00e7\u00e3o fora da raiz do sistema de arquivos.\n<li class=\"l\"> Foram adicionados dois novos exemplos de dispositivos de bloco, ramcrc32bd e ramrsbd, que implementam um mecanismo de corre\u00e7\u00e3o de erros compat\u00edvel com LittleFS. No estado atual, o pr\u00f3prio LittleFS n\u00e3o suporta a detec\u00e7\u00e3o e a corre\u00e7\u00e3o de erros, e essas opera\u00e7\u00f5es s\u00e3o transferidas para o n\u00edvel dos dispositivos de bloco.\n<li class=\"l\"> A fun\u00e7\u00e3o lfs_mkdir agora suporta barras finais, ou seja, a chamada lfs_mkdir(\u2018a\/\u2019) n\u00e3o resultar\u00e1 mais em um erro.\n<li class=\"l\"> Nas fun\u00e7\u00f5es lfs_stat e lfs_getattr, agora ser\u00e1 gerado um erro ao usar barras finais se o caminho existente no sistema de arquivos n\u00e3o for um diret\u00f3rio.\n<li class=\"l\"> A tentativa de abrir um arquivo com barra final no nome usando a fun\u00e7\u00e3o lfs_file_open agora resultar\u00e1 no erro LFS_ERR_NOTDIR, se o arquivo n\u00e3o for um diret\u00f3rio no sistema de arquivos, LFS_ERR_ISDIR, se o nome se referir a um diret\u00f3rio no sistema de arquivos, e LFS_O_CREAT, se o arquivo n\u00e3o existir.\n<li class=\"l\"> Tentativas de acessar al\u00e9m da raiz do sistema de arquivos, por exemplo, lfs_stat(\u2018\/..\/a\u2019), agora resultar\u00e3o em um erro.\n<li class=\"l\"> Especificar um caminho vazio n\u00e3o \u00e9 mais sin\u00f4nimo de acessar o diret\u00f3rio raiz, ou seja, a chamada lfs_stat('\u2018') resultar\u00e1 em um erro.    <\/ul>\n<p>Fonte: <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.3 - 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\/pt\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47 Lan\u00e7amento do sistema de arquivos tolerante a falhas LittleFS 2.10 | ProHoster","description":"Foi lan\u00e7ado o projeto LittleFS 2.10, que desenvolve um sistema de arquivos compacto para dispositivos embarcados e microcontroladores.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/120974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=120974"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/120974\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=120974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=120974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=120974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}