溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

為什么Unix不用C++而是用C編寫

發(fā)布時(shí)間:2021-10-28 10:02:14 來(lái)源:億速云 閱讀:122 作者:iii 欄目:web開(kāi)發(fā)

本篇內(nèi)容主要講解“為什么Unix不用C++而是用C編寫”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“為什么Unix不用C++而是用C編寫”吧!

有人總會(huì)說(shuō)C++不是要比C的作用大很多,功能也更多。那為什么Unix不用功能更強(qiáng)大的C++而是用C編寫?關(guān)于Unix為什么用C而不是C  ++編寫的顯而易見(jiàn)的答案是C ++是在C之后誕生的。另一個(gè)原因是,實(shí)際上C語(yǔ)言可能也是為了支持Unix的開(kāi)發(fā)而發(fā)明的。

C的起源與Unix  OS的開(kāi)發(fā)緊密相關(guān)。當(dāng)團(tuán)隊(duì)將Unix移植到PDP-11時(shí),它仍在組裝中。湯普森(Thompson)和里奇(Ritchie)希望在系統(tǒng)編程中使用高級(jí)語(yǔ)言,以使程序員可以清晰地表達(dá)概念,而不必與一臺(tái)計(jì)算機(jī)的體系結(jié)構(gòu)綁定,但要使效率很高。Unix使用高級(jí)語(yǔ)言實(shí)現(xiàn),因此打破了這樣一種觀念,即必須使用匯編語(yǔ)言來(lái)編寫系統(tǒng),并且該系統(tǒng)必須與特定的計(jì)算機(jī)設(shè)計(jì),字長(zhǎng)或體系結(jié)構(gòu)相關(guān)聯(lián)。并且首次將包括文件系統(tǒng),內(nèi)核,應(yīng)用程序包,實(shí)用程序和用戶界面在內(nèi)的整個(gè)編程環(huán)境移至完全不同類型的機(jī)器上。

湯普森(Thompson)和里奇(Ritchie)早在1969年就已經(jīng)開(kāi)發(fā)了一種稱為“  B”的編程語(yǔ)言,它實(shí)質(zhì)上是BCPL的簡(jiǎn)化版本?;旧?,BCPL去除了不必要的組件,以使實(shí)現(xiàn)適合當(dāng)時(shí)的小型計(jì)算機(jī)的存儲(chǔ)能力(BCPL是CPL的簡(jiǎn)化,其本身是Algol  60的簡(jiǎn)化)。湯普森和里奇正在考慮使用B語(yǔ)言重寫Unix。但是,B無(wú)法利用PDP-11的某些功能,尤其是字節(jié)尋址能力,導(dǎo)致了“  C”編程語(yǔ)言的發(fā)展。C的名稱被簡(jiǎn)單地選擇為B之后的下一個(gè)字母。

C的開(kāi)發(fā)始于1972年的PDP-11 Unix系統(tǒng),最早出現(xiàn)在Version 2  Unix中。Unix的很大一部分都用C重寫了。來(lái)自Unix開(kāi)發(fā)的反饋對(duì)C語(yǔ)言的開(kāi)發(fā)很有幫助。C語(yǔ)言“與系統(tǒng)重寫之一融合在一起,因此,它非常適合編寫系統(tǒng)”。到1973年,由于增加了“結(jié)構(gòu)”類型,C語(yǔ)言已經(jīng)變得足夠強(qiáng)大,以至于現(xiàn)在大多數(shù)Unix內(nèi)核都使用C語(yǔ)言。Unix成為第一個(gè)使用非匯編語(yǔ)言實(shí)現(xiàn)的OS內(nèi)核之一。

Unix最初是在1973年操作系統(tǒng)原理專題討論會(huì)上正式向外界介紹的,Ritchie和Thompson在那里發(fā)表了一篇論文。這導(dǎo)致了對(duì)系統(tǒng)的要求,但是根據(jù)1956年的和解協(xié)議,在解決反托拉斯案件中,AT&T(貝爾實(shí)驗(yàn)室的母公司)被禁止從事除“公共運(yùn)營(yíng)商通信服務(wù)”之外的任何業(yè)務(wù)。因此,Unix無(wú)法變成產(chǎn)品。貝爾實(shí)驗(yàn)室轉(zhuǎn)而以媒體和運(yùn)輸成本來(lái)運(yùn)送系統(tǒng)。

但是在此之前,Unix仍然只能在DEC系統(tǒng)上運(yùn)行。隨著更多的操作系統(tǒng)用C語(yǔ)言重寫(并擴(kuò)展了C語(yǔ)言以適應(yīng)這種情況),可移植性也有所提高。1977年,貝爾實(shí)驗(yàn)室購(gòu)買了Interdata   8/32,其目的是將Unix移植到與PDP-11盡可能不同的計(jì)算機(jī)上,從而使Unix在此過(guò)程中更加獨(dú)立于機(jī)器,從而實(shí)現(xiàn)了湯普森的OS可移植性夢(mèng)想。所有專用于PDP-11的代碼都已從內(nèi)核中刪除并進(jìn)行了重寫,以使Unix的傳輸變得容易。在進(jìn)行Interdata測(cè)試之后,他們將Unix移至IBM   /  370大型機(jī)。通過(guò)每次試用,他們了解了有關(guān)C,Unix和一般可移植性的更多信息。逐漸地,Unix被移植到許多其他硬件系統(tǒng)上,包括基于Intel  8086的計(jì)算機(jī),UNIVAC 1100等。

到此,相信大家對(duì)“為什么Unix不用C++而是用C編寫”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI