Cele mai interesante patru caracteristici ale noului sistem de fișiere Apple. Sistemul de fișiere Apple (APFS)

Ieri, Apple a prezentat noi versiuni ale sistemelor de operare macOS (Sierra) 10.12, iOS 10, tvOS 10, watchOS 3, o aplicație pentru predarea copiilor să programeze Swift Playgrounds și noi emoji.

S-ar părea că nu există nimic interesant. Cu toate acestea, Apple a lansat încă ceva fundamental. Cea mai semnificativă dezvoltare menționată la prezentare a fost următoarea generație Apple File System (APFS) în sistemul de operare macOS (Sierra) 10.12.

Documentația cu principalele caracteristici și descrierea sistemului de fișiere, care repetă funcțiile individuale ale puternicului sistem de fișiere gratuit ZFS, a fost publicată pe site-ul web pentru dezvoltatori la scurt timp după prezentare.

În prezent, computerele Apple utilizează sistemul de fișiere HFS+, o versiune extinsă a HFS (Hierarchical File System, ierarhic sistem de fișiere), creată în urmă cu mai bine de 30 de ani. Ca și predecesorul său, HFS+ folosește o structură arborescentă numită arbore B* pentru a stoca majoritatea metadatelor. De aici și numele „sistem de fișiere ierarhice”.

Introducerea oficială a HFS+ a avut loc pe 19 ianuarie 1998, împreună cu MacOS 8.1. Din 2002, sistemul a implementat jurnalizarea pentru a crește fiabilitatea stocării informațiilor. Începând cu versiunea OS X 10.3, înregistrarea în jurnal este activată în mod implicit și acum este posibil să lucrați în modul diferențiat între majuscule și minuscule.

Până la OS X 10.7, dezvoltatorii au continuat să perfecționeze HFS+ și să implementeze noi funcții pentru OS X la nivel de sistem de fișiere. kilobytes sau megabytes. Astăzi, mulți oameni lucrează cu unități SSD, unde sunt stocate milioane de fișiere - gigabytes sau terabytes de date. Sunt prezentate cerințe complet diferite pentru sistemul de fișiere. În loc să reproceseze vechiul cod, Apple a decis să scrie în sfârșit un nou sistem de fișiere de la zero.

Următoarea generație de sistem de fișiere APFS este încă în stadiu previzualizarea dezvoltatorului, adică nu este planificat să fie implementat în masă în viitorul apropiat. Un volum APFS nu poate fi utilizat în prezent ca unitate de pornire și nici nu poate fi utilizat cu backup Time Machine, Fusion Drive sau criptare File Vault. Dar este posibil pentru un volum obișnuit care nu poate fi pornit.

Mai sunt încă o mulțime de dezvoltare și testare înainte, dar abia atunci APFS va deveni principalul sistem de fișiere al Apple pentru deceniile următoare.

APFS, spre deosebire de HFS+, distinge în mod inerent caracterele din numele fișierelor și folderelor, iar această caracteristică nu poate fi dezactivată. Acest lucru ar trebui să fie reținut de oricine decide să folosească APFS.

Principalele caracteristici

Documentația oficială enumeră caracteristicile generale ale sistemului de fișiere APFS în comparație cu HFS+.

Containere și volume

Container este obiectul principal pentru stocarea datelor în APFS. Containerele sunt de obicei exact aceleași cu intrările din tabelul de partiții GUID (GPT) și au propria lor schemă de protecție împotriva erorilor și de alocare a spațiului pe disc. Fiecare recipient conține unul sau mai multe volumele sau sisteme de fișiere, fiecare având propriile sale spatiu de nume, adică un set de fișiere și directoare.

APFS nu acceptă în mod direct software-ul RAID, dar poate fi utilizat cu volumele Apple RAID pentru a accepta Striping (RAID 0), Mirroring (RAID 1) și Concatenation (JBOD).

inoduri pe 64 de biți

Inodele pe 64 de biți măresc semnificativ spațiul de nume în comparație cu inodele pe 32 de biți din HFS+. Sistemul de fișiere APFS pe 64 de biți acceptă mai mult de 9 miliarde de fișiere pe fiecare volum. Acest lucru ar trebui să fie suficient pentru toată lumea, așa cum a spus Bill Gates.

Marcaje de timp în nanosecunde

APFS a crescut semnificativ acuratețea marcajelor de timp. APFS acceptă marcarea temporală cu precizie de nanosecundă. Pentru comparație, în HFS+, marcajele de timp au fost setate cu o precizie de până la o secundă.

