托瓦斯發(fā)明Linux的起源
我知道Linux是托瓦斯發(fā)明的。 為什么托瓦斯可以發(fā)明Linux? 今天讓我們談?wù)劇?/p>
與Minix之間
林納斯.托瓦斯的外祖父是赫爾辛基大學(xué)的統(tǒng)計(jì)學(xué)學(xué)家,他的外祖父為了讓自己的小孫子學(xué)點(diǎn)東西,從小就將托瓦斯帶到身邊來(lái)管理一些微計(jì)算機(jī)。在這個(gè)時(shí)期,托瓦斯接觸了匯編語(yǔ)言那是一種能夠直接與芯片交互的程序語(yǔ)言,也就是所謂的低級(jí)語(yǔ)言,用戶必須很了解硬件的架構(gòu),否則很難使用匯編語(yǔ)言編寫程序。
在1998年間,托瓦斯順利進(jìn)入了赫爾辛基大學(xué),并選讀了計(jì)算機(jī)學(xué)系。在上學(xué)期間,因?yàn)閷W(xué)業(yè)的需要與自己的興趣,托瓦斯接觸到了UNIX這個(gè)操作系統(tǒng)。當(dāng)時(shí)整個(gè)赫爾辛基只有一臺(tái)最新的UNIX系統(tǒng),同時(shí)僅提供16個(gè)終端。早期的計(jì)算機(jī)僅有主機(jī)具有運(yùn)算功能,終端僅負(fù)責(zé)輸入與輸出而已。在這種情況下,實(shí)在很難滿足托瓦斯的需求,因?yàn)椋馐堑却褂肬NIX的時(shí)間就很耗時(shí),為此,他不禁想到:“我何不自己搞一臺(tái)UNIX來(lái)玩?”不過(guò),就如同斯托曼當(dāng)初的GNU計(jì)劃一樣,要寫內(nèi)核程序,談何容易。
不過(guò),幸運(yùn)之神并未背離托瓦斯,因?yàn)椴痪弥螅椭烙幸粋€(gè)類似UNIX的系統(tǒng),并且與UNIX完全兼容,還可以在Intel 386機(jī)器上面運(yùn)行,那就是Tanenbaum教授為了教學(xué)需要而編寫的Minux系統(tǒng)。他在購(gòu)買了Intel 386的個(gè)人計(jì)算機(jī)后,就立即安裝了Minux這個(gè)操作系統(tǒng),另外,Minux系統(tǒng)提供源代碼,所以托瓦斯也通過(guò)公布的源代碼學(xué)習(xí)到了很多的內(nèi)核程序設(shè)計(jì)的概念。
對(duì)386硬件的多任務(wù)測(cè)試
事實(shí)上,托瓦斯對(duì)于個(gè)人計(jì)算機(jī)的CPU其實(shí)并不滿意,因?yàn)樗敖佑|的計(jì)算機(jī)都是工作站型的計(jì)算機(jī),這類計(jì)算機(jī)的CPU特色就是可以進(jìn)行“多任務(wù)處理”的能力。什么是多任務(wù)?理論上,一個(gè)CPU在一個(gè)時(shí)間內(nèi)僅能運(yùn)行一個(gè)程序,那如果有兩個(gè)以上的程序同時(shí)出現(xiàn)在系統(tǒng)中呢?舉例來(lái)說(shuō),你可以現(xiàn)在的計(jì)算機(jī)中同時(shí)開啟兩個(gè)以上的辦公軟件,例如電子表格與文字處理器,這個(gè)同時(shí)開啟的操作代表著這兩個(gè)程序同時(shí)要交給CPU來(lái)處理。
CPU一個(gè)時(shí)間點(diǎn)內(nèi)僅能處理一個(gè)程序,那怎么辦?沒(méi)關(guān)系,這個(gè)時(shí)候具有多任務(wù)能力的CPU就會(huì)在不同的程序間切換,還記得以前講過(guò)的CPU頻率嗎?假設(shè)CPU頻率為1GHz的話,那表示CPU一秒鐘可以進(jìn)行10的9次方工作。假設(shè)CPU對(duì)每個(gè)程序都只能進(jìn)行1000次運(yùn)行周期,然后就得要切換到下個(gè)程序的話,那么CPU一秒鐘就能夠切換10的6次方次(當(dāng)然,切換工作這個(gè)事情也會(huì)花去一些CPU時(shí)間,不過(guò)這些先暫時(shí)不做討論。)這么快的處理速度下,你會(huì)發(fā)現(xiàn)兩個(gè)程序感覺(jué)上幾乎是同步在進(jìn)行。
早期的Intel x86架構(gòu)計(jì)算機(jī)不是很受重視的原因,就是因?yàn)閤86的芯片對(duì)很多任務(wù)的處理不佳,CPU在不同的工作之間切換不是很流暢。但是這個(gè)情況在386就是哪幾推出后,有很大的改善。托瓦斯在得知新的386芯片的相關(guān)信息后,他認(rèn)為以性能價(jià)格比的觀點(diǎn)來(lái)看,Intel的386相當(dāng)便宜,所以在性能上也就稍微可以將就將就,最終他就貸款去買了一臺(tái)Intel的386來(lái)玩。
早期的計(jì)算機(jī)性能不如現(xiàn)在,因此受節(jié)制的計(jì)算機(jī)性能成為一種工程習(xí)慣。 Tobas自己很早就玩匯編語(yǔ)言。 匯編語(yǔ)言與硬件緊密相關(guān)。 “我一直熱愛(ài)性能。” Tovas并未減少測(cè)試386計(jì)算機(jī)以充分利用386性能的時(shí)間。 它的主要測(cè)試是386的任務(wù)測(cè)試。 首先,他創(chuàng)建了三個(gè)程序。 一個(gè)程序連續(xù)輸出A,一個(gè)程序連續(xù)輸出B,最后一個(gè)程序在兩個(gè)程序之間交替。 他同時(shí)運(yùn)行了這三個(gè)程序,發(fā)現(xiàn)ABABAB在屏幕上流暢顯示。他直到成功了。