linux0.11 記憶體結構

來源:互聯網
上載者:User

標籤:linux0.11   記憶體   

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/27/26/wKiom1NwmT6w_9fCAANYNUpRVn0957.jpg" title="a.jpg" alt="wKiom1NwmT6w_9fCAANYNUpRVn0957.jpg" />


Linux0.11,記憶體最多支援16M,其中0-1M是核心去,實際核心使用是從0-640k,從640k-1M的地區,分別是顯存,bios地區,高速緩衝區,1-16M是是主記憶體地區。

在記憶體核心地區當中,從0開始,首先存放的是頁目錄表,占4kb,之後的3個是頁表,每個4kb,每個頁表包含一個數組,每個數組共1024項,即每項4個位元組,這個也定義在/include/linux/head.h當中。

在核心地區中,最重要的地區之一是idt和gdt。2個合起來占1頁記憶體。每個占2k記憶體。二者的定義在/include/linux/head.h當中。

#ifndef_HEAD_H#define_HEAD_Htypedefstructdesc_struct{                           // 定義了段描述符的資料結構。該結構僅說明每個描述    unsignedlonga, b;           // 符是由個位元組構成,每個描述符表共有項。}desc_table[256];externunsignedlongpg_dir[1024];      // 記憶體頁目錄數組。每個目錄項為位元組。從物理地址開始。//#define pg_dir((unsigned long*)0)externdesc_tableidt,gdt; // 中斷描述符表,通用描述元表。#defineGDT_NUL 0              // 通用描述元表的第0項,不用。#defineGDT_CODE 1           // 第1項,是核心程式碼片段描述符項。#defineGDT_DATA 2           // 第2項,是核心資料區段描述符項。#defineGDT_TMP 3             // 第3項,系統段描述符,Linux 沒有使用。#defineLDT_NUL 0              // 每個局部描述符表的第項,不用。#defineLDT_CODE 1            // 第項,是使用者程式碼段描述符項。#defineLDT_DATA 2            // 第項,是使用者程式資料區段描述符項。#endif

從上面的代碼可以看出來,idt,gdt是desc_struct結構的,每個都是256項。

每項包含2個部分,每個部分4個位元組,

idt存放的是中斷描述符表。

gdt中存放的是通用描述元表。gdt當中,第0項為null,第1項為程式碼片段描述,第2項為資料區段描述符,第3項為系統段描述符,未使用,為null。從第4項開始,存放進程的相關資訊,每個進程使用2項,對於每個進程,第一項是tssn,第2項是ldtn,其中n為進程標號。從這裡就可以看出來linux0.11最多容納127個任務,但實際上,linux0.11規定,最多有64個任務同時存在。

對於80386,有32根地址線,可以定址4G的地址空間,tssn描述符內,存放的正是任務號為n的tss段的地址,ldtn描述符內,有任務號為n的ldt描述符地址。

Linux0.11規定,每個任務的虛擬位址範圍為64M。每個任務都包含一個task_union的聯合體,包含一個task_struct結構體和一個堆棧數組。

uniontask_union{// 定義任務聯合(任務結構成員和stack 字元數組程式成員)。    structtask_structtask;// 因為一個任務資料結構與其堆棧放在同一記憶體頁中,所以    charstack[PAGE_SIZE];// 從堆棧段寄存器ss 可以獲得其資料區段選擇符。};


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.