Marcajele de timp în nanosecunde sunt foarte importante în sistemele de fișiere moderne, deoarece ajută la implementarea atomicității și a tranzacțiilor atomice - una dintre principalele cerințe ACID pentru un sistem tranzacțional (de exemplu, un DBMS). Atomicitatea asigură că nicio tranzacție nu este parțial angajată în sistem. Fie vor fi efectuate toate suboperațiunile sale, fie niciuna nu va fi efectuată.

Protecție împotriva eșecului

APFS implementează o schemă inovatoare de metadate de copiere la scriere pe care Apple o numește „Protecție împotriva accidentelor”. Se asigură că modificările sistemului de fișiere și că scrierile în jurnal rămân sincronizate dacă se întâmplă ceva în timp ce scrierea este în curs, cum ar fi o pană de curent.

Schema de copiere pe scriere în ZFS

Fișiere rare

Un fișier cu atributul „sparse” presupune că conține blocuri de zero octeți care nu sunt stocate pe unitate, dar sunt implicite. HFS+ nu a avut suport pentru fișierele rare.

Atribute extinse

APFS are suport încorporat pentru atributele de fișier extinse, care în HFS+ a fost implementat prin fișierul Attributes, adică printr-un arbore B.

Criptare

Apple spune că criptarea este o proprietate fundamentală care este încorporată în APFS la nivel de sistem de fișiere. Pentru fiecare volum dintr-un container APFS, este setat unul dintre modelele de criptare: fără criptare, criptare cu o singură cheie sau criptare cu mai multe chei. În acest din urmă caz, chei separate sunt folosite pentru a cripta fișierele și metadatele. În funcție de hardware, APFS utilizează modul de criptare AES-XTS sau AES-CBC.

Clonarea fișierelor și directoarelor

Clonarea este o copiere aproape instantanee a unui fișier sau director, care nu necesită spațiu suplimentar de stocare a datelor. Când o clonă este modificată, sistemul de fișiere înregistrează doar modificarea datelor. În acest fel, noul sistem de fișiere poate stoca multe versiuni de fișiere mari în timp ce ocupă mai puțin spațiu pe disc.

Instantanee

Instantaneele sunt instantanee numai pentru citire ale sistemului de fișiere de pe un volum. Sistemul de operare poate folosi instantanee pentru o procedură de backup mai eficientă. Adică, în sfârșit Time Machine va funcționa normal (rapid).

Desigur, APFS este semnificativ inferior în ceea ce privește capacitățile sistemului de fișiere pe 128 de biți ZFS, care este suportat de Linux, FreeBSD și alte sisteme de operare gratuite, dar din partea Apple, acesta este un pas în direcția cea bună.

Este ciudat că în documentația preliminară nu se menționează funcția de compresie, pe care HFS+, de altfel, o suportă.

Apple a încercat să port ZFS la sistemul OS X de mult timp, a existat o discuție activă despre acest lucru pe listele de corespondență ZFS, au fost publicate instantanee preliminare pentru următoarea versiune de OS X. Ulterior, a fost făcută o implementare a OpenZFS pentru OS X (O3X) și MacZFX.

Sistemul de fișiere ZFS este open source și este posibil ca Apple să fi împrumutat câteva idei de la sistemul de fișiere APFS. O implementare open source pentru APFS nu este încă gata Apple intenționează să documenteze și să publice formatul APFS în 2017.

Prima sesiune oficială va avea loc la WWDC în această seară, unde noile capabilități APFS vor fi demonstrate dezvoltatorilor mai detaliat.

Cele mai bune știri sunt adesea în culise la prezentările Apple. Motivul este că unele dintre ele sunt potrivite în primul rând pentru dezvoltatori, în timp ce altele pur și simplu nu au suficient timp - nu e de mirare, cu anunțuri atât de mari ale iOS 10! Apariția unui nou sistem de fișiere de la Apple numit APFS (Sistemul de fișiere Apple) a trecut fără zgomot și praf, dar scurgerea s-a scurs pe Internet, iar acum nimic nu te împiedică să o studiezi cu atenție.

