官术网_书友最值得收藏!

第1篇 背景知識

第1章 操作系統(tǒng)簡史

操作系統(tǒng)用于管理計算機硬件、軟件資源,并提供通用服務,是直接運行在計算機硬件上的基本系統(tǒng)軟件。其他軟件都必須在操作系統(tǒng)的支持下才能運行。操作系統(tǒng)可劃分為批處理操作系統(tǒng)、分時操作系統(tǒng)等類型。實際上,發(fā)展到現(xiàn)在,分時操作系統(tǒng)、實時操作系統(tǒng)、個人操作系統(tǒng)、網(wǎng)絡操作系統(tǒng)、分布式操作系統(tǒng)在不同的場景下都被廣泛使用。本章將對操作系統(tǒng)的發(fā)展歷史進行簡要介紹。

1.1 人工時代

在電子管計算機時代,計算機是沒有系統(tǒng)軟件的,只能在少數(shù)領域中得到運用,人們用機器語言編程。編寫的程序是用紙帶(或卡片)來表示的。用戶先把紙帶裝到計算機上,然后啟動輸入機把程序和數(shù)據(jù)送入計算機,接著通過計算機控制臺開關啟動程序運行,計算完畢,輸出機輸出計算結(jié)果,用戶卸下并取走紙帶,如圖1-1所示。

圖1-1 人工時代的計算機使用流程

可以看出,這種方式效率很低,CPU有效運行時間極短,因為要等待大量的人工操作完成。而且用戶獨占機器,程序運行過程中計算機無法和程序員進行交互。為解決上述問題,人們開始研制不同的操作系統(tǒng)來適應計算機的發(fā)展。

1.2 批處理操作系統(tǒng)

批處理操作系統(tǒng)是加載在計算機上的一個系統(tǒng)軟件,在它的控制下,計算機能夠自動、成批地處理一個或多個用戶的作業(yè)(包括程序、數(shù)據(jù)和命令)。

1.2.1 聯(lián)機批處理操作系統(tǒng)

首先出現(xiàn)的是聯(lián)機批處理操作系統(tǒng),即作業(yè)的輸入輸出(Input/Output,I/O)由CPU來處理。批處理是指用戶將批量作業(yè)流提交給操作系統(tǒng)后就不再干預,由操作系統(tǒng)控制它們自動運行,如圖1-2所示。這種采用批處理作業(yè)技術的操作系統(tǒng)稱為批處理操作系統(tǒng)。批處理操作系統(tǒng)分為單道批處理操作系統(tǒng)和多道批處理操作系統(tǒng)。批處理操作系統(tǒng)不具有交互性,它是人們?yōu)榱颂岣逤PU的利用率而設計出的一種操作系統(tǒng)。

圖1-2 聯(lián)機批處理操作系統(tǒng)

1.2.2 脫機批處理操作系統(tǒng)

脫機批處理操作系統(tǒng)是人們?yōu)榱司徑馊藱C矛盾、主機與外圍設備(簡稱外設)的矛盾,以及提高CPU利用率而設計出的操作系統(tǒng)。這種操作系統(tǒng)的顯著特征是:增加一臺不與主機直接相連而專門用于與I/O打交道的衛(wèi)星機,如圖1-3所示。

圖1-3 脫機批處理操作系統(tǒng)

衛(wèi)星機的功能是:從輸入機讀取用戶作業(yè)并放到輸入磁帶上,從輸出磁帶讀取執(zhí)行結(jié)果并傳給輸出機。這樣,主機不直接與慢速的I/O打交道,而是與速度相對較快的磁帶聯(lián)系,可有效緩解主機與外設的矛盾。主機與衛(wèi)星機可并行工作,二者分工明確,也可以充分發(fā)揮主機的高速計算能力。脫機批處理操作系統(tǒng)在20世紀60年代應用十分廣泛,它極大地緩解了人機矛盾及主機與外設的矛盾,是現(xiàn)代操作系統(tǒng)的原型。1964年,IBM(International Business Machines,國際商業(yè)機器)公司發(fā)布了System/360(S/360)系統(tǒng),對應的主機操作系統(tǒng)為OS/360。OS/360支持多道程序,最多可同時運行15道程序。為了便于管理,OS/360把CPU存儲器劃分為多個(最多15個)分區(qū),每個程序在一個分區(qū)中運行。

1.3 分時操作系統(tǒng)

