UniMate AI

COMP9242

高级操作系统

6 学分难度 地狱级

课程定位 COMP9242 是 UNSW 计算机系公认的‘巅峰难度’课,也被称为‘seL4 之魂’。它解决了操作系统领域最极致的命题:如何从零开始构建一个基于微内核 (Microkernel) 的高性能系统?如何保证内核的绝对安全与实时性?它是通往 Google Fuchsia 研发组、高级嵌入式架构师、及底层安全专家岗位的‘终极’通行证。它将底层的 C 语言、x86/ARM 汇编、内存映射 (MMU) 与现代形式化验证内核深度整合,是培养‘具备上帝视角系统级开发者’的必修课。 技术栈与学习内容 课程围绕‘seL4 微内核’展开。核心技术栈包括:C 语言、底层汇编、seL4 系统调用、以及内存虚拟化技术。学习内容涵盖:能力导向访问控制 (Capability-based Security)、内存映射机制(页表推演、地址空间管理)、最为核心的‘IPC (进程间通信) 性能优化’、以及实时调度与设备驱动开发。此外,课程重点研究了侧信道攻击防护与多核同步难题。学生将负责一个长达一整学期的巨型项目:在 seL4 裸机上搭建一个具备虚拟内存、文件系统与网络栈的完整 OS。课程强调‘代码的极限性能与逻辑的绝对严密’。 课程结构 10 周理论高强度输出与一个持续全学期的‘地狱级’系统项目结合。评估体系以‘工程压力测试’闻名:没有期中考试,只有每周一次的项目里程碑检查 (Milestones)、一个最终全功能演示、以及一场强调内核对象证明、地址空间分布与并发冲突分析能力的期末综合大考。该课极其强调‘手敲高性能系统内核’的能力。 适合人群 计算机硕士/博士、或打算挑战系统底层极限的开发者。必须具备极其扎实的 COMP1521/3231 基础。如果你想搞清楚‘为什么 seL4 是全球最安全的内核’、或者渴望在未来的关键基建(如自动驾驶、航天控制)中担任核心架构师,这门课是你的封神之战。建议每周投入 40 小时以上进行代码死磕。

Course decision

选课先看

先看考核重心、截止节奏和入门要求,再决定这门课是否适合你的学期安排。

考核总权重

100%

3 项考核

最高单项

40%

Milestone Deliverables

期末考试

以官方 outline 为准

Hurdle

2 项

需要单独满足

Deadline map

考核时间线

按截止周排列作业节点;持续考核会保留在下方完整考核结构中。

Week 10

Milestone Deliverables

40%

涵盖每两周一个的功能增量检查(如页表建立、IPC 调优),强调代码执行效率与内存安全性。

Week 11

Final OS Demo

20%

全功能系统路演,要求在 seL4 裸机上稳定运行多个用户程序并处理复杂 IO,评估鲁棒性。

Week 11

Final Professional Examination

40%

全面考察内核对象属性证明、内存映射算法及高性能 IPC 判定能力的顶级难度笔试。

Syllabus

每周大纲