APFS este un sistem de fișiere de ultimă generație care poate rula pe orice, de la Apple Watch la Mac Pro. Sistemul de fișiere Apple este optimizat pentru unități SSD/Flash, adică nu se mai pune accent pe hard disk-uri, ci prioritate maximă este acordată criptării. Astăzi, o dezvoltare mai veche din Cupertino, HFS+, este utilizată pe scară largă, cu care APFS merită comparată. Dar mai întâi, destul de ciudat, să descriem lista limitărilor APFS:

  • Partițiile formatate APFS nu pot fi folosite ca unități de pornire.
  • APFS este sensibil la literele mari și mici din numele fișierelor.
  • Backup-urile Time Machine nu sunt acceptate pe APFS.
  • Partițiile formatate în APFS nu sunt potrivite pentru criptare prin FileVault.
  • Designul Fusion Drive trece peste APFS.

În plus, APFS nu este în prezent un proiect open source, iar Apple însuși este puțin probabil să aibă planuri similare pentru el. Mai mult, echipa Cupertino va anunța public abia anul viitor noua generație a sistemului de fișiere.

După ce am descris deficiențele care pot speria utilizatorul obișnuit, merită identificate avantajele APFS:

  • Desigur, o muncă fructuoasă cu unități SSD.
  • Utilizarea așa-numitelor containere ca celule de stocare care sunt mai protejate de defecțiuni. În plus, fiecare container poate exporta una sau mai multe partiții, sau sisteme de fișiere, cu propriile nume, fișiere și directoare. Vă rugăm să rețineți, că nu există suport direct RAID declarat inițial, totuși APFS poate fi combinat cu o partiție RAID Apple pentru a permite RAID 0, RAID 1 și JBOD să funcționeze. Matricele RAID conectabile se vor putea, de asemenea, să se împrietenească cu APFS.
  • APFS acceptă inode pe 64 de biți, în timp ce inode pentru fișiere HFS+ se concentrează pe 32 de biți. APFS este capabil să stocheze un miliard de fișiere pe o singură partiție. Crede-ma, asta e mult :)
  • Intervalele de timp în APFS sunt împărțite în nanosecunde, mai degrabă decât în ​​secunde, ca în HFS+.
  • APFS acceptă structuri de fișiere rare care economisesc spațiu pe disc.
  • Alocatorul de blocuri este proiectat într-un mod mai inteligent: în APFS determină dimensiunea volumului de stocare, în timp ce în HFS+ este întotdeauna legat de un cadru rigid.
  • APFS are o protecție puternică împotriva pierderii de date din cauza eșecului.
  • APFS acceptă atribute extinse ale fișierului.
  • TRIM în sistemul de fișiere APFS funcționează asincron la eliminarea și alocarea spațiului liber, datorită căruia metadatele sunt modificate o singură dată și asigură o stabilitate ridicată a sistemului
  • Criptarea este componenta finală și cheie a sistemului de fișiere Apple. Sistemul de fișiere utilizează criptarea completă AES-XTS sau AES-CBC (în funcție de hardware), combină principiile stabilite de la OS X 10.7 Lion și iOS 4 și funcționează cu mai multe chei.

Acest articol de știri ar trebui rezumat cu informații despre compatibilitate, deoarece numai OS X Yosemite, El Capitan și Sierra pot funcționa cu APFS - versiunile mai vechi pur și simplu nu îl recunosc. Partițiile formatate în APFS pot fi deschise prin SMB, dar protocolul AFP nu va fi accesibil. Și, în cele din urmă, dezvoltatorii terți vor trebui să facă actualizări majore la produsele lor pentru a susține sistemul de fișiere de ultimă generație al Apple.

La ultimul WWDC, Apple a introdus un nou sistem de fișiere - Apple File System, sau APFS. Deși HFS+ este utilizat pe toate produsele Apple (și va fi folosit cel puțin încă un an, APFS este programat să fie lansat în 2017), HFS+ nu îndeplinește cerințele sistemelor de fișiere moderne. Are peste 30 de ani și a fost creat pentru o perioadă în care dischetele și hard disk-urile erau considerate cea mai recentă tehnologie. Pentru a utiliza HFS+ pe iOS, tvOS și watchOS, Apple a trebuit să adauge funcționalități complet terțe, care nu sunt acceptate pe macOS: de exemplu, criptare pentru fiecare fișier individual.

Noul APFS a adăugat atât de multe funcții încât este amețitor: optimizare pentru Flash și SSD, protecție împotriva pierderii de date în timpul blocărilor prin creșterea numărului de operațiuni atomice, suport încorporat pentru mai multe tipuri de criptare, timp de răspuns foarte redus, estimare rapidă a dimensiunea fișierelor și folderelor - lista continuă și continuă. În acest articol, vom analiza patru dintre ceea ce credem că sunt cele mai interesante caracteristici ale noului sistem de fișiere.

