PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
LinuxDev
[問題] proc/[pid]/maps 與 exe 的問題
作者:
cklonger
(22)
2017-11-10 03:42:43
在看 /proc/[pid]/maps時
有些process maps第一行pathname是空的
文件 http://man7.org/linux/man-pages/man5/proc.5.html
表示是mmap設定成 MAP_ANONYMOUS
請問什麼時候會這樣用
/proc/[pid]/exe是 execution binaries的link
文件說可以被dereferenced
請問什麼樣的程式會dereferenced 或是連結失敗
例如fork subprocess?
作者:
galic
(嘎利)
2017-11-10 09:55:00
當你需要一塊連續的記憶體空間 而且是0填滿的(zero-filled)有些library alloc()系列函式底層實作就是用MAP_ANONYMOUS另外 dereferenced 你可能誤會意思了他跟C的 "*" dereference operator 的概念類似symbolic link看作是pointer 所以這裡的意思是當你去讀exe不是讀到exe這個symbolic link 而是exe refer的對象也就是那個可執行的binary檔但我記得procfs在/exe的實作上不是真的symbolic link但結果有87%像就是了... 就跟你不用MAP_ANONYMOUS 但是fd指向/dev/zero 也是有87%像
作者:
cklonger
(22)
2017-11-10 18:10:00
請問fork的子程序 exe會是 空的嗎
作者:
galic
(嘎利)
2017-11-10 20:33:00
這問題好難... exe其實是印mm_struct的exe_fileexe會空的情況就是沒有mm(memory descriptor)而沒有mm的 通常都是kernel thread 因為kernel thread都run在同一個kernel address space中,所以不需要mm說「通常」 是因為還有一種情況是mm已經被release什麼情況mm會被release但是process還活著?? ->zombie所以我猜答案是kernel thread和zombie process都沒有exe再把fork加進來 kernel thread fork出去的task 也都沒有mm如果是一般有mm的task, fork()我記得會dup mm, 所以exe會跟parent一樣,直到exec()的時候才會去改mm裡面的exe_file但是child如果變成zombie 又會變成沒有exe講太複雜了 你的答案是:「有可能」
作者:
cklonger
(22)
2017-11-10 20:49:00
非常感謝再請問zombie 有辦法 被wake up嗎
作者:
galic
(嘎利)
2017-11-10 20:58:00
不行 zombie的memory已經被release 所以才叫zombie
繼續閱讀
[問題] 如何正確的 git push 軟連結(ln -s)的檔案
whatai
[問題] 有關於 debian 跟 arch linux
gowrite
[問題] 掛載samba寫檔的問題
noplayme123
[問題] 樹梅派機器人
aris1008
[問題] MMC driver 的問題
gamed
Fw: [問題] 有關於 header 在 linux 的幾個問題
gowrite
[問題] mmap 出的位置做 memcpy 失敗問題
blueblance
[問題] 開發板是否需要"開源硬體"?
timemaker
[問題] 在Linux上交叉編譯MIPSLE執行的CGO
tosakashiron
[問題]LINUX I2C mmap R/W一問
Eenie
Links
booklink
Contact Us: admin [ a t ] ucptt.com