核心空間和使用者空間的分界 PAGE OFFSET

2021-09-07 02:14:57 字數 1008 閱讀 2292

page_offset

記憶體對映

|            使用者空間                  |   核心空間   |

物理 a:0        1g                         b:3g          c:4g

b: 定義為    page_offset

0-1g: 和核心空間又有豐富的內容,我還沒有整理,以後再說。

-------------------------------------

arch/x86/include/asm/page_types.h

#define page_offset ((unsigned long)__page_offset

-> __page_offset

arch/x86/include/asm/page_64_types.h:

#define __page_offset _ac(0xffff880000000000, ul)

arch/x86/include/asm/page_32_types.h:

#define __page_offset _ac(config_page_offset, ul)

-->config_page_offset

arch/x86/configs/i386_defconfig:

config_page_offset=0xc0000000

-->ac

include/linux/const.h

#ifdef __assembly__

#define _ac(x,y) x

#else

#define __ac(x,y) (x##y)

#define _ac(x,y) __ac(x,y)

#endif

***********************************==

我們就很清晰的看到,在x86下,32時page_offset 為0xc0000000(3g),也是核心空間和使用者空間的分界。

使用者空間和核心空間

應用程式是從頭到尾執行單個任務。模組只是預先註冊自己以便服務於將來的某個請求,模組初始化函式的任務就是為以後呼叫模組函式預先做準備,就像模組說 我在這,並且我能做這些工作。模組的退出函式將在模組被解除安裝前呼叫,他告訴核心 我要離開了,不要再讓我做任何事了。應用程式在退出時,可以不管資源的釋放或其他...

Linux核心空間和使用者空間

在linux系統中存在程序的概念 程序的分類 使用者程序 執行在使用者空間的程序被稱為使用者程序 核心程序 執行在核心空間的程序被稱為核心程序 程序的空間 系統會為每乙個程序分0 4g的虛擬定址空間,在4g的空間中 0 3g 屬於使用者空間,用來執行使用者的相關程序 3 4g 屬於核心空間,用來執行...

核心空間與使用者空間

1.核心態與使用者態的區別 1 核心態 的 不受任何限制,可以訪問 所有處理器指令集 記憶體位址以及i o空間 2 使用者態的 只能訪問其位址空間的頁表項中規定的虛擬位址。2.使用者態到核心態的切換方式 1 系統呼叫 軟中斷的一種 由使用者程序主動發起 2 異常 當cpu在執行執行在使用者態下的程式...