第188部分(第2/4 頁)
構,這樣顯然是不對的,缺乏遠見,因為體系結構的進化速度是非常快的,這樣會導致以後不利於移植。
而LINUS也承認·微核心在設計思想上的確是更勝一籌,但是微核心在實現和除錯上的難度非常大,這也是為什麼GNU自己的系統HURD遲遲無法釋出的原因。
INUS認為,快速實現一個可以使用的系統更為重要,如果等將所有設計都最佳化到最後再去實現,這個過程將極為漫長,那LINUX或許就會成為HURD那樣的難產兒。
而歷史似乎證明LINUX所作出的決定是正確的,LINUX正以一種令人難以置信地速度在網際網路上流傳起來,而HURD系統卻逐漸地銷聲匿跡。
如果是幾年前讓林鴻來設計系統,他的決定或許會和LINUS一樣,也選擇開發和入門都較為容易一點的單核心體系。不過現在他卻不會這麼做,因為他已經完全有把握能夠克服其中的一些問題。
並且,他想要編寫的實時作業系統,是為了軍事用途,軍事中的東西,架構可不都是XB6而是千奇百怪,單核心顯然無法滿足這個要求,只有將系統服務的實現和系統的基本操作規則分離開來,並且一個服務元件的失效不能導致整個系統的崩潰,這才是軍用產品所需要的功能。
林鴻新建了一個專案資料夾,名稱為“LINX”,沿襲了UNIX的命名法則,而前面的IN卻是林鴻的姓氏。
然後,他在裡面新建了個檔案,敲下了這個系統的第一行程式碼。
第331章 我想學
編寫作業系統是一件非常繁雜的事情,必須對計算機系統每一個細節都瞭解清楚,通電之後,每一個硬體在最初的狀態,裡面儲存著那些資料,程式碼是如何一步一步地執行的……等等等等。
林鴻主要使用的程式語言,是C語言,當然,其中還會有有些地方需要用到組合語言,例如最初引導啟動的那部分程式碼BaatLaader。
C語言的確是一種非常強大的語言,幾乎現在大部分流行的作業系統都是C語言,或者其變種語言所編寫的,例如UNIXLINUX甚至WINDOWS
當年,LINUS在MINIX系統下編寫LIbUX的核心,而現在,林鴻則在INUX系統下,編寫INX的核心。
由於林鴻已經有了不少系統程式設計經驗,他剛開始的時候進度是非常快的。
首先,程式碼編寫環境是現成的,根本不用再花另外的時間和精力去配置。
要想編寫一個作業系統,其程式設計環境也是有一定複雜性的,並不說能夠編寫應用軟體的環境就可以,而是需要特別定製,這一步通常需要耗費程式設計師相當大的精力和時間。因為你需要編寫的系統很可能是一個全新的體系,現有的軟體和工具可能滿足不了你的需求,故而不得不自己動手去實現這些工具軟體。
這就像是,你想製造一臺機器,但是卻沒有現成的工具′還必須自己去發明一臺車床用來製造汽車的配件。可想而知,發明車床的時間可能就需要耗費一段極長的時間。
正所謂“磨刀不誤砍柴工”,要想砍柴砍得快,就必須要有鋒利的刀具,但是磨刀也是需要花費時間的。
而林鴻現在這一步可以直接省略了。因為他的開發環境完全可以和LINUX的開發環境一致,因為使用的程式語言是一樣的。
其次,諸如BaatLaader這樣的載入程式也幾乎是現成的只要修改少量的程式碼就可以直接將原來的進行重用。
所以,他在很快的時間之內,就將第一個例程“HMMaLun編寫了出來。
重啟之後,引導進入他新編寫的作業系統顯示器上,便開始間歇性的列印“HMlla”以及“Ln這兩個詞語。
正如當年INUS編寫的第一個多程序程式一樣,他這個也實現了兩個執行緒,這兩個執行緒同時執行在CPU中,共享著CPU的時間片。
雖然早已料到這樣的結果,但是林鴻還是看了一下效果。
這是程式設計師們經常乾的事情,雖然早就料到程式執行的結果但是還是會選擇親自輸入一遍,然後執行再看電腦執行一遍。這樣可以有一個感性的認知,同時也是對自己的一種潛在的激勵,看著自己親自編寫出來的程式漸漸成型,讓電腦展現出各種效果,其中的自豪感是無以言表的。
熟悉心理學的林鴻自然知道,這實際上是人的控制本能,尤其是男孩子從小就有這種控制**。他們希望玩遙控汽
本章未完,點選下一頁繼續。