書名: 操作系統(tǒng)基礎(chǔ)與實(shí)踐:基于openEuler平臺(tái)作者名: 郝家勝主編本章字?jǐn)?shù): 1388字更新時(shí)間: 2024-12-11 16:41:45
1.2.2 UNIX誕生
1969年,貝爾實(shí)驗(yàn)室退出Multics項(xiàng)目后,項(xiàng)目組成員肯·湯普森(Ken Thompson)在閑置的DEC PDP-7小型機(jī)上寫了一個(gè)叫“太空旅行”的游戲,并沉溺其中。然后,他發(fā)現(xiàn)只需要再編寫3個(gè)程序,就可為PDP-7提供一個(gè)完整的操作系統(tǒng)。湯普森利用妻子帶孩子度假的3周時(shí)間,用匯編語(yǔ)言實(shí)現(xiàn)了這個(gè)大膽的想法。這3個(gè)程序分別是一個(gè)用來(lái)創(chuàng)建代碼的編輯器,一個(gè)將代碼轉(zhuǎn)換為機(jī)器可運(yùn)行文件的匯編器,以及一個(gè)包含執(zhí)行調(diào)用功能、Shell交互程序的“內(nèi)核外層”。這個(gè)新的操作系統(tǒng)吸取了Multics的失敗教訓(xùn),設(shè)計(jì)非常簡(jiǎn)單精巧,受到丹尼斯·里奇(Dennis Ritchie)等人的關(guān)注,很快就有了一小群用戶。
這個(gè)新的操作系統(tǒng)被命名為UNICS(UNiplexed Information and Computing Service),表示它提供的是“毫不復(fù)雜的信息與計(jì)算服務(wù)”,以突出與 Multics 完全不同的設(shè)計(jì)思想。UNICS吸引了貝爾實(shí)驗(yàn)室的一群天才程序員,他們不斷提升UNICS的功能,添加新的工具。不久之后,這個(gè)年輕的多用戶、多任務(wù)操作系統(tǒng)改名為UNIX。
UNIX的第1版于1971年11月發(fā)布,附帶了Fortran 編譯器。許多被沿用至今的經(jīng)典小程序也都有了雛形,如ar、cat、chmod、chown、cp、dc、ed、find、ln、ls、mail、mkdir、mv、rm、sh、su和who等。由于具備優(yōu)秀的特性,UNIX在發(fā)布初期,就得到迅速傳播。
此外,由于匯編語(yǔ)言限制了UNIX的功能擴(kuò)展和應(yīng)用傳播,湯普森和里奇決定使用BCPL(Basic Combined Programming Language,基本組合編程語(yǔ)言)進(jìn)行開發(fā)。在開發(fā)過(guò)程中,他們對(duì)BCPL做了進(jìn)一步的改進(jìn),推出了B(取BCPL中的第一個(gè)字母)語(yǔ)言,后來(lái)發(fā)現(xiàn)使用B語(yǔ)言還是無(wú)法達(dá)到預(yù)期要求。隨后,里奇和布萊恩·柯林漢(Brian Kernighan)在B語(yǔ)言的基礎(chǔ)上重新設(shè)計(jì)了一種新語(yǔ)言,支持豐富的數(shù)據(jù)類型和大量運(yùn)算符的編程語(yǔ)言。這種新語(yǔ)言較B語(yǔ)言有質(zhì)的飛躍,被命名為C語(yǔ)言。1973年,C語(yǔ)言基本成型,UNIX也完成了用C語(yǔ)言的重寫,功能穩(wěn)定且具有良好的可移植性和可維護(hù)性,為UNIX的進(jìn)一步推廣和普及奠定了堅(jiān)實(shí)的基礎(chǔ)。
像所有起步工作一樣,UNIX的早期開發(fā)也遇到了各種各樣的困難,起初它運(yùn)行在PDP-7這樣的“舊設(shè)備”上,在那個(gè)以大型機(jī)器為主的年代,小型機(jī)器可做的事情非常有限,而且貝爾實(shí)驗(yàn)室高層并沒(méi)有對(duì)操作系統(tǒng)開發(fā)表現(xiàn)出過(guò)多興趣,造成UNIX的開發(fā)者們“無(wú)機(jī)可用”。當(dāng)然,歷史的巧合總是相似的,機(jī)遇出現(xiàn)了。當(dāng)時(shí),貝爾實(shí)驗(yàn)室需要申請(qǐng)大量專利,編寫具有行號(hào)標(biāo)注需求的文檔使得專利申請(qǐng)團(tuán)隊(duì)非常痛苦。因此,貝爾實(shí)驗(yàn)室同意購(gòu)置性能一般的PDP-11用于準(zhǔn)備專利申請(qǐng)材料,UNIX小組負(fù)責(zé)編寫所需的程序。UNIX就這樣作為專利申請(qǐng)文檔工具成功地“存活”了下來(lái)。這個(gè)專利排版工具就是Nroff,后來(lái)廣泛應(yīng)用于各類UNIX操作系統(tǒng),并對(duì)后續(xù)的文檔排版系統(tǒng)產(chǎn)生了深遠(yuǎn)的影響。圖1.1所示為肯·湯普森和丹尼斯·里奇在PDP-11上運(yùn)行早期的UNIX。

