Linusが自伝で話した「ページからディスクへ」機能は、本質的に今日私たちが使用しているスワッピングの概念ですか?

Linusが自伝で話した「ページからディスクへ」機能は、本質的に今日私たちが使用しているスワッピングの概念ですか?

彼の自伝では楽しく、Linusは、LinuxをMinixおよび当時の他のUNIXレプリカの深刻な競争相手にするための決定的な「ページ-ディスク」機能について言及しました。

去る12月、ドイツにRAMが2MBしかない一人の男がいたが、彼がカーネルをコンパイルしようとしたときにGCCを実行することができませんでした。当時、GCCには1MB以上が必要だったからです。彼は私に多くのメモリを必要としない小さなコンパイラを使ってLinuxをコンパイルできるかどうか尋ねました。それで、私はこの特定の機能が必要なくても彼のために作ることにしました。これはページツーディスクと呼ばれます。つまり、RAMが2mgしかない場合でも、ディスクをより多くのメモリとして使用するように見えることがあります。 1991年のクリスマス頃だった。

Page-to-diskはMinixが一度もやったことがないので、かなり大きなことです。 1992年1月の最初の週にリリースされたバージョン0.12に含まれていました。すぐに人々はLinuxをMinixだけでなく、Mark Williamsの会社によって開発された小規模なUnixレプリカであるCoherentと比較し始めました。最初からディスクにページを追加することは、Linuxを競合他社と区別しました。
それからLinuxが始まりました。突然、人々はMinixからLinuxに切り替えています。

彼は本質的にswappingこれについて話していますか? Linuxの歴史的理解を持っている人はそれを知ることができます。

答え1

はい、有効な交換です。引用する0.12 リリースノート:

仮想メモリ。

「mkfs」プログラムに加えて、ルートディスクに「mkswap」プログラムがあります。構文は同じです: "mkswap -c /dev/hdX nnn", 繰り返しますが、これはパーティションを上書きしますので注意してください。その後、ブートイメージのオフセット506の単語を目的のデバイスに変更して、スワッピングを有効にできます。ルートファイルシステムを設定するのと同じ手順を使用します(もちろん、508オフセットを506に変更)。

ノート!これは2Mマシンを搭載したRobert Blumによってテストされており、あまりにも多くのメモリがなくてもgccを実行できます。ところで、beta-gcc-2.0がディスクスペースをつかんで使用を中止するようになったのですが、まだ動作しているのか気になります。クリスマスのテスト以来、基本的なプログラムでさえスワップパーティションをまったく作成できませんでした。 。したがって、新しい変更がVMに悪影響をもたらす可能性がありますが、そうではありません。

0.12では、ページングは​​デバイスへの交換だけでなく、オンデマンドロード(使用時のみバイナリからページをロード)、共有(プロセス間の共通ページ共有)など、さまざまな機能に使用されます。

答え2

うん、それはコンセプトです。ページングまたは交換。 (以前は、これらの用語はわずかに異なる意味を持っていましたが、21世紀にはUnixではなく特定のオペレーティングシステムの文脈を除いて同義語です。)

明らかに、交換は革新的な機能ではありません。ほとんどの「深刻な」Unixシステムには交換機能があり、この機能はUnixよりも古いです。スワップの目的はLinuxを「深刻な」Unixに変えることですが、MINIXは教育目的です。

Exchangeは、今日でもまだ同じ概念です。保存するページとタイミングを決定する経験的な方法はより複雑になりましたが、基本原則はそのまま残ります。

答え3

スワッピングは、仮想メモリ、さらにはメモリ保護よりも先に出てきた概念です。つまり、1つのプロセスをディスクに配置して、別のプロセスのためのスペースを確保するだけです。これに関して、元のUnixには2つの特徴がありました。 「共有テキスト」プログラムは、プログラムコードをメモリに一度だけ保持し、データ部分のみを交換しました。これには、メモリイメージを交換せずにコピー(サブプロセス)を実行し続けながらプロセスをディスクに置き換える「フォーク」システムコールがあります。

スワッピングとは異なり、ディスクにページングすると、物理メモリに収まらないプロセスを実行できます。保護可能なすべてのメモリ、仮想アドレスを物理アドレスにマッピングするメモリ、マッピングされていない仮想アドレスから合理的に選択可能な物理アドレスにマッピングを変更し、欠落によって必要な中断されたコマンドを復元するための再起動可能ページエラーメカニズム必要です。マッピング。

UNIXは、MMU(スワップを含む)なしで68000プロセッサで実行でき、MMUを最大限に活用しました(メモリ保護が可能な場合)。ページ障害後の回復。

80386は多くの点で過酷で古いデザインです。ただし、組み込みMMUとページエラー修正機能により、スワッピングだけでなくページディスク操作もサポートするUNIXシリーズシステムにすぐに適しています。

現代のシステムの神々(仮想機能を備えた本格的なMMUとCPU設計がかなりのチップスペースを占める)に対するシリコンの膨大な犠牲が主に趣味の生活者によって行われたことは歴史的な皮肉です。そして「XenixとOS / 2は結局役に立たなくなりました。

「ページをインポートせずに実行するようにスケジュールしない」を「スワップ」と同一視することはできますが、実際には「スワップ」の元の意味のように、完全でない限り、専務という提案ではありません。

それ以来、数十年が経過すると、要求ページングは​​通常のスワッピングよりも有用でスケーラビリティが高く、必要なCPUとMMU機能が普遍的になり、通常のスワッピングに取って代わられたため、これらの違いはなくなりました。状況。見て感じます。

関連情報