freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)---geekos操作系統(tǒng)的研究與實(shí)現(xiàn)-展示頁

2025-01-25 15:52本頁面
  

【正文】 eFormatentryAddr=headentry。 KASSERT(headentry%4==0)。 KASSERT(exeFileData!=NULL)。 elfHeader *head=(elfHeader*)exeFileData。如下圖所示:在本項(xiàng)目中,我們要完成Parse_ELF_Executable函數(shù),此函數(shù)的作用為根據(jù)ELF文件格式,從exeFileData指向的內(nèi)容中得到ELF文件頭,繼續(xù)分析可得到程序頭和程序代碼段等信息。本項(xiàng)目要完成的就是在系統(tǒng)啟動(dòng)后,從PFAT文件系統(tǒng)將可執(zhí)行文件裝入內(nèi)存,建立進(jìn)程并運(yùn)行得到相應(yīng)的輸出。有兩個(gè)平行視圖。(2)掌握GeekOS在核心態(tài)運(yùn)行用戶程序的原理,為項(xiàng)目2的實(shí)現(xiàn)做準(zhǔn)備。啟動(dòng)bochs在build目錄中執(zhí)行bochs –f bochsrc成功后,運(yùn)行結(jié)果:3.2 project1熟悉ELF文件格式,了解GeekOS系統(tǒng)如何將ELF格式的用戶可執(zhí)行程序裝入內(nèi)存,建立內(nèi)核進(jìn)程并運(yùn)行的實(shí)現(xiàn)技術(shù)。project0,0,PRIORITY_NORMAL,false)。}} }}(2) 首先注釋Main()函數(shù)中TODO宏,并調(diào)用Start_Kernel_Thread函數(shù),將步驟1編寫的函數(shù)地址傳遞給參數(shù),建立一個(gè)內(nèi)核級(jí)進(jìn)程 struct Kernel_Thread *thread。\n39。\r39。Exit(1)。d39。amp。 //低8位為Ascii碼if( (keycode amp。 0x8000)) ) //處理非特殊按鍵的按下事件{ int asciiCode = keycode amp。 //讀取鍵盤按鍵狀態(tài)if(!( (keycode amp。Print(\nWait for your input,Ctrl+d to exit\n)。2 在Main函數(shù)體內(nèi)調(diào)用Start_User_Thread函數(shù),將編寫的函數(shù)地址傳遞給startFunc,建立一個(gè)內(nèi)核進(jìn)程。該函數(shù)首先檢查鍵盤緩沖區(qū)是否有按鍵,如果有,就讀取一個(gè)鍵碼,如果此時(shí)鍵盤緩沖區(qū)中沒有按鍵,就將線程放入鍵盤事件等待隊(duì)列。本項(xiàng)目主要要求設(shè)計(jì)一個(gè)函數(shù)對(duì)鍵盤的中斷進(jìn)行響應(yīng)。若用戶進(jìn)程需要從鍵盤輸入信息,可調(diào)用Wait_For_Key()函數(shù),進(jìn)程調(diào)用該函數(shù)后,會(huì)阻塞進(jìn)入按鍵操作的等待隊(duì)列,直到按鍵操作結(jié)束,進(jìn)程才會(huì)被喚醒。鍵盤的初始化是在Main函數(shù)中調(diào)用Init_Keyboard進(jìn)行的,Init_Keyboard主要功能是設(shè)置初始狀態(tài)下存放鍵盤掃描碼的緩沖區(qū),并為鍵盤中斷設(shè)置處理函數(shù)。項(xiàng)目要求從鍵盤輸入,因此要用到鍵盤處理函數(shù) 。(2)熟悉鍵盤操作函數(shù),編程實(shí)現(xiàn)一個(gè)內(nèi)核進(jìn)程。(2)軟件環(huán)境:標(biāo)準(zhǔn)C語言3 項(xiàng)目實(shí)現(xiàn)3.1 project0熟悉GeekOS的項(xiàng)目編譯、調(diào)試和運(yùn)行環(huán)境,掌握GeekOS運(yùn)行工作過程。 GeekOS的使用:打開linux虛擬機(jī),直接解壓GeekOS壓縮包就可使用, 無需安裝。2 實(shí)驗(yàn)環(huán)境(1)硬件環(huán)境:本次課設(shè)是在虛擬機(jī)上安裝Linux進(jìn)行開發(fā)調(diào)試,具體安裝使用方法如下: 安裝linux虛擬機(jī) 本次課設(shè)的虛擬機(jī)是運(yùn)行在oracle VM Virtualbox上的,下載Linux鏡像文件后,即可按提示即可安裝。Src文件夾中存放系統(tǒng)內(nèi)核源代碼。在inculde文件夾中有g(shù)eekOS和libc兩個(gè)子目錄,,。GeekOS系統(tǒng)的源文件在src目錄下,分為7個(gè)項(xiàng)目:Project0, Project1, Project2, Project3, Project4, Project5, Project6。解壓后的GeekOS目錄結(jié)構(gòu)如圖13所示:。作為一個(gè)課程設(shè)計(jì)平臺(tái),GeekOS由一個(gè)基本的操作系統(tǒng)內(nèi)核作為基礎(chǔ),提供了操作系統(tǒng)與硬件之間的所有必備接口,實(shí)現(xiàn)了系統(tǒng)引導(dǎo)、實(shí)模式到保護(hù)模式的轉(zhuǎn)換、中斷調(diào)用及異常處理、基于段式的內(nèi)存管理,F(xiàn)IFO進(jìn)程調(diào)度算法以及內(nèi)核進(jìn)程、基本的輸入輸出(鍵盤作為輸入設(shè)備、顯示器作為輸出設(shè)備),以及一個(gè)用于存放用戶程序的只讀文件系統(tǒng)PFAT。主要用于操作系統(tǒng)課程設(shè)計(jì),目的是使學(xué)生能夠?qū)嶋H動(dòng)手參與到一個(gè)操作系統(tǒng)的開發(fā)工作中。 操作系統(tǒng)課程設(shè)計(jì)說明書題 目:GeekOS操作系統(tǒng)的研究與實(shí)現(xiàn)系 別: 計(jì)算機(jī)科學(xué)與工程學(xué)院 目錄 1 GeekOS概述 31.1GeekOS系統(tǒng)源代碼結(jié)構(gòu) 32 實(shí)驗(yàn)環(huán)境 53 項(xiàng)目實(shí)現(xiàn) 53.1 project0 5 5 5 5 6 73.2 project1 8 8 8 9 10 113.3 project2 12 12 12 13 15 254 遇到問題及解決方法 265 學(xué)習(xí)總結(jié) 27參考文獻(xiàn) 271 GeekOS概述GeekOS是一個(gè)基于X86架構(gòu)的PC上運(yùn)行的微操作系統(tǒng)內(nèi)核。由美國馬理蘭大學(xué)的教師開發(fā),是一個(gè)用C語言開發(fā)的操作系統(tǒng)。出于教學(xué)目的,這個(gè)系統(tǒng)內(nèi)核設(shè)計(jì)簡(jiǎn)單,卻又兼?zhèn)鋵?shí)用性,它可以運(yùn)行在真正的X86 PC硬件平臺(tái)。學(xué)生可以在Linux或Unix環(huán)境下對(duì)其進(jìn)行功能擴(kuò)充,且其針對(duì)進(jìn)程、文件系統(tǒng)、存儲(chǔ)管理等操作系統(tǒng)核心內(nèi)容分別設(shè)計(jì)了7個(gè)難度逐漸增加的項(xiàng)目供學(xué)生選擇 1.1GeekOS系統(tǒng)源代碼結(jié)構(gòu) 。Scripts目錄下有startProject和removeEmptyConflicts兩個(gè)腳本文件。每個(gè)項(xiàng)目的文件結(jié)構(gòu)都類似,以Project0為例,結(jié)構(gòu)如圖14所示:在build文件夾中,包含系統(tǒng)編譯后的可執(zhí)行文件的文件、軟盤鏡像或是硬盤鏡像、makefile項(xiàng)目管理文件。在scripts文件夾是項(xiàng)目編譯時(shí)要用到的一些腳本文件。在User子目錄中一般是用來存放用戶的測(cè)試文件,在tools子目錄中的代碼是用來建立PFAT測(cè)試文件系統(tǒng)的。 GeekOS:是一個(gè)基于X86架構(gòu)的PC機(jī)上運(yùn)行的微操作系統(tǒng)內(nèi)核,由美國 馬理蘭大學(xué)的教師開發(fā),是一個(gè)用C語言開發(fā)的操作系統(tǒng), GeekOS主要 用于操作系統(tǒng)課程設(shè)計(jì),目的是使學(xué)生能夠?qū)嶋H動(dòng)手參與到一個(gè)操作系統(tǒng)的 開發(fā)工作中。 Bochs安裝和使用:在Linux系統(tǒng)中需先解壓軟件包,然后再配置編譯生成系統(tǒng)文件。(1)搭建GeekOS的編譯和調(diào)試平臺(tái),掌握GeekOS的內(nèi)核進(jìn)程工作原理。該進(jìn)程的功能是:接受鍵盤輸入的字符并顯示到屏幕上,當(dāng)輸入Ctrl+D時(shí),結(jié)束進(jìn)程的運(yùn)行。 文件中。而鍵盤中斷處理過程是:首先從相應(yīng)的I/O端口讀取鍵盤掃描碼,根據(jù)是否按下Shift鍵,分別在鍵值表中尋找掃描碼對(duì)應(yīng)的按鍵值,經(jīng)過處理后將鍵值放入鍵盤緩沖區(qū),最后通知系統(tǒng)重新調(diào)度進(jìn)程。Start_Kernel_Thread函數(shù)主要功能就是建立一個(gè)內(nèi)核線程。這主要通過使用Geekos提供的鍵盤響應(yīng)函數(shù)Wait_For_Key()進(jìn)行鍵盤中斷的響應(yīng)及返回鍵值。于是可分兩步完成:1 編寫函數(shù),函數(shù)功能是:接受鍵盤輸入的按鍵,并將鍵值顯示到顯示器,當(dāng)輸入Ctrl+D退出。編寫的函數(shù)static void keyin(void){ Keycode keycode。while(1){keycode=Wait_For_Key()。 0x0100) || (keycode amp。 0x03ff。 0x4000)==0x4000 amp。 asciiCode==39。) //按下Ctrl鍵{Print(\nBye\n)。 }else{Print(%c,(asciiCode==39。) ? 39。 : asciiCode)。 thread = Start_Kernel_Thread(amp。(3) 執(zhí)行make depend及make命令,(4) 編寫brochs 配置文件vgaromimage: file=/usr/share/bochs/VGABIOSlgpllatestromimage: file=/usr/share/bochs/BIOSbochslatest, address=0xf0000megs: 8boot: afloppya: 1_44=, status=insertedfloppya: 1_44=, status=insertedlog: ./keyboard_serial_delay: 200floppy_mand_delay: 500vga_update_interval: 300000ips: 1000000mouse: enabled=0private_colormap: enabled=0i440fxsupport: enabled=0進(jìn)入/os/ project0/build目錄執(zhí)行 make depend執(zhí)行 make成功之后在build 。(1)修改/geekos/:在函數(shù)Parse_ELF_Executable()中添加代碼,分析ELF格式的可執(zhí)行文件(包括分析得出ELF文件頭、程序頭,獲取可執(zhí)行文件長(zhǎng)度,代碼段、數(shù)據(jù)段等信息),并填充Exe_Format數(shù)據(jù)結(jié)構(gòu)的域值。ELF是UNIX系統(tǒng)實(shí)驗(yàn)室作為應(yīng)用程序二進(jìn)制接口而開發(fā)和發(fā)布的。連接程序視圖 執(zhí)行程序視圖 ELF 頭部ELF 頭部 程序頭部表(可選) 程序頭部表 節(jié)區(qū)1 段 1 ... 節(jié)區(qū) n 段 2 ... ... ... 節(jié)區(qū)頭部表 節(jié)區(qū)頭部表(可選) GeekOS中的用戶程序全部在系統(tǒng)的編譯階段完成編譯和連接,形成可執(zhí)行文件,用戶可執(zhí)行文件保存在PFAT文件系統(tǒng)中。在磁盤中的ELF文件的映像和在內(nèi)存中執(zhí)行程序鏡像間的對(duì)應(yīng)關(guān)系如下圖所示而此過程主要由Spawner函數(shù)實(shí)現(xiàn),其主要經(jīng)過簡(jiǎn)要概述為:先調(diào)用Read_Fully函數(shù)將文件讀入內(nèi)存,后調(diào)用Parse_ELF_Executable函數(shù)分析ELF文件,最后調(diào)用Spawn_Program函數(shù)將可執(zhí)行程序的代碼段和數(shù)據(jù)段等裝入內(nèi)存,此后便可以開始運(yùn)行一個(gè)內(nèi)核級(jí)進(jìn)程了。修改project/project1/src/geekos/:在函數(shù)Parse_ELF_Execut
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1