Hat Swap Space ein Dateisystem?

26

Für die Arbeit mit Speichergeräten benötigen wir ein Dateisystem. Was ist mit dem Auslagerungsspeicher?

Wenn es kein Dateisystem gibt, wie arbeitet das Betriebssystem damit? Wie werden die Daten (aus dem RAM) auf die Festplatte geschrieben und wie wird erneut auf sie zugegriffen?

Sinoosh
quelle
6
Swap benötigt kein Dateisystem. Es werden keine Dateien gespeichert.
Pilot6
3
Es speichert RAM-Seiten.
Pilot6
2
Könnten Sie bitte genau erklären, was Sie versuchen zu tun? Wollen Sie damit sagen, dass Sie nur einen Ort zum temporären Speichern von Daten benötigen?
Jake
6
"Ich möchte wissen, wie es möglich ist, in einen Speicherplatz ohne Dateisystem zu schreiben?" - Sie schreiben einfach auf den Speicherplatz. Denken Sie an Folgendes: Wenn ein Dateisystem zum Schreiben in einen Speicherbereich erforderlich ist, können Dateisysteme nicht vorhanden sein, da Dateisysteme in der Lage sein müssen, ohne ein Dateisystem in einen Speicher zu schreiben. "Kann ich Ihrer Antwort zufolge sagen, dass RAM ein kleines Dateisystem hat und Auslagerungsdatei dieses Dateisystem für die Arbeit mit Seiten verwendet?" - Nein. Ein Dateisystem dient zum Speichern von Dateien. Swap Space speichert keine Dateien.
Jörg W Mittag
4
Es ist durchaus üblich, eine einzelne Datei (ala tar und dd) in unformatierten Speicher zu schreiben, und noch häufiger, verschachtelte Dateisysteme (virtuelle Laufwerke, .iso, Squashfs) zu verwenden. Spiele auf Diskette schreiben manchmal Highscores an einen absoluten (festen) Ort, und einige Anwendungen basieren auf Zylindern, Köpfen und Sektoren. Swap-Partitionen sind immer noch Partitionen, aber nein, es gibt kein Dateisystem oder "Mapping" außer Offset und Run?
McKenzm

Antworten:

28

Swap hat technisch gesehen kein bestimmtes Dateisystem. Der gesamte Zweck des Dateisystems besteht darin, Daten auf bestimmte Weise zu strukturieren. Insbesondere die Swap-Partition hat keine Struktur, aber einen bestimmten Header, der vom mkswapProgramm erstellt wird . Insbesondere dies (entnommen aus kernel.org ):

 25 union swap_header {
 26     struct 
 27     {
 28         char reserved[PAGE_SIZE - 10];
 29         char magic[10];
 30     } magic;
 31     struct 
 32     {
 33         char     bootbits[1024];
 34         unsigned int version;
 35         unsigned int last_page;
 36         unsigned int nr_badpages;
 37         unsigned int padding[125];
 38         unsigned int badpages[1];
 39     } info;
 40 };

Jeder Partition ist ein bestimmter Code zugeordnet, und zwar gemäß TLDP :

code for ext2 ist 0x83 und linux swap ist 0x82

Wenn es sich um eine Auslagerungsdatei handelt, ist das eine etwas andere Geschichte. Der Kernel muss die Tatsache berücksichtigen, dass das Dateisystem seine eigene Art der Datenstrukturierung hat. Über denselben kernel.org-Link:

Denken Sie daran, dass Dateisysteme möglicherweise eine eigene Methode zum Speichern von Dateien und Datenträgern haben und dies nicht so einfach ist wie die Swap-Partition, auf der Informationen direkt auf den Datenträger geschrieben werden können. Wenn es sich bei dem Sicherungsspeicher um eine Partition handelt, ist für nur einen Block mit Seitengröße eine E / A-Operation erforderlich, und da kein Dateisystem beteiligt ist, ist bmap () nicht erforderlich.

Zusammenfassend lässt sich sagen, dass Sie Swap Space als Dateisystem eines eigenen Typs bezeichnen könnten, dies ist jedoch mit Dateisystemen wie NTFS oder ext4 nicht ganz vergleichbar