Copiere la scriere sigură

În primul rând, va trebui să înțelegem câțiva termeni cheie. Operații atomice sunt operațiuni care sunt efectuate inseparabil pe un sistem de fișiere sau bază de date și nu pot fi simplificate. O operațiune atomică nu poate rămâne neterminată dacă este întreruptă. O astfel de operație fie este efectuată complet, fie deloc. Stocare securizată a fișierelor atomice compatibile cu POSIX se efectuează după cum urmează - atunci când lucrăm cu o aplicație și salvăm un fișier, datele din memorie sunt descărcate într-un fișier temporar de pe disc. Când aplicația are încredere că datele au fost descărcate complet și fără erori, aplicația interogează sistemul de fișiere despre redenumire. Operația de redenumire este atomică, fie va fi completă, fie deloc. La redenumirea, ceea ce se întâmplă este că sistemul de fișiere mută fișierul temporar în locația de salvare (să zicem de la /var/tmp/Batcave_shopping.pages la ~fedor/Documents/Batcave_shopping.pages) și apoi șterge fișierul vechi.

Totuși, ce se întâmplă dacă salvăm nu un fișier, ci un folder sau un pachet (de exemplu, .rtfd sau .app, de asemenea, în esență, foldere)? Să presupunem că lucrăm cu documentul ~fedor/Documents/AlfredHappyBirthday.rtfd. Acesta este un pachet, conține text și mai multe imagini. Când facem modificări și le salvăm, aplicația suprascrie întregul pachet, nu doar textul sau imaginea modificată. Cerințele POSIX nu vă permit să redenumiți un folder undeva unde există deja date, așa că trebuie să apelați la trucuri. Documentul este mutat din ~fedor/Documents/ pentru a elibera spațiu, apoi fișierul temporar din /var/tmp/AlfredHappyBirthday.rtfd este redenumit în spațiul gol. Această operație este neatomică și nesigură. Dacă apare o eroare de sistem sau computerul pierde curent în timpul unei operațiuni, documentul se va pierde.

Evident, o astfel de soluție nu este de dorit. Prin urmare, APFS a introdus o nouă operațiune de salvare a folderelor atomice incompatibile cu POSIX. Când o aplicație solicită salvarea unui folder, fișierele temporare și permanente sunt schimbate. Acest lucru este realizat de sistemul de fișiere și este o operație atomică.

Aceasta este caracteristica securizată Copy-on-write - una dintre cele mai importante inovații în APFS.

Clonarea și instantanee

Dacă aveți nevoie de o copie a unui fișier sau folder, faceți clic dreapta pe el și selectați Duplicare. În HFS+, aceasta înseamnă că sistemul de fișiere citește toate datele și apoi le scrie în spațiul liber. Această abordare reprezintă o utilizare ineficientă a spațiului și irosește sarcina de disc și procesor. În APFS, atunci când duplicați date - prin Duplicate sau pur și simplu ⌘C, ⌘V - sistemul de fișiere copiază doar linkul către ele (așa-numitul hard link), iar conținutul nu este duplicat. Această operație se numește clonarea. Datorită clonării, o dată sau un folder duplicat apare aproape instantaneu și ocupă o cantitate neglijabilă de spațiu liber. Dacă modificați originalul sau clonul, sistemul de fișiere va înregistra modificările și va redirecționa linkul în consecință, lăsând datele originale neatinse. În APFS, operația de clonare este atomică.

Instantanee este un instantaneu specific al unui volum care stochează informații despre datele de pe acel volum la un anumit moment în timp. Cel mai simplu mod de a înțelege cum funcționează este cu un exemplu. Să presupunem că avem un volum (să zicem o unitate flash) cu două prezentări. Creăm un Snapshot al acestei unități flash, conține două fișiere Joker.key și Riddler.key, următoarele blocuri de date aparțin fișierelor. Instantaneul în sine nu conține date de pe unitatea flash - doar ce fișiere erau pe el în momentul în care a fost creat instantaneul și ce blocuri aparțineau. Particularitatea Snapshot este că blocurile scrise în el sunt închise. Ele nu pot fi șterse, mutate sau suprascrise. Prin urmare, de exemplu, dacă facem modificări la Joker.key și ștergem Riddler.key cu totul, blocurile de date originale vor rămâne intacte. Deși această abordare ocupă spațiu liber suplimentar, îi permite APFS să returneze aproape instantaneu volumul înapoi în timp la punctul în care a fost făcut orice instantaneu.

