操作系統(tǒng)原理及應(yīng)用課件第8章 Linux系統(tǒng)簡介_第1頁
操作系統(tǒng)原理及應(yīng)用課件第8章 Linux系統(tǒng)簡介_第2頁
操作系統(tǒng)原理及應(yīng)用課件第8章 Linux系統(tǒng)簡介_第3頁
操作系統(tǒng)原理及應(yīng)用課件第8章 Linux系統(tǒng)簡介_第4頁
操作系統(tǒng)原理及應(yīng)用課件第8章 Linux系統(tǒng)簡介_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第八章Linux系統(tǒng)簡介前面我們介紹了UNIX系統(tǒng)和Windows2000,這兩種操作系統(tǒng)在市場上具有強大的競爭力。但是最近幾年,操作系統(tǒng)市場上出現(xiàn)了一個新生力量,成為各操作系統(tǒng)的強勁對手,它就是Linux。它與傳統(tǒng)的操作系統(tǒng)有著完全不同的開發(fā)模式和發(fā)展歷史,并且,隨著網(wǎng)絡(luò)的不斷普及,Linux也必將發(fā)揮出越來越大的作用。本章我們就來認識一下Linux系統(tǒng)。1.Linux概述

2.Linux文件系統(tǒng)

3.Linux內(nèi)存管理

4.Linux中的進程管理

5.Linux中的設(shè)備管理

6.Linux的shell簡介

7.本章小結(jié)從MS-DOS到Windows2000,操作系統(tǒng)的發(fā)展經(jīng)過了一個漫長的過程,在這個發(fā)展過程中,UNIX扮演著一個重要的角色。從70年代中期發(fā)展起來的UNIX操作系統(tǒng),一直是世界上普遍使用的操作系統(tǒng)之一。然而由于UNIX版本的價格昂貴且操作復(fù)雜,普通用戶難以接受和使用。Linux的出現(xiàn)對那些個人用戶來說,無疑是一個福音,因為它是一個完全免費的UNIX操作系統(tǒng)。8.1.1Linux的發(fā)展Linux最早是在1991年由芬蘭赫爾辛基大學(xué)的一位年輕人LinusBenedictTorralds開發(fā)的一個UNIX免費版本。剛開始,Linux只是Linus的個人愛好產(chǎn)物,其靈感來自于Minix(一種小型的用于操作系統(tǒng)教學(xué)的UNIX系統(tǒng))。Linus首先在赫爾辛基大學(xué)的FTP服務(wù)器放置了這個操作系統(tǒng),讓人們下載Linux操作系統(tǒng)的第一個公開版本。到1992年1月份,只有100個左右的用戶使用Linux,但網(wǎng)絡(luò)上的任何人在任何地方都可以得到基本的Linux文件。此后,網(wǎng)上的使用者們發(fā)送來許多修改代碼問題的補丁程序?qū)inux不斷完善。1994年3月,正式的Linux1.0出現(xiàn),此時,它的用戶數(shù)已經(jīng)非常龐大,而且也建立了Linux核心開發(fā)隊伍。隨著開發(fā)隊伍的增長,Linus開始有計劃地選擇并依賴一些用戶,Linus從他們那里得到大量的補丁程序并且相信這些補丁的功能,結(jié)果這些補丁程序成為內(nèi)核中較大的部分。正是這種自由的氛圍,使得Linux快速地成長起來,成為一個具有生命力的可供選擇的桌面計算機的UNIX系統(tǒng)。Linux是繼SpaceWar、Ewacs之后風(fēng)靡全球的最成功的免費軟件之一,它已迅速發(fā)展成為商業(yè)、教育及個人產(chǎn)品的操作系統(tǒng)?,F(xiàn)在,Linux正在進入一個獨立的發(fā)展階段,而不是當初那樣跟在UNIX的后面亦步亦趨。因為Linux是完全公開的,每個人都可以得到它的源代碼,而且Linux的許多應(yīng)用程序也可以免費從Internet上獲得,這就使得越來越多的愛好者加入了Linux的開發(fā)行列,施展著各自的才華。在中國,隨著網(wǎng)絡(luò)的普及,Linux愛好者的隊伍也在不斷壯大,相信不久的將來,Linux這種免費而性能優(yōu)異的操作系統(tǒng)必將發(fā)揮越來越大的作用。

Linux與UNIX一樣是一個多用戶、多任務(wù)的操作系統(tǒng)。它除了具備UNIX的優(yōu)點外,還具有許多自身的特點。下面我們對Linux的特性做一下簡單的介紹。8.1.2Linux的特性Linux是一個多任務(wù)系統(tǒng),它支持的是搶占調(diào)度多任務(wù),即每個程序都一直運行到操作系統(tǒng)搶占CPU讓其他程序運行為止。Linux的多任務(wù)性可以大大地方便用戶,你可以一邊欣賞音樂,一邊編輯文件,這樣用戶可以充分地利用計算機資源。1.多任務(wù)多用戶是指多個用戶可以在同一時間內(nèi)使用同一臺機器。這是UNIX的重要特性,也是Linux的一個重要特性。在實際應(yīng)用中,尤其是在大的公司或者大學(xué),多個用戶同時訪問同一資源,可以使某些昂貴的資源得到更充分的利用。例如一個普通的BBS(電子公告牌)站使用了操作系統(tǒng)為Linux的普通微機,同時上線人數(shù)可達200人以上。2.多用戶Linux是一個應(yīng)用軟件非常豐富的操作系統(tǒng)。下面是一些常用的應(yīng)用軟件?!?/p>

基本命令ls,tr,sed,awk等?!?/p>

編輯器vi,ez,pico,jed,jove,GNUEmacs等等。3.豐富的軟件·

編程語言和環(huán)境C,C++,ObjectiveC,Java,Pascal,F(xiàn)ortran,Lisp,Tcl/tk,Perl等等?!?/p>

