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天,允许深入探索和实施。
构建最小的可启动内核
实施自定义内存分配器
开发文件系统模拟器
创建一个进程调度模拟器
设计虚拟内存管理器
开发可加载的内核模块
实施网络文件系统
构建实时操作系统内核
执照
这是通过深入实施来理解操作系统的先进教育资源。