exploring os
1.0.0
該存儲庫是通過操作系統概念的旅程,並在C中進行了實際實現。每天都集中在一個特定的主題上,提供理論理解和動手編碼經驗。
| 天 | 話題 | 概念類別 | 難度水平 | 實施重點 |
|---|---|---|---|---|
| 1 | 過程概念 | 過程 | 簡單的 | 過程定義 |
| 2 | 過程狀態和過渡 | 過程 | 中等的 | 狀態圖實施 |
| 3 | 過程創建機制 | 過程 | 中等的 | fork(),exec()syscalls |
| 4 | 過程調度基礎知識 | 調度 | 中等的 | FCFS算法 |
| 5 | 調度算法 | 調度 | 難的 | SJF,優先,循環羅賓 |
| 6 | 上下文切換 | 過程 | 難的 | 實施詳細信息 |
| 7 | 線程概念 | 線程 | 簡單的 | 線程基本理解 |
| 8 | 線程創建和管理 | 線程 | 中等的 | POSIX線程 |
| 9 | 線程與過程比較 | 線程 | 中等的 | 比較分析 |
| 10 | 多線程模型 | 線程 | 難的 | 用戶與內核線程 |
| 11 | 並發基礎 | 同步 | 中等的 | 種族條件 |
| 12 | 靜音和信號量 | 同步 | 難的 | 執行 |
| 13 | 僵局概念 | 同步 | 難的 | 預防策略 |
| 14 | 僵局檢測算法 | 同步 | 難的 | 銀行家的算法 |
| 15 | 內存管理概述 | 記憶 | 簡單的 | 內存層次結構 |
| 16 | 邏輯與物理地址 | 記憶 | 中等的 | 地址翻譯 |
| 17 | 連續的內存分配 | 記憶 | 中等的 | 分配策略 |
| 18 | 分頁機制 | 記憶 | 難的 | 頁表實現 |
| 19 | 頁面替換算法 | 記憶 | 難的 | FIFO,LRU,最佳 |
| 20 | 分割 | 記憶 | 中等的 | 段表 |
| 21 | 虛擬內存概念 | 記憶 | 難的 | 要求分頁 |
| 22 | 內存內部分配(Malloc,免費) | 內存管理 | 難的 | 自定義內存分配器 |
| 23 | 動態內存管理技術 | 內存管理 | 難的 | 內存池策略 |
| 24 | 文件系統基礎 | 文件系統 | 簡單的 | 文件概念 |
| 25 | 文件系統結構 | 文件系統 | 中等的 | 目錄結構 |
| 26 | 文件分配方法 | 文件系統 | 中等的 | 連續,鏈接 |
| 27 | 自由空間管理 | 文件系統 | 難的 | 位矢量,鏈接列表 |
| 28 | 文件保護機制 | 文件系統 | 中等的 | 訪問控制 |
| 29 | I/O系統管理 | I/O系統 | 中等的 | I/O設備 |
| 30 | 磁盤調度算法 | I/O系統 | 難的 | 掃描,C掃描 |
| 31 | 中斷處理 | 低級 | 難的 | 中斷向量 |
| 32 | 高級系統呼叫實施 | 低級編程 | 難的 | Syscall包裝紙設計 |
| 33 | 高級系統呼叫跟踪 | 低級 | 難的 | syscall攔截 |
| 34 | 內核模塊開發 | 低級 | 難的 | 可加載的內核模塊 |
| 35 | 過程間溝通 | IPC | 難的 | 管道,消息隊列 |
| 36 | 共享內存高級 | IPC | 難的 | 低級共享內存 |
| 37 | 插座編程深水潛水 | 聯網 | 難的 | RAW插座實現 |
| 38 | CPU計劃高級 | 調度 | 難的 | 多層隊列 |
| 39 | 實時操作系統內部 | 專門 | 難的 | RTOS內核設計 |
| 40 | Linux內核內存管理 | 核心 | 難的 | 平板分配器 |
| 41 | 過程同步高級 | 同步 | 難的 | 彼得森的算法 |
| 42 | 資源分配圖理論 | 同步 | 難的 | 僵局表示 |
| 43 | 內存碎片技術 | 記憶 | 中等的 | 高級分裂 |
| 44 | 緩存管理內部 | 記憶 | 難的 | 緩存相干 |
| 45 | 文件系統日誌 | 文件系統 | 難的 | 交易機制 |
| 46 | 設備驅動程序的開發 | 低級 | 難的 | 角色設備驅動程序 |
| 47 | 安全機制實施 | 安全 | 難的 | 訪問控制內核 |
| 48 | 過程調度模擬器 | 調度 | 難的 | 全面的模擬器 |
| 49 | 網絡文件系統內部 | 文件系統 | 難的 | 分佈式FS設計 |
| 50 | 錯誤處理內核機制 | 低級 | 難的 | 例外管理 |
| 51 | 虛擬內存管理程序 | 先進的 | 難的 | 虛擬化技術 |
| 52 | 分佈式OS算法 | 先進的 | 難的 | 共識協議 |
| 53 | 嵌入式OS內核設計 | 專門 | 難的 | 最小內核 |
| 54 | 微粒高級設計 | 建築學 | 難的 | 消息傳遞 |
| 55 | 操作系統性能分析 | 先進的 | 難的 | 內核跟踪 |
| 56 | 並行處理原始素 | 先進的 | 難的 | 低級平行性 |
| 57 | 容錯機制 | 先進的 | 難的 | 恢復技術 |
| 58 | 先進的負載平衡 | 先進的 | 難的 | 調度策略 |
| 59 | 容器化內部 | 先進的 | 難的 | 名稱空間實現 |
| 60 | 內核同步基原始人 | 先進的 | 難的 | Spinlocks,RCU |
| 61 | 安全漏洞分析 | 安全 | 難的 | 緩衝區溢出 |
| 62 | 加密內核機制 | 安全 | 難的 | 加密原語 |
| 63 | 惡意軟件檢測技術 | 安全 | 難的 | 內核級檢測 |
| 64 | OS取證深度潛水 | 安全 | 難的 | 內核跟踪分析 |
| 65 | 內存分配器設計 | 記憶 | 難的 | 自定義堆實現 |
| 66 | 高級IPC機制 | IPC | 難的 | 高級信號 |
| 67 | 內核調試技術 | 低級 | 難的 | 內核崩潰分析 |
| 68 | 高級Syscall處理 | 低級 | 難的 | SYSCALL優化 |
| 69 | 完成OS內核原型 | 專案 | 難的 | 最小的可啟動內核 |
每個項目跨越3天,允許深入探索和實施。
構建最小的可啟動內核
實施自定義內存分配器
開發文件系統模擬器
創建一個進程調度模擬器
設計虛擬內存管理器
開發可加載的內核模塊
實施網絡文件系統
構建實時操作系統內核
執照
這是通過深入實施來理解操作系統的先進教育資源。