A LittleFS 2.10 hibatűrő fájlrendszer kiadása.

Megjelent a LittleFS 2.10 verziója, amely egy kompakt fájlrendszert fejleszt beágyazott készülékek és mikrokontrollerek számára. Eredetileg a fájlrendszert az ARM cég készítette az Mbed OS operációs rendszerhez, de később külön projektbe került. A fájlrendszer kódja C nyelven íródott, és BSD licenc alatt terjesztik. A LittleFS referenciaimplementációja C könyvtár formájában érhető el, amelyre alapozva készült a FUSE modul és az egyes programozási nyelvekhez való kötődései.

A LittleFS jellemzői:

  • Alacsony erőforrásigény és támogatja a működést korlátozott RAM méret mellett. A LittleFS implementációjában csak statikusan definiált bufer-eket használnak (nincs dinamikus memóriafoglalás), és nem használnak rekurzív hívásokat, így a LittleFS által használt RAM és segédstruktúrák mérete a tárolón mindig állandó marad, függetlenül attól, hogy mi kerül mentésre a fájlrendszerbe és mekkora a tároló.
  • Flash-tárolók kopáskiegyenlítésére szolgáló eszközök, amelyek minimalizálják a blokkok ismételt használatát, és egyenletesen osztják el a blokkok törlésének műveleteit a Flash memórián, amelynek vezérlője nem biztosít megoldást erre a feladatra.
  • Nagyon magas meghibásodás-ellenállás — a fájlrendszer a váratlan leállást (áramkimaradás általi leállást) normális helyzetként kezeli, és garantálja, hogy a tároló bármikor épségben legyen a lemezen. Az integritás megsértésének és adatvesztésnek megakadályozására copy-on-write (COW) mechanizmust alkalmaznak, amely során a módosítások nem írják felül az információt, hanem új helyen tárolódnak.
  • Az operációk atomaritása, mint például a törlés és átnevezés, még akkor is, ha az áramkimaradás történik a végrehajtásuk alatt. A fájl módosításai a lemezre csak a sync vagy close hívás után kerülnek. Az atomikusan végrehajthatatlan műveletekből származó következetlenségeket egy speciális deorphan kezelő orvosolja, amely átvizsgálja a fájlrendszer fáját a betöltés után.
  • POSIX-szerű funkciók támogatása a fájlokkal és könyvtárakkal való munkához.

A LittleFS fájlok tartalmát COW-listák képviselik, amelyek O(1) bonyolultsági szintet biztosítanak hozzáadáskor és O(nlogn) olvasáskor. A blokkok allokálása a fájlrendszer átvizsgálásán alapul, a fix méretű, bitvektor formájában tárolt blokkok keresésével. Az átvizsgálás egyszerűsítése érdekében az összes könyvtár egy összekapcsolt lista része, amely az egész fájlrendszert átfogja. Ha blokkok írásakor hiba lép fel, új blokk kerül allokálásra, és az adatok áthelyezésre kerülnek.

A LittleFS új verziójában történt változások:

  • A fájlutak elemzésének kódja átdolgozásra került, lehetővé téve a fájlrendszer viselkedésének közelítését a POSIX-rendszerekhez és a felhasználók elvárásaihoz olyan helyzetekben, mint például az útvonal perjellel való lezárása, üres utak kezelése és a fájlrendszer gyökérén való navigáció.
  • Két új blokk eszköz példa került hozzáadásra: ramcrc32bd és ramrsbd, melyek megvalósítják a LittleFS-sel kompatibilis hibajavító mechanizmust. A LittleFS fájlrendszer jelenlegi állapotában hiányzik a hibák meghatározásának és javításának támogatása, ezért ezek a műveletek a blokk eszközök szintjére kerülnek.
  • A lfs_mkdir funkcióban támogatást kapott a befejező perjelek használata, tehát a lfs_mkdir("a/") hívás most nem okoz hibát.
  • A lfs_stat és lfs_getattr függvényekben most hibát jeleznek a befejező perjelek használatakor, ha a fájlrendszerben létező útvonal nem egy könyvtár.
  • Ha a lfs_file_open funkción keresztül próbálnak meg fájlt megnyitni, amelynek neve befejező perjellel rendelkezik, most LFS_ERR_NOTDIR hibát eredményez, ha a fájl nem könyvtár a fájlrendszerben, LFS_ERR_ISDIR hibát, ha a név egy könyvtárra mutat, és LFS_O_CREAT-ot, ha a fájl nem létezik.
  • A gyökér fájlrendszeren való túllépésre tett kísérlet, például a lfs_stat("/../a") hívás esetén most hibát jelez.
  • A üres út megadása most nem szinonimája a gyökérkönyvtár elérésének, tehát a lfs_stat("") hívás hibaüzenetet eredményez.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster