Linux
地址空間中的核心空間是由什麼為我們保留的?
在程序執行過程中,當一個程序的記憶體映射是這樣的:
這可能是一個愚蠢的問題,但是在地址空間中保留核心空間的原因是什麼?使用者程序對此負責嗎?特權程序?所有程序?
據我了解,核心記憶體空間由正在執行的程序保留,但只有在指示在環 0 下執行時,CPU 才能訪問它。這是正確的嗎?
核心代表程序處理這個問題。核心的地址空間確實只有在 CPU 處於特權模式時才能訪問,在 x86 上是 ring 0。
另請參閱所有程序的虛擬地址空間在其“核心”部分中是否具有相同的內容?,在Linux程序的虛擬記憶體空間中有核心部分有什麼用?, 64位linux程序的虛擬記憶體核心部分是什麼?,除了使用系統呼叫時,我們何時跳轉到程序虛擬記憶體的核心部分?(在 Linux 中)。