{"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\/cs\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1","title":{"rendered":"Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ahoj v\u0161ichni! Pokra\u010dujeme v zav\u00e1d\u011bn\u00ed nov\u00fdch kurz\u016f, kter\u00e9 jste si obl\u00edbili, a nyn\u00ed v\u00e1m s radost\u00ed oznamujeme, \u017ee spou\u0161t\u00edme nov\u00fd cyklus kurzu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/gbcl\/\">\u201eLinuxov\u00fd administr\u00e1tor\u201c<\/a><\/noindex>, kter\u00fd za\u010dne na konci dubna. K t\u00e9to p\u0159\u00edle\u017eitosti bude vyd\u00e1na nov\u00e1 publikace. S origin\u00e1ln\u00edm materi\u00e1lem se m\u016f\u017eete <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/3\/virtual-filesystems-linux\">sezn\u00e1mit zde<\/a><\/noindex>.<\/p>\n<p>Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my hraj\u00ed roli jak\u00e9si kouzeln\u00e9 abstrakce, kter\u00e1 umo\u017e\u0148uje filozofii Linuxu \u0159\u00edkat, \u017ee \"v\u0161echno je souborem\".<\/p>\n<p><img decoding=\"async\" alt=\"Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1\" src=\"\/wp-content\/uploads\/2019\/04\/a0bddab53c034d3a6a530cad91766d5f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCo je to souborov\u00fd syst\u00e9m? Op\u00edraje se o slova jednoho z prvn\u00edch p\u0159isp\u011bvatel\u016f a autor\u016f Linuxu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.pearson.com\/us\/higher-education\/program\/Love-Linux-Kernel-Development-3rd-Edition\/PGM202532.html\">Roberta Lava<\/a><\/noindex>, \"Souborov\u00fd syst\u00e9m je hierarchick\u00e9 \u00falo\u017ei\u0161t\u011b dat uspo\u0159\u00e1dan\u00e9 podle ur\u010dit\u00e9 struktury\". Ka\u017edop\u00e1dn\u011b, toto definice je stejn\u011b dob\u0159e pou\u017eiteln\u00e1 pro VFAT (Virtual File Allocation Table), Git a <noindex><a rel=\"nofollow\" href=\"http:\/\/cassandra.apache.org\/\">Cassandra<\/a><\/noindex> (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/NoSQL\">datab\u00e1zi NoSQL<\/a><\/noindex>). Co tedy vlastn\u011b ur\u010duje pojem \"souborov\u00fd syst\u00e9m\"?<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><b>Z\u00e1klady souborov\u00e9ho syst\u00e9mu<\/b><\/p>\n<p>J\u00e1dro Linuxu m\u00e1 ur\u010dit\u00e9 po\u017eadavky na entitu, kter\u00e1 m\u016f\u017ee b\u00fdt pova\u017eov\u00e1na za souborov\u00fd syst\u00e9m. Mus\u00ed realizovat metody <code>open()<\/code>, <code>read()<\/code> a <code>write()<\/code> pro trval\u00e9 objekty, kter\u00e9 maj\u00ed n\u00e1zvy. Z pohledu objektov\u011b orientovan\u00e9ho <noindex><a rel=\"nofollow\" href=\"http:\/\/lwn.net\/Articles\/444910\/\">programov\u00e1n\u00ed<\/a><\/noindex>, j\u00e1dro definuje zobecn\u011bn\u00fd souborov\u00fd syst\u00e9m (generic filesystem) jako abstraktn\u00ed rozhran\u00ed, a tyto t\u0159i hlavn\u00ed funkce jsou pova\u017eov\u00e1ny za \"virtu\u00e1ln\u00ed\" a nemaj\u00ed konkr\u00e9tn\u00ed definici. Odpov\u00eddaj\u00edc\u00edm zp\u016fsobem se implementace souborov\u00e9ho syst\u00e9mu naz\u00fdv\u00e1 virtu\u00e1ln\u00ed souborov\u00fd syst\u00e9m (VFS).<\/p>\n<p><img decoding=\"async\" alt=\"Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1\" src=\"\/wp-content\/uploads\/2019\/04\/bfaaf66de7038aa82beba5aa91e1db16.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPokud m\u016f\u017eeme otev\u00edrat, \u010d\u00edst a zapisovat do entity, pak je tato entita pova\u017eov\u00e1na za soubor, jak vid\u00edme v p\u0159\u00edkladu v konzoli v\u00fd\u0161e.<br \/>\n Fenomen VFS jen zd\u016fraz\u0148uje pozorov\u00e1n\u00ed, kter\u00e9 je charakteristick\u00e9 pro syst\u00e9my podobn\u00e9 Unixu, kter\u00e9 \u0159\u00edk\u00e1, \u017ee \"v\u0161echno je souborem\". Zamyslete se, jak zvl\u00e1\u0161tn\u00ed je, \u017ee mal\u00fd p\u0159\u00edklad v\u00fd\u0161e s \/dev\/console ukazuje, jak vlastn\u011b konzole funguje. Na obr\u00e1zku je zobrazen\u00e1 interaktivn\u00ed Bash sezen\u00ed. Odesl\u00e1n\u00ed \u0159\u00e1dku do konzole (virtual console device) zobrazuje jej na virtu\u00e1ln\u00edm obrazovce. VFS m\u00e1 dal\u0161\u00ed, je\u0161t\u011b podivn\u011bj\u0161\u00ed vlastnosti. Nap\u0159\u00edklad, umo\u017e\u0148uje prov\u00e1d\u011bt vyhled\u00e1v\u00e1n\u00ed p\u0159es <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/22355\/\">n\u011b<\/a><\/noindex>.<\/p>\n<p>Na\u0161e zn\u00e1m\u00e9 syst\u00e9my, jako ext4, NFS a \/proc, maj\u00ed t\u0159i d\u016fle\u017eit\u00e9 funkce ve struktu\u0159e dat v jazyce C, kter\u00e1 se naz\u00fdv\u00e1 <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>. Krom\u011b toho ur\u010dit\u00e9 souborov\u00e9 syst\u00e9my roz\u0161i\u0159uj\u00ed a p\u0159edefinuj\u00ed funkce VFS obvykl\u00fdm objektov\u011b orientovan\u00fdm zp\u016fsobem. Jak poznamen\u00e1v\u00e1 Robert Love, abstrakce VFS umo\u017e\u0148uje u\u017eivatel\u016fm Linuxu bezstarostn\u011b kop\u00edrovat soubory do nebo z ciz\u00edch opera\u010dn\u00edch syst\u00e9m\u016f nebo abstraktn\u00edch entit, jako jsou pipes, ani\u017e by se zaj\u00edmali o jejich vnit\u0159n\u00ed datov\u00fd form\u00e1t. Z pohledu u\u017eivatele (userspace) m\u016f\u017ee proces pomoc\u00ed syst\u00e9mov\u00e9ho vol\u00e1n\u00ed kop\u00edrovat z souboru do datov\u00fdch struktur j\u00e1dra pomoc\u00ed metody <code>read()<\/code> jednoho souborov\u00e9ho syst\u00e9mu, a pot\u00e9 pou\u017e\u00edt metodu <code>write ()<\/code> jin\u00e9ho souborov\u00e9ho syst\u00e9mu pro v\u00fdstup dat.<\/p>\n<p>Definice funkc\u00ed, kter\u00e9 pat\u0159\u00ed k z\u00e1kladn\u00edm typ\u016fm VFS, se nach\u00e1zej\u00ed v souborech <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/fs\">fs\/*.c<\/a><\/noindex> zdrojov\u00e9ho k\u00f3du j\u00e1dra, zat\u00edmco podadres\u00e1\u0159e <code>fs\/<\/code> obsahuj\u00ed specifick\u00e9 souborov\u00e9 syst\u00e9my. V j\u00e1d\u0159e se tak\u00e9 nach\u00e1zej\u00ed entity, jako jsou <code>cgroups<\/code>, <code>\/dev<\/code> a <code>tmpfs<\/code>, kter\u00e9 jsou pot\u0159ebn\u00e9 v procesu bootov\u00e1n\u00ed, a proto jsou definov\u00e1ny v podadres\u00e1\u0159i j\u00e1dra <code>init\/<\/code>. V\u0161imn\u011bte si, \u017ee <code>cgroups<\/code>, <code>\/dev<\/code> a <code>tmpfs<\/code> nevyvol\u00e1vaj\u00ed \"velkou trojku\" funkc\u00ed <code>file_operations<\/code>, ale p\u0159\u00edmo \u010dtou a zapisuj\u00ed do pam\u011bti.<br \/>\n Na n\u00ed\u017ee uveden\u00e9m diagramu je zn\u00e1zorn\u011bno, jak userspace p\u0159istupuje k r\u016fzn\u00fdm typ\u016fm souborov\u00fdch syst\u00e9m\u016f, kter\u00e9 se obvykle montuj\u00ed v syst\u00e9mech Linux. Nebyly zde uvedeny takov\u00e9 konstrukce jako <code>pipes<\/code>, <code>dmesg<\/code> a <code>POSIX clocks<\/code>, kter\u00e9 tak\u00e9 implementuj\u00ed strukturu <code>file_operations<\/code>, k nim\u017e se p\u0159istupuje p\u0159es vrstvu VFS.<\/p>\n<p><img decoding=\"async\" alt=\"Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1\" src=\"\/wp-content\/uploads\/2019\/04\/267e005b3ed55ee3556bd7b1dab14eb5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n VFS je \"vrstva ob\u00e1lky\" mezi syst\u00e9mov\u00fdmi vol\u00e1n\u00edmi a implementacemi specifick\u00fdch <code>file_operations<\/code>, jako nap\u0159\u00edklad <code>ext4.<\/code> a <code>procfs<\/code>. Funkce <code>file_operations<\/code> mohou interagovat bu\u010f s ovlada\u010di za\u0159\u00edzen\u00ed, nebo s za\u0159\u00edzen\u00edmi p\u0159\u00edstupu k pam\u011bti. <code>tmpfs<\/code>, <code>devtmpfs <\/code>a <code>cgroups <\/code>nepou\u017e\u00edvaj\u00ed <code>file_operations<\/code>, ale p\u0159\u00edmo se obracej\u00ed na pam\u011b\u0165.<br \/>\n Existence VFS zaji\u0161\u0165uje mo\u017enost op\u011btovn\u00e9ho vyu\u017eit\u00ed k\u00f3du, proto\u017ee z\u00e1kladn\u00ed metody souvisej\u00edc\u00ed se souborov\u00fdmi syst\u00e9my nemus\u00ed b\u00fdt op\u011btovn\u011b implementov\u00e1ny ka\u017ed\u00fdm typem souborov\u00e9ho syst\u00e9mu. Op\u011btovn\u00e9 vyu\u017eit\u00ed k\u00f3du je \u0161iroce aplikovanou prax\u00ed softwarov\u00fdch in\u017een\u00fdr\u016f! Nicm\u00e9n\u011b pokud opakovan\u011b pou\u017eit\u00fd k\u00f3d obsahuje <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/774114\/\">z\u00e1va\u017en\u00e9 chyby<\/a><\/noindex>, trp\u00ed nimi v\u0161echny implementace, kter\u00e9 zd\u011bd\u00ed spole\u010dn\u00e9 metody. <\/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>Jednoduch\u00fd zp\u016fsob, jak zjistit, \u017ee VFS jsou p\u0159\u00edtomny v syst\u00e9mu, je zadat<code> mount | grep -v sd | grep -v :\/<\/code>, co\u017e uk\u00e1\u017ee v\u0161echny p\u0159ipojen\u00e9 (<code>mounted<\/code>) souborov\u00e9 syst\u00e9my, kter\u00e9 nejsou residentn\u00ed na disku a nejsou NFS, co\u017e plat\u00ed na v\u011bt\u0161in\u011b po\u010d\u00edta\u010d\u016f. Jedn\u00edm z uveden\u00fdch mount\u016f (<code>mounts<\/code>) VFS bude nepochybn\u011b <code>\/tmp<\/code>, \u017ee?<\/p>\n<p><img decoding=\"async\" alt=\"Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1\" src=\"\/wp-content\/uploads\/2019\/04\/f0a4d546d30f54ad42c4aa5fb4bdb958.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nV\u0161ichni v\u011bd\u00ed, \u017ee uchov\u00e1vat<code> \/ tmp<\/code> na fyzick\u00e9m m\u00e9diu \u2013 je nesmysl! <noindex><a rel=\"nofollow\" href=\"https:\/\/tinyurl.com\/ybomxyfo\">Zdroj<\/a><\/noindex>.<\/p>\n<p>Pro\u010d je ne\u017e\u00e1douc\u00ed uchov\u00e1vat <code>\/tmp<\/code> na fyzick\u00e9m m\u00e9diu? Proto\u017ee soubory v <code>\/tmp<\/code> jsou do\u010dasn\u00e9 a za\u0159\u00edzen\u00ed pro ukl\u00e1d\u00e1n\u00ed jsou pomalej\u0161\u00ed ne\u017e pam\u011b\u0165, kde se vytv\u00e1\u0159\u00ed tmpfs. Nav\u00edc fyzick\u00e1 m\u00e9dia jsou p\u0159i p\u0159episov\u00e1n\u00ed n\u00e1chyln\u011bj\u0161\u00ed k opot\u0159eben\u00ed ne\u017e pam\u011b\u0165. A kone\u010dn\u011b, soubory v \/tmp mohou obsahovat citliv\u00e9 informace, tak\u017ee jejich z\u00e1nik po ka\u017ed\u00e9m restartu je neodmyslitelnou funkc\u00ed. <\/p>\n<p>Bohu\u017eel n\u011bkter\u00e9 skripty pro instalaci distribuc\u00ed Linuxu vytv\u00e1\u0159ej\u00ed \/tmp na \u00falo\u017en\u00e9m za\u0159\u00edzen\u00ed jako v\u00fdchoz\u00ed. Nenechte se odradit, pokud to nastalo i na va\u0161\u00ed syst\u00e9mu. Prove\u010fte n\u011bkolik jednoduch\u00fdch pokyn\u016f z <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.archlinux.org\/index.php\/Tmpfs\">Arch Wiki<\/a><\/noindex>, abyste to opravili, a pamatujte, \u017ee pam\u011b\u0165 p\u0159id\u011blen\u00e1 pro <code>tmpfs <\/code> se st\u00e1v\u00e1 nedostupnou pro jin\u00e9 \u00fa\u010dely. Jin\u00fdmi slovy, syst\u00e9m s obrovsk\u00fdm tmpfs a velk\u00fdmi soubory v n\u011bm m\u016f\u017ee vy\u010derpat celou pam\u011b\u0165 a spadnout. Dal\u0161\u00ed tip: p\u0159i \u00faprav\u011b souboru <code>\/etc\/fstab<\/code>, pamatujte, \u017ee by m\u011bl kon\u010dit nov\u00fdm \u0159\u00e1dkem, jinak se v\u00e1\u0161 syst\u00e9m nepob\u011b\u017e\u00ed.<\/p>\n<p><b>\/proc \u0438 \/sys <\/b><\/p>\n<p>Krom\u011b <code>\/tmp<\/code>, VFS (virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my), kter\u00e9 jsou u\u017eivatel\u016fm Linuxu nejzn\u00e1m\u011bj\u0161\u00ed \u2013 se nach\u00e1z\u00ed v sd\u00edlen\u00e9 pam\u011bti a nem\u00e1 <code>\/proc<\/code> a <code>\/sys<\/code>. (<code>\/dev<\/code> ). Pro\u010d zrovna tyto dva komponenty? Poj\u010fme se na tuto ot\u00e1zku pod\u00edvat. <code>file_operations<\/code>vytv\u00e1\u0159\u00ed sn\u00edmek okam\u017eit\u00e9ho stavu j\u00e1dra a proces\u016f, kter\u00e9 kontroluje pro <\/p>\n<p><code>procfs<\/code> userspace <code>j\u00e1dro poskytuje informace o tom, jak\u00e9 prost\u0159edky m\u00e1 k dispozici, nap\u0159\u00edklad p\u0159eru\u0161en\u00ed, virtu\u00e1ln\u00ed pam\u011b\u0165 a pl\u00e1nova\u010d. Krom\u011b toho,<\/code>. V <code>\/proc<\/code> \u2013 je to m\u00edsto, kde jsou parametry nastaviteln\u00e9 pomoc\u00ed p\u0159\u00edkazu <code>\/proc\/sys<\/code> , dostupn\u00e9 pro <code>sysctl<\/code>. Stav a statistiky jednotliv\u00fdch proces\u016f se zobrazuj\u00ed v adres\u00e1\u0159\u00edch <code>j\u00e1dro poskytuje informace o tom, jak\u00e9 prost\u0159edky m\u00e1 k dispozici, nap\u0159\u00edklad p\u0159eru\u0161en\u00ed, virtu\u00e1ln\u00ed pam\u011b\u0165 a pl\u00e1nova\u010d. Krom\u011b toho,<\/code>\u2014 je to pr\u00e1zdn\u00fd soubor, kter\u00fd v\u0161ak obsahuje cenn\u00e9 informace. <code>\/proc\/<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1\" src=\"\/wp-content\/uploads\/2019\/04\/c74e7c8934e107736c2d25a4be63f48c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZde <code>\/proc\/meminfo<\/code> Chov\u00e1n\u00ed<\/p>\n<p>soubor\u016f ukazuje, jak odli\u0161n\u00e9 mohou b\u00fdt diskov\u00e9 souborov\u00e9 syst\u00e9my VFS. Na jedn\u00e9 stran\u011b, <code>\/proc<\/code> obsahuj\u00ed informace, kter\u00e9 lze zobrazit pomoc\u00ed p\u0159\u00edkazu <code>\/proc\/meminfo<\/code> . Na druh\u00e9 stran\u011b, tam je pr\u00e1zdno! Jak je to mo\u017en\u00e9? Situace p\u0159ipom\u00edn\u00e1 slavn\u00fd \u010dl\u00e1nek s n\u00e1zvem <code>free<\/code>\u201eExistuje m\u011bs\u00edc, kdy\u017e se na n\u011bj nikdo ned\u00edv\u00e1? Realita a kvantov\u00e1 teorie\u201c <noindex><a rel=\"nofollow\" href=\"http:\/\/www-f1.ijs.si\/~ramsak\/km1\/mermin.moon.pdf\">, napsan\u00fd profesorem fyziky na Cornellov\u011b univerzit\u011b Davidem Merminsem v roce 1985. Skute\u010dnost\u00ed je, \u017ee j\u00e1dro shroma\u017e\u010fuje statistiku pam\u011bti, kdy\u017e dojde k \u017e\u00e1dosti o<\/a><\/noindex>, a ve skute\u010dnosti jsou soubory <code>\/proc<\/code>, a ve ve skute\u010dnosti v souborech <code>\/proc<\/code> nic nen\u00ed, kdy\u017e se nikdo ned\u00edv\u00e1. Jak \u0159ekl <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikiquote.org\/wiki\/David_Mermin\">Mermin<\/a><\/noindex>, \u201eFundament\u00e1ln\u00ed kvantov\u00e1 doktr\u00edna \u0159\u00edk\u00e1, \u017ee m\u011b\u0159en\u00ed obecn\u011b neodhaluje d\u0159\u00edve existuj\u00edc\u00ed hodnotu m\u011b\u0159en\u00e9ho vlastnosti.\u201c (A zamyslete se nad ot\u00e1zkou ohledn\u011b m\u011bs\u00edce jako dom\u00e1c\u00ed \u00fakol!)<br \/>\nZd\u00e1nliv\u00e9 pr\u00e1zdno <code>procfs <\/code> m\u00e1 smysl, proto\u017ee informace v n\u011bm se dynamicky m\u011bn\u00ed. O n\u011bco jin\u00e1 situace je s <code>sysfs<\/code>. Poj\u010fme porovnat, kolik soubor\u016f o velikosti alespo\u0148 jednoho bajtu existuje v <code>\/proc<\/code> a v <code>\/sys<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1\" src=\"\/wp-content\/uploads\/2019\/04\/5f712897ffe40c3539586fc3f1f9fabf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<code>Procfs<\/code> m\u00e1 jeden soubor, a to exportovanou konfiguraci j\u00e1dra, co\u017e je v\u00fdjimka, proto\u017ee ji je t\u0159eba generovat pouze jednou za start. Na druh\u00e9 stran\u011b v <code>\/sys<\/code> le\u017e\u00ed \u0159ada objemn\u011bj\u0161\u00edch soubor\u016f, z nich\u017e mnoh\u00e9 zab\u00edraj\u00ed celou str\u00e1nku pam\u011bti. Obvykle soubory <code>sysfs <\/code> obsahuj\u00ed p\u0159esn\u011b jedno \u010d\u00edslo nebo \u0159et\u011bzec, na rozd\u00edl od tabulek informac\u00ed, kter\u00e9 se z\u00edsk\u00e1vaj\u00ed p\u0159i \u010dten\u00ed takov\u00fdch soubor\u016f jako <code>\/proc\/meminfo<\/code>.<\/p>\n<p>C\u00edl <code>sysfs <\/code>\u2013 poskytuj\u00ed vlastnosti, kter\u00e9 jsou dostupn\u00e9 pro \u010dten\u00ed a z\u00e1pis toho, co j\u00e1dro naz\u00fdv\u00e1 <code>\u201ekobjects\u201c<\/code> v u\u017eivatelsk\u00e9m prostoru. Jedin\u00fdm c\u00edlem <code>kobjects <\/code>je po\u010d\u00edt\u00e1n\u00ed odkaz\u016f: kdy\u017e je odstran\u011bn posledn\u00ed odkaz na kobject, syst\u00e9m uvoln\u00ed s n\u00edm spojen\u00e9 zdroje. P\u0159esto <code>\/sys<\/code> tvo\u0159\u00ed v\u011bt\u0161inu zn\u00e1m\u00e9ho <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/ABI\/stable\">\u201estabiln\u00edho ABI pro u\u017eivatelsk\u00fd prostor\u201c<\/a><\/noindex> j\u00e1dra, kter\u00e9 nikdy nikdo, za \u017e\u00e1dn\u00fdch okolnost\u00ed nem\u016f\u017ee <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2012\/12\/23\/75\">\u201eporu\u0161it\u201c<\/a><\/noindex>. To neznamen\u00e1, \u017ee soubory v sysfs jsou statick\u00e9, co\u017e by odporovalo po\u010d\u00edt\u00e1n\u00ed odkaz\u016f na nestabiln\u00ed objekty.<br \/>\nStabiln\u00ed bin\u00e1rn\u00ed rozhran\u00ed aplikac\u00ed j\u00e1dra (kernel's stable ABI) omezuje to, co se m\u016f\u017ee objevit v <code>\/sys<\/code>, nikoli to, co skute\u010dn\u011b existuje v tomto konkr\u00e9tn\u00edm okam\u017eiku. V\u00fdpis opr\u00e1vn\u011bn\u00ed soubor\u016f v sysfs poskytuje pochopen\u00ed toho, jak mohou b\u00fdt konfigurovateln\u00e9 parametry za\u0159\u00edzen\u00ed, modul\u016f, souborov\u00fdch syst\u00e9m\u016f atd. nastaveny nebo p\u0159e\u010dteny. Logicky vyvozujeme, \u017ee procfs je tak\u00e9 sou\u010d\u00e1st\u00ed stable ABI j\u00e1dra, i kdy\u017e to nen\u00ed explicitn\u011b uvedeno v <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/ABI\/stable\">dokumentaci<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1\" src=\"\/wp-content\/uploads\/2019\/04\/2c367518e8ee51c7a840a64b5a00abdf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSoubory v <code>sysfs <\/code>popisuj\u00ed jedno konkr\u00e9tn\u00ed vlastnost pro ka\u017edou entitu a mohou b\u00fdt \u010diteln\u00e9, p\u0159episovateln\u00e9 nebo oboj\u00ed najednou. \u201e0\u201c v souboru \u0159\u00edk\u00e1, \u017ee SSD nelze odstranit.<\/p>\n<p>Druhou \u010d\u00e1st p\u0159ekladu za\u010dneme t\u00edm, jak sledovat VFS pomoc\u00ed n\u00e1stroj\u016f eBPF a bcc, a nyn\u00ed \u010dek\u00e1me na va\u0161e koment\u00e1\u0159e a tradi\u010dn\u011b v\u00e1s zveme na <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5LoU\/\">otev\u0159en\u00fd webin\u00e1\u0159<\/a><\/noindex>, kter\u00e1 se ji\u017e 9. dubna uskute\u010dn\u00ed s na\u0161\u00edm lektorem \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/mlMR\/\">Vladimir Drozdetsky<\/a><\/noindex>.<br \/>\n<br \/>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-1\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Virtu\u00e1ln\u00ed souborov\u00e9 syst\u00e9my v Linuxu: k \u010demu slou\u017e\u00ed a jak funguj\u00ed? \u010c\u00e1st 1 | ProHoster","description":"Ahoj v\u0161ichni!","canonical_url":"https:\/\/prohoster.info\/cs\/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":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/30851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=30851"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/30851\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/22835"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=30851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=30851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=30851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}