圖形用戶界面X11R6.3(Xfree863.x),lesstif,qt,fvwm,openwin,KDE等等。還有許多其他的應(yīng)用程序,這里不再一一介紹。Linux可以支持多種類型的文件系統(tǒng),其中主要有:(1)Minix。這是Linux的第一個文件系統(tǒng)。Minix的限制較死板、嚴格,如文件名不得長于14個字符,而且只支持64M的磁盤空間。4.多文件系統(tǒng)(2)EXT。擴展文件系統(tǒng)(或稱EXT)是專門為Linux設(shè)計的文件系統(tǒng),這個系統(tǒng)于1992年4月首次設(shè)計出來,克服了Minix的不少缺陷,最大支持2GB的磁盤空間,并允許使用長達255個字符的文件名,但這個系統(tǒng)在功能上仍有欠缺。因此,在1993年2月加入了第二個擴展文件系統(tǒng),或稱為EXT2。(3)EXT2。EXT2幾乎已成為Linux的標準文件系統(tǒng)。它可以移植到其它系統(tǒng)上,既可以用于固定盤,也可以用于可拆裝介質(zhì)。此系統(tǒng)允許盤分區(qū)的容量達到4T,文件名長達255個字符。(4)SystemV。這是UNIX系統(tǒng)早期支持的文件系統(tǒng),現(xiàn)在仍可以在Linux系統(tǒng)中使用,這是因為要與已有的systemV系統(tǒng)兼容。它也有minix文件系統(tǒng)同樣的限制。(5)NFS。這是由SUN公司開發(fā)的網(wǎng)絡(luò)文件系統(tǒng),它允許將一臺機器上的文件系統(tǒng)裝配到網(wǎng)上另一臺計算機的目錄結(jié)構(gòu)中。盡管有少量的速度損失,網(wǎng)絡(luò)連接是透明的,并允許整個網(wǎng)絡(luò)共享磁盤分區(qū)和文件。(6)vfat。這是微軟的Windows95和WindowsNT使用的擴展的DOS文件系統(tǒng)。它在MSDOS文件系統(tǒng)下增加了對長文件名的支持。(7)umsdos。這是Linux使用的擴展的DOS文件系統(tǒng)。它在保持了與DOS兼容的前提下,又增加了對長文件名,UID/GID,POSIX文件保護和特殊文件的支持。(8)hpfs。是OS/2使用的高性能文件系統(tǒng)。由于缺乏應(yīng)有的文檔,在Linux下這種文件系統(tǒng)是只讀的。(9)proc。這是建立在Linux內(nèi)核中的特殊文件系統(tǒng)類型,是一種偽文件系統(tǒng),它被用來作為連接內(nèi)核數(shù)據(jù)結(jié)構(gòu)的界面。它允許對系統(tǒng)的不同部分和它的進程進行訪問。查看/proc目錄時,我們會發(fā)現(xiàn)其中有一些目錄和文件隨著時間在變化,

內(nèi)核通過/proc文件系統(tǒng)提供系統(tǒng)統(tǒng)計數(shù)據(jù)和進程信息。當用戶訪問/proc中的文件時,內(nèi)核可以識別并產(chǎn)生滿足用戶讀請求的某些數(shù)據(jù)。這些目錄和文件都不在磁盤上,它們是由內(nèi)核動態(tài)地釋放出來的,以方便ps和top等程序訪問這些數(shù)據(jù)。(10)Msdos。Dos、Windows和某些OS/2計算機使用的文件系統(tǒng)。標準的DOS磁盤和分區(qū)可以裝配到Linux系統(tǒng)中,并可以對它們進行訪問。系統(tǒng)力圖使它的外在表現(xiàn)類似UNIX,但還受到一定限制。如文件格式和名稱等。Linux支持的文件系統(tǒng)還有好多,這里不再一一介紹了。在這些文件系統(tǒng)中,Linux使用最普遍的文件系統(tǒng)是ext2,它可以支持到4T的硬盤,文件名最長可達255個字符。Linux支持的硬件相當廣泛,只要不是太冷僻的設(shè)備,在Linux中都可以找到相應(yīng)的驅(qū)動程序。除了上述特性之外,Linux還有許多其它特性,如:對應(yīng)用程序使用的內(nèi)存進行保護,共享內(nèi)存頁面,使用分頁技術(shù)的虛擬內(nèi)存,優(yōu)秀的磁盤緩沖調(diào)度功能,動態(tài)鏈接共享庫,支持偽終端設(shè)備,支持多個虛擬控制臺,具有強大的網(wǎng)絡(luò)和通信功能,良好的軟件移植性等。

5.支持的硬件多backLinux的文件系統(tǒng)設(shè)計思想與UNIX系統(tǒng)的設(shè)計思想一樣,完整、一致、統(tǒng)一,具有很大的靈活性。Linux的一個非常重要的特點是它采用了VFS(VirtualFilesystemSwitch)機制,這使得Linux支持的文件系統(tǒng)類型非常多。8.2.1概述Linux采取的是單一的目錄層次結(jié)構(gòu)。Linux系統(tǒng)中,使用fdisk命令將物理磁盤劃分為許多邏輯分區(qū),每個分區(qū)都可以是一個文件系統(tǒng)。每個文件系統(tǒng)有自己的頂層目錄和下面的目錄層次結(jié)構(gòu)。系統(tǒng)將這些單獨的文件系統(tǒng)組成一個系統(tǒng)的總的目錄層次結(jié)構(gòu),也就是說,將一個文件系統(tǒng)的頂層目錄裝配到另一個文件系統(tǒng)的子目錄上,形成一個樹狀的文件系統(tǒng)結(jié)構(gòu)。該目錄樹的頂部是一個單獨的根目錄,用“/”表示。根目錄是一些標準的子目錄和文件。在圖8-2-1的Linux目錄樹中,文件系統(tǒng)usr和home掛裝到根目錄下,形成統(tǒng)一的樹形目錄結(jié)構(gòu)。binlibetcdevproctmphomesxjlzwxyfhda1userx386bin圖

8-2-1Linux的目錄樹

這樣,在用戶看來,Linux系統(tǒng)的文件空間是由基于樹狀結(jié)構(gòu)的文件和目錄組成的,它的根在頂部,就是頂層的根目錄“/”,其它的各種目錄和文件都作為根目錄向下的分支。雖然每種文件系統(tǒng)存儲數(shù)據(jù)的基本格式都是不一樣的,但在Linux中,系統(tǒng)會把任何被訪問文件的數(shù)據(jù)整理成一個在目錄樹下的文件。Linux的文件分為常規(guī)文件和特殊文件兩類,常規(guī)文件又分為文本文件、數(shù)據(jù)文件、二進制可執(zhí)行文件等。在/dev目錄下的設(shè)備文件叫做特殊文件,利用這些文件用戶可以像訪問普通文件一樣方便地訪問系統(tǒng)資源和設(shè)備。

