mmap() で開いた大きな (マルチ GB) ファイルの先頭近くに空白ページを挿入する方法があるかどうか疑問に思っています。最後に 1 つか 2 つのページを追加し、memcpy() を使用してすべてを前に進めることは明らかに可能ですが、これはすべてのページを汚し、最終的にディスクにフラッシュするときに非常に長い時間を必要とします。
ソリューションには、カスタマイズされたファイルシステムとページテーブルの手動操作との間の複雑な調整が必要になると思います.inodeにブロックを追加し、これを反映するためにVMM内のキャッシュされたページを何らかの方法で更新し、ページテーブルを何らかの方法でスウィズルしますマッチ。これは自明ではないように聞こえるので、もっと良い方法があるのではないかと思います。
これは、Linux でのメモリとファイル操作に関するやや深い質問を意図したものですが、他のシステムでこれがどのように行われるかを聞いてうれしいです。コピーをより効率的にする回避策には特に興味はありませんが、再マッピングが必要でディスク IO を回避する手法は良い出発点になるでしょう。