Geekos操作系统的研究与实现--操作系统课程设计.doc

Geekos操作系统的研究与实现--操作系统课程设计.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计报告题 目:Geekos操作系统的研究与实现 专 业: 学 号: 学生姓名: 指导教师: 2012年3月16日 目录TOC \o 1-3 \h \u HYPERLINK \l _Toc320207738 一、 实验目的 PAGEREF _Toc320207738 \h 2 HYPERLINK \l _Toc320207739 二、 项目设计要求 PAGEREF _Toc320207739 \h 3 HYPERLINK \l _Toc320207740 三、 开发环境的建立 PAGEREF _Toc320207740 \h 4 HYPERLINK \l _Toc320207741 1. 开发环境的介绍 PAGEREF _Toc320207741 \h 4 HYPERLINK \l _Toc320207742 2. 开发环境的构建 PAGEREF _Toc320207742 \h 4 HYPERLINK \l _Toc320207743 四、 项目设计原理 PAGEREF _Toc320207743 \h 5 HYPERLINK \l _Toc320207744 五、 项目设计的实现 PAGEREF _Toc320207744 \h 6 HYPERLINK \l _Toc320207745 1. Project0项目的具体实现 PAGEREF _Toc320207745 \h 6 HYPERLINK \l _Toc320207746 2. Project1项目的具体实现 PAGEREF _Toc320207746 \h 8 HYPERLINK \l _Toc320207747 3. Project2项目的具体实现 PAGEREF _Toc320207747 \h 9 HYPERLINK \l _Toc320207748 六、 系统编译运行的结果 PAGEREF _Toc320207748 \h 20 HYPERLINK \l _Toc320207749 七、 遇到的问题和解决方法 PAGEREF _Toc320207749 \h 23 HYPERLINK \l _Toc320207750 八、 课程设计总结 PAGEREF _Toc320207750 \h 24实验目的Project0:熟悉GeekOS的项目编译、调试和运行环境,掌握GeekOS运行工作过程。Project1:熟悉ELF文件格式,了解GeekOS系统如何将ELF格式的可执行程序装入到内存,建立内核进程并运行的实现技术。Project2:扩充GeekOS操作系统内核,使得系统能够支持用户级进程的动态创建和执行。项目设计要求Project0搭建GeekOS的编译和调试平台,掌握GeekOS的内核进程工作原理。熟悉键盘操作函数,编程实现一个内核进程。该进程的功能是:接收键盘输入的字符并显示到屏幕上,当输入ctrl+d时,结束进程的运行。Project1修改/geekos/elf.c文件:在函数Parse_ELF_Executable( )中添加代码,分析ELF格式的可执行文件(包括分析得出ELF文件头、程序头,获取可执行文件长度,代码段、数据段等信息),并填充Exe_Format数据结构中的域值。在Linux环境下编译系统得到GeekOS镜像文件。编写一个相应的bochs配置文件。在bochs中运行GeekOS系统显示结果。Project2:要求用户对以下几个文件进行修改:“src/GeekOS/user.c”文件中的函数Spawn(),其功能是生成一个新的用户级进程;“src/GeekOS/user.c”文件中的函数Switch_To_User_Context(),调度程序在执行一个新的进程前调用该函数以切换用户地址空间;“src/GeekOS/elf.c”文件中的函数Parse_ELF_Executable()。该函数的实现要求和项目1相同。“src/GeekOS/userseg.c”文件中主要是实现一些为实现对“src/GeekOS/user.c”中高层操作支持的函数。“src/GeekOS/kthread.c”文件中的Start_User_Thread函数和Setup_User_Thread函数。Setup_User_Thread()函数的功能是为进程初始化内核堆栈,堆栈中是为进程首次进入用户态运行时设置处理器状态要使用的数据。Start_User_Thread()是一个高层操作,该函数使用User_Context对象开始一个新进程。“src/GeekOS/kthread.c”文件中主要是实现用户程序要求

文档评论(0)

好老师 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档