作業系統(一) 簡述Linux下程序虛擬空間布局

2021-09-19 16:54:44 字數 675 閱讀 4650

在x86 32bit linux下,我們的系統會給每個程序分配乙個4g大小的虛擬位址空間。其中前3g記憶體是使用者空間,最後1g是核心空間。所有的程序有各自的使用者空間,但所有的程序都共享乙個核心空間。

從下到上依次:

1,0*00000000-0*08048000  128m的不可訪問區域

2,text: **中的指令

3,data:**中的資料

4, bss段:**中未賦值或賦值為0的資料

5,緊接著是給堆預留的空間

7,核心部分:0xc0000000—0xffffffff 1gb

核心空間為0xc0000000—0xffffffff 1gb, 如果物理記憶體大於896mb,則核心的虛擬位址0xc0000000—0xf8000000 和 物理記憶體0—896mb對等對映。所以核心 為了訪問大於896mb的物理記憶體需要設定一段虛擬區域對映其他的物理記憶體,這段虛擬位址叫做高階記憶體,vmalloc區用函式vmalloc分配記憶體頁面不保證連續,持久對映用函式kmap建立對映,這段對映是長期對映,固定對映是虛擬位址和物理記憶體固定的位址進行對映。

使用者空間:3g

核心空間:1g

如果為64位基本相似, 位址空間變大, 核心空間取消高階記憶體。

作業系統一 程序

下列所有例子均只是用來具體化的比喻,這些例子均是簡化,並不一定符合實際,只能用來作為理解理論的參考 上述比喻中的task便可以謂之程式,比如乙個qq應用程式,其中的action便是所謂的程序,比如qq中載入好友列表,載入訊息,提醒等等,而這個人,或者這個人的大腦,就是所謂的cpu,負責排程這些act...

linux作業系統一

1有效的方式使用計算機系統資源。作業系統向下封裝硬體,向下提供操作介面。unix linux 2檔案系統 2.1 目錄和路徑 2.1.1 目錄 一組相關檔案的集合 乙個目錄下面包含子目錄 檔案下有檔案 路徑名 檔名 確定檔案位置 目錄位置 路徑反映目錄和目錄之間的關係。2.1.2 路徑 linux中...

Linux 作業系統簡述

作業系統,開源的作業系統 unix的乙個子類 linux詞本意是代表linux核心心 20世紀60年代,mit開發分時作業系統,支援30臺終端訪問主機 1965年,貝爾實驗室開發multics系統,為了同時支援300個終端訪問主機 失敗 1969年,在上述兩個系統的基礎上誕生unix的原型 1991...