În IT, ca și în alte domenii ale tehnicii și în general ale activităților umane, există zone vizibile și zone mai puțin vizibile în care se petrec schimbările. Îmi plac exemplele din construcții pentru că e o disciplină care are baze științifice stabilite cu 200 de ani în urmă, rădăcini milenare și produce rezultate vizibile. Așa că voi pierde un minut vorbind despre betonul armat. Introducerea acestuia în construcții nu a avut în sine nici un efect vizibil, grinzile, fundațiile și pilonii fiind oricum acoperite de zidărie, ornamente și tencuieli de cele mai multe ori. Însă rezultatul general a fost posibilitatea ridicării unor construcții de dimensiuni mult mai mari: zgârie-nori, viaducte uriașe, piloni incredibili.
Un astfel de ingredient de bază este în IT filesystem-ul. Acesta se referă în principal la modul în care informația este stocată pe disc. Sună plictisitor, tot ceea ce trebuie să știm este să apăsăm butonul “Save” ; restul este problema sistemului de operare.
Computerele personale au folosit inițial un filesystem foarte simplu, date fiind pretențiile limitate de la început, e vorba de celebrul FAT, completat ulterior cu câteva extensii neesențiale.
FAT și-a făcut treaba ( și încă și-o mai face ) fiind simplu, codul sursă care se ocupă de această treabă este și el simplu și deci robust .
Principala limitare esențială (cele neesențiale, precum dimensiunea maximă a discului pe care îl putea accesa s-au putut sau s-ar fi putut cumva rezolva) a apărut abia când Microsoft a avut nevoie să treacă la sistemele de operare multiuser , cu Windows NT și apoi familia Windows 2000. Fișierele stocate pe disc nu aveau nici un fel de informație referitoare la: cărui user aparțin, cine are dreptul să le citească sau să le scrie și cine nu etc.
Bineînțeles, aceleași probleme se puseseră deja și în lumea Unix, unde sistemele au fost de la început gândite ca fiind multiuser ( scenariul tipic de lucru fiind un computer la care sunt atașate mai multe terminale) . La momentul respectiv exista deja ext2, filesystem care încă destul de folosit ( mai ales prin succesorii săi ext3 și ext4) le mașinile Linux; acesta conține un sistem simplu și robust de definire a drepturilor de acces, așa că dezvolatorii NTFS au avut o sursă de inspirație și au reușit să implementeze un filesystem modern, fiabil și puternic, deși destul de stufos.
Abia în ultimii ani, pe măsură ce datele devin din ce în ce mai multe iar prelucrarea lor e o provocare, a început să se vorbească de o nouă generație de filesysteme. Am mai vorbit într-un articol precedent, cel despre moștenirea SUN, despre zfs. ZFS este o adevărată “mașinărie infernală” care permite administratorului să organizeze datele în RAID , să le cripteze , să le comprime , să realizeze “snapshot-uri” ( adică să păstreze situația datelor la un moment dat în timp ce computerul le modifică )
Facilitatea centrală este cea de copy on write în care datele nu sunt modificate la scriere, ci se realizează o copie a lor.
ZFS este un filesystem foarte interesant, însă folosirea sa este limitată de probleme de licențiere; nu am studiat exact situația însă suportul pentru acesta nu a putut fi inclus în kernel-ul de Linux ( se poate face folosind un driver în “userspace” însă nu e chiar același lucru)
Din aceeași familie face parte și BTRFS, un filesystem a cărui istorie începe tot la Oracle ( acolo unde se sfârșește momentan istoria ZFS prin achiziția SUN) . Acesta este licențiat sub GPL și este inclus de ceva vreme în kernelul Linux, însă în general administratorii de system se cam tem de el, considerându-l insuficient testat. Ori, probabil un filesystem cu bug-uri e cam cel mai rău lucru care se poate întâmpla cu o bază de date, exceptând poate, intrarea unui Boeing cu tot cu pasageri în clădirea respectivă.
Iată însă că în ultima vreme sunt câteva vești interesante de la Facebook: aceștia au angajat o parte din dezvoltatorii care lucrează la BTRFS și se pare că plănuiesc să înceapă câteva teste pe serverele lor Deocamdată s-a anunțat că e vorba de partea de web , care e mai ușor de restaurat în caz de “catastrofă” ( datele fiind păstrate în baza de date, cel mult putem avea surpriza să nu funcționeze site-ul sau să funcționeze prost, ceea ce nici măcar n-ar fi o noutate) . Chiar dacă până acum Facebook nu s-ar spune că a excelat în materie de inovație tehnică, vestea mă bucură pentru că e vorba de o bază de test semnificativă; dacă filesysemul va funcționa la Facebook, probabil că va putea fi folosit oriunde altundeva. De asemenea, nu cred că un eventual prim eșec ar fi chiar o catastrofă majoră, dat fiind specificul companiei. Probabil că e pentru prima dată când sintagma “teste pe oameni” nu mă sperie.
Domnule, sunteti tare!
Nu glumesc deloc, urmaresc articolele Dvs de cand ati devenit Contributor :) . Foarte tari! Desi stiu ca nu se pot compara mere cu pere atat de usor, eu am sa incerc: daca si ceilalti Contributori ar fi la fel de profesionisti si de pasionati de domeniul lor ca Dvs, ar fi si mai bine decat e. Asta nu inseamna, insa, ca acum e rau…
Cu stima!
Mulțumesc.
Eu imi permit sa fiu critic, cred ca articolul de fata este unul dintre cele mai slabe de pe acest site: Personal nu am inteles despre ce este vorba si asta cu siguranta nu dintr-o prea putina cultura IT. Nu inteleg de ce Filesystem-ul este baza, de ce nu sistemul de operare, procesorul, driverele, alocarea memoriei, whatever… oricare dintre ele cantaresc in functionarea unui sistem dar pana la urma niciunul nu este nici o baza luat de unul singur. …o sa presupun ca titlul se datoreaza unui tic verbal al autorului caci altfel nu se poate explica.
Nu inteleg care este scopul articolului. Doreste sa faca o prezentare a sistemelor de fisiere existente? atunci este absolut superficial si lipsit de orice strucutura. Doreste sa anunte ca Facebook lucreaza la implementarea unui sistem de fisiere? …atunci modul de prezentare este absolut nepotrivit 90% din articol fiind pe langa subiect.
Nu inteleg de ce unele cuvinte trebuiesc sa stea intre ghilimele ex. „catastrofa” si de ce exista farnturi de idei care au sens doar in mintea autorului, ex: Probabil că e pentru prima dată când sintagma “teste pe oameni” nu mă sperie.
Poate este o forma de arta necunoscuta mie, dar din punct de vedere tehnic cat si literar articolul are valoare zero.
Pai si ce-ati facut? V-ati risipit talentul tehnico-literar si bunatate de nuvela (aproape) comentand ceva ce nu exista? Zero? Mai ca-mi vine sa recit refrenul din opusul Dvs de mai sus: nu inteleg…
Desigur ca nu am ce sa fac ca sa va placa articolul: nu v-a placut- asta e, se mai intamplă…
Totusi, daca v-ati facut timp sa comentati, ințeleg că ați dori ceva de la această rubrică, și îndraznesc sa va rog sa detaliați.
Pot sa va raspund însă la întrebarea „de ce e filesystemul baza” ( titlul aparține redacției, dar consider că reflectă relativ ok conținutul). O problema la sistemul de operare se poate remedia relativ simplu, în cel mai rău caz prin reinstalare. Datele sunt acolo. In momentul în care filesystemul – driverele lui mai precis încep să facă un puzzle din datele de pe disc, datele respective nu se mai recuperează decât poate în filmele cu Matrix. Din cauza asta administratorii sunt extrem de conservatori cu mașinile de producție și din cauza asta un test pe o scara așa de largă ( încă nu e confirmat oficial și nici nu stim amploarea deploymentului, presupun ca va fi în funcție de rezultate) la Facebook ar putea fi un punct de start pentru BTRFS.
Daca tot vreti sa va dati geek in fata filozofilor de pe contributors, faceti-o dupa ce va documentati: inainte de Microsoft si celebrul (si infectul in acelasi timp) FAT computerele personale foloseau diverse alte sisteme de fisiere.
Un exemplu CP/M (lansat undeva in 1973) https://en.wikipedia.org/wiki/CP/M#File_system.
Cei de la Microsoft au avut nevoie de aproape 20 de ani ca sa inteleaga necesitatea unui OS multiuser si sa reuseasca o implementare.
Iar in cazul NTFS cei de la MS au dat din nou rasol – au bagat cu furca o gramada de funtionalitati cerute de varii manageri ai clientilor, precum si unele copiate dupa HPFS al IBM (http://en.wikipedia.org/wiki/High_Performance_File_System) fara sa reuseasca sa le filtreze, rezultind un Frankenstein greu de gestionat.
PS: Legat de FB, va recomand un articol foarte interesant despre procesele lor de engineering:
http://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/
Cred ca eu am scris clar „computerele personale”. Aceasta denumire se refera strict la PC-uri.
Dealtfel am apucat si CP/M-urile.
HPFS si NTFS au o istorie comuna, legata de colaborarea Microsoft cu IBM. Totusi NTFS e robust si are cateva facilitati utile, ca de exemplu flag-ul de „inheritance” ( da, greu de gestionat).
Multumesc pentru link-ul referitor la Facebook.
A personal computer (PC) is a general-purpose computer, whose size, capabilities and original sale price makes it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator.
via: https://en.wikipedia.org/wiki/Personal_computer
Practic personal computer (PC) este cam orice device cu procesor pe care o persoana si-l poate permite pentru uz personal, iar aici intra si computerele de la Altair, DEC si cam toate cele realizate pe z80. Diferenta fata de mainframes e modul de access (keyboard si ceva terminal – de preferat cu capabilitati grafice) si pretul.
Asta e o definitie generica, notiunea de PC se foloseste de obicei intr-un sens mai restrans. Pentru cele cu z80 s-a folosit termenul de HC ( home computer).