天天看點

linux作業系統 第01章 作業系統概述

                                                                                第1章    作業系統概述

1.1  認識作業系統

1.1.1  作業系統的概念

       計算機系統由硬體和軟體兩部分組成。硬體是組成一台計算機的各個部件,包括中央處理器(CPU)、記憶體和輸入/輸出裝置(I/O裝置)。軟體包括系統軟體和應用軟體。軟體的靜态形式是存儲在儲存設備中的程式、資料和文檔資訊,其動态形式是運作于CPU和記憶體中的指令流。在計算機系統中,硬體與軟體互相依賴:硬體提供了執行計算的能力,軟體控制和使用硬體完成特定的計算任務。

  從資源的角度看,計算機系統内的所有硬體以及儲存設備中的資訊都被看做資源,計算機系統的使用者和系統中運作的程式都是這些資源的使用者。計算機系統的資源分為四類,如圖1-1所示。其中,CPU、記憶體和I/O裝置均為硬體資源,而檔案則是資訊資源。

linux作業系統 第01章 作業系統概述

圖1‑1  計算機系統的資源

  計算機系統是一個十分複雜的系統,包含了數量龐大、種類繁多的資源,使用者很難直接操作和管理這些資源。而對資源的排程或使用方法有任何不當都會直接影響系統效能的發揮。是以,如何有效地管理和使用系統資源是計算機系統設計的一個關鍵問題。目前的解決方案是用軟體來完成全部資源的管理工作,這個軟體就是作業系統。

  作業系統(Operating System,OS)是計算機系統中最基本的軟體。它直接管理和控制計算機的資源,合理地排程資源,使之得到充分的利用,并為使用者使用這些資源提供一個友善的操作環境和良好的使用者界面。

  從資源角度看,作業系統是管理和控制計算機資源的軟體。一台沒有安裝作業系統的計算機稱為裸機,裸機上的資源是無法被利用的。

  從使用者角度看,作業系統是使用者與計算機之間的接口。作業系統屏蔽了硬體的細節,擴充了硬體的能力,為使用者構造出一台更便于使用的抽象的計算機。

  從系統結構上看,作業系統是在硬體之上的第一層軟體。作業系統包裹了整個硬體,使用者和其他軟體隻有通過作業系統才可以使用硬體資源,以及存儲在硬體中的資訊資源。在作業系統之上運作的是系統軟體和應用軟體。系統軟體是指那些為發揮硬體和系統的功能,使其友善使用而配備的軟體,如編譯系統、資料庫管理系統、各種通信軟體等。應用軟體是為解決某應用問題而設計的軟體,如文字處理、财會、科學計算、多媒體、計算機輔助制造軟體等。

  可以看出,作業系統在計算機系統中起着支撐應用程式運作以及使用者操作環境的作用,它是計算機系統的核心與基石,而所有其他軟體都要倚賴作業系統才能運作。圖1-2示意了作業系統在計算機系統中的重要地位。

linux作業系統 第01章 作業系統概述

圖1‑2  作業系統在計算機系統中的地位

1.1.2  作業系統的功能

  作業系統作為計算機系統的資料總管,它的功能是管理和控制系統資源。作業系統作為系統與使用者之間的接口,它要為使用者提供一個良好的使用環境。這些功能可以歸納為以下5項:

  (1) 處理機管理。處理機(CPU)是計算機硬體的核心。在多任務的系統中,同時有多個程式在系統中運作,它們都要占用CPU進行計算。處理機管理的功能是在多道程式之間配置設定和排程CPU,協調各程式的運作,并最大限度地發揮CPU的功效。

  (2) 記憶體管理。記憶體是計算機中比較寶貴的資源。當多個程式運作時,它們都需要一定的記憶體空間來存放程式代碼。記憶體管理的功能是合理地管理有限的記憶體空間,為多道程式配置設定記憶體,并對各程式的記憶體區域進行保護,防止互相幹擾。記憶體管理的另一項功能是實作記憶體的擴充。

  (3) 裝置管理。計算機中除CPU和記憶體之外的所有硬體部件都稱為I/O裝置。裝置管理的功能是有效地管理各種裝置,合理地将裝置配置設定給要求使用的程式,并控制裝置完成指定的輸入/輸出操作。裝置管理的目标一方面是要充分發揮各個裝置的效能,提高裝置的使用率;另一方面是要隐蔽裝置操作的具體細節,友善使用者使用裝置。

  (4) 檔案管理。在現代計算機系統中,程式和資料都是以檔案的形式存儲在儲存設備(磁盤、錄音帶等)中的。檔案管理的任務是有效地組織、管理和存儲檔案,友善使用者檢索和使用檔案,并對檔案實施共享、保密和保護措施。

  (5) 使用者接口。使用者接口的功能是向使用者提供一個使用系統的良好環境,使使用者能友善有效地利用系統完成自己的工作。為适應各種需要,作業系統通常提供3類使用者接口,即指令接口、圖形接口和程式接口。前兩者是供使用者在終端上使用的操作界面,後者是供程式員在編制程式時使用的系統調用界面。

