Week 10
Milestone Deliverables
40%
涵盖每两周一个的功能增量检查(如页表建立、IPC 调优),强调代码执行效率与内存安全性。
COMP9242
课程定位 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
40%
涵盖每两周一个的功能增量检查(如页表建立、IPC 调优),强调代码执行效率与内存安全性。
Week 11
20%
全功能系统路演,要求在 seL4 裸机上稳定运行多个用户程序并处理复杂 IO,评估鲁棒性。
Week 11
40%
全面考察内核对象属性证明、内存映射算法及高性能 IPC 判定能力的顶级难度笔试。
Syllabus
默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。
📖核心知识点:深入理解 seL4 微内核的设计哲学——最小化内核功能,将驱动、文件系统等移至用户态。Capability-based 访问控制模型详解:CSpace、CNode 的树状结构如何实现细粒度权限管理。对比宏内核(Linux)与微内核的安全性、性能与可靠性取舍。seL4 的形式化验证意义。⏰本周节奏:概念密集,需要理解 seL4 的 API 手册,建议提前阅读。🎯考试关联:微内核 vs 宏内核对比是期末常考论述题。🧪Tutorial/Lab:搭建 seL4 开发环境,运行 Hello World。📌作业关联:Milestone 0——环境搭建与基础 API 测试。⚠️易错点:混淆 Capability 与 Unix 文件权限的根本区别;seL4 API 调用约定(返回值含错误码)。
📖核心知识点:seL4 的进程间通信(IPC)是全系统性能的关键瓶颈。深入理解 Endpoint 的同步通信机制——发送方阻塞直到接收方就绪。消息寄存器传递(Message Registers)vs 共享内存传递的性能对比。Notification 机制的异步信号语义。分析 seL4 IPC 为何能达到微秒级延迟——寄存器传参、无拷贝设计。⏰本周节奏:需结合代码理解 IPC API,建议跟着示例逐行分析。🎯考试关联:IPC 性能分析与设计权衡是考试论述题的常见主题。🧪Tutorial/Lab:实现两个用户态进程通过 Endpoint 通信。📌作业关联:Milestone 1 的核心——建立基本 IPC 框架。⚠️易错点:Endpoint badge 配置错误导致消息路由失败;阻塞 IPC 中死锁的产生条件。
📖核心知识点:seL4 的内存管理完全由用户态负责——Untyped Memory 是所有内核对象的来源。理解 Retype 操作如何将 Untyped 内存转化为 Frame、CNode、TCB 等内核对象。Frame 映射到虚拟地址空间的完整流程:分配 Frame → 映射到 PageTable → 配置 VSpace。物理内存碎片的回收策略(Revoke)。⏰本周节奏:这是最硬核的一周,需要大量 API 实验。🎯考试关联:seL4 内存管理流程是期末的高频考点。🧪Tutorial/Lab:实现简单的物理帧分配器。📌作业关联:Milestone 1/2——实现内存管理子系统。⚠️易错点:Retype 操作的对齐要求不满足导致失败;忘记在 CSpace 中为新对象分配 Capability slot。
📖核心知识点:在 seL4 上从零创建用户态进程——手动配置 VSpace(页表层次)、CSpace(权限空间)与 TCB(线程控制块)。ELF 加载器的实现:解析 ELF 格式、映射代码段与数据段到正确的虚拟地址。理解 seL4 中线程调度的优先级模型与时间片管理。⏰本周节奏:大量底层编码工作,调试极其耗时。🎯考试关联:进程创建的完整步骤是期末可能的论述/代码题。🧪Tutorial/Lab:实现 ELF 加载与进程启动。📌作业关联:Milestone 2——完成用户进程加载框架。⚠️易错点:页表映射遗漏导致 Page Fault;ELF 中 BSS 段需要额外分配零页。
📖核心知识点:在微内核上构建类 Unix 系统调用接口——如何通过 IPC 实现 open/read/write/close 语义。设计用户态根服务器(Root Server)作为所有系统服务的调度枢纽。理解客户端-服务器模型在微内核中的核心地位。异步 I/O 的设计考量与回调机制。⏰本周节奏:架构设计阶段,需画出完整的组件交互图。🎯考试关联:微内核系统调用的实现方式是常考对比题。🧪Tutorial/Lab:实现基于 IPC 的文件读写系统调用接口。📌作业关联:Milestone 3——实现系统调用框架。⚠️易错点:系统调用编号约定不一致导致路由错误;忘记处理跨进程数据拷贝的安全性。
📖核心知识点:无新 Lecture 内容。这是 AOS 项目开发中至关重要的缓冲周。此时应完成 Milestone 2/3 的核心功能并开始系统性测试。⏰本周节奏:建议 80% 时间用于项目编码与调试,20% 用于复习前 5 周的设计决策。🎯考试关联:Flex Week 的代码质量直接决定后续 Milestone 的成败。🧪Tutorial/Lab:项目答疑与 Code Review。📌作业关联:是追赶进度或优化代码的黄金窗口。⚠️易错点:此时不测边界情况,后续发现 Bug 修复成本呈指数增长。
📖核心知识点:在用户态实现设备驱动的挑战与优势。硬件中断在 seL4 中的处理流程:内核将中断转化为 Notification 发送给用户态驱动线程。设备寄存器的 MMIO(Memory-Mapped I/O)映射方法。串口(UART)驱动实现作为第一个完整驱动案例。DMA 缓冲区的物理连续性要求。⏰本周节奏:硬件交互层,需理解硬件文档。🎯考试关联:用户态驱动的中断处理机制是期末特色考点。🧪Tutorial/Lab:实现串口输入/输出驱动。📌作业关联:Milestone 4——设备驱动集成。⚠️易错点:MMIO 地址映射不正确导致驱动操作到错误内存区域;中断确认(Ack)遗漏导致中断风暴。
📖核心知识点:在微内核 OS 上实现简单文件系统——选择合适的文件系统结构(类 FAT 或简化 ext2)。文件系统的分层设计:块设备层→文件系统逻辑层→VFS 接口层。缓存策略的重要性:写回(Write-back)vs 直写(Write-through)的可靠性与性能权衡。掉电一致性的基本保障措施。⏰本周节奏:设计决策多,需在简洁性与功能性间权衡。🎯考试关联:文件系统设计取舍可能出现在论述题中。🧪Tutorial/Lab:实现基本的文件创建/读写/删除操作。📌作业关联:Milestone 4/5——文件系统集成。⚠️易错点:元数据更新顺序不当导致文件系统损坏;缓存未刷新导致数据丢失。
📖核心知识点:将 lwIP 轻量级 TCP/IP 协议栈移植到 seL4 用户态。理解网络驱动、协议栈与应用之间的线程模型与数据流。零拷贝网络传输的设计思路。多线程网络驱动中的同步挑战——避免在中断上下文中执行耗时操作。NFS 客户端集成用于调试期的文件访问。⏰本周节奏:集成工作量巨大,需要充分的调试时间。🎯考试关联:网络栈集成可能在考试中作为系统设计案例讨论。🧪Tutorial/Lab:完成 lwIP 移植并实现 ping 功能。📌作业关联:Milestone 5——网络功能完成。⚠️易错点:lwIP 的回调注册顺序错误导致连接失败;网络缓冲区内存管理泄漏。
📖核心知识点:系统级性能优化方法论——Profiling 确定瓶颈、IPC 路径优化、内存分配器的 O(1) 缓存池设计。Benchmarking 框架搭建:测量系统调用延迟、上下文切换时间、网络吞吐量。调度算法选择对整体性能的影响分析。全学期知识串联——从微内核哲学到完整 OS 的工程实现回顾。⏰本周节奏:优化 + 期末复习并行,建议提前提交最终 Milestone。🎯考试关联:性能分析方法与系统设计取舍是期末综合论述题的核心。🧪Tutorial/Lab:运行性能测试套件并提交最终报告。📌作业关联:最终 Milestone 提交与性能报告。⚠️易错点:过度优化局部而忽略系统瓶颈;性能报告中缺乏对照实验数据。
Assessment
Milestone Deliverables
涵盖每两周一个的功能增量检查(如页表建立、IPC 调优),强调代码执行效率与内存安全性。
Week 10
Final OS DemoHurdle
全功能系统路演,要求在 seL4 裸机上稳定运行多个用户程序并处理复杂 IO,评估鲁棒性。
Week 11
Final Professional ExaminationHurdle
全面考察内核对象属性证明、内存映射算法及高性能 IPC 判定能力的顶级难度笔试。
Week 11
From Seniors
基础信息谁都查得到,真正值钱的是过来人的经验。
比你早一年的学长留下的真实经验 —— ChatGPT 给不了。
这门课还没有学长经验,你可以是第一个 —— 注册后在课内分享。
这门课暂无往年考点记录。
下面是匠人学院毕业生整体去过的公司分布(来自脱敏校友证言)。这是全平台的总体去向,不代表选这门课的人一定去这些公司。
统计自 317 份脱敏校友证言
岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer
岗位:Frontend Dev · junior frontend developer · Front-end Developer · Full Stack Developer
岗位:Full-stack Developer · Data Engineer · Consultant
关于这块数据,我们说实话
雇主墙来自脱敏毕业生证言(testimonials)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。
我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。