例如,讀取/dev/mouse文件就是從鼠標器讀取輸入信息。Linux提供的設(shè)備文件,為用戶使用設(shè)備提供了一致的訪問接口。Linux中的目錄也可看成是一種特殊文件,其中保存著目錄中文件的名稱、文件在磁盤上的存儲位置等信息。另外,在Linux中文件名和目錄名都區(qū)分大小寫。Linux環(huán)境中,最成功的文件系統(tǒng)是第二個擴展文件系統(tǒng)EXT2?,F(xiàn)在,EXT2文件系統(tǒng)作為所有Linux版本的基本文件系統(tǒng)。8.2.2Ext2文件系統(tǒng)EXT2文件系統(tǒng)中的數(shù)據(jù)保存在數(shù)據(jù)塊中,這些數(shù)據(jù)塊的長度相等。實際上,數(shù)據(jù)塊的長度在不同的EXT2文件系統(tǒng)中可以不同,數(shù)據(jù)塊的大小可以在在用mke2fs創(chuàng)建一個特定的EXT2文件系統(tǒng)時設(shè)定。每個文件保存在整數(shù)個數(shù)據(jù)塊上。若一個塊長為1024字節(jié),則一個1025字節(jié)的文件會占2個1024字節(jié)大小的塊,這就意味著每個文件大體上要浪費半個塊。數(shù)據(jù)塊中保存的并不全是數(shù)據(jù),有些塊用來定義文件系統(tǒng)使用的數(shù)據(jù)結(jié)構(gòu)。

EXT2用一個inode節(jié)點(也叫索引節(jié)點)數(shù)據(jù)結(jié)構(gòu)描述每一個文件,該節(jié)點記錄了相應(yīng)文件的數(shù)據(jù)地址,占用的數(shù)據(jù)塊以及該文件的文件類型、訪問權(quán)限、修改時間等。EXT2文件系統(tǒng)中的每個文件inode節(jié)點有唯一的整數(shù)標識號,文件系統(tǒng)的inode節(jié)點全部保存在節(jié)點表中。EXT2文件目錄只是一些簡單的文件名和指向該文件節(jié)點的指針。圖8-2-2指出EXT2文件系統(tǒng)保存在塊結(jié)構(gòu)的設(shè)備中。文件系統(tǒng)不必考慮在物理介質(zhì)上的具體存放位置,而只需記住邏輯塊的編號。實際上,塊設(shè)備驅(qū)動程序完成邏輯塊到物理存放位置的轉(zhuǎn)換。每當文件系統(tǒng)需要從保存信息或數(shù)據(jù)的塊設(shè)備中讀取寫入數(shù)據(jù)時,便要求它支持的設(shè)備驅(qū)動程序讀入整數(shù)個塊。

EXT2文件系統(tǒng)將其占用的邏輯分區(qū)劃分為“塊組”(BlockGroup),每個塊組重復(fù)保存著文件系統(tǒng)中的重要信息,萬一有重大問題出現(xiàn),需要恢復(fù)文件系統(tǒng)時,就會用到這些備份信息。同時,這些塊組也用來保存實際的文件和目錄數(shù)據(jù)。塊組0塊組1┈塊組N-1塊組N超級塊塊組描述符塊位圖索引節(jié)點位圖索引節(jié)點表數(shù)據(jù)塊

8-2-2EXT2文件系統(tǒng)的物理布局

在Linux系統(tǒng)中,inode節(jié)點是基本的數(shù)據(jù)塊。文件系統(tǒng)中的每個文件或目錄由一個inode節(jié)點描述,每個塊組的EXT2inode節(jié)點保存在inode節(jié)點表中,同時也保存節(jié)點位圖,通過位圖可找到分配或未分配的inode節(jié)點。圖8-2-3表示了EXT2inode節(jié)點的結(jié)構(gòu)。1、EXT2中inode節(jié)點

模式

所有者信息

大小

時間戳

直接指針

一級間接指針

二級間接指針

三級間接指針

數(shù)據(jù)

數(shù)據(jù)

數(shù)據(jù)

數(shù)據(jù)

數(shù)據(jù)

數(shù)據(jù)

數(shù)據(jù)

數(shù)據(jù)

數(shù)據(jù)圖

8-2-3EXT2的inode節(jié)點

在EXT2中,一個inode節(jié)點可描述一個文件、目錄、符號鏈接、塊設(shè)備、字符設(shè)備或FIFO。它包含以下信息:(1)模式(mode):包含inode節(jié)點的內(nèi)容和用戶權(quán)限兩項信息。(2)所有者信息(OwnerInformation):該文件或目錄所有者的身份辨認,允許文件系統(tǒng)正確地設(shè)定訪問權(quán)限。(3)大小(Size):該文件或目錄占用的字節(jié)數(shù)。(4)時間戳(Timestampsinode):節(jié)點的建立時間及最后一次修改時間。(5)數(shù)據(jù)塊(datablocks):定義了指向保存inode節(jié)點描述的數(shù)據(jù)塊。

前12個數(shù)據(jù)塊指針直接指向包含文件數(shù)據(jù)的數(shù)據(jù)塊,后3個數(shù)據(jù)塊則是間接指針。利用前12個直接指針,可以保存的文件最大為12KB。如果文件大小超過了12KB,則用到了單級間接指針,這一指針指向保存著一組數(shù)據(jù)塊指針的數(shù)據(jù)塊,這些指針指向包含實際數(shù)據(jù)的數(shù)據(jù)塊。超級塊中描述了文件系統(tǒng)基本大小與形狀。其中的信息主要用來進行文件系統(tǒng)的維護。雖然在每個塊組中都有一個超級塊的備份,一般情況下,EXT2文件系統(tǒng)只需讀取塊組0中的超級塊,其它塊組中的超級塊在塊組0中的超級塊損壞時使用。超級塊中主要包含的信息有:文件系統(tǒng)的標識信息、安裝統(tǒng)計信息、數(shù)據(jù)塊的信息(如大小、數(shù)據(jù)塊數(shù)、空閑數(shù)據(jù)塊數(shù))、inode信息等。2、EXT2超級塊Linux文件系統(tǒng)的每個塊組都有一個描述塊組情況的數(shù)據(jù)結(jié)構(gòu)。它主要描述的信息有:數(shù)據(jù)塊的分配信息(即塊位圖)、節(jié)點表、節(jié)點的分配信息等。所有的塊組的描述形成一個塊組描述表,每個塊組也像超級塊一樣,在其超級塊的副本之后,也包含塊組描述的整個列表。但只有第一個副本(保存在塊組0中)真正被EXT2文件系統(tǒng)使用,其余副本像超級塊副本一樣,在主副本破壞時使用。3、EXT2的塊組描述在EXT2中,目錄是一種特殊文件,用于創(chuàng)建和保存文件系統(tǒng)、訪問文件路徑。目錄文件中包含了目錄項的列表,每個目錄項中的信息非常簡單,主要是文件名及其長度以及索引節(jié)點號。如圖8-2-4所示:4、EXT2目錄文件名文件長度Inode節(jié)點號

