Sind Dateisystemoperationen eine Funktion des Kernels?

Sind Dateisystemoperationen eine Funktion des Kernels?

Ich nehme an, dass die Frage betriebssystemspezifisch ist, daher gehe ich von den folgenden Szenarien aus:

  • Windows (NTFS)
  • OSX (HFS)
  • Linux (ext2,ext3,ext4)

Jedes Betriebssystem hat sein Standarddateisystem, auf dem es läuft (bei OSX gibt es, glaube ich, nur diese eine Auswahlmöglichkeit). Mir sind einige Dienstprogramme aufgefallen, mit denen Betriebssysteme verschiedene Dateisysteme lesen können (was offensichtlichNICHTTeil des Kernels), was mich zum Nachdenken brachte: Sind Dateisystemoperationen eine Funktion eines Treibers (d. h. möglicherweise modular) oder sind sie wirklich ein Teil des Kernels?

Antwort1

Wenn Sie unter Linux den Kernel selbst kompilieren, haben Sie die Möglichkeit, die Unterstützung für jedes verfügbare Dateisystem (z. B. ext2, ext3, ext4, Reiserfs oder JFS) einzeln als Module oder innerhalb des Kernels zu kompilieren. Ich habe nicht ausprobiert, ob es funktioniert, wenn es als Module kompiliert wird, aber ich nehme an, dass es für das Dateisystem der Bootpartition sicherlich nicht funktioniert, für die anderen aber vielleicht.

Keine Ahnung für Windows oder OSX.

Antwort2

Unter Windows können sowohl dieFETTUndNTFSDateisysteme werden im Kernel als Gerätetreiber implementiert, die von und geladen werden fastfat.sysund ntfs.syssich beide in befinden \Windows\System32\drivers.

Implementierung des FAT-Dateisystems im Windows-KernelImplementierung des NTFS-Dateisystems im Windows-Kernel

Antwort3

Für Linux und OSX (bei Windows bin ich mir nicht sicher) können Sie einen Blick aufDateisystem im UserspaceUndMacFuse. Dadurch können FS-Implementierungen nicht im Kernel, sondern als Userspace-Treiber geschrieben werden – was natürlich viel weniger gefährlich ist.

verwandte Informationen