就要看書網
主页 推荐 分类 短篇 小説 阅读记录

第209章linux第一版

如果出现文字缺失,格式混乱请取消转码/退出阅读模式

linus發過來的源碼包,總共大概12000行代碼,他編寫這些代碼總共花費了十天左右的時間,要是算上之前為此而準備的時間,則至少還要加上一個月-好看的小説:。3∴35686688而林鴻將這些代碼閲讀完畢,卻只花了大概三個小時就看完了。

林鴻發現,裏面很多地方都借鑑了minix的寫法,畢竟之前linus一直都在研究minix,從上面借鑑了不少特點和功能。例如,文件系統的結構。

minix的文件系統是模仿unix來寫的,只有將文件系統實現了,才有可能對磁盤進行讀寫,可以説文件系統就是對磁盤的管理程序。雖然現在的linux並沒有涉及到磁盤的讀寫功能,但是這個一部分linus還是將其實現了出來。

按照編程的慣例,通常第一個程序都是實現“hello,wolrd”linus也曾經在顯示器上打印過這個語句,但是他發給林鴻的這個版本的功能,已經不僅僅是這麼簡單了。

他在這個版本中實現了兩個重要的功能,即保護模式和多進程。

這兩個特點是dos系統所不具備的,被視為現代作系統的重要功能。

“保護模式”是針對內存的一個説法。

intel公司在1978年發佈了一個16位的cpu,即8086,這個cpu是intel歷史上一個重要的里程碑,是奠定了intel在pc領域片的最最要的產品之一。

8086cpu總有20地址線,可以最大尋址2的16次方,也就是1mb的地址空間-好看的小説:。

這就是基於8086cpu的計算機所能支持的最大內存地址,這個模式被稱為“實模式”dos系統就是工作在這個模式下。

實模式只支持最多1mb的內存。就林鴻想要升級自己正在使用的這台康柏計算機,在內存條上再加一條1mb的內存,dos系統也識別不出來,本無濟於事,能沒有任何提升。

這是16位cpu的硬件結構所決定的,在當時1mb內存已經相當不錯。所有應用程序都足夠使用。

不過,在電子領域,存在着“摩爾定律”集成電路不斷迅速發展,很快8086cpu就無法滿足要求了。

於是intel便在1985年推出了8086的升級版本80386。

這一次,寄存器的位數被翻了一倍,從16位升級到32位。

80386cpu增加了不少優點,不但尋址空間大大,而且還引入了多任務處理和保護模式的概念。器:無廣告、全文字、更保護模式下,對內存的管理已經不再是以前的分段式結構。而是變成了分頁機制,這種機制有非常大的優點,可以讓內存管理能得到極大的提升。

但是,在計算機領域,有一種“向前兼容”的規則,也就是説,80386必須兼容8086cpu的機制,以前在那個上面能運行的程序。在升級後的cpu上也能運行。

所以在默認情況下,這個“保護模式”是沒有被打開來的,使用的還是“實模式”而要想打開“保護模式”則需要用代碼對第20號地址線進行作,將其“喚醒”它就是進入保護模式的守門人,必須通過它的同意才行。

説起來簡單,但是整個過程具體實現起來卻是相當複雜的-好看的小説:。

這也是linus為什麼花了這麼長時間才最終將版編寫完畢的原因。

他們想讓linux跟上時代的發展,讓linux未來的功能能夠和現在的這些最新作系統相媲美,進入保護模式是必不可少的,因為只有進入了保護模式才能最大程度地發揮出80386cpu的最大能。

林鴻之前看《作系統設計與實現》的時候,在這部分看得非常糊,專門還去查了不少資料。可是心中還是對這種機制有些想不通,為什麼要這樣設計。

但是,今天他看到了linus的實現代碼之後,頓時有一種突然頓悟的覺。

與平時編程的時候,不用去關心硬件底層結構不同,作系統的底層代碼卻是和硬件緊密相連。最初的那波ot和load兒程序,都必須用匯編才能勝任。確到cpu的某一個寄存器,也確到磁盤的某一個扇區。

要想理解這些代碼,必須對cpu和磁盤的硬件結構瞭解得非常清楚。例如cpu有多少引腳,裏面有多少個寄存器,每一個寄存器的作用又是什麼。

好在這些技術參數。intel有着非常詳細地技術文檔。這麼小小的一塊片,涉及到的技術資料卻是幾本厚厚的大部頭書籍。

林鴻不得不嘆。這小小的片之中,承載的卻是人類文明中最先進的知識結晶,將人類的智慧發揮到了極處,每一個引腳,沒一個寄存器都是經過了千百次不斷試驗之後才最終定下來的。

林鴻按照linus在裏面寫的説明文檔,將開發環境配置好,然後在minix平台下對這份代碼進行了編譯。

修復了幾個細小的bug之後,他最終將linux的鏡像文件給編譯出來了。

他只有一台計算機,所以最終只好將這個linux安裝在了本機上。