模式

所有者

大小

時間戳┈Inode節(jié)點號圖

8-2-4文件目錄

在Linux中,不注重文件名的格式和長度。查找文件時,先在超級塊中找到根目錄的inode編號,然后從根目錄起查找各級目錄,直到找到要查找的文件的inode節(jié)點,從inode節(jié)點中可找到文件所在的物理塊,進而可讀出文件中的數(shù)據(jù)。在EXT文件系統(tǒng)的開發(fā)過程中,引入了一個非常重要的概念,即虛擬文件系統(tǒng)(VFS)。VFS作為實際文件系統(tǒng)(EXT)和操作系統(tǒng)之間的接口,將實際的文件系統(tǒng)和操作系統(tǒng)隔離開來。VFS允許Linux可以支持除EXT之外的許多文件系統(tǒng)類型。各文件系統(tǒng)為VFS提供一致的接口,文件系統(tǒng)的所有細節(jié)由軟件轉(zhuǎn)換,因此對Linux的內(nèi)核以及運行在Linux上的程序而言,所有的文件系統(tǒng)都是一樣的。8.2.3Linux的虛擬文件系統(tǒng)如圖8-2-5所示,是虛擬文件系統(tǒng)和實際文件系統(tǒng)之間的關(guān)系。虛擬文件系統(tǒng)必須管理所有可在任意時刻掛裝的不同文件系統(tǒng)。為此,Linux虛擬文件系統(tǒng)維護一些數(shù)據(jù)結(jié)構(gòu),用以描述整個虛擬文件系統(tǒng)以及實際已掛裝的文件系統(tǒng)。VFS利用超級塊和inode節(jié)點描述整個文件系統(tǒng),這與EXT2文件系統(tǒng)使用的超級塊和inode節(jié)點方式?jīng)]什么不同。

但是在VFS中,超級塊是用來描述文件系統(tǒng)整體情況的數(shù)據(jù)結(jié)構(gòu),主要內(nèi)容包括文件系統(tǒng)所在的設(shè)備、指向文件系統(tǒng)的inode節(jié)點指針、塊尺寸、指向文件系統(tǒng)超級塊例行程序的指針等。像在EXT2文件系統(tǒng)中一樣,VFS中的文件、目錄等均由對應(yīng)的inode節(jié)點代表,每個VFSinode中的信息來源于基本文件系統(tǒng),由文件特定的子程序創(chuàng)建。VFSinode只存在于內(nèi)核內(nèi)存中,實際保存于VFS的inodecache中。目錄chacheVFSMinixEXT2緩沖區(qū)cache

磁盤驅(qū)動程序Inodecache圖

8-2-5虛擬文件系統(tǒng)與實際文件系統(tǒng)之間的關(guān)系示意圖

每個文件系統(tǒng)在初始化時,首先在VFS中進行注冊。如果文件系統(tǒng)內(nèi)建于內(nèi)核中,則初始化過程發(fā)生在系統(tǒng)引導(dǎo)時;如果文件系統(tǒng)作為內(nèi)核可裝卸的模塊,則實際掛裝某個文件系統(tǒng)時進行初始化。當某種基于塊設(shè)備的文件系統(tǒng)(包括root文件系統(tǒng))被掛裝,VFS必須讀取其超級塊。

不同類型的文件系統(tǒng)所對應(yīng)的超級塊讀取例程必須能理解實際文件系統(tǒng)的拓撲結(jié)構(gòu),并且能夠?qū)嶋H的超級塊結(jié)構(gòu)映射為VFS超級塊結(jié)構(gòu)。每個VFS超級塊包含了文件系統(tǒng)信息,并且還包含一些完成特定功能的函數(shù)指針。例如,某個超級塊代表一個已掛裝的EXT2文件系統(tǒng),則超級塊中包含有專門讀取EXT2文件系統(tǒng)inode的函數(shù)地址。每個VFS超級塊中包含指向?qū)嶋H文件系統(tǒng)第一個VFSinode的指針。對于root文件系統(tǒng)來說,第一個inode就是代表“/”目錄的inode。

backLinux是一個多任務(wù)的操作系統(tǒng),也就是多個進程可以并發(fā)執(zhí)行,為了保證能有更多的進程正確運行,Linux采用了段頁式虛擬存儲管理技術(shù)。這樣,用戶就不用擔(dān)心內(nèi)存是否夠用。Linux將一個進程中的程序、數(shù)據(jù)分成若干“段”來處理,每段有一個段描述符,這些段描述符組合形成段表。段表中的一個表項指出某一個段的起始地址、長度和存取權(quán)限等,而段表的起始位置則記錄在一個寄存器中。8.3.Linux文件系統(tǒng)Linux內(nèi)存管理采用請求頁式技術(shù)實現(xiàn),每段被分為若干頁,為保證需求內(nèi)存比實際內(nèi)存大得多的多個進程同時運行,系統(tǒng)只將要用的內(nèi)容以頁面為單位調(diào)入內(nèi)存塊中,而暫不需要的頁面仍留在外存交換區(qū)內(nèi)。一旦可執(zhí)行文件進入程序的虛地址空間,便可開始執(zhí)行。

這里的進入并非是指文件的全部進入,只要開始部分裝入內(nèi)存,該可執(zhí)行文件就可以開始執(zhí)行。在執(zhí)行過程中,若系統(tǒng)發(fā)現(xiàn)要執(zhí)行的內(nèi)容不在內(nèi)存時,就發(fā)出缺頁請求信號,請求內(nèi)存頁塊將所需內(nèi)容調(diào)入。在Linux中,實現(xiàn)頁面的交換和淘汰的是核心交換保護程序。核心保護程序是一個沒有虛存的核心線程,它以核心的方式在內(nèi)存中運行,