1.2  作業系統的發展與現狀

1.2.1  作業系統的發展

  作業系統經曆了從無到有、由弱到強的發展過程。了解作業系統發展史可以幫助我們發現作業系統發展背後的原因、動機和技術的來龍去脈,進而加深對作業系統本質的認識。

作業系統的發展與計算機硬體體系結構和工藝技術的發展分不開。按照計算機硬體的4個時期的劃分,作業系統的發展經曆了以下幾個階段。

  1. 第一代計算機(20世紀40年代中~50年代末)

  第一代計算機采用電子管器件設計,體積非常龐大,運作速度也很慢,主要用于數值計算。這個時期的機器沒有作業系統,采用機器語言編寫程式,完全靠手工方式來操作機器,方式有手工操作和手工批處理操作兩種。

  1) 手工操作

  最初運作程式的方式是通過插闆和連接配接線來程式設計,運作時将連線闆插入機器中,再在控制台上用扳鍵設定參數,然後按下啟動按鈕啟動機器運作直到程式停止。程式運作中,使用者通過控制闆的開關和狀态燈來調試程式。後來出現了讀卡機和紙帶機,取代了連線闆。使用者将機器語言的程式和資料打在卡片或紙帶上,再用讀卡機或紙帶機将程式讀入機器。

  由于使用者在進行手工操作期間計算機處于空閑等待狀态,是以系統的效率極低。另外,手工操作的難度很大,隻有專家級使用者才能勝任。

  2) 手工批處理操作

  20世紀50年代初期,彙編語言和錄音帶機誕生,計算機操作進入手工批處理階段。使用者可以事先将一批程式錄在錄音帶上,然後啟動機器順序地讀入和執行各個程式。錄音帶機的傳輸速度高,縮短了程式加載的時間,而批處理方式又縮短了手工裝卸程式的時間,這使系統效率有所提高。

  2. 第二代計算機(20世紀50年代末~60年代中)

  20世紀50年代末,計算機進入了半導體時代,計算機的運作速度和可靠性都有了明顯的提高,大型機誕生,并開始進入實際應用領域,如少數大型公司、政府部門和大學等。這個時期的計算機主要用于科學和工程計算,大多用FORTRAN語言和彙編語言程式設計。由于機器價格昂貴,減少處理機的空閑等待時間成為這個時期主要的研究目标。解決方案就是批處理系統和執行程式系統。

  1) 批處理系統

  批處理的含義就是把使用者送出的作業(作業是指要計算機完成的一項計算任務,包括程式、資料和控制指令)編成序列,成批地錄在錄音帶機上,由常駐記憶體的“監督程式”控制一批作業依次運作。這個“監督程式”就是作業系統的雛形,它标志着作業系統的誕生。

  批處理系統實作了作業間的自動轉接,縮短了作業交替時主機的等待時間。但當作業進行I/O操作時,仍會造成主機大量的空閑等待時間,因而系統效率還是很低。

  2) 執行程式系統

  20世紀60年代初期,硬體技術取得突破性進展,通道和中斷技術出現。通道是一種專門用作控制外部裝置傳輸資料的硬體,中斷機制允許主機在運作時被代表某種事件的信号打斷。利用通道技術和中斷技術,主機可以将資料傳輸工作交給通道,在通道控制裝置傳輸資料的同時,主機繼續執行運算,傳輸完畢後,通道用中斷方式向主機報告,主機響應中斷後執行中斷處理程式處理傳輸結果,然後再繼續運作原來的程式。這在很大程度上實作了處理機與外設的并行操作,系統效率因而大大提高。此時的I/O控制與中斷處理程式統稱為“執行程式”。“執行程式”就是早期的作業系統。

  3. 第三代計算機(20世紀60年代中~70年代初)

  計算機進入內建電路時代後,系統體積明顯減小,系統性能進一步提高,價格逐漸降低。此時,大型機開始進入商業領域,小型機也逐漸崛起,進階語言誕生。這一時期也是作業系統的興盛期,湧現出大量作業系統,包括多道批處理系統、分時系統和實時系統等。這些奠定了現代作業系統的基本架構。

  1) 多道批處理系統

  由于大型機造價很高,機時十分昂貴,是以充分利用系統資源,縮短作業周轉時間,提高系統吞吐量就成為作業系統的一個重要設計目标。

  早期的批處理系統是單道的,即每次隻調入一個使用者作業運作,是以系統資源的使用率很低。而多道批處理系統同時可容納多個作業運作,通過合理搭配作業,使CPU與I/O裝置資源都得到充分的利用,進而極大地提高了系統效率。

  2) 分時系統

  随着計算機應用逐漸普及,越來越多的普通使用者開始使用計算機來完成日常的工作。為了滿足使用者與系統互動的需要,同時又盡可能地充分利用尚且昂貴的系統資源,分時系統應運而生。分時系統允許多個使用者共享一台計算機的資源,即在一台計算機上連接配接幾台甚至幾十台終端機(鍵盤與顯示器),每個使用者都通過各自的終端機直接與計算機互動,使用這台計算機的資源,直接與計算機互動。分時系統排程CPU按固定的時間片輪流為各個終端服務。由于計算機的處理速度很快,使用者感覺不到分時引起的運作停頓,似乎這台計算機是自己專用的。

  3) 實時系統

  随着計算機性能和可靠性的不斷提高,價格的不斷降低,計算機開始進入自動控制等領域。這就要求計算機具備實時處理的能力。實時是指對于特定的輸入事件,系統能夠在限定的時間内作出響應并完成對該事件的處理。實時系統就是具有實時響應能力的系統,主要用于過程控制及實時資訊處理。

  4. 第四代計算機(20世紀70年代初至今)

  20世紀70年代初,計算機進入大規模內建電路時代,計算機性能迅速提高,價格不斷下降。尤其是20世紀80年代以來,超大規模內建電路使得計算機的體積大幅縮小,價格大幅度下降,而性能和可靠性不斷增強。這些因素導緻個人計算機飛速發展和普及,同時計算機網絡也興起和迅速擴大。伴随這些發展,作業系統也相應地向着個人計算、網絡與分布式計算方向發展。作業系統的理論日益完善,性能更加穩定,操作更加友善。

  1) 個人作業系統

  随着計算機的普及,個人計算機(PC機)已進入到人們的日常工作和生活中。個人作業系統就是專為PC機設計的單使用者作業系統,主要供個人使用者完成日常工作、檔案編輯和娛樂使用。早期的PC作業系統以DOS為代表,特點是單使用者單任務和字元指令界面。20世紀80年代末到90年代初,顯示技術的發展使顯示裝置的成本不斷降低,PC作業系統開始提供圖形使用者界面。而後随着PC機的更新換代和硬體性能的大幅提升,PC作業系統又引入了多任務機制,大大提升了系統的使用效率。目前,以Windows系統為代表的PC作業系統已發展成為成熟的多任務圖形視窗作業系統。

  2) 網絡作業系統

  從20世紀80年代中期開始,計算機網絡飛速發展,計算機不再是孤立地存在,而是通過網絡互相連接配接,交流和共享資訊資源。網絡作業系統是在傳統作業系統之上增加了對網絡裝置和網絡協定的支援,實作計算機之間的通信和資源共享。網絡作業系統還提供了網絡管理、安全控制等各種網絡應用功能。

  在網絡發展的早期,網絡規模較小,網絡作業系統的應用局限在區域網路範圍,使用的協定也不盡相容。20世紀90年代初,随着廣域網和全球網際網路時代的到來,網絡作業系統逐漸走向統一和開放。目前用于網絡伺服器的作業系統主要有Unix和Windows兩大類,它們都采用标準的TCP/IP通信協定和标準的網絡服務協定,進而消除了系統間的通信障礙,實作了全網絡的資訊交流與資源共享。

  縱觀作業系統的發展曆史,可以看到主導其發展的兩條主要線索,即硬體和應用。早期作業系統的發展緊密依賴于硬體,動力在于提高昂貴的硬體資源的使用率。而随着硬體價格的下降,作業系統更加注重系統的易用性,緻力于構造友善、安全和可靠的應用環境。值得注意的是,近年來作業系統的發展已逐漸走出依附于硬體發展的局面,形成自身的一套理論體系,并帶動整個軟體産業走向成熟。