Împărțirea spațiului

Partajarea spațiului este o altă caracteristică foarte interesantă a APFS. Încă o dată, cel mai simplu mod de a înțelege este cu un exemplu. Să presupunem că aveți un laptop cu un SSD de 256 GB instalat (e foarte posibil să aveți unul) și doriți să instalați pe el OS X El Capitan și macOS Sierra beta. Din păcate, Apple încă nu vă permite să porniți sistemul de operare dintr-un volum APFS (sau să îl utilizați pentru Time Machine, de altfel), așa că va trebui să creați două partiții HFS+. Lansați Disk Utility și vă confruntați cu o dilemă - cât de mari ar trebui să faceți partițiile? Puteți împărți pur și simplu unitatea în jumătate, dar ce se întâmplă dacă nu aveți suficient spațiu pentru a rula confortabil El Capitan? Sau, dimpotrivă, veți exagera și aplicațiile de care aveți nevoie nu se vor potrivi în Sierra?

APFS rezolvă această problemă cu partajarea spațiului. Pe un disc cu volume APFS la un nivel superior, este creat un container care conține toate volumele. Ele pot crește sau micșora liber și dinamic într-un astfel de recipient, fără a fi necesar ca utilizatorul să aleagă cât de mari ar trebui să fie. Să revenim la laptopul nostru ipotetic. Dacă s-ar folosi APFS în loc de HFS+ pentru ambele volume, ambele sisteme de operare ar raporta că este disponibil 256 GB de spațiu pentru fiecare. În acest caz, spațiul ocupat de fișiere pe un sistem ar fi inaccesibil altuia. Această soluție simplifică foarte mult lucrul cu mai multe volume și vă permite să obțineți beneficiul maxim din utilizarea lor fără prea multe dificultăți.

Migrarea de la HFS+

În sfârșit, cum putem migra la APFS? Procesul de trecere la un sistem de fișiere este de obicei dificil, lung și nu întotdeauna sigur. Trebuie să faceți copii de rezervă ale datelor pe o unitate externă, să ștergeți hard disk-ul computerului, să scrieți un nou sistem de fișiere, să instalați sistemul de operare, să vă restaurați datele din copie și să sperați că nimic nu a dispărut din locul său.

Din fericire, Apple s-a ocupat de asta. Inginerii companiei au lucrat mult la procesul de migrare. Procesul constă aproape în întregime din operațiuni atomice, dar principalul lucru este că datele despre noul sistem de fișiere sunt scrise doar în spațiul gol de pe volumul HFS+. Aceasta înseamnă că, chiar dacă ceva nu merge bine, nu vă va deteriora nici datele, nici structura sistemului de fișiere existent. Și conform inginerilor Apple, întreaga migrare durează doar câteva minute.

Aici ajungem la final. Am vorbit doar despre patru funcții, dar mai sunt multe în APFS. Dacă doriți să vă scufundați în detalii, documentația oficială conține toate detaliile. Noul sistem de fișiere, așa cum am menționat mai sus, nu poate fi utilizat pentru Discul de pornire sau Time Machine și nu va fi acceptat pe OS X Yosemite și mai vechi. Lansarea oficială a APFS este programată pentru 2017.

La prezentarea de ieri la WWDC 2016, Apple a prezentat noi versiuni ale sistemelor de operare macOS (Sierra) 10.12, iOS 10, tvOS 10, watchOS 3, o aplicație pentru predarea copiilor să programeze Swift Playgrounds și noi emoji.

S-ar părea că nu există nimic interesant. Cu toate acestea, Apple a lansat încă ceva fundamental. Cea mai semnificativă dezvoltare menționată la prezentare a fost următoarea generație Apple File System (APFS) în sistemul de operare macOS (Sierra) 10.12.

Documentația cu principalele caracteristici și descrierea sistemului de fișiere, care repetă funcțiile individuale ale puternicului sistem de fișiere gratuit ZFS, a fost publicată pe site-ul web pentru dezvoltatori la scurt timp după prezentare.

În prezent, computerele Apple utilizează sistemul de fișiere HFS+, o versiune extinsă a HFS (Hierarchical File System, ierarhic sistem de fișiere), creată în urmă cu mai bine de 30 de ani. Ca și predecesorul său, HFS+ folosește o structură arborescentă numită arbore B* pentru a stoca majoritatea metadatelor. De aici și numele „sistem de fișiere ierarhice”.

