保護フラグはプロセス間の共有に影響しますか? PROT_READ|PROT_WRITE で保護された mmaped メモリ領域がある場合、書き込みを行っていない限り、完全に共有されますか?
int prot = PROT_READ|PROT_EXEC;
image = mmap(NULL, filesize, prot, MAP_PRIVATE, fildes, 0);
対:
int prot = PROT_READ|PROT_WRITE|PROT_EXEC;
image = mmap(...)
必要に応じて小さな部分を保護するよりも簡単なので、マップした後にメモリ領域の小さな部分に小さな変更を加えてから、すべてを再保護したいと思います。
問題は、プロセスごとにコピーされたファイル全体を強制するのか、それともプロセスごとに変更した部分だけを強制するのかということです。