不僅可以把換出去的頁面寫到交換區(qū),而且確保系統(tǒng)中有足夠的空閑塊,以保證存儲管理程序的有效運行。交換保護程序在系統(tǒng)初始化時便開始運行,按核心交換時鐘工作或停止。它輪流查看系統(tǒng)中哪一個進程的頁面適合換出或淘汰。因正文段不能被修改,這些頁不必寫回交換區(qū),淘汰即可,需要時還可以將原副本重新裝入內(nèi)存。當確定某進程的某頁要被換出或淘汰時,還要檢查它是否還有共享者或被鎖定,如果是,就不能淘汰或換出。Linux淘汰頁的依據(jù)是頁的年齡。每頁一個計數(shù)器,初值為3,每訪問一次年齡加3,最大值為20,如果年齡為0,交換保護程序?qū)阉粨Q出或淘汰。當某頁曾被修改過后重放在交換區(qū)中,某進程再次需要使用該頁時,它已不在內(nèi)存(由頁表知道)中,請求者進程便發(fā)出缺頁請求。這時操作系統(tǒng)的缺頁中斷處理程序被執(zhí)行。它首先進行定位,找到缺頁進程的虛地址,如果找到的是曾被換出的頁表項,便把它再換入內(nèi)存,并把換入找到的內(nèi)存頁填到頁表項中,若引起調(diào)頁處理的訪問,則在頁表中要標明“可寫”標志,cache并標明“修改過”。再次換出時要寫入交換區(qū);若不曾修改過,就不寫入交換區(qū)了。

back在Linux中,一個進程主要由三部分組成:(1)程序部分,也叫正文段。它是對進程要完成任務(wù)的描述。為了便于共享,正文段是可再入程序,即只能使用,不能修改。另外,它可以為不同的用戶調(diào)用,不同的用戶調(diào)用同一正文段時,就是不同的進程。8.4.Linux中的進程管理(2)數(shù)據(jù)部分,它是進程要加工的對象。Linux進程的數(shù)據(jù)段,除普通數(shù)據(jù)外,還有系統(tǒng)保留區(qū),也稱核心域。(3)任務(wù)描述結(jié)構(gòu),即通常所謂的PCB(進程控制塊)。在Linux系統(tǒng)中,每個進程在自己的虛擬地址空間運行。為了便于管理Linux系統(tǒng)中的進程,系統(tǒng)為每個進程都設(shè)有一個task-struct數(shù)據(jù)結(jié)構(gòu),以此來識別進程的存在與否。這個task-struct的數(shù)據(jù)結(jié)構(gòu),就是Linux進程的進程控制塊。還有一個task矢量表,由它給出指向每一個task-struc的指針。

8.4.1Linux的進程控制塊task矢量表512個入口,每創(chuàng)建一個進程,建立一個task-struct結(jié)構(gòu),并加入task矢量表中,矢量表的容量限制了進程數(shù)量,此外還有一個當前指針,可以指向當前正在運行的進程的task-struct。Linux中的進程控制塊中主要包括以下信息:(1)Linux進程的狀態(tài)。記錄Linux進程的此時所處的狀態(tài)。(2)調(diào)度信息。用于進程調(diào)度,決定調(diào)度的次序,即優(yōu)先級別。(3)進程標識。Linux進程標識為數(shù)字,有進程標識PID,組織標識GID,用于訪問系統(tǒng)文件和設(shè)備時使用。(4)內(nèi)部通信信息。Linux支持IPC通信、管道和信號量通信。(5)家族關(guān)系。Linux中除初始化進程外,其他進程都被創(chuàng)建,所以進程都有父進程和子進程之間連接關(guān)系問題。(6)時鐘信息。為追蹤進程使用CPU時間和創(chuàng)建時間等,需要時鐘信息。(7)文件系統(tǒng)。進程可以隨時打開和關(guān)閉文件,使用程序和數(shù)據(jù),所以要有與文件系統(tǒng)相關(guān)的信息。(8)虛存信息。進程虛存空間信息及其與物理存儲有關(guān)信息。(9)處理機的特殊環(huán)境,相當于通常CPU現(xiàn)場保留區(qū)。Linux進程之間是一個樹形的結(jié)構(gòu)關(guān)系,每一個進程都有唯一的標識號PID,每一個進程都有一個創(chuàng)建該進程的父進程,每一個進程都屬于一個進程組,所以還有一個組標識號GID。為解決進程訪問不同文件擁有不同權(quán)限的問題,又增加了“有效用戶標識”和“有效組標識”兩個標識號。Linux有如下幾種狀態(tài):運行狀態(tài):一個進程正在運行或已準備好了,就要運行。等待狀態(tài):進程正在等待一事件或一種資源。Linux分兩種等待狀態(tài):即可中斷等待和不可中斷等待??芍袛嗟却鼙恍盘栔袛?;不可中斷等待直接在硬件環(huán)境中等待,不能被中斷。暫停狀態(tài):通常是由于進程接收一個信號后,處于停止狀態(tài)。僵死狀態(tài):一個進程已停止運行,但在進程指針數(shù)組中仍占據(jù)著一個位置,因此,可將處于這種狀態(tài)的進程看作是一個死進程。Linux發(fā)生進程調(diào)度的情況一般有如下幾種:(1)當某個進程因為系統(tǒng)調(diào)用運行在內(nèi)核模式下時,系統(tǒng)可以調(diào)度其它進程運行。(2)在運行進程用完自己的時間片時,系統(tǒng)需選擇一個新的進程運行。(3)當當前運行進程因中斷或異常進入等待狀態(tài)時,系統(tǒng)也應(yīng)運行調(diào)度程序來選擇下一個執(zhí)行進程。8.4.2Linux中的進程調(diào)度在Linux中,進程分為普通進程和實時進程。實時進程的優(yōu)先級高于普通進程,一旦有實時進程請求運行,系統(tǒng)便將處理機分配給它。進程的優(yōu)先級可以通過系統(tǒng)調(diào)用改變。實時進程的調(diào)度策略有兩種:一種是先進先出調(diào)度算法;另一種是輪轉(zhuǎn)調(diào)度算法。對于一般進程,Linux采用一般的分時調(diào)度策略。Linux系統(tǒng)中,主要的并行操作單位是進程。進程切換時,首先需要保護離開CPU進程的現(xiàn)場信息,恢復(fù)CPU進程的現(xiàn)場信息。因為每個進程有自己獨立的程序段、數(shù)據(jù)區(qū)、內(nèi)存區(qū)、時間片等,這樣就導(dǎo)致進程切換的開銷較大,此外進程通信也需要開銷。前面我們已經(jīng)知道了線程的概念,為了減少這些不必要的開銷,Linux可以通過軟件包實現(xiàn)線程。不過,Linux的線程支持不像Windows2000那樣典型,Linux支持內(nèi)核級的多線程。有了線程后,每個進程又可由若干并行的線程共享進程的時間片和其他資源。同一個進程內(nèi)的線程可以作為調(diào)度單位競爭使用CPU。因為進程內(nèi)的線程共享進程的正文、數(shù)據(jù)、內(nèi)存、及數(shù)據(jù)結(jié)構(gòu),因此在同一進程中的線程之間的環(huán)境切換的工作量,遠遠小于進程之間的環(huán)境切換的工作量。所以,不需為重新安排這些事情而付出代價。所以,有時也把線程叫做輕量級進程。在Linux系統(tǒng)中,進程的控制主要是使用系統(tǒng)調(diào)用來實現(xiàn)的,主要有以下幾種。1.進程的建立在Linux系統(tǒng)中,除1#進程是在系統(tǒng)初始化時由系統(tǒng)創(chuàng)建的之外,其他進程都是通過fork()系統(tǒng)調(diào)用建立的。使用fork()的進程為父進程,通過fork()建立的新進程叫子進程父子進程除進程標識號PID不同外,子進程的正文段和用戶數(shù)據(jù)段與父進程完全相同,系統(tǒng)數(shù)據(jù)段的內(nèi)容也幾乎相同。另外,凡是父進程打開的文件,子進程全部可以使用。8.4.3Linux中的進程控制在Linux中,要使進程執(zhí)行新文件的唯一方法是使用exec()系統(tǒng)調(diào)用。具體的做法是:在使用exec()系統(tǒng)調(diào)用時,將要執(zhí)行的文件名設(shè)為它的參數(shù)。

