Ist das Dateisystem Teil des Betriebssystems?

9

Ich habe mich gefragt, ob ein Dateisystem auf einem Speichergerät Teil des Betriebssystems ist.

Ich glaube nicht. Stattdessen ist es Teil des Speichergeräts und existiert außerhalb eines Betriebssystems, obwohl es von einem Betriebssystem erstellt wurde. Ist mein Verständnis richtig?

Allerdings in Wikipedia :

Die meisten Betriebssysteme bieten ein Dateisystem, da ein Dateisystem ein wesentlicher Bestandteil jedes modernen Betriebssystems ist.

Ist es für LVM Teil des Betriebssystems? Wenn ja, ist das auf LVM basierende virtuelle Dateisystem Teil des Betriebssystems?

Tim
quelle
Da sich das Betriebssystem selbst im Dateisystem befindet, würde ich sagen, dass es ein integraler Bestandteil des Betriebssystems ist.
Moab
Ist das Betriebssystem nach Ihrem Grund nicht besser für das Dateisystem geeignet als umgekehrt?
Tim
Eigentlich denke ich, dass ein Dateisystem eine Anforderung des Speichermediums ist, da sich ein Betriebssystem im Speicher befinden kann, ohne eine Festplatte oder ein anderes Speichergerät zu verwenden.
Moab

Antworten:

10

Das Dateisystem selbst, dargestellt durch die physische Reihenfolge der Informationen in einer Speicherdarstellung, ist unabhängig vom Betriebssystem. Das Betriebssystem enthält einen Treiber, mit dem es mit dem Dateisystem arbeiten kann. Einige Dateisysteme verfügen möglicherweise nur über ein Betriebssystem, das mit ihm kommunizieren kann, und in dieses Betriebssystem ist das Dateisystem fest codiert (denken Sie an das ursprüngliche Dateisystem von Novell NetWare). Aber das hindert eine unternehmungslustige Person nicht daran, einen solchen Treiber für ein anderes Betriebssystem zu schreiben, nur weil.

LVM ist kein Dateisystem, sondern ein Volume Manager. Volume-Manager stützen sich wie Dateisysteme auf Daten, die in einer logischen Speicherpräsentation gespeichert sind, um weiter zu definieren, wie auf diesen Speicher für weitere logische Volumes zugegriffen werden soll. Im Fall von LVM können sowohl Linux als auch die BSDs dasselbe On-Storage-Format für ihre jeweiligen LVM-Implementierungen verwenden.

Der Windows-Volume-Manager ist die dynamische Festplatte, und einige unternehmungslustige Personen haben Linux-Treiber für den Zugriff darauf erstellt.

Wenn Sie eine Reihe von Datenträgern nehmen, ein Linux installieren, diese mit LVM einrichten, mehrere ext3Dateisysteme auf den logischen Volumes installieren und dann die Laufwerke auf einem FreeBSD-Computer platzieren, kann dieser FreeBSD-Computer die Datenträger lesen . Wahrscheinlich. Dies liegt daran, dass FreeBSD über Treiber verfügt, die das physische Layout von LVM und ext3 verstehen und den erforderlichen In-OS-Speicher und die für die Interaktion erforderlichen Zugriffsstrukturen implementieren.

Die Treiber, die zur Interpretation des Speicherlayouts erforderlich sind, befinden sich fast immer "im Betriebssystem", das tatsächliche Speicherlayout selbst wird jedoch nicht berücksichtigt.

SysAdmin1138
quelle
4

Ich habe dies auf ServerFault beantwortet . Hier ist noch einmal die Antwort:

