一種倒退,就好像是在90年代仍然使用七十年代的技術。並且指出,作業系統不應該過分依賴體系機構,而linux正是過於依賴80386結構,這樣顯然是不對的,缺乏遠見,因為體系結構的進化速度是非常快的,這樣會導致以後不利於移植。
而linus也承認,微核心在設計思想上的確是更勝一籌,但是微核心在實現和除錯上的難度非常大,這也是為什麼gnu自己的系統hurd遲遲無法釋出的原因。
linus認為,快速實現一個可以使用的系統更為重要,如果等將所有設計都最佳化到最後再去實現,這個過程將極為漫長,那linux或許就會成為hurd那樣的難產兒。
而歷史似乎證明linux所作出的決定是正確的,linux正以一種令人難以置信地速度在網際網路上流傳起來,而hurd系統卻逐漸地銷聲匿跡。
如果是幾年前讓林鴻來設計系統,他的決定或許會和linus一樣,也選擇開發和入門都較為容易一點的單核心體系。不過現在他卻不會這麼做,因為他已經完全有把握能夠克服其中的一些問題。
並且,他想要編寫的實時作業系統,是為了軍事用途,軍事中的東西,架構可不都是x86,而是千奇百怪,單核心顯然無法滿足這個要求,只有將系統服務的實現和系統的基本操作規則分離開來,並且一個服務元件的失效不能導致整個系統的崩潰,這才是軍用產品所需要的功能。
林鴻新建了一個專案資料夾,名稱為“linx”,沿襲了unix的命名法則,而前面的lin卻是林鴻的姓氏。
然後,他在裡面新建了個檔案,敲下了這個系統的第一行程式碼。
!@#
章節目錄第331章我想學
'奇qisuu書網'更新時間:2012…9…923:53:18本章字數:5416
第331章我想學
編寫作業系統是一件非常繁雜的事情,必須對計算機系統中每一個細節都瞭解清楚,通電之後,每一個硬體在最初的狀態,裡面儲存著那些資料,程式碼是如何一步一步地執行的……等等等等。
林鴻主要使用的程式語言,是c語言,當然,其中還會有有些地方需要用到組合語言,例如最初引導啟動的那部分程式碼bootloader。
c語言的確是一種非常強大的語言,幾乎現在大部分流行的作業系統都是c語言,或者其變種語言所編寫的,例如unix,linux,甚至inix系統下編寫linux的核心,而現在,林鴻則在linux系統下,編寫linx的核心。
由於林鴻已經有了不少系統程式設計經驗,他剛開始的時候進度是非常快的。
首先,程式碼編寫環境是現成的,根本不用再花另外的時間和精力去配置。
要想編寫一個作業系統,其程式設計環境也是有一定複雜性的,並不說能夠編寫應用軟體的環境就可以,而是需要特別定製,這一步通常需要耗費程式設計師相當大的精力和時間。因為你需要編寫的系統很可能是一個全新的體系,現有的軟體和工具可能滿足不了你的需求,故而不得不自己動手去實現這些工具軟體。
這就像是,你想製造一臺機器,但是卻沒有現成的工
還必須自己去發明一臺車床用來製造汽車的配件。可想而知,發明車床的時間可能就需要耗費一段極長的時間。
正所謂“磨刀不誤砍柴工”,要想砍柴砍得快,就必須要有鋒利的刀具,但是磨刀也是需要花費時間的。
而林鴻現在這一步可以直接省略了。因為他的開發環境完全可以和linux的開發環境一致,因為使用的程式語言是一樣的。
其次,諸如bootloader這樣的載入程式也幾乎是現成的,只要修改少量的程式碼就可以直接將原來的進行重用。
所以,他在很快的時間之內,就將第一個例程“hellolinx”編寫了出來。
重啟之後,引導進入他新編寫的作業系統,顯示器上,便開始間歇性的列印“hello”以及“linx”這兩個詞語。
正如當年linus編寫的第一個多程序程式一樣,他這個也實現了兩個執行緒,這兩個執行緒同時執行在cpu中,共享著cpu的時間片。
雖然早已料到這樣的結果,但是林鴻還是看了一下效果。
這是程式設計師們經常乾的事情,雖然早就料到程式執行的結果,但是還是會選擇親自輸入一遍,然後