計算機科班學習 OS 的正確姿勢!
閱讀本文大概需要 11 分鐘。

Booting a PC Memory Management Multitasking File system, Spawn and Shell Network Driver
xv6
https://pdos.csail.mit.edu/6.828/2020/index.html
System Call、Page tables Traps Lazy allocation、Copy On-Write Multithreading、Lock File System、mmpa network driver
https://www.bilibili.com/video/BV1px411E7STucore
https://www.xuetangx.com/course/THU08091000267/5883104書名(英文):Operating Systems : Design and Implementation (3rd Edition) 書名(中文):操作系統(tǒng):設計及實現(xiàn) (第三版) 原作者:Andrew S. Tanenbaum / Albert S. Woodhull 翻譯者:王鵬、尤晉元、朱鵬、敖青云
Operating System (操作系統(tǒng)) 書名(英文):Operating System Concepts (7th Edition) 書名(中文):操作系統(tǒng)概念 (第七版) 原作者:Abraham Silberschatz / Peter Baer Galvin / Greg Gagne
Three Easy Piece是為了致敬費曼的關于物理學的書籍:《Six Easy Pieces: Essentials Of Physics Explained By Its Most Brilliant Teacher》。虛擬化(Virtualization) 并發(fā)(Concurrency) 持久化(Persistence)
OS 四大模塊的理論知識: 進程與線程管理、內(nèi)存管理、IO與文件系統(tǒng)、設備管理 了解 Linux 內(nèi)核部分實現(xiàn)原理,如內(nèi)存管理、進程管理、虛擬文件系統(tǒng)等 了解和熟悉常用的系統(tǒng)調(diào)用已經(jīng) System API
《現(xiàn)代操作系統(tǒng)》 《操作系統(tǒng)—精髓與設計原理》
操作系統(tǒng)包含的知識
操作系統(tǒng)由哪些構成 進程的狀態(tài)、切換、調(diào)度 進程間通信方式(共享內(nèi)存、管道、消息) 進程和線程的區(qū)別 線程的實現(xiàn)方式(一對一、多對一等) 互斥與同步(信號量、管程、鎖) 死鎖檢測與避免 并發(fā)經(jīng)典的問題:讀者寫者、哲學家就餐問題 為什么需要虛擬內(nèi)存,MMU 具體如何做地址轉換的 內(nèi)存為什么分段、分頁 頁面置換算法 文件系統(tǒng)是如何組織的 虛擬文件系統(tǒng)(VFS)是如何抽象的 ...
task_struct來表示一個執(zhí)行任務的實體。進程創(chuàng)建調(diào)用fork 系統(tǒng)調(diào)用,而線程創(chuàng)建則是 pthread_create 方法,但是這兩個方法最終都會調(diào)用到 do_fork 來做具體的創(chuàng)建操作 ,區(qū)別就在于傳入的參數(shù)不同。《Linux內(nèi)核設計與實現(xiàn)》
這本書恰到好處,即講清楚了內(nèi)核實現(xiàn)的要點,又不會通篇源碼。
自制OS
筑基內(nèi)功-- 需要學習計算機原理、C語言(需要熟練運用)、數(shù)據(jù)結構課程 工欲善其事,必先利其器,掌握以下Linux 下常用命令行:
pwd、cd、find等,1-2 款趁手的編輯器,推薦掌握 vim 的基本操作 gcc、gdb、ld、make等編譯構建鏈、objdump、nm、readif、dd 等 ELF 文件分析、燒錄工具。


點個在看你最好看
評論
圖片
表情
