天天看點

UNIX曆史發展

  Unix作業系統的曆史漫長而曲折,它的第一個版本是1969年由Ken Thompson在AT&T貝爾實驗室實作的,運作在一台DEC PDP-7計算機上。這個系統非常粗糙,與現代Unix相差很遠,它隻具有作業系統最基本的一些特性。後來Ken Thompson和Dennis Ritchie使用C語言對整個系統進行了再加工和編寫,使得Unix能夠很容易的移植到其他硬體的計算機上。從那以後,Unix系統開始了令人矚目的發展。

    由于此時 AT&T還沒有把Unix作為它的正式商品,是以研究人員隻是在實驗室内部使用并完善它。正是由于Unix是被作為研究項目,其他科研機構和大學的計算機研究人員也希望能得到這個系統,以便進行自己的研究。AT&T以分發許可證的方法,對Unix僅僅收取很少的費用,大學和研究機構就能獲得Unix的源代碼以進行研究。Unix的源代碼被散發到各個大學,一方面使得科研人員能夠根據需要改進系統,或者将其移植到其他的硬體環境中去,另一方面培養了懂得Unix使用和程式設計的大量的學生,這使得Unix的普及更為廣泛。

    由于作業系統的開發相當困難,隻有少數的計算機廠商,如 IBM、Digital等大型公司,才擁有自己的作業系統,而其他衆多生産計算機的硬體廠商則采用别人開發的作業系統。因為Unix不需要太多的花費,是以很多廠商就選擇了Unix作為他們生産的計算機使用的作業系統。他們把Unix移植到自己的硬體環境下,而不必從頭開發一個作業系統。

    到了 70年代末,在Unix發展到了版本6之後,AT&T認識到了Unix的價值,成立了Unix系統實驗室(Unix System Lab,USL)來繼續發展Unix。是以AT&T一方面繼續發展内部使用的Unix版本7,一方面由USL開發對外正式發行的Unix版本,同時AT&T也宣布對Unix産品擁有所有權。幾乎在同時,加州大學伯克利分校計算機系統研究小組(CSRG)使用Unix對作業系統進行研究,是以他們的研究成果就反映在他們使用的Unix中。他們對Unix的改進相當多,增加了很多當時非常先進的特性,包括更好的記憶體管理,快速且健壯的檔案系統等,大部分原有的源代碼都被重新寫過,以支援這些新特性。很多其他Unix使用者,包括其他大學和商業機構,都希望能得到CSRG改進的Unix系統。是以CSRG中的研究人員把他們的Unix組成一個完整的Unix系統──BSD Unix(Berkeley Software Distribution),向外發行。

    BSD Unix在Unix的曆史發展中具有相當大的影響力,被很多商業廠家采用,成為很多商用Unix的基礎,而AT&T與其同時存在的Unix版本的影響就小得多。同時很多研究項目也是以BSD Unix為研究系統,例如美國國防部的項目─ARPANET,ARPANET今天發展成為了Internet,而BSD Unix中最先實作了TCP/IP,使Internet和Unix緊密結合在一起。

    而 AT&T的Unix系統實驗室,同時也在不斷改進他們的商用Unix版本,直到他們吸收了BSD Unix中已有的各種先進特性,并結合其本身的特點,推出了Unix System V版本之後,情況才有了改變。從此以後,BSD Unix和Unix System V形成了當今Unix的兩大主流,現代的Unix版本大部分都是這兩個版本的衍生産品。

    Unix的版本号表示方式比較複雜,各種不同的Unix版本有自己的版本辨別方式,如最早AT&T開發的内部Unix使用簡單的順序号來辨別版本,從V 1到V 7。

    BSD使用主版本加次版本的方法辨別,如4.2BSD,4.3BSD,在原始版本的基礎上還有派生版本,這些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2。

    AT&T使用羅馬數字來辨別他們的對外釋出的Unix版本,用Release來表示次版本。如System V Release 4(簡寫為SVR4)辨別AT&T的Unix System V的第四次釋出的版本。

