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)) )
{
if( (keycode & KEY_CTRL_FLAG)==KEY_CTRL_FLAG && asciiCode=='d')
{
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命令运行:
运行结果:
谢谢大家!!!