[操作系统课设]GeeKOS操作系统的研究与实现

一.GeekOS操作系统概论

        1.1教学操作系统

(1)针对RISC结构MIPS处理器

         操作系统:Nachos、OS/161

(2)针对CISC结构Intel IA-32 (or x86)通用处理

         操作系统:MINIX、GeekOS

    我们用到的是:GeekOS

        1)GeekOS:是一个基于X86架构的PC机上运行的微操作系统内核

        2)是一个用C语言开发的操作系统,可以在LinuxUnix环境下对其进行功能扩充

        3)其针对进程文件系统存储管理等操作系统核心内容分别设计了7个难度逐渐增加的项目供学生选择

        4)GeekOS内核设计简单,却又兼备实用性,它可以运行在真正的X86 PC硬件平台

                GeekOS操作系统源文件geekos-0.3.0.zip可以从http://geekos.sourceforge.net下载。

                或者直接下载本篇文章上面附的压缩包

        1.2 GeekOS的项目(我们要做的项目0~5)

                项目0:项目0要求实现一个内核进程,功能是实现从键盘接收按键,并在屏幕上显示。主要是熟悉GeekOS的编译、运行过程,了解计算机系统的启动原理

                项目1:项目要求熟悉ELF文件格式,并编写代码对ELF文件进行分析,并将分析传送给加载器。主要让学生熟悉可执行链接文件(ELF文件)的结构,并学会加载和运行可执行文件。

                项目2:要求学生实现对用户态进程的支持。在项目2实现之前,GeekOS一直使用内核进程。对用户态进程执行的支持包括用户态进程结构的初始化用户进程空间的初始化用户进程切换用户程序导入等。该项目中,存储分配依然使用分段分配方式。实现项目2后,用户就可以使用GeekOS提供的命令行解释器Shell运行一些命令来执PFAT文件系统内的用户测试程序。

                项目3:要求学生改进GeekOS的调度程序,实现基于4反馈队列的调度算法,并实现信号量,支持进程间通信。

                项目4:要求学生实现分页虚存管理,以替代在项目1和项目2中采用的分段存储管理。实现分页虚存管理后。系统在内存不够的情况下就可以将部分页调到硬盘,以释放内存实现虚拟存储技术。

                项目5:要求实现GOSFS文件系统。由于GeekOS使用了虚拟文件系统,可以加载不同的文件系统,而系统默认加载的是PFAT只读文件系统。在这个项目中,需要实现一个多级目录的、可读写的文件系统。

        1.3GeekOS系统源代码结构

                GeekOS操作系统源文件geekos-0.3.0.zip可以从http://geekos.sourceforge.net下载。

                点开src:

                点开任何一个project:

二. GeekOS实验项目开发环境的搭建        

(1) 下载并安装 VMware虚拟机;(下面是我踩到坑时参考的一些文章)

最新超详细VMware虚拟机安装完整教程 - 付宗乐 - 博客园 (cnblogs.com)

VMware下载安装教程(超详细)-CSDN博客

安装vm虚拟机 Failed to install the hcmon driver 解决方法 - 知乎 (zhihu.com)

VMware安装时出现 “您无权输入许可证密钥,请使用系统管理员账户重试”解决方案_你无权输入许可证密钥,请启用管理员-CSDN博客
        如果还是解决不了的话只能去橙色软件找人帮忙安装了

(2)在 VMware虚拟机上安装 linux;

VMware虚拟机安装Linux教程(超详细)_vmware安装linux虚拟机-CSDN博客
(3)在 VMware虚拟机上的 linux 环境下对 GeekOS源文件进行编译和链接,编译成功后生成 fd.img 软盘映射文件和 hd.img 硬盘映射文件;
(4) 下载并安装系统仿真工具 Bochs;  
Bochs x86 PC emulator download | SourceForge.net
(5)配置 Bochs 环境配置文件 Bochsrc.txt;
(6)启动 Boch 环境,在提示中出现 GeekOS的欢迎界面;
(7)GeekOS系统编译和仿真成功。
(8) 开 始 安 装 好 bochs 之 后 , 对 bochsrc.txt 进 行 配 置 , 考 虑 到 bochs 自 带bochsrc-sample.txt 的比较复杂,因此对其进行改写,方便日后阅读。且将该配置文件放在各个项目之下,方便进行修改。Bochs使用配置文件中的信息来寻找使用的磁盘镜像文件,运行环境配置以及其他一些模拟器的配置信息。以project0为例,该项目的配置文件如下:

megs: 8   

//megs用于设置模拟系统的内存,这里使用的是8MB。

boot: a  

  //引导盘镜像文件, boot用来定义模拟机器中踊跃引导启动的驱动器,可以为软盘硬盘或CDROM,这里使用虚拟软盘A来进行引导系统。

floppya: 1_44=fd.img, status=inserted

// floppya和floppyb分别表示第一个软驱和第二个软驱,如果需要从一个软盘上来引导系统则floppya就需要指向一个可引导的磁盘。

log: ./bochs.out    

// log用于记录日志信息。

#Project 1以后的项目还需要ata串口驱动器,需要加上:

ata0-master: type=disk, path=diskc.img, mode=flat, cylinders=40, heads=8, spt=64

//ata0用于启动模拟系统中的ATA通道,对于每个通道必须指明两个IO基地址和一个中断请求号.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

出差的焦糖玛奇朵朵朵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值