其他商業公司的 Unix使用自己的版本辨別,如Sun的Solaris 2.6,IBM的AIX 4.0等。

    雖然 AT&T的Unix System V也是非常優秀的Unix版本,但是BSD Unix在Unix領域内的影響更大。AT&T的Unix系統實驗室一直關注着BSD的發展,在1992年,Unix系統實驗室指控BSDI── 一家發行商業BSD Unix的公司,違反了AT&T的許可權,釋出自己的Unix版本,并進一步指控伯克利計算機系統研究組洩漏了Unix的商業機密(此時的4.3BSD中來自AT&T Unix的代碼已經不足10%)。這個官司影響了很多Unix廠商,使他們不得不從BSD Unix轉向Unix System V,以避免法律問題。以至于當今大多數商業Unix版本都是基于Unix System V的。

    這件有關 Unix版權的案子直到Unix系統實驗室被AT&T賣給了Novell公司後才得以解決,Novell不打算陷入這樣的法律紛争中,是以就采用了比較友好的做法。伯克利的CSRG被允許自由釋出BSD,但是其中來自于AT&T的代碼必須完全删除。是以CSRG就對他們最新的4.4BSD進行了修改,删除了那些來自于AT&T的源代碼,釋出了4.4 BSD Lite版本(該系統是不完整的,尤其對于英特爾386體系的計算機系統)。由于這個版本不存在法律問題,4.4BSD Lite成為了現代BSD系統的基礎版本。

    Novell的比較友善的做法還不止對BSD,他把自己的Unix改名為Unixware,而将Unix商标贈送給X/Open── 一個由衆多Unix廠家組成的聯盟,這樣這個聯盟内的所有成員均可使用Unix商标。從此之後,Unix不再是專有産品的名字了。同時,由于BSD系統已經十分成熟,作為對作業系統進行研究的目标已經達到,伯克利計算機系統研究組(CSRG)在釋出了4.4BSD-lite2之後就解散了,小組的科研人員有些進入了Unix商業公司,有些繼續進行其他計算機領域的研究。此時,嚴格意義上的Unix System V和BSD Unix都不複存在了,存在的隻是他們的各種後續版本。

    回顧 Unix的發展,可以注意到Unix與其他商業作業系統的不同之處主要在于其開放性。在系統開始設計時就考慮了各種不同使用者的需要,因而Unix被設計為具備很大可擴充性的系統。由于它的源碼被分發給大學,進而在教育界和學術界影響很大,進而影響到商業領域中。大學生和研究者為了科研目的或個人興趣在Unix上進行各種開發,并且不計較金錢利益,将這些源碼公開,互相共享,這些行為極大豐富了Unix本身。很多計算機領域的科學家和技術人員遵循這些方式,開發了數以千計的自由軟體,包括FreeBSD在内。正因為如此,當今的Internet才如此豐富多采,與其他商業網絡不同,才能成為真正的全球網絡。開放是Unix的靈魂,也是Internet的靈魂。

    由于 Unix的開放性,另一方面就使得存在多個不同的Unix版本。由于不同的Unix使用稍有差别的檔案、目錄結構,提供略有不同的系統調用,是以對系統管理、以及為Unix開發可移植的應用程式帶來一定的困難。例如System V和BSD的很多系統調用就存在不同。在Unix曆史發展中也存在将Unix完全統一的努力,例如POSIX規範就是各個Unix廠商經過協商,達成的Unix作業系統應該遵循的一套基本系統調用的規定。然而由于存在多個Unix系統,各個廠商的意見很不統一,是以POSIX規範制定的很寬松,甚至Windows NT中也存在一個POSIX子系統。事實上,隻要各個Unix之間協調發展,不故意為了商業目的而人為的制造系統差異,就能夠保持各個Unix之間不緻具有太大的差别,保持Unix系統的多樣性比隻有唯一的一個Unix系統更能夠促進技術的進步和發展,企圖人為的統一Unix的想法隻能是某一個Unix廠商的一廂情願。

    有時為了避免法律糾紛,表明自己的程式代碼是完全重寫的,一個軟體廠商會故意将一些函數聲明的與其他系統的中的同類函數不同,例如使用不同的函數參數或改變函數參數的順序等。 Unix System V中的很多系統調用與BSD Unix不同的部分原因也在于此。這些差異人為造成了不同系統的源程式的差異。