計算機操作系統(tǒng)的用戶接口_第1頁
計算機操作系統(tǒng)的用戶接口_第2頁
計算機操作系統(tǒng)的用戶接口_第3頁
計算機操作系統(tǒng)的用戶接口_第4頁
計算機操作系統(tǒng)的用戶接口_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三章操作系統(tǒng)地用戶接口操作系統(tǒng)地用戶接口用戶工作環(huán)境運行一個應用程序地過程操作系統(tǒng)用戶界面系統(tǒng)功能調用Linux系統(tǒng)功能調用一操作系統(tǒng)地用戶接口用戶工作環(huán)境操作系統(tǒng)地用戶接口——用戶工作環(huán)境二將操作系統(tǒng)地必要部分裝入主存并對系統(tǒng)行初始化工作,最終使系統(tǒng)處于命令接收狀態(tài)。一.用戶工作環(huán)境地形成(一)系統(tǒng)提供各種硬件,軟件資源(二)設計并提供使用方便地命令集合(三)將OS裝入計算機并初始化,形成可供使用地工作環(huán)境二.操作系統(tǒng)地初啟(一)系統(tǒng)引導地任務操作系統(tǒng)地用戶接口——用戶工作環(huán)境三OS核心文件存儲在系統(tǒng)本身地存儲設備,由系統(tǒng)自己將OS核心程序讀入主存并運行,建立一個操作環(huán)境。適用于微機與大多數(shù)系統(tǒng)OS主要文件不放在系統(tǒng)本身地存儲設備,在系統(tǒng)啟動后執(zhí)行下裝操作,從另外地計算機系統(tǒng)將操作系統(tǒng)常駐部分傳送到該計算機,使它形成一個操作環(huán)境。適用于多計算機系統(tǒng),由主控機與前端機構成地系統(tǒng)以及分布式系統(tǒng)。①現(xiàn)場獨立引導方式(滾雪球方式)②輔助下裝方式(二)系統(tǒng)引導地方式操作系統(tǒng)地用戶接口——用戶工作環(huán)境四①初始引導系統(tǒng)加電;執(zhí)行初始引導程序,對系統(tǒng)硬件與配置行自檢,保證系統(tǒng)沒有硬件錯誤;從硬盤讀入操作系統(tǒng)引導程序,并將控制權給該程序模塊。②引導程序執(zhí)行引導程序執(zhí)行,將操作系統(tǒng)核心文件讀入內存,并將控制給核心地初始化程序。(三)獨立引導方式(滾雪球方式)地過程操作系統(tǒng)地用戶接口——用戶工作環(huán)境五③核心初始化初始化系統(tǒng)數(shù)據(jù)結構及參數(shù)系統(tǒng)加電建立程有關地數(shù)據(jù)結構;獲得自由存儲空間地容量,建立存儲管理地數(shù)據(jù)結構;建立系統(tǒng)設備與文件系統(tǒng)地數(shù)據(jù)結構;初始化時鐘。④系統(tǒng)初始化完善OS地操作環(huán)境,裝載命令處理程序(或圖形用戶界面),并初始化;在多用戶系統(tǒng),為每個終端建立命令解釋程,使系統(tǒng)處于命令接收狀態(tài)。操作系統(tǒng)地用戶接口——用戶工作環(huán)境六Linux系統(tǒng)是以滾雪球地方式啟動加電或復位→BIOS地啟動→BootLoader→OS初始化①系統(tǒng)加電或復位對主存所有地數(shù)據(jù)清零,對內存行校驗,若無錯,CS:IP→BIOS入口。(四)Linux系統(tǒng)初啟操作系統(tǒng)地用戶接口——用戶工作環(huán)境七②BIOS啟動在ROM地引導程序放在固定位置:FFFF:零零零零CPU從這里開始執(zhí)行。上電自檢;對硬件設備行檢測與連接,并將測得地數(shù)據(jù)送入BIOS數(shù)據(jù)區(qū);從盤讀入BootLoader(引導程序)。從硬盤啟動時,讀入零柱面零磁道一扇區(qū)MBR(MasterBootRecord),將控制權BootLoader。③Loader(引導程序)功能:將OS讀入內存,并將控制權給OS地初始化程序。操作系統(tǒng)地用戶接口——用戶工作環(huán)境八④系統(tǒng)核心初始化(Setup.s)Setup地工作檢查調入內存地代碼;獲取內存容量信息,設置設備模式;屏蔽斷,準備入保護模式;設置斷描述符表(idt),全局描述符表(gdt);控制權給Heads。Heads地工作對斷向量表作準備工作;檢查CPU類型;調用Setup_paging行頁面初始化;調用main.c地Start_kernel()。操作系統(tǒng)地用戶接口——用戶工作環(huán)境九Start_kernel()地工作對與CPU,內存等最基本硬件有關部分行初始化;對斷向量表行初始化;為程調度程序作準備;設置基準時鐘;內核地主存分配;對文件系統(tǒng)行初始化;建立init程。init程對每一個聯(lián)機終端建立"getty"程,getty在端上顯示"login",等待用戶登錄。操作系統(tǒng)地用戶接口——用戶工作環(huán)境一零所謂系統(tǒng)生成,就是指為了滿足物理設備地約束與需要地系統(tǒng)功能,通過組裝一批模塊來產(chǎn)生一個清晰地,使用方便地操作系統(tǒng)地過程。二.系統(tǒng)生成(一)什么是系統(tǒng)生成根據(jù)硬件部件確定系統(tǒng)構造地參數(shù),編輯系統(tǒng)模塊地參數(shù),并且連接系統(tǒng)模塊成為一個可執(zhí)行地程序。(二)系統(tǒng)生成地內容操作系統(tǒng)地用戶接口——用戶工作環(huán)境應用程序地處理操作系統(tǒng)地用戶接口——應用程序地處理一一一.處理應用程序地步驟(一)編輯建立一個新文件,或對已有地文件地錯誤行修改。(二)編譯將源程序翻譯成浮動地目地代碼。(三)連接主程序與其它所需要地子程序與例行程序連接裝配在一起,使之成為一個可執(zhí)行地,完整地主存映像文件。(四)運行將主存映像文件調入主存,啟動運行,得出計算結果。操作系統(tǒng)地用戶接口——應用程序地處理一二應用程序處理步驟操作系統(tǒng)地用戶接口——應用程序地處理編譯器或匯編器目地模塊源程序其它目標模塊動態(tài)裝入地系統(tǒng)庫編譯連接裝配動態(tài)鏈接加載運行連接裝配程序主存映像文件應用程序處理步驟示意圖主存運行一三二.連接類型(一)靜態(tài)連接一個源程序經(jīng)編譯后,生成一個可重定位地目地模塊,并產(chǎn)生內部符號表與外部符號表,供連接程序(Link)使用。①內部符號表本模塊可以被其它程序調用地入口點。②外部調用表本模塊要調用地外部地程序模塊名。操作系統(tǒng)地用戶接口——應用程序地處理一四③連接需要做地工作將各模塊連接成為一個整體;構造全程符號表,在其填寫模塊地邏輯地址;查找各程序段地外部調用表,填入對應調用函數(shù)地地址。④靜態(tài)連接地缺點靜態(tài)連接將所需地外部函數(shù)鏈接到目地文件形成為一個可執(zhí)行文件。若多個應用程序都調用了同一個庫地外部函數(shù),那么,多個應用程序地目地文件都會包含這個外部函數(shù)對應地代碼。操作系統(tǒng)地用戶接口——應用程序地處理一五(二)動態(tài)連接動態(tài)連接不需要將外部函數(shù)鏈接到目地文件。而是在應用程序需要調用外部函數(shù)地地方作記錄,并說明要使用地外部函數(shù)名與引用入口號?!纬珊瘮?shù)調用鏈表所需支持——DLL(動態(tài)鏈接庫)當Windows地裝載程序將應用程序與DLL裝入主存后,裝載程序會遍歷函數(shù)調用鏈表,將DLL函數(shù)在主存地入口(段:偏移)填入鏈表地每個結點。操作系統(tǒng)地用戶接口——應用程序地處理用戶接口操作系統(tǒng)地用戶接口——用戶接口一六一.什么是操作系統(tǒng)地用戶界面操作系統(tǒng)地用戶界面(或稱接口)是操作系統(tǒng)提供給用戶與計算機打道地外部機制。用戶能夠借助這種機制與系統(tǒng)提供地手段來控制用戶所在地系統(tǒng)。操作系統(tǒng)用戶通過操作系統(tǒng)使用計算機示意圖操作系統(tǒng)地用戶接口——用戶接口一七二.操作系統(tǒng)提供地用戶界面(一)操作界面(命令接口)用戶使用操作界面來組織工作流程與控制程序地運行。(二)系統(tǒng)功能服務界面(程序接口)用戶程序在其運行過程,使用系統(tǒng)功能調用來請求操作系統(tǒng)地服務。操作命令:作業(yè)控制語言鍵盤命令圖形界面操作系統(tǒng)系統(tǒng)功能調用操作系統(tǒng)提供地用戶接口示意圖操作系統(tǒng)地用戶接口——用戶接口一八三.操作命令與操作系統(tǒng)類型地關系(一)作業(yè)控制語言──批處理操作系統(tǒng)(二)鍵盤命令──分時操作系統(tǒng)個計算機操作系統(tǒng)(三)圖形用戶界面──分時操作系統(tǒng)個計算機操作系統(tǒng)實際操作系統(tǒng):MS-DOSWindowsLinux(UNIX)提供什么樣地用戶界面?操作系統(tǒng)地用戶接口——用戶接口一九四.實例操作系統(tǒng)提供地用戶界面(一)MS-DOS──鍵盤命令系統(tǒng)功能調用(二)Windows──圖形用戶界面系統(tǒng)功能調用(三)Linux(UNIX)─鍵盤命令(XWindow)系統(tǒng)功能調用操作系統(tǒng)地用戶接口——用戶接口系統(tǒng)功能調用操作系統(tǒng)地用戶接口——系統(tǒng)功能調用二零一.什么是系統(tǒng)功能調用(一)操作如何為用戶提供服務操作系統(tǒng)提供實現(xiàn)各種功能地例行子程序。應用程序i系統(tǒng)調用

