林鴻在minix平臺上重新編譯的cqcq軟件版本沒有圖形化界面,相當於是專門給有一定技術基礎的用戶而準備的,要想查詢一些信息,必須使用命令進行查詢。
他使用命令查看了一下在線列表,發現此刻竟然有三人在線,一個是他自己,另外一個是菲麗絲,還有一個cq號爲10002的用戶,暱稱爲露西。
看來,這個露西應該就是菲麗絲的姐妹了。
【菲麗絲,改進後的版本感覺怎麼樣?】
選擇與菲麗絲通話,給她發了一條信息。
【石頭大叔,你上線啦?新版本比之前的要好太多了,太方便了!我的好姐妹露西也在用,並且我都沒怎麼教她,很快就上手了。】
【是嗎?那太好了。另外,我已經在裡面加入了文件共享功能,你可以試用一下。】
【看到了,我剛剛還給露西傳了一個文件呢!我都用了這個軟件這麼久了,有什麼變化,立刻就會知道。還有一個聊天室功能對吧?要不我開一個房間,我們三個人一起在裡面聊天吧?】
【我現在有點事情,下次吧。你可以多找幾個朋友來用用,如果他們有什麼建議,你幫我都蒐集起來,不管好的壞的都可以,回頭一起發給我。】
【這個完全沒有問題,現在的這個版本很容易使用,我相信她們會很願意加入的!】
【那我先下了,還有點事情。】
【嗯!明天我會派人去接你,可別將這事給忘記了!】
看到菲麗絲的反饋,林鴻心情也非常高興。
自己做的東西,能夠得到別人的認可,這種感覺的確不錯。黑客們不斷地探索着未知的世界,然後免費公佈自己的成果,除了本身興趣的內在動力,有很大因素就在於想得到別人的認可。
從某種角度來看,這也是一種虛榮心。只不過技術宅們比較含蓄,他們以這種獨特的方式來滿足自己內心的虛榮心。可能連他們自己都沒有意識到這一點。
由於minix下還是沒有自己的郵件客戶端。林鴻並不能直接和linus進行聯繫,不得不將編寫好的源代碼和程序一起打包。拷貝到軟盤當中。然後再切換到ms-dos系統下。使用email將cqcq的軟件包一起發給了linus。
這樣,他們聯繫起來就可以更方便了。
接着,林鴻便重新登錄到cqcq上掛着,一邊研究着minix的源代碼,一邊時不時地刷新一下在線列表。
菲麗絲髮消息過來詢問怎麼又上了,邀請他一起加入聊天,林鴻只好進入菲麗絲創建的聊天室中聊了一會兒。
可以看得出來,那個露西的性格比菲麗絲還要更加活潑,一直旁敲側推地詢問林鴻的一些信息。問題顯得非常露骨,對方完全將林鴻當做是菲麗絲的男朋友在問話,搞得林鴻難以招架,只能敷衍說着一些模棱兩可的話。
再次看了一下在線人數之後,他的眼神不由一亮,因爲看到線上突然出現了一個第四個在線成員,名爲linus。
終於上了!
林鴻連忙和其他兩個女孩說了一聲,從聊天室中退了出來,然後主動和lus打了一聲招呼。
【stone:你好,linus,我是stone。】
【linus:你好,呵呵!你真是給了我一個驚喜,沒想到我剛剛纔將gcc發給你,你轉身就在裡面開發了一個即時通信程序!】
【stone:代碼都是現成的,你知道,這並不是很難。】
【linus:在minix下直接和你對話的感覺真不錯!stone,你給我的驚喜可不僅僅是這個。】
【linus:我還記得,在不久之前,你還是一個對計算機完全沒有概念的火腿,而現在,你所掌握的技術和知識,已經和我差不多了。】
【stone:我要學習的東西還有很多。】
【linus:你還是那麼謙虛!stone,這個cqcq軟件,是不是宣佈你願意正式加入這個操作系統項目?】
【linus:真是個不錯的注意!夥計,我現在有一個新的計劃,你知道,minix版權本身並不是完全開源的,作者對其還有所保留,所以我想重新重構這個操作系統的內核。】
【linus:你聽說過gnu項目嗎?】
【stone:gnu?是不是gcc誕生的操作環境?只在書籍上看到過,似乎是一個自由軟件項目,但是具體情況並不是很瞭解。】
【linus: gnu是一個類unix的操作系統,由gnu計劃推動,目標在於建立一個完全相容於unix的自由軟件環境,也就是完全自由的操作系統。這個計劃,最早是由理查德*斯托曼在1983年啓動的,它是自由軟件基金會最早致力的目標。】
【linus:雖然這些年來gnu雖然發展得不錯,在上面出現了很多非常優秀的軟件,但是它的重要組件,也就是操作系統的內核hurd卻因爲過於複雜一直緊張緩慢。】
【linus:我上週去參加了一個自由軟件提倡者的演講,覺得他們所提倡的gpl協議非常有意思,我的一個朋友也強烈建議我加入gnu自由軟件的陣營……】
接着,linus詳細給林鴻解說了一下開源協議gpl(gnu通用公共許可證)的詳細內容,並且諮詢林鴻的意見。
【linus:是的。雖然minix也非常不錯,但是這隻能免費用於教育領域,你知道,當初我爲了購買這套系統,可是花了不少錢和時間。】
linus至今還對那個經歷耿耿於懷,他可是等了至少一個月的時間,花費了一百多美元才最終將minix安裝在自己的計算機上。
而市場上其他系統。都是商業系統,要想使用。必須付出不小的費用進行購買。
爲全世界所有的技術愛好者編寫一個完全可以免費使用。但是功能又非常強大的操作系統,這真是一個野心勃勃的想法。不過這非常酷。不是嗎?
林鴻對此自然能是表示強烈支持。
於是,他和linus在cqcq軟件上討論了一下重新設計新的操作系統的一些細節。
在這方面,linus比林鴻要更有經驗,因爲他在這一塊已經研究了很久了,再加上有minix的參考經驗,所以基本上都是他在給林鴻講述基本概念。
minix的內核採用的是微內核結構設計。
微內核結構由一個非常簡單的硬件抽象層和一組比較關鍵的指令或系統調用組成。這些指令,僅僅包括了創建一個系統必需的幾個部分,如線程管理,地址空間和進程間通信等。
簡單的說。就是內核非常小。這種設計思想的目的,是爲了將系統服務和系統的基本操作完全分離出來,將他們之間的關係淡化到最低程度。
例如文件系統在微內核中也是作爲一個進程,崩潰了也沒有關係,再像其他軟件一樣重啓一下就好了。
minix的作者塔能鮑姆本身就是一個操作系統設計方面的教授,在設計這個系統的時候就吸收了當時最先進的設計思想,微內核就是一種比較先進的內核結構。
但是linus似乎並不喜歡這個設計,他認爲把很多系統結構和操作全部作爲組建存在於內核之外,會導致安全性方面的漏洞,很容易受到攻擊。另外,微內核內部過於簡單,其進程管理和中斷管理的能力也非常有限,相對於minix這樣簡單的玩具來說,的確可以滿足要求,但是如果想要實現更加複雜的系統功能,就有點有心無力的感覺。
微內核結構,更適合單片機系統,這樣的系統甚至連文件管理系統都不需要,而且已經配置比較低,內核自然越小越好。
與微內核相對應的結構,就是宏內核。
ms-dos使用的就是宏內核架構,這個架構分爲內核空間和用戶空間。
內核將硬件結構封裝起來,形成比較高級的虛擬接口,供用戶空間的程序進行調用。
【linus:我比較傾向於使用宏內核架構,這樣操作系統中的程序代碼都是高度緊密結合在一起的,雖然可能會出現某個模塊有Bug而導致整個系統崩潰,但是如果經過精心設計和改善,這樣的問題是可以完全避免的。】
【linus:更重要的是,這樣的內核會讓操作系統的代碼在硬件的運行效率更高,安全性也更強。】
林鴻聽他這麼一說,也覺得有一定的道理。
其實在他看來, 既然已經有案例證明兩種架構都是可行的,使用哪種內核都無所謂,關鍵看怎麼去實現它。
因爲剛開始的時候,這個項目是從minix開始啓動的,可能linus是想要徹底拜託minix籠罩的陰影,想要從根本架構上將重新設計的系統和minix區分開來。
【stone:那麼,給這個系統取一個名字吧。】
【linus:我早就想好了,freax,來自英文單詞freak,有“異想天開”的意思,你覺得怎麼樣?】
【stone:聽上去不錯。末尾改爲x是像minix那樣沿襲unix的習慣?】
【linus:是啊,x的發音聽起來更酷,不是嗎?】
【stone:要不,乾脆叫linux吧,就是你的名字的後一位字母改爲x。我覺得這個名字比freax更好一點。】
【linus:這樣不好吧,太以個人爲中心了。】
【stone:我覺得這不錯啊,這只是一個代號。再說,這個項目本來就是你發起的,就用這個吧,“利納克斯”,讀起來也挺順口的。】
【linus: ok,聽你的,就叫linux!】(。)