一、核心空間和使用者空間
Linux簡化了分段機制,使得虛拟位址與線性位址總是一緻,是以,Linux的虛拟位址空間也為0~ 4G。Linux核心将這4G位元組的空間分為兩部分。将最高的1G位元組(從虛拟位址0xC0000000到0xFFFFFFFF),供核心使用,稱為“核心空間”。而将較低的3G位元組(從虛拟位址0x00000000到0xBFFFFFFF),供各個程序使用,稱為“使用者空間“)。因為每個程序可以通過系統調用進入核心,是以,Linux核心由系統内的所有程序共享。于是,從具體程序的角度來看,每個程序可以擁有4G位元組的虛拟空間。
二、核心态和使用者态
當一個任務(程序)執行系統調用而陷入核心代碼中執行時,我們就稱程序處于核心運作态(或簡稱為核心态)。此時處理器處于特權級最高的(0級)核心代碼中執行。當程序處于核心态時,執行的核心代碼會使用目前程序的核心棧。每個程序都有自己的核心棧。當程序在執行使用者自己的代碼時,則稱其處于使用者運作态(使用者态)。即此時處理器在特權級最低的(3級)使用者代碼中運作。當正在執行使用者程式而突然被中斷程式中斷時,此時使用者程式也可以象征性地稱為處于程序的核心态。因為中斷處理程式将使用目前程序的核心棧。這與處于核心态的程序的狀态有些類似。
三、程序上下文和中斷上下文
處理器總處于以下狀态中的一種:
1、核心态,運作于程序上下文,核心代表程序運作于核心空間;
2、核心态,運作于中斷上下文,核心代表硬體運作于核心空間;
3、使用者态,運作于使用者空間。
使用者空間的應用程式,通過系統調用,進入核心空間。這個時候使用者空間的程序要傳遞很多變量、參數的值給核心,核心态運作的時候也要儲存使用者程序的一些寄存器值、變量等。所謂的“程序上下文”,可以看作是使用者程序傳遞給核心的這些參數以及核心要儲存的那一整套的變量和寄存器值和當時的環境等。
硬體通過觸發信号,導緻核心調用中斷處理程式,進入核心空間。這個過程中,硬體的一些變量和參數也要傳遞給核心,核心通過這些參數進行中斷處理。所謂的“中斷上下文”,其實也可以看作就是硬體傳遞過來的這些參數和核心需要儲存的一些其他環境(主要是目前被打斷執行的程序環境)。
以上内容從網上貼過來的。
Q:為什麼要把程序運作模式進行劃分?
因為使用系統的人有可能是各種級别的使用者,這就有可能菜鳥級使用者胡亂操作而損害整個系統,為了防止這種現象,我們把程序運作模式分成核心模式和使用者模式,核心模式擁有最大權限,可以直接操作硬體,而使用者模式下的程序則沒有這類權限,當使用者态程序想使用硬體功能的話則可以使用系統調用,然後程序暫時切換到核心模式,這樣就算使用者的程式有問題,也不會損害系統。

Boot Block:引導塊,即MBR,記錄了引導程式(446Byte)、磁盤的分區資訊(64Byte)和MAGIC number(最後2Byte)
Block Group:我們把磁盤邏輯劃分成一個個小塊用以存儲資訊,但是當這些小塊數量多到一定程度,我們存儲資訊的效率也會變得低下,為了解決這個問題,我們把這些小塊再次劃分成一個個塊組(Block Group)。這個就類似于100個人中找1個人,和把100個人劃分成2組,再在每組50個人中查找一樣。
Super Block:超級塊,記錄整個分區的全局資訊,比如分區從哪個磁道哪個扇區開始,到哪個磁道哪個扇區結束、塊大小、檔案系統版本等等,開始的時候每個塊組都儲存有一個超級塊的備份,但是這樣太浪費空間了,于是後來就不定塊進行備份,是以有的塊組裡面有,有的沒有這個超級塊,當超級塊損壞的時候整個分區的資訊就會丢失,是以超級塊非常重要。
GDT:塊組描述符(group Descriptor table)記錄了塊組全局資訊,比如inode有多少個,資料區有多大,還空閑多少等等。每個塊組都有一個GDT,當GDT損壞的時候,整個塊組的資訊就會丢失。
Block Bitmap:塊位圖,記錄每個塊的是否被使用。
我們知道,我們存儲資訊的時候要先判斷這個塊是否被使用,當塊的數量很多的時候,這樣是非常低效的。而塊的狀态無非就兩種,使用和未使用,這樣我們隻需要使用一個位的高低電平就能表示其存儲狀态。我們把這些位集中到一起,就是位圖,以後存儲資料的時候,隻要先看看位圖裡面對應的狀态就可以了。
Inode Bitmap:節點位圖,同樣地,節點我們也要先判斷是否被使用,當數量很多時,用節點位圖可以提高效率
inode table:節點的存儲區域,節點記錄了這個檔案的屬性資訊,權限,大小等,(但是沒有檔案名,檔案名在目錄檔案的資料存儲區存儲)。
data block:資料塊,存儲真正的資料資訊。 一些特殊檔案可能存儲的資料不一樣,比如目錄檔案存儲檔案名和檔案對應的節點,裝置檔案沒有資料存儲區等等.
本文轉自biao007h51CTO部落格,原文連結:http://blog.51cto.com/linzb/1738646 ,如需轉載請自行聯系原作者