{"id":30851,"date":"2019-10-31T21:37:47","date_gmt":"2019-10-31T18:37:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1\/"},"modified":"2019-10-31T21:37:47","modified_gmt":"2019-10-31T18:37:47","slug":"virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1","title":{"rendered":"Sisteme de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Salut tuturor! Continu\u0103m lans\u0103rile de noi cursuri pe care le-a\u021bi \u00eendr\u0103git deja \u0219i acum ne gr\u0103bim s\u0103 v\u0103 anun\u021b\u0103m c\u0103 vom \u00eencepe un nou curs <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/gbcl\/\">\u201eAdministrator Linux\u201d<\/a><\/noindex>, care va fi lansat la sf\u00e2r\u0219itul lunii aprilie. Aceast\u0103 ocazie va fi marcat\u0103 printr-o nou\u0103 publica\u021bie. Pute\u021bi <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/3\/virtual-filesystems-linux\">citi materialul original aici<\/a><\/noindex>.<\/p>\n<p>Sistemele de fi\u0219iere virtuale joac\u0103 rolul unei abstrac\u021bii magice, care permite filozofiei Linux s\u0103 afirm\u0435 c\u0103 \u201etotul este un fi\u0219ier\u201d.<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1\" src=\"\/wp-content\/uploads\/2019\/04\/a0bddab53c034d3a6a530cad91766d5f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCe este un sistem de fi\u0219iere? Baz\u00e2ndu-ne pe cuvintele unuia dintre primii contribuitori \u0219i autori ai Linux <noindex><a rel=\"nofollow\" href=\"https:\/\/www.pearson.com\/us\/higher-education\/program\/Love-Linux-Kernel-Development-3rd-Edition\/PGM202532.html\">Robert Love<\/a><\/noindex>, \u201eUn sistem de fi\u0219iere este un depozit ierarhic de date, organizat conform unei anumite structuri\u201d. Oricum, aceast\u0103 defini\u021bie se aplic\u0103 la fel de bine pentru VFAT (Virtual File Allocation Table), Git \u0219i <noindex><a rel=\"nofollow\" href=\"http:\/\/cassandra.apache.org\/\">Cassandra<\/a><\/noindex> (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/NoSQL\">baze de date NoSQL<\/a><\/noindex>). A\u0219adar, ce anume define\u0219te conceptul de \u201esistem de fi\u0219iere\u201d?<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><b>Bazele sistemului de fi\u0219iere<\/b><\/p>\n<p>Kernelul Linux are cerin\u021be specifice pentru entitatea care poate fi considerat\u0103 un sistem de fi\u0219iere. Aceasta trebuie s\u0103 implementeze metode <code>open()<\/code>, <code>read()<\/code> \u0219i <code>write()<\/code> pentru obiecte persistente care au nume. Din perspectiva program\u0103rii orientate pe obiecte <noindex><a rel=\"nofollow\" href=\"http:\/\/lwn.net\/Articles\/444910\/\">, kernelul define\u0219te un sistem de fi\u0219iere generalizat (generic filesystem) ca o interfa\u021b\u0103 abstract\u0103, iar aceste trei mari func\u021bii sunt considerate \u201evirtuale\u201d \u0219i nu au o defini\u021bie concret\u0103. \u00cen consecin\u021b\u0103, implementarea sistemului de fi\u0219iere implicit se nume\u0219te sistem de fi\u0219iere virtual (VFS).<\/a><\/noindex>Dac\u0103 putem deschide, citi \u0219i scrie \u00eentr-o entitate, atunci acea entitate este considerat\u0103 un fi\u0219ier, a\u0219a cum putem observa din exemplul de mai sus \u00een consol\u0103.<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1\" src=\"\/wp-content\/uploads\/2019\/04\/bfaaf66de7038aa82beba5aa91e1db16.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFenomenul VFS subliniaz\u0103 observa\u021bia caracteristic\u0103 sistemelor Unix-like, care afirm\u0103 c\u0103 \u201etotul este un fi\u0219ier\u201d. G\u00e2ndi\u021bi-v\u0103 c\u00e2t de ciudat este c\u0103 acel mic exemplu de mai sus cu \/dev\/console arat\u0103 cum func\u021bioneaz\u0103 efectiv consola. Imaginea ilustreaz\u0103 o sesiune interactiv\u0103 Bash. Trimiterea unei linii \u00een consol\u0103 (dispozitivul consolei virtuale) o afi\u0219eaz\u0103 pe ecranul virtual. VFS are alte, \u0219i mai ciudate, propriet\u0103\u021bi. De exemplu, ea permite efectuarea c\u0103ut\u0103rilor peste<br \/>\n acestea <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/22355\/\">Sistemele pe care le cunoa\u0219tem, cum ar fi ext4, NFS \u0219i \/proc, au trei func\u021bii importante \u00een structura de date C, numit\u0103<\/a><\/noindex>.<\/p>\n<p>file_operations <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/include\/linux\/fs.h\">file_operations<\/a><\/noindex>. \u00cen plus, anumite sisteme de fi\u0219iere extind \u0219i redefinirea func\u021biilor VFS \u00eentr-un mod obiectual obi\u0219nuit. A\u0219a cum observ\u0103 Robert Love, abstractizarea VFS permite utilizatorilor Linux s\u0103 copieze fi\u0219iere \u00een sau din sisteme de operare externe sau entit\u0103\u021bi abstracte, cum ar fi pipes, f\u0103r\u0103 a se \u00eengrijora de formatul lor intern de date. Din perspectiva utilizatorului (userspace), printr-un apel de sistem, procesul poate copia dintr-un fi\u0219ier \u00een structuri de date ale nucleului prin metoda <code>read()<\/code> unei sisteme de fi\u0219iere, apoi folosi metoda <code>write ()<\/code> a unei alte sisteme de fi\u0219iere pentru a scrie datele.<\/p>\n<p>Defini\u021biile func\u021biilor care apar\u021bin tipurilor de baz\u0103 VFS se afl\u0103 \u00een fi\u0219ierele <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/fs\">fs\/*.c<\/a><\/noindex> ale codului surs\u0103 al nucleului, \u00een timp ce subdirectoarele <code>fs\/<\/code> con\u021bin anumite sisteme de fi\u0219iere. \u00cen nucleu se g\u0103sesc, de asemenea, entit\u0103\u021bi, cum ar fi <code>cgroups<\/code>, <code>\/dev<\/code> \u0219i <code>tmpfs<\/code>, care sunt necesare \u00een procesul de \u00eenc\u0103rcare \u0219i, prin urmare, sunt definite \u00een subdirectorul nucleului <code>init\/<\/code>. Re\u021bine\u021bi c\u0103 <code>cgroups<\/code>, <code>\/dev<\/code> \u0219i <code>tmpfs<\/code> nu invoc\u0103 \u201ecele trei mari\u201d func\u021bii <code>file_operations<\/code>, ci citesc \u0219i scriu direct \u00een memorie.<br \/>\n Diagrama de mai jos arat\u0103 cum userspace interac\u021bioneaz\u0103 cu diferite tipuri de sisteme de fi\u0219iere, de obicei montate pe sistemele Linux. Construc\u021biile precum <code>pipes<\/code>, <code>dmesg<\/code> \u0219i <code>ceasurile POSIX<\/code>, care implementeaz\u0103, de asemenea, structuri <code>file_operations<\/code>, la care se acceseaz\u0103 prin stratul VFS.<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1\" src=\"\/wp-content\/uploads\/2019\/04\/267e005b3ed55ee3556bd7b1dab14eb5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n VFS este un \u201estrat de \u00eenveli\u0219\u201d \u00eentre apelurile de sistem \u0219i implement\u0103rile anumitor <code>file_operations<\/code>, cum ar fi <code>ext4<\/code> \u0219i <code>procfs<\/code>. Func\u021biile <code>file_operations<\/code> pot interac\u021biona fie cu driverele de dispozitive, fie cu dispozitivele de acces la memorie. <code>tmpfs<\/code>, <code>devtmpfs <\/code>\u0219i <code>cgroups <\/code>nu folosesc <code>file_operations<\/code>, av\u00e2nd acces direct la memorie.<br \/>\n Existen\u021ba VFS permite reutilizarea codului, deoarece metodele de baz\u0103 legate de sistemele de fi\u0219iere nu trebuie s\u0103 fie implementate din nou de fiecare tip de sistem de fi\u0219iere. Reutilizarea codului este o practic\u0103 larg r\u0103sp\u00e2ndit\u0103 printre inginerii software! Cu toate acestea, dac\u0103 codul reutilizabil con\u021bine <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/774114\/\">erori severe<\/a><\/noindex>, toate implement\u0103rile care mo\u0219tenesc metodele comune sunt afectate. <\/p>\n<p><b>\/tmp: \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430<\/b><\/p>\n<p>O metod\u0103 simpl\u0103 de a determina c\u0103 VFS este prezent \u00een sistem este s\u0103 introduce\u021bi<code> mount | grep -v sd | grep -v :\/<\/code>, care va ar\u0103ta toate sistemele de fi\u0219iere montate (<code>mounted<\/code>) care nu sunt rezidente pe disc \u0219i nu sunt NFS, ceea ce este adev\u0103rat \u00een majoritatea computerelor. Una dintre mont\u0103rile enumerate (<code>mounts<\/code>) VFS va fi, f\u0103r\u0103 \u00eendoial\u0103, <code>\/tmp<\/code>, corect?<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1\" src=\"\/wp-content\/uploads\/2019\/04\/f0a4d546d30f54ad42c4aa5fb4bdb958.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nTo\u021bi \u0219tiu c\u0103 stocarea<code> \/ tmp<\/code> pe un suport fizic este o nebunie! <noindex><a rel=\"nofollow\" href=\"https:\/\/tinyurl.com\/ybomxyfo\">Sursa<\/a><\/noindex>.<\/p>\n<p>De ce nu este recomandat s\u0103 stoc\u0103m <code>\/tmp<\/code> pe un suport fizic? Pentru c\u0103 fi\u0219ierele din <code>\/tmp<\/code> sunt temporare, iar dispozitivele de stocare sunt mai lente dec\u00e2t memoria, unde se creeaz\u0103 tmpfs. Mai mult, suporturile fizice sunt mai predispuse la uzur\u0103 la scriere dec\u00e2t memoria. \u00cen cele din urm\u0103, fi\u0219ierele din \/tmp pot con\u021bine informa\u021bii confiden\u021biale, astfel c\u0103 dispari\u021bia lor la fiecare repornire este o func\u021bie esen\u021bial\u0103. <\/p>\n<p>Din p\u0103cate, unele scripturi de instalare a distribu\u021biilor Linux creeaz\u0103 \/tmp pe un dispozitiv de stocare \u00een mod implicit. Nu v\u0103 descuraja\u021bi dac\u0103 s-a \u00eent\u00e2mplat \u0219i cu sistemul dumneavoastr\u0103. Urma\u021bi c\u00e2teva instruc\u021biuni simple de pe <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.archlinux.org\/index.php\/Tmpfs\">Arch Wiki<\/a><\/noindex>, pentru a corecta asta, \u0219i aminti\u021bi-v\u0103 c\u0103 memoria alocat\u0103 pentru <code>tmpfs <\/code> devine indisponibil\u0103 pentru alte scopuri. Cu alte cuvinte, un sistem cu un tmpfs gigant \u0219i fi\u0219iere mari \u00een el poate consuma toat\u0103 memoria \u0219i se poate bloca. Un alt sfat: c\u00e2nd edita\u021bi fi\u0219ierul <code>\/etc\/fstab<\/code>, aminti\u021bi-v\u0103 c\u0103 acesta trebuie s\u0103 se \u00eencheie cu un newline, altfel sistemul nu va porni.<\/p>\n<p><b>\/proc \u0438 \/sys <\/b><\/p>\n<p>\u00cen plus <code>\/tmp<\/code>, VFS (sisteme de fi\u0219iere virtuale), care sunt cele mai cunoscute utilizatorilor Linux \u2013 este <code>\/proc<\/code> \u0219i <code>\/sys<\/code>. (<code>\/dev<\/code> situat \u00een memoria comun\u0103 \u0219i nu are <code>file_operations<\/code>). De ce exact aceste dou\u0103 componente? S\u0103 \u00eencerc\u0103m s\u0103 \u00een\u021belegem aceast\u0103 chestiune. <\/p>\n<p><code>procfs<\/code> creeaz\u0103 o instantanee a st\u0103rii curente a nucleului \u0219i a proceselor pe care le controleaz\u0103 pentru <code>userspace<\/code>. \u00cen <code>\/proc<\/code> nucleul furnizeaz\u0103 informa\u021bii despre resursele disponibile, cum ar fi \u00eentreruperi, memorie virtual\u0103 \u0219i planificator. \u00cen plus, <code>\/proc\/sys<\/code> este locul unde parametrii seta\u021bi cu comanda <code>sysctl<\/code>, sunt disponibili pentru <code>userspace<\/code>. Starea \u0219i statisticile proceselor individuale sunt afi\u0219ate \u00een directoare <code>\/proc\/<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1\" src=\"\/wp-content\/uploads\/2019\/04\/c74e7c8934e107736c2d25a4be63f48c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAici <code>\/proc\/meminfo<\/code> \u2014 este un fi\u0219ier gol care, cu toate acestea, con\u021bine informa\u021bii valoroase.<\/p>\n<p>Comportamentul <code>\/proc<\/code> fi\u0219ierelor arat\u0103 c\u00e2t de diferite pot fi sistemele de fi\u0219iere VFS. Pe de o parte, <code>\/proc\/meminfo<\/code> con\u021bin informa\u021bii care pot fi aflate prin comanda <code>free<\/code>. Pe de alt\u0103 parte, acolo este gol! Cum se face asta? Situa\u021bia aminte\u0219te de binecunoscuta lucrare intitulat\u0103 <noindex><a rel=\"nofollow\" href=\"http:\/\/www-f1.ijs.si\/~ramsak\/km1\/mermin.moon.pdf\">\u00abExist\u0103 lun\u0103 atunci c\u00e2nd nimeni nu o prive\u0219te? Realitate \u0219i teorie cuantic\u0103\u00bb<\/a><\/noindex>, scris\u0103 de profesorul de fizic\u0103 de la Universitatea Cornell, David Mermin, \u00een 1985. Adev\u0103rul este c\u0103 nucleul colecteaz\u0103 statistici ale memoriei atunci c\u00e2nd are loc o solicitare la <code>\/proc<\/code>, \u0219i, de fapt, \u00een fi\u0219iere. <code>\/proc<\/code> nu este nimic atunci c\u00e2nd nimeni nu se uit\u0103 acolo. A\u0219a cum a spus <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikiquote.org\/wiki\/David_Mermin\">Mermin<\/a><\/noindex>, \u201eDoctrina fundamental\u0103 a cuantelor afirm\u0103 c\u0103 m\u0103surarea, \u00een general, nu dezv\u0103luie o valoare existent\u0103 anterior a propriet\u0103\u021bii m\u0103surate.\u201d (Iar c\u0103tre \u00eentrebarea despre lun\u0103, g\u00e2ndi\u021bi-v\u0103 ca tem\u0103 pentru acas\u0103!)<br \/>\nVidul aparent <code>procfs <\/code> are sens, deoarece informa\u021bia aflat\u0103 acolo este dinamic\u0103. O situa\u021bie ceva diferit\u0103 este cu <code>sysfs<\/code>. S\u0103 compar\u0103m c\u00e2te fi\u0219iere de cel pu\u021bin un byte sunt \u00een <code>\/proc<\/code> \u0219i \u00een <code>\/sys<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1\" src=\"\/wp-content\/uploads\/2019\/04\/5f712897ffe40c3539586fc3f1f9fabf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<code>Procfs<\/code> are un singur fi\u0219ier, \u0219i anume configura\u021bia exportat\u0103 a nucleului, care este o excep\u021bie, deoarece trebuie generat\u0103 doar o dat\u0103 la boot. Pe de alt\u0103 parte, \u00een <code>\/sys<\/code> se afl\u0103 multe fi\u0219iere mai voluminoase, multe dintre ele ocup\u00e2nd o pagin\u0103 \u00eentreag\u0103 de memorie. De obicei, fi\u0219ierele <code>sysfs <\/code> con\u021bin exact un num\u0103r sau un \u0219ir, spre deosebire de tabelele de informa\u021bii ob\u021binute la citirea unor fi\u0219iere precum <code>\/proc\/meminfo<\/code>.<\/p>\n<p>Scop <code>sysfs <\/code>\u2013 pentru a oferi propriet\u0103\u021bi disponibile pentru citire \u0219i scriere a ceea ce nucleul denume\u0219te <code>\u201ekobjects\u201d<\/code> \u00een userspace. Singurul scop al <code>kobjects <\/code>este num\u0103rarea referin\u021belor: atunci c\u00e2nd ultima referin\u021b\u0103 la un kobject este \u0219tears\u0103, sistemul va elibera resursele asociate cu acesta. Cu toate acestea, <code>\/sys<\/code> reprezint\u0103 cea mai mare parte a faimosului <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/ABI\/stable\">\u201estable ABI pentru userspace\u201d<\/a><\/noindex> al nucleului, care nu poate fi niciodat\u0103 \u201estricat\u201d <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2012\/12\/23\/75\">. Aceasta nu \u00eenseamn\u0103 c\u0103 fi\u0219ierele din sysfs sunt statice, ceea ce ar contrazice num\u0103rarea referin\u021belor la obiecte instabile.<\/a><\/noindex>Interfa\u021ba binar\u0103 stabil\u0103 a aplica\u021biilor nucleului (kernel\u2019s stable ABI) limiteaz\u0103 ceea ce poate ap\u0103rea \u00een<br \/>\nInterfa\u021ba binar\u0103 stabil\u0103 a aplica\u021biilor nucleu (ABI stabil al nucleului) limiteaz\u0103 ceea ce poate ap\u0103rea \u00een <code>\/sys<\/code>Fi\u0219ierele din <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/ABI\/stable\">documentation<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1\" src=\"\/wp-content\/uploads\/2019\/04\/2c367518e8ee51c7a840a64b5a00abdf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\ndescriu o proprietate specific\u0103 pentru fiecare entitate \u0219i pot fi citite, rescrise sau ambele simultan. \u201e0\u201d \u00een fi\u0219ier indic\u0103 faptul c\u0103 SSD-ul nu poate fi \u0219ters. <code>sysfs <\/code>Vom \u00eencepe partea a doua a traducerii discut\u00e2nd despre observarea VFS cu ajutorul instrumentelor eBPF \u0219i bcc, iar acum a\u0219tept\u0103m comentariile dumneavoastr\u0103 \u0219i v\u0103 invit\u0103m tradi\u021bional la<\/p>\n<p>, care pe 9 aprilie va fi condus de instructorul nostru \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5LoU\/\">webinarul deschis<\/a><\/noindex>Vladimir Drozdetsky <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/mlMR\/\">Vladimir Drozdetsky<\/a><\/noindex>.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/446614\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0438 \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043f\u043e \u0443\u0436\u0435 \u043f\u043e\u043b\u044e\u0431\u0438\u0432\u0448\u0438\u043c\u0441\u044f \u0432\u0430\u043c \u043a\u0443\u0440\u0441\u0430\u043c \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u043f\u0435\u0448\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u0430\u043f\u0440\u0435\u043b\u044f. \u041a \u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u044e \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f. \u0421 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0442. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0440\u043e\u043b\u044c \u043d\u0435\u043a\u043e\u0439 \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22835,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30851","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 Linux: \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442? \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:37:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Sistemele de fi\u0219iere virtuale \u00een Linux: de ce sunt necesare \u0219i cum func\u021bioneaz\u0103? Partea 1 | ProHoster","description":"Salut tuturor!","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 Linux: \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442? \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:37:47+00:00","article:modified_time":"2019-10-31T18:37:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30851","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 03:17:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:27:39","updated":"2026-01-21 03:17:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/30851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=30851"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/30851\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/22835"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=30851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=30851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=30851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}