Lab 1 Part 3: The kernel 現在我們將開始具體討論一下JOS內核了。就像boot loader一樣,內核開始的時候也是一些匯編語句,用於設置一些東西,來保證C語言的程序能夠正確的執行。 使用虛擬內存 在運行boot loader時,boot loader中的鏈接 ...
現在你的操作系統內核已經具備一定的異常處理能力了,在這部分實驗中,我們將會進一步完善它,使它能夠處理不同類型的中斷 異常。 Handling Page Fault 缺頁中斷是一個非常重要的中斷,因為我們在后續的實驗中,非常依賴於能夠處理缺頁中斷的能力。當缺頁中斷發生時,系統會把引起中斷的線性地址存放到控制寄存器 CR 中。在trap.c 中,已經提供了一個能夠處理這種缺頁異常的函數page fau ...
2016-05-17 21:07 3 3588 推薦指數:
Lab 1 Part 3: The kernel 現在我們將開始具體討論一下JOS內核了。就像boot loader一樣,內核開始的時候也是一些匯編語句,用於設置一些東西,來保證C語言的程序能夠正確的執行。 使用虛擬內存 在運行boot loader時,boot loader中的鏈接 ...
Lab 1: Booting a PC Part 1: PC Bootstrap 介紹這一部分知識的目的就是讓你能夠更加熟悉x86匯編語言,以及PC啟動的整個過程,而且也會首次學習使用QEMU軟件來仿真xv6操作系統,並且配合GDB對操作系統的運行進行調試。 開始學習X86匯編語言 ...
Part 2: The Boot Loader 對於PC來說,軟盤,硬盤都可以被划分為一個個大小為512字節的區域,叫做扇區。一個扇區是一次磁盤操作的最小粒度。每一次讀取或者寫入操作都必須是一個或多個扇區。如果一個磁盤是可以被用來啟動操作系統的,就把這個磁盤的第一個扇區叫做啟動扇區。這一部分介紹 ...
Lab 1 Part 2 The Boot Loader Loading the Kernel 我們現在可以進一步的討論一下boot loader中的C語言的部分,即boot/main.c。但是在我們分析之前,我們應該先回顧一些關於C語言的基礎知識。 Exercise 4: 閱讀 ...
Introduction 在這個實驗中,我們將實現操作系統的一些基本功能,來實現用戶環境下的進程的正常運行。你將會加強JOS內核的功能,為它增添一些重要的數據結構,用來記錄用戶進程環境的一些信息;創建一個單一的用戶環境,並且加載一個程序運行它。你也可以讓JOS內核能夠完成用戶環境所作 ...
Lab 1 Part 1: PC bootstrap 我們繼續~ PC機的物理地址空間 這一節我們將深入的探究到底PC是如何啟動的。首先我們看一下通常一個PC的物理地址空間是如何布局的: 這張圖僅僅展示了內存空間 ...
Part 3 Kernel Address Space JOS把32位線性地址虛擬空間划分成兩個部分。其中用戶環境(進程運行環境)通常占據低地址的那部分,叫用戶地址空間。而操作系統內核總是占據高地址的部分,叫內核地址空間。這兩個部分的分界線是定義在memlayout.h文件中的一個宏 ULIM ...
Lab 2: Memory Management lab2中多出來的幾個文件: inc/memlayout.h kern/pmap.c kern/pmap.h kern/kclock.h kern/kclock.c memlayout.h描述了虛擬地址 ...