Das Problem hier ist das Wort "Dateisystem". In den POSIX / Unix / Linux-Welten bedeutet es verschiedene Dinge.

  1. Das "Dateisystem" ist manchmal das gesamte Dateisystem, /das auf Betriebssystemsoftware verwurzelt ist und vom Betriebssystemkern für Anwendungssoftware bereitgestellt wird. In diesem Sinne wird beispielsweise von POSIX-Betriebssystemen mit einem "einzelnen Dateisystembaum " gesprochen.
  2. Ein "Dateisystem" ist manchmal ein (oder mehrere) Slice (s) eines (oder mehrerer) Direktzugriffsspeichergeräte oder DASD (s) - eine oder mehrere Sammlungen zusammenhängender Plattensektoren, die als ein einzelnes Volume mit einem Format formatiert sind gegebenes Format - wie durch ein Disc-Partitionierungsschema abgegrenzt. Mit dieser Bedeutung wird beispielsweise von "Formatieren meines /usrDateisystems " gesprochen.
  3. Ein "Dateisystem" ist manchmal ein abstrakter, zusammenfügbarer Baum von Dateien und Verzeichnissen, der von einem Dateisystemtreiber (dh der VFS-Schicht) dem Rest des Systems präsentiert wird. In diesem Sinne wird beispielsweise von "Einbinden des Proc-Dateisystems auf /proc" gesprochen.

Die Prosa von Wikipedia bedeutet # 1. Dies ist in der Tat Teil des Betriebssystems, da es sich um ein Betriebssystem handelt und eine betriebssystemspezifische Abstraktion für Anwendungssoftware bereitgestellt wird, die auf dem Betriebssystem ausgeführt wird.

Bedeutung # 2 ist nicht Teil des Betriebssystems. Es handelt sich um eine On-Disc-Datenstruktur, die ein oder mehrere Betriebssysteme verstehen können. Insbesondere die On-Disc-Datenstrukturen für LVM bieten Möglichkeiten, eine oder mehrere DASDs in ein oder mehrere Volumes aufzuteilen. Sie sind per se nicht Teil des Betriebssystems. (In ähnlicher Weise hat "LVM" jedoch mehrere Bedeutungen und kann sowohl die LVM-Treiber und -Dienstprogramme im Betriebssystem als auch die On-Disc-Datenstrukturen bedeuten, die diese Treiber und Dienstprogramme manipulieren. ZB "Ich habe LVM über das ausgeführt Rettungsscheibe. ")

Bedeutung Nr. 3 ist eine betriebssystemspezifische Abstraktion, die von betriebssystemspezifischen Dateisystemtreibern bereitgestellt wird. Die Dateisystem - Treiber sind in der Tat Teil des Betriebssystems, obwohl sie in der Regel verschieden sind und getrennt vom Betriebssystem - Kernel .

JdeBP
quelle
2

Ein Dateisystem wird von einem Betriebssystem erstellt, verwaltet und verwendet. Sie können jedoch zu Recht den Schluss ziehen, dass seine Darstellung unabhängig von einem Betriebssystem existieren kann.

Zian Choy
quelle
Alle Antworten sind lohnenswert, dies ist das wichtigste Mitnehmen.
conner.xyz
2

Es gibt keine formale Definition von "Betriebssystem". Einige pflegten zu pflegen, dass "Betriebssystem" und "Dateiverwaltungs-API" ein und dasselbe waren, wobei das Betriebssystem nichts anderes zu tun hatte, als einen Befehlsanalysator bereitzustellen. (Immerhin ist dies alles, was MS-DOS ursprünglich getan hat.)

Ich habe immer behauptet, dass DOS kein echtes Betriebssystem ist - dass es die Aufgabe eines Betriebssystems ist, die Hardware zu abstrahieren und zu virtualisieren und Hardwareressourcen zu verwalten. DOS hat im Wesentlichen nichts davon getan.

Ob ein Dateisystem Teil des Betriebssystems oder Teil des "Speichergeräts" ist, hängt wiederum davon ab, was Sie unter "Dateisystem" verstehen. Es gibt das physische Layout, wie das Layout auf einer Diskette oder CD, und es gibt das Dateisystem FUNCTION, das davon abhängt, dass eine intelligente Entität (CPU oder Peripherieprozessor) den Unsinn auf der Festplatte aufnimmt und zurückgibt es als eine sinnvolle Folge von Bytes. Das Layout entspricht vermutlich einem Standard, sodass Sie beispielsweise eine CD auf einem Gerät aufnehmen und auf einem anderen lesen / abspielen können. Die Frage ist, ob dieses Layout ein "Dateisystem" ist oder ob sich das "System" in den Geräten befindet, die klug genug sind, um das Layout zu lesen / schreiben.

