第119部分(第2/4 頁)
起來就快了。
所以,在午夜十二點之前,他就完成了總共二十多個系統呼叫,即將當初linus移植到minix裡面的所有功能都給搞定了。
他登上cqcq,看到linus正好也線上,於是便發了個訊息給他,然後將原始碼直接線上傳給了對方。
【linus:夥計,你的效率真快,移植了bash,以後的編寫工作會要大大加速了!】
【stone:下一步是不是可以將gcc移植過來?這樣我們可以不用再切換到minix的環境中編譯系統了,直接在linux平臺下編譯。】
【linus:我這兩天本來正打算著手做這件事,但是現在我有一個新的想法。】
【stone:說來聽聽。】
【linus:我覺得我們應該另外實現一個檔案系統,而不是直接使用minix的檔案系統。】
在此之前,為了降低編寫程式碼的難度,linus從minix中借鑑了很多程式碼,其中最為完整的就是檔案系統的實現。
【linus:minix的檔案系統是專門為微核心設計的,當初在設計的時候也只考慮過教學用途,目的是為了更好的讓學生理解,根本無法真正用在大型作業系統上,在效能上有著致命的缺陷,我想你也應該發現了這點。】
林鴻對此表示贊同。
minix系統在檔案處理方面的效率的確有些慢了,剛開始的時候還感覺不到,但是在他編譯系統的時候,就極其明顯了,檔案一多,搜尋查詢以及讀取檔案的效率就變得極為緩慢。在這點上,還比不上dos系統。
minix的檔案系統是模仿unix的檔案系統而設計的,其資料結構整體上和unix檔案系統大致相同,大致也可分為引導塊、超塊、柱面、節點等。
但是作者安德魯這個系統本身是用來作為教學用的,所以在設計的時候,就考慮到要讓學生能夠比較容易理解,將其中的一些複雜實現就省略了,只保留了其骨架,進行適當修改之後,能夠讓其正常運轉,並沒有經過大量檔案儲存方面的效能測試。
當磁碟中檔案比較少的時候,根本感覺不到其中的差異。
但是,linus在編寫linux作業系統的時候,程式碼雖然不是很多,也就一萬兩千行左右,但是這一萬兩千行程式碼並不是只在一個檔案裡面,而是分佈在多大幾十個檔案和上十個目錄當中。…;在編譯系統的時候,編譯器會按照編譯索引檔案maefile來按照順序對這些原始碼一個一個地查詢,並連結起來,然後再統一進行編譯。
按理說來,只有這麼點檔案,這個過程應該是非常快的,但是事實證明,要想將linux的0。00版本編譯出來,都至少要花費四十分鐘的時間。
當初林鴻一直pzip那麼一個小軟體的時候,都花費了十分鐘左右的時間。
這樣的效率實在太低了,要是在unix或者dos下,所花費的時間可能只有五分之一甚至十分之一。
linus於是便開始尋找到底哪裡出現問題,為什麼會導致編譯速度如此緩慢。
最終他發現,原來這是minix檔案系統設計方面的原因,他覺得有必要對這點進行改變了,他可不想將這樣一個檔案系統移植到linux裡面,那簡直就像是在美餐一頓的時候吃了一隻蒼蠅那麼噁心。
身為技術宅linus是絕對不允許這樣的情況出現在linux中的。
林鴻也覺得這個問題的確很重要,檔案系統是作業系統的基石,如果地基不打好,會直接影響到上層建築的高度。
【linus:我最近這段時間都在想這個問題,接下來會正是著手開始設計了。不過在此之前,我會先解決一件更為重要的事情。】
【stone:更為重要的事情?】
【linus:每一個男人都要經歷過的事情啊,你懂的,哈哈!】
【stone:不懂。】
【linus:……差點忘記你的年齡似乎比我要小不少了。我要去追求一位心儀的女孩,這該懂了吧?】
林鴻看到linus的話,頓時有些汗顏。他剛剛的確沒有反應過來,這也不能怪他,剛剛他們還在討論技術方面的問題,突然之間就跳躍到追求女孩的話題上,作為一個世紀年齡才十四歲的中國籍技術宅來說,能想到這個問題才怪。
【stone:原來如此。那預祝你馬到成功
本章未完,點選下一頁繼續。