Lëshimi i sistemit të filesit të qëndrueshëm LittleFS 2.10

ËshtĂ« publikuar versioni i projektit LittleFS 2.10, qĂ« zhvillon njĂ« sistem skedarĂ«sh kompakt pĂ«r pajisje tĂ« integruara dhe mikrokontrollues. Fillimisht, sistemi i skedarĂ«ve u krijua nga ARM pĂ«r sistemin operativ Mbed OS, por mĂ« pas u veçua si projekt mĂ« vete. Kodi i sistemit tĂ« skedarĂ«ve Ă«shtĂ« shkruar nĂ« gjuhĂ«n C dhe shpĂ«rndahet nĂ«n licencĂ«n BSD. Implementimi referencĂ« i LittleFS ofrohet si bibliotekĂ« C, mbi bazĂ«n e sĂ« cilĂ«s janĂ« krijuar njĂ« modul FUSE dhe lidhje pĂ«r gjuhĂ« tĂ« ndryshme programimi.

Veçoritë e LittleFS:

  • KĂ«rkesa tĂ« ulĂ«ta pĂ«r burime dhe mbĂ«shtetje pĂ«r funksionim nĂ« kushte me RAM tĂ« kufizuar. NĂ« implementimin e LittleFS pĂ«rdoren vetĂ«m bufferĂ« tĂ« pĂ«rcaktuar nĂ« mĂ«nyrĂ« statike (pa alokim dinamik tĂ« memories) dhe nuk pĂ«rdoren thirrje rekursive, ndaj madhĂ«sia e memories operative tĂ« pĂ«rdorur dhe e strukturave ndihmĂ«se tĂ« LittleFS nĂ« ruajtĂ«s mbetet gjithmonĂ« konstante, pavarĂ«sisht se çfarĂ« shkruhet nĂ« sistemin e skedarĂ«ve dhe sa i madh Ă«shtĂ« ruajtĂ«si.
  • Mekanizma pĂ«r barazimin e konsumimit tĂ« mediave Flash (wear leveling), qĂ« mundĂ«sojnĂ« minimizimin e ripĂ«rdorimit tĂ« blloqeve dhe shpĂ«rndarjen e njĂ«trajtshme tĂ« operacioneve tĂ« pastrimit tĂ« blloqeve nĂ« memorien Flash, kontrolluesi i sĂ« cilĂ«s nuk e ofron kĂ«tĂ« funksion.
  • QĂ«ndrueshmĂ«ri shumĂ« e lartĂ« ndaj dĂ«shtimeve — sistemi i skedarĂ«ve e trajton ndĂ«rprerjen e papritur tĂ« punĂ«s (ndalimin pĂ«r shkak tĂ« shkĂ«putjes sĂ« energjisĂ«) si situatĂ« normale dhe garanton qĂ« ruajtja nĂ« disk tĂ« mbetet nĂ« gjendje tĂ« plotĂ« e tĂ« qĂ«ndrueshme nĂ« çdo moment. PĂ«r tĂ« shmangur cenimin e integritetit dhe humbjen e tĂ« dhĂ«nave pĂ«rdoret mekanizmi copy-on-write (COW), ku ndryshimet nuk e mbishkruajnĂ« informacionin ekzistues, por ruhen nĂ« njĂ« vend tĂ« ri.
  • Atomicitet i ekzekutimit tĂ« operacioneve, si fshirja dhe riemĂ«rtimi, edhe nĂ« rast tĂ« ndĂ«rprerjes sĂ« energjisĂ« gjatĂ« kryerjes sĂ« tyre. Ndryshimet nĂ« skedar shkruhen nĂ« disk vetĂ«m pas thirrjes sĂ« sync ose close. MospĂ«rputhjet e shkaktuara nga operacione qĂ« nuk mund tĂ« kryhen nĂ« mĂ«nyrĂ« atomike zgjidhen nga pĂ«rpunuesi i posaçëm deorphan, i cili pas nisjes kalon nĂ«pĂ«r tĂ« gjithĂ« pemĂ«n e sistemit tĂ« skedarĂ«ve.
  • MbĂ«shtetje pĂ«r funksione tĂ« ngjashme me POSIX pĂ«r punĂ«n me skedarĂ« dhe katalogĂ«.

