{"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\/ro\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","title":{"rendered":"Lansarea sistemului de fi\u0219iere rezistent LittleFS 2.10","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A fost publicat\u0103 versiunea 2.10 a proiectului LittleFS, care dezvolt\u0103 un sistem de fi\u0219iere compact pentru dispozitive \u00eencorporate \u0219i microcontrolere. Ini\u021bial, sistemul de fi\u0219iere a fost creat de compania ARM pentru sistemul de operare Mbed OS, dar ulterior a fost separat \u00eentr-un proiect distinct. Codul FS este scris \u00een limbajul C \u0219i este distribuit sub licen\u021ba BSD. Implementarea de referin\u021b\u0103 a LittleFS este livrat\u0103 sub form\u0103 de bibliotec\u0103 C, pe baza c\u0103reia este creat un modul FUSE \u0219i leg\u0103turi pentru diverse limbaje de programare.     <\/p>\n<p>Caracteristici LittleFS:  <\/p>\n<ul>\n<li class=\"l\"> Cerin\u021be reduse de resurse \u0219i suport pentru operarea \u00een condi\u021bii de dimensiuni limitate ale RAM-ului. \u00cen implementarea LittleFS sunt folosite doar buffere definite static (f\u0103r\u0103 aloc\u0103ri dinamice de memorie) \u0219i nu sunt utilizate apeluri recursive, ceea ce face ca dimensiunea memoriei RAM consumate \u0219i structurile de serviciu ale LittleFS pe medii de stocare s\u0103 r\u0103m\u00e2n\u0103 \u00eentotdeauna constante, indiferent de ceea ce este scris \u00een FS \u0219i de dimensiunea stoc\u0103rii.\n<li class=\"l\"> Mecanisme pentru echilibrarea uzurii suporturilor Flash (wear leveling), care permit minimizarea reutiliz\u0103rii blocurilor \u0219i distribuirea uniform\u0103 a opera\u021biunilor de \u0219tergere a blocurilor pe memoria Flash, al c\u0103rei controler nu asigur\u0103 o solu\u021bie pentru aceast\u0103 problem\u0103.\n<li class=\"l\"> O rezisten\u021b\u0103 extrem de ridicat\u0103 la defec\u021biuni \u2014 FS consider\u0103 o oprire accidental\u0103 a func\u021bion\u0103rii (\u00eentrerupere prin deconectarea aliment\u0103rii) ca o situa\u021bie normal\u0103 \u0219i garanteaz\u0103 men\u021binerea integrit\u0103\u021bii stoc\u0103rii pe disc \u00een orice moment. Pentru a exclude \u00eenc\u0103lc\u0103rile integrit\u0103\u021bii \u0219i pierderile de date, se utilizeaz\u0103 mecanismul copy-on-write (COW), prin care modific\u0103rile nu suprascriu informa\u021bia, ci sunt salvate \u00eentr-o nou\u0103 loca\u021bie.\n<li class=\"l\"> Atomitatea execu\u021biei opera\u021biunilor, cum ar fi \u0219tergerea \u0219i redenumirea, chiar \u0219i \u00een cazul pierderii aliment\u0103rii \u00een timpul desf\u0103\u0219ur\u0103rii acestora. Modific\u0103rile fi\u0219ierului sunt scrise pe disc doar dup\u0103 apelarea sync sau close. Inconcordan\u021bele cauzate de opera\u021biuni care nu pot fi efectuate atomic sunt rezolvate de un handler special de tip deorphan, care parcurge \u00eentreaga structur\u0103 a FS dup\u0103 \u00eenc\u0103rcare.\n<li class=\"l\"> Suport pentru func\u021bii similare cu POSIX pentru lucrul cu fi\u0219iere \u0219i directoare.  <\/ul>\n<p>Con\u021binutul fi\u0219ierelor din LittleFS este reprezentat prin listele COW CTZ, care ofer\u0103 un nivel de complexitate O(1) pentru ad\u0103ugare \u0219i O(nlogn) pentru citire. Alocarea blocurilor se face prin scanarea FS-ului pentru blocurile utilizate \u00eentr-un domeniu de dimensiune fix\u0103, stocat sub form\u0103 de vector de bi\u021bi. Pentru a simplifica scanarea, toate directoarele fac parte dintr-o list\u0103 \u00eenl\u0103n\u021buit\u0103 care acoper\u0103 \u00eentregul sistem de fi\u0219iere. Dac\u0103, la scrierea unui bloc, apare o eroare, se aloc\u0103 un bloc nou \u0219i datele sunt transferate \u00een acesta.     <\/p>\n<p>Printre modific\u0103rile din noua versiune LittleFS:  <\/p>\n<ul>\n<li class=\"l\"> Codul de analiz\u0103 a c\u0103ilor fi\u0219ierelor a fost revizuit, ceea ce a permis alinierea comportamentului FS-ului la sistemele POSIX \u0219i a\u0219tept\u0103rile utilizatorilor \u00een astfel de situa\u021bii, cum ar fi finalizarea c\u0103ii cu un slash, gestionarea c\u0103ilor goale \u0219i navigarea dincolo de r\u0103d\u0103cina FS-ului.\n<li class=\"l\"> Au fost ad\u0103ugate dou\u0103 exemple noi de dispozitive de blocare ramcrc32bd \u0219i ramrsbd, \u00een care este implementat un mecanism de corectare a erorilor compatibil cu LittleFS. \u00cen prezent, FS-ul LittleFS nu suport\u0103 determinarea \u0219i corectarea erorilor, iar aceste opera\u021biuni sunt mutate la nivelul dispozitivelor de blocare.\n<li class=\"l\"> Func\u021bia lfs_mkdir a fost extins\u0103 cu suport pentru slash-uri terminale, adic\u0103 apelul lfs_mkdir(&#171;a\/&#187;) nu va genera acum o eroare.\n<li class=\"l\"> \u00cen func\u021biile lfs_stat \u0219i lfs_getattr, acum se va returna o eroare la utilizarea slash-urilor finale, dac\u0103 calea existent\u0103 \u00een FS nu este un director.\n<li class=\"l\"> Cercetarea unui fi\u0219ier prin func\u021bia lfs_file_open cu un slash final \u00een nume va duce acum la eroarea LFS_ERR_NOTDIR, dac\u0103 fi\u0219ierul nu este un director \u00een FS, LFS_ERR_ISDIR, dac\u0103 numele se refer\u0103 la un director \u00een FS, \u0219i LFS_O_CREAT, dac\u0103 fi\u0219ierul nu exist\u0103.\n<li class=\"l\"> O tentativ\u0103 de accesare \u00een afara sistemului de fi\u0219iere r\u0103d\u0103cin\u0103, de exemplu, lfs_stat(&#171;\/..&#187;), va duce acum la generarea unei erori.\n<li class=\"l\"> Indica\u021bia unui cale goal\u0103 nu mai este un sinonim pentru accesarea directorului r\u0103d\u0103cin\u0103, adic\u0103 apelul lfs_stat(&#171;&#187;) va genera o eroare.    <\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62398\">opennet.ro<\/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.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\/ro\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Lansarea sistemului de fi\u0219iere rezistent la erori LittleFS 2.10 | ProHoster","description":"A fost lansat\u0103 versiunea 2.10 a proiectului LittleFS, care dezvolt\u0103 un sistem de fi\u0219iere compact pentru dispozitive \u00eencorporate \u0219i microcontrolere.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-otkazoustojchivoj-fajlovoj-sistemy-littlefs-2-10","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/120974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=120974"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/120974\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=120974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=120974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=120974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}