桂林电子科技大学操作系统课程设计(一)
生活随笔
收集整理的這篇文章主要介紹了
桂林电子科技大学操作系统课程设计(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
桂林電子科技大學大三操作系統課設(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 = 0x0064if( (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命令運行:
運行結果:
謝謝大家!!!
總結
以上是生活随笔為你收集整理的桂林电子科技大学操作系统课程设计(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1732):前端系列javas
- 下一篇: 前端学习(1926)vue之电商管理系统