桂林电子科技大学操作系统课程设计(一)

2019-04-13 14:52发布

class="markdown_views prism-kimbie-light">

桂林电子科技大学大三操作系统课设(project0)

1.project0 目的:熟悉GeekOS的项目编译、调试和运行环境,掌握GeekOS运行工作过程。

2.要求:熟悉键盘操作函数,编程实现一个内核进程。该进程的功能是:接收键盘输入的字符并显示到屏幕上,当输入ctrl+d时,结束进程的运行。

3.环境:linux环境+boch

4.操作步骤:

    (1).编写main函数
    (2)在main()函数前添加 void project0()函数的定义
    (3)在main()函数下添加project0()函数
void project0() { Print("To Exit hit Ctrl + d. "); Keycode keycode; while(1) { if( Read_Key(&keycode) ) //读取键盘按键状态 { if(!( (keycode & KEY_SPECIAL_FLAG) || (keycode & KEY_RELEASE_FLAG)) ) //只处理非特殊按键的按下事件 { //低8位为Ascii码,KEY_CTRL_FLAG 0x4000 0x4064 & 0xff = 0x0064 if( (keycode & KEY_CTRL_FLAG)==KEY_CTRL_FLAG && asciiCode=='d') //按下Ctrl键 { Print(" ---------BYE!-------- "); Exit(1); } else { Print("%c",(asciiCode==' ') ? ' ' : asciiCode); } } } } }
    (4)在main()中添加线程
struct Kernel_Thread *thread; thread=Start_Kernel_Thread(&project0,0,PRIORITY_NORMAL,false);
    (5)还要配置一下环境,差不多要完成了,首先,把include文件夹下面的sigment.h的定义下的变量修改一下见图:
这里写图片描述

切记,baseHigh一定要加上 “:8”大小值

    (6)最后配置一下.bochs 这里的bochs指的是build文件夹下的,而不是和main()函数同一目录下的,把环境配成如下代码:
megs: 8 boot: a floppya: 1_44=fd.img, status=inserted
    (6)运行结果:
首先编译一下文件,生成镜像
用make命令,生成fd.img命令
这里写图片描述 接着是运行用bochs命令运行:
这里写图片描述
运行结果: 这里写图片描述

谢谢大家!!!