跟著瓦利哥學寫OS
【課程目標】 上完課,就可以實現一個自己命名的小OS了。 【課程受眾】 修過計算機相關的專業課程,至少學過操作系統,計算機組成,C語言程序設計,匯編語言等。 有興趣的可以先加入【自己動手寫操作系統】QQ群:82616767。注意,加群需要答題,只要認真回答,就能通過。 【關于收費】 聽課后,一周后發郵件到sangwf@gmail.com申請考試,考試通過,退款。否則,就等聽完下次課,再申請考試,最多讓申請三次。 【關于考試】 即使一次考試通過且退錢了,我建議繼續申請答題,因為每次的題目都是針對本節課的,只有實踐了,才能真正掌握。畢竟,退錢不是目的。你是為了學習知識。 【課程大綱】 1.操作系統是如何啟動的 從插電到進入加載內核的整個過程 bios的原理 虛擬機的原理 動手寫一個軟盤啟動的hello world 2.從實模式到保護模式 實模式的原理 保護模式的原理 從實模式到保護模式的跳轉 動手寫一個在保護模式的hello world 3.虛擬內存的原理與實現 資源是有限的 線性地址與物理地址 回顧分段 理解分頁 動手寫一個分頁版的hello world 4.中斷的原理與實踐 中斷的本質 bios中的中斷 常用的中斷 時鐘中斷與多任務 動手實現鍵盤中斷輸入的hello world 5.內核態與用戶態 內核態的本質 棧的切換 用戶態到內核態的切換 動手實現一個打印hello world字符串的中斷 6.多任務的實現原理 認識TSS 回顧時鐘中斷 動手實現一個分別打印hello和world的多任務 7.真正的多任務實現 如何創建新任務 系統調用的原理 fork系統調用的原理與實現 實現一個可以fork新任務的os 8. 進入C語言世界 9. 新程序的加載與執行 應用程序是怎么被加載和執行的 exec系統調用的原理與實現 可執行程序的格式 實現一個可以exec新任務的os 10.用戶態內存管理 什么是堆,與棧的關系 brk系統調用 malloc的實現原理 free的實現原理 實現一個可以malloc和free的os 11.文件系統的原理與實現 文件的原理 read/write/open/seek/close系統調用 實現一個原始版的文件系統,將字符串放入其中 12.Shell的原理與實現 shell是怎么工作的 管道的原理與實現 實現一個可以執行簡單命令的shell 13.圖形顯示 圖形顯示的原理 中文字符顯示的原理 實現一個圖形界面下的shell 【老師簡介】 瓦利哥,浙江大學計算機系本科&碩士畢業,百度工作7年。