分時操作系統(tǒng)使得一臺計算機可采用時間片輪轉(zhuǎn)的方式,同時為幾個、幾十個甚至幾百個終端用戶服務。分時操作系統(tǒng)把計算機與許多終端用戶連接起來,將系統(tǒng)處理機時間與內(nèi)存空間按一定的時間間隔劃分為時間片,輪流地切換給各終端用戶的程序使用。由于時間間隔很短,每個終端用戶會感覺自己獨占了計算機。分時操作系統(tǒng)的特點是可有效提高資源的使用率。例如UNIX操作系統(tǒng)就采用剝奪式動態(tài)優(yōu)先的CPU調(diào)度,有力地支持分時操作。典型的分時操作系統(tǒng)例子是UNIX和Linux操作系統(tǒng)。其可以同時連接多個終端并且每隔一段時間重新掃描進程、重新分配進程的優(yōu)先級,還可動態(tài)分配系統(tǒng)資源。

1.3.1 UNIX操作系統(tǒng)的誕生

計算機操作系統(tǒng)的鼻祖是Multics(Multiplexed Information and Computing System,多路信息和計算系統(tǒng))操作系統(tǒng),以下簡稱M系統(tǒng)。M系統(tǒng)是1964年美國貝爾實驗室、麻省理工學院及通用電氣公司共同研發(fā)的,最初的目的是開發(fā)出一套安裝在大型主機上多人多工的操作系統(tǒng)。因為當時的計算機一次只能接受一個任務,多人的任務需要排隊執(zhí)行。后來,原M系統(tǒng)設計成員肯尼思·湯普森(Kenneth Thompson)想把一款名為《太空旅游》的游戲移植到他們實驗室的一臺機器上而開發(fā)了一套軟件。該套軟件參考M系統(tǒng)的思路設計,但是功能單一,實驗室的人戲稱此軟件為UNICS(UNiplexed Information and Computing System,單路信息和計算系統(tǒng))。由于當時的UNICS每次移植到一個新的機器上時,都需要重復在機器上處理,且需針對不同的機器設備進行額外的編程處理,就是驅(qū)動都要程序員寫、程序員配,因此那個時候系統(tǒng)的傳播受限于硬件和使用者的能力,只能供極少部分人使用。

1971年,肯尼思·湯普森 和丹尼斯·里奇(Dennis Ritchie)為了使當時的UNICS具有更好的移植性、適用于不同的硬件設施,創(chuàng)造了C語言。他們于1973年,用C語言重新改寫并編譯UNICS的核心,將其正式命名為UNIX,形成了UNIX的初代版本。該版本由于使用了高級語言——C語言,減輕了對底層硬件依賴的問題,從而可以廣泛地在各種機器上使用。初代的UNIX采用了200多條程序命令,雖然內(nèi)核很小,但是功能極為精簡、強悍。當時原本需要用100~1000行代碼才能實現(xiàn)的程序,在UNIX中使用不超過10條命令就可實現(xiàn)。它極高的效率使它在美國AT&T公司內(nèi)得以快速傳播。可以設想一下,本來要一天才能做完的工作,用當時的UNIX幾分鐘就能搞定,這種“神器”能不快速傳播嗎?

計算機軟件的發(fā)展歷程是一個持續(xù)優(yōu)化、提升效率的過程。UNICS的發(fā)明是為了將復雜的任務簡單化。為了簡化軟件和硬件的關聯(lián)處理而重新創(chuàng)建的一種新語言(C語言),也幫助我們實現(xiàn)了軟件和硬件的分離,為現(xiàn)代操作系統(tǒng)(UNIX)的發(fā)展打下了堅實的基礎。需要指出的是,當時的UNIX屬于AT&T公司的貝爾實驗室,但該公司和學術界院校(美國加利福尼亞大學伯克利分校)合作開發(fā),使得UNIX在各大高校快速傳播。1977年,加利福尼亞大學伯克利分校的比爾·喬伊(Bill Joy)在取得了UNIX的核心源碼后,著手將其修改成適合自己機器的版本,同時增加了很多功能軟件與編譯工具,最終將它命名為BSD(Berkeley Software Distribution,伯克利軟件套件)。BSD是UNIX很重要的一個分支,蘋果公司(后簡稱蘋果)的操作系統(tǒng)實際源自此分支。1979年,AT&T公司出于商業(yè)方面的考量,將UNIX的版權(quán)收回。因此,AT&T公司在1979年發(fā)行的第7版UNIX中,特別提到了 “不可對學生提供源碼”的嚴格限制。這導致后來學術界自力更生,安德魯·塔嫩鮑姆(Andrew Tanenbaum)教授參照UNIX的功能,寫出了Minix系統(tǒng),用于教授操作系統(tǒng)的相關教程。該系統(tǒng)在1986年完成開發(fā)并發(fā)布,相關圖書也于次年出版。這是后來大名鼎鼎的林納斯·托瓦茲(Linus Torvalds)得以構(gòu)建Linux初代系統(tǒng)的基礎。

