1. 程式人生 > >作業系統面試知識點總結

作業系統面試知識點總結

緒論

作業系統的功能

使用者介面:命令介面、程式介面、圖形介面

處理機管理:程序控制、程序同步、程序通訊、程序排程

儲存管理:記憶體分配、記憶體保護、地址對映、記憶體擴充

裝置管理:緩衝管理、裝置分配、裝置處理、虛擬裝置管理

檔案管理:檔案儲存空間管理、目錄管理、檔案讀寫管理、檔案保護、檔案系統的安全性、檔案介面

作業系統的結構

核心(kernel)與外殼(shell)

從整體上講,作業系統一般可分為“核心”(kernel)和“外殼”(shell)兩大部分。作業系統的核心是實現作業系統基本功能的程式模組的集合,在機器的系統態(核心態)下執行;作業系統的外殼,指的是執行在核心之上的、完成OS外層功能(如命令解釋、機器診斷等)的程式,他們執行在機器的使用者態下,是一種開放式結構,其功能可方便地修改或增刪。

核心態和使用者態

計算機系統都有兩種執行狀態,即核心態使用者態,在某一時刻二者必居其一。當作業系統核心的程式模組執行時,機器處於核心態,其他程式(包括OS外殼程式和其他應用程式)執行時機器處於使用者態。

使用者態:使用者態具有較低特權的執行狀態,在這種狀態下,處理機只能執行規定的指令,訪問指定的暫存器和儲存區,使用者程式通常只能在這一級別執行。

核心態:核心態是作業系統核心的執行狀態,在這種狀態下,處理機具有較高的特權,能執行一切指令,可以訪問所有的暫存器和儲存區。

在實際系統中,之所以要區分機器的兩種執行狀態,目的是給作業系統核心以某些特權。例如,改變狀態暫存器和地址對映暫存器的內容等。這些特權是通過執行特權指令實現的,僅當在核心態下才能執行特權指令。

作業系統的特徵

作業系統的基本特徵:併發、虛擬、共享、不確定性

併發:所謂併發是指在一段時間內有多道程式“在巨集觀上同時執行”,這樣的系統叫併發系統。

虛擬:作業系統中的虛擬概念,指的是作業系統使用某種技術,要麼把物理上的一個變成邏輯上的多個,例如,把一臺物理CPU變成多臺邏輯上獨立的CPU;要麼把物理上的多個變成邏輯上的一個,例如,把物理上分開的主存和輔存變成邏輯上統一編址的程式設計空間,即虛擬記憶體。

共享:多道必然帶來共享,即多道程式、多個使用者作業共享有限的計算機系統資源。計算機系統中的資源共享有兩種型別:互斥共享和“同時”共享。

不確定:作業系統的不確定,不是說作業系統本身的功能不確定,也不是說在作業系統控制下執行的使用者程式的結果是不確定的,而是指在作業系統控制下的多個作業的執行順序

和每個作業的執行時間是不確定的。

代作業系統新特徵

微核心:只給核心分配一些基本的功能,包括地址空間、程序通訊和最基本的排程。而其他的作業系統功能都由執行在使用者模式下的程序實現。這種方法可以將核心和服務程式的開發分離開,可以為特定的應用程式或環境要求定製服務程式。微核心的優點是,可以簡化實現、提供靈活性,很適合於分散式環境。

多執行緒

多處理器

分散式作業系統

面向物件技術

作業系統分類

多批道處理系統、分時系統、實時系統、網路作業系統、分散式作業系統。

中斷技術

中斷在作業系統中的地位

在現代計算機系統中,中斷通道技術是主機和外部裝置並行工作的基礎,是多道程式併發執行的推動力,也是整個作業系統的推動力——作業系統是由中斷驅動的。

為什麼說中斷是多道程式併發執行的推動力呢?在單CPU計算機系統中,要使多道程式得以併發執行,關鍵在於CPU能在這些程式間不斷的切換,使得每道程式都有機會在CPU上執行。導致這種切換的動力是什麼?主要是時鐘中斷

