編集:回答が更新/修正されました。
このトピックに関するカーネルのドキュメントには、「Rootfs は ramfs (または、有効になっている場合は tmpfs) の特別なインスタンスです [...]」と書かれていますが、実際には、コードを簡単に見てみるとわかるように (rootfs
mm/shmem.c
には記載されていません ).
これを変更するために、いくつかのパッチ (たとえば、こことここを参照) が Linux カーネル メーリング リスト (lkml) に送信されました。しかし、彼らは受け入れられませんでした。理由の 1 つは、通常、initramfs フェーズ中または組み込みシステムでスワップを有効にしていないことです。
initramfs イメージは rootfs に抽出されます。ユーザースペースの前 (通常は switch_root
/init
から呼び出されます ) 新しいルートに切り替えると、rootfs の内容が削除され、空の ramfs の最小限のメモリ量だけが残ります。したがって、この後は基本的にそのメモリ使用量を無視することができ、スワップ アウトできるかどうかという問題はほとんど意味がありません。