バイナリを実行せずにメモリにロードすることは可能ですか?

バイナリを実行せずにメモリにロードすることは可能ですか?

Linuxを使用するたびにGoogle Chromeを使用するのと同じように(おそらく)Linuxを開くと自動的に起動したくありません。手動で開くことはできますが、HDDがあるので、初めてロードが面倒なので、実際に実行せずにロードしてキャッシュするだけで、HDDからRAMにChromeをロードする方法がないかと思います。 RAMに。

答え1

私は使うvmtouch

vmtouchコマンドラインで提供された各ファイルは開き、仮想メモリにマップされますmmap(2)。マッピングが読み取り専用で開きます。すべてのディレクトリを再帰的にクロールし、その中のすべてのファイルに対して同じことを行います。

[… ]

-t
仮想メモリページをタッチします。ファイルの各ページから1バイトを読みます。ページがメモリにない場合、ページの不在が作成され、ページがディスクからファイルシステムのメモリキャッシュに読み込まれます。

注:各ページはメモリに配置されますが、vmtouchコマンドが完了するとページがメモリから削除されることがあります。

上記の説明で言及されている問題を克服するために、私はvmtouch -l(rootとして)以下を使用します。

-l
ページを物理メモリにロックします。このオプションは、すべてのメモリマップを-t呼び出しmlock(2)、完了時にディスクリプタを閉じないことを除いて、これと同じように機能します。インポートが完了すると、成功すると無期限にブロックされvmtouchます。ファイルはvmtouchプロセスが終了するまで物理メモリにロックされます。

私のユースケースは、比較的遅いネットワーク接続を介して比較的遅いNFSサーバー上の比較的大きなメディアファイルを先制的にキャッシュすることです。それは非常にうまく動作します。それはあなたに役立ちます。ロードするファイルを識別するだけです。この質問は役に立ちます。実行時にどの動的ライブラリ実行可能ファイルがロードされているかを確認するには?

関連情報