默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。

  1. 1

    微内核设计哲学

    📖核心知识点:深入理解 seL4 微内核的设计哲学——最小化内核功能,将驱动、文件系统等移至用户态。Capability-based 访问控制模型详解:CSpace、CNode 的树状结构如何实现细粒度权限管理。对比宏内核(Linux)与微内核的安全性、性能与可靠性取舍。seL4 的形式化验证意义。⏰本周节奏:概念密集,需要理解 seL4 的 API 手册,建议提前阅读。🎯考试关联:微内核 vs 宏内核对比是期末常考论述题。🧪Tutorial/Lab:搭建 seL4 开发环境,运行 Hello World。📌作业关联:Milestone 0——环境搭建与基础 API 测试。⚠️易错点:混淆 Capability 与 Unix 文件权限的根本区别;seL4 API 调用约定(返回值含错误码)。

  2. 2

    seL4 IPC 与性能

    📖核心知识点:seL4 的进程间通信(IPC)是全系统性能的关键瓶颈。深入理解 Endpoint 的同步通信机制——发送方阻塞直到接收方就绪。消息寄存器传递(Message Registers)vs 共享内存传递的性能对比。Notification 机制的异步信号语义。分析 seL4 IPC 为何能达到微秒级延迟——寄存器传参、无拷贝设计。⏰本周节奏:需结合代码理解 IPC API,建议跟着示例逐行分析。🎯考试关联:IPC 性能分析与设计权衡是考试论述题的常见主题。🧪Tutorial/Lab:实现两个用户态进程通过 Endpoint 通信。📌作业关联:Milestone 1 的核心——建立基本 IPC 框架。⚠️易错点:Endpoint badge 配置错误导致消息路由失败;阻塞 IPC 中死锁的产生条件。

  3. 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。

  4. 4

    进程与地址空间

    📖核心知识点:在 seL4 上从零创建用户态进程——手动配置 VSpace(页表层次)、CSpace(权限空间)与 TCB(线程控制块)。ELF 加载器的实现:解析 ELF 格式、映射代码段与数据段到正确的虚拟地址。理解 seL4 中线程调度的优先级模型与时间片管理。⏰本周节奏:大量底层编码工作,调试极其耗时。🎯考试关联:进程创建的完整步骤是期末可能的论述/代码题。🧪Tutorial/Lab:实现 ELF 加载与进程启动。📌作业关联:Milestone 2——完成用户进程加载框架。⚠️易错点:页表映射遗漏导致 Page Fault;ELF 中 BSS 段需要额外分配零页。

  5. 5

    系统调用模拟

    📖核心知识点:在微内核上构建类 Unix 系统调用接口——如何通过 IPC 实现 open/read/write/close 语义。设计用户态根服务器(Root Server)作为所有系统服务的调度枢纽。理解客户端-服务器模型在微内核中的核心地位。异步 I/O 的设计考量与回调机制。⏰本周节奏:架构设计阶段,需画出完整的组件交互图。🎯考试关联:微内核系统调用的实现方式是常考对比题。🧪Tutorial/Lab:实现基于 IPC 的文件读写系统调用接口。📌作业关联:Milestone 3——实现系统调用框架。⚠️易错点:系统调用编号约定不一致导致路由错误;忘记处理跨进程数据拷贝的安全性。

  6. 6

    灵活性周 (Flex Week)

    📖核心知识点:无新 Lecture 内容。这是 AOS 项目开发中至关重要的缓冲周。此时应完成 Milestone 2/3 的核心功能并开始系统性测试。⏰本周节奏:建议 80% 时间用于项目编码与调试,20% 用于复习前 5 周的设计决策。🎯考试关联:Flex Week 的代码质量直接决定后续 Milestone 的成败。🧪Tutorial/Lab:项目答疑与 Code Review。📌作业关联:是追赶进度或优化代码的黄金窗口。⚠️易错点:此时不测边界情况,后续发现 Bug 修复成本呈指数增长。

  7. 7

    驱动开发基础

    📖核心知识点:在用户态实现设备驱动的挑战与优势。硬件中断在 seL4 中的处理流程:内核将中断转化为 Notification 发送给用户态驱动线程。设备寄存器的 MMIO(Memory-Mapped I/O)映射方法。串口(UART)驱动实现作为第一个完整驱动案例。DMA 缓冲区的物理连续性要求。⏰本周节奏:硬件交互层,需理解硬件文档。🎯考试关联:用户态驱动的中断处理机制是期末特色考点。🧪Tutorial/Lab:实现串口输入/输出驱动。📌作业关联:Milestone 4——设备驱动集成。⚠️易错点:MMIO 地址映射不正确导致驱动操作到错误内存区域;中断确认(Ack)遗漏导致中断风暴。

  8. 8

    文件系统与持久化

    📖核心知识点:在微内核 OS 上实现简单文件系统——选择合适的文件系统结构(类 FAT 或简化 ext2)。文件系统的分层设计:块设备层→文件系统逻辑层→VFS 接口层。缓存策略的重要性:写回(Write-back)vs 直写(Write-through)的可靠性与性能权衡。掉电一致性的基本保障措施。⏰本周节奏:设计决策多,需在简洁性与功能性间权衡。🎯考试关联:文件系统设计取舍可能出现在论述题中。🧪Tutorial/Lab:实现基本的文件创建/读写/删除操作。📌作业关联:Milestone 4/5——文件系统集成。⚠️易错点:元数据更新顺序不当导致文件系统损坏;缓存未刷新导致数据丢失。

  9. 9

    网络协议栈集成

    📖核心知识点:将 lwIP 轻量级 TCP/IP 协议栈移植到 seL4 用户态。理解网络驱动、协议栈与应用之间的线程模型与数据流。零拷贝网络传输的设计思路。多线程网络驱动中的同步挑战——避免在中断上下文中执行耗时操作。NFS 客户端集成用于调试期的文件访问。⏰本周节奏:集成工作量巨大,需要充分的调试时间。🎯考试关联:网络栈集成可能在考试中作为系统设计案例讨论。🧪Tutorial/Lab:完成 lwIP 移植并实现 ping 功能。📌作业关联:Milestone 5——网络功能完成。⚠️易错点:lwIP 的回调注册顺序错误导致连接失败;网络缓冲区内存管理泄漏。

  10. 10

    系统优化与性能测试

    📖核心知识点:系统级性能优化方法论——Profiling 确定瓶颈、IPC 路径优化、内存分配器的 O(1) 缓存池设计。Benchmarking 框架搭建:测量系统调用延迟、上下文切换时间、网络吞吐量。调度算法选择对整体性能的影响分析。全学期知识串联——从微内核哲学到完整 OS 的工程实现回顾。⏰本周节奏:优化 + 期末复习并行,建议提前提交最终 Milestone。🎯考试关联:性能分析方法与系统设计取舍是期末综合论述题的核心。🧪Tutorial/Lab:运行性能测试套件并提交最终报告。📌作业关联:最终 Milestone 提交与性能报告。⚠️易错点:过度优化局部而忽略系统瓶颈;性能报告中缺乏对照实验数据。

