4
A
回答
3
不能完全確定你所要求的在這裏,但:
一個小小的研究(先回答here)建議你可以在一般情況下,通過
mmap
做到這一點「荷蘭國際集團/proc/PID/mem
。沒有嘗試過,但假設它可以工作,它可以讓你訪問調用進程的內存或(受安全保護)其他進程。有(據我所知)沒有直接的系統調用,讓你可以就已經分配給已不同過程頁面創建一個進程的地址空間的虛擬地址。
有(據我所知)沒有直接的系統調用,讓你可以就已經分配給相同過程中的頁面時,其他的創建一個進程的地址空間的虛擬地址不是作爲的結果
mmap
。對於使用
mmap
分配給同一進程的頁面,您可能想要查看mremap
和remap_file_pages
。
+0
是否有Linux內存管理系統調用和接口的一般文檔?我嘗試搜索,但基本上失敗了。 – Valarauca
相關問題
- 1. 如何從C中的新虛擬頁面分配內存?
- 2. 強制內存分配總是到同一虛擬地址
- 3. 如何分頁虛擬地址空間?
- 4. 從停止的虛擬機分配公共IP地址到新的虛擬機
- 5. 如何在iOS中將NSObject分配到其自己的虛擬內存頁面?
- 6. 獲取虛擬機的IP地址
- 7. PTE中的條目是物理地址還是虛擬地址? |虛擬內存
- 8. 分配內存之前虛擬內存
- 9. 在窗口中獲取最低空閒虛擬內存地址
- 10. 分配給進程的虛擬內存
- 11. 檢查虛擬內存地址
- 12. 虛擬內存地址在哪裏?
- 13. Linux的 - 從malloc的複製虛擬內存地址或移動虛擬內存地址
- 14. alloc_fresh_huge_page()只分配虛擬內存空間但不分配物理頁面嗎?
- 15. 虛擬內存的虛擬頁面中包含什麼?
- 16. 虛擬地址空間vs虛擬內存
- 17. 獲取KVM Guest虛擬機IP地址
- 18. 虛擬內存分配沒有物理內存分配
- 19. 獲取指針,我有一個long類型的虛擬地址的內存
- 20. 虛擬主機已鏈接到內部地址
- 21. 獲取Linux內存頁面的起始地址
- 22. 如何獲取在llvm中由allocaInstr字面分配的地址?
- 23. 虛擬地址
- 24. 內存與物理地址或虛擬地址合併?
- 25. 自動將虛擬地址轉換爲內存地址?
- 26. 虛擬內存頁面對齊
- 27. c#爲虛擬機分配內存
- 28. 如何從抓取的網頁地址中獲取移動頁面地址?
- 29. 如何從內存地址獲取值?
- 30. 獲取最新已知的地址
這似乎是這樣一個危險的事情要做。內核可能會照顧一切,但仍然是。我想知道你是否有特定的用例? – tux3
最主要的原因是在免費維爾後免除使用。這樣原來的虛擬地址仍然會存在並且起作用,但不會再指向他們之前引用的內容(因爲它將被重寫)。 – Valarauca
哦,我誤解了,我雖然想讓兩個不同的虛擬地址同時指向同一個物理頁面!抱歉。你可能會想看看mremap:http://linux.die.net/man/2/mremap – tux3