簡體版 繁體版 第219章 重要事情

第219章 重要事情


紮根基層的大學生村官 冷君悄悄拐回家 冷麵郡王:甜寵小懶妃 異世逆凰 被審判的女醫生 變身異界行 妃我莫屬:這個王爺我要了 暴君有旨,廢后入宮 穿越柯南之最好的友誼 大神,鮫人來襲

第219章 重要事情

這件事情,雖然無論是律師環是各自的家長都認為因為缺乏先例,

再加上他們又是學生創業,就算是被罰,也不會太嚴重,但是sam成員心中還是被蒙上了一層陰影。

畢竟這是他們第一次遇到這種情況,之前根本沒有想過此類方面的問題。

他們發現,要想真正做好一件事,除了埋頭解決技術方面的事情,還會碰到其他一些預想不到的情況。之前這些瑣事都被馬修一個人給處理了,在這些人當中,馬修算是對外能力最強的一個。

可是現在,這件事的出現,讓他們真正感覺到了校園之外的衝擊。

這些事情如果只是安安分分在學校讀書,是絕對碰不到的。sam公司成為了他們涉足社會的一個媒介,給他們林鴻、亞瑟以及馬修三人的內心都造成了比較大的影響,以至於以後他們各自創業的時候,都會事先考慮自己所做的事情,是否違反了當地法律,有哪些事情需要提前做好準備?

林鴻回到自己的房間,將這件事情拋在腦後,繼續開始完善bash外殼程式的系統呼叫功能。

由於已經完成了bash的基本框架,實現起系統呼叫速度比之前要提升了十倍以上,地基打好了,上面的建築建起來就快了。

所以,在午夜十二點之前,他就完成了總共二十多個系統呼叫,即將當初linus移植到凵四N四x裡面的所有功能都給搞定了。

他登上cqcq,看到linus

正好也線上,於是便發了個訊息給他,然後將原始碼直接線上傳給了對方。

【linus:夥計,你的效率真快,移植了bash,以後的編寫工作會要大大加速了!】

【stone:下一步是不是可以將gcc移植過來?這糕我們可以不用再切換到凵四N的環境中編澤系統了,直接在linux平臺下編譯。】

【linus:我這兩天本來正打算著手做這件事,但是現在我有一個新的想法。】

【stone:說來聽聽。】

【linus我覺得我們應該另外實現一個檔案系統,而不是直接使用minix的檔案系統。】

在此之前,為了降低編寫程式碼的難度,linus從minix中借鑑了很多程式碼,其中最為完整的就是檔案系統的實現。

【linus:minix的檔案系統是專門為微核心設計的,當初在設計的時候也只考慮過教學用途,目的是為了更好的讓學生理解,根本無法真正用在大型作業系統上,在效能上有著致命的缺陷,我想你也應該發現了這點。】

林鴻對此表示贊同。

minix系統在檔案處理方面的效率的確有些慢了,剛開始的時候還感覺不到,但是在他編繹系統的時候,就極其明顯了,檔案一多,搜尋查詢以及讀取檔案的效率就變得極為緩慢。在這點上,還比不上dos

系統。

minix的檔案系統是模仿unix的檔案系統而設計的,其資料結構整體上和U毗檔案系統大致相同,大致也可分為引導塊、超塊、柱面、節點等。

但是作者安德魯這個系統本身是用來作為教學用的,所以在設計的時候,就考慮到要讓學生能夠比較容易理解,將其中的一些複雜實現就省略了,只保留了其骨架,進行適當修改之後,能夠讓其正常運轉,並沒有經過大量檔案儲存方面的效能測試。

當磁碟中檔案比較少的時候,根本感覺不到其中的差異。

但是,linus在編寫linux作業系統的時候,程式碼雖然不是很多,也就一萬兩千行左右,但是這一萬兩千行程式碼並不是只在一個檔案裡面,而是分佈在多大幾十個檔案和上十個目錄當中。

在編譯系統的時候,編澤器會按照編澤索引檔案makefiee來按照順序對這些原始碼一個一個地查詢,並連結起來,然後再統二進行編繹。

按理說來,只有這麼點檔案,這個過程應該是非常快的,但是事實證明,要想將linux的vooo版本編譯出來,都至少要huā費四十分鐘的時間。

當初林鴻一直pkip那麼一午小軟體的時候,都huā費了十分鐘左右的時間。

這樣的效率實在太低了,要是在unix或者dos下,所huā費的時間可能只有五分之一甚至十分之一。

linus於是便開始尋找到底哪裡出現問題,為什麼會導致編繹速度如此緩慢。

最終他發現,原來這是minix檔案系統設計方面的原因,他覺得有必要對這點進行改變了,他可不想將這樣一個檔案系統移植到linux裡面,那簡直就像是在美餐一頓的時候吃了一隻蒼蠅那麼噁心。