In den meisten Computerkontexten bezieht sich der Begriff "Dateisystem" auf die APIs, mit denen Sie Dateien lesen / schreiben können, und auf die Kombination von CPU- und Peripheriegeräten, die unter der Kontrolle eines Betriebssystems arbeiten und diese APIs implementieren. Der Begriff bezieht sich normalerweise nicht auf das physische Format des Mediums oder einzelner Medien, unabhängig davon, ob sie entfernbar sind oder nicht.

Daniel R Hicks
quelle
Interessante Punkte.
Maxpm
Sogar unter MS-DOS war das Betriebssystem MSDOS.SYSund die Befehlszeilen-Shell COMMAND.COM.
user1686
1

Die jeweilige Implementierung ist Teil des Betriebssystems. Die abstrakte Idee, Spezifikationen und gespeicherten Daten sind nicht.

user541686
quelle
1

Festplatten und festplattenähnliche Geräte sind "dumm". Wenn Sie nach einem LBA fragen, erhalten Sie die darin enthaltenen 512, 2048 oder 4096 Bytes zurück. umgekehrt zum Schreiben.

Auf einer Dateisystemschicht können Sie "Ich möchte c: \ Benutzer \ public \ Dokumente \ Whatever.doc" sagen und Streaming-Vorgänge ausführen (Öffnen, Lesen, Schreiben, Suchen, Schließen) - dies wird von namenadressierbaren Orten in eine Reihe übersetzt von Anforderungen zum Lesen / Schreiben von LBAs.

Die Dateisystemschicht hat also zwei Seiten, die eine Seite, die mit dem festplattenähnlichen (oder blockartigen) Gerät kommuniziert, und die andere Seite, die mit dem Betriebssystem kommuniziert. Hier kommt die Spezifität des Betriebssystems ins Spiel. Normalerweise ist die Blockgeräteseite des Dateisystems ein Gerätetreiber, und die Betriebssystemseite ist eine API, die von Anwendungen verwendet werden kann. Dies sind jedoch nur Schnittstellen, die den zugrunde liegenden Betrieb der Dateisystemschicht nicht wirklich beeinflussen müssen.

Alle Dateisysteme bewirken, dass zusätzliche Daten außerhalb von Dateidaten geschrieben und gelesen werden, um Informationen über Dateien zu verfolgen, dh um Berechtigungen, Attribute usw. aufzuzeichnen.

Beim Booten gibt es ein Henne-Ei-Problem - da Betriebssystemdateien im Dateisystem gespeichert sind, aber wie werden sie geladen, wenn die Dateisystemschicht noch nicht aktiv ist? Linux löst dieses Problem entweder mit einer anfänglichen RAM-Festplatte oder indem es den Dateisystemcode als Teil des Kernels einbaut. Windows löst dieses Problem, indem es dem Windows-Bootloader die Möglichkeit gibt, FAT- und NTFS-Partitionen zu lesen. Bootloader können dumm sein, wie die meisten klassischen BIOS-Bootloader, die nur LBA 0 laden und ausführen und erwarten, dass der Code danach aufgenommen wird, oder ziemlich intelligent und mit eigenen kleinen Dateisystemschichten wie UEFI, U-Boot usw.

LVM ist kein Dateisystem. Es nimmt ein oder mehrere Blockgeräte und abstrahiert es in ein anderes "virtuelles" Blockgerät (in /dev/mapper- alles in /dev/mapperist ein virtuelles Blockgerät). Sie platzieren ein Dateisystem "über" einem LVM, genauso wie Sie ein Dateisystem "über" einer Partition platzieren würden. LVM ist eine weitere Schicht zwischen einem oder mehreren Gerätetreibern und dem Dateisystem, die Lese- und Schreibvorgänge in LBAs auf dem virtuellen Blockgerät in ein oder mehrere andere Blockgeräte konvertiert. Ja, ein LVM kann ein virtuelles Blockgerät sein, und Sie können eine Kaskade davon haben.

LawrenceC
quelle