Përmbajtja e skedarëve në LittleFS paraqitet si lista COW CTZ, që sigurojnë kompleksitet O(1) gjatë shtimit dhe O(nlogn) gjatë leximit. Alokimi i blloqeve kryhet duke skanuar sistemin e skedarëve për të gjetur blloqet e përdorura brenda një zone me madhësi fikse, e ruajtur si vektor bitësh. Për ta thjeshtuar skanimin, të gjithë drejtoritë janë pjesë e një liste të lidhur që përfshin të gjithë sistemin e skedarëve. Nëse gjatë shkrimit të një blloku zbulohet një gabim, alokohet një bllok i ri dhe të dhënat transferohen në të.

Ndryshimet në versionin e ri të LittleFS:

  • ËshtĂ« ripunuar kodi pĂ«r analizimin e shtigjeve tĂ« skedarĂ«ve, gjĂ« qĂ« e ka afruar sjelljen e sistemit tĂ« skedarĂ«ve me sistemet POSIX dhe me pritshmĂ«ritĂ« e pĂ«rdoruesve nĂ« situata si pĂ«rfundimi i shtegut me slash, pĂ«rpunimi i shtigjeve bosh dhe navigimi pĂ«rtej rrĂ«njĂ«s sĂ« sistemit tĂ« skedarĂ«ve.
  • JanĂ« shtuar dy shembuj tĂ« rinj tĂ« pajisjeve me blloqe, ramcrc32bd dhe ramrsbd, ku Ă«shtĂ« zbatuar njĂ« mekanizĂ«m korrigjimi gabimesh i pĂ«rputhshĂ«m me LittleFS. NĂ« formĂ«n aktuale, vetĂ« sistemi i skedarĂ«ve LittleFS nuk ka mbĂ«shtetje pĂ«r zbulimin dhe korrigjimin e gabimeve, ndaj kĂ«to operacione zhvendosen nĂ« nivelin e pajisjeve me blloqe.
  • NĂ« funksionin lfs_mkdir Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r slash nĂ« fund tĂ« shtegut, pra thirrja lfs_mkdir(«a/») tani nuk shkakton mĂ« gabim.
  • NĂ« funksionet lfs_stat dhe lfs_getattr tani kthehet gabim kur pĂ«rdoren slash-et nĂ« fund tĂ« shtegut, nĂ«se shtegu ekzistues nĂ« sistemin e skedarĂ«ve nuk Ă«shtĂ« drejtori.
  • PĂ«rpjekja pĂ«r tĂ« hapur pĂ«rmes funksionit lfs_file_open njĂ« skedar me slash nĂ« fund tĂ« emrit tani do tĂ« shkaktojĂ« gabimin LFS_ERR_NOTDIR nĂ«se skedari nuk Ă«shtĂ« drejtori nĂ« sistemin e skedarĂ«ve, LFS_ERR_ISDIR nĂ«se emri i referohet njĂ« drejtorie nĂ« sistemin e skedarĂ«ve, dhe LFS_O_CREAT nĂ«se skedari nuk ekziston.
  • PĂ«rpjekja pĂ«r tĂ« kaluar pĂ«rtej rrĂ«njĂ«s sĂ« sistemit tĂ« skedarĂ«ve, pĂ«r shembull lfs_stat(«/../a»), tani do tĂ« shkaktojĂ« gabim.
  • PĂ«rcaktimi i njĂ« shtegu bosh tani nuk konsiderohet mĂ« sinonim i qasjes te drejtoria rrĂ«njĂ«, pra thirrja lfs_stat(«») do tĂ« shkaktojĂ« gabim.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster