概述01Multics計劃上個世紀六十年代,那個計算機還沒有很普及,只有少數(shù)人才能使用,而且當時的計算機系統(tǒng)都是批處理的,就是把一批任務一次性提交給計算機,然后就等待結果。并且中途不能和計算機交互。往往準備作業(yè)都需要花費很長時間,并且這個時候別人也不能用,導致了計算機資源的浪費。 為了改變這種情況,在1965年前后,貝爾實驗室(Bell)、麻省理工學院(MIT)以及通用電氣(GE)聯(lián)合起來準備研發(fā)一個分時多任務處理系統(tǒng),簡單來說就是實現(xiàn)多人同時使用計算機的夢想,并把計算機取名為Multics(多路信息計算系統(tǒng)),但是由于項目太復雜,加上其他原因導致了項目進展緩慢,1969年貝爾實驗室覺得這個項目可能不會成功,于是就退出不玩了。 02Unix的誕生Bell退出Multics計劃之后,Bell實驗室的那批科學家就沒有什么事做了,其中一個叫做Ken Thompson的人在研發(fā)Multics的時候,寫了一個叫做太空大戰(zhàn)(Space Travel)的游戲,大概就是一個很簡單的打飛機的游戲,但是這個游戲運行在Multics上。當Bell退出了Multics后,Thompson就沒有了Multics的使用環(huán)境了,為了能夠繼續(xù)游戲,于是他花了一個月的時間寫了一個小型的操作系統(tǒng),用于運行Space Travel,當完成之后,Thompson懷著激動的心情把身邊同事叫過來,讓他們來玩他的游戲,大家玩過之后紛紛表示對他的游戲不感興趣,但是對他的系統(tǒng)很感興趣。 因為MULTICS是“Multiplexed informtion and Computing Service”的縮寫(多路信息計算系統(tǒng)),于是他們命名這個系統(tǒng)為:“UNiplexed Information and Computing Service”,縮寫為“UNICS”(沒路信息計算系統(tǒng),與Multics相反)。后來大家取其諧音,就稱其為“UNIX”了。 這個時候已經(jīng)是1970年了,于是就將1970年定為Unix元年,因此計算機上的時間就是從這一年開始計算的。 后來Unix這個小操作系統(tǒng)就在Bell實驗室內部流行開,并經(jīng)過不斷地改良最終在1974年7月Unix發(fā)展到第5個版本,Bell實驗室公開了Unix,結果引起了學術界的廣泛興趣并對其源碼索取。所以,Unix第五個版本就以“僅用于教育目的”的協(xié)議,提供給各大學作為教學之用,成為當時操作系統(tǒng)課程的范例教材。各大學公司開始通過Unix源碼對Unix進行了各種各樣的改進和拓展。1978年學術界的老大伯克利大學,推出了一份以第六版為基礎,加上一些改進和新功能而成的Unix。并命名為BSD(Berkeley Software Distribution伯克利分發(fā)版),開創(chuàng)了Unix的另一分支:BSD系列。 于是乎Unix就有了兩個分支,一個就是BSD系列的分支,一個就是Bell本身發(fā)放的分支,當時因為Bell屬于AT&T,AT&T受到了美國《謝爾曼反托拉斯法》的影響,不能銷售除了電話機電報機等之外的商品,后來AT&T分解,Bell可以賣Unix了,Unix走向了商業(yè)化,如果想繼續(xù)使用就需要購買授權,一份授權4萬美元。 03Minix及Linux的誕生在Unix昂貴的授權費用下,很多大學不得不停止對其研究,導致老師上課也不知道講什么了。在1987年荷蘭有個大學教授安德魯寫了一個Minix,類似于Unix,專用于教學。當Minix流傳開來之后,世界各地的黑客們紛紛開始使用并改進,希望把改進的東西合并到Minix中,但是安德魯覺得他的系統(tǒng)是用于教學的,不能破壞純凈性,于是拒絕了。 Linus Torvalds 在1991年9y月17日,Linus Torvalds(林納斯.托瓦茲)在互聯(lián)網(wǎng)上公布了自己寫的Linux,可能是表達對安德魯?shù)牟粷M吧,于是Linus發(fā)布了一個帖子,大概就是說:我寫了一個操作系統(tǒng)的內核,但是還不夠完善,你們以任何姿勢使用不收費,也可以幫助我一起修改。帖子發(fā)出后引起了強烈的反響。在大家的努力下,于1994年Linux的1.0版本正式發(fā)布。 為什么會引起這么強烈的反應呢?這就要從了另一個人說起,那就是Richard Stallman(自由軟件之父)。Stallman是一個非?!凹みM”的人,因為Unix商業(yè)化的影響,他認為軟件是全人類的智慧結晶,不應該為某一家公司服務。在八十年代,他發(fā)起了自由軟件運動,吹起了共產(chǎn)主義的號角(發(fā)起了GUN運動),并發(fā)布了軟件界的共產(chǎn)主義宣言(GPL協(xié)議),并且這一運動得到了很多人的認同。 所謂自由軟件自由就是指:自由使用、自由學習和修改、自由分發(fā)、自由創(chuàng)建衍生版。 GUN的定義是一個遞歸縮寫,就是GUN IS NOT UNIX。就是說Unix是流氓,我不是。有意思的是,GUN運動是上個世紀八十年代開始的,而那個時候Linux還沒有誕生,就在大家逐漸失去信心的時候,1991年Linus Torvalds帶著他的Linux登場了,給GUN運動畫了一個完美的句號。 Linux為什么會引起如此強烈的反響呢?因為Unix有版權,愛好編程的狂熱分子在研究Unix的時候很容易吃上官司 ,而Linux是遵循GPL協(xié)議的,可以免費使用,讓黑客們盡情的施展(這里的黑客指那些技術大牛,不是指那些利用計算機干壞事的人)。于是Linux提供內核(kernel),GUN提供外圍軟件,就這樣GUN/Linux誕生了。 所以,看到這里你就會了解到Unix是1970年出現(xiàn)的,Linux是1991年發(fā)布的,但Linux是不同于Unix的操作系統(tǒng)。 04Linux的發(fā)行版本Linux或者Unix是一個操作系統(tǒng),1991年的Linus Torvalds公布的是Linux的內核(kernel)。但是公布的是源碼,并不是編譯好的直接可安裝的操作系統(tǒng),如何安裝一個操作系統(tǒng)呢?先下載一份源碼,然后進行編譯安裝,但是編譯的時候程序需要運行在操作系統(tǒng)上,而操作系統(tǒng)還沒有編譯。于是就陷入了一個死循環(huán)中,就是要安裝操作系統(tǒng),就需要編譯,編譯的時候需要操作系統(tǒng),這樣就是雞生蛋,蛋生雞。 這里就需要引入交叉編譯了,具體做法是假設要在電腦上安裝Linux,要把A的硬盤拆下來,放到已經(jīng)安裝了操作系統(tǒng)的電腦B上,然后編譯,將編譯好的操作系統(tǒng)放到硬盤上,再把硬盤裝回去,開機啟動,這就是交叉編譯安裝系統(tǒng)。 這樣的話入門難度實在太高了,所以迫切需要一種簡單的方式來安裝。于是就出現(xiàn)了這么一種公司,他們將已經(jīng)公開好的Kernel(內核)再加上一些開源的周邊軟件收集起來編譯成二級制文件放到網(wǎng)上供別人使用,其中Red Hat(紅帽)就是其中著名的一家。我們知道Linux是遵循GPL協(xié)議的,也就是公開免費的,那么他們怎么盈利呢?既然不能賣軟件,那么就賣服務唄,比如說,發(fā)現(xiàn)了Linux漏洞,然后Red Hat修復,如果你買了我們的服務,我們就將補丁程序給你,并指導你安裝,所有問題都幫你解決。 世界上總是不缺好事者,RedHat既然可以這么做,為什么就不能有好心人免費做呢?是的,有這樣一個社區(qū),他們把RedHat的源碼拿過來,然后編譯成操作系統(tǒng)放出去,這就是CentOS,就是社區(qū)版的RedHat,所以基本RedHat的補丁包出來一個月之后,CentOS就出現(xiàn)對應的補丁包了。這對于Red Hat是好事還是壞事呢?這恐怕只有當事人知道了。 當別人說Linux的版本時,一般來說有兩個版本,一個是內核的版本,一個是發(fā)行的版本。例如登錄到終端執(zhí)行命令 uname -a 查看內核的版本,是4.4.0的版本,而 more /etc/issue就是 查看發(fā)行版的版本,表示了我安裝的是Ubuntu的14.04.5的發(fā)行版。 05Linux的哲學思想Linux的基本思想有兩點: 第一,一切都是文件; 第二,每個軟件都有確定的用途,同時它們都盡可能被編寫得更好。其中第一條詳細來講就是系統(tǒng)中的所有都歸結為一個文件,包括命令、硬件和軟件設備、操作系統(tǒng)、進程等等對于操作系統(tǒng)內核而言,都被視為擁有各自特性或類型的文件。 06總結 |
|