Introducerea oficială a HFS+ a avut loc pe 19 ianuarie 1998, împreună cu MacOS 8.1. Din 2002, sistemul a implementat jurnalizarea pentru a crește fiabilitatea stocării informațiilor. Începând cu versiunea OS X 10.3, înregistrarea în jurnal este activată în mod implicit și acum este posibil să lucrați în modul diferențiat între majuscule și minuscule.

Până la OS X 10.7, dezvoltatorii au continuat să perfecționeze HFS+ și să implementeze noi funcții pentru OS X la nivel de sistem de fișiere. kilobytes sau megabytes. Astăzi, mulți oameni lucrează cu unități SSD, unde sunt stocate milioane de fișiere - gigabytes sau terabytes de date. Sunt prezentate cerințe complet diferite pentru sistemul de fișiere. În loc să reproceseze vechiul cod, Apple a decis să scrie în sfârșit un nou sistem de fișiere de la zero.

Următoarea generație de sistem de fișiere APFS este încă în stadiu previzualizarea dezvoltatorului, adică nu este planificat să fie implementat în masă în viitorul apropiat. Un volum APFS nu poate fi utilizat în prezent ca unitate de pornire și nici nu poate fi utilizat cu backup Time Machine, Fusion Drive sau criptare File Vault. Dar este posibil pentru un volum obișnuit care nu poate fi pornit.

Mai sunt încă o mulțime de dezvoltare și testare înainte, dar abia atunci APFS va deveni principalul sistem de fișiere al Apple pentru deceniile următoare.

APFS, spre deosebire de HFS+, distinge în mod inerent caracterele din numele fișierelor și folderelor, iar această caracteristică nu poate fi dezactivată. Acest lucru ar trebui să fie reținut de oricine decide să folosească APFS.

Principalele caracteristici

Documentația oficială enumeră caracteristicile generale ale sistemului de fișiere APFS în comparație cu HFS+.

Containere și volume

Container este obiectul principal pentru stocarea datelor în APFS. Containerele sunt de obicei exact aceleași cu intrările din tabelul de partiții GUID (GPT) și au propria lor schemă de protecție împotriva erorilor și de alocare a spațiului pe disc. Fiecare recipient conține unul sau mai multe volumele sau sisteme de fișiere, fiecare având propriile sale spatiu de nume, adică un set de fișiere și directoare.

APFS nu acceptă în mod direct software-ul RAID, dar poate fi utilizat cu volumele Apple RAID pentru a accepta Striping (RAID 0), Mirroring (RAID 1) și Concatenation (JBOD).

inoduri pe 64 de biți

Inodele pe 64 de biți măresc semnificativ spațiul de nume în comparație cu inodele pe 32 de biți din HFS+. Sistemul de fișiere APFS pe 64 de biți acceptă mai mult de 9 miliarde de fișiere pe fiecare volum. Acest lucru ar trebui să fie suficient pentru toată lumea, așa cum a spus Bill Gates.

Marcaje de timp în nanosecunde

APFS a crescut semnificativ acuratețea marcajelor de timp. APFS acceptă marcarea temporală cu precizie de nanosecundă. Pentru comparație, în HFS+, marcajele de timp au fost setate cu o precizie de până la o secundă.

Marcajele de timp în nanosecunde sunt foarte importante în sistemele de fișiere moderne, deoarece ajută la implementarea atomicității și a tranzacțiilor atomice - una dintre principalele cerințe ACID pentru un sistem tranzacțional (de exemplu, un DBMS). Atomicitatea asigură că nicio tranzacție nu este parțial angajată în sistem. Fie vor fi efectuate toate suboperațiunile sale, fie niciuna nu va fi efectuată.

Protecție împotriva eșecului

APFS implementează o schemă inovatoare de metadate de copiere la scriere pe care Apple o numește „Protecție împotriva accidentelor”. Se asigură că modificările sistemului de fișiere și că scrierile în jurnal rămân sincronizate dacă se întâmplă ceva în timp ce scrierea este în curs, cum ar fi o pană de curent.

Schema de copiere pe scriere în ZFS

Fișiere rare

Un fișier cu atributul „sparse” presupune că conține blocuri de zero octeți care nu sunt stocate pe unitate, dar sunt implicite. HFS+ nu a avut suport pentru fișierele rare.

Atribute extinse

