LittleFS 2.10 usaldusvÀÀrse failisĂŒsteemi vĂ€ljaanne

Ilmus vĂ€ljaanne projekti LittleFS 2.10, mis arendab kompaktset failisĂŒsteemi sisseehitatud seadmete ja mikrokontrollerite jaoks. Alguses loodi failisĂŒsteem ettevĂ”tte ARM poolt Mbed OS operatsioonisĂŒsteemi jaoks, kuid hiljem eraldati see eraldi projektiks. FailisĂŒsteemi kood on kirjutatud C keeles ja levitatakse BSD litsentsi all. LittleFSi standardrakendus on saadaval C raamatukoguna, mille alusel on loodud FUSE-modul ja erinevate programmeerimiskeelte raamistike ĂŒmberringed.

LittleFSi omadused:

  • Madalaid ressursinĂ”udeid ja tugi tööle piiratud RAMi suurusega. LittleFSi rakenduses kasutatakse ainult staatiliselt mÀÀratud puhvreid (ilma dĂŒnaamilise mĂ€lu eraldamiseta) ja rekursiivseid kutseid ei kasutata, mis tĂ€hendab, et LittleFSi nĂ”utava operatiivmĂ€lu ja abistruktuuride suurus jÀÀb alati konstantses seisundis, olenemata sellest, mis failisĂŒsteemis talletatakse ja kui suurt mahutit kasutatakse.
  • Flash-mĂ€luseadmete kulumise tasakaalustamise vahendid, mis minimeerivad plokkide korduvat kasutamist ja jaotavad plokkide puhastamistegevuse ĂŒhtlaselt Flash-mĂ€lus, mille kontroller ei paku sellele probleemile lahendust.
  • VĂ€ga kĂ”rge tĂ”rkevastupidavus — failisĂŒsteem peab juhuslikku töö lĂ”petamist (energia vĂ€ljalĂŒlitamine) tavaliseks olukorraks ja tagab, et salvestus on igal ajahetkel kettal terviklikus seisundis. Andmete rikkumise ja kaotsimineku vĂ€ltimiseks kasutatakse copy-on-write (COW) mehhanismi, mille puhul muudatused ei kirjutata ĂŒle, vaid salvestatakse uude kohta.
  • Tehingute atomaarne teostamine, nagu kustutamine ja ĂŒmbernimetamine, isegi juhul, kui toide katkevad nende tĂ€itmise ajal. Faili muudatused kirjutatakse kettale alles pĂ€rast sync vĂ”i close kutsumist. EbakĂ”lad, mis tulenevad operaatsioonidest, mida ei saa atomaarsetena teostada, lahendatakse spetsiaalse deorphan töötlejaga, mis lĂ€bib kogu failisĂŒsteemi puu pĂ€rast laadimist.
  • POSIX-sarnaste funktsioonide tugi failide ja kaustade haldamiseks.

LittleFS failide sisu esitatakse COW-loendite CTZ abil, mis tagavad O(1) keerukuse taseme lisamisel ja O(nlogn) lugemisel. Blokkide eraldamine toimub FS-i skaneerimise teel, et leida kasutatud blokeeringud fikseeritud suurusega alal, mis on salvestatud bitivektorina. Skaneerimise lihtsustamiseks on kĂ”ik kataloogid osa seotud loendist, mis katab kogu failisĂŒsteemi. Kui blokeerimise kirjutamise ajal ilmneb viga, eraldatakse uus blokk ja andmed kantakse sellele ĂŒle.

Uue LittleFS-i versiooni muudatused:

  • Faili teede parsimise kood on ĂŒmber töötatud, mis on lĂ€henenud FS-i kĂ€itumist POSIX-sĂŒsteemidele ja kasutajate ootustele sellistes olukordades nagu tee lĂ”pp slĂ€shiga, tĂŒhjade teede töötlemine ja juurdepÀÀs failisĂŒsteemi juurest vĂ€lja.
  • Lisatud on kaks uut nĂ€idet plokk-seadmetest ramcrc32bd ja ramrsbd, mis rakendavad LittleFS-iga ĂŒhilduvat veakorrektiivmehhanismi. Praeguses versioonis ei toeta LittleFS ise veateadlikkuse ja parandamise funktsioone, ning need toimingud viidatakse plokk-seadmete tasemele.
  • Funktsioonile lfs_mkdir on lisatud lĂ”pp-slĂ€shi tugi, st lfs_mkdir(«a/») kutse ei too nĂŒĂŒd enam vale.
  • Funktsioonides lfs_stat ja lfs_getattr vĂ€ljastatakse nĂŒĂŒd viga, kui kasutatakse lĂ”pp-slĂ€shi, kui olemasolev FS-i tee ei ole kataloog.
  • Faili avamisel lfs_file_open abil, kus nime lĂ”pus on slĂ€sh, tekib nĂŒĂŒd LFS_ERR_NOTDIR viga, kui fail ei ole FS-is kataloog, LFS_ERR_ISDIR, kui nimi viitab FS-is kataloogile, ja LFS_O_CREAT, kui faili ei eksisteeri.
  • JuurdepÀÀsu proovimine failisĂŒsteemi juurelt vĂ€ljas, nĂ€iteks lfs_stat(«/../a»), toob nĂŒĂŒd kaasa vea.
  • TĂŒhja tee mÀÀramine ei ole nĂŒĂŒd enam samavÀÀrne juur- katalooge viitamisega, st lfs_stat(«») kutse toob kaasa vea.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster