簡體版 繁體版 第一百九十章 移植

第一百九十章 移植


封少追妻計劃:請妻入甕 絕戀之傾城傳說 腹黑妖夫:後院起火了 迷羊 快樂的變身生活 無上神通 魔逆九天 變形空間 最後一頁 秦楚古道雲悠悠

第一百九十章 移植

林鴻回到自己房間,心情激動地將其中一張軟盤插入光碟機之中,然後從命令列進入了軟盤之中。

這裡面有一個名為“SourceCode”資料夾,林鴻進入這個資料夾,再用DIR命令顯示了一下,列出了長長的一個資料夾列表。

林鴻大致的瀏覽了一下,發現這張軟盤裡面儲存的全部是原始碼,分門別類地放置在對應的資料夾中,主要分為核心、記憶體管理和檔案系統三大部分,其他都是一些引導程式碼還有驅動程式原始碼之類的。

將這塊軟盤退了出來,林鴻查看了一下另外一張軟盤。

這張軟體裡面的內容才是MINIX的映象系統,可以直接從這塊軟盤中啟動進行安裝。

現在的軟盤體積已經比以前大多了,再加上LINUS直接將這個系統做成了壓縮映象,所以一張軟盤就裝下了。

林鴻本想立刻就進行安裝,可是轉念一想,自己對這個系統並不是很熟悉,如果將原來的系統給刪掉了,他的很多事情就做不了了,例如上網和進行程式開發。

於是,他決定在硬碟上安裝雙系統,能夠在啟動的時候對系統進行選擇,這樣就可以按照需要進入不同的系統。

不過林鴻暫時對雙系統安裝並不是很瞭解,於是暫時將這事放下,先去各大論壇查一下相關的資料。

在幾個論壇上逛了一圈,林鴻就基本上心中有數了,他原本就已經有紮實的基礎,心中也有一個模糊的概念,只是不想浪費時間再去試驗摸索,學習一下大家的經驗可以節省時間和精力。

雙系統啟動其實很簡單。

在硬碟的第一個扇區上記錄了兩個重要重要的區域,分別是MBR(主要啟動記錄區)和分割槽表。

這兩個區域都很重要,但是和啟動有關的則是MBR。在這塊區域中,安裝了一個“開機啟動管理程式”,這個程式才是安裝雙系統的關鍵所在,只要將新系統的“開機啟動管理程式”也寫進硬碟,這樣在開機的時候,就會看到有兩個這樣的管理程式,選擇對應的選單,就可以進入不同的系統。

這個原理,就好像是在超市門口拜訪兩個指示牌,一個是指向DOS系統,另外一個則是指向MINIX系統。

先去下樓去吃完晚飯之後,林鴻再次回到房間,正式開始安裝MINIX。

為了順利將MINIX的“開機啟動管理程式”寫入MBR,林鴻還廢了一番心思,剛開始的幾次還沒能成功,幸好他之前已經將原來的MBR給備份了,否則原來的系統可能都無法啟動了。

經過幾番嘗試,林鴻終於成功將MINIX給安裝到了硬碟上。

他迫不及待地重啟計算機,然後選擇MINIX選單,回車。

顯示器上立刻出現了許多檢測資訊,不斷地向上滾動著,這臺計算機的所有硬體都被檢測了一遍,全部都OK之後,最終才進入了一個字元介面。

由於林鴻在此之前就已經看過了那本《作業系統:設計與實現》,所以對Minix的系統命令非常熟悉,他很快就上手了,將所有記住的命令都試驗了一遍。

接著,林鴻在這個作業系統裡面找到了一份詳細的幫助手冊,這是LINUS撰寫的,裡面詳細地列出了他對這個系統所進行了哪些修改。

其中,令林鴻感到驚訝的是,LINUS竟然已經順利完成了終端模擬器的編寫。

也就是說,用這個完全可以和一些伺服器進行連線了。

林鴻立刻動手試了一下,首先填上網路賬號和密碼登入網路,然後再輸入伺服器的SAM協會的BBS伺服器IP地址,連線之後,再輸入伺服器的登入賬號和密碼。

模擬終端上出現了熟悉的命令列介面。

接下來,林鴻按照LINUS所列舉的那些功能一個個試用過去,他發現原本只是用來作為教學用的精簡版系統,功能竟然已經強大如斯,甚至比蘋果計算機前期的幾個版本的系統都要強大。

最讓林鴻動心的功能,是LINUS竟然在裡面集成了一個名為BASH的Shell程式。

這個程式實際上在系統剛啟動的時候就運行了,只不過林鴻並沒有察覺,後來看了文件之後才發現,原來他看到的命令列介面並不是MINIX自帶的那個,而是已經被LINUS成功給替換了。

