關於/proc/kcore文件

關於/proc/kcore 文件:

 

首先看來自:http://unixguide.net/linux/faq/04.16.shtml的原貼:

121629452.png

大意就是 /proc目錄下的文件不真實存在、不佔用實際存儲設備空間(這個毋庸置疑/proc/kcore的大小等於內存的大小!

 

有人也覺得此文的件的大小是真實物理內存大小,看帖

121756491.png

看我的真實機子:

 

121804431.png

121813625.png

內存大小2g,與文件大小不符!

 

再看貼:

121840570.png

結論:不佔用存儲設備空間,但其大小不等於實際物理內存大小!!

121848323.png

 

上邊大意就是  kcore /proc 下的其他文件不同,它是顯示大小的,而且它的大小等於已被使用的物理內存的大小 加上4k,此文件可以使用gdb objdump等工具調試。

 

 

122055466.png

很明顯 如果是這樣的話 那麼kcore的大小應該至少939M,可其大小卻是897M

122110236.png

更詭異的是 ,上邊顯示的897M大小 還不是一直都存在的 :

122122598.png

只不過是使用hexdump(或od) 查看了下,然後其就變成了4k,重新開機,恢復897M,再查看一次 又變成了4k

 

然後我對內存進行存儲數據,以消耗其空間:

122147877.png

作爲一種特殊FS格式,tmpfs 是直接掛內存空間的,默認是內存空間大小的一半,當然也可以指定。

122203881.png

 

 

然後進行數據寫入:

122944915.png

看以看到 內存和虛擬空間都基本已經耗盡了,再看kcore文件

122957598.png

其依然是4k

 

重啓以恢復內存和虛擬空間:

 

悲劇:

123006907.png

123018383.png

Swap分區依然存在,fstab中也有字掛在條目,卻不能自動掛載(每次開機都是如此)。。。不得不每次都得:

 

Mkswap /dev/sda9 ; swapon /dev/sda9 來啓用。

123029245.png

照此方法試了下,結果還是如此 - - ||

123148651.png

上面說kcore這個文件指的的可被內核分配的空間,但根據上邊的實驗來看,並非如此。其還提示說,在64bOS中,這個文件大小最大可以達到128T,因爲64bOS最大尋址內存範圍局勢128T

 

123038764.png

看着挺恐怖 - - ||(不過不用關心它)

 

 

 hexdump查看下此文件:

 

123045976.png

能閱讀的就只有 vmlinux LABELXXXX 你一部分

123436211.png

64b的 server上查看:

 

123056332.png

123535858.png

從file得到的屬性中,我們看以看出此OS的位數等,From後邊跟的應該是 根分區的UUID

123331517.png

 

 

本文出自 “逆行者” 博客,請務必保留此出處http://monsterme.blog.51cto.com/2837715/1194000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章