Ja, das ist effektiv Austausch. Zitieren der Versionshinweise für 0.12:
Virtueller Speicher.
Neben dem Programm „mkfs“ befindet sich jetzt ein Programm „mkswap“ auf der Root-Platte. Die Syntax ist identisch:"mkswap -c /dev/hdX nnn", und noch einmal:das überschreibt die Partition, also Vorsicht. Das Auslagern kann dann aktiviert werden, indem das Wort bei Offset 506 im Boot-Image auf das gewünschte Gerät geändert wird. Verwenden Sie das gleiche Programm wie zum Einstellen des Root-Dateisystems (aber ändern Sie natürlich den 508-Offset auf 506).
HINWEIS! Dies wurde von Robert Blum getestet, der einen 2M-Rechner hat, und es erlaubt Ihnen, gcc ohne viel Speicher auszuführen. JEDOCH musste ich aufhören, es zu benutzen, da mein Festplattenspeicher von der Beta-gcc-2.0 aufgezehrt wurde, also würde ich gerne hören, dass es immer noch funktioniert:Ich war seit ungefähr nicht mehr in der Lage, eine Swap-Partition für sogar rudimentäre Tests zu erstellen Weihnachtszeit. Daher könnten die neuen Änderungen möglicherweise einfach auf der VM nach hinten losgegangen sein, aber ich bezweifle es.
In 0.12 wird Paging für eine Reihe von Funktionen verwendet, nicht nur für das Wechseln zu einem Gerät:Bedarfsladen (nur Laden von Seiten aus Binärdateien, wenn sie verwendet werden), Teilen (Teilen gemeinsamer Seiten zwischen Prozessen).
Ja, das ist genau das Konzept, das als Paging oder Swapping bekannt ist. (Vor langer Zeit hatten diese Begriffe etwas andere Bedeutungen, aber im 21. Jahrhundert sind sie synonym, außer vielleicht im Zusammenhang mit einigen Nicht-Unix-Betriebssystemen.)
Um es klarzustellen, Swapping war kein innovatives Feature:Die meisten „ernsthaften“ Unix-Systeme hatten es, und das Feature ist älter als Unix. Durch das Austauschen wurde Linux zu einem „ernsthaften“ Unix, während MINIX für Bildungszwecke gedacht war.
Tauschen ist heute immer noch das gleiche Konzept. Die Heuristiken für die Entscheidung, welche Seiten wann gespeichert werden sollen, sind viel komplexer geworden, aber das Grundprinzip bleibt bestehen.
Swapping ist ein Konzept, das dem virtuellen Speicher und sogar dem Speicherschutz vorausgeht:Es bedeutet lediglich, einen Prozess auf die Festplatte zu legen, um Platz für einen anderen zu schaffen. Das ursprüngliche Unix hatte in dieser Hinsicht zwei Macken:"Shared Text"-Programme, die den Programmcode nur einmal im Speicher behielten und nur den Datenteil auslagerten. Und es hatte den „Fork“-Systemaufruf, der einen Prozess auf die Festplatte auslagerte, während das Speicherabbild nicht ersetzt wurde und stattdessen eine Kopie (das Kind) am Laufen blieb.
Im Gegensatz zum Swapping ermöglicht Page-to-Disk die Ausführung von Prozessen, die nicht in den physischen Speicher passen. Es erfordert den gesamten schützbaren Speicher, die Speicherzuordnung von virtuellen Adressen zu physischen Adressen und einen neu startbaren Seitenfehlermechanismus, der es ermöglicht, die Zuordnung von einer nicht zugeordneten virtuellen Adresse zu einer vernünftigerweise auswählbaren physischen Adresse zu ändern und den Befehl fortzusetzen, der abgebrochen werden musste des fehlenden Mappings.
UNIX konnte auf 68000-Prozessoren (einschließlich Swapping) ohne MMU laufen, und es nutzte eine MMU, falls verfügbar, für den Speicherschutz, aber es brauchte den 68010, um tatsächlich über die Mechanismen zu verfügen, die es ermöglichen, ein Programm nach einem Seitenfehler fortzusetzen.
Der 80386 war in vielerlei Hinsicht ein mieses und veraltetes Design. Aber seine eingebaute MMU und die Fähigkeit zum korrekten Seitenfehler machten es für UNIX-ähnliche Systeme sofort brauchbarer, die nicht nur in der Lage waren, Seite zu Festplatte auszutauschen, sondern Seite-zu-Platte.
Es ist eine Art historische Ironie, dass dieses große Opfer von Silizium (eine vollwertige MMU und ein virtualfähiges CPU-Design nahmen ziemlich viel Platz auf dem Chip ein) für die Götter moderner Systeme hauptsächlich von einem Bastler aufgegriffen wurde, und die " große Fische" wie Xenix und OS/2 blieben schließlich auf der Strecke.
Während Sie "nichts eingespeichert und nicht zur Ausführung geplant" genauso nennen können wie "ausgelagert", ist es nicht wirklich eine Alles-oder-Nichts-Aussage, wie die ursprüngliche Bedeutung von "ausgelagert" war.
Der Unterschied ging in den Jahrzehnten verloren, seitdem Demand-Paging so viel nützlicher und besser skaliert war als gewöhnliches Swapping, dass es ersetzt wurde, als die erforderlichen CPU- und MMU-Funktionen alltäglich wurden, aber die Verlangsamung und das Thrashing, die mit beiden verbunden waren, sorgten für ein ähnliches Look-and-Feel.