APFS are suport încorporat pentru atributele de fișier extinse, care în HFS+ a fost implementat prin fișierul Attributes, adică printr-un arbore B.

Criptare

Apple spune că criptarea este o proprietate fundamentală care este încorporată în APFS la nivel de sistem de fișiere. Pentru fiecare volum dintr-un container APFS, este setat unul dintre modelele de criptare: fără criptare, criptare cu o singură cheie sau criptare cu mai multe chei. În acest din urmă caz, chei separate sunt folosite pentru a cripta fișierele și metadatele. În funcție de hardware, APFS utilizează modul de criptare AES-XTS sau AES-CBC.

Clonarea fișierelor și directoarelor

Clonarea este o copiere aproape instantanee a unui fișier sau director, care nu necesită spațiu suplimentar de stocare a datelor. Când o clonă este modificată, sistemul de fișiere înregistrează doar modificarea datelor. În acest fel, noul sistem de fișiere poate stoca multe versiuni de fișiere mari în timp ce ocupă mai puțin spațiu pe disc.

Instantanee

Instantaneele sunt instantanee numai pentru citire ale sistemului de fișiere de pe un volum. Sistemul de operare poate folosi instantanee pentru o procedură de backup mai eficientă. Adică, în sfârșit Time Machine va funcționa normal (rapid).

Desigur, APFS este semnificativ inferior în ceea ce privește capacitățile sistemului de fișiere pe 128 de biți ZFS, care este suportat de Linux, FreeBSD și alte sisteme de operare gratuite, dar din partea Apple, acesta este un pas în direcția cea bună.

Este ciudat că în documentația preliminară nu se menționează funcția de compresie, pe care HFS+, de altfel, o suportă.

Apple a încercat să port ZFS la sistemul OS X de mult timp, a existat o discuție activă despre acest lucru pe listele de corespondență ZFS, au fost publicate instantanee preliminare pentru următoarea versiune de OS X. Ulterior, a fost făcută o implementare a OpenZFS pentru OS X (O3X) și MacZFX.

Sistemul de fișiere ZFS este open source și este posibil ca Apple să fi împrumutat câteva idei de la sistemul de fișiere APFS. O implementare open source pentru APFS nu este încă gata Apple intenționează să documenteze și să publice formatul APFS în 2017.

Prima sesiune oficială va avea loc la WWDC în această seară, unde noile capabilități APFS vor fi demonstrate dezvoltatorilor mai detaliat.

În 2014, Apple a început să dezvolte un nou sistem de fișiere, Apple File System (APFS), care trei ani mai târziu a fost anunțat la WWDC 16 și va fi folosit în computerele Mac, iPhone-uri, iPad-uri, Apple TV și alte produse. Primele dispozitive cu APFS au fost computere care rulează macOS Sierra - dezvoltatorii au putut folosi previzualizarea dezvoltatorului a noului sistem de fișiere pe discuri care nu pot fi pornite. Și începând cu iOS 10.3, dispozitivele mobile Apple - iPhone și iPad - vor folosi APFS. Dezvoltatorii le-au primit deja pe primele și nu există încă o dată exactă pentru lansarea finală a actualizării sistemului de operare, dar putem presupune că acest lucru se va întâmpla în lunile următoare. Dar ce este Apple File System și cât de importantă este tranziția la un nou sistem de fișiere pentru companie și utilizatorii de dispozitive?

Standardul sistemului de fișiere în sine este destul de durabil și rareori suferă modificări radicale. Apple a folosit sistemul de fișiere ierarhic HFS în computerele sale din 1985 și abia în 1998 a implementat trecerea la o versiune actualizată a HFS+, care a fost folosită până în 2016, iar acum va ceda treptat locul APFS. Apare o întrebare firească: dacă totul funcționează deja perfect, este cu adevărat necesară trecerea la un nou sistem de fișiere sau va fi o schimbare de dragul schimbării în sine? De fapt, chiar necesar. Spre deosebire de dezvoltatori, pentru utilizatorul obișnuit, anunțul APFS a trecut aproape neobservat, dar noul sistem de fișiere poate fi numit o schimbare de reper și chiar revoluționară.

