Sono di fronte a un problema abbastanza difficile. Sto cercando di ottenere 2 aree di memoria virtuale che puntano alla stessa memoria fisica. Il punto è di avere diversi parametri di protezione della pagina su diverse aree di memoria.Come mappare due indirizzi virtuali sulla stessa memoria fisica su linux?
Su questo forum, l'utente sembra avere una soluzione, ma sembra un po hacky ed è abbastanza chiaro che qualcosa di meglio si può fare prestazioni-saggio: http://www.linuxforums.org/forum/programming-scripting/19491-map-two-virtual-memory-addres-same-physical-page.html
Come sto affrontando lo stesso problema, Voglio dare un colpo qui per sapere se qualcuno ha un'idea migliore. Non abbiate paura di menzionare i dettagli sporchi dietro il cofano, questo è ciò di cui tratta questa domanda.
Grazie da anticipo.
Questo è ancora peggio. Se MAP_SHARED è specificato, sarà richiesto IO e se MAP_PRIVATE è impostato, la copia su write renderà il trucco inoperante. La soluzione ha lo stesso inconveniente della soluzione proposta nel thread: questa condivisione di memoria attraverso processo in modo incontrollato. – deadalnix
@deadalnix: aggiunta una nota su System V SHM. Ci sono, AFAIK, nessun altro modo per farlo nello spazio utente. –
@larsmars> yes Le chiamate System V sono ciò che viene suggerito nel collegamento. Funziona, ma la memoria potrebbe essere agganciata abbastanza facilmente da un altro processo, che è problematico per la sicurezza. – deadalnix