2.進程的執(zhí)行將exec()放在程序中,其中的文件就是要執(zhí)行的正文和數(shù)據(jù),它將取代父進程的正文和數(shù)據(jù)。我們知道,在UNIX中,子進程被創(chuàng)建時,從父進程那里拷貝了正文和數(shù)據(jù),子進程為了和父進程完成不同的任務(wù),利用exec()系統(tǒng)調(diào)用可執(zhí)行其他指定的文件,取代從父進程那里拷貝過來的內(nèi)容。而在Linux中則有所不同,它采用了一種“寫時拷貝”(copyonwrite)方法,即fork()命令建立子進程時,只有少量的共享內(nèi)容被復(fù)制,而執(zhí)行exec()時,如果需要用父進程的程序和數(shù)據(jù),這時才會拷貝。這樣就可節(jié)省不少內(nèi)存空間和拷貝時間。3.等待進程結(jié)束

當父進程用fork()創(chuàng)建子進程后,子進程轉(zhuǎn)去執(zhí)行指定文件,而父進程可通過wait()等待子進程結(jié)束。其中的參數(shù)就是所等的子進程。等到子進程結(jié)束,父進程再做其他工作。其返回值就是結(jié)束的子進程的標識號PID。在Linux系統(tǒng)中,進程的終止可通過調(diào)用exit()來實現(xiàn)。exit()沒有返回值,但它取一個狀態(tài)參數(shù),可以使等待子進程結(jié)束的父進程恢復(fù)執(zhí)行,也可將所指狀態(tài)傳遞給父進程。4.進程的終止為了協(xié)調(diào)進程之間的活動,進程間以及進程與核心之間要進行通信。Linux支持流行UNIX系統(tǒng)所有的進程通信機制(IPC),常用的有信號、管道、消息傳遞、信號量和共享內(nèi)存等機制。8.4.4Linux進程通信信號是UNIX系統(tǒng)中最古老的一種通信機制,進程通過信號了解系統(tǒng)中正在出現(xiàn)的事件。信號是隨機產(chǎn)生的,進程必須隨時做好響應(yīng)信號的準備,發(fā)信號的進程將信號送給接收者進程的pcb中,接收者進程調(diào)度運行時,才能轉(zhuǎn)入處理信號引起的事件。這種現(xiàn)象類似中斷,為了和硬件中斷相區(qū)分,有時也把信號的處理叫“軟中斷”。

1.信號在Linux中,內(nèi)核用一個字表示所有信號,字長就是信號的最多種類,而不同的平臺字長也不同,所以說,信號的種類和具體的平臺有關(guān)。Linux內(nèi)核定義的最常見的信號、C語言宏名及其用途如表8-1所示。

符號

1SIGHUP

在終端上發(fā)出的結(jié)束信號

2SIGINT從鍵盤上發(fā)出的中斷(ctrl-c)信號

3SIGQUT從鍵盤來的退出信號(ctrl-\)8SIGFPE

浮點異常(例如被0除)9SIGKILL

結(jié)束接收信號的進程

14SIGALRMalarm()系統(tǒng)調(diào)用結(jié)束時的暫停

15SIGTERM

默認的kill命令信號

17SIGCHLD表示子進程停止或結(jié)束的信號

19SIGSTOP從鍵盤來執(zhí)行的信號(ctrl-z)表8-1常見信號及用途管道,原來是UNIX中的通信機制,是用于進程通信的一種共享文件,(也叫pipe文件),進程之間以比特流的方式傳送數(shù)據(jù)。系統(tǒng)允許一進程從管道一端寫入數(shù)據(jù),另一進程從管道的另一端讀出數(shù)據(jù)。相關(guān)的知識我們在UNIX系統(tǒng)中已經(jīng)介紹過,這里不再論述。2.“管道”在Linux中,管道用兩個文件表數(shù)據(jù)結(jié)構(gòu)來實現(xiàn),二者都指向同一暫時的VFS(虛擬文件系統(tǒng))的inode節(jié)點,由inode節(jié)點再指向內(nèi)存的物理頁,如圖8-4-1所示。F_inode

寫管道F_inode

讀管道進程1的文件表進程2的文件表

某個搜索節(jié)點數(shù)據(jù)頁Inode節(jié)點圖

8-4-1兩個文件指向同一個數(shù)據(jù)塊