1.2.2  作業系統的分類

  目前,作業系統的分類主要有以下幾種方式。

  1. 按處理方式分

  1) 多道批處理作業系統

  多道批處理系統(Batch Processing OS)主要用于大型機系統。多道是指在記憶體中存在多個作業,同時處于運作狀态,共享系統資源。當一個作業等待I/O操作時,CPU不是空閑等待,而是轉去執行其他作業。批處理是指在系統外存中存在大量的後備作業,可随時調入記憶體。作業的執行完全由作業控制語言控制,系統不與使用者互動。是以,有時也稱批處理系統為脫機系統。

  多道批處理系統的設計目标是充分利用系統資源,縮短作業周轉時間,提高系統吞吐量。其代表是IBM大型機作業系統VM、MVS和OS/390。

  2) 分時作業系統

  多道批處理系統追求的目标是充分地利用系統資源,但從使用者的角度看,多道批處理系統的使用很不友善,它有以下缺點:

  (1) 使用者響應時間長。從使用者送出作業到拿回運作結果,可能會等待數小時甚至數天。

  (2) 使用者無法幹預運作中的情況。

  分時作業系統(Time Sharing OS)的做法是:由多個使用者使用各自獨立的終端共享一台計算機。系統把CPU的運作時間分為很短的時間片,按時間片輪轉法将CPU輪流配置設定給各個使用者作業使用。從微觀上看,多個使用者的程式是在交替地運作的,但由于時間片劃分得很小,使用者感覺不到這種交替。是以,從宏觀上看,各個使用者的程式是在同時運作着的。

  分時系統具有以下特點:

  (1) 多路性:多個使用者同時使用一台處理機,各使用者對應的作業都在同時進行着。

  (2) 獨立性:多個使用者作業之間互不幹擾,使用者感覺好像是在獨立使用計算機。

  (3) 及時性:系統對使用者有足夠快的響應時間,使用者覺察不出作業的停頓。

  (4) 互動性:使用者利用終端直接與系統互動,釋出指令,觀察作業的運作狀态和結果。

  分時系統具有強大的互動、會話與事務處理能力,因而具有很強的通用性,可用于商業、教育、辦公等各種領域。分時作業系統的代表是Unix,目前廣泛應用在大、中、小型計算機和工作站中。

  3) 實時作業系統

  實時作業系統(Real Time OS)是指具有一定實時資源排程以及通信能力的作業系統。“實時性”是指對特定事件的響應和處理時間是可預知的,在任何情況下都不會超出作業系統所承諾的上限。實時系統的響應時間比分時系統更短,更苛刻,往往要達到毫秒或微秒級。

  實時作業系統主要關注系統的響應性。它的互動能力比較差,不強調資源使用率,但對響應時間和可靠性的要求很高。通常應用在需要精細的過程控制能力的領域,如航空航天、軍事、醫療和工業控制等。常用實時作業系統有QNX、VxWorks、實時Linux等。

  2. 按規模和用途分

  1) 主機作業系統

  主機作業系統(Mainframe OS)通常是指運作在IBM公司的大型機以及其他廠商制造的相容主機上的作業系統。大型機與其他計算機的差別是其強大的輸入/輸出能力以及極高的可靠性。大型機的I/O吞吐量高達每秒數萬兆位元組以上,而系統的可用性可達100%。為了有效地利用硬體資源,大型機上的操作以批處理作業為主,主要用于金融和大型企業的高端資料庫伺服器和應用伺服器。

  目前的主機作業系統有OS/390、z/OS等專用系統以及少數Unix和Linux系統。近年來,Linux系統開始進入主機系統,它所帶來的自由理念和價格沖擊給沉寂的大型機軟體領域注入了活力。

  2) 通用作業系統

  最常用的作業系統是通用作業系統(General Purpose OS),它由分時作業系統發展而來,是分時系統與批處理系統的結合。其原則是分時優先,批處理在後,即在“前台”以分時方式響應使用者的互動作業,在“背景”以批處理方式處理時間性要求不強的作業。

  通用作業系統可以運作在各種具有标準化CPU、存儲和I/O架構的通用機型上,包括PC伺服器、工作站、中小型機。其應用範圍覆寫了大部分的工程、科學和商業應用。

  Unix、Linux、Windows等作業系統都是最常用的通用作業系統。

  3) 個人作業系統

  個人作業系統(PC OS)是運作在PC機上的一種單使用者多任務的作業系統,也稱為桌面作業系統。這種作業系統是為單個使用者服務的,但可以同時運作多項任務。與其他作業系統相比,個人作業系統更注重的是系統的易用性,而不是系統的使用率。它采用友好的圖形界面與人互動,使用友善。此外,個人作業系統還強調對多媒體和網絡通路功能的支援,以滿足使用者日常辦公、學習、娛樂和通路網絡等方面的需求。

  Microsoft公司的Windows是目前最流行的PC機作業系統,在全球桌面系統中占有九成以上的市場佔有率。蘋果公司的Mac系統因其美觀的界面和出色的多媒體的品質而在圖形工作站占據龍頭地位。随着易用性的改進,Linux系統也正逐漸進入桌面作業系統領域,但目前還遠未對Windows系統構成威脅。

  3. 按體系結構分

  1) 網絡作業系統

  網絡作業系統(Network OS)是指運作在網絡伺服器上的作業系統,是以也稱為伺服器作業系統。網絡作業系統在核心上支援網絡裝置驅動和網絡協定,具備較強的網絡通信能力,同時提供包括檔案傳輸、遠端登入、資料庫通路、電子郵件、資訊檢索等服務,使網絡使用者能夠友善地利用網絡上的各種資源。由于運作在開放的網絡環境中,開放性、并發性、安全性和可靠性都是網絡作業系統的重要名額。

  網絡作業系統主要有Unix、FreeBSD、Linux和Windows。Unix主要應用于高端伺服器,如大型檔案系統、大型資料庫系統以及關鍵事務應用伺服器等。Windows主要應用于中、低端伺服器,如Web伺服器。Linux的應用範圍非常廣泛,适用于從低到高的各種伺服器。

  2) 分布式作業系統

  分布式系統由若幹台計算機組成,它們通過高速區域網路互連,形成一個緊密耦合的叢集,在同一作業系統的控制下運作,這個作業系統就是分布式作業系統(Distributed OS)。分布式作業系統負責管理分布式系統的各個節點的資源,并控制分布式程式的運作。在分布式作業系統的控制下,各節點機協同工作,并行計算,互相可以充分共享資源,均衡負載,進而獲得極高的整體運算能力。分布式系統的另一個優勢是它的可靠性。機群中的一個節點失效,不會影響整個系統的運作。

  目前,分布式系統的性能和可靠性已經可以媲美一些大型機系統,而造價卻低得多,是以,它已被看作是未來大型計算系統的一個發展方向。但目前的分布式作業系統還沒有進入真正實用的階段,它的研究是作業系統的一個熱門領域。其中,利用Linux構造分布式系統也是目前的研究方向之一。

  3) 嵌入式作業系統

  嵌入式作業系統(Embeded OS)是運作在嵌入式系統環境中,對整個嵌入式系統的資源進行排程和控制的系統。與其他類型的作業系統相比,嵌入式作業系統具有以下特點:

  (1) 體積小:嵌入式系統大多使用閃存(Flash Memory)作為存儲媒體,是以,嵌入式作業系統必須結構緊湊、體積微小才能在有限空間中運作。

  (2) 可靠性高:嵌入式系統大多工作在較差的環境中,是以,嵌入式作業系統應具備處理各種事件(如斷電、誤操作等)的能力,在各種條件下保持正常運作。

  (3) 實時性強:大多數嵌入式作業系統都是實時系統,很多還是強實時多任務系統。

  目前流行的嵌入式作業系統包括3Com公司的Palm OS、MicroSoft公司的Win CE、WindRiver公司的VxWorks以及各種嵌入式Linux等。與其他作業系統相比,嵌入式Linux具有源碼開放、核心小、效率高、可剪裁、網絡功能強和成本低等特點,是開發資訊家電等嵌入式系統的理想平台。

