過·他這次設計的實時系統,卻不打算像LINUX那樣使用單核心,而是決定使用微核心。
實際上,《作業系統設計與實現》這本書中,作者設計的MINIX就是微核心的。
INUX並沒有採用這個一設計,而是沿用了UNIX的單核心設計思想。
在LINUX流行起來之後,LINUX粉絲和MINIX粉絲之前曾經在郵件列表中爆發了一次爭論,最終兩個系統的創始人都出面發表了自己的看
MINIX的發明者安迪教授認為,INIX採用單核心是一種倒退,就好像是在90年代仍然使用七十年代的技術。並且指出·作業系統不應該過分依賴體系機構,而LINUX正是過於依賴80386結構,這樣顯然是不對的,缺乏遠見,因為體系結構的進化速度是非常快的,這樣會導致以後不利於移植。
而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的核心。
由於林鴻已經有了不少系統程式設計經驗,他剛開始的時候進度是非常快的。
首先,程式碼編寫環境是現成的,根本不用再花另外的時間和精力去配置。
要想編寫一個作業系統,其程式設計環境也是有一定複雜性的,並不說能夠編寫應用軟體的環境就可以,而是需要特別定製,這一步通常需要耗費程式設計師相當大的精力和時間。因為你需要編寫的系統很可能是一個全新的體系,現有的軟體和工具可能滿足不了你的需求,故而不得不自己動手去實現這些工具軟體。
這就像是,你想製造一臺機器,但是卻沒有現成的工具′還必須自己去發明一臺車床用來製造汽車