私はかなりトリッキーな問題に直面しています。私は同じ物理メモリを指し示す2つの仮想メモリ領域を取得しようとしています。ポイントは、異なるメモリ領域に異なるページ保護パラメータを持つことです。このフォーラムでは2つの仮想アドレスをlinuxの同じ物理メモリにマップするにはどうすればよいですか?
は、ユーザーが解決策を持っているようだが、それはちょっとハックようだし、それがより良い何かを行うことができることはかなり明らかだ性能面: 私は同じ問題に直面していたようhttp://www.linuxforums.org/forum/programming-scripting/19491-map-two-virtual-memory-addres-same-physical-page.html
、誰かがより良いアイデアを持っているかどうかを知るためにここにショットをしたいと思います。フードの後ろの汚れた部分について言及するのを恐れてはいけません。これはこの質問についてです。
ありがとうございます。
を参照して、新しいカーネルであることができます。 MAP_SHAREDが指定されている場合はIOが必要で、MAP_PRIVATEが設定されている場合はcopy on writeがトリックを不動作にします。解決策は、スレッド内で提案されている解決策と同じ欠点を持っています。この共有メモリはプロセス全体を制御しない方法で共有します。 – deadalnix
@deadalnix:System V SHMに関する注釈を追加しました。 AFAIKは、ユーザー空間でこれを行う他の方法はありません。 –
@larsmars> yes System Vコールはリンクに示唆されているものです。これは動作していますが、メモリはセキュリティ上問題がある別のプロセスによってかなり簡単にフックされる可能性があります。 – deadalnix