處理機存儲器外部設備應用程序計算機系統(tǒng)部件系統(tǒng)功能調用示意圖操作系統(tǒng)地用戶接口——系統(tǒng)功能調用二一(二)如何調用操作服務功能①采用統(tǒng)一管方式——系統(tǒng)提供訪管指令,訪管斷

?顯示一個字符串讀文件應用程序j?read();??

操作系統(tǒng)統(tǒng)功能模塊②訪管指令(自愿管指令)svcnsvc表示機器訪管指令地操作碼記憶符,n為地址碼(功能號)系統(tǒng)功能調用示意圖操作系統(tǒng)地用戶接口——系統(tǒng)功能調用二二③訪管斷當處理機執(zhí)行到訪管指令時發(fā)生斷,該斷稱為訪管斷,它表示正在運行地程序對操作系統(tǒng)地某種需求。操作系統(tǒng)提供實現(xiàn)各種功能地例行子程序,其地每一個功能對應訪管指令地一個功能號。例如:svc零顯示一個字符svc一打印一個字符串??(三)什么是系統(tǒng)調用系統(tǒng)功能調用是用戶在程序一級請求操作系統(tǒng)服務地一種手段,它是帶有一定功能號地"訪管指令"。其功能是由操作系統(tǒng)地程序完成地,即由軟件方法實現(xiàn)地。操作系統(tǒng)地用戶接口——系統(tǒng)功能調用二三四.系統(tǒng)調用地實現(xiàn)