中斷的概念、作用和型別

中斷:中斷是指某個事件(電源掉電、加法溢位或外部裝置傳輸結束等)發生時系統終止現行程式的執行,引出中斷處理程式對該事件進行處理,完畢後返回斷點繼續執行,這個過程稱為“中斷”。

中斷的作用:CPU與I/O裝置並行工作、硬體故障處理、實現人機通訊、實現多道程式的併發執行等。

中斷的型別:硬體故障中斷、程式性中斷、外部中斷、輸入/輸出裝置中斷、訪管中斷。

中斷響應流程圖:


中斷和輪詢的特點

對I/O裝置的程式輪詢的方式,是早期的計算機系統對I/O裝置的一種管理方式。它定時對各種裝置輪流詢問一遍有無處理要求。輪流詢問之後,有要求的,則加以處理。在處理I/O裝置的要求之後,處理機返回繼續工作。儘管輪詢需要時間,但輪詢要比I/O裝置的速度要快得多,所以一般不會發生不能及時處理的問題。當然,再快的處理機,能處理的輸入輸出裝置的數量也是有一定限度的。而且,程式輪詢畢竟佔據了CPU相當一部分處理時間,因此,程式輪詢是一種效率較低的方式,在現代計算機系統中已很少應用。

程式中斷通常簡稱中斷,是指CPU在正常執行程式的過程中,由於預先安排或發生了各種隨機的內部或外部事件,使CPU中斷正在

執行的程式,而轉到為響應的服務程式去處理。

輪詢——效率低,等待時間很長,CPU利用率不高。

中斷——容易遺漏一些問題,CPU利用率高。

程序與執行緒

程序的基本狀態


1、什麼是程序(Process)和執行緒(Thread)?有何區別?

定義
程序
是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位.
執行緒通常,當一個程序內有多個執行緒時,執行緒的程式是其所屬程序的一部分,表示程序中的一個控制點,執行一系列的指令。同屬一個程序的其他的執行緒共享程序所擁有的全部資源(包括地址空間)。它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),因此,它的建立、撤銷、切換所需要的時空開銷比程序要小。執行緒的引入可進一步提高系統的併發性。

區別
程序和執行緒的主要差別在於它們是不同的作業系統資源管理方式。程序有獨立的地址空間,一個程序崩潰後,在保護模式下不會對其它程序產生影響,而執行緒只是一個程序中的不同執行路徑。執行緒有自己的堆疊和區域性變數,但執行緒之間沒有單獨的地址空間,一個執行緒死掉就等於整個程序死掉,所以多程序的程式要比多執行緒的程式健壯,但在程序切換時,耗費資源較大,效率要差一些。但對於一些要求同時進行並且又要共享某些變數的併發操作,只能用執行緒,不能用程序。

1、排程分派:執行緒是可排程分派的工作單元,它包括處理器上下文環境和棧中自己的資料區域。執行緒順序執行,並且可以中斷,這樣處理器可以轉到另一個執行緒。在有執行緒的系統中,程序不再是可排程分派的工作單元。
2、資源擁有:程序是一個或多個執行緒和相關資源的集合。執行緒基本不擁有資源,它的執行資源取決於其所屬的程序。
3、地址空間:不同程序的地址空間是相互獨立的,而同一個程序的各執行緒共享同一地址空間。
4、一個程序可包含一個或多個執行緒,反過來則不然。一個程序中的執行緒在另一個程序中時不可見的。
5、通訊關係:程序間的通訊必須使用作業系統提供的程序間通訊機制,而同一個程序中的各執行緒間可以通過直接讀寫資料段來進行通訊。當然,同一個程序中的各執行緒間的通訊也需要同步和互斥手段的輔助,以確保資料一致性。

使用者級執行緒和核心執行緒

執行緒的型別:對於通常的程序,不論是系統程序還是使用者程序,在進行切換時都要依賴核心中的程序排程。因此,不論什麼程序都是與核心有關的,而且是在核心支援下進行切換的。根據執行緒的控制方式不同,可將執行緒分為核心執行緒和使用者級執行緒。

