Me enfrenta a un problema bastante complicado. Estoy tratando de obtener 2 áreas de memoria virtual apuntando a la misma memoria física. El punto es tener diferentes parámetros de protección de página en diferentes áreas de memoria.¿Cómo asignar dos direcciones virtuales en la misma memoria física en Linux?
En este foro, el usuario parece tener una solución, pero parece un poco hacky y es bastante claro que algo mejor se puede hacer en cuanto al rendimiento: http://www.linuxforums.org/forum/programming-scripting/19491-map-two-virtual-memory-addres-same-physical-page.html
Como estoy enfrentando el mismo problema, Quiero dar una oportunidad aquí para saber si alguien tiene una mejor idea. No tengas miedo de mencionar los detalles sucios detrás del capó, de eso se trata esta pregunta.
Gracias por adelantado.
Esto es aún peor. Si se especifica MAP_SHARED, se requerirá IO y si se establece MAP_PRIVATE, la copia en escritura hará que el truco se vuelva inoperante. La solución tiene el mismo inconveniente que la solución propuesta en el hilo: este proceso de memoria compartida a través de una forma no controlada. – deadalnix
@deadalnix: se agregó una nota sobre System V SHM. Hay, AFAIK, otras formas de hacerlo en el espacio de usuario. –
@larsmars> sí Las llamadas System V son lo que se sugiere en el enlace. Esto está funcionando, pero la memoria podría ser enganchada con bastante facilidad por otro proceso, lo cual es problemático para la seguridad. – deadalnix