{"id":31333,"date":"2019-10-31T21:40:44","date_gmt":"2019-10-31T18:40:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2\/"},"modified":"2019-10-31T21:40:44","modified_gmt":"2019-10-31T18:40:44","slug":"virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","title":{"rendered":"Virtuelle Dateisysteme in Linux: Warum sie ben\u00f6tigt werden und wie sie funktionieren? Teil 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hallo zusammen, wir teilen mit Ihnen den zweiten Teil der Ver\u00f6ffentlichung \"Virtuelle Dateisysteme in Linux: Warum sie ben\u00f6tigt werden und wie sie funktionieren?\" Den ersten Teil k\u00f6nnen Sie lesen <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/446614\/\">hier<\/a><\/noindex>. Wir erinnern daran, dass diese Serie von Ver\u00f6ffentlichungen im Rahmen der Einf\u00fchrung eines neuen Kurses <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/tjnD\/\">\u201eLinux-Administrator\u201c<\/a><\/noindex>, der schon bald beginnt.<\/p>\n<p><b>Wie man VFS mit eBPF- und bcc-Tools \u00fcberwacht<\/b><\/p>\n<p>Der einfachste Weg zu verstehen, wie der Kernel mit Dateien umgeht <code>sysfs<\/code> \u2013 besteht darin, dies praktisch zu beobachten, und der einfachste Weg, auf ARM64 zu beobachten, besteht darin, eBPF zu verwenden. eBPF (Abk\u00fcrzung f\u00fcr Berkeley Packet Filter) besteht aus einer virtuellen Maschine, die im <noindex><a rel=\"nofollow\" href=\"https:\/\/events.linuxfoundation.org\/sites\/events\/files\/slides\/bpf_collabsummit_2015feb20.pdf\">Kernel<\/a><\/noindex>, auf die privilegierte Benutzer \u00fcber die Kommandozeile zugreifen k\u00f6nnen (<code>query<\/code>). Der Kernel-Quellcode informiert den Leser dar\u00fcber, was der Kernel tun kann; die Ausf\u00fchrung von eBPF-Tools in einem ausgelasteten System zeigt, was der Kernel tats\u00e4chlich tut. <\/p>\n<p><img decoding=\"async\" alt=\"Virtuelle Dateisysteme in Linux: Warum sie ben\u00f6tigt werden und wie sie funktionieren? Teil 2\" src=\"\/wp-content\/uploads\/2019\/04\/95443cd3b1562b03eb43bf5fd229c508.jpg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Gl\u00fccklicherweise ist es relativ einfach, eBPF mithilfe von Tools zu verwenden, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\">bcc<\/a><\/noindex>, die als Pakete aus der allgemeinen Distribution verf\u00fcgbar sind <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\/blob\/master\/INSTALL.md\">Linux<\/a><\/noindex> und detailliert dokumentiert sind <noindex><a rel=\"nofollow\" href=\"http:\/\/brendangregg.com\/ebpf.html\">von Bernard Gregg.<\/a><\/noindex>Die Werkzeuge <code>bcc<\/code> \u2013 das sind Python-Skripte mit kurzen C-Code-Einf\u00fcgungen, was bedeutet, dass jeder, der mit beiden Sprachen vertraut ist, sie problemlos anpassen kann. In <code>bcc\/tools<\/code> gibt es 80 Python-Skripte, was bedeutet, dass wahrscheinlich ein Entwickler oder Systemadministrator etwas Passendes zur L\u00f6sung seiner Aufgaben finden kann. <br \/>\nUm zumindest einen groben \u00dcberblick dar\u00fcber zu bekommen, welche Aufgaben VFS in einem laufenden System erf\u00fcllt, versuchen Sie es bitte mit <code>vfscount<\/code> oder <code>vfsstat<\/code>. Dies zeigt zum Beispiel, dass Dutzende von Aufrufen <code>vfs_open()<\/code> und dessen \u201eVerwandten\u201c buchst\u00e4blich jede Sekunde auftreten.<\/p>\n<p><img decoding=\"async\" alt=\"Virtuelle Dateisysteme in Linux: Warum sie ben\u00f6tigt werden und wie sie funktionieren? Teil 2\" src=\"\/wp-content\/uploads\/2019\/04\/3479caa65696a29831f00e48782e48b3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p><code>vfsstat.py<\/code> \u2013 ist ein Python-Skript mit C-Code-Einf\u00fcgungen, das einfach die Aufrufe der VFS-Funktionen z\u00e4hlt.<\/p><\/blockquote>\n<p>Lassen Sie uns ein triviales Beispiel anf\u00fchren und sehen, was passiert, wenn wir einen USB-Stick in den Computer stecken und das System ihn erkennt.<\/p>\n<p><img decoding=\"async\" alt=\"Virtuelle Dateisysteme in Linux: Warum sie ben\u00f6tigt werden und wie sie funktionieren? Teil 2\" src=\"\/wp-content\/uploads\/2019\/04\/5c756fe1b6d4c5906631e5da24b59dca.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p>Mit eBPF kann man sehen, was passiert in <code>\/sys<\/code>, wenn ein USB-Stick eingesteckt wird. Hier wird ein einfaches und ein komplexes Beispiel gezeigt.<\/p><\/blockquote>\n<p>Im oben gezeigten Beispiel <code>bcc<\/code> Tool <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/iovisor\/bcc\/blob\/master\/tools\/trace_example.txt\">trace.py<\/a><\/noindex> gibt eine Nachricht aus, wenn der Befehl <code>sysfs_create_files()<\/code>ausgef\u00fchrt wird. Wir sehen, dass <code>sysfs_create_files()<\/code> es mit Hilfe von <code>kworker gestartet wurde.<\/code> Im Kontext der Reaktion auf das Einstecken eines USB-Sticks, welche Datei wurde dabei erstellt? Das zweite Beispiel veranschaulicht die gesamte Leistungsf\u00e4higkeit von eBPF. Hier <code>trace.py<\/code> zeigt die Kernel-Backtrace (Option -K) und den Namen der Datei, die erstellt wurde. <code>sysfs_create_files()<\/code>Das Einf\u00fcgen in einfache Aussagen ist ein C-Code, der eine leicht erkennbare Formatzeichenfolge beinhaltet, bereitgestellt durch ein Python-Skript, das LLVM ausf\u00fchrt. <i>Just-in-Time-Compiler<\/i>. Diese Zeichenfolge wird kompiliert und in einer virtuellen Maschine innerhalb des Kernels ausgef\u00fchrt. Die vollst\u00e4ndige Funktionssignatur <code>sysfs_create_files()<\/code> muss im zweiten Befehl reproduziert werden, damit die Formatzeichenfolge auf einen der Parameter verweisen kann. Fehler in diesem C-Code-Segment f\u00fchren zu erkennbaren C-Compilerfehlern. Wenn beispielsweise der Parameter -l fehlt, sehen Sie die Meldung \"Failed to compile BPF text.\" Entwickler, die gut mit C und Python vertraut sind, finden die Tools <code>bcc<\/code> einfach zu erweitern und zu \u00e4ndern.<\/p>\n<p>Wenn der USB-Stick eingesteckt ist, zeigt die Kernel-Backtrace, dass PID 7711 der Prozess ist <code>kworker gestartet wurde.<\/code>, der die Datei erstellt hat <code>\"events\"<\/code> in <code>sysfs<\/code>. Entsprechend zeigt der Aufruf von <code>sysfs_remove_files()<\/code> dass das Entfernen des Speichermediums zur L\u00f6schung der Datei <code>events<\/code>, was der allgemeinen Konzept der Linkz\u00e4hlung entspricht. Dabei zeigt die Ansicht <code>sysfs_create_link ()<\/code> , dass eBPF w\u00e4hrend des Einsteckens eines USB-Sticks nicht weniger als 48 symbolische Links erstellt.<\/p>\n<p>Was ist also der Sinn der Datei events? Die Verwendung von <noindex><a rel=\"nofollow\" href=\"http:\/\/northstar-www.dartmouth.edu\/doc\/solaris-forte\/manuals\/c\/user_guide\/cscope.html\">cscope<\/a><\/noindex> zum Suchen von <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/block\/genhd.c#n665\">__device_add_disk()<\/a><\/noindex>, zeigt, dass es <code>disk_add_events ()<\/code>, entweder <code>\"media_change\"<\/code>, oder <code>\"eject_request\"<\/code> in die Ereignisdatei geschrieben werden k\u00f6nnen. Hier informiert die Blockschicht des Kernels den Userspace \u00fcber das Erscheinen und Entfernen des \u201eDisks\u201c. Beachten Sie, wie informativ diese Forschungsmethode am Beispiel des Einsteckens eines USB-Sticks im Vergleich zu dem Versuch, herauszufinden, wie alles nur aus dem Quellcode funktioniert.<\/p>\n<p><b>Nur-Lese-Wurzel-Dateisysteme erm\u00f6glichen eingebaute Ger\u00e4te.<\/b><\/p>\n<p>Nat\u00fcrlich schaltet niemand seinen Server oder Computer einfach aus, indem er den Stecker zieht. Aber warum? Das liegt daran, dass die gemounteten Dateisysteme auf physischen Speichermedien verz\u00f6gerte Schreibvorg\u00e4nge haben k\u00f6nnen und die Datenstrukturen, die ihren Zustand festhalten, m\u00f6glicherweise nicht mit den Aufzeichnungen im Speicher synchronisiert sind. Wenn dies geschieht, m\u00fcssen die Systembesitzer auf den n\u00e4chsten Boot warten, um das Tool <code>fsck filesystem-recovery<\/code> auszuf\u00fchren und im schlimmsten Fall Daten zu verlieren. <\/p>\n<p>Dennoch wissen wir alle, dass viele IoT-Ger\u00e4te sowie Router, Thermostate und Autos mittlerweile mit Linux betrieben werden. Viele dieser Ger\u00e4te haben praktisch keine Benutzeroberfl\u00e4che, und es gibt keinen Weg, sie \"sauber\" herunterzufahren. Stellen Sie sich vor, Sie starten ein Auto mit einer leeren Batterie, w\u00e4hrend die Stromversorgung der Steuereinheit st\u00e4ndig schwankt. <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.automotivelinux.org\/_media\/eg-rhsa\/agl_referencehardwarespec_v0.1.0_20171018.pdf\">Linux<\/a><\/noindex> Wie kann das System starten, ohne einen langen <code>fsck<\/code>auszuf\u00fchren, wenn der Motor schlie\u00dflich anspringt? Die Antwort ist einfach. Eingebettete Ger\u00e4te verlassen sich auf das Wurzel-Dateisystem <noindex><a rel=\"nofollow\" href=\"https:\/\/elinux.org\/images\/1\/1f\/Read-only_rootfs.pdf\">nur zum Lesen<\/a><\/noindex> (abgek\u00fcrzt <code>ro-rootfs<\/code> (read-only root filesystem)). <\/p>\n<p><code>ro-rootfs<\/code> bieten viele Vorteile, die weniger offensichtlich sind als die Unver\u00e4nderlichkeit. Ein Vorteil besteht darin, dass Malware nicht in  schreiben kann, wenn kein Linux-Prozess dazu in der Lage ist. <code>\/usr<\/code> oder <code>\/lib<\/code>Ein weiterer Vorteil ist, dass ein weitgehend unver\u00e4nderliches Dateisystem entscheidend f\u00fcr die Unterst\u00fctzung von Remote-Ger\u00e4ten ist, da das Support-Personal lokale Systeme nutzt, die nominell identisch mit den Systemen vor Ort sind. M\u00f6glicherweise ist der wichtigste (aber auch hinterh\u00e4ltigste) Vorteil, dass ro-rootfs Entwickler zwingt, zu entscheiden, welche Systemobjekte unver\u00e4nderlich sein werden, bereits in der Planungsphase des Systems. Der Umgang mit ro-rootfs kann unangenehm und schmerzhaft sein, \u00e4hnlich wie es oft mit const-Variablen in Programmiersprachen der Fall ist, aber ihre Vorteile rechtfertigen leicht die zus\u00e4tzlichen Kosten.<\/p>\n<p>Erstellung <code>rootfs<\/code> im Nur-Lesen-Modus erfordert einige zus\u00e4tzliche Anstrengungen von Entwicklern eingebetteter Systeme, und hier kommt das VFS ins Spiel. Linux erfordert, dass Dateien in <code>\/var<\/code> waren f\u00fcr die Konfiguration verf\u00fcgbar, und zus\u00e4tzlich werden viele beliebte Anwendungen, die auf eingebetteten Systemen laufen, versuchen, Konfigurationsdateien zu erstellen. <code>dot-files<\/code> in <code>$HOME<\/code>. Eine der L\u00f6sungen f\u00fcr Konfigurationsdateien im Home-Verzeichnis besteht normalerweise darin, diese im Voraus zu generieren und zu b\u00fcndeln. <code>rootfs<\/code>. F\u00fcr <code>\/var<\/code> eine m\u00f6gliche Vorgehensweise besteht darin, es in einem separaten, beschreibbaren Bereich zu mounten, w\u00e4hrend das System selbst <code>\/<\/code> nur im Lesemodus gemountet wird. Eine andere beliebte Alternative ist die Verwendung von bind- oder overlay-mounts.<\/p>\n<p><b>Bind- und overlay-mounts, deren Einsatz durch Container<\/b> <\/p>\n<p>Die Ausf\u00fchrung des Befehls <code>man mount<\/code> ist der beste Weg, um mehr \u00fcber bind- und overlay-mounts zu erfahren, die Entwicklern und Systemadministratoren die M\u00f6glichkeit geben, ein Dateisystem unter einem Pfad zu erstellen und es dann Anwendungen unter einem anderen zur Verf\u00fcgung zu stellen. F\u00fcr eingebettete Systeme bedeutet dies, Dateien in <code>\/var<\/code> auf einem nur lesbaren Flash-Laufwerk zu speichern, jedoch l\u00e4sst sich ein gebundener oder \u00fcberlagerter Mount f\u00fcr den Pfad aus <code>tmpfs<\/code> in <code>\/var<\/code> Beim Laden erm\u00f6glicht es den Anwendungen, dort Notizen (scrawl) zu hinterlassen. Beim n\u00e4chsten Einschalten gehen die \u00c4nderungen verloren. <code>\/var<\/code> Das Overlay-Mounting schafft eine Verbindung zwischen <code>tmpfs<\/code> und dem darunter liegenden Dateisystem und erlaubt, scheinbare \u00c4nderungen an bestehenden Dateien in <code>ro-tootf<\/code> w\u00e4hrend ein bind-Mount neue leere <code>tmpfs<\/code> Verzeichnisse sichtbar machen kann, die als beschreibbar in <code>ro-rootfs<\/code> Pfaden auftreten. W\u00e4hrend <code>overlayfs<\/code> der richtige (<code>proper<\/code>) Typ eines Dateisystems ist, ist das bind-Mount im <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/tree\/Documentation\/filesystems\/sharedsubtree.txt\">VFS-Namespace implementiert.<\/a><\/noindex>.<\/p>\n<p>Basierend auf der Beschreibung von Overlay- und Bind-Mounting ist es nicht \u00fcberraschend, dass <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/os\/docs\/latest\/kernel-modules.html\">Linux-Container<\/a><\/noindex> sie aktiv verwenden. Lassen Sie uns beobachten, was passiert, wenn wir <noindex><a rel=\"nofollow\" href=\"https:\/\/www.freedesktop.org\/software\/systemd\/man\/systemd-nspawn.html\">systemd-nspawn<\/a><\/noindex> um einen Container zu starten, wobei wir das Tool <code>mountsnoop<\/code> ab <code>bcc<\/code>.<\/p>\n<p>Aufruf <code>system-nspawn<\/code> startet den Container w\u00e4hrend des Betriebs <code>mountsnoop.py<\/code>.<\/p>\n<p>Schauen wir uns an, was passiert ist:<\/p>\n<p>Start <code>mountsnoop<\/code> W\u00e4hrend des \"Ladens\" des Containers zeigt es, dass die Laufzeitumgebung des Containers stark vom Bind-Mount abh\u00e4ngig ist (nur der Anfang einer umfangreichen Ausgabe wird angezeigt).<\/p>\n<p>Hier <code>systemd-nspawn<\/code> stellt ausgew\u00e4hlte Dateien aus <code>procfs<\/code> und <code>sysfs<\/code> dem Host im Container als Pfade in dessen <code>rootfs<\/code>. Neben <code>MS_BIND<\/code> Flags, die eine bindende Montage festlegen, sowie einige andere Flags im montierten System definieren die Beziehung zwischen \u00c4nderungen im Namespace des Hosts und des Containers. Beispielsweise kann eine bindende Montage \u00c4nderungen entweder in den Container durchlassen oder sie je nach Aufruf verbergen. <code>\/proc<\/code> und <code>\/sys<\/code> Im Container k\u00f6nnen \u00c4nderungen entweder durchgelassen oder verborgen werden, abh\u00e4ngig von dem Aufruf. <\/p>\n<p><b>Fazit<\/b><\/p>\n<p>Das Verst\u00e4ndnis der internen Funktionsweise von Linux kann wie eine un\u00fcberwindbare Aufgabe erscheinen, da der Kernel selbst eine riesige Menge an Code enth\u00e4lt, ganz zu schweigen von den Anwendungen im Benutzerspeicher und den Systemaufruf-Interfaces in C-Bibliotheken wie <code>glibc.<\/code>Eine M\u00f6glichkeit, Fortschritte zu erzielen, besteht darin, den Quellcode eines bestimmten Kernelsubsystems mit dem Fokus auf das Verst\u00e4ndnis der Systemaufrufe und der Header, die an den Benutzerspeicher gerichtet sind, sowie grundlegender interner Schnittstellen des Kernels zu lesen, zum Beispiel die Tabelle. <code>file_operations<\/code>Dateioperationen folgen dem Prinzip \u201eAlles ist eine Datei\u201c, daher ist der Umgang mit ihnen besonders angenehm. Die Quellcodes des Kernels in C befinden sich im obersten Verzeichnis. <code>fs\/<\/code> stellen eine Implementierung von virtuellen Dateisystemen dar, die eine Schicht bereitstellen, die eine breite und relativ einfache Kompatibilit\u00e4t mit popul\u00e4ren Dateisystemen und Speicherger\u00e4ten gew\u00e4hrleistet. Das Einbinden durch Binding und Overlay \u00fcber die Namensr\u00e4ume von Linux ist die Magie von VFS, die die Erstellung von Containern und schreibgesch\u00fctzten Root-Dateisystemen erm\u00f6glicht. In Kombination mit der Analyse des Quellcodes, dem eBPF-Kernel-Tool und seiner Schnittstelle. <code>bcc<\/code><br \/>\n macht die Untersuchung des Kernels einfacher als je zuvor.<\/p>\n<p>Freunde, teilen Sie uns mit, ob dieser Artikel f\u00fcr Sie hilfreich war. Vielleicht haben Sie Kommentare oder Anmerkungen? Und diejenigen, die am Kurs \u201eLinux-Administrator\u201c interessiert sind, laden wir ein zu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/u5Jw\/\">einem Tag der offenen T\u00fcr<\/a><\/noindex>, der am 18. April stattfindet.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/446614\/\">Erster Teil.<\/a><\/noindex><br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/447748\/\">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, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\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?\u00bb \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \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 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043a\u043e\u0440\u043e. \u041a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 VFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 eBPF \u0438 bcc \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23299,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31333","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\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?\u00bb \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \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 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043a\u043e\u0440\u043e. \u041a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 VFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 eBPF \u0438 bcc \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439\" \/>\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\/de\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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 2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\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?\u00bb \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \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 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043a\u043e\u0440\u043e. \u041a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 VFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 eBPF \u0438 bcc \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2\" \/>\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:40:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:40:44+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\udd47Virtuelle Dateisysteme in Linux: Warum sie wichtig sind und wie sie funktionieren? Teil 2 | ProHoster","description":"Hallo zusammen, wir teilen mit euch den zweiten Teil unseres Beitrags \"Virtuelle Dateisysteme in Linux: Warum sie wichtig sind und wie sie funktionieren?\" Den ersten Teil k\u00f6nnt ihr hier lesen. Wir erinnern daran, dass diese Serie anl\u00e4sslich des Starts eines neuen Kurses \"Linux-Administrator\" ver\u00f6ffentlicht wird, der schon bald beginnt. Wie man VFS mit den Tools eBPF und bcc \u00fcberwacht. Am einfachsten...","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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 2 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\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?\u00bb \u041f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0443\u0442. \u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \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 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u043a\u043e\u0440\u043e. \u041a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 VFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 eBPF \u0438 bcc \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/virtualnye-fajlovye-sistemy-v-linux-zachem-oni-nuzhny-i-kak-oni-rabotayut-chast-2","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:40:44+00:00","article:modified_time":"2019-10-31T18:40:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31333","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 05:41:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:18:40","updated":"2026-01-21 05:41:23"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/31333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=31333"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/31333\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/23299"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=31333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=31333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=31333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}