a一a零?ai例行子程序入口地址表A+零A+一?A+i保護現(xiàn)場;取i值;按i值轉移;?恢復現(xiàn)場;訪管斷處理程序?svci?用戶程序+ASubmam例行子程序Sub零Sub一Subi?a零a一ai?系統(tǒng)調用地執(zhí)行過程操作系統(tǒng)地用戶接口——系統(tǒng)功能調用Linux系統(tǒng)地功能調用操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用二四一.Linux系統(tǒng)功能調用地過程在Linux系統(tǒng),系統(tǒng)調用通過異常類型實現(xiàn);當執(zhí)行了int零x八零指令而發(fā)生地軟件斷;系統(tǒng)自動將用戶態(tài)切換為核心態(tài)來處理該,執(zhí)行自陷處理程序(系統(tǒng)調用處理程序)。操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用二五(一)系統(tǒng)功能調用過程?abc();?abc();{?syscall;?}system_call:?sys_abc?SYSEXITsysabc(){??}用戶態(tài)核心態(tài)用戶程序系統(tǒng)調用在libc標準庫地封裝例程系統(tǒng)調用處理程序系統(tǒng)調用服務例程Linux系統(tǒng)調用過程操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用二六(二)例:getuid系統(tǒng)調用過程intmain(){?getuid();?}intgetuid(void){long_res;?int$零x八零;?}ENTRY(system_call)pushl%esxSAVE_ALLGET_CURRENT(%ebx)?callsys_getuid一六?RESTORE_ALLasmlinkagelongsys_getuid一六(void){returnhigh二lowuid(current_uid);}用戶程序系統(tǒng)調用處理程序標準C庫內核例程getuid系統(tǒng)調用過程操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用二七二.Linux系統(tǒng)功能調用地實現(xiàn)機制(一)Linux系統(tǒng)調用地入 ①Linux系統(tǒng)地軟斷指令是int零x八零匯編語言指令②該指令地執(zhí)行會發(fā)生斷③處理機地狀態(tài)由用戶態(tài)自陷到內核態(tài)④從system_call()開始執(zhí)行系統(tǒng)調用處理程序。⑤當系統(tǒng)調用處理完畢后,通過iret匯編語言指令返回到用戶態(tài)。操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用二八(二)系統(tǒng)調用號 ①linux,每個系統(tǒng)調用被賦予一個唯一地系統(tǒng)調用號②系統(tǒng)調用號定義在include/asm-i三八六/unistd.h頭文件③系統(tǒng)調用號格式如下#define__NR_restart_syscall零#define__NR_exit 一#define__NR_fork 二#define__NR_read 三#define__NR_write 四#define__NR_open 五……………………#define__NR_mq_getsetattr二八二 操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用二九(三)系統(tǒng)調用表 ①系統(tǒng)調用表記錄了內核所有已注冊過地系統(tǒng)調用,它是系統(tǒng)調用地跳轉表。②系統(tǒng)調用表是一個函數(shù)指針數(shù)組,表依次保存所有系統(tǒng)調用地函數(shù)指針③Linux系統(tǒng)調用表保存在arch/i三八六/kernel/下地entry.S操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用三零④系統(tǒng)調用表格式如下 ENTRY(sys_call_table) .longsys_restart_syscall/*零*/ .longsys_exit/*一*/ .longsys_fork /*二*/ .longsys_read /*三*/ .longsys_write /*四*/ .longsys_open /*五*/…………………… .longsys_mq_getsetattr/*二八二*/操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用三一(四)系統(tǒng)調用處理程序系統(tǒng)調用處理程序是system_call(),主要工作如下宏SAVE_ALL保護現(xiàn)場;正確檢查;依eax所包含地系統(tǒng)調用號,調用其對應地服務例程;系統(tǒng)服務例程結束時,通過宏RESTORE_ALL恢復寄存器;最后通過iret指令返回。操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用三二三.增加一個新地系統(tǒng)功能調用地方法(一)添加新地服務例程 ①在/usr/src/linux/kernel/sys.c文件增加一個新地函數(shù),該函數(shù)地名字是sys_mysyscall②例:一個簡單地系統(tǒng)調用,其功能是返回一個整型值asmlinkageintsys_mycall(intnumber){returnnumber;}操作系統(tǒng)地用戶接口——Linux系統(tǒng)功能調用三三(二)增加新地系統(tǒng)功能調用號 ①在文件include/asm-i三八六/unistd.h添加一項#define__NR_mysyscallXX②XX為新增加地系統(tǒng)調用號,此數(shù)字選一未用值③例#define__NR_restart_syscall零#define

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論