當寫進程要寫管道時,內(nèi)容被復(fù)制到共享的數(shù)據(jù)頁;當讀進程要讀管道時,再將內(nèi)容從共享數(shù)據(jù)頁復(fù)制下來,Linux必須同步訪問管道,為此,采用了鎖等待隊列和信號,具體工作過程與UNIX系統(tǒng)中的管道工作原理類似,這里不再多講。為了與其他系統(tǒng)兼容,Linux也支持systemV三種通信機制,它們是:共享內(nèi)存、消息隊列和信號量。3.Systemv的進程通信機制共享內(nèi)存是指允許出現(xiàn)在一個或多個進程的虛地址空間中的一個共享區(qū)域。當進程要通信時,首先在內(nèi)存中建立一個共享區(qū),然后將它附接到自己的虛地址空間中,而實際的內(nèi)存頁面可以通過共享的進程頁表給出。當進程把信息寫入這一內(nèi)存塊時,其它可共享這一內(nèi)存塊的進程便使用這些信息。當然,對共享內(nèi)存的訪問需要有相應(yīng)的同步機制。信號量和消息隊列的相關(guān)知識我們在前面已經(jīng)介紹過,這里不再贅述。

back在Linux的設(shè)備管理中,最基本的一個特點就是它抽象了設(shè)備的處理過程。系統(tǒng)中的每一臺設(shè)備用一個特殊設(shè)備文件來表示。例如,/dev/hda就代表系統(tǒng)中的第一個IDE硬盤。所有對硬件設(shè)備的操作都可以像操作普通文件一樣,利用系統(tǒng)提供的系統(tǒng)調(diào)用來進行打開、關(guān)閉、讀、寫等操作。

8.5.1概述同一設(shè)備驅(qū)動程序所控制的所有設(shè)備具有相同的主設(shè)備號,次設(shè)備號用來區(qū)分同類設(shè)備中的不同設(shè)備。例如,系統(tǒng)中第一個IDE硬盤中的每個分區(qū)都有一個次設(shè)備號,/dev/hda1代表的就是該硬盤的第一分區(qū)。Linux支持三種類型的硬件設(shè)備,即字符設(shè)備,塊設(shè)備和網(wǎng)絡(luò)設(shè)備。字符設(shè)備是Linux中最簡單的設(shè)備,可以作為文件訪問,應(yīng)用程序可用標準的系統(tǒng)調(diào)用對字符設(shè)備進行打開、關(guān)閉、讀、寫等操作。字符設(shè)備可以直接進行讀寫,不經(jīng)過緩沖區(qū)。塊設(shè)備的操作也與普通文件類似,不過與字符設(shè)備不同,塊設(shè)備又分為幾種類型,如IDE類型、SCSI類型等,每類塊設(shè)備驅(qū)動程序提供用于該類設(shè)備的特殊接口。

就像提供正常的文件操作接口一樣,每個塊設(shè)備驅(qū)動程序還必須提供與高速緩存的接口。塊設(shè)備按塊的大小進行讀寫操作,一般一個為512字節(jié)或1024字節(jié)為一塊。塊設(shè)備可通過高速緩存隨時都可以對它進行讀寫。塊設(shè)備一般是通過文件系統(tǒng)對其設(shè)備文件進行訪問的,只有網(wǎng)絡(luò)設(shè)備是通過BSDsockil和網(wǎng)絡(luò)子系統(tǒng)訪問。Linux系統(tǒng)中的網(wǎng)絡(luò)設(shè)備的主要功能是發(fā)送和接收數(shù)據(jù),與一般的硬件設(shè)備不同,Linux中的某些網(wǎng)絡(luò)設(shè)備是硬件設(shè)備,而有些則是軟件設(shè)備,不存在與之對應(yīng)的實際硬件設(shè)備,如回環(huán)設(shè)備等。另外,一般的塊設(shè)備或字符設(shè)備的特殊文件可以通過mknod命令建立,而網(wǎng)絡(luò)設(shè)備只有在系統(tǒng)引導(dǎo)時發(fā)現(xiàn)和初始化之后才存在。由于Linux支持設(shè)備較多,每一類設(shè)備對應(yīng)一個設(shè)備驅(qū)動程序,因此系統(tǒng)便有許多不同的驅(qū)動程序,這些驅(qū)動程序在某些方面具有共性。8.5.2Linux中的設(shè)備驅(qū)動程序比如:

(1)設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核的一部分,和系統(tǒng)中其他代碼一樣,一旦出錯,則嚴重破壞系統(tǒng)。(2)設(shè)備驅(qū)動程序提供Linux內(nèi)核或子系統(tǒng)的接口。(3)設(shè)備驅(qū)動程序用標準的內(nèi)核服務(wù),如內(nèi)存分配、中斷傳輸?shù)汝犃羞M行操作。

(4)Linux設(shè)備驅(qū)動程序在需要時可以作為內(nèi)核模塊被請求裝入;當不再需要時,可以被卸載,這樣有利于內(nèi)核高效使用系統(tǒng)資源。(5)Linux設(shè)備驅(qū)動程序可以進入內(nèi)核中,當內(nèi)核編譯時,要建立哪一個設(shè)備是可以配置的。(6)系統(tǒng)自舉時,要對每個設(shè)備驅(qū)動程序進行初始化,以管理文件控制的硬件設(shè)備。即使受特殊設(shè)備驅(qū)動程序控制的設(shè)備不存在,也不會造成其他任何危害。設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核與外設(shè)之間的接口,設(shè)備驅(qū)動程序中包括與設(shè)備相關(guān)的代碼。設(shè)備驅(qū)動程序的功能是從與設(shè)備無關(guān)的軟件中接收抽象的請求。但當它正在處理另一個請求時,會將該請求放在等待隊列中。Linux設(shè)備驅(qū)動程序的主要功能有:

(1)將數(shù)據(jù)在內(nèi)核和設(shè)備之間接收和發(fā)送;(2)對設(shè)備進行初始化;(3)使設(shè)備投入運行和退出服務(wù);(4)檢測和處理設(shè)備出現(xiàn)的錯誤。在Linux中,每一個驅(qū)動程序都是一個完整的進程,每個這樣的進程都有自己的狀態(tài)寄存器、堆棧等,進程之間可以相互通信,也可與文件系統(tǒng)通信。設(shè)備驅(qū)動程序進程與其他進程不同的是,這些進程全部鏈入核心,它們都共享一個公用的地址空間。若幾個設(shè)備驅(qū)動程序共用一個過程,則在執(zhí)行代碼過程中,只有一個過程的拷貝。這樣做可使操作系統(tǒng)設(shè)計更模塊化,并能提高效率。

