linux 0 12實驗環境

2021-09-26 14:09:04 字數 1001 閱讀 9143

參考《linux核心完全剖析 --基於0.12核心》

linux-0.12目錄為修改過的源**,其中加入了中文注釋,修改部分**使其能在現在的環境下編譯,並且支援gdb除錯

oslab為實驗目錄,切到oslab目錄下,執行該目錄下的run.sh指令碼即可執行linux0.12作業系統。

1.1.1 方式一

可以選擇已建立好的docker映象作為實驗環境(人生苦短,我用容器)。

首先從docker hub中拉取映象;

docker pull ultraji/ubuntu-xfce-novnc:os_learn
執行容器,linux使用者可以通過掛載將本地專案目錄掛載到容器中,windows或mac使用者可以在容器內重新git clone乙份;

docker run -t -i -p 6080:6080 -v $

:$ ultraji/ubuntu-xfce-novnc:os_learn

預設不啟動vnc服務,執行/home/ubuntu目錄下vnc_startup.sh指令碼啟動vnc服務,就可以通過瀏覽器輸入http://localhost:6080/vnc.html訪問容器內的桌面系統了。

1.1.2 方式二

ubuntu(64bit,>=14.04)的使用者也可以使用src/code目錄下的一鍵環境搭建指令碼setup.sh。

該項目的oslab為實驗目錄,切到oslab目錄下,執行該目錄下的run.sh指令碼即可執行linux0.12作業系統。

作業系統筆記

Linux0 12 記憶體定址

一 分段與分頁的比較 1.邏輯位址 分段機制 線性位址 分頁機制 實體地址 分段機制是必須有的,分頁機制可以沒有。如果沒有分頁機制,線性位址 實體地址 不同的分段機制和不同的分段機制可以隨意組合 線性位址和實體地址都是32位,是一維的 3.分段的原因 隔絕各個任務的 資料和堆疊區域的機制,使多個程式...

Linux0 12初始化程式

1.main 1 設定系統的根檔案裝置號以及一些記憶體全域性變數 2 所有方面的硬體初始化工作 陷阱門 塊裝置 字元裝置 tty 開機啟動時間 排程程式 硬碟 軟碟機 3 開中斷,切換到任務0中執行 4 切換到使用者模式 5 建立乙個用於init 的子程序 6 迴圈執行pause 2.init 1 ...

Linux0 12引導啟動程式

1.從系統加電起所執行程式的順序 rom bios bootsect.s setup.s head.s main.c 其中,head.s和main.c都屬於system模組 main屬於初始化程式,這裡不講 2.幾個程式的比較 程式名位置 語言rom bios rombootsect.s boot ...