GeekOS操作系统实验报告

GeekOS操作系统实验报告

ID:47105155

大小:301.00 KB

页数:19页

时间:2019-08-04

GeekOS操作系统实验报告_第1页
GeekOS操作系统实验报告_第2页
GeekOS操作系统实验报告_第3页
GeekOS操作系统实验报告_第4页
GeekOS操作系统实验报告_第5页
资源描述:

《GeekOS操作系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、GeekOS操作系统的研究与实现题目:GeekOS操作系统的研究与实现系别:计算机科学与工程学院专业:xxxxx学生姓名:xxxxx学号:xxxxx指导教师:xxxxx2011年6月30日GeekOS操作系统的研究与实现一、实验目的计算机操作系统是管理计算机系统软件、硬件资源,控制程序运行,改善人机界面,提供各种服务,合理组织计算机工作流程和为用户有效使用计算机提供良好的运行环境的系统软件,它为用户使用计算机提供一个方便、灵活、安全、可靠的工作环境,也是其他应用软件赖以存在的基础。不仅是高校计算机专业学生需要了解它,从事计算机行业的人员也需要深入了解它。由于目前高

2、校开设的计算机操作系课程中偏重对理论知识的要求,实践环境有限,并偏重注重学生对一些经典算法的实践,学生并没有机会了解、实践操作系统的内部结构和实现技术。GeekOs操作实验是一个用C语言编写开发的操作系统,学生可以在Linux或UNIX环境下对其进行功能扩展。通过本次实验,学生可以深入了解计算机操作系统的概念和作用;理解PC启动原理,深入体会计算机启动过程,包括操作系统的引导、内核程序的导入;进一步了解和参与实践操作系统进程的管理,理解进程的状态的转换、进程的调度等;通过本实验,学生还可以理解存储器分段分页管理机制和文件系统相关的概念和技术。本次实验目的的具体目的

3、为:熟悉GeekOS的项目编译、调试和运行环境,掌握GeekOS工作过程;熟悉ELF文件格式,了解GeekOS系统如何将ELF格式的用户可执行文件程序装入到内存,建立内核进程并运行的实现技术;扩充GeekOS操作系统内核,使得系统支持用户进程的动态创建和执行。学生参与到操作系统的开发工作中,实现操作系统的功能改进或再开发,以增加学生对操作系统核心技术的时间,达到理论与实践相结合。二、设计环境GeekOS是一个基于X86架构的PC上运行的微操作系统内核,由美国马理兰大学的教师开发,主要用于操作系统课程设计,目的是使学生能够实际动手参与到一个操作系统的开发工作中。出于

4、教学目的,这个系统内核设计简单,却又兼备实用性,它可以运行在真正的X86PC硬件平台。作为一个课程设计平台,GeekOS由一个基本的操作系统内核作为基础,提供了操作系统与硬件之间的所有必备接口,实现了系统引导、实模式到保护模式的转换、中断调用及异常处理、基于段式的内存管理、FIFO进程调度算法以及内核进程、基本的输入输出(键盘作为输入设备,显示器作为输出设备),以及一个用于存放用户程序的只读文件系统PFAT。本实验要求学生使用GeekOS作为操作系统框架,学生可以使用Linux或者UNIX环境对GeekOS其进行扩充,也可以使用Windows下的Cygwin工具进

5、行开发。三、项目设计要求为达到实验目的效果,实验要求针对进程管理等操作系统核心内容进行相应的3项目要求。其项目和要求为:1.project01)建GeekOs的编译和调试平台,掌握GeekOs的内核进程工作原理;2)熟悉键盘操作函数,编程实现一个内核进程。该进程的功能是:接收键盘输入的字符并显示到屏幕中,当输入Ctrl+D时,结束进程运行。2.project11)修改/geekos/elf.c文件:在函数Parse_ELF_Executable()中添加代码,分析ELF格式文件(包括分析得出ELF文件头、程序头,获取可执行文件长度,代码段、数据段等信息),并填充E

6、xe_Format数据结构中的域值。2)掌握GeekOs在核心态用户程序的原理,为实现项目2的实现做准备。1.project2本项目需要阅读/src/geekos目录中的entry.c、lowlevel.asm、kthread.c、userseg.c,其中在userseg.c中主要关注Destroy_User_Context()和Load_User_Program()两个函数。项目要求为:1)user.c:完成函数Spawn()和Switch_To_User_Context()。2)elf.c:完成函数Parse_ELF_Executable(),要求与项目1相同

7、。3)userseg.c:完成函数Destroy_User_Context()、Load_User_Program()、Copy_From_User()、Copy_To_User()和Switch_To_Address_Space()。4)kthread.c:完成函数Setup_User_Thread()和Start_User_Thread()。5)syscall.c:完成函数Sys_Exit()、Sys_PrintString()、Sys_GetKey()、Sys_SetAttr()、Ss_GetCursor()、Sys_PutCursor()、Sys_Spaw

8、n()、S

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。