Week 1微内核设计哲学
📖核心知识点:深入理解 seL4 微内核的设计哲学——最小化内核功能,将驱动、文件系统等移至用户态。Capability-based 访问控制模型详解:CSpace、CNode 的树状结构如何实现细粒度权限管理。对比宏内核(Linux)与微内核的安全性、性能与可靠性取舍。seL4 的形式化验证意义。⏰本周节奏:概念密集,需要理解 seL4 的 API 手册,建议提前阅读。🎯考试关联:微内核 vs 宏内核对比是期末常考论述题。🧪Tutorial/Lab:搭建 seL4 开发环境,运行 Hello World。📌作业关联:Milestone 0——环境搭建与基础 API 测试。⚠️易错点:混淆 Capability 与 Unix 文件权限的根本区别;seL4 API 调用约定(返回值含错误码)。
Week 2seL4 IPC 与性能
📖核心知识点:seL4 的进程间通信(IPC)是全系统性能的关键瓶颈。深入理解 Endpoint 的同步通信机制——发送方阻塞直到接收方就绪。消息寄存器传递(Message Registers)vs 共享内存传递的性能对比。Notification 机制的异步信号语义。分析 seL4 IPC 为何能达到微秒级延迟——寄存器传参、无拷贝设计。⏰本周节奏:需结合代码理解 IPC API,建议跟着示例逐行分析。🎯考试关联:IPC 性能分析与设计权衡是考试论述题的常见主题。🧪Tutorial/Lab:实现两个用户态进程通过 Endpoint 通信。📌作业关联:Milestone 1 的核心——建立基本 IPC 框架。⚠️易错点:Endpoint badge 配置错误导致消息路由失败;阻塞 IPC 中死锁的产生条件。
Week 3内存管理实战
📖核心知识点:seL4 的内存管理完全由用户态负责——Untyped Memory 是所有内核对象的来源。理解 Retype 操作如何将 Untyped 内存转化为 Frame、CNode、TCB 等内核对象。Frame 映射到虚拟地址空间的完整流程:分配 Frame → 映射到 PageTable → 配置 VSpace。物理内存碎片的回收策略(Revoke)。⏰本周节奏:这是最硬核的一周,需要大量 API 实验。🎯考试关联:seL4 内存管理流程是期末的高频考点。🧪Tutorial/Lab:实现简单的物理帧分配器。📌作业关联:Milestone 1/2——实现内存管理子系统。⚠️易错点:Retype 操作的对齐要求不满足导致失败;忘记在 CSpace 中为新对象分配 Capability slot。
Week 4进程与地址空间
📖核心知识点:在 seL4 上从零创建用户态进程——手动配置 VSpace(页表层次)、CSpace(权限空间)与 TCB(线程控制块)。ELF 加载器的实现:解析 ELF 格式、映射代码段与数据段到正确的虚拟地址。理解 seL4 中线程调度的优先级模型与时间片管理。⏰本周节奏:大量底层编码工作,调试极其耗时。🎯考试关联:进程创建的完整步骤是期末可能的论述/代码题。🧪Tutorial/Lab:实现 ELF 加载与进程启动。📌作业关联:Milestone 2——完成用户进程加载框架。⚠️易错点:页表映射遗漏导致 Page Fault;ELF 中 BSS 段需要额外分配零页。
Week 5系统调用模拟
📖核心知识点:在微内核上构建类 Unix 系统调用接口——如何通过 IPC 实现 open/read/write/close 语义。设计用户态根服务器(Root Server)作为所有系统服务的调度枢纽。理解客户端-服务器模型在微内核中的核心地位。异步 I/O 的设计考量与回调机制。⏰本周节奏:架构设计阶段,需画出完整的组件交互图。🎯考试关联:微内核系统调用的实现方式是常考对比题。🧪Tutorial/Lab:实现基于 IPC 的文件读写系统调用接口。📌作业关联:Milestone 3——实现系统调用框架。⚠️易错点:系统调用编号约定不一致导致路由错误;忘记处理跨进程数据拷贝的安全性。
Week 6灵活性周 (Flex Week)
📖核心知识点:无新 Lecture 内容。这是 AOS 项目开发中至关重要的缓冲周。此时应完成 Milestone 2/3 的核心功能并开始系统性测试。⏰本周节奏:建议 80% 时间用于项目编码与调试,20% 用于复习前 5 周的设计决策。🎯考试关联:Flex Week 的代码质量直接决定后续 Milestone 的成败。🧪Tutorial/Lab:项目答疑与 Code Review。📌作业关联:是追赶进度或优化代码的黄金窗口。⚠️易错点:此时不测边界情况,后续发现 Bug 修复成本呈指数增长。
Week 7驱动开发基础
📖核心知识点:在用户态实现设备驱动的挑战与优势。硬件中断在 seL4 中的处理流程:内核将中断转化为 Notification 发送给用户态驱动线程。设备寄存器的 MMIO(Memory-Mapped I/O)映射方法。串口(UART)驱动实现作为第一个完整驱动案例。DMA 缓冲区的物理连续性要求。⏰本周节奏:硬件交互层,需理解硬件文档。🎯考试关联:用户态驱动的中断处理机制是期末特色考点。🧪Tutorial/Lab:实现串口输入/输出驱动。📌作业关联:Milestone 4——设备驱动集成。⚠️易错点:MMIO 地址映射不正确导致驱动操作到错误内存区域;中断确认(Ack)遗漏导致中断风暴。
Week 8文件系统与持久化
📖核心知识点:在微内核 OS 上实现简单文件系统——选择合适的文件系统结构(类 FAT 或简化 ext2)。文件系统的分层设计:块设备层→文件系统逻辑层→VFS 接口层。缓存策略的重要性:写回(Write-back)vs 直写(Write-through)的可靠性与性能权衡。掉电一致性的基本保障措施。⏰本周节奏:设计决策多,需在简洁性与功能性间权衡。🎯考试关联:文件系统设计取舍可能出现在论述题中。🧪Tutorial/Lab:实现基本的文件创建/读写/删除操作。📌作业关联:Milestone 4/5——文件系统集成。⚠️易错点:元数据更新顺序不当导致文件系统损坏;缓存未刷新导致数据丢失。
Week 9网络协议栈集成
📖核心知识点:将 lwIP 轻量级 TCP/IP 协议栈移植到 seL4 用户态。理解网络驱动、协议栈与应用之间的线程模型与数据流。零拷贝网络传输的设计思路。多线程网络驱动中的同步挑战——避免在中断上下文中执行耗时操作。NFS 客户端集成用于调试期的文件访问。⏰本周节奏:集成工作量巨大,需要充分的调试时间。🎯考试关联:网络栈集成可能在考试中作为系统设计案例讨论。🧪Tutorial/Lab:完成 lwIP 移植并实现 ping 功能。📌作业关联:Milestone 5——网络功能完成。⚠️易错点:lwIP 的回调注册顺序错误导致连接失败;网络缓冲区内存管理泄漏。
Week 10系统优化与性能测试
📖核心知识点:系统级性能优化方法论——Profiling 确定瓶颈、IPC 路径优化、内存分配器的 O(1) 缓存池设计。Benchmarking 框架搭建:测量系统调用延迟、上下文切换时间、网络吞吐量。调度算法选择对整体性能的影响分析。全学期知识串联——从微内核哲学到完整 OS 的工程实现回顾。⏰本周节奏:优化 + 期末复习并行,建议提前提交最终 Milestone。🎯考试关联:性能分析方法与系统设计取舍是期末综合论述题的核心。🧪Tutorial/Lab:运行性能测试套件并提交最终报告。📌作业关联:最终 Milestone 提交与性能报告。⚠️易错点:过度优化局部而忽略系统瓶颈;性能报告中缺乏对照实验数据。