web-dev-qa-db-ja.com

Linuxでスワップされるファイルシステム

Linuxでは、パーティションにext3やreiserfsなどを選択できます。スワップパーティションの場合は、「スワップ」を選択するだけです。これは実際にはどのファイルシステムですか? ext3パーティションを作成してスワップパーティションにすることはできますか?どう違うの?

14
tony_sid

スワップは実際のファイルシステムではありません。これは、特別な構造を持たないrawアドレス可能メモリであるディスクの予約済み部分です。

mkswapは、いくつかの追加情報を含むスワップ領域のヘッダーを作成します。 util-linux-ngパッケージのswapheader.hから:

struct swap_header_v1 {
    char         bootbits[1024];    /* Space for disklabel etc. */
    unsigned int version;
    unsigned int last_page;
    unsigned int nr_badpages;
    unsigned int padding[125];
    unsigned int badpages[1];
};

ヘッダーバージョン1は現在使用されているバージョンです。それはスワップの生の構造の背後にあるすべての魔法についてです。

26
matthias krull

スワップパーティションにはファイルとディレクトリがないため、ファイルシステムは必要ないと思います。スワップパーティションは仮想RAM=の場所です。

8

Linuxには、スワップパーティションとスワップファイルという2つの形式のスワップスペースがあります。 swapパーティションは、スワッピング専用に使用されるハードディスクの独立したセクションです。他のファイルをそこに置くことはできません。スワップファイルは、システムファイルとデータファイルの間に存在するファイルシステム内の特別なファイルです。

スワッピングは2つの重要な理由で必要です。まず、システムが物理的に利用可能なメモリよりも多くのメモリを必要とする場合、カーネルは使用されていないページをスワップアウトし、メモリをすぐに必要とする現在のアプリケーション(プロセス)にメモリを割り当てます。第2に、起動フェーズ中にアプリケーションによって使用されるかなりの数のページは、初期化にのみ使用され、その後は再び使用されることはありません。システムはこれらのページをスワップアウトして、他のアプリケーションまたはディスクキャッシュ用にメモリを解放できます。

4
Am1rr3zA