- lab1 :bootloader启动操作系统
- lab2 :物理内存管理
- lab3 :虚拟内存管理
- lab4 :内核线程
- lab5 :用户进程
- lab6 :处理器调度
- lab7 : 同步互斥和进程间通信(IPC)
- lab8 : 文件系统
- proj1 : bootloader 能切换到x86-32保护模式且能够通过串口、并口、显示器来显示字符串
- proj2 (<--proj1) : bootloader能读磁盘且分析加载ELF格式的文件
- proj3 (<--proj2) : bootloader能ELF执行文件格式的 ucore toy OS,目前这个toy OS只能答应字符串
- proj3.1 (<--proj3) : ucore能输出函数调用栈信息(包括函数名和行号),这样便于OS出错后分析问题
- proj4 (<--proj3.1) : ucore可处理从串口(COM1)、键盘、时钟外设来的中断
- proj4.1 (<--proj4) : 为了支持proj 4.1.1/2系统调用机制,ucore重新初始化并增加了用户态的代码段和数据段
- proj4.1.1(<--proj4.1) : 用x86的中断机制实现系统调用机制
- proj4.1.2(<--proj4.1) : 用x86的门(gate)机制实现系统调用机制
- proj4.2 (<--proj4.1) : ucore增加 gdb remote server/stub,这样可以通过gdb远程调试ucore
- proj4.3 (<--proj4.2) : ucore支持硬件breakpoint和watchpoint,从而具有内部debugger功能
- proj5 (<--proj4.3) : ucore支持保护模式下的分页机制,并能够管理物理内存
- proj5.1 (<--proj5) : 最佳适配算法
- proj5.1.1 (<--proj5.1) : 首次适配算法
- proj5.1.2 (<--proj5.1) : 最坏适配算法
- proj5.2 (<--proj5.1) : 伙伴(buddy)分配算法
- proj6 (<--proj5.2) : SLAB内存分配算法
- proj7 (<--proj6) : 能够有页访问错误异常的处理机制,提供了虚存管理(VMM)的框架
- proj8 (<--proj7) : 实现swap in/out机制,并加入页替换算法的实现框架
- proj9 (<--proj8) : 增加内核函数map, unmap, dup, exit等
- proj9.1 (<--proj9) : 实现 shmem_t内存结构,并完成香港函数,实现share memory
###3 实现COW机制,为高效创建子进程做好准备
- proj9.2 (<--proj9.1) : 实现支持高效进程复制的虚存核心功能Copy On Write(简称COW)
- proj10 (<--proj9.2) : 实现线程和进程管理的关键数据结构进程控制块(Process Control Block, 简称PCB),完成对内核线程的创建所需功能,并建立基本的调度机制,主要是体现能够切换两个内核线程。
- proj10.1 (<--proj10) : 实现用户进程管理框架,并完成与创建用户进程相关的内核函数(读ELF格式的文件、fork、execve),以及与调度进程相关的调度器
- proj10.2 (<--proj10.1) : 实现进程管理相关的系统调用 wait、kill、exit
- proj10.3 (<--proj10.2) : 完成管理用户进程的内存堆(heap)的系统调用sys_brk
- proj10.4 (<--proj10.3) : 完成用户进程调度相关的函数sleep,并增加timer的功能支持
- proj11 (<--proj10.4) : 用内核线程方式实现虚存的swap机制
- proj12 (<--proj11) : 实现系统调用map、unmap和共享内存share memory,实现用户态线程机制;
- proj13 (<--proj12) : 实现通用调度框架和简单的想来先服务(First Come First Serve,简称FCFS)调度算法
- proj13.1 (<--proj13) : 实现轮转(RoundRobin,简称RR)掉短算法
- proj13.2 (<--proj13.1) : 实现多级反馈队列(MultiLevel Feedback Queue,简称MLFQ)调度算法
- proj14 (<--proj13.2) : 实现内核中的信号量(semaphore)机制
- proj14.1 (<--proj14) : 实现用于用户态进程/线程的信号量机制,
- proj14.2 (<--proj14.1) : 增加在信号量等待中的超时判断机制
- proj15 (<--proj14.2) : 实现事件(event )IPC机制
- proj16 (<--proj15) : 实现邮箱(mailbox)IPC机制
- proj16.1 (<--proj16) : 实现管程和条件变量
- proj17 (<--proj16) : 实现vfs框架, file数据结构和相关操作,文件化各种输入输出外设(stdin, stdout, null)
- proj17.1 (<--proj17) : 实现匿名管道(PIPE)和有名管道(FIFO)
- proj18 (<--proj17.1) : 在VFS上增加具体文件系统实例sfs 'simple filesystem'和对应的文件操作相关函数
- proj18.1 (<--proj18) : 增加mkdir/link/rename/unlink (hard link)相关的系统调用和内核函数
- proj18.2 (<--proj18) : add exec
- proj18.3 (<--proj18.2) : add exec with arguments (at most 32)
- proj19 (<--proj18.3) : shell