2018-2019-1 20189204《Linux核心原理與分析》第五週作業
第四章——系統呼叫的三層機制(上)
4.1使用者態、核心態和中斷
庫函式封裝系統呼叫,使得程式設計師不直接接觸到系統呼叫,保持整個系統的穩定,避免崩潰。
1.使用者態與核心態的區分
核心只能被系統呼叫操作,系統呼叫可以被API、Shell、應用程式操作,API和SHELL可以被應用程式操作
2.Intel x86 CPU的執行級別——0~3,數字越小,級別越高
OS----Ring0
驅動程式----Ring1、Ring2
應用程式----Ring3
在Linux系統中只採用了其中的0和3兩個特權級別,分別對應核心態和使用者態。
使用者態只能訪問0x00000000~0xbfffffff的地址空間,0xc0000000以上的地址空間只能在核心態下訪問。這裡說的地址空間是程序的邏輯地址而不是實體地址,邏輯地址是程序的地址空間裡面的,現在的CPU都可以通過MMU(記憶體管理單元)把邏輯地址轉換為物力地址。
3.中斷(系統呼叫是一種特殊的中斷)
從使用者態進入核心態的方式有兩種
(1)中斷(進入核心態的主要方式),使用者態程序執行時,硬體中斷訊號到來,進入核心態
(2)Trap(系統呼叫只是特殊的中斷)
4.中斷過程
從使用者態切換到核心態,就要把使用者態暫存器上下文儲存起來,同時要把核心態的暫存器的值放到當前CPU中
中斷/init指令儲存使用者態棧頂地址、當時的狀態字、當時的CS:EIP的值
相關推薦
2018-2019-1 20189206 《Linux核心原理與分析》第二週作業
Linux核心分析 第二週學習 知識總結 作業系統與核心 作業系統 指在整個系統中負責完成最基本功能和系統管理的那些部分 核心 實際是作業系統的內在核心 核心獨立於普通應用程式,擁有受保護的記憶體空間和訪問硬體裝置的所有許可權,這種空間被稱為核心空間 當核心執行的時
2018-2019-1 20189215《Linux核心原理與分析》第二週作業
本週學習了《庖丁解牛》第1章,以及《Linux核心設計與實現》第1、2、18章。通過視訊和實驗,學會了反彙編一個簡單的C程式,也學習了Linux核心除錯的一些小技巧和printk函式。 反彙編一個簡單的C程式 程式編寫及編譯 使用vi編輯原始碼 返回值是15,我學號的後兩位。 使用
2018-2019-1 20189203《Linux核心原理與分析》第二週作業
一、本週學習情況 我本週結合《庖丁解牛》教材學習了藍墨雲的視訊課,主要學習內容如下: 1、學習了計算機的工作原理,深入理解了馮諾依曼體系結構。 2、學習了X86-32 CPU的暫存器 3、學習了定址方式和常用匯編指令 - 立即數即常數,如$8,表示$開頭後跟一個數值; - 暫
2019-2020-1 20199322《Linux核心原理與分析》第一週作業
圖解sudo deluser name和sudo deluser name --remove -home的區別? 先眾所周知地建立一個使用者“hanmeimei” 然後給韓梅梅建立一個二級的目錄,並且在裡面新建一個檔案file.txt
2019-2020-1 20209313《Linux核心原理與分析》第二週作業
2019-2020-1 20209313《Linux核心原理與分析》第二週作業 ================== # 零、總結 闡明自己對“計算機是如何工作的”理解。 計算機將資料和指令以二進位制的形式儲存於儲存介質上,通過馮諾依曼計算機模型,實現有限次計算,從而實現一定功能,滿足人類的需求。 通過整合封
20189205 《Linux核心原理與分析》第二週作業
反編譯 在實驗樓中我編寫了如下程式碼: 通過gcc編譯,得到了如下彙編程式碼: 將其簡化為可見部分後可得到如下彙編程式碼: 5 g: 8 pushl %ebp 11 movl %esp,%ebp 13 movl 8(%eb
20189210牟健 《Linux核心原理與分析》第二週作業
本週學習了彙編指令以及通過反彙編一個小程式來了解棧的變化 寫了一個簡單的C程式,如圖所示: 通過gcc -s -o main.s main.c -m32指令將其編譯成彙編程式 開啟該彙編檔案並刪除不重要的資訊,如圖所示: 分析該彙編指令(為了方便直接用手寫畫圖,為了區分不同時期的暫存器,將其後面加了個
20189220 餘超《Linux核心原理與分析》第二週作業
計算機如何工作的 一.儲存程式計算機工作模型 馮諾依曼體系結構:核心思想為儲存程式計算機。兩個層面: (1)硬體的角度(計算機主機板):一個CPU,一塊記憶體,之間有匯流排連線。CPU內部有一個IP計算器,IP指向記憶體中的指令,並依次加一執行; (2)另一個層面,程式設計師的角度:儲存程式計算機工作模
《Linux核心原理與分析》第二週作業
反彙編一個簡單的C程式 1、實驗要求 使用: gcc –S –o test.s test.c -m32 命令編譯成彙編程式碼,對彙編程式碼進行分析總結。其中test.c的具體內容如下: int g(int x) { return x + 3; } int f(int x) { return
20189221 郭開世《Linux核心原理與分析》第二週作業
讀書報告 《庖丁解牛Linux核心分析》 第 1 章 計算工作原理 1.1 儲存程式計算機工作模型 1.2 x86-32彙編基礎 1.3彙編一個簡單的C語言程式並分析其彙編指令執行過程 因為本科時期學過《微機原理與介面技術》課程,學習過8086/8088的組合語言,所以基本上算是複習。
文字挖掘與分析第五週學習筆記3--意見挖掘和情感分析
知識圖譜定位: 1.情感分析的動機 1.主觀與客觀的情緒 兩種方式:攝影記錄,文字採集。 文字比攝影更具有資訊優勢,由於可以藉助辦公機會。 2.觀點是什麼? 觀點:常等同於主觀宣告,代表一個人所相信的,對某件事的想法。 1)觀點
2018-2019-1 20189219《Linux核心原理與分析》第四周作業
1. 首先設定斷點在start_kernel函式處,使用c命令之後提示進入了該啟動函式,如圖: 圖 2. 進入函式之後發現這裡面的大多數函式並不能從名字上看出它們的意義,只能一步一步的試,於是我在init_task這個重要的程序變數處設定斷點b 510,然後c,發現menuOS竟然開始跑了。但是結果卻不盡
2018-2019-1 20189221《Linux核心原理與分析》第四周作業
2018-2019-1 20189221《Linux核心原理與分析》第四周作業 教材學習:《庖丁解牛Linux核心分析》 第 3 章 MenuOS的構造 計算機三大法寶:儲存程式計算機,函式呼叫堆疊,中斷 作業系統兩把寶劍:中斷上下文,程序上下文 Linux核心原始碼: Linux核心使用的是第二週
2018-2019-1 20189203《Linux核心原理與分析》第四周作業
第一部分 課本學習 核心版本號:Linux核心自2013年12月起,就以A.B.C.D的方式命名。A和B變得無關緊要,C是核心的真實版本。每一個版本的變化都會帶來新的特性,如內部API的變化等,改動的程式碼數量常常上萬行。D是安全補丁和bug修復。 幾個關鍵的目錄: Arch:與體系結構相關的子目
2018-2019-1 20189206 《Linux核心原理與分析》第四周作業
linux核心分析學習筆記 ——第三章 MenuOS的構造 計算機的“三大法寶”和作業系統的“兩把寶劍” 三大法寶 程式儲存計算機 即馮諾依曼體系結構,基本上是所有計算機的基礎性的邏輯框架 函式呼叫堆疊 高階語言可以執行的起點就是函式呼叫堆疊 中斷機制 中斷上下文 儲存
2018-2019-1 20189204《Linux核心原理與分析》第四周作業
《庖丁解牛》第3章——MenuOS的構造 3.1Linux核心原始碼簡介 計算機三大法寶:儲存程式計算機、系統呼叫堆疊、中斷 作業系統兩把寶劍:中斷切換上下文、程序切換上下文 Linux核心原始碼的目錄結構 其中,arch目錄是與體系結構相關的子目錄列表,裡面存放了許多CPU體系結構的相關程式碼,使
2018-2019-1 20189205 《Linux核心原理與分析》 第四周作業
MenuOS的構造 Linux核心 本週學習了Linux核心的基本目錄結構,通過qemu構建了簡單的Linux核心,並利用gdb工具進行除錯,瞭解了核心的啟動過程。 Linux的目錄結構 關鍵的目錄 arch:與體系結構相關的子目錄列表。 block:存放Linux儲存體系中關於塊裝置管理的
2018-2019-1 20189210 《LInux核心原理與分析》第四周作業
第三章 這一章接觸核心原始碼,對核心原始碼進行編譯和除錯跟蹤 一、預備知識: 核心:整個作業系統的最底層,它負責了整個硬體的驅動以及提供各種系統所需的核心功能。核心實質上是系統上面的一個檔案而已,這個檔案包含了驅動主機各項硬體的檢測程式與驅動模組。當系統讀完BIOS並載入MBR內的引導裝載程式後,就能夠載入核
2018-2019-1 20189213《Linux核心原理與分析》第五週作業
第四章:系統呼叫的三層機制(上) 系統呼叫的"三層皮" 分別指的是:使用者態函式(API)、system_call(中斷服務程式入口)以及sys_xyz()系統呼叫處理函式封裝例程。它們各自的作用如下: API 第一層是指Libc中定義的API,這些API封裝了系統呼叫,使用int0x80觸發一個系統
2018-2019-1 20189218《Linux核心原理與分析》第五週作業
系統呼叫的三層機制 使用者態、核心態和中斷 使用者態。較低的執行級別,只能訪問一部分記憶體,只能執行一部分指令。 核心態。高階執行級別,可以訪問任意實體記憶體,可以執行特權指令。 中斷。系統從使用者態進入核心態的主要方式。有硬體中斷和軟中斷。系統呼叫就是通過軟中斷進入核心態。 上下文切