backshell的種類有很多,RedHatLinux提供了下面的shell:sh、bash(BourneAgainshell)、tcsh、csh、pdksh(PublicDomainKomShell)、zsh、ash和mc等。你可以選擇你喜歡的shell來使用而不必擔(dān)心別的。8.6.1了解Linux的shell在眾多的shell中,sh是最早出現(xiàn)的一種,它也是最初的UNIXshell,它使用的語法類似于早期的UNIX系統(tǒng)

III的原始shell的語法。在UNIX系統(tǒng)中sh的可執(zhí)行程序在文件bin/sh中。事實上,Linux使用了sh的一種變種(即bashshell)作為它的默認shell。因為bash支持sh語法的超集,所以用標準sh寫的任何一個shell腳本都可以在bash下運行。

shell腳本就是在一個文件中包含一個或多個shell命令的集合,它是一種功能非常強大的工具,用它可以擴展UNIX/Linux的用途。對于交互式用戶來說,sh缺少一些如任務(wù)控制等特性,但它提供了一個書寫絕大多數(shù)shell程序的很好的基礎(chǔ)。雖然UNIX和Linux版本中包括多種shell,但它們的工作方式都基本相同,shell在用戶和內(nèi)核之間起著橋梁作用。各種shell之間的主要區(qū)別在于命令行語法。我們只對常用的命令做以下講解,讀者可以通過man命令來獲得更詳細的說明,或通過使用“—help”參數(shù)查詢其他命令的幫助信息。

8.6.2shell的一般用法作用是建立一個新的帳號。當用戶完成Linux的安裝后,只有一個Username(即root)可以登錄。使用adduser可以建立另一個Username(也就是建立一個新帳號),以便將Linux提供給其他使用者使用。1.a(chǎn)dduser作用是安排、檢查、刪除隊列中的作業(yè)。at系列的命令有:at在設(shè)定的時間執(zhí)行作業(yè)atq列出用戶排在隊列中的作業(yè)atrm刪除隊列中的作業(yè)batch用低優(yōu)先級運行作業(yè)2.a(chǎn)t系列超級用戶可以在任何情況下使用at系列的命令,一般用戶使用at系列命令的權(quán)利由文件/etc/at.allow,/etc/at.deny控制。例:at-ff16pm+3days表示:在三天后下午六點執(zhí)行文件f1中的作業(yè)。作用是連接文件并送到標準輸出。cat是傳統(tǒng)UNIX系統(tǒng)所使用的命令,和DOS下的TYPE命令相似。例:cattest.txt表示在屏幕上顯示test.txt文件的內(nèi)容。3.cat作用是改變當前目錄。例:cd/返回根目錄

cd/home/xyf進入home目錄下的子目錄xyf.4.cd作用是壓縮文件。compress利用LZW原理來壓縮文件,原文件將被替代為擴張名為.z的新文件uncompress用來展開壓縮文件。例:compressfile1壓縮文件file1uncompressfile1.z還原文件file15.compress6.cp

作用是拷貝文件,拷貝時可以使用通配符“*”和“?”。例:cp*/home/xyf將當前目錄下的所有文件拷貝到/home/xyf下7.df作用是報告磁盤剩余空間。例:df-T列出磁盤的使用情況,并將每個文件系統(tǒng)的類型輸出。8.diff作用是比較兩個文件的不同。例:difffile1file1比較file1和file2兩個文件9.ed文本編輯器,用來編輯文本。例:edfile1編輯一個文件file110.fdformat作用是低級格式化一張軟盤。11.id顯示當前用戶的用戶名和組。12.kill作用是終止一個正在執(zhí)行的進程。kill向指定的進程發(fā)出特定的信號,如果沒有指定的信號則送出TERM信號,TERM信號將殺死沒有捕捉到這個信號的進程。例:kill101將進程號是101的進程殺死。13.last作用是顯示過去多少個用戶或終端登錄到這臺機器。例:last–5xyf顯示用戶xyf過去5次登錄的情況。14.less用來按頁顯示文件,作用類似于more,但是與more不同的是,less允許向前或向后瀏覽文件。例:lessfile1按頁顯示文件file115.logname作用是輸出用戶登錄時的用戶名。16.ls作用是列出目錄下的文件。若只執(zhí)行l(wèi)s而不帶參數(shù),則顯示效果與DOS下的dir/w命令一樣,只顯示目錄和文件名稱。例:ls-al輸出當前目錄下所有文件的詳細信息17.man作用是訪問聯(lián)機手冊。man對于所有用戶來說都是非常有用的一個工具,利用它可以快速查詢命令和程序的使用方法和參數(shù)。例:manless查詢less的參數(shù)及用法18.mesg選擇是否接收其他用戶利用talk或write發(fā)來的信息。mesgn不接收其他的用戶發(fā)來的信息mesgy恢復(fù)接收其他的用戶發(fā)來的信息19.mkdir該命令是建立目錄,與DOS下的md類似。20.mv該命令是更改或移動文件。注意一點,在執(zhí)行該命令后,源文件就不存在了,而產(chǎn)生了新的目標文件。例:mvfile1file2將文件file1改名為file2mvfile2/xyf將文件file2移到目錄/xyf下21.nice該命令用來為要運行的程序設(shè)定優(yōu)先權(quán)。其中,優(yōu)先權(quán)缺省值為10,最高為-20(優(yōu)先權(quán)最高),最低為19(優(yōu)先權(quán)最低)。例:nice–18/usr/xyf/file2以優(yōu)先權(quán)-18運行程序/usr/xyf/file222.passwd

該命令用來設(shè)置或更改用戶密碼。一般用戶只能更改自己的密碼,而超級用戶可以更改其他所有用戶的密碼。23.ps該命令用來查看進程狀態(tài)。例:ps–c從task-struct中給出當前的進程名24.pwd該命令用來顯示當前的工作目錄。例:pwd列出當前工作目錄25.rm該命令用來刪除文件或目錄。與DOS不同,rm在刪除目錄時,可以不事先刪除該目錄下的文件。例:rmfile2刪除文件file2rm-rxyf刪除目錄/xyf及其該目錄下的所有文件和目錄26.time顯示以秒為單位的當前時間。27.unmount,mountmount:裝載一個文件系統(tǒng)。unmount:卸下一個文件系統(tǒng)。例:mount

溫馨提示

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

最新文檔

評論

0/150

提交評論