Shell即外殼程式,這是區別於作業系統核心的一個重要部分,通常的表現形式就是一個字元命令列介面,例如DOS介面也是一個殼。

透過接受使用者輸入的命令,Shell可以呼叫執行相應的應用程式。

另外,Shell也是一種程式設計語言,它可以互動式解釋和執行使用者輸入的命令,或者自動地解釋和執行預先設定好的一連串的命令。作為程式設計語言,它定義了各種變數和引數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。

有了這個Shell,可以說,這個經過LINUS改裝過後的系統,功能已經完全可以媲美DOS系統了,更重要的是,這個作業系統的原始碼是公開的,林鴻可以檢視所有的實現細節,而DOS作業系統則是一個黑匣子,完全不知道底層的執行機制,只能有一些有限的被封裝好的API介面和中斷。

林鴻立刻喜歡上了這個系統,LINUS果然厲害,竟然將一個閹割版的作業系統改造到如此程度!

由於這個系統裡面還沒有類似TELNET這樣的網路程式,也沒有EMAIL郵件客戶端可以用來收發電子郵件,林鴻暫時從MINIX中退了出來,重新選擇了MS-DOS系統進入。

他首先收取了電子郵件,發現LINUS在幾天前就給自己發了一封郵件,詢問是否已經收到了他郵寄的包裹?

林鴻立刻回信,說今天剛剛收到,迫不及待地將其安裝到計算機中,對裡面的功能的強大感到非常的驚歎,他以後也將一起對這個系統進行改造,希望能夠保持聯絡,共享資訊。

末了,林鴻還提起自己已經編寫了一個基於IRC協議的聊天軟體,他會盡快將這個聊天軟體移植到MINIX系統下,這樣,他們就可以及時進行線上聯絡。

郵件傳送出去之後,不到兩分鐘的時間,還沒等林鴻退出郵件系統,就提示有新郵件到達。

林鴻看到郵件標題之後微微一愣,沒想到LINUS今天正好線上。

“嗨,朋友,很高興終於收到你的回信!按照時間推算,這個包裹應該早幾天就到達你這裡,看來它在某個地方耽誤了幾天時間。

你說的那個聊天軟體我很感興趣,非常期待你將它移植到這個系統中來,你知道,這個系統中的軟體,目前還是少了一點,過於單調了。而我則由於忙於修復底層的一些BUG,暫時沒時間關注這些內容。

對了,在這段時間內,我又對這個系統增加了幾個功能,我想你會用到其中的一個軟體,請檢視郵件附件。

你的朋友LINUS.”

林鴻立刻將這封電子郵件中的兩個附件下載下來。

其中一個附件包很大,而另外一個則是文字文件。

林鴻將文字文件開啟,閱讀起來。

“GCC?”

他看到這篇文件,主要是對GCC的一個安裝說明。

“竟然是程式語言編譯器!”

看到這裡的內容,林鴻頓時眼睛一亮。

他正在為這個問題而煩惱,因為之前他在熟悉MINIX作業系統的時候,根本沒有看到可以用來程式設計的軟體,這樣一來,他就無法在裡面進行程式設計開發。

因為作業系統平臺不同,在另外一個平臺上開發的軟體,除非是特別定製模擬,否則根本無法在另外一個作業系統中正常執行。

GCC的全稱是“GNU/C語言編譯器”,這是一套以GPL許可證所發行的自由軟體。在許多類Unix作業系統中都可以看到它的身影,功能非常強大。

LINUS將其進行了修改,使其可以順利移植到MINIX作業系統中,這樣一來,就可以成功的在這個作業系統下直接開發軟體,而不用專門切換到另外的平臺上。

GCC編譯器的移植成功,和BASH程式一樣,有著非常重要的意義。

林鴻對此也覺得非常激動,他立刻按照文件中的說明,將GCC編譯器順利地整合到了原來的MINIX系統中。

他並沒有停止,而是再次重啟切換到DOS平臺下,將自己之前編寫的CQCQ原始碼複製到軟盤中,再重啟進入MINIX系統,從軟盤中將原始碼讀取出來,他要立刻將CQCQ移植到這個平臺上來!

在DOS下,為了方便菲麗絲的使用,他在原來的基礎上增加了一層圖形介面,讓其顯得更加方便操作。

但是在MINIX下,暫時還不支援滑鼠等操作,圖形化介面完全被拋棄了,只剩下了內部的核心程式碼。由於CQCQ的原始碼本身就是用C語言編寫的,所以林鴻的移植過程很順利,針對介面進行重新設計之後,他使用GCC將這個平臺下的程式成功給編譯出來了。

林鴻輸入賬號和密碼,進行登入,結果發現出線了一些由於粗心急促而造成的細微錯誤,進行修正,然後重新編譯。

再次啟動之後,終於一切正常。輸入賬號和密碼,林鴻順利地上線了。