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

桂林电子科技大学大三操作系统课设(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.\n");

    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("\n---------BYE!--------\n");
                    Exit(1);                      
                }
                else
                {
                    Print("%c",(asciiCode=='\r') ? '\n' : 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命令运行:
这里写图片描述
运行结果:

这里写图片描述

谢谢大家!!!

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值