1.3  Linux作業系統概述

1.3.1  Linux作業系統的發展背景與曆史

  1.  Linux的背景

  Linux的誕生和發展與Unix系統、Minix系統、Internet、GNU計劃有着不可分割的關系,它們對于Linux有着深刻的影響和促進作用。

  1)  Unix系統

  1971年,Unix作業系統正式誕生于AT&T公司的Bell實驗室。它是一個多使用者多任務的分時作業系統。在那個年代,作業系統都是用彙編語言編寫而成的,追求大而全的設計,使得系統異常龐大和複雜。而此時出現的Unix是第一個用進階語言(C語言)寫成的,它的核心隻有2萬行代碼,短小精悍,性能卻非常優異,令研究者們如獲至寶。更為重要的是,Unix的源代碼是公開的,而且在整個20世紀70年代都是免費的,這使它很快就在大學和研究機構中流行起來,随後又被廣泛移植到各種機型的硬體平台上。經過不斷發展和演變,Unix的應用範圍現已覆寫了大中小型計算機、工作站以及PC伺服器,尤其是在中小型機以及工作站上始終占有統治地位。

  如今,Unix已具有30多年的穩定運作曆史,以高可靠性、高效率著稱,主要用于重要的商務運算和關鍵事務處理。Unix有如下主要特點:

  (1) 無可比拟的安全性與穩定性,能達到大型主機可靠性名額。

  (2) 良好的伸縮性,系統核心和核外程式均可裁剪,以适合不同規模的計算。

  (3) 強大的TCP/IP支援,對Internet的發展功不可沒。

  (4) 良好的可移植性,支援廣泛的硬體平台。

  (5) 源代碼公開,便于研究和教學。

  Unix堪稱作業系統設計的典範,它的許多優秀的設計思想和理念對後來的作業系統産生了深刻的影響,Linux就是許多類Unix系統中的一個佼佼者。由于Linux的開發者都具有各種Unix的背景,是以Linux繼承了Unix的優秀設計思想,也集中了Unix的各種優點。

  2)  Minix系統

  Unix是一個商用軟體,雖然它的源代碼是公開的,但不是免費的。Unix高昂的源碼許可證費用令普通使用者無法接受。另外,Unix對硬體平台的要求也比較高,這限制了它在教學和研究領域的使用。

  1987年,荷蘭教授Andrew設計了一個微型的Unix作業系統——Minix,用于作業系統的研究和教學。Minix非常小巧,可運作在廉價的微機上。它的源代碼是免費的,任何一個使用者都可以得到它、研究它和使用它。Linux的作者Linus就是通過研究Minix系統起步,開發了最初的Linux核心。

  3)  Internet

  20世紀80年代中期,網際網路(Internet)逐漸形成,它将全球計算機網絡連接配接在一起,使世界各地的使用者能夠通過Internet交流和擷取資訊。在網際網路的早期使用者中,很大一部分是軟體從業者和愛好者,他們通過Internet切磋技術、協同工作、釋出和擷取軟體代碼,逐漸形成一種植根于網際網路的獨特的“黑客”文化。

  Linux是一個誕生于網際網路時代的産物,它的開發者是遍布世界各地的無數個軟體高手,是網絡把他們的力量彙聚在一起,推動Linux不斷地發展和壯大起來。如果沒有Internet,Linux還隻是個人手中的一個實驗程式。

  4)  GNU

  20世紀80年代初,自由軟體運動興起。自由軟體運動的目标是減少對軟體使用上的限制,使軟體的發展更具靈活性。自由軟體提倡四大自由,即運作軟體的自由、擷取源代碼修改軟體的自由、釋出(免費/少許收費)軟體的自由以及釋出後修改軟體的自由。

  1983年,自由軟體運動的上司者Richard Stallman提出GNU(GNU ’s Not Unix)計劃。GNU計劃緻力于開發一個自由的類Unix作業系統,包括核心、系統工具和各種應用程式。GNU系統中的每一個構件都是自由軟體,但不都是免費釋出的(如X Window系統等)。

  為了保證GNU計劃的軟體能夠被廣泛地共享,Stallman又為GNU計劃創作了通用軟體許可證(General Public License,GPL)。GPL是一個針對免費釋出軟體的具體釋出條款。對于遵照GPL許可釋出的軟體,使用者可以免費得到軟體的源代碼和永久使用權,可以任意複制和修改,同時也有義務公開修改後的代碼。

  到1991年,GNU已經完成了除系統核心外的幾乎所有必備軟體的開發,其中大部分是按GPL許可釋出的。此時,Linux核心也正式釋出了。Linux核心雖然不是GNU計劃的一部分,但它是基于GPL許可釋出的,也就是說,它被奉獻給了GNU作為系統核心。自然地,各種GNU軟體被組合到了Linux核心上,構成了GNU/Linux這一完整的自由作業系統。

  GPL許可與Internet網絡相結合,改變了傳統的以公司為主體的封閉式軟體開發模式,代之以源代碼開放和全球範圍協作的全新開發模式。這種開發模式激發了世界各地的軟體開發者的熱情和創造力,推動自由軟體迅速地發展和壯大。

  2.  Linux的發展曆史

  1991年初,芬蘭赫爾辛基大學的學生Linus Torvalds出于個人愛好,決定自己編寫一個類似Minix的作業系統。他在PC機上學習和研究Minix,并參照它開發出最初的Linux核心。1991年9月,Linus通過Internet正式公布了他的第一個“作品”——Linux 0.01版。這個系統在網上一出現,立即吸引了許多軟體高手投入到開發工作中。到1993年,大約有100餘名程式員參與了Linux核心的編寫和修改工作。在衆多愛好者的幫助下,Linux的完整核心被迅速開發出來。

  1994年3月,Linux1.0核心釋出。該核心具備了完整的類Unix作業系統的本質特性,不同的是,Linux是按免費自由軟體的GPL許可發行的,這是促進Linux快速發展的決定性因素。更多開發者開始投入Linux核心的開發、測試和修正工作,還有許多人将GNU項目已開發出的C庫、gcc、emacs、bash等移植到Linux核心上來,使之成為一個完整可用的系統。

  1996年6月,Linux 2.0核心釋出。此時的Linux已經進入了實用階段。Red Hat等許多軟體公司看好Linux的前景,紛紛介入其中。他們把核心、源代碼及應用程式整合在一起,又增加了一些實用工具軟體和圖形界面,形成各種發行版并開始廣泛發行。

  1998年以來,Linux逐漸獲得商業認同。很多實力雄厚的商業軟硬體公司,如IBM、Intel、Sun、Novell、Oracle等紛紛宣布對Linux的投資和支援計劃。這奠定了Linux作為伺服器作業系統進入實際應用領域的地位。

  目前,Linux的開發和釋出模式是:核心程式由核心組成員負責更新和釋出,驅動程式和應用軟體由衆多Linux愛好者、軟體供應商和系統內建商等自行開發或移植。

  近年來,Linux還在蓬勃發展中。憑借其優秀的設計和不凡的性能,加上知名企業的大力支援,市場佔有率逐漸擴大。在短短的十幾年中,Linux已從一個為滿足個人愛好而設計的産物成長為一個充滿競争力和活力的主流作業系統。