Assessment

考核结构

Milestone Deliverables

涵盖每两周一个的功能增量检查(如页表建立、IPC 调优),强调代码执行效率与内存安全性。

40%

Week 10

Final OS DemoHurdle

全功能系统路演,要求在 seL4 裸机上稳定运行多个用户程序并处理复杂 IO,评估鲁棒性。

20%

Week 11

Final Professional ExaminationHurdle

全面考察内核对象属性证明、内存映射算法及高性能 IPC 判定能力的顶级难度笔试。

40%

Week 11

From Seniors

学长留下的

基础信息谁都查得到,真正值钱的是过来人的经验。

学姐说

比你早一年的学长留下的真实经验 —— ChatGPT 给不了。

这门课还没有学长经验,你可以是第一个 —— 注册后在课内分享。

往年考点 / 踩坑

这门课暂无往年考点记录。

毕业生去向(整体)

下面是匠人学院毕业生整体去过的公司分布(来自脱敏校友证言)。这是全平台的总体去向,不代表选这门课的人一定去这些公司。

统计自 317 份脱敏校友证言

Deloitte

6 位校友

岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer

Zerologix

4 位校友

岗位:Frontend Dev · junior frontend developer · Front-end Developer · Full Stack Developer

Servian

4 位校友

岗位:Full-stack Developer · Data Engineer · Consultant

关于这块数据,我们说实话

雇主墙来自脱敏毕业生证言(testimonials)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。

我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。