¿Puede alguien indicarme alguna documentación sobre los mapas de memoria virtual utilizados para Linux y Windows. Con eso me refiero a qué direcciones virtuales, código, escritura de datos estáticos, la pila y el montón (junto con otros bits del núcleo) normalmente se colocarán en un proceso típico?Mapa de memoria de proceso (Linux Windows)
Respuesta
Probablemente la mejor manera de obtener el mapa de memoria de proceso en Linux es mirar el archivo/proc // maps. Se puede ver claramente que para cada objeto ejecutable u objeto compartido hay secciones separadas para ejecutable, datos estáticos y datos estáticos editables. Cada una de estas secciones existe en su propia página de memoria que permite que Linux comparta secciones entre ejecutables e incluso implemente características como copy-on-write.
Además de esto, hay una sección dedicada a la pila y otra dedicada al montón. También puede haber algunas secciones anónimas también.
Desde la llegada de ASLR, se trata principalmente de direcciones virtuales aleatorias.
La entrada de Wikipedia en Address Space Layout Randomisation (ALSR) describe cómo la asignación aleatoria del espacio de direcciones protege contra varios ataques, y cómo la importancia difiere entre los datos y el código.
Describe tanto el nivel débil de aleatorización predeterminado de Linux como un parche que puede usar para reforzarlo.
También describe qué versiones de Windows lo ofrecen y cómo solo se aplica a algunos ejecutables de código &.
Es bastante bajo en detalles. Me gustan los diagramas con direcciones si es posible. – doron
Si está buscando un mapa de memoria como los viejos tiempos de, por ejemplo, un Commodore 64 (como este http://sta.c64.org/cbm64mem.html), creo que va a estar fuera De suerte. No creo que funcione así nunca más. – Oddthinking
- 1. diseño de memoria de proceso de Windows
- 2. ¿Cómo se ve un mapa de memoria de un proceso de Windows?
- 3. Diferencia de uso de memoria Java entre Linux y Windows
- 4. Limitar la memoria de proceso/uso de CPU en Linux
- 5. Límite de memoria de proceso del proceso de 64 bits
- 6. Recuperando el mapa de memoria de su propio proceso de OS X 10.5/10.6
- 7. Detección de problema de fragmentación de memoria en un proceso
- 8. ¿Ejecuta un proceso desde la memoria dentro de otro proceso?
- 9. Comprobar si el proceso se ejecuta en Windows/Linux
- 10. Proceso de fondo en Linux
- 11. Cómo cambiar el mapa de la memoria U-Boot
- 12. Memoria de proceso Vs Heap - JVM
- 13. Estadísticas del proceso de medición en Linux
- 14. hibernación de un único proceso en Windows
- 15. Recording Footprint de memoria en Linux
- 16. IIS Proceso de trabajo utilizando MUCHA memoria?
- 17. Establecer el límite de memoria del proceso de Windows (o usuario)
- 18. Memoria Mapa UIImage
- 19. medición de memoria de pico del proceso de larga ejecución en Linux
- 20. La cantidad máxima de memoria que cualquier proceso único en Windows puede abordar
- 21. Asignación de memoria de Windows vs. Linux/std :: lista, rendimiento del constructor
- 22. Cuánta memoria está bloqueada en un proceso
- 23. ¿Cómo puedo reducir el consumo de memoria de un proceso Linux mínimo
- 24. Cómo limitar la utilización de la memoria de proceso en Linux (por ejemplo, utilizando BSD :: Resource)
- 25. Modelo de memoria Linux IA-32
- 26. play framework bat windows proceso de java
- 27. ¿Uso de memoria de un proceso hijo?
- 28. C++ y protección de memoria de proceso
- 29. Limitación de memoria de proceso con MaxWorkingSet
- 30. Memoria de volcado de un proceso
¿Se trata de las secciones de bloques reales que están organizadas o de cómo se organizan específicamente las funciones reubicables en el bloque de código mismo? – doron
Son asignaciones de memoria, que corresponden aproximadamente a segmentos de código, datos y pila. – ninjalj