身為技術宅linus是絕對不允許這樣的情況出現在linux中的。

林鴻也覺得這個問題的確很重要,檔案系統是作業系統的基石,如果地基不打好,會直接影響到上層建築的高度。

【inus:我最近這段時間都在想這個問題,接下來會正是著手開始設計了。不過在此之前,我會先解決一件更為重要的事情。】

【stone:更為重要的事情?】

【linus:每一個男人都要經歷過的事情啊,你懂的,哈哈!】

【stone:不懂。】

【linus:差點忘記稱的年齡似乎比我要小不少了。我要去追求一位心儀的女孩,這該懂了吧?】

林鴻看到linus的話,頓時有些汗顏。他剛剛的確沒有反應過來這也不能怪他,剛剛他們還在討論技術方面的問題,突然之間就跳躍到追求女孩的話題上,作為一個世紀年齡才十四歲的〖中〗國籍技術宅來說,能想到這個問題才怪。

【stone:鼻來如此。那預祝你馬到成功,早日抱得美人歸。】

【linus:哈哈,謝謝!】

【linus:對了,之前忘記跟你說了你移植bash的時候最好是按照posix的標準來,這樣可以讓我們的系統獲得更大的相容性,以後那些unix的使用者轉移到我們的linux中來也不會有任何障礙。】

【stone:posix標準?】

【linus:這是ieee組織為要在各種unix作業系統上執行的軟體而定義api的一系列互相關聯的標準的總稱,最初起源於1985年的一個專案……………,】

接著,linus開始給林鴻詳細介紹了一下這個標準的有關內容。

實際上,linus之前也對這個標準一點都不清楚,只是聽學校的老師曾經說起過,因為這個標準是。四x下的標準,統一規定了所有系統命令的實現細節。

於是,剛開始的時候他便在minix的郵件討論組中釋出了一個求助帖子,尋求有關posix的相關標準下載地址,可是這個帖子並沒有獲得幾個人的關注和迴應,他沒有找到posix的相關資料。

於是,他只好退而求其次,找來一份sub伺服器的unix使用手冊按照上面的命令呼叫一個個對這些系統命令進行實現。

但是這份unix手冊上並沒有詳細說明這些命令所實現的內部細節,只描寫了結果。

例如ls命令,手冊上只描寫了這個命令的結果,以及可以加上哪些引數實現,如“ls-all”可以將當前目錄下所有的檔案,包括隱藏檔案在內,都顯示出來。

具體的實現方式,則是linus按照檔案系統中的原理自己想出來的例如首先要找到當前目錄的引導區,然後再分析裡面的檔案節點,從這些節點中讀出每一個檔案的名稱,大小以及建立日期等資訊,然後再將其顯示在顯示器螢幕上。

要實現這些系統呼叫的功能,必須對底層的基本原理非常瞭解,當然這並不能難倒linus

否則他還談什麼編寫自己的作業系統?

他按照unix手冊和《作業系統:設計與實現》中所提及到的資料,總共實現了二十來個系統呼叫,這正是林鴻在linux中所實現的那些。

【linus:前一陣子才有一個朋友給我寄了幾卷厚厚的posix的手冊,不過既然現在你已經開始移植bash了,接下來的工作你就繼續做著吧。】

【stone:從哪裡可以找到posix的手冊?】

【linus:這點我也不太清楚。不過你身在美國,應該不難去圖書商城或者圖書館看看,應該可以找到。我這幾本posx手冊的出版社是………】

接著,linus將出版社和地址方面的資訊全部提供給了林鴻,讓他如果實在找不到,就按照這些資訊去找,直接向出版社郵購也行。

【linus:還有,我一個朋友手裡正好有基於蘋果系統的伺服器,上次我讓他試用了一下cqcq軟體,他願意免費將伺服器端進行託管,你覺得怎麼樣?】

linus說的事情,是上次林鴻提到自己想要將cqcq的伺服器端託管到另外的地方,於是linus就留心了一下。

【wtone:可以。我把伺服器端的安裝檔案傳給你。】

隨著訪問使用者的增多,sam官方的那個伺服器的效能有點跟不上了,再加上最近又出現了德州儀器公司的那檔子事情,林鴻最終同意將伺服器端轉走。

原本林鴻還打算將cqcq釋出出去,讓更多的人使用,並且繼續改進,可是上次和凱文聊過一次之後,他的這個計劃便擱淺了。

他決定重新設計cqcq的結構,增加其安全性,然後再發布出去。

目前這個版本,暫時就用來內部幾個人溝通吧,等將伺服器端移走之後,林鴻便決定推薦這個軟體sam其他成員使用。

和linus結束聊天之後,林鴻便開始正式著手重新設計cqcq軟體。