清華大學操作系統OS(向勇、陳渝)視頻地址:http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about
在ucore實驗中,一些基本的常用工具如下:
命令行shell: bash shell -- 有對文件和目錄操作的各種命令,如ls、cd、rm、pwd...
系統維護工具:apt、git
- apt:安裝管理各種軟件,主要在debian, ubuntu linux系統中
- git:開發軟件的版本維護工具
源碼閱讀與編輯工具:eclipse-CDT、understand、gedit、vim
- Eclipse-CDT:基于Eclipse的C/C++集成開發環境、跨平臺、豐富的分析理解代碼的功能,可與qemu結合,聯機源碼級Debug uCore OS。
- Understand:商業軟件、跨平臺、豐富的分析理解代碼的功能,Windows上有類似的sourceinsight軟件
- gedit:Linux中的常用文本編輯,Windows上有類似的notepad
- vim: Linux/unix中的傳統編輯器,類似有emacs等,可通過exuberant-ctags、cscope等實現代碼定位
源碼比較和打補丁工具:diff、meld,用于比較不同目錄或不同文件的區別, patch是打補丁工具
- diff, patch是命令行工具,使用簡單
- meld是圖形界面的工具,功能相對直觀和方便,類似的工具還有 kdiff3、diffmerge、P4merge
開發編譯調試工具:gcc 、gdb 、make
- gcc:C語言編譯器
- gdb:執行程序調試器
- ld:鏈接器
- objdump:對ELF格式執行程序文件進行反編譯、轉換執行格式等操作的工具
- nm:查看執行文件中的變量、函數的地址
- readelf:分析ELF格式的執行程序文件
- make:軟件工程管理工具, make命令執行時,需要一個 makefile 文件,以告訴make命令如何去編譯和鏈接程序
- dd:讀寫數據到文件和設備中的工具
硬件模擬器:qemu -- qemu可模擬多種CPU硬件環境,本實驗中,用于模擬一臺 intel x86-32的計算機系統。類似的工具還有BOCHS, SkyEye等
markdown文本格式的編寫和閱讀工具(比如閱讀ucore_docs)
編寫工具 haroopad
閱讀工具 gitbook
80386有四種運行模式:
實模式、保護模式、SMM模式和虛擬8086模式。
實模式:80386加電啟動后處于實模式運行狀態,在這種狀態下軟件可訪問的物理內存空間不能超過1MB,且無法發揮Intel 80386以上級別的32位CPU的4GB內存管理能力。
保護模式:支持內存分頁機制,提供了對虛擬內存的良好支持。保護模式下80386支持多任務,還支持優先級機制,不同的程序可以運行在不同的優先級上。優先級一共分0~3 4個級別,操作系統運行在最高的優先級0上,應用程序則運行在比較低的級別上;配合良好的檢查機制后,既可以在任務間實現數據的安全共享也可以很好地隔離各個任務。
物理內存地址空間是處理器提交到總線上用于訪問計算機系統中的內存和外設的最終地址。一個計算機系統中只有一個物理地址空間。
線性地址空間是在操作系統的虛存管理之下每個運行的應用程序能訪問的地址空間。每個運行的應用程序都認為自己獨享整個計算機系統的地址空間,這樣可讓多個運行的應用程序之間相互隔離。
邏輯地址空間是應用程序直接使用的地址空間。
段機制啟動、頁機制未啟動:邏輯地址->段機制處理->線性地址=物理地址
段機制和頁機制都啟動:邏輯地址->段機制處理->線性地址->頁機制處理->物理地址
操作系統是控制軟件,管理應用程序,為應用程序提供服務,殺死應用程序,分配資源,管理外設
抽象:CPU - 進程,內存 - 地址空間,磁盤 - 文件
OS位于硬件層之上,軟件應用層之下,是個中間層的系統軟件。
OS分為Shell(界面)和Kernel(內核)
并發(concurrent,交替運行) vs 并行(parallel,同時運行)
注意:區分并發和并行。 //并發指的是在一段時間內有多個程序可以運行。
//并行指的是在一個時間點上有多個程序可以同時執行。
操作系統管理的主要的三個資源:CPU(CPU調度,進程,線程)、內存(物理內存,虛擬內存)、磁盤(文件系統)、與硬件相關的底層(中斷、IO、設備驅動)