1.3.2  Linux作業系統的特點

  總的說來,Linux是一個遵循POSIX标準的,多使用者、多任務的自由作業系統。與其他作業系統相比,它有以下顯著特點:

  (1) 基于Unix設計,性能出色。Linux繼承了Unix的優秀品質,具有出色的性能、可靠性和穩定性,為系統的安全運作提供了保證。Linux系統可以勝任7 × 24小時不間斷的工作,除非硬體出問題,系統出現當機的機率很小。

  (2) 遵循GPL許可,自由軟體。Linux遵循GNU的GPL許可證,是自由軟體家族中最重要的一員。使用者可以免費地獲得和使用Linux, 并且在GPL許可的範圍内自由地修改和傳播, 因而是學習、應用、開發作業系統及其他軟體的理想平台。

  (3) 符合POSIX标準,相容性好。POSIX是基于Unix制定的針對作業系統應用接口的國際标準,目的是為了獲得不同作業系統在源代碼級上的軟體相容性。Linux是一個符合POSIX标準的作業系統。這就是說,基于POSIX标準編寫的應用程式(包括大多數Unix、類Unix系統的應用程式)都可以友善地移植到Linux系統上,反之亦然。

  (4) 可移植性好。可移植性是指将作業系統從一種計算機硬體平台轉移到另一種計算機硬體平台後,仍能正常運作的能力。Linux的核心隻有不到10%的代碼采用了彙編語言,其餘均采用C語言編寫,是以具備高度可移植性。目前,Linux可以在包括i386、Sparc、Alpha、Mips、PowerPC等在内的各種計算機平台上運作。

  (5) 網絡功能強大。Linux是在網際網路上發展起來的,它有着與生俱來的強大的網絡功能。其網絡協定内置在核心中,性能強、相容性好,可以輕松地與各種網絡內建在一起。Linux核心外的網絡應用功能也十分強大,可以運作各類網絡服務。

  (6) 安全性好。Linux系統是針對多使用者和網絡環境設計的,在設計之初就充分考慮了安全性。Linux核心中采取了許多保障系統資源安全的措施,如檔案權限控制、審計跟蹤、核心授權等,使得Linux可以十分安全地運作在開放網絡環境中。另外,由于源碼開放,研究者衆多,系統漏洞的修補和更新速度都很快,抵禦病毒攻擊的能力也很強。

  盡管有這些優秀的特性,Linux系統還是存在一些問題。目前的主要問題是:入門要求比較高,中文支援不夠好;發行版本太多,比較混亂,亟待标準化;出自個人之手的應用軟體良莠不齊,使用者需仔細辨識使用;我國對自由軟體版權的确認和相關法律還不成熟,是以,當用于商業目的時要特别注意版權的細節問題。

