谁会做geekos里的那些project?

来源:百度知道 编辑:UC知道 时间:2024/05/28 09:33:41
我正在做geekos的project,求project1~6的代码

project2的实现
6.1 项目要求及分析
(1)修改src/GeekOS/user.c文件中的函数Spawn(),其功能是生成一个用户级进程。
(2)src/GeekOS/user.c文件中的函数Switch_To_User_Contex(),调度程序在执行一个新的进程前调用该函数以切换用户地址空间。
(3)src/GeekOS/elf.c文件中的函数Prase_ELF_Executable()。
(4)Destry_User_Contex(),Load_User_Programe(),Copy_From_User(),Copy_To_User(),Switch_To_Address_Space().
(5)src/GeekOS/kthread.c文件中Start_User_Thread函数和Setup_User_Thread函数。
(6)src/GeekOS/kthread.c相关函数的修改。
6.2 具体实现代码
User.c中
int Spawn(const char *program, const char *command, struct Kernel_Thread **pThread)
{
int rc;
char *exeFileData = 0;
ulong_t exeFileLength;
struct User_Context *userContext = 0;
struct Kernel_Thread *process = 0;
struct Exe_Format exeFormat;
if ((rc = Read_Fully(program, (void**) &exeFileData, &exeFileLength)) != 0 ||
(rc = Parse_ELF_Executable(exeFileData, exeFileLength, &exeFormat)) != 0 ||
(rc = Load_User_Program(exeFileData, ex