核心級執行緒:這類執行緒依賴於核心,又稱為核心支援的執行緒或輕量級程序。無論是在使用者程式中的執行緒還是系統程序中的執行緒,它們的建立、撤銷和切換都由核心實現。為此,需要在核心中建立一個執行緒控制塊,核心根據該控制塊而感知該執行緒的存在並對執行緒進行控制。

使用者級執行緒:它僅存在於使用者級中,這種執行緒是不依賴於作業系統核心的。應用程序利用執行緒庫來完成其建立、同步、排程和管理執行緒。因此使用者執行緒間的切換不需要核心特權,不需要使用者態/核心態切換,速度快,作業系統核心無法感知使用者級執行緒的存在。

使用者級執行緒和核心級執行緒的區別

(1)核心支援執行緒是OS核心可感知的,而使用者級執行緒是OS核心不可感知的。
(2)使用者級執行緒的建立、撤消和排程不需要OS核心的支援;而核心支援執行緒的建立、撤消和排程都需OS核心提供支援,而且與程序的建立、撤消和排程大體是相同的。
(3)使用者級執行緒執行系統呼叫指令時將導致其所屬程序被中斷,而核心支援執行緒執行系統呼叫指令時,只導致該執行緒被中斷。
(4)在只有使用者級執行緒的系統內,CPU排程還是以程序為單位,處於執行狀態的程序中的多個執行緒,由使用者程式控制執行緒的輪換執行;在有核心支援執行緒的系統內,CPU排程則以執行緒為單位,由OS的執行緒排程程式負責執行緒的排程。
(5)使用者級執行緒的程式實體是執行在使用者態下的程式,而核心支援執行緒的程式實體則是可以執行在任何狀態下的程式。

核心執行緒的優點:

(1)當有多個處理機時,一個程序的多個執行緒可以同時執行。

缺點:

(1)由核心進行排程。

使用者執行緒的優點:

(1) 執行緒的排程不需要核心直接參與,控制簡單。
(2) 可以在不支援執行緒的作業系統中實現。
(3) 建立和銷燬執行緒、執行緒切換代價等執行緒管理的代價比核心執行緒少得多。
(4) 允許每個程序定製自己的排程演算法,執行緒管理比較靈活。這就是必須自己寫管理程式,與核心執行緒的區別。
(5) 執行緒能夠利用的表空間和堆疊空間比核心級執行緒多。
(6) 同一程序中只能同時有一個執行緒在執行,如果有一個執行緒使用了系統呼叫而阻塞,那麼整個程序都會被掛起。另外,頁面失效也會產生同樣的問題。

缺點:

(1)資源排程按照程序進行,多個處理機下,同一個程序中的執行緒只能在同一個處理機下分時複用

程序同步與通訊

互斥與同步

所謂互斥,指的是多個程序之間由於競爭臨界資源而相互制約。什麼是臨界資源?就是指一次僅允許一個程序使用的資源,即不能同時被共享的資源。‘

程序的同步,指多個程序中發生的事件存在某種時序關係,需要相互合作,共同完成一項任務。

程序同步的主要任務:是對多個相關程序在執行次序上進行協調,以使併發執行的諸程序之間能有效地共享資源和相互合作,從而使程式的執行具有可再現性。
同步機制遵循的原則:
(1)空閒讓進;
(2)忙則等待(保證對臨界區的互斥訪問);
(3)有限等待(有限代表有限的時間,避免死等);
(4)讓權等待,(當程序不能進入自己的臨界區時,應該釋放處理機,以免陷入忙等狀態)。

程序通訊