1.3.3  Linux作業系統的組成

  Linux的基本系統由3個主要部分組成:

  ● 核心:運作程式和管理基本硬體裝置的核心程式。

  ●  Shell:系統的指令行使用者界面,負責接收、解釋和執行使用者輸入的指令。

  ● 檔案系統:按一定的組織方式存放在磁盤上的檔案集合。

  以上部分構成的Linux基本系統是系統的最小配置,它使使用者可以運作程式、管理檔案和使用裝置。在基本系統之上,使用者可以通過有選擇地附加一些系統和應用軟體(如圖形使用者界面、開發環境等)來擴充系統,使其滿足不同的應用需求。圖1-3描述了Linux系統的結構。

linux作業系統 第01章 作業系統概述

圖1‑3  Linux系統結構示意圖

1.3.4  Linux作業系統的版本

  “Linux”一詞有兩種不同的含義:從技術角度上講,Linux指的是一個自由的“類Unix”作業系統的核心,由Linus帶領的核心團隊維護和釋出。從使用角度看,Linux是指以Linux核心為基礎的,包含了系統工具和各種應用的完整的“類Unix”作業系統,這種完整的Linux系統稱為Linux發行(distribution)版本,由各發行商或社團組織維護和釋出。

  1.  Linux的核心版本

  所有Linux系統使用的核心隻有一個版本,由Linus本人帶領的核心團隊維護和釋出。核心的版本号由三組數字表示。第一組數字是主版本号,主版本不同的核心在功能上有很大的差異。第二組數字是次版本号。如果是奇數,則表示該版為測試版,可能有潛在缺陷;如果是偶數則表示該版已經過嚴格測試,是穩定的版本。第三組數字是修訂序列号,數字越大則表示功能越強或缺陷越少。

  2.  Linux的發行版本

  Linux的知名發行版本多達幾百種,每種發行版本都以Linux核心為基礎,配置的程式也大同小異,通常包括圖形界面、網絡服務程式、标準系統庫、應用程式等。各版本之間真正的差別在于其安裝、配置、附加應用、管理工具以及技術支援的不同。目前比較流行的發行版本主要有以下幾種:

  1)  Red Hat和Fedora

  Red Hat公司是商業化最成功的Linux發行商,它的Red Hat Linux無論在伺服器上還是桌面系統中都工作得很好。Red Hat Linux擁有數量龐大的使用者和許多創新技術,并獲得了很多商業的支援和社群技術支援,它的興衰一度成為Linux成敗的晴雨表。Red Hat提供了優秀的安裝程式、圖形配置工具以及先進的軟體包管理工具RPM,在硬體與軟體相容性上也做得很好。

  2003年底,Red Hat公司停止了免費版Red Hat Linux的開發工作,将原Red Hat Linux拆分為兩個系列:用于伺服器的商業化版本Red Hat Enterprise Linux(RHEL)和定位于桌面使用者的免費版本Fedora。RHEL由Red Hat公司提供收費的技術支援和更新,産品測試充分,穩定性好,主要用做企業伺服器系統。Fedora的開發工作則是采用了由Red Hat主辦、社群支援的開放源代碼項目的形式進行。Fedora采用了許多Linux的最新技術,版本更新周期短。所有用到企業版的技術都要先在Fedora上試驗。是以,Fedora是體驗Linux前沿技術的平台。但Fedora不提供穩定性和支援保證。

  2)  Debian和Ubuntu

  Debian/GNU Linux是最純正的自由軟體Linux發行版,Debian的所有軟體包都是自由軟體,完全由分布在世界各地的Linux愛好者維護并發行,因而它的軟體資源十分豐富。Debian非常注重穩定性,它的發行版本變化不快,但特别強調網絡維護和線上更新。

  Ubuntu是一個基于Debian的較新的發行版,它擁有Debian所有的優點,并在某些方面有所加強。Ubuntu的安裝非常人性化,其預設的桌面系統既簡單又不失華麗。Ubuntu還被譽為對硬體支援最好、最全面的Linux發行版本之一,許多在其他發行版上無法使用的硬體,在Ubuntu上可以輕松搞定。此外,Ubuntu的版本更新周期也較Debian短。

  3) SuSE

  SuSE是來自德國的一個Linux發行版,2003年被Novell公司收購,并将其定位于建構企業級伺服器平台的Linux版本。SuSE運作穩定,擁有強大的技術支援力量,目前已成為Red Hat商用Linux的最主要的競争者。SuSE的安裝程式和圖形管理工具非常直覺易用,即使是沒有經驗的使用者也能在很短的時間内學會使用。

  4)  Gentoo

  Gentoo是一個基于源代碼的發行版,它因其高度的可定制性出名:Gentoo的使用者都選擇手工編譯源代碼,生成專為自己定制的系統。Gentoo适合比較熟悉Linux系統的資深使用者使用。此外,完整的使用手冊以及廣受美譽的Portage軟體線上更新系統也是Gentoo的出色之處。

  5)  Slackware

  Slackware是最早的Linux發行版,它保留了原始的傳統,使用基于文本的工具和配置檔案,更新也不是很頻繁。它的特點是穩定、可靠、簡單和敏感。Slackware在老牌Linux使用者中最為流行,目前仍有很多忠實的老使用者。此外,Slackware擁有一套很大的程式庫,其中包括開發應用程式可能需要的幾乎每一個工具,是開發自由軟體的理想平台。

