{"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\/it\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","title":{"rendered":"Uscita del file system tollerante agli errori LittleFS 2.10","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00c8 stato pubblicato il rilascio del progetto LittleFS 2.10, che sviluppa un file system compatto per dispositivi embedded e microcontrollori. Inizialmente, il file system \u00e8 stato creato dall'azienda ARM per il sistema operativo Mbed OS, ma successivamente \u00e8 stato trasferito a un progetto separato. Il codice del file system \u00e8 scritto in linguaggio C e distribuito con licenza BSD. La realizzazione di riferimento di LittleFS \u00e8 fornita come libreria C, sulla quale \u00e8 stato creato un modulo FUSE e wrapper per diversi linguaggi di programmazione.     <\/p>\n<p>Caratteristiche di LittleFS:  <\/p>\n<ul>\n<li class=\"l\"> Basse esigenze di risorse e supporto per il funzionamento in condizioni di dimensioni limitate della RAM. Nella realizzazione di LittleFS sono utilizzati solo buffer staticamente definiti (senza allocazione dinamica della memoria) e non vengono utilizzate chiamate ricorsive, il che consente di mantenere costante la dimensione della memoria operativa e delle strutture di servizio di LittleFS su storage, indipendentemente da ci\u00f2 che viene scritto nel file system e dalla dimensione dello storage.\n<li class=\"l\"> Strumenti per il livellamento dell'usura dei supporti Flash (wear leveling), che permettono di minimizzare il riutilizzo dei blocchi e di distribuire uniformemente le operazioni di cancellazione dei blocchi nella memoria Flash, il cui controller non offre una soluzione a questo problema.\n<li class=\"l\"> Elevata resilienza ai guasti \u2014 il file system considera l'interruzione casuale dell'attivit\u00e0 (interruzione a causa di un\u2019interruzione dell'alimentazione) una situazione normale e garantisce che la conservazione su disco sia integra in qualsiasi momento. Per prevenire violazioni di integrit\u00e0 e perdite di dati, viene utilizzato il meccanismo copy-on-write (COW), in cui le modifiche non sovrascrivono le informazioni, ma vengono memorizzate in un nuovo luogo.\n<li class=\"l\"> Atomicit\u00e0 delle operazioni, come eliminazione e rinominazione, anche in caso di interruzione di corrente durante la loro esecuzione. Le modifiche ai file vengono scritte su disco solo dopo la chiamata di sync o close. Le incoerenze causate da operazioni che non possono essere eseguite in modo atomico vengono risolte da un gestore speciale chiamato deorphan, che attraversa tutte le strutture del file system dopo il caricamento.\n<li class=\"l\"> Supporto per funzioni simili a POSIX per la gestione di file e directory.  <\/ul>\n<p>Il contenuto dei file in LittleFS \u00e8 rappresentato da liste COW-CTZ, che garantiscono un livello di complessit\u00e0 O(1) per l'aggiunta e O(nlogn) per la lettura. L'allocazione dei blocchi avviene tramite la scansione del FS per blocchi utilizzati in un'area di dimensione fissa, memorizzata sotto forma di vettore di bit. Per semplificare la scansione, tutte le directory fanno parte di una lista concatenata che copre l'intero file system. Se durante la scrittura di un blocco si verifica un errore, viene allocato un nuovo blocco e i dati vengono trasferiti in esso.     <\/p>\n<p>Tra le novit\u00e0 della nuova versione di LittleFS:  <\/p>\n<ul>\n<li class=\"l\"> Il codice di analisi dei percorsi dei file \u00e8 stato riprogettato, avvicinando il comportamento del FS a quello dei sistemi POSIX e alle aspettative degli utenti in situazioni come la chiusura del percorso con una barra, la gestione dei percorsi vuoti e la navigazione oltre la radice del FS.\n<li class=\"l\"> Sono stati aggiunti due nuovi esempi di dispositivi a blocchi ramcrc32bd e ramrsbd, in cui \u00e8 stato implementato un meccanismo di correzione degli errori compatibile con LittleFS. Al momento, il FS LittleFS non supporta la rilevazione e la correzione degli errori, e queste operazioni vengono gestite a livello di dispositivi a blocchi.\n<li class=\"l\"> La funzione lfs_mkdir ha aggiunto il supporto per gli slash finali, quindi la chiamata a lfs_mkdir(\u2018a\/\u2019) non genera pi\u00f9 un errore.\n<li class=\"l\"> Nelle funzioni lfs_stat e lfs_getattr ora viene visualizzato un errore quando si utilizzano barre di chiusura, se il percorso esistente nel FS non \u00e8 una directory.\n<li class=\"l\"> La tentativo di apertura tramite la funzione lfs_file_open di un file con una barra finale nel nome porter\u00e0 ora a un errore LFS_ERR_NOTDIR, se il file non \u00e8 una directory nel FS, LFS_ERR_ISDIR, se il nome si riferisce a una directory nel FS, e LFS_O_CREAT, se il file non esiste.\n<li class=\"l\"> Un tentativo di accesso oltre il file system radice, ad esempio, lfs_stat(\u2018\/..\/a\u2019), ora generer\u00e0 un errore.\n<li class=\"l\"> Specificare un percorso vuoto non \u00e8 pi\u00f9 sinonimo di accesso alla cartella radice, quindi la chiamata a lfs_stat(\u2018\u2019) generer\u00e0 un errore.    <\/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.1.1 - 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\/it\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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 Rilascio del file system fault-tolerant LittleFS 2.10 | ProHoster","description":"\u00c8 stato pubblicato il rilascio del progetto LittleFS 2.10, che sviluppa un file system compatto per dispositivi embedded e microcontrollori.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/120974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=120974"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/120974\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=120974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=120974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=120974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}