1.3.2 可視化操作系統(tǒng)的演進

在1984年以前,幾乎所有的操作系統(tǒng)都是基于企業(yè)或高校科研機構(gòu)的大型機來設計和使用的,還沒有達到普通人能用的地步。當時,大部分的計算機操作系統(tǒng)是基于命令行終端的,沒有圖形化的操作界面。這樣的操作系統(tǒng)只能被極少部分的高級專業(yè)人員和學術界的師生使用。但到了1984年,一切都發(fā)生了變化。這時,操作系統(tǒng)的發(fā)展發(fā)生了哪些變化呢?具體如下。

VisiCorp公司的第一款可視化操作系統(tǒng)Visi On發(fā)布。

蘋果的第一款可視化操作系統(tǒng)macOS 1.0發(fā)布。

微軟公司(后簡稱微軟)推出Windows 1.0(1985年)。

日本NEC公司(日本電氣股份有限公司)基于ITRON/86規(guī)范,第一個實現(xiàn)了ITRON操作系統(tǒng)。

幾乎是不約而同的,世界上幾個重要的操作系統(tǒng)廠商都在同一時間段內(nèi)發(fā)布了操作系統(tǒng)的商用版本,且都具有圖形化界面。而這4個操作系統(tǒng)經(jīng)過近40年的演進,幾乎影響了我們現(xiàn)代生活的方方面面。蘋果的macOS實際來源于UNIX(FreeBSD版本),是UNIX陣營向普通消費者市場進軍的主力,圖形化的界面和應用降低了系統(tǒng)和計算機的使用門檻。

微軟之前一直使用MS-DOS命令行的系統(tǒng),在看到蘋果的可視化界面后,緊接著開發(fā)出Windows系統(tǒng),以搶占普通消費者市場,由此開啟了蘋果和微軟兩大公司30多年的激烈競爭。

1.3.3 開源Linux的誕生與演進

從20世紀80年代中后期開始,大量基于可視化操作界面的操作系統(tǒng)問世后,操作系統(tǒng)真正普及開來。不過,可視化操作系統(tǒng)是直接裝在機器上的,它在降低了用戶使用門檻的同時,也封閉了內(nèi)在復雜的軟件設計。普通的學院派老師、學生難以看到其被隱藏的具體設計。由此,開源的操作系統(tǒng)Linux出現(xiàn)了。

1991年,在芬蘭赫爾辛基上大學的林納斯·托瓦茲參照UNIX和Minix,重寫了一個初始的Linux系統(tǒng),并于1991年10月5日發(fā)布了0.01版。1993年,100余名程序員參與了Linux內(nèi)核代碼的編寫、修改工作,其中核心組由5人組成,此時Linux 0.99的代碼大約有10萬行,用戶數(shù)大約有10萬。由于全世界Linux愛好者、使用者的參與,發(fā)展到Linux 4.9.2時,Linux內(nèi)核源碼就超過了1800萬行。2019年,Linux新版內(nèi)核發(fā)布,該內(nèi)核有大約2500萬行代碼。有別于UNIX的閉源(代碼不可獲得),Linux系統(tǒng)遵循開源協(xié)議,意味著任何人都可以獲取和編輯代碼,Linux也因此獲得了極大的關注和應用推廣。

主站蜘蛛池模板: 邮箱| 民丰县| 古浪县| 商洛市| 清河县| 京山县| 陇川县| 安泽县| 漯河市| 永平县| 沧州市| 林州市| 皮山县| 台湾省| 大石桥市| 花垣县| 博野县| 页游| 五河县| 四平市| 麻阳| 澄城县| 施甸县| 仙桃市| 双辽市| 大厂| 涪陵区| 襄城县| 河北区| 察隅县| 名山县| 吉安县| 蓬安县| 灯塔市| 舟曲县| 邵阳县| 抚远县| 剑川县| 湖北省| 伊宁县| 天长市|