1.3.5  Linux作業系統的應用與發展

  Linux可以說是被最廣泛移植的作業系統核心,從掌上電腦iPaq到IBM大型機都可以看到Linux核心的成功應用。Linux是IBM超級計算機Blue Gene的主要作業系統,并在超級計算機作業系統領域中占有高達90%以上的份額。Linux系統在嵌入式系統領域中的占有率位居第一,應用前景十分廣闊。然而,Linux系統的最主要應用是中高端伺服器系統。作為高性能的網絡和應用伺服器,Linux已成為大中型企業資訊系統的支柱,廣泛應用于通信、金融、商業和軍事等領域。

  由于源代碼公開和免費,Linux系統已經廣泛地滲入到作業系統的教學和研究領域。對于研究者來說,可以剖析系統的核心,合法地修改它和改進它,以适應研究的需要。對于普通使用者來說,通過Linux可以了解作業系統的内部實作原理,并動手實踐所學習的知識。

  Linux還在快速地發展中。Linux核心的發展方向主要是對新體系結構和新硬體技術的支援。分布式系統是目前作業系統研究的一個重要領域,以Linux核心為基礎,按照自由軟體模式開發高性能的分布式作業系統,這是Linux的發展趨勢之一。另外,提供對更多硬體平台(尤其是嵌入式系統) 的支援以及更多高性能的硬體驅動程式,讓新的硬體技術能很快地在Linux下工作,這是Linux技術更新的重要工作。

  Linux系統的另一個發展方向是面向個人使用者的普及。Linux桌面系統正在不斷地完善,使用者界面更加友好,應用軟體以及軟體開發工具也在進一步地豐富。這些都将提高Linux系統的易用性,使其能夠逐漸被普通使用者所接受。

