Qualcuno può indicarmi una documentazione sulle mappe di memoria virtuale utilizzate per Linux e Windows. Con ciò intendo che gli indirizzi virtuali, il codice, i dati statici scrivibili, lo stack e l'heap (insieme ad altri bit del kernel) verranno normalmente inseriti, in un processo tipico?Mappa memoria di processo (Linux Windows)
risposta
Probabilmente il modo migliore per ottenere la mappa della memoria di processo su Linux è guardare il file/proc // maps. Si può chiaramente vedere che per ogni eseguibile o oggetto condiviso ci sono sezioni separate per eseguibili, dati statici const e dati statici scrivibili. Ognuna di queste sezioni esiste nella propria pagina di memoria che consente a Linux di condividere sezioni tra i file eseguibili e persino implementare funzionalità come la copia su scrittura.
In aggiunta a questo c'è una sezione dedicata allo stack e una dedicata allo heap. Potrebbero esserci anche alcune sezioni anonime.
Dall'avvento di ASLR, si tratta principalmente di indirizzi virtuali casuali.
La voce di Wikipedia su Address Space Layout Randomisation (ALSR) descrive come l'allocazione casuale dello spazio di indirizzi protegge da vari attacchi e come l'importanza differisce tra dati e codice.
Descrive sia il debole livello di randomizzazione predefinito di Linux, sia una patch che è possibile utilizzare per rafforzarla.
Descrive inoltre quali versioni di Windows lo offrono e come si applica solo ad alcuni eseguibili di codice &.
E 'piuttosto basso nei dettagli. Sono appassionato di diagrammi con indirizzi, se possibile. – doron
Se stai cercando una mappa di memoria come i vecchi tempi di, ad esempio, un Commodore 64 (come questo http://sta.c64.org/cbm64mem.html), penso che sarai fuori di fortuna. Non penso che funzioni più così. – Oddthinking
- 1. layout memoria processo windows
- 2. Ottieni memoria di processo su Windows
- 3. Imposta limite di memoria processo (o utente) di Windows
- 4. Differenza di utilizzo della memoria Java tra Linux e Windows
- 5. Memoria di memoria di registrazione in Linux
- 6. Python: scrivere nella memoria di un altro processo sotto linux
- 7. Stati di processo Linux
- 8. Quantità massima di memoria per processo Java su Windows?
- 9. Come monitorare un processo in Linux CPU, memoria e tempo
- 10. Allocazione memoria Windows vs. Linux/std :: list performance costruttore
- 11. I file mappati di memoria Linux riservano molta memoria fisica
- 12. Scrittura sull'esecuzione del processo 'immagine su Linux
- 13. Recupero della mappa di memoria del proprio processo in OS X 10.5/10.6
- 14. Il processo javaw.exe in Windows 64 consuma più memoria?
- 15. per il processo linux
- 16. Rilevamento del problema di frammentazione della memoria in un processo
- 17. La memoria del processo Java cresce indefinitamente. Perdita di memoria?
- 18. Script di shell per la registrazione di cpu e l'utilizzo della memoria di un processo linux
- 19. La quantità massima di memoria ogni singolo processo in Windows può risolvere
- 20. Come modificare la mappa della memoria U-Boot
- 21. Storia di utilizzo della memoria Linux
- 22. Modello di memoria IA-32 Linux
- 23. Processo in background in linux
- 24. Come posso ridurre il footprint di memoria di un processo Linux minimo
- 25. Modalità di allocazione di stack o memoria per i thread con lo stesso processo in Linux
- 26. Posso dire a Linux di non scambiare la memoria di un particolare processo?
- 27. Memoria di dump di un processo
- 28. Dump core Linux senza processo di omissione
- 29. Codice sorgente del processo init di linux
- 30. controllo perdite di memoria in Windows
E 'questa la sezione dei blocchi effettivi organizzata o in che modo le funzioni specificamente ricollocabili sono organizzate nel blocco stesso? – doron
Sono i mapping di memoria, che corrispondono approssimativamente a codice, dati e segmenti di stack. – ninjalj