Lab 1: Booting a PC Part 1: PC Bootstrap 介紹這一部分知識的目的就是讓你能夠更加熟悉x86匯編語言,以及PC啟動的整個過程,而且也會首次學習使用QEMU軟件來仿真xv6操作系統,並且配合GDB對操作系統的運行進行調試。 開始學習X86匯編語言 ...
Lab Part : PC bootstrap 我們繼續 PC機的物理地址空間 這一節我們將深入的探究到底PC是如何啟動的。首先我們看一下通常一個PC的物理地址空間是如何布局的: 這張圖僅僅展示了內存空間的一部分。 第一代PC處理器是 位字長的Intel 處理器,這類處理器只能訪問 MB的地址空間,即 x x FFFFF。但是這 MB也不是用戶都能利用到的,只有低 KB x x A 的地址空間是用 ...
2015-12-26 16:09 2 6226 推薦指數:
Lab 1: Booting a PC Part 1: PC Bootstrap 介紹這一部分知識的目的就是讓你能夠更加熟悉x86匯編語言,以及PC啟動的整個過程,而且也會首次學習使用QEMU軟件來仿真xv6操作系統,並且配合GDB對操作系統的運行進行調試。 開始學習X86匯編語言 ...
Lab 1 Part 3: The kernel 現在我們將開始具體討論一下JOS內核了。就像boot loader一樣,內核開始的時候也是一些匯編語句,用於設置一些東西,來保證C語言的程序能夠正確的執行。 使用虛擬內存 在運行boot loader時,boot loader中的鏈接 ...
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中的Exercise 2的解答~ Lab 1 Exercise 2: 使用GDB的'si'命令,去追蹤ROM BIOS幾條指令,並且試圖去猜測,它是在做什么。但是不需要把每個細節都弄清楚。 答: 在這里我們將盡可能的去分析每一條指令,由於題目中說我們只需要 ...
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描述了虛擬地址 ...