{"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\/pl\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1","title":{"rendered":"Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Cze\u015b\u0107 wszystkim! Kontynuujemy uruchamianie nowych kurs\u00f3w, kt\u00f3re ju\u017c zd\u0105\u017cy\u0142y si\u0119 wam spodoba\u0107, i teraz z rado\u015bci\u0105 informujemy, \u017ce rozpoczynamy now\u0105 edycj\u0119 kursu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/gbcl\/\">Administrator Linux<\/a><\/noindex>, kt\u00f3ry ruszy pod koniec kwietnia. Z tej okazji opublikujemy nowy materia\u0142. Orygina\u0142 mo\u017cna <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/3\/virtual-filesystems-linux\">znale\u017a\u0107 tutaj<\/a><\/noindex>.<\/p>\n<p>Wirtualne systemy plik\u00f3w pe\u0142ni\u0105 rol\u0119 pewnej magicznej abstrakcji, kt\u00f3ra pozwala filozofii Linuxa m\u00f3wi\u0107, \u017ce \"wszystko jest plikiem\".<\/p>\n<p><img decoding=\"async\" alt=\"Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/04\/a0bddab53c034d3a6a530cad91766d5f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCzym jest system plik\u00f3w? Opieraj\u0105c si\u0119 na s\u0142owach jednego z pierwszych wk\u0142ad\u00f3w i autor\u00f3w Linuxa <noindex><a rel=\"nofollow\" href=\"https:\/\/www.pearson.com\/us\/higher-education\/program\/Love-Linux-Kernel-Development-3rd-Edition\/PGM202532.html\">Roberta Lawa<\/a><\/noindex>, \u201eSystem plik\u00f3w to hierarchiczne przechowalnia danych, zorganizowane zgodnie z okre\u015blon\u0105 struktur\u0105\u201d. Niezale\u017cnie od tego, ta definicja r\u00f3wnie dobrze pasuje do VFAT (Virtual File Allocation Table), Git oraz <noindex><a rel=\"nofollow\" href=\"http:\/\/cassandra.apache.org\/\">Cassandra<\/a><\/noindex> (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/NoSQL\">bazy danych NoSQL<\/a><\/noindex>). Co wi\u0119c dok\u0142adnie definiuje takie poj\u0119cie, jak \u201esystem plik\u00f3w\u201d?<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><b>Podstawy systemu plik\u00f3w<\/b><\/p>\n<p>J\u0105dro Linuxa ma konkretne wymagania wobec podmiotu, kt\u00f3ry mo\u017ce by\u0107 uznany za system plik\u00f3w. Musi on implementowa\u0107 metody <code>open()<\/code>, <code>read()<\/code> i <code>write()<\/code> dla obiekt\u00f3w trwa\u0142ych, kt\u00f3re maj\u0105 nazwy. Z perspektywy programowania obiektowego <noindex><a rel=\"nofollow\" href=\"http:\/\/lwn.net\/Articles\/444910\/\">, j\u0105dro definiuje uog\u00f3lniony system plik\u00f3w (generic filesystem) jako abstrakcyjny interfejs, a te trzy g\u0142\u00f3wne funkcje s\u0105 uwa\u017cane za \u201ewirtualne\u201d i nie maj\u0105 konkretnej definicji. W zwi\u0105zku z tym, implementacja systemu plik\u00f3w domy\u015blnie nazywana jest wirtualnym systemem plik\u00f3w (VFS).<\/a><\/noindex>Je\u015bli mo\u017cemy otwiera\u0107, czyta\u0107 i zapisywa\u0107 w danym podmiocie, to podmiot ten uznawany jest za plik, tak jak widzimy w przyk\u0142adzie powy\u017cej.<\/p>\n<p><img decoding=\"async\" alt=\"Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/04\/bfaaf66de7038aa82beba5aa91e1db16.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFenomen VFS jedynie podkre\u015bla obserwacj\u0119 charakterystyczn\u0105 dla system\u00f3w podobnych do Unix, kt\u00f3ra g\u0142osi, \u017ce \"wszystko jest plikiem\". Pomy\u015blcie, jak dziwne jest, \u017ce ten ma\u0142y przyk\u0142ad powy\u017cej z \/dev\/console pokazuje, jak w\u0142a\u015bciwie dzia\u0142a konsola. Na obrazku przedstawiona jest interaktywna sesja Bash. Wys\u0142anie wiersza do konsoli (virtual console device) wy\u015bwietla go na wirtualnym ekranie. VFS ma inne, jeszcze dziwniejsze w\u0142a\u015bciwo\u015bci. Na przyk\u0142ad, umo\u017cliwia przeprowadzanie wyszukiwania przez<br \/>\n nie <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/22355\/\">Znane nam systemy, takie jak ext4, NFS i \/proc maj\u0105 trzy wa\u017cne funkcje w strukturze danych C, kt\u00f3ra nazywa si\u0119<\/a><\/noindex>.<\/p>\n<p>Znane nam systemy, takie jak ext4, NFS i \/proc, maj\u0105 trzy wa\u017cne funkcje w strukturze danych C, kt\u00f3ra nazywa si\u0119 <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>. Ponadto, niekt\u00f3re systemy plik\u00f3w rozszerzaj\u0105 i redefiniuj\u0105 funkcje VFS w typowy spos\u00f3b obiektowo-zorientowany. Jak zauwa\u017ca Robert Love, abstrakcja VFS pozwala u\u017cytkownikom Linuksa nie martwi\u0107 si\u0119 o wewn\u0119trzny format danych podczas kopiowania plik\u00f3w do lub z obcych system\u00f3w operacyjnych lub abstrakcyjnych byt\u00f3w, takich jak pipes. <code>read()<\/code> Z poziomu u\u017cytkownika za pomoc\u0105 wywo\u0142ania systemowego proces mo\u017ce kopiowa\u0107 z pliku do struktur danych j\u0105dra przy u\u017cyciu metody <code>write ()<\/code> innego systemu plik\u00f3w do wyj\u015bcia danych.<\/p>\n<p>Definicje funkcji, kt\u00f3re nale\u017c\u0105 do podstawowych typ\u00f3w VFS, znajduj\u0105 si\u0119 w plikach <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/fs\">fs\/*.c<\/a><\/noindex> \u017ar\u00f3d\u0142owego kodu j\u0105dra, podczas gdy podkatalogi <code>fs\/<\/code> zawieraj\u0105 konkretne systemy plik\u00f3w. W j\u0105drze znajduj\u0105 si\u0119 r\u00f3wnie\u017c byty, takie jak <code>cgroups<\/code>, <code>\/dev<\/code> i <code>tmpfs<\/code>, kt\u00f3re s\u0105 potrzebne w procesie rozruchu i dlatego s\u0105 definiowane w podkatalogu j\u0105dra <code>init\/<\/code>. Zauwa\u017c, \u017ce <code>cgroups<\/code>, <code>\/dev<\/code> i <code>tmpfs<\/code> nie wywo\u0142uj\u0105 \u00abwielkiej tr\u00f3jki\u00bb funkcji <code>file_operations<\/code>, a bezpo\u015brednio odczytuj\u0105 i zapisuj\u0105 do pami\u0119ci.<br \/>\n Na poni\u017cszym diagramie pokazano, jak userspace uzyskuje dost\u0119p do r\u00f3\u017cnych typ\u00f3w system\u00f3w plik\u00f3w, zwykle montowanych w systemach Linux. Nie pokazano takich konstrukcji jak <code>pipes<\/code>, <code>dmesg<\/code> i <code>POSIX clocks<\/code>, kt\u00f3re r\u00f3wnie\u017c implementuj\u0105 struktur\u0119 <code>file_operations<\/code>, do kt\u00f3rej dost\u0119p odbywa si\u0119 przez warstw\u0119 VFS.<\/p>\n<p><img decoding=\"async\" alt=\"Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/04\/267e005b3ed55ee3556bd7b1dab14eb5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n VFS jest \u00abwarstw\u0105 pow\u0142okow\u0105\u00bb mi\u0119dzy wywo\u0142aniami systemowymi a realizacjami okre\u015blonych <code>file_operations<\/code>, takich jak <code>ext4<\/code> i <code>procfs<\/code>. Funkcje <code>file_operations<\/code> mog\u0105 wsp\u00f3\u0142dzia\u0142a\u0107 zar\u00f3wno z sterownikami urz\u0105dze\u0144, jak i z urz\u0105dzeniami dost\u0119pu do pami\u0119ci. <code>tmpfs<\/code>, <code>devtmpfs <\/code>i <code>cgroups <\/code>nie u\u017cywaj\u0105 <code>file_operations<\/code>, a bezpo\u015brednio odnosz\u0105 si\u0119 do pami\u0119ci.<br \/>\n Istnienie VFS umo\u017cliwia ponowne wykorzystanie kodu, poniewa\u017c podstawowe metody zwi\u0105zane z systemami plik\u00f3w nie musz\u0105 by\u0107 ponownie implementowane przez ka\u017cdy typ systemu plik\u00f3w. Ponowne wykorzystanie kodu to powszechnie stosowana praktyka in\u017cynier\u00f3w oprogramowania! Jednak je\u015bli ponownie u\u017cywany kod zawiera <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/774114\/\">powa\u017cne b\u0142\u0119dy<\/a><\/noindex>, wszystkie implementacje, kt\u00f3re dziedzicz\u0105 wsp\u00f3lne metody, si\u0119 na tym cierpi\u0105. <\/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>Prosty spos\u00f3b na sprawdzenie, czy VFS obecne s\u0105 w systemie, to wprowadzenie<code> mount | grep -v sd | grep -v :\/<\/code>, co poka\u017ce wszystkie zamontowane (<code>mounted<\/code>) systemy plik\u00f3w, kt\u00f3re nie s\u0105 rezydentami na dysku i nie s\u0105 NFS, co jest prawd\u0105 w wi\u0119kszo\u015bci komputer\u00f3w. Jednym z wymienionych maunt\u00f3w (<code>mounts<\/code>) VFS na pewno b\u0119dzie <code>\/tmp<\/code>, prawda?<\/p>\n<p><img decoding=\"async\" alt=\"Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/04\/f0a4d546d30f54ad42c4aa5fb4bdb958.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nWszyscy wiedz\u0105, \u017ce przechowywanie<code> \/ tmp<\/code> na no\u015bniku fizycznym to szale\u0144stwo! <noindex><a rel=\"nofollow\" href=\"https:\/\/tinyurl.com\/ybomxyfo\">\u0179r\u00f3d\u0142o<\/a><\/noindex>.<\/p>\n<p>Dlaczego nie jest wskazane przechowywanie <code>\/tmp<\/code> na no\u015bniku fizycznym? Poniewa\u017c pliki w <code>\/tmp<\/code> s\u0105 tymczasowe, a urz\u0105dzenia pami\u0119ci s\u0105 wolniejsze ni\u017c pami\u0119\u0107, gdzie tworzony jest tmpfs. Co wi\u0119cej, no\u015bniki fizyczne s\u0105 bardziej nara\u017cone na zu\u017cycie przy zapisie ni\u017c pami\u0119\u0107. Wreszcie, pliki w \/tmp mog\u0105 zawiera\u0107 poufne informacje, dlatego ich znikni\u0119cie przy ka\u017cdym ponownym uruchomieniu jest funkcj\u0105 nieod\u0142\u0105czn\u0105. <\/p>\n<p>Niestety, niekt\u00f3re skrypty instalacyjne dystrybucji Linuksa domy\u015blnie tworz\u0105 \/tmp na no\u015bniku pami\u0119ci. Nie martw si\u0119, je\u015bli to si\u0119 zdarzy\u0142o i w Twoim systemie. Wykonaj kilka prostych instrukcji z <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.archlinux.org\/index.php\/Tmpfs\">Arch Wiki<\/a><\/noindex>, aby to naprawi\u0107, i pami\u0119taj, \u017ce pami\u0119\u0107 przydzielona dla <code>tmpfs <\/code> staje si\u0119 niedost\u0119pna do innych cel\u00f3w. Innymi s\u0142owy, system z ogromnym tmpfs i du\u017cymi plikami w nim mo\u017ce wyczerpa\u0107 ca\u0142\u0105 pami\u0119\u0107 i si\u0119 zawiesi\u0107. Inna wskaz\u00f3wka: podczas edycji pliku <code>\/etc\/fstab<\/code>, pami\u0119taj, aby ko\u0144czy\u0142 si\u0119 now\u0105 lini\u0105, w przeciwnym razie Tw\u00f3j system si\u0119 nie uruchomi.<\/p>\n<p><b>\/proc \u0438 \/sys <\/b><\/p>\n<p>Opr\u00f3cz <code>\/tmp<\/code>, VFS (wirtualne systemy plik\u00f3w), kt\u00f3re s\u0105 najbardziej znane u\u017cytkownikom Linuksa to <code>\/proc<\/code> i <code>\/sys<\/code>. (<code>\/dev<\/code> znajduje si\u0119 w pami\u0119ci wsp\u00f3\u0142dzielonej i nie ma <code>file_operations<\/code>). Dlaczego te dwa komponenty? Przeanalizujmy t\u0119 kwesti\u0119. <\/p>\n<p><code>procfs<\/code> tworzy migawk\u0119 natychmiastowego stanu j\u0105dra i proces\u00f3w, kt\u00f3rymi zarz\u0105dza dla <code>userspace<\/code>. W <code>\/proc<\/code> j\u0105dro wyprowadza informacje o tym, jakimi zasobami dysponuje, takimi jak przerwania, pami\u0119\u0107 wirtualna i planista. Co wi\u0119cej, <code>\/proc\/sys<\/code> to miejsce, w kt\u00f3rym parametry konfigurowane za pomoc\u0105 komendy <code>sysctl<\/code>, s\u0105 dost\u0119pne dla <code>userspace<\/code>. Status i statystyki poszczeg\u00f3lnych proces\u00f3w s\u0105 wy\u015bwietlane w katalogach <code>\/proc\/<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/04\/c74e7c8934e107736c2d25a4be63f48c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTutaj <code>\/proc\/meminfo<\/code> \u2014 to pusty plik, kt\u00f3ry jednak zawiera cenne informacje.<\/p>\n<p>Zachowanie <code>\/proc<\/code> plik\u00f3w pokazuje, jak r\u00f3\u017cne mog\u0105 by\u0107 systemy plik\u00f3w VFS. Z jednej strony, <code>\/proc\/meminfo<\/code> zawieraj\u0105 informacje, kt\u00f3re mo\u017cna sprawdzi\u0107 za pomoc\u0105 komendy <code>free<\/code>. Z drugiej strony, jest tam pusto! Jak to si\u0119 dzieje? Sytuacja przypomina s\u0142ynny artyku\u0142 zatytu\u0142owany <noindex><a rel=\"nofollow\" href=\"http:\/\/www-f1.ijs.si\/~ramsak\/km1\/mermin.moon.pdf\">\"Czy istnieje ksi\u0119\u017cyc, kiedy nikt na niego nie patrzy? Rzeczywisto\u015b\u0107 a teoria kwantowa\"<\/a><\/noindex>, napisany przez profesora fizyki z Uniwersytetu w Cornellu, Davida Mermina w 1985 roku. Fakt jest taki, \u017ce j\u0105dro zbiera statystyki pami\u0119ci, gdy dochodzi do zapytania do <code>\/proc<\/code>, i tak naprawd\u0119 w plikach. <code>\/proc<\/code> nic nie ma, gdy nikt nie patrzy. Jak powiedzia\u0142 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikiquote.org\/wiki\/David_Mermin\">Mermin<\/a><\/noindex>, \u201eFundamentalna doktryna kwantowa stwierdza, \u017ce pomiar zasadniczo nie ujawnia wcze\u015bniej istniej\u0105cej warto\u015bci mierzonej cechy.\u201d (Pomy\u015blcie o pytaniu na temat ksi\u0119\u017cyca jako o pracy domowej!)<br \/>\nPozorna pustka <code>procfs <\/code> ma sens, poniewa\u017c znajduj\u0105ce si\u0119 tam informacje s\u0105 dynamiczne. Sytuacja jest nieco inna z <code>sysfs<\/code>. Por\u00f3wnajmy, ile plik\u00f3w o rozmiarze co najmniej jednego bajta znajduje si\u0119 w <code>\/proc<\/code> i w <code>\/sys<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/04\/5f712897ffe40c3539586fc3f1f9fabf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<code>Procfs<\/code> ma jeden plik, a mianowicie wyeksportowan\u0105 konfiguracj\u0119 j\u0105dra, kt\u00f3ra jest wyj\u0105tkiem, poniewa\u017c nale\u017cy j\u0105 generowa\u0107 tylko raz przy ka\u017cdorazowym uruchomieniu. Z drugiej strony w <code>\/sys<\/code> le\u017cy wiele bardziej obszerne pliki, z kt\u00f3rych wiele zajmuje ca\u0142\u0105 stron\u0119 pami\u0119ci. Zwykle pliki <code>sysfs <\/code> zawieraj\u0105 dok\u0142adnie jedn\u0105 liczb\u0119 lub ci\u0105g, w przeciwie\u0144stwie do tabel informacji uzyskiwanych z takich plik\u00f3w jak <code>\/proc\/meminfo<\/code>.<\/p>\n<p>Cel <code>sysfs <\/code>\u2013 dostarczy\u0107 w\u0142a\u015bciwo\u015bci dost\u0119pne do odczytu i zapisu tego, co j\u0105dro nazywa <code>\u201ekobjects\u201d<\/code> w przestrzeni u\u017cytkownika. Jedynym celem <code>kobjects <\/code>jest zliczanie referencji: gdy ostatnie odniesienie do kobject zostaje usuni\u0119te, system odzyskuje zasoby zwi\u0105zane z nim. Niemniej jednak <code>\/sys<\/code> stanowi du\u017c\u0105 cz\u0119\u015b\u0107 s\u0142ynnego <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/ABI\/stable\">\u201estabilnego ABI dla przestrzeni u\u017cytkownika\u201d<\/a><\/noindex> j\u0105dra, kt\u00f3rego nikt nigdy, w \u017cadnych okoliczno\u015bciach, nie mo\u017ce <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2012\/12\/23\/75\">\u201ezepsu\u0107\u201d<\/a><\/noindex>. To nie oznacza, \u017ce pliki w sysfs s\u0105 statyczne, co by\u0142oby sprzeczne z liczeniem referencji na niestabilnych obiektach.<br \/>\nStabilny interfejs aplikacji binarnych j\u0105dra (kernel's stable ABI) ogranicza to, co mo\u017ce pojawi\u0107 si\u0119 w <code>\/sys<\/code>, a nie to, co faktycznie jest obecne w danym konkretnym momencie. Wykaz uprawnie\u0144 do plik\u00f3w w sysfs zapewnia zrozumienie, w jaki spos\u00f3b konfigurowane parametry urz\u0105dze\u0144, modu\u0142\u00f3w, system\u00f3w plik\u00f3w itp. mog\u0105 by\u0107 ustawiane lub odczytywane. Wnioskujemy logicznie, \u017ce procfs jest r\u00f3wnie\u017c cz\u0119\u015bci\u0105 stabilnego ABI j\u0105dra, chocia\u017c nie jest to jasno okre\u015blone w <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/ABI\/stable\">dokumentacji<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1\" src=\"\/wp-content\/uploads\/2019\/04\/2c367518e8ee51c7a840a64b5a00abdf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPliki w <code>sysfs <\/code>opisuj\u0105 jedn\u0105 konkretn\u0105 cech\u0119 dla ka\u017cdej jednostki i mog\u0105 by\u0107 czytelne, nadpisywalne lub zar\u00f3wno jedno, jak i drugie jednocze\u015bnie. \u201e0\u201d w pliku oznacza, \u017ce SSD nie mo\u017ce by\u0107 usuni\u0119ty.<\/p>\n<p>Drug\u0105 cz\u0119\u015b\u0107 t\u0142umaczenia rozpoczniemy od tego, jak obserwowa\u0107 VFS za pomoc\u0105 narz\u0119dzi eBPF i bcc, a tymczasem czekamy na wasze komentarze i tradycyjnie zapraszamy na <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5LoU\/\">otwarty webinar<\/a><\/noindex>, kt\u00f3ry ju\u017c 9 kwietnia poprowadzi nasz nauczyciel \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/mlMR\/\">W\u0142odzimierz Drozdziecki<\/a><\/noindex>.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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.1.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\/pl\/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.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Wirtualne systemy plik\u00f3w w Linuxie: po co s\u0105 potrzebne i jak dzia\u0142aj\u0105? Cz\u0119\u015b\u0107 1 | ProHoster","description":"Cze\u015b\u0107 wszystkim!","canonical_url":"https:\/\/prohoster.info\/pl\/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":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/30851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=30851"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/30851\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/22835"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=30851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=30851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=30851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}