習    題

  1-1  什麼是作業系統?它的基本功能是什麼?

  1-2  作業系統在計算機系統中處于什麼地位?

  1-3  從使用者的角度看,分時系統與多道批處理系統相比有哪些優點?

  1-4  什麼是GNU計劃?Linux與GNU有什麼關系?

  1-5  Linux系統有哪些特點?

  1-6  Linux基本系統由哪幾部分組成?Linux核心的功能是什麼?

  1-7  浏覽www.kernel.org網站,目前最新的Linux核心的版本号是多少?

  1-8  參考附錄A,自己動手安裝一個Linux系統。

1、UNIX誕生    Bell Labs   Ken Thompson(Unics  彙編  1969 )  Dennis Ritchie(Unix   C)      Linus Torvalds  出生

2、Berkeley   BSD Unix  Bill Joy  Sun公司

3、1975, IBM推出了早期的PC相容機(Intel生産的X86系列的cpu),每台IBM相容機都捆綁一個DOS。 DOS ( 微軟聯合創始人Allen同學Tim Paterson) 

4、Jobs , 1983年蘋果公司推出了Apple Lisa(源于Xerox原型機Alto  -GUI,滑鼠),首次采用GUI的商品化計算機

5、 Bill得到了Lisa原型機,馬上組織團隊研發,并在1990年5月份推出Windows3.0并一炮而紅