今天看《linux核心設計與實現》,2.4.3節中有這麼一句話:「核心中的記憶體都不分頁」。
說說我對這句話的理解:
記憶體分頁機制是為普通程序設計的,每乙個普通程序的記憶體空間都被劃分為特定大小的頁,如此一來,在某乙個特定的時刻,該程序按需可以調進另乙個記憶體頁,而把長時間沒有使用的頁換出。核心與其它普通程序一樣,也是乙個程序,但卻與其它普通程序不同,它可以直接操作硬體,並且它也控制著分頁機制以及記憶體頁換入換出的替換演算法。因此,對核心占用的記憶體分頁沒有意義,倘若,對核心占用的記憶體進行分頁,而又將控制分頁機制和替換演算法的**的頁換出之後,分頁機制和替換演算法就會失控。
在網上google了一下大牛們的理解,有兩條說的很靠譜:
核心占用的記憶體都不分頁,實際上是意味著分配給核心的記憶體不能夠被換出,書中後面一句話也解釋了這種觀點,「也就是說,你每用掉乙個位元組,物理記憶體就減少乙個位元組」。
linux核心中沒有分頁記憶體
linux核心中沒有分頁記憶體嗎?是的,沒有,那麼windows的核心為何就有呢?畢竟不是乙個家族不好做全方位的評判,我的結論就是linux上的任何的程式只將核心作為乙個平台而不依賴核心。這個事實的結果就是在linux核心中不能分配過大的記憶體,linux核心中唯一可以分配大記憶體的地方就是vmal...
linux核心中沒有分頁記憶體
linux核心中沒有分頁記憶體嗎?是的,沒有,那麼windows的核心為何就有呢?畢竟不是乙個家族不好做全方位的評判,我的結論就是linux上的任何的程式只將核心作為乙個平台而不依賴核心。這個事實的結果就是在linux核心中不能分配過大的記憶體,linux核心中唯一可以分配大記憶體的地方就是vmal...
linux核心中沒有分頁記憶體
linux核心中沒有分頁記憶體嗎?是的,沒有,那麼windows的核心為何就有呢?畢竟不是乙個家族不好做全方位的評判,我的結論就是linux上的任何的程式只將核心作為乙個平台而不依賴核心。這個事實的結果就是在linux核心中不能分配過大的記憶體,linux核心中唯一可以分配大記憶體的地方就是vmal...