程序間的通訊是如何實現的
程序通訊,是指程序之間的資訊交換(資訊量少則一個狀態或數值,多者則是成千上萬個位元組)。因此,對於用訊號量進行的程序間的互斥和同步,由於其所交換的資訊量少而被歸結為低階通訊
所謂高階程序通訊指:使用者可以利用作業系統所提供的一組通訊命令傳送大量資料的一種通訊方式。作業系統隱藏了程序通訊的實現細節。或者說,通訊過程對使用者是透明的。
高階通訊機制可歸結為三大類:
(1)共享儲存器系統(儲存器中劃分的共享儲存區);實際操作中對應的是“剪貼簿”(剪貼簿實際上是系統維護管理的一塊記憶體區域)的通訊方式,比如舉例如下:word程序按下ctrl+c,在ppt程序按下ctrl+v,即完成了word程序和ppt程序之間的通訊,複製時將資料放入到剪貼簿,貼上時從剪貼簿中取出資料,然後顯示在ppt視窗上。

特點:資訊交換量大、傳送和接受更加靈活、資訊儲存時間長。

(2)訊息傳遞系統(程序間的資料交換以訊息(message)為單位,當今最流行的微核心作業系統中,微核心與伺服器之間的通訊,無一例外地都採用了訊息傳遞機制。應用舉例:郵槽(MailSlot)是基於廣播通訊體系設計出來的,它採用無連線的不可靠的資料傳輸。郵槽是一種單向通訊機制,建立郵槽的伺服器程序讀取資料,開啟郵槽的客戶機程序寫入資料。
(3)管道通訊系統(管道即:連線讀寫程序以實現他們之間通訊的共享檔案(pipe檔案,類似先進先出的佇列,由一個程序寫,另一程序讀))。實際操作中,管道分為:匿名管道、命名管道。匿名管道是一個未命名的、單向管道,通過父程序和一個子程序之間傳輸資料。匿名管道只能實現本地機器上兩個程序之間的通訊,而不能實現跨網路的通訊。命名管道不僅可以在本機上實現兩個程序間的通訊,還可以跨網路實現兩個程序間的通訊。

程序間通訊的方式
管道:管道中還有命名管道非命名管道之分,非命名管道只能用於父子程序通訊。命名管道可用於非父子程序,命名管道就是FIFO,管道是先進先出的通訊方式。FIFO是一種先進先出的佇列,它類似於一個管道,只允許資料的單向流動。每個FIFO都有一個名字,允許不相關的程序訪問同一個FIFO。 
訊息佇列:是用於兩個程序之間的通訊,首先在一個程序中建立一個訊息佇列,然後再往訊息佇列中寫資料,而另一個程序則從那個訊息佇列中取資料。需要注意的是,訊息佇列是用建立檔案的方式建立的,如果一個程序向某個訊息佇列中寫入了資料之後,另一個程序並沒有取出資料,即使向訊息佇列中寫資料的程序已經結束,儲存在訊息佇列中的資料並沒有消失,也就是說下次再從這個訊息佇列讀資料的時候,就是上次的資料!!!

訊號量: 不能傳遞複雜訊息,只能用來同步 。
共享記憶體:只要首先建立一個共享記憶體區,其它程序按照一定的步驟就能訪問到這個共享記憶體區中的資料,當然可讀可寫;  
幾種方式的比較
管道:速度慢,容量有限 
訊息佇列:容量受到系統限制,且要注意第一次讀的時候,要考慮上一次沒有讀完資料的問題。 
訊號量:不能傳遞複雜訊息,只能用來同步 
共享記憶體區:能夠很容易控制容量,速度快,但要保持同步,比如一個程序在寫的時候,另一個程序要注意讀寫的問題,相當於執行緒中的執行緒安全,當然,共享記憶體區同樣可以用作執行緒間通訊,不過沒這個必要,執行緒間本來就已經共享了一塊記憶體。  
(1)無名管道( pipe ):管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。  
(2)有名管道 (named pipe) : 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。  
(3)訊號量( semophore ) : 訊號量是一個計數器,可以用來控制多個程序對共享資源的訪問。它常作為一種鎖機制,防止某程序正在訪問共享資源時,其他程序也訪問該資源。因此,主要作為程序間以及同一程序內不同執行緒之間的同步手段。  
(4)訊息佇列( message queue ) : 訊息佇列是由訊息的連結串列,存放在核心中並由訊息佇列識別符號標識。訊息佇列克服了訊號傳遞資訊少、管道只能承載無格式位元組流以及緩衝區大小受限等缺點。  
(5)訊號 ( sinal ) : 訊號是一種比較複雜的通訊方式,用於通知接收程序某個事件已經發生。  
(6)共享記憶體( shared memory ) :共享記憶體就是對映一段能被其他程序所訪問的記憶體,這段共享記憶體由一個程序建立,但多個程序都可以訪問。共享記憶體是最快的 IPC 方式,它是針對其他程序間通訊方式執行效率低而專門設計的。它往往與其他通訊機制,如訊號兩,配合使用,來實現程序間的同步和通訊。  
(7)套接字( socket ) : 套解口也是一種程序間通訊機制,與其他通訊機制不同的是,它可用於不同及其間的程序通訊

處理機排程

作業(或程序)的排程演算法有哪些?

(1)先來先服務(FCFS,First-Come-First-Served): 此演算法的原則是按照作業到達後備作業佇列(或程序進入就緒佇列)的先後次序來選擇作業(或程序)。
(2)短作業優先(SJF,Shortest Process Next):這種排程演算法主要用於作業排程,它從作業後備佇列中挑選所需執行時間(估計值)最短的作業進入主存執行。 
(3)時間片輪轉排程演算法(RR,Round-Robin):當某個程序執行的時間片用完時,排程程式便停止該程序的執行,並將它送就緒佇列的末尾,等待分配下一時間片再執行。然後把處理機分配給就緒佇列中新的隊首程序,同時也讓它執行一個時間片。這樣就可以保證就緒佇列中的所有程序,在一給定的時間內,均能獲得一時間片處理機執行時間。 
(4)高響應比優先(HRRN,Highest Response Ratio Next): 按照高響應比((已等待時間+要求執行時間)/ 要求執行時間)優先的原則,在每次選擇作業投入執行時,先計算此時後備作業佇列中每個作業的響應比RP然後選擇其值最大的作業投入執行。 
(5)優先權(Priority)排程演算法: 按照程序的優先權大小來排程,使高優先權程序得到優先處理的排程策略稱為優先權排程演算法。
(6) 多級佇列排程演算法:多佇列排程是根據作業的性質和型別的不同,將就緒佇列再分為若干個子佇列,所有的作業(或程序)按其性質排入相應的佇列中,而不同的就緒佇列採用不同的排程演算法。

死鎖

什麼是死鎖?其條件是什麼?怎樣避免死鎖?
死鎖的概念:在兩個或多個併發程序中,如果每個程序持有某種資源而又都等待別的程序釋放它或它們現在保持著的資源,在未改變這種狀態之前都不能向前推進,稱這一組程序產生了死鎖。通俗地講,就是兩個或多個程序被無限期地阻塞、相互等待的一種狀態。
死鎖產生的原因主要是:1、 系統資源不足;2、程序推進順序非法
產生死鎖的必要條件
(1)互斥,一個資源每次只能被一個程序使用;
(2)不可搶佔,程序已獲得的資源,在未使用完之前,不能強行剝奪;
(3)佔有並等待,一個程序因請求資源而阻塞時,對已獲得的資源保持不放;
(4)環形等待,若干程序之間形成一種首尾相接的迴圈等待資源關係。
這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會發生死鎖。
死鎖的解除與預防:理解了死鎖的原因,尤其是產生死鎖的四個必要條件,就可以最大可能地避免、預防和解除死鎖。所以,在系統設計、程序排程等方面注意如何不讓這四個必要條件成立,如何確定資源的合理分配演算法,避免程序永久佔據系統資源。此外,也要防止程序在處於等待狀態的情況下佔用資源。因此,對資源的分配要給予合理的規劃。
死鎖的處理策略:預防策略、避免策略、檢測與恢復策略。

儲存器管理

儲存器管理的主要功能:對儲存空間進行分配和管理、儲存器保護、地址轉換、擴充主存容量(虛擬記憶體)。 儲存器的地址轉換:靜態地址轉換和動態地址轉換(實現非連續儲存,為虛擬儲存器的實現打下了基礎)。 儲存器的分割槽儲存管理:固定式分割槽儲存管理(內部碎片)和動態分割槽儲存管理(外部碎片)。

儲存器的分頁儲存管理


儲存器的分段儲存管理


儲存器的段頁式儲存管理

分段式儲存管理、分頁式儲存管理,兩個的區別? 

頁是資訊的物理單位,分頁是為實現離散分配方式,以消減記憶體的外零頭,提高記憶體的利用率;或者說,分頁僅僅是由於系統管理的需要,而不是使用者的需要。

段是資訊的邏輯單位,它含有一組其意義相對完整的資訊。分段的目的是為了能更好的滿足使用者的需要。
頁的大小固定且由系統確定,把邏輯地址劃分為頁號和頁內地址兩部分,是由機器硬體實現的,因而一個系統只能有一種大小的頁面。

段的長度卻不固定,決定於使用者所編寫的程式,通常由編輯程式在對源程式進行編輯時,根據資訊的性質來劃分。
分頁的作業地址空間是一維的,即單一的線性空間,程式設計師只須利用一個記憶符,即可表示一地址。分段的作業地址空間是二維的,程式設計師在標識一個地址時,既需給出段名,又需給出段內地址。

虛擬儲存器

虛擬儲存器:是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。其邏輯容量由記憶體容量和外在容量之後所決定,其執行速度接近於記憶體速度,每位的成本接近於外存。

虛擬儲存器理論基礎:時間區域性性原理和空間區域性性原理。

虛擬儲存器的實現方法:其實現,都是建立在離散分配的儲存管理方式的基礎上。一般有分兩種:請求分頁系統、請求分段系統。

頁面置換演算法有哪些?
(1)最佳置換演算法(Optimal):即選擇那些永不使用的,或者是在最長時間內不再被訪問的頁面置換出去。(它是一種理想化的演算法,效能最好,但在實際上難於實現)。  
(2)先進先出置換演算法FIFO:該演算法總是淘汰最先進入記憶體的頁面,即選擇在記憶體中駐留時間最久的頁面予以淘汰。  
(3)最近最久未使用置換演算法LRU(Least Recently Used):該演算法是選擇最近最久未使用的頁面予以淘汰,系統在每個頁面設定一個訪問欄位,用以記錄這個頁面自上次被訪問以來所經歷的時間T,當要淘汰一個頁面時,選擇T最大的頁面。  
(4)Clock置換演算法:也叫最近未用演算法NRU(Not RecentlyUsed)。該演算法為每個頁面設定一位訪問位,將記憶體中的所有頁面都通過連結指標鏈成一個迴圈佇列。當某頁被訪問時,其訪問位置“1”。在選擇一頁淘汰時,就檢查其訪問位,如果是“0”,就選擇該頁換出;若為“1”,則重新置為“0”,暫不換出該頁,在迴圈佇列中檢查下一個頁面,直到訪問位為“0”的頁面為止。由於該演算法只有一位訪問位,只能用它表示該頁是否已經使用過,而置換時是將未使用過的頁面換出去,所以把該演算法稱為最近未用演算法。  
(5)最少使用置換演算法LFU:該演算法選擇最近時期使用最少的頁面作為淘汰頁。

頁面分配演算法

頁面分配,是指按什麼原則給活動程序分配物理塊數。通常有如下三種分配演算法:

1、平均分派演算法。2、按比例分配演算法。3、按優先順序分配演算法。

頁面的分配和置換範圍

如何在相互競爭的可執行程序之間,選擇分配物理塊的策略和置換頁面的範圍。需要考慮如下兩個因素:
1、系統的併發性和吞吐率。2、缺頁中斷率。

基於這些因素,現代作業系統通常採用固定分配和可變分配兩種策略,被置換頁面的範圍分為全域性和區域性兩種。我們將分配策略和置換範圍進行組合,可得出4種方式,但是固定分配全域性置換方式是不可能的,因此,有如下3種方式:
1、固定分配區域性置換
2、可變分配全域性置換
3、可變分配區域性置換

抖動

所謂抖動是指,在具有虛擬儲存器的計算機系統中,由於頻繁的頁面置換活動,使得訪問外儲存器次數過多,從而引起的系統效率大大降低的一種現象。

裝置管理

磁臂排程

1、先來先服務演算法。2、最短查詢時間優先演算法。3、Scan演算法(電梯演算法)。4、C-Scan(Circular SCAN),掃描方向永遠是一個方向。

檔案管理

Linux作業系統

Linux中常用到的命令

顯示檔案目錄命令ls        如ls
改變當前目錄命令cd        如cd /home
建立子目錄mkdir           如mkdir xiong
刪除子目錄命令rmdir       如rmdir /mnt/cdrom
刪除檔案命令rm            如rm /ucdos.bat
檔案複製命令cp            如cp /ucdos /fox
獲取幫助資訊命令man      如man ls
顯示檔案的內容less        如less mwm.lx

Linux檔案屬性有哪些?(共十位)
-rw-r--r--那個是許可權符號,總共是- --- --- ---這幾個位。
第一個短橫處是檔案型別識別符:-表示普通檔案;c表示字元裝置(character);b表示塊裝置(block);d表示目錄(directory);l表示連結檔案(link);

第一個三個連續的短橫是使用者許可權位(User)

第二個三個連續短橫是組許可權位(Group)

第三個三個連續短橫是其他許可權位(Other)。
每個許可權位有三個許可權,r(讀許可權),w(寫許可權),x(執行許可權)。

如果每個許可權位都有許可權存在,那麼滿許可權的情況就是:-rwxrwxrwx;許可權為空的情況就是- --- --- ---。
許可權的設定可以用chmod命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:
一個檔案aaa具有完全空的許可權- --- --- ---。
chmod u+rw aaa(給使用者許可權位設定增加)讀寫許可權,其許可權表示為:- rw- --- ---)
chmod g+r aaa(給組設定許可權為可讀,其許可權表示為:- --- r-- ---)
chmod ugo+rw aaa(給使用者、組、其它使用者或組設定許可權為讀寫,許可權表示為:- rw- rw- rw-)
如果aaa具有滿許可權- rwx rwx rwx。
chmod u-x aaa(去掉使用者可執行許可權,許可權表示為:- rw- rwx rwx)
如果要給aaa賦予制定許可權- rwx r-x r-x,命令為:
chmod u=rwx,go=rx aaa

