初遇林纳斯(Linux)——Linux历史
生活随笔
收集整理的這篇文章主要介紹了
初遇林纳斯(Linux)——Linux历史
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?自學Linux半年多了,由于沒有什么實踐機會,純靠平時的使用來練習確實效果不好,忘的差不多了。現(xiàn)在為了改變這種情況,開始寫博客生涯,記錄一下自己Linux的學習歷程。
? 首先糾正一下半年來的錯誤讀法,Linux:lin-na-si,不是lin-niu-ke-si;GNU:ge-nu;GUI:gu-yi。? 這篇博客主要是在看了一些Linux學習視頻之后來總結(jié)敘述一下Linux的歷史,普及一下常識。當然,只是盡可能準確,有錯誤歡迎指出。
? 在上世紀60年代,雖然此時第一臺電子計算機問世不久(1946年2月14日在費城開始運行的ENIAC計算機),但是電子計算機的超強計算能力給當時社會所帶來的影響卻是十分廣泛的。在那個年代,一臺計算機的價格昂貴,并且體積龐大,在普通民眾群體中是十分稀有的資源。后來麻省理工學院(MIT)開發(fā)了分時操作系統(tǒng),也就是一個大型主機提供多個終端機鏈接,實現(xiàn)多個用戶在某個時間段內(nèi)分別使用主機的CPU資源。當然,這種方式在CPU頻率很高的前提下并不會給用戶帶來為了使用計算機排隊的感覺。不過這種終端機只能是個IO設(shè)備,并且限于硬件和技術(shù)的發(fā)展水平,在當時一個比較先進的主機最多也就能支持30臺左右的終端機。
? 為了充分利用主機資源,實現(xiàn)一個主機同時支持300終端機工作的這么一個目的,在1965年,貝爾實驗室(Bell)、麻省理工學院(MIT)和通用電氣公司(GE)三家巨頭公司共同發(fā)起了一個名為Multics的項目,這在當時是如此興師動眾的一個工程,三家巨頭各自出動了一批優(yōu)秀的年輕人才。經(jīng)過幾年的努力,Multics的基本功能實現(xiàn)了,可以支持多程序、多用戶,不過就算在大型機上面運行,性能仍然不怎么樣。在基本功能完成后,三家都沒有停止這個項目的意思,繼續(xù)在為Multics延展一些功能。又過了一段時期,失去目標的Multics項目不再一如當前的吸引人,所以GE、BELL相繼退出,只剩了MIT仍然在繼續(xù)。不過Multics仍然是成功了的,據(jù)說福特公司使用曾購買使用Multics,一直運行到2000年以后才下線。
? Bell退出之后,當初為Multics招來的許多工程師就空閑了,其中有個叫Ken Thompson的年輕人 ,他曾經(jīng)負責在Multics上面開發(fā)名為Space Travel這么一款游戲。在退出之后,由于無法再免費使用Multics來繼續(xù)他的游戲開發(fā),他就申請去購買一套Multics裝在機器上面。在1972年左右,市面上流行的主機是PDP-11,由DEC公司生產(chǎn)的,是一款小型機,屬于VAX系列。當時一臺PDP-11數(shù)萬美元。理所當然,Ken的申請被拒絕了。不過流浪在Bell的期間他發(fā)現(xiàn)了一臺老舊沒人用的PDP-7,雖然跨了四代(跨四代對電腦什么概念不必多言),不過還好能用。但是限于當時的Multics是用匯編語言所寫,對硬件的依賴程度還是非常高的,所以Ken必須要自己開發(fā)一套內(nèi)核來跑他的游戲。于是Ken憑借隊此前的Multics的記憶,花了四個星期寫了一套內(nèi)核,并且還成功的跑起了他的游戲。Ken就向?qū)嶒炇依锏耐蚂乓挠螒?#xff0c;然而沒人看好他界面丑陋的游戲,大家倒是對他所開發(fā)的那套系統(tǒng)十分感興趣。那套系統(tǒng)十分小巧,被實驗室里的人稱為UNICS,后來才改稱為UNIX。此后的一年,出色的性能使得UNICS風靡Bell。不過同樣的道理,UNICS是用匯編語言開發(fā)的,跟硬件平臺緊密結(jié)合,在不同的硬件架構(gòu)的電腦之間移植非常困難。為了扭轉(zhuǎn)劣勢。這時Bell實驗室里的另外一名叫做Dennis M.Ritchis主動找到Ken,表示可以用高級語言重新開發(fā)UNICS,這樣用編譯器在不同的電腦上編譯就能實現(xiàn)系統(tǒng)移植。兩人不謀而合,立即著手對當時的B語言改進,通過引入靜態(tài)變量,指針等一堆東西之后,B語言也升級成了赫赫有名的、廣為流傳的C語言。繼而倆人用C語言改寫了UNIX,最后發(fā)行出了UNIX正式版本。值得一提的是由于高級語言的一些特性(比如通過結(jié)合一些額外的機制,彌合多種硬件之間的不同),使得相對于匯編語言執(zhí)行效率低了大概30%。在硬件速度相對慢的時代,這是非常大膽的舉動。不過這也是倆人預見以后硬件速度的提升肯定會日新月異,果不其然,現(xiàn)在的高級語言的效率問題在電腦平臺上幾乎可以忽略了。
? UNIX發(fā)行之后,倆人聯(lián)合署名在在美國計算機通信雜志上面發(fā)表了一篇論文,來宣傳UNIX。這樣一來,很多的高校和科研機構(gòu)都希望能獲得一份源碼。由于Bell屬于AT&T,在美國反壟斷法的規(guī)定中,AT&T是不能銷售除了電報電話之外的任何產(chǎn)品的,并且在別人需要的時候要無償提供。這樣很多著名的大學包括伯克利分校都獲得了UNIX的源碼。在有了這么突出的貢獻之后,Ken獲得了年休的機會,于是借此機會,他在1976年時去伯克利分校任教。在伯克利分校有個很厲害的研究生叫Bill Joy,他成立了一個叫BSRG的團體,專門是改進UNIX,修復bug,加入些新功能之類的。事實上在Ken加入之后,伯克利分校幾乎成為UNIX研究領(lǐng)域的領(lǐng)頭羊。
? 隨著研究的進行,后來美國軍方網(wǎng)絡(luò)平臺需要一套傳輸數(shù)據(jù)的報文協(xié)議,軍方不想在封閉的系統(tǒng)平臺上面開發(fā)這一套協(xié)議,所以就把這個任務(wù)交給BSRG團隊。BSRG團隊在加入包括擁塞控制等一些列機制之后,再柔和進UNIX很多新功能,將研發(fā)結(jié)果打包發(fā)行,并稱為BSD(伯克利系統(tǒng)發(fā)行版),開始了賣系統(tǒng)。在這之后不久,Bell被賣給另一家公司,看到BSRG賣UNIX掙了很多錢,Bell也迫不及待開始打包發(fā)行UNIX,并且以40000美元一個授權(quán)的價格,也掙了一大筆錢。后來兩家為了UNIX正統(tǒng)之爭開始打官司,一打就是十年。導致這段時間UNIX的研究陷入停頓狀態(tài)。起初的UNIX只能在PDP系列上運行,由于當時PC機上的Inter芯片接口丑陋不堪,性能也不好,所以沒人來將UNIX改造使其能運行在PC機上。
? 后來美國一個教授,開發(fā)了CP/M,售價大概兩三萬美元,當時的PC機也是售價兩三萬,使得個人能買一臺能用的計算機非常昂貴,所以PC機的銷量并不好。IBM和當時的康柏公司就迫切一個解決方案。在1981年美國的西雅圖,比爾蓋茨成立了微軟公司,最初公司一共3個人以賣basic編譯器和包裝發(fā)行UNIX為主。公司成立不久之后,在比爾蓋茨的好友艾倫的一個好友所在的公司,有一個程序員寫了個在PC機上的小系統(tǒng)。于是比爾蓋茨非常敏銳的捕捉到這個商機,利用他母親IBM公司董事會董事的關(guān)系,找到IBM董事長沃森,說有這么一個系統(tǒng)可以賣給IBM公司,不過他只是賣給沃森版權(quán),也就是裝一個這樣的系統(tǒng)只要給比爾蓋茨幾美元就行了。沃森當即就同意了。比爾蓋茨于是讓艾倫以50000美元找那個程序員買斷了這個系統(tǒng),再和她一起改造了之后,更換名字為Dos。結(jié)果PC機大賣,比爾蓋茨也掙了很多錢。不過Dos是單任務(wù)、單用戶的系統(tǒng),實際上并不好用。此時又有一家公司成立了,也就是Jobs成立的蘋果公司。Jobs目的是生成PC機,并且要生成比IBM的PC兼容機性能強很多的真正的PC機。有趣的是Jobs這個人特別崇拜圖靈,不過圖靈是個同性戀,被當時的人們關(guān)押之后,圖靈羞憤之下咬了一口涂了氰化鉀的蘋果死了,所以蘋果的Logo是現(xiàn)在這樣咬了一口的蘋果。蘋果公司所生產(chǎn)的1型PC機是基于UNIX的,賣了很多臺。最初蘋果電腦的CPU是PowerCPU,不是Inter的。
? 為了給他的電腦添加一些新的東西,Jobs利用各種關(guān)系進入了施樂公司(賣打印機的)的PARK實驗室參觀,此時實驗室里一個人在UNIX系統(tǒng)首先上研究出了世界上第一個鼠標,而且并且出了第一個圖形操作界面。但是賣打印機為主的施樂公司領(lǐng)導層并不喜歡這個產(chǎn)品,當Jobs發(fā)現(xiàn)這個之后就向施樂公司高價買了一份回去研究。回去之后他就立即著手組織人對這個寶貝進一步研發(fā)(Jobs本人并不是程序員)。于是在蘋果二代就有了圖形操作系統(tǒng),這使得裝Dos系統(tǒng)的PC機銷量日下。于是比爾蓋茨也很想搞這么一套代碼來開發(fā)他的系統(tǒng),比爾蓋茨就想方設(shè)法去接近Jobs,希望一起研究進一步開發(fā)這個圖形界面,于是他成功的從Jobs手中騙走了一份源碼,并且立即開始了改進他的系統(tǒng)。所以Windows系統(tǒng)就誕生了,但是Windows是在Dos基礎(chǔ)上研發(fā)的,經(jīng)常藍屏。
? 此時的UNIX還在戰(zhàn)爭期間,當BSD和Bell發(fā)現(xiàn)微軟和蘋果搞得這樣火爆時才決定放棄了正統(tǒng)之爭。之后BSD研究團隊就解散了,但是里面一些人仍然在繼續(xù)隊UNIX的研發(fā),并且開發(fā)了第一個可以在PC機上運行的UNIX,名字為FreeBSD。此后還出現(xiàn)了其他可在PC機上跑的UNIX發(fā)行版,如OpenBSD、NetBSD等。到現(xiàn)在蘋果系統(tǒng)的核心仍然是FreeBSD內(nèi)核。之前領(lǐng)導BSRG的Bill Joy,隨后成立了著名的Sun公司,主要是生成工作站,并且開發(fā)了自己的操作系統(tǒng)Sun OS,后來結(jié)合UNIX系統(tǒng)改名為Solaris。Bill Joy最突出的貢獻是為UNIX添加了一個程序:csh,也就是兼容C語言的shell。
? 再回到蘋果和微軟,微軟公司的Windows系統(tǒng)一直到Windows95、98版本之后,藍屏問題仍然沒有解決,由于Dos這個基礎(chǔ)并沒有改變。前面提到生產(chǎn)PDP主機的DEC公司,這家公司生產(chǎn)的機器上裝的是自己開發(fā)的OpenVMS系統(tǒng)。在DEC公司被收購之后,OpenVMS系統(tǒng)的研發(fā)人員就被比爾蓋茨接收進微軟公司,來改進他的Windows系統(tǒng)。整個OpenVMS研發(fā)團隊進入微軟之后,新版本的Windows系統(tǒng)就在OpenVMS之上修改而成,改名為WindowsNT,此時的內(nèi)核不再是Dos。之后又發(fā)行了WindowsXp,windows2000等等,這些系統(tǒng)的內(nèi)核都是基于OpenVMS。盡管Windows系統(tǒng)的藍屏問題解決了,但是界面不如蘋果系統(tǒng),因為不論微軟吹噓得多厲害的技術(shù),基本都是別人幾年前就不用的技術(shù),直到現(xiàn)在。不過,蘋果強大的界面都是依靠硬件支持,所以現(xiàn)在的圖形工作站主機多數(shù)都是蘋果機。
? 再回到UNIX,當UNIX商用之后,很多高校就不能在免費用了。荷蘭一個大學里,有個叫安德魯?shù)慕淌?#xff0c;此前一直在使用UNIX教學,UNXI商用之后他就自己開發(fā)了一個操作系統(tǒng)上課用,叫Minix,也就是和UNIX十分相似的很小的系統(tǒng)。在他去芬蘭赫爾辛基大學教學之后,這個系統(tǒng)也被帶了過去。由于他是用匯編寫的這個系統(tǒng),所以學生要使用就要自己開發(fā)內(nèi)核。
? 要再繼續(xù)講Linux就得先介紹一個著名的人,麻省理工學院的教授Richard Matthew Stallman。他是一個著名的黑客,認為程序是全人類的,于是舉起自由的大旗,成立GNU組織,開始了程序界的共產(chǎn)主義運動,并且草擬了著名的GPL。Stallman開發(fā)了很多程序,如Emacs、GNU C(GCC)、GNU C Library(GLIBC)、Bash shell等。在赫爾辛基大學里有個叫Linus的學生,他20歲生日時收到外公的一個禮物——一臺80386PC機。在1991年,他自己使用bash、gcc等工具在這臺PC機上寫了個很小的內(nèi)核程序,命名為Linux。之后他在電子公告牌上宣布了這個消息,這讓很多人感興趣,并加入了對他寫的這個內(nèi)核的維護中來。此前說的Stallman所開發(fā)的程序都是在UNIX上運行的,此時Linux的出現(xiàn)正和GNU組織內(nèi)核的需求相吻合。但是Linus提供的Linux只是內(nèi)核,不是程序,沒有庫,之后Linus在Linux上移植了很多bsh,于是全球黑客開始了為Linux編寫程序的活動。于是在1994年,Linux1.0誕生,由于所有人都在努力將Linux移植到各種硬件上,所以此時的Linux已經(jīng)可以跑在很多PC上面上。要再次說明的是Linux只是個內(nèi)核程序,GNULinux才是個系統(tǒng)。不過兩者都是源代碼,要運行在PC機上面得先編譯。但是不是所有人都會編譯,另外由于CPU支持二進制的格式不同,并且ABI(應(yīng)用二進制接口)不同所以編譯要求兩臺主機完全一樣,比如編譯后要在x86架構(gòu)主機上運行,就必須在x86架構(gòu)主機上編譯才行。此時一些第三方組織出現(xiàn),他們負責編譯內(nèi)核和外圍應(yīng)用程序,并打包發(fā)行。著名的包括RedHat、Debian、SUSE,他們不是Linux 的開發(fā)者,只是打包發(fā)行而已,Linux 的內(nèi)核由linus和開發(fā)團體提供,軟件由GNU提供。發(fā)行商在其中加入自己的配置文件,使得Linux不同版本之間看起來各不相同。
? 由于早期的軟件都是和內(nèi)核打包發(fā)行,用戶不能自己更改。所以后來出現(xiàn)了軟件管理器,如Debian的Dpkg,RedHat的RPM,使得軟件有安裝、卸載、升級等功能。遵循GPL所規(guī)定的,發(fā)行商發(fā)行的源碼必須公開。為了盈利,RedHat在發(fā)布源程序,但是不發(fā)放編譯好的二進制文件,而且在軟件升級時也不發(fā)放二進制升級補丁。這樣的情況下出現(xiàn)了另一個組織,CentOS(社區(qū)企業(yè)操作系統(tǒng))。每當RedHat發(fā)行源碼時,CentOS都給搞成二進制代碼免費發(fā)放,并且和RedH發(fā)行的版本完全兼容,不過CentOS不提供后續(xù)服務(wù)。在RedHat9.0(個人版)發(fā)行之后,這個系統(tǒng)基本就十分穩(wěn)定了,所以后來RedH專注于研發(fā)RedHa企業(yè)版,個人版的更新在2003年終止,并將個人版捐給Fedora公司。Debian是目前唯一一個不受商業(yè)組織支持的UNIX發(fā)行者,因為Debian的所有者都是自愿者,所以最先進的Linux發(fā)行版是Debian,不過最難使用的也是Debian。之后Debian的二次發(fā)行版,如Ubuntu,主要用于PC,界面很漂亮。還要基于Ubuntu的二次發(fā)行,Mint。值得說的是現(xiàn)在流行的Andriod系統(tǒng)也是Linux的一個發(fā)行版。具體的Linux發(fā)行分支圖參考:
http://blog.csdn.net/xkfz008/article/details/24103581
總結(jié)
以上是生活随笔為你收集整理的初遇林纳斯(Linux)——Linux历史的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度研发工程师编程题——买帽子
- 下一篇: 计算机二级Excel考点精讲(—)