Problema cu HFS și HFS+ este că aceste sisteme de fișiere au fost dezvoltate într-un moment în care memoria flash era prea scumpă pentru piața de masă. În zilele noastre, unitățile SSD sunt foarte populare și accesibile, dar suportul lor în HFS+ este implementat printr-un modul suplimentar creat inițial pentru playerele iPod. De fapt, în timpul dezvoltării sale, HFS+ a dobândit prea mult cod suplimentar și „cârje”, așa că în loc să-l modernizeze, un pas mult mai simplu și logic a fost crearea unui nou sistem de fișiere - unul care să corespundă inițial caracteristicilor dispozitivelor actuale și ar avea o marjă mare de siguranță pentru viitor și a rezolvat multe dintre problemele predecesorului său.

Criptare

Apple consideră protecția datelor utilizatorilor una dintre prioritățile sale, așa că criptarea este o caracteristică fundamentală în noul sistem de fișiere. Pentru fiecare volum din containerul APFS, este instalat unul dintre modelele de criptare: fără criptare, criptare a datelor utilizator cu o singură cheie, criptare a metadatelor și a datelor utilizator cu mai multe chei. În funcție de hardware, APFS utilizează modul de criptare AES-XTS sau AES-CBC.

Clonarea fișierelor și directoarelor

APFS a schimbat modul în care funcționează cu fișierele duplicate. Dacă în HFS+ două documente identice au ocupat de două ori spațiul pe disc, atunci în noul sistem de fișiere doar unul dintre cele două fișiere va ocupa spațiu pe unitate. Și chiar dacă clona este modificată, APFS nu va duplica fișierele și va înregistra doar modificările datelor.

Fișiere rare și atribute extinse

Un fișier cu atributul „sparse” presupune că conținutul blocurilor de zero octeți nu este stocat pe unitate, ci ca informații despre aceste secvențe în metadatele sistemului de fișiere. Spre deosebire de APFS, HFS+ nu a acceptat fișiere rare. Pentru utilizatori, aceasta înseamnă economii mai mari de spațiu pe disc, performanță crescută datorită absenței timpului petrecut scriind zero octeți și durată de viață crescută a unităților. În plus, APFS are suport încorporat pentru atributele extinse ale fișierului, care a fost implementat în HFS+ printr-un fișier suplimentar cu atribute.

Protecție împotriva eșecului

APFS dispune de o schemă inovatoare de metadate de copiere la scriere care asigură că modificările aduse sistemului de fișiere și intrările lor de jurnal corespunzătoare rămân sincronizate chiar și în cazul unui eveniment neașteptat, cum ar fi o întrerupere de curent. În plus, APFS scrie în esență datele într-un tip diferit de model, care este mai bine recunoscut de unitățile flash și acceptă comanda TRIM, care asigură că sistemul de operare gestionează corect fișierele șterse și eliberează spațiu pe disc.

Marcaje de timp în nanosecunde

APFS a îmbunătățit semnificativ acuratețea marcajelor de timp. Spre deosebire de HFS+, unde timpul a fost setat la cea mai apropiată secundă, noul sistem de fișiere plasează etichete care indică nanosecunde. Acest lucru ajută la implementarea așa-numitelor operații atomice și atomice. Acest lucru asigură că nicio operațiune nu va fi parțial angajată în sistem: fie toate suboperațiunile sale vor fi executate, fie niciuna nu va fi executată.

inoduri pe 64 de biți

Inodele pe 64 de biți măresc semnificativ spațiul de nume în comparație cu identificatorii de 32 de biți din HFS+. APFS acceptă peste 9 miliarde de fișiere pe fiecare volum.

Instantanee și copii de rezervă

Instantaneele sunt instantanee numai pentru citire ale sistemului de fișiere de pe un volum. Sistemul de operare le poate folosi pentru o procedură de backup mai eficientă, deoarece APFS adaugă imaginii doar fișiere sau părți de fișiere modificate, fără a duplica aceleași date în copii de rezervă diferite. Cu toate acestea, în acest moment macOS Sierra, aplicațiile terțe și chiar Time Machine nu acceptă noul mecanism de backup. Anunțul său este, în primul rând, o fundație pentru viitor.

Lucrul cu partițiile de spațiu pe disc

O caracteristică interesantă a APFS se referă la funcționarea unităților împărțite în două sau mai multe partiții. Când utilizați HFS+, utilizatorul poate opera doar cu cantitatea de memorie specificată pentru o anumită partiție, în timp ce APFS vă permite să scrieți date dincolo de limita în detrimentul unei alte partiții. Noul sistem de fișiere nu împarte volumul total al unității în părți independente, ci stabilește limite condiționate, care, dacă este necesar, pot fi ușor modificate pentru a îndeplini sarcinile utilizatorului.