Geekos操作系统全部实验实现报告.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Geekos操作系统全部实验实现报告

计算机系统实验软件报告 题目:Geekos操作系统的研究与实现(全部项目) 院 (系): 计算机科学与工程学院 专 业: XXXXX 学生姓名: 周长劭 学 号: XXXXXXX 指导教师: 黄廷辉 2012年04月23日 目 录 1 GeekOS简介 3 1.1GeekOS系统源代码结构 3 2 实验环境 4 3 项目实现 4 3.1 Project0 4 3.11项目设计目的 4 3.12项目设计要求 4 3.13项目设计原理 4 3.13项目具体实现 5 3.14调试运行结果 5 3.2 Project1 6 3.21项目设计目的 6 3.22项目设计要求 6 3.23项目设计原理 6 3.23项目具体实现 7 3.24调试运行结果 7 3.3 Project2 8 3.31项目设计目的 8 3.32项目设计要求 8 3.33项目设计原理 9 3.33项目具体实现 10 3.34调试运行结果 11 3.4 Project3 11 3.41项目设计目的 11 3.42项目设计要求 11 3.43项目设计原理 11 3.43项目具体实现 13 3.44调试运行结果 14 3.5 Project4 15 3.51项目设计目的 15 3.52项目设计要求 15 3.53项目设计原理 15 3.53项目具体实现 15 3.54调试运行结果 15 3.6 Project5 15 3.61项目设计目的 15 3.62项目设计要求 15 3.63项目设计原理 15 3.63项目具体实现 15 3.64调试运行结果 15 4 遇到问题及解决方法 15 5 学习总结 16 参考文献 16 1 GeekOS简介 GeekOS是一个基于X86架构的PC上运行的微操作系统内核。由美国马理兰大学的教师开发,是一个用C语言开发的操作系统。主要用于操作系统课程设计,目的是使学生能够实际动手参与到一个操作系统的开发工作中。出于教学目的,这个系统内核设计简单,却又兼备实用性,它可以运行在真正的X86 PC硬件平台。作为一个课程设计平台,GeekOS由一个基本的操作系统内核作为基础,提供了操作系统与硬件之间的所有必备接口,实现了系统引导、实模式到保护模式的转换、中断调用及异常处理、基于段式的内存管理,FIFO进程调度算法以及内核进程、基本的输入输出(键盘作为输入设备、显示器作为输出设备),以及一个用于存放用户程序的只读文件系统PFAT。学生可以在Linux或Unix及Windows Cygwin环境下对其进行功能扩充,且其针对进程、文件系统、存储管理等操作系统核心内容分别设计了7个难度逐渐增加的项目供学生选择 1.1GeekOS系统源代码结构 GeekOS操作系统源文件geekos-0.3.0.zip可以从下载。解压后的GeekOS目录结构如图1-3所示: 在doc目录下文件hacking.pdf和index.htm是GeekOS系统的参考文档。Scripts目录下有startProject和removeEmptyConflicts两个脚本文件。GeekOS系统的源文件在src目录下,分为7个项目:Project0, Project1, Project2, Project3, Project4, Project5, Project6。每个项目的文件结构都类似,以Project0为例,结构如图1-4所示: 在build文件夹中,包含系统编译后的可执行文件的文件、软盘镜像或是硬盘镜像、makefile项目管理文件。在inculde文件夹中有geekOS和libc两个子目录,在geekOS子目录中有kthread.h,keyboard.h等头文件,在libc中包含有geekOS支持的C语言标准函数string.H头文件。在scripts文件夹是项目编译时要用到的一些脚本文件。Src文件夹中存放系统内核源代码,用户修改geekOS系统时要修改的源代码如main.c都位于这个目录中。在User子目录中一般是用来存放用户的测试文件,在tools子目录中的代码是用来建立PFAT测试文件系统的。 2 实验环境 1?下载并安装2?Bochs最新版安装和使用3 项目实现 3.1 Project0 3.11项目设计目的 熟悉GeekOS的项目编译、调试和运行环境,掌握GeekOS运行工作过程。 3.12项目设计要求 (1)搭建GeekOS的编译和调试平台,掌握GeekOS的内核进程工作原理。 (2)熟悉键盘操作函数,编程实现一个内核进程。该进程的功能是:接受键盘输入的字符并显示到屏幕上并计数,

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档