1.1、Linux為何物
Linux就是一個操作系統(tǒng),正如Windows和Mac OS。那么,操作系統(tǒng)是什么?
操作系統(tǒng):是一組軟件,負責管理計算機的所有活動以及驅(qū)動系統(tǒng)中的所有硬件。
操作系統(tǒng)示意圖
如上圖所示,操作系統(tǒng)由內(nèi)核和系統(tǒng)調(diào)用兩部分組成,不過現(xiàn)在的操作系統(tǒng)都會添加一些基礎的應用程序,比如文檔管理器、瀏覽器等等,嚴格來說應用程序不屬于操作系統(tǒng)。早期的Linux系統(tǒng)是針對386來開發(fā)的,它不含有應用程序。
1.2、Linux歷史簡介
- 操作系統(tǒng)始于二十世紀50年代,當時的操作系統(tǒng)能運行
批處理程序。批處理程序不需要用戶的交互,它從文件或者穿孔卡片讀取數(shù)據(jù),然后輸出到另外一個文件或者打印機。 - 二十世紀六十年代初,
交互式操作系統(tǒng)開始流行。它不僅僅可以交互,還能使多個用戶從不同的終端同時操作主機。這樣的操作系統(tǒng)被稱作分時操作系統(tǒng),它的出現(xiàn)對批處理操作系統(tǒng)是個極大的挑戰(zhàn)。許多人嘗試開發(fā)分時操作系統(tǒng), 其中包括一些大學的研究項目和商業(yè)項目。當時有一個項目叫做"Multics",它的技術在當時很創(chuàng)新。"Multics"項目的開發(fā)并不順利。它花費了遠超過預計的時間來完成,卻沒有在操作系統(tǒng)市場上占到多少份額。而參加該項目的一個開發(fā)團體-貝爾實驗室退出了這個項目。他們在退出后開發(fā)了他們自己的一個操作系統(tǒng)——Unix。
Unix最初免費發(fā)布并因此在大學里受到歡迎。后來,Unix實現(xiàn)了TCP/IP協(xié)議棧,成為了早期工作站的操作系統(tǒng)的一個流行選擇。 - 1990年,Unix在服務器市場尤其是大學校園成為主流操作系統(tǒng),許多校園都有Unix主機,當然還包括一些研究它的計算機系的學生。這些學生都渴望能在自己的電腦上運行Unix。不幸的是,從那時候開始,Unix開始變得商業(yè)化,它的價格也變得非常昂貴。而唯一低廉的選擇就是
Minix,這是一個功能有限的類似Unix的操作系統(tǒng),作者Andrew Tanebaum開發(fā)它的目的是用于教學。 - 1991年10月,Linus Torvalds(Linux之父)在赫爾辛基大學接觸Unix,他希望能在自己的電腦上運行一個類似的操作系統(tǒng)。可是Unix的商業(yè)版本非常昂貴,于是他從Minix開始入手,計劃開發(fā)一個比Minix性能更好的操作系統(tǒng)。很快他就開始了自己的開發(fā)工作。他將自己寫好的第一個版本的
Linux內(nèi)核發(fā)布在網(wǎng)上,很快吸引了一些對此感興趣的人。這些人的加入使它(Linux Kernel)很快就具有了許多吸引人的特性。
Linux本來只是指Linux操作系統(tǒng)的內(nèi)核。內(nèi)核是使其他程序能夠運行的基礎。它實現(xiàn)了多任務和硬件管理,用戶或者系統(tǒng)管理員交互運行的所有程序?qū)嶋H上都運行在內(nèi)核之上。其中有些程序是必需的,比如說,命令行解釋器(Shell),它用于用戶交互和編寫shell腳本(.bat文件)。 Linus沒有自己去開發(fā)這些應用程序,而是使用已有的自由軟件。這減少了搭建開發(fā)環(huán)境而所需花費的工作量。實際上,他經(jīng)常改寫內(nèi)核,使得那些程序能更容易在Linux上運行。許多重要的軟件,包括C編譯器,都來自于自由軟件基金GNU項目。GNU項目開始于1984年,目的是為了開發(fā)一個完全類似于Unix的免費操作系統(tǒng)。為了表揚GNU對Linux的貢獻,許多人把Linux稱為GNU/Linux(GNU有自己的內(nèi)核。) - 1992-1993年,Linux內(nèi)核具備了挑戰(zhàn)Unix的所有本質(zhì)特性,包括TCP/IP網(wǎng)絡,圖形界面系統(tǒng)(X window)。Linux 同樣也吸引了許多行業(yè)的關注。一些小的公司開發(fā)和發(fā)行Linux,有幾十個Linux用戶社區(qū)成立。1994年,LINUX 雜志也開始發(fā)行。
- Linux 內(nèi)核1.0在1994年三月發(fā)布,內(nèi)核的發(fā)布要經(jīng)歷許多開發(fā)周期,直至到達一個穩(wěn)定的版本。
下面列舉一下Linux誕生大事件
? 1965年,Bell實驗室、MIT、GE(通用電氣公司)準備開發(fā)Multics系統(tǒng),為了同時支持300個終端訪問主機,但是1969年失敗了;
剛開始并沒有鼠標、鍵盤,輸入設備只有卡片機,因此如果要測試某個程序,則需要將讀卡紙插入卡片機,如果有錯誤,還需要重新來過;
Multics:Multiplexed Information and Computing Service
? 1969年,Ken Thompson(C語言之父)利用匯編語言開發(fā)了FIle Server System(Unics,即Unix的原型)
因為匯編語言對于硬件的依賴性,因此只能針對特定硬件;
只是為了移植一款“太空旅游”的游戲;
? 1973年,Dennis Ritchie和Ken Thompson發(fā)明了C語言,而后寫出了Unix的內(nèi)核將B語言改成C語言,由此產(chǎn)生了C語言之父;
90%的代碼是C語言寫的,10%的代碼用匯編寫的,因此移植時只要修改那10%的代碼即可;
? 1977年,Berkeley大學的Bill Joy針對他的機器修改Unix源碼,稱為BSD(Berkeley Software Distribution)
Bill Joy是Sun公司的創(chuàng)始人;
? 1979年,Unix發(fā)布System V,用于個人計算機;
? 1984年,因為Unix規(guī)定:“不能對學生提供源碼”,Tanenbaum老師自己編寫兼容于Unix的Minix,用于教學;
? 1984年,Stallman開始GNU(GNU's Not Unix)項目,創(chuàng)辦FSF(Free Software Foundation);
產(chǎn)品:GCC、Emacs、Bash Shell、GLIBC;
倡導“自由軟件”;
GNU的軟件缺乏一個開放的平臺運行,只能在Unix上運行;
自由軟件指用戶可以對軟件做任何修改,甚至再發(fā)行,但是始終要掛著GPL的版權;
自由軟件自身并不被允許賣的,只是賣服務、手冊等;
? 1985年,為了避免GNU開發(fā)的自由軟件被其他人用作專利軟件,因此創(chuàng)建GPL(General Public License)版權聲明;
? 1988年,MIT為了開發(fā)GUI,成立了XFree86的組織;
? 1991年,芬蘭赫爾辛基大學的研究生Linus Torvalds基于gcc、bash開發(fā)了針對386機器的Lniux內(nèi)核;
? 1994年,Torvalds發(fā)布Linux-v1.0;
? 1996年,Torvalds發(fā)布Linux-v2.0,確定了Linux的吉祥物:企鵝;
①.UNIX進化史
②.GNU
③.linu kernel
④.Linux的20年發(fā)展史中20個大事件