其他

CPU中的快取和作業系統中的快取分別是什麼? 

作業系統的快取是指快表。在作業系統中,為提高系統的存取速度,在地址對映機制中增加一個小容量的聯想暫存器,即快表,用來存放當前訪問最頻繁的少數活動頁面的頁號。當某使用者需要存取資料時,根據資料所在的邏輯頁號在快表中找到其對應的記憶體塊號,再聯絡頁內地址,形成實體地址。如果在快表中沒有相應的邏輯頁號,則地址對映仍可以通過記憶體中的頁表進行,得到空閒塊號後必須將該塊號填入快表的空閒塊中。如果快表中沒有空閒塊,則根據淘汰演算法淘汰某一行,再填入新的頁號和塊號。快表查詢記憶體塊的實體地址消耗的時間大大降低了,使得系統效率得到了極大的提高。 
CPU中的快取是指快取記憶體。CPU的執行速度越來越快,系統架構越來越先進,而主存的結構和存取速度改進則較慢,因此,快取記憶體技術將越來越重要。    高速緩衝儲存器是位於CPU和記憶體之間的臨時儲存器,它的容量比記憶體小但交換速度快。在高速緩衝儲存器中的資料是記憶體中的一小部分,但這一小部分是短時間內CPU即將訪問的。當CPU呼叫大量資料時,就可避開記憶體直接從高速緩衝儲存器中呼叫,從而加快讀取速度。