版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、2022-2-232022-2-231 12022-2-232022-2-232 27.1 7.1 聯(lián)機命令接口聯(lián)機命令接口 7.2 Shell7.2 Shell命令語言命令語言 7.3 7.3 系統(tǒng)調(diào)用系統(tǒng)調(diào)用 7.4 UNIX7.4 UNIX系統(tǒng)調(diào)用系統(tǒng)調(diào)用 7.5 7.5 圖形用戶接口圖形用戶接口 內(nèi)容概述內(nèi)容概述2022-2-232022-2-233 37.1 聯(lián)機命令接口聯(lián)機命令接口 7.1.1 聯(lián)機命令的類型聯(lián)機命令的類型 為了能向用戶提供多方面的服務,通常,OS都向用戶提供了幾十條甚至上百條的聯(lián)機命令。根據(jù)這些命令所完成功能的不同,可把它們分成以下幾類: 系統(tǒng)訪問類; 磁盤操作類
2、; 文件操作類; 目錄操作類; 通信類; 其他命令。 2022-2-232022-2-234 4 1. 系統(tǒng)訪問類系統(tǒng)訪問類 在單用戶微型機中,一般沒有設置系統(tǒng)訪問命令; 然而在多用戶系統(tǒng)中,為了保證系統(tǒng)的安全性,都毫無例外地設置了系統(tǒng)訪問命令, 即注冊命令Login。 用戶在每次開始使用某終端時,都須使用該命令,使系統(tǒng)能識別該用戶。凡要在多用戶系統(tǒng)的終端上上機的用戶,都必須先在系統(tǒng)管理員處獲得一合法的注冊名和口令。以后,每當用戶在接通其所用終端的電源后,便由系統(tǒng)直接調(diào)用并在屏幕上顯示出以下的注冊命令: Login: /提示用戶鍵入自己的注冊名 當用戶鍵入正確的注冊名,并按下回車鍵后,屏幕上又
3、會出現(xiàn): Password: /提示用戶鍵入自己的口令2022-2-232022-2-235 5 2. 鍵盤操作命令鍵盤操作命令 (1) 磁盤格式化命令Format。 它被用于對指定驅(qū)動器上的軟盤進行格式化。 每張新盤在使用前都必須先格式化。 其目的是使其記錄格式能為操作系統(tǒng)所接受,可見,不同操作系統(tǒng)將磁盤初始化后的格式各異。此外,在格式化過程中,還將對有缺陷的磁道和扇區(qū)加保留記號,以防止將它分配給數(shù)據(jù)文件。 2022-2-232022-2-236 6 (2) 復制整個軟盤命令Diskcopy。 該命令用于復制整個磁盤,另外它還有附加的格式化功能。 如果目標盤片是尚未格式化的,則該命令在執(zhí)行時
4、, 首先將未格式化的軟盤格式化,然后再進行復制。 (3) 軟盤比較命令Diskcomp。 該命令用于將源盤與目標盤的各磁道及各扇區(qū)中的數(shù)據(jù)逐一進行比較。 (4) 備份命令Backup。 該命令用于把硬盤上的文件復制到軟盤上;而RESTORE命令則完成相反的操作。 2022-2-232022-2-237 7 3. 文件操作命令文件操作命令 (1) 顯示文件命令type。用于將指定文件顯示在屏幕上。 (2) 拷貝文件命令copy。 用于實現(xiàn)文件的拷貝。 (3) 文件比較命令comp。該命令用于對兩個指定文件進行比較。 兩文件可以在同一個或不同的驅(qū)動器上。 (4) 重新命名命令Rename。該命令用
5、于將以第一參數(shù)命名的文件, 改成用第二參數(shù)給定的名字。 (5) 刪除文件命令erase。該命令用于刪除一個或一組文件,當參數(shù)路徑名為*.BAK時,表示刪除指定目錄下的所有其擴展名為.Bak的文件。 2022-2-232022-2-238 8 4. 目錄操作命令目錄操作命令 (1) 建立子目錄命令mkdir。 用于建立指定名字的新目錄。 (2) 顯示目錄命令dir。顯示指定磁盤中的目錄項。 (3) 刪除子目錄命令rmdir。該命令用于刪除指定的子目錄文件,但不能刪除普通文件,而且,一次只能刪除一個空目錄(其中僅含“.”和“.”兩個文件),不能刪除根及當前目錄。 (4) 顯示目錄結構命令tree。
6、該命令用于顯示指定盤上的所有目錄路徑及其層次關系。 (5) 改變當前目錄命令chdir。該命令用于將當前目錄改變?yōu)橛陕窂矫麉?shù)給定的目錄。用“.”作參數(shù)時,表示應返回到上一級目錄下。 2022-2-232022-2-239 9 5. 其它命令其它命令 (1) 輸入輸出重定向命令。 在有的OS中定義了兩個標準I/O設備。通常,命令的輸入取自標準輸入設備,即鍵盤;而命令的輸出通常是送往標準輸出設備, 即顯示終端。 如果在命令中設置輸出重定向“”符,其后接文件名或設備名, 表示將命令的輸出改向, 送到指定文件或設備上。類似地,若在命令中設置輸入重定向“”符, 則不再是從鍵盤而是從重定向符左邊參數(shù)所指
7、定的文件或設備上,取得輸入信息。 2022-2-232022-2-231010 (2) 管道連接。 這是指把第一條命令的輸出信息作為第二條命令的輸入信息;類似地,又可把第二條命令的輸出信息作為第三條命令的輸入信息。這樣,由兩個(含兩條)以上的命令可形成一條管道。在MS-DOS和UNIX中,都用“|”作為管道符號。其一般格式為: Command1 |Command2| | Commandn; 2022-2-232022-2-231111 (3) 過濾命令。 在UNIX及MS-DOS中,都有過濾命令,用于讀取指定文件或標準輸入,從中找出由參數(shù)指定的模式,然后把所有包含該模式的行都打印出來。 例如,
8、 MS-DOS中用命令 find/N“erase”(路徑名)可對由路徑名指定的輸入文件逐行檢索,把含有字符串“erase”的行輸出。其中, /N是選擇開關,表示輸出含有指定字串的行;如果不用N而用C, 則表示只輸出含有指定字串的行數(shù);若用V, 則表示輸出不含指定字串的行。 2022-2-232022-2-231212 (4) 批命令。 為了能連續(xù)地使用多條鍵盤命令,或多次反復地執(zhí)行指定的若干條命令, 而又免去每次重敲這些命令的麻煩,可以提供一特定文件。在MS-DOS中提供了一種特殊文件,其后綴名用“.BAT”;在UNIX系統(tǒng)中稱為命令文件。它們都是利用一些鍵盤命令構成一個程序,一次建立供多次使
9、用。 在MS-DOS中用batch命令去執(zhí)行由指定或默認驅(qū)動器的工作目錄上指定文件中所包含的一些命令。 2022-2-232022-2-2313137.1.2 鍵盤終端處理程序鍵盤終端處理程序 為了實現(xiàn)人機交互,還須在微機或終端上配置相應的鍵盤終端處理程序,它應具有下述幾方面的功能: (1) 接收用戶從終端上打入的字符。 (2) 字符緩沖, 用于暫存所接收的字符。 (3) 回送顯示。 (4) 屏幕編輯。 (5) 特殊字符處理。 2022-2-232022-2-231414 1. 字符接收功能字符接收功能 為了實現(xiàn)人機交互,鍵盤終端處理程序必須能夠接收從終端輸入的字符,并將之傳送給用戶程序。有兩
10、種方式來實現(xiàn)字符接收功能: (1) 面向字符方式。面向字符方式。驅(qū)動程序只接收從終端打入的字符, 并且不加修改地將它傳送給用戶程序。這通常是一串未加工的ASCII碼。2022-2-232022-2-231515 (2) 面向行方式。面向行方式。 終端處理程序?qū)⑺邮盏淖址麜捍嬖谛芯彌_中, 并可對行內(nèi)字符進行編輯。僅在收到行結束符后, 才將一行正確的信息送命令解釋程序。在有的計算機中,從鍵盤硬件送出的是鍵的編碼(簡稱鍵碼),而不是ASCII碼。例如,當打入a鍵時,是將鍵碼“30”放入I/O寄存器,此時,終端處理程序必須參照某種表格,將鍵碼轉(zhuǎn)換成ASCII碼。應當注意,某些IBM的兼容機使用的不是
11、標準鍵碼。此時,處理程序還須選用相應的表格將其轉(zhuǎn)換成標準鍵碼。 2022-2-232022-2-231616 2. 字符緩沖功能字符緩沖功能 (1) 專用緩沖方式。專用緩沖方式。 這是指系統(tǒng)為每個終端設置一個緩沖區(qū),暫存用戶鍵入的一批字符,緩沖區(qū)的典型長度為200個字符左右。這種方式較適合于單用戶微機或終端很少的多用戶機。當終端數(shù)目較多時,需要的緩沖數(shù)目可能很大,且每個緩沖的利用率也很低。例如,當有100個終端時,要求有20 KB的緩沖區(qū)。 但專用緩沖方式可使終端處理程序簡化。 2022-2-232022-2-231717圖 7-1 兩種緩沖方式 終端專用緩沖區(qū)主機終端(a) 專用緩沖區(qū)方式終
12、端主機(b) 公用緩沖池方式公用緩沖池2022-2-232022-2-231818 (2) 公用緩沖方式。公用緩沖方式。 系統(tǒng)不必為每個終端設置專用緩沖區(qū), 只須設置一個由多個緩沖區(qū)構成的公用緩沖池。其中的每個緩沖區(qū)大小相同,如為20個字符,再將所有的空緩沖區(qū)鏈接成一個空緩沖區(qū)鏈。當終端有數(shù)據(jù)輸入時,可先向空緩沖區(qū)鏈申請一空緩沖區(qū)來接收輸入字符;當該緩沖區(qū)裝滿后,再申請一空緩沖區(qū)。這樣, 直至全部輸入完畢,并利用鏈接指針將這些裝有輸入數(shù)據(jù)的緩沖區(qū)鏈接成一條輸入鏈。每當該輸入鏈中一個緩沖區(qū)內(nèi)的字符被全部傳送給用戶程序后,便將該緩沖區(qū)從輸入鏈中移出,再重新鏈入空緩沖區(qū)鏈中。顯然,利用公用緩沖池方式
13、可有效地提高緩沖的利用率。圖 7-1(b)示出了公用緩沖池方式。 2022-2-232022-2-231919 3. 回送顯示回送顯示 回送顯示(回顯)是指每當用戶從鍵盤輸入一個字符后,終端處理程序便將該字符送往屏幕顯示。有些終端的回顯由硬件實現(xiàn), 其速度較快,但往往會引起麻煩。如當用戶鍵入口令時,為防止口令被盜用,顯然不該有回顯。此外,用硬件實現(xiàn)回顯也缺乏靈活性,因而近年來多改用軟件來實現(xiàn)回顯,這樣可以做到在用戶需要時才回顯。用軟件實現(xiàn)回顯,還可方便地進行字符變換,如將鍵盤輸入的小寫英文字母變成大寫, 或相反。 驅(qū)動程序在將輸入的字符送往屏幕回顯時,應打印在正確的位置上;當光標走到一行的最后
14、一個位置后,便應返回到下一行的開始位置。例如,當所鍵入的字符數(shù)目超過一行的80個(字符)時, 應自動地將下一個字符打印到下一行的開始位置。 2022-2-232022-2-2320204. 屏幕編輯屏幕編輯 (1) 刪除字符鍵。 (2) 刪除一行鍵。 (3) 插入鍵。 (4) 移動光標鍵。 (5) 屏幕上卷或下移鍵, 等等。 2022-2-232022-2-232121 5. 特殊字符處理特殊字符處理 (1) 中斷字符。 當程序在運行中出現(xiàn)異常情況時,用戶可通過鍵入中斷字符的辦法來中止當前程序的運行。在許多系統(tǒng)中是利用Break或Delete或Ctrl+C鍵作為中斷字符。 (2) 停止上卷字符
15、。 用戶鍵入此字符后,終端處理程序應使正在上卷的屏幕暫停上卷,以便用戶仔細觀察屏幕內(nèi)容。在有的系統(tǒng)中,是利用Ctrl+S鍵來停止屏幕上卷的。2022-2-232022-2-232222 (3) 恢復上卷字符。 有的系統(tǒng)利用Ctrl+Q鍵使停止上卷的屏幕恢復上卷。終端處理程序收到該字符后, 便恢復屏幕的上卷功能。 上述的Ctrl+S與Ctrl+Q兩字符并不被存儲,而是被用去設置終端數(shù)據(jù)結構中的某個標志。每當終端試圖輸出時,都須先檢查該標志,若該標志已被設置,便不再把字符送至屏幕 2022-2-232022-2-2323237.1.3 命令解釋程序命令解釋程序 1. 命令解釋程序的作用命令解釋程序
16、的作用 在聯(lián)機操作方式下,終端處理程序把用戶鍵入的信息送鍵盤緩沖區(qū)中保存。一旦用戶鍵入回車符,便立即把控制權交給命令處理程序。顯然,對于不同的命令,應有能完成特定功能的命令處理程序與之對應。可見,命令解釋程序的主要作用,是在屏幕上給出提示符,請用戶鍵入命令,然后讀入該命令,識別命令,再轉(zhuǎn)到相應命令處理程序的入口地址,把控制權交給該處理程序去執(zhí)行,并將處理結果送屏幕上顯示。 若用戶鍵入的命令有錯,而命令解釋程序未能予以識別,或在執(zhí)行中間出現(xiàn)問題時,則應顯示出某一出錯信息。 2022-2-232022-2-2324242. 命令解釋程序的組成命令解釋程序的組成 (1) 常駐部分。 這部分包括一些中
17、斷服務子程序。例如,正常退出中斷INT 20,它用于在用戶程序執(zhí)行完畢后,退回操作系統(tǒng); 駐留退出中斷INT 27,用這種方式,退出程序可駐留在內(nèi)存中;還有用于處理和顯示標準錯誤信息的INT 24等。常駐部分還包括這樣的程序:當用戶程序終止后,它檢查暫存部分是否已被用戶程序覆蓋,若已被覆蓋,便重新將暫存部分調(diào)入內(nèi)存。 2022-2-232022-2-232525 (2) 初始化部分。 它跟隨在常駐內(nèi)存部分之后,在啟動時獲得控制權。這部分還包括對AUTOEXEC.BAT文件的處理程序,并決定應用程序裝入的基地址。每當系統(tǒng)接電或重新啟動后,由處理程序找到并執(zhí)行AUTOEXEC.BAT文件。由于該文
18、件在用完后不再被需要,因而它將被第一個由COMMAND.COM裝入的文件所覆蓋。 2022-2-232022-2-232626 (3) 暫存部分。 這部分主要是命令解釋程序,并包含了所有的內(nèi)部命令處理程序、批文件處理程序,以及裝入和執(zhí)行外部命令的程序。它們都駐留在內(nèi)存中,但用戶程序可以使用并覆蓋這部分內(nèi)存,在用戶程序結束時,常駐程序又會將它們重新從磁盤 2022-2-232022-2-232727 3. 命令解釋程序的工作流程命令解釋程序的工作流程 系統(tǒng)在接通電源或復位后,初始化部分獲得控制權,對整個系統(tǒng)完成初始化工作,并自動執(zhí)行AUTOEXEC.BAT文件, 之后便把控制權交給暫存部分。暫存
19、部分首先讀入鍵盤緩沖區(qū)中的命令,判別其文件名、擴展名及驅(qū)動器名是否正確。 若發(fā)現(xiàn)有錯,在給出出錯信息后返回;若無錯,再識別該命令。一種簡單的識別命令的方法是基于一張表格,其中的每一表目都是由命令名及其處理程序的入口地址兩項所組成。 如果暫存部分在該表中能找到鍵入的命令,且是內(nèi)部命令,便可以直接從對應表項中獲得該命令處理程序的入口地址,然后把控制權交給該處理程序去執(zhí)行該命令。 2022-2-232022-2-232828是內(nèi)部命令?DIR命令處理程序Type命令處理程序Copy命令處理程序Date命令處理程序命令合法否?輸入命令行從外存調(diào)入外部命令執(zhí)行顯示提示符圖 7-2 COMMAND.COM
20、的工作流程2022-2-232022-2-2329297.2 Shell命令語言命令語言 7.2.1 簡單命令簡單命令 所謂簡單命令,實際上是一個能完成某種功能的目標程序的名字。UNIX系統(tǒng)規(guī)定的命令由小寫字母構成(但僅前8個字母有效)。命令可帶有參數(shù)表,用于給出執(zhí)行命令時的附加信息。命令名與參數(shù)表之間還可使用一種稱為選項的自變量, 用破折號開始,后跟一個或多個字母、數(shù)字。 $ Command-option argument list例如: $ LS file1 file2 2022-2-232022-2-233030這是一條不帶選項的列目錄命令,$是系統(tǒng)提示符。該命令用于列出file1和fi
21、le2兩個目錄文件中所包含的目錄項, 并隱含地指出按英文字母順序列表。若給出tr選項,該命令可表示成: $ LS-tr file1 file 2 其中,選項t和r分別表示按最近修改次序及按反字母順序列表。通常,命令名與該程序的功能緊密相關,以便于記憶。命令參數(shù)可多可少,也可缺省。 2022-2-232022-2-233131例如: $ LS 表示自動以當前工作目錄為缺省參數(shù),打印出當前工作目錄所包含的目錄項。簡單命令的格式比較自由,包括命令名字符的個數(shù)及用于分隔命令名、選項、各參數(shù)間的空格數(shù)等,都是任意的。簡單命令的數(shù)量易于擴充。 系統(tǒng)管理員與用戶自行定義的命令,其執(zhí)行方式與系統(tǒng)標準命令的執(zhí)行
22、方式相同。2022-2-232022-2-233232 1. 進入與退出系統(tǒng)進入與退出系統(tǒng) (1) 進入系統(tǒng),也稱為注冊。事先, 用戶須與系統(tǒng)管理員商定一個唯一的用戶名。管理員用該名字在系統(tǒng)文件樹上,為用戶建立一個子目錄樹的根結點。當用戶打開自己的終端時,屏幕上會出現(xiàn)Login:提示,這時用戶便可鍵入自己的注冊名,并用回車符結束。然后,系統(tǒng)又詢問用戶口令,用戶可用回車符或事先約定的口令鍵入。2022-2-232022-2-233333 (2) 退出系統(tǒng)。退出系統(tǒng)。 每當用戶用完系統(tǒng)后,應向系統(tǒng)報告自己不再往系統(tǒng)裝入任何處理要求。系統(tǒng)得知后,便馬上為用戶記賬, 清除用戶的使用環(huán)境。 若用戶使用系
23、統(tǒng)是免費的,退出操作僅僅是一種禮貌。如果用戶使用的是多終端中的一個終端,為了退出,用戶只須按下Control-D鍵即可,系統(tǒng)會重新給出提示符即Login,以表明該終端可供另一新用戶使用。 用戶的進入與退出過程,實際上是由系統(tǒng)直接調(diào)用Login及Logout程序完成的。 2022-2-232022-2-233434 2. 文件操作命令文件操作命令 (1) 顯示文件內(nèi)容命令cat。如果用戶想了解自己在當前目錄中的某個或某幾個指定文件的內(nèi)容時,便可使用下述格式的cat命令: $ cat filename1 filename2 (2) 復制文件副本的命令cp。其格式為: cp source targe
24、t該命令用于對已存在的文件source建立一個名為target的副本。 2022-2-232022-2-233535 (3) 對已有文件改名的命令mv。 其格式為: mv oldname newname 用于把原來的老名字改成指定的新名字。 (4) 撤消文件的命令rm。它給出一個參數(shù)表, 是要撤消的文件名清單。 (5) 確定文件類型的命令file。該命令帶有一個參數(shù)表, 用于給出想了解其(文件)類型的文件名清單。命令執(zhí)行的結果,將在屏幕上顯示出各個文件的類型。 2022-2-232022-2-2336363. 目錄操作命令目錄操作命令建立目錄的命令mkdir(簡稱md)。(2) 撤消目錄的命令
25、rmdir(簡稱rd)。(3) 改變工作目錄的命令cd。(4) 改變對文件的存取方式的命令chmod。 其格式為: chmodwho op-code permission filename2022-2-232022-2-233737 4. 系統(tǒng)詢問命令系統(tǒng)詢問命令 (1)訪問當前日期和時間命令date。例如,用命令 $ date 屏幕上將給出當前的日期和時間,如為: Wed Ang 14 09:27:20 PDT 1991 表示當前日期是1991年9月14日、星期三,還有時間信息若在命令名后給出參數(shù),則date程序把參數(shù)作為重置系統(tǒng)時鐘的時間。 2022-2-232022-2-233838 (
26、2) 詢問系統(tǒng)當前用戶的命令who。 who命令可列出當前每一個處在系統(tǒng)中的用戶的注冊名、終端名和注冊進入時間,并按終端標志的字母順序排序。例如,報告有下列三用戶: Veronica bxo66 Aug 27 13:28 Rathomas dz24 Aug 28 07:42 Jlyates tty5 Aug 28 07:392022-2-232022-2-233939 (3) 顯示當前目錄路徑名的命令pwd。當前目錄的路徑名是從根結點開始,通過分支上的所有結點到達當前目錄結點為止的路徑上的所有結點的名字拼起來構成的。 用戶的當前目錄可能經(jīng)常在樹上移動。如果用戶忘記了自己在哪里,便可用pwd確定
27、自己的位置。 2022-2-232022-2-2340407.2.2 重定向與管道命令重定向與管道命令 1. 重定向命令重定向命令 在UNIX系統(tǒng)中,由系統(tǒng)定義了三個文件。其中,有兩個分別稱為標準輸入和標準輸出的文件,各對應于終端鍵盤輸入和終端屏幕輸出。它們是在用戶注冊時,由Login程序打開的。 這樣,在用戶程序執(zhí)行時,隱含的標準輸入是鍵盤輸入,標準輸出即屏幕(輸出)顯示。但用戶程序中可能不要求從鍵盤輸入,而是從某個指定文件上讀取信息供程序使用;同樣,用戶可能希望把程序執(zhí)行時所產(chǎn)生的結果數(shù)據(jù),寫到某個指定文件中而非屏幕上。這就使用戶必須去改變輸入與輸出文件,即不使用標準輸入、標準輸出,而是把
28、另外的某個指定文件或設備,作為輸入或輸出文件。 2022-2-232022-2-234141 Shell向用戶提供了這種用于改變輸入、輸出設備的手段,此即標準輸入與標準輸出的重新定向。用重定向符“”和“”分別表示輸入轉(zhuǎn)向與輸出轉(zhuǎn)向。例如, 對于命令 $ cat file1 表示將文件file1的內(nèi)容,在標準輸出上打印出來。若改變其輸出,用命令 $ cat file1file2 時,表示把文件file1的內(nèi)容,打印輸出到文件file2上。同理, 對于命令 $ wc 表示對標準輸入中的行中字和字符進行計數(shù)。 若改變其輸入, 用命令 2022-2-232022-2-234242 $ wcfile3
29、則表示把從文件file3中讀出的行中的字和字符進行計數(shù)。 須指明的是,在做輸出轉(zhuǎn)向時,若上述的文件file2并不存在,則先創(chuàng)建它;若已存在,則認為它是空白的,執(zhí)行上述輸出轉(zhuǎn)向命令時,是用命令的輸出數(shù)據(jù)去重寫該文件;如果文件file2事先已有內(nèi)容,則命令執(zhí)行結果將用文件file1的內(nèi)容去更新文件file2的原有內(nèi)容?,F(xiàn)在,如果又要求把file4的內(nèi)容附加到現(xiàn)有的文件file2的末尾,則應使用另一個輸出轉(zhuǎn)向符“”, 即此時應再用命令 $ cat file4file2 2022-2-232022-2-234343便可在文件file2中,除了上次復制的file1內(nèi)容外,后面又附加了file4的內(nèi)容。
30、當然,若想一次把兩個文件file1和file4全部復制到file2中,則可用命令 $ cat file1 file4file2 此外,也可在一個命令行中,同時改變輸入與輸出。例如, 命令行 a.outfile1file0 表示,在可執(zhí)行文件a.out執(zhí)行時,將從文件file1中提取數(shù)據(jù), 而把a.out的執(zhí)行結果數(shù)據(jù)輸出到文件file0中。 2022-2-232022-2-234444 2. 管道命令管道命令 在有了上述的重定向思想后,為了進一步增強功能, 人們又進一步把這種思想加以擴充,用符號“|”來連接兩條命令,使其前一條命令的輸出作為后一條命令的輸入。 即 $ command 1|com
31、mand 2 例如,對于下述輸入 cat file|wc 將使命令cat把文件file中的數(shù)據(jù),作為wc命令的計數(shù)用輸入。 2022-2-232022-2-2345457.2.3 通信命令通信命令 1. 信箱通信命令信箱通信命令mail 它被作為在UNIX的各用戶之間, 進行非交互式通信的工具。mail采用信箱通信方式。發(fā)信者把要發(fā)送的消息寫成信件,“郵寄”到對方的信箱中。通常各用戶的私有信箱采用各自的注冊名命名,即它是目錄/usr/spool/mail中的一個文件,而文件名又是用接收者的注冊名來命名的。信箱中的信件可以一直保留到被信箱所有者消除為止。因而,用mail進行通信時,不要求接收者利
32、用終端與發(fā)送者會話。亦即,在發(fā)信者發(fā)送信息時,雖然接收者已在系統(tǒng)中注冊過,但允許他此時沒有使用系統(tǒng);也可以是雖在使用系統(tǒng),但拒絕接收任何信息。 2022-2-232022-2-234646 接收者也用mail命令讀取信件,可使用可選項r、q或p等。 其命令格式為: mail-r-q-p-file-F persons由于信箱中可存放所接收的多個信件,這就存在一個選取信件的問題。上述幾個選項分別表示:按先進先出順序顯示各信件的內(nèi)容;在打入中斷字符(DEL或RETURN)后,退出mail程序而不改變信箱的內(nèi)容;以及一次性地顯示信箱全部內(nèi)容而不帶詢問,把指定文件當作信件來顯示。在不使用-p選項時,表示
33、在顯示完一個信件后,便出現(xiàn)“?”,以詢問用戶是否繼續(xù)顯示下一條消息,或選讀完最后一條消息后退出mail。 2022-2-232022-2-234747 2. 對話通信命令對話通信命令write 命令格式為: write userttyname 當接收者只有一個終端時,終端名可缺省。當接收者的終端被允許接收消息時,屏幕提示會通知接收者源用戶名及其所用終端名。 2022-2-232022-2-234848 3. 允許或拒絕接收消息的允許或拒絕接收消息的mesg命令命令 其格式為: mesg-n-y選項n表示拒絕對方的寫許可(即拒絕接收消息);選項y指示恢復對方的寫許可,僅在此時,雙方才可聯(lián)機通信。
34、當用戶正在聯(lián)機編寫一份資料而不愿被別人干擾時,常選用n選項來拒絕對方的寫許可。編輯完畢,再用帶有y選項的mesg命令來恢復對方的寫許可,不帶自變量的mesg命令只報告當前狀態(tài)而不改變它。 2022-2-232022-2-2349497.2.4 后臺命令后臺命令 UNIX系統(tǒng)提供了這種機制, 用戶可以在這種命令后面再加上“&”號,以告訴Shell將該命令放在后臺執(zhí)行, 以便用戶在前臺繼續(xù)鍵入其它命令。 在后臺運行的程序仍然把終端作為它的標準輸出和標準錯誤文件,除非對它們進行重新定向。其標準輸入文件是自動地被從終端定向到一個被稱為“/dev/null”的空文件中。若shell未重定向標準輸
35、入, 則shell和后臺進程將會同時從終端進行讀入。這時,用戶從終端鍵入的字符可能被發(fā)送到一個進程或另一個進程, 并不能預測哪個進程將得到該字符。2022-2-232022-2-2350507.3 系系 統(tǒng)統(tǒng) 調(diào)調(diào) 用用 7.3.1 系統(tǒng)調(diào)用的基本概念系統(tǒng)調(diào)用的基本概念 (1) 運行在不同的系統(tǒng)狀態(tài)。 (2) 通過軟中斷進入。(3) 返回問題。(4) 嵌套調(diào)用。2022-2-232022-2-235151圖 7-3 系統(tǒng)功能的調(diào)用 系統(tǒng)調(diào)用命令調(diào)用返回系統(tǒng)功能用戶程序(a) 系統(tǒng)調(diào)用與返回系統(tǒng)調(diào)用命令調(diào)用系統(tǒng)功能系統(tǒng)調(diào)用命令返回系統(tǒng)子功能(b) 程序之間的嵌套調(diào)用2022-2-232022-2
36、-2352527.3.2 系統(tǒng)調(diào)用的類型系統(tǒng)調(diào)用的類型 1. 進程控制類系統(tǒng)調(diào)用進程控制類系統(tǒng)調(diào)用 創(chuàng)建和終止進程的系統(tǒng)調(diào)用。 (2) 獲得和設置進程屬性的系統(tǒng)調(diào)用。 (3) 等待某事件出現(xiàn)的系統(tǒng)調(diào)用。 2022-2-232022-2-2353532. 文件操縱類系統(tǒng)調(diào)用文件操縱類系統(tǒng)調(diào)用 創(chuàng)建和刪除文件。 (2) 打開和關閉文件。 (3) 讀和寫文件。 2022-2-232022-2-2354543. 進程通信類系統(tǒng)調(diào)用進程通信類系統(tǒng)調(diào)用 在OS中經(jīng)常采用兩種進程通信方式,即消息傳遞方式和共享存儲區(qū)方式。當系統(tǒng)中采用消息傳遞方式時,在通信前, 必須先打開一個連接。為此,應由源進程發(fā)出一條打開
37、連接的系統(tǒng)調(diào)用open connection, 而目標進程則應利用接受連接的系統(tǒng)調(diào)用accept connection表示同意進行通信;然后, 在源和目標進程之間便可開始通信。 可以利用發(fā)送消息的系統(tǒng)調(diào)用send message或者用接收消息的系統(tǒng)調(diào)用receive message來交換信息。通信結束后,還須再利用關閉連接的系統(tǒng)調(diào)用close connection結束通信。 2022-2-232022-2-2355557.3.3 系統(tǒng)調(diào)用的實現(xiàn)系統(tǒng)調(diào)用的實現(xiàn) 1. 中斷和陷入硬件機構中斷和陷入硬件機構 (1) 什么是中斷和陷入。 中斷是指CPU對系統(tǒng)發(fā)生某事件時的這樣一種響應:CPU暫停正在執(zhí)
38、行的程序,在保留現(xiàn)場后自動地轉(zhuǎn)去執(zhí)行該事件的中斷處理程序;執(zhí)行完后,再返回到原程序的斷點處繼續(xù)執(zhí)行 。2022-2-232022-2-235656圖 7 - 4 中斷時的CPU軌跡 被中斷程序中斷處理程序中斷處理開始中斷處理結束中斷點2022-2-232022-2-235757(2) 中斷和陷入向量。 2022-2-232022-2-2358582. 系統(tǒng)調(diào)用號和參數(shù)的設置系統(tǒng)調(diào)用號和參數(shù)的設置 直接將參數(shù)送入相應的寄存器中。 (2) 參數(shù)表方式。 圖 7 - 6 系統(tǒng)調(diào)用的參數(shù)形式 2022-2-232022-2-2359593. 系統(tǒng)調(diào)用的處理步驟系統(tǒng)調(diào)用的處理步驟 首先,將處理機狀態(tài)由用
39、戶態(tài)轉(zhuǎn)為系統(tǒng)態(tài);之后,由硬件和內(nèi)核程序進行系統(tǒng)調(diào)用的一般性處理,即首先保護被中斷進程的CPU環(huán)境,將處理機狀態(tài)字PSW、程序計數(shù)器PC、系統(tǒng)調(diào)用號、用戶棧指針以及通用寄存器內(nèi)容等,壓入堆棧;然后,將用戶定義的參數(shù)傳送到指定的地方保存起來。 其次,是分析系統(tǒng)調(diào)用類型,轉(zhuǎn)入相應的系統(tǒng)調(diào)用處理子程序。 最后,在系統(tǒng)調(diào)用處理子程序執(zhí)行完后,應恢復被中斷的或設置新進程的CPU現(xiàn)場,然后返回被中斷進程或新進程, 繼續(xù)往下執(zhí)行。 2022-2-232022-2-236060 4. 系統(tǒng)調(diào)用處理子程序的處理過程系統(tǒng)調(diào)用處理子程序的處理過程 進入Creat的處理子程序后,核心將根據(jù)用戶給定的文件路徑名Path,
40、 利用目錄檢索過程,去查找指定文件的目錄項。查找目錄的方式可以用順序查找法,也可用Hash查找法。如果在文件目錄中找到了指定文件的目錄項,表示用戶要利用一個已有文件來建立一個新文件。但如果在該已有(存)文件的屬性中有不允許寫屬性,或者創(chuàng)建者不具有對該文件進行修改的權限,使認為是出錯而做出錯處理;若不存在訪問權限問題,便將已存文件的數(shù)據(jù)盤塊釋放掉,準備寫入新的數(shù)據(jù)文件。如未找到指名文件,則表示要創(chuàng)建一個新文件,核心便從其目錄文件中找出一個空目錄項,并初始化該目錄項,包括填寫文件名、文件屬性、文件建立日期等,然后將新建文件打開。 2022-2-232022-2-2361617.4 UNIX系統(tǒng)調(diào)用
41、系統(tǒng)調(diào)用 7.4.1 UNIX系統(tǒng)調(diào)用的類型系統(tǒng)調(diào)用的類型 1. 進程控制進程控制 創(chuàng)建進程(fork)。(2) 終止進程(exit)。 (3) 等待子進程結束(wait)。 (4) 執(zhí)行一個文件(exec)。 (5) 獲得進程ID。 (6) 獲得用戶ID。 (7) 進程暫停(pause)。 2022-2-232022-2-2362622. 文件操縱文件操縱 創(chuàng)建文件(creat)。 (2) 打開文件(open)。 (3) 關閉文件(close)。 (4) 讀和寫文件read和write。 (5) 連接和去連接(link和unlink)。 文件描述符fd; buf緩沖區(qū)首址。 用戶要求傳送的字
42、節(jié)數(shù)nbyte。 2022-2-232022-2-2363633. 進程間通信進程間通信 消息機制。 (2) 共享存儲器機制。 (3) 信號量機制。 2022-2-232022-2-2364644. 信息維護信息維護 設置和獲得時間。(2) 獲得進程和子進程時間(times)。 (3) 設置文件訪問和修改時間(utime)。 (4) 獲得當前UNIX系統(tǒng)的名稱(uname)。 2022-2-232022-2-2365657.4.2 被中斷進程的環(huán)境保護被中斷進程的環(huán)境保護 1. CPU環(huán)境保護環(huán)境保護 當用戶程序處在用戶態(tài),且在執(zhí)行系統(tǒng)調(diào)用命令(即CHMK命令)之前,應在用戶空間提供系統(tǒng)調(diào)用所
43、需的參數(shù)表,并將該參數(shù)表的地址送入R0寄存器。在執(zhí)行CHMK命令后,處理機將由用戶態(tài)轉(zhuǎn)為核心態(tài),并由硬件自動地將處理機狀態(tài)長字(PSL)、程序計數(shù)器(PC)和代碼操作數(shù)(code)壓入用戶核心棧,繼而從中斷和陷入向量表中取出trap.S的入口地址然后便轉(zhuǎn)入中斷和陷入總控程序trap.S中執(zhí)行。 2022-2-232022-2-236666 trap.S程序執(zhí)行后,繼續(xù)將陷入類型type和用戶棧指針usp壓入用戶核心棧,接著還要將被中斷進程的CPU環(huán)境中的一系列寄存器如R0R11的部分或全部內(nèi)容壓入棧中。至于哪些寄存器的內(nèi)容要壓入棧中,這取決于特定寄存器中的屏蔽碼,該屏蔽碼的每一位都與R0R11
44、中的一個寄存器相對應。當某一位置成1時,表示對應寄存器的內(nèi)容應壓入棧中。 2022-2-232022-2-2367672. AP和和FP指針指針 圖 7 - 7 用戶核心棧 2022-2-232022-2-2368687.4.3 系統(tǒng)調(diào)用陷入后需處理的若干公共問題系統(tǒng)調(diào)用陷入后需處理的若干公共問題 1. 確定系統(tǒng)調(diào)用號確定系統(tǒng)調(diào)用號 trap(usp, type, code, PC, PSL)其中,參數(shù)PSL為陷入時處理機狀態(tài)字長,PC為程序計數(shù)器,code為代碼操作數(shù),type為陷入類型號,usp為用戶棧指針。對陷入的處理可分為多種情況,如果陷入是由于系統(tǒng)調(diào)用所引起的,則對此陷入的第一步處理
45、, 便是確定系統(tǒng)調(diào)用號。通常,系統(tǒng)調(diào)用號是包含在代碼操作數(shù)中,故可利用code來確定系統(tǒng)調(diào)用號i。 其方法是: 令 i=code & 0377 2022-2-232022-2-236969 2. 參數(shù)傳送參數(shù)傳送 這是對因系統(tǒng)調(diào)用引起的陷入的第二步處理。參數(shù)傳送是指由trap.C程序?qū)⑾到y(tǒng)調(diào)用參數(shù)表中的內(nèi)容,從用戶區(qū)傳送到User結構的U.U-arg 中,供系統(tǒng)調(diào)用處理程序使用。由于用戶程序在執(zhí)行系統(tǒng)調(diào)用命令之前,已將參數(shù)表的首址放入R0寄存器中,在進入trap.C程序后,該程序便將該首址賦予U.U-arg 指針, 因此, trap.C在處理參數(shù)傳送時,可讀取該指針的內(nèi)容,以獲得用戶所提供的參數(shù)表, 并將之送至U.U-arg 中。應當注意,對不同的系統(tǒng)調(diào)用所需傳送參數(shù)的個數(shù)并不相同,trap.C程序應根據(jù)在系統(tǒng)調(diào)用定義表中所規(guī)定的參數(shù)個數(shù)來進行傳送,最多允許10個參數(shù)。 2022-2-232022-2-237070 3. 利用系統(tǒng)調(diào)用定義表轉(zhuǎn)入相應的處理程序利用系統(tǒng)調(diào)用定義表轉(zhuǎn)入相應的處理程序 在UNIX系統(tǒng)中,對于不同(編號)的系統(tǒng)調(diào)用,都設置了與之相應的處理子程序。為使不同的系統(tǒng)調(diào)用能方便地轉(zhuǎn)入其相應的處理子程序,也將各處理子程序的入口地址放入了系統(tǒng)調(diào)用定義表即Sysent 中。該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技背景下學生能力培養(yǎng)的新路徑
- 班級文化建設與小學班主任的職責
- 現(xiàn)代教學工具在科學課堂中的應用及效果分析
- 科技助力打造安全的校園地震防護體系
- 2025年度茶店供應鏈金融投資合同
- 二零二五年度2025年度旅游景區(qū)保安雇傭合同
- 2025年度礦石加工技術專利許可使用合同
- 科技助力下的學校心理健康教育創(chuàng)新
- 2025年度礦山技術專利轉(zhuǎn)讓居間合同
- 二零二五年度傳統(tǒng)釀造酒銷售許可合同
- 小學高年級數(shù)學閱讀能力的培養(yǎng)與
- 包裝品質(zhì)彩盒外箱知識課件
- 神經(jīng)外科課件:神經(jīng)外科急重癥
- 頸復康腰痛寧產(chǎn)品知識課件
- 2024年低壓電工證理論考試題庫及答案
- 微電網(wǎng)市場調(diào)查研究報告
- 《民航服務溝通技巧》教案第14課民航服務人員上行溝通的技巧
- MT/T 538-1996煤鉆桿
- 小學六年級語文閱讀理解100篇(及答案)
- CB/T 467-1995法蘭青銅閘閥
- 氣功修煉十奧妙
評論
0/150
提交評論