Sie haben auch gefragt

Ich möchte wissen, wie es möglich ist, in einen Speicherplatz ohne Dateisystem zu schreiben

Genau genommen muss der Arbeitsspeicher nicht strukturiert sein. Unter Unix-ähnlichen Betriebssystemen können Teile des Arbeitsspeichers jedoch als tmpfs strukturiert werden . Es gibt auch Ramfs und Initramfs, die während des Startvorgangs geladen werden. Technisch gesehen sollten die RAM-Daten jedoch nur rohe Einsen und Nullen sein, sodass sie ohnehin nicht strukturiert werden müssen.

Sergiy Kolodyazhnyy
quelle
1
Gut zu wissen, dass es trotz fehlendem Dateisystem eine grundlegende Struktur hat, mit der man erkennen kann, was es ist. Verhindert versehentliches Überschreiben einer anderen Partition.
Spektren
Ich denke, sie meinen hier Speicherplatz "Ich möchte wissen, wie es möglich ist, in einen Speicherplatz ohne Dateisystem zu schreiben" anstatt vielleicht RAM?
Anwar
@ Anwar, ja, aber ich habe es
Sinoosh
Mit tar können mehrere Dateien als RAW-Stream auf ein nicht formatiertes Gerät wie ein Flash-Laufwerk geschrieben werden. Andernfalls kann eine einzelne Datei geschrieben (aber nicht benannt) werden, und Sie müssen den Vorgang umkehren, um sie zurückzuschreiben. Dies geschieht normalerweise mit ISOs auf optischen Medien, aber das Ergebnis ist ein direktes Dateisystem.
McKenzm
1
Einverstanden. Im Wesentlichen kann es dann als ein kartographierter Bereich beschrieben werden. Es ist keine Erweiterung des realen Speichers, sondern ein Arbeitsbereich zum Speichern von Stücken, die bei Bedarf wieder eingeblendet werden können.
McKenzm
14

Swap Space wird vom Kernel zum temporären Speichern von Seiten des Systemspeichers (RAM) verwendet, wenn dieser voll wird. Der Kernel "merkt" sich anhand seiner eigenen internen Tabellen genau, wo auf der Auslagerungsplatte die Seite abgelegt wurde. Aus diesem Grund enthalten Auslagerungsdatenträger kein ordnungsgemäßes Dateisystem und sind in der Regel nur leere Partitionen auf dem Datenträger.

Was Sie interessieren könnte, ist eine RAM-Disk, die ein kleines Dateisystem ist, das im Speicher des Systems gespeichert ist. Wenn mehr Speicher benötigt wird, schiebt der Kernel ihn (und andere Inhalte) in den Swap-Bereich. Anweisungen zum Einrichten finden Sie hier .

Jake
quelle
13

Der Auslagerungsspeicher ist in Blöcke mit derselben Größe wie die Speicherseiten (normalerweise 4 KB) unterteilt, und eine Aufzeichnung der Zuordnung dieser Seiten zum Anwendungsspeicher bildet eine Erweiterung des virtuellen Speichersubsystems in der CPU und im Betriebssystem.

Das heißt, es gibt bereits ein Zuordnungssystem zwischen Anwendungsspeicherbereichen und der tatsächlichen physischen Speicheradresse. Einer Anwendung wird ein großer Speicheradressraum zugewiesen, von dem sie so viel oder so wenig wie möglich verwenden können. Da mehr von diesem Speicheradressraum tatsächlich verwendet wird, wird dieser Anwendung physischer Speicher zugeordnet, um als Speichermedium zu dienen.

Wenn der Speicher auf die Festplatte ausgelagert wird, behält ein verwandtes System die Zuordnung des Speicherplatzes einer Anwendung zum Block auf der Festplatte bei.

Die Zuordnungstabelle selbst wird nicht auf der Festplatte gespeichert, und die auf der Festplatte verbleibenden Daten sind nach einem Neustart unbrauchbar.

thomasrutter
quelle