圖1.1 肯·湯普森和丹尼斯·里奇在PDP-11上運(yùn)行早期的UNIX
當(dāng)UNIX發(fā)展到第6版時(shí),這個(gè)系統(tǒng)已經(jīng)成為廣泛應(yīng)用的通用、多用戶、交互式操作系統(tǒng)。該系統(tǒng)核心特色在于其分層設(shè)計(jì)的可拆卸文件系統(tǒng),具有高度兼容性的文件、設(shè)備輸入輸出接口。同時(shí),它還支持100多個(gè)子系統(tǒng)和十幾種語(yǔ)言。UNIX借助可移植的C語(yǔ)言獲得了在多種機(jī)器之間移植的能力,這一能力對(duì)操作系統(tǒng)的發(fā)展非常重要。當(dāng)時(shí)的形勢(shì)和現(xiàn)在的不同,計(jì)算機(jī)行業(yè)遠(yuǎn)沒(méi)有現(xiàn)在發(fā)達(dá),也沒(méi)有形成壟斷性的商業(yè)機(jī)構(gòu),不同公司設(shè)計(jì)的計(jì)算機(jī)使用的硬件各不相同,操作方式也百花齊放。程序員需要為每種計(jì)算機(jī)編寫不同的程序來(lái)適應(yīng)不同硬件各自的特點(diǎn),非常痛苦。而操作系統(tǒng)提供了統(tǒng)一的可移植接口,使編寫程序的過(guò)程大大簡(jiǎn)化,“拯救”了廣大計(jì)算機(jī)程序設(shè)計(jì)人員,為后來(lái)計(jì)算機(jī)行業(yè)的發(fā)展奠定了基礎(chǔ)。
- Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解:基于最新的Linux4.0內(nèi)核
- 嵌入式Linux開發(fā)技術(shù)
- 每天5分鐘玩轉(zhuǎn)Kubernetes
- Linux系統(tǒng)架構(gòu)與運(yùn)維實(shí)戰(zhàn)
- 網(wǎng)絡(luò)操作系統(tǒng):Windows Server 2003管理與應(yīng)用
- Learning Android Intents
- Mastering Distributed Tracing
- RESS Essentials
- AutoCAD 2014中文版從入門到精通
- 一學(xué)就會(huì):Windows Vista應(yīng)用完全自學(xué)手冊(cè)
- 寫給架構(gòu)師的Linux實(shí)踐:設(shè)計(jì)并實(shí)現(xiàn)基于Linux的IT解決方案
- Windows 7實(shí)戰(zhàn)從入門到精通
- 電腦辦公(Windows 7 + Office 2013)入門與提高
- Gradle Effective Implementations Guide(Second Edition)
- Administering ArcGIS for Server