keywords: BUAA OS 2021 北京航空航天大学 6系 计算机 操作系统 2021
2021春北航操作系统
- 请修改include.mk文件,使交叉编译器的路径正确
- 完成 readelf.c 中缺少的代码
- 填写tools/scse0_3.lds中空缺的部分,将内核调整到正确的位置上
- 完成boot/start.S中空缺的部分。设置栈指针,跳转到main函数。
- 补全lib/print.c中lp_Print()函数中缺失的部分来实现字符输出。
- 请完成queue.h中的LIST_INSERT_AFTER函数和LIST_INSERT_TAIL函数
- 完成mips_detect_memory()函数。
- 完成page_init函数
- 完成page_alloc和 page_free 函数
- 完成boot__pgdir_walk和 pgdir_walk函数
- 实现boot__map_ segment函数
- 完成page_insert函数
- 完成tlb__out函数
- mips_vm_init
- env___init
- envid2env
- env__setup___vm
- env__alloc
- load__icode_mapper
- load_elf and load_icode
- env_create and env_create_priority
- init.c
- env__run
- start.s
- scse0_3.lds
- kclock_init
- sched_yield
- 完成msyscall 函数
- 完成handle_sys函数
- 实现 sys__mem_alloc函数
- 实现sys_mem_map函数
- 实现sys_mem_unmap函数
- 实现sys_yield函数
- 实现sys_ipc_recv函数和 sys_ipc_can_send函数
- 填写sys_env_alloc函数
- 填写fork函数中关于sys_env_alloc的部分和“子进程”执行的部分
- 填写duppage函数
- 完成page_fault_handler函数
- 完成sys__set__pgfault_handler函数
- 填写pgfault 函数
- 填写sys_set_env_status函数
- 填写fork 函数中关于“父进程”执行的部分
因为每年课程要求可能会有变化,所以尽量看时间较近的代码。
login256学长的代码也不一定能完全适用于2020春的课程要求,在lab3的进程调度中就初见端倪。
内存映射
进程运行
系统调用
Linux中GCC编译器运行第一个程序"Helloworld!"
感谢所有为这门课提供资料、奉献精力的老师、助教、学长和大佬们!