超腦黑客 VIP卷 第219章 重要事情
    全文字無廣告第219章重要事情

    這件事情,雖然無論是律師還是各自的家長都認為因為缺乏先例,再加上他們又是學生創業,就算是被罰,也不會太嚴重,但是sam成員心中還是被蒙上了一層陰影。

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

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

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

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

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

    所以,在午夜十二點之前,他就完成了總共二十多個系統調用,即將當初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操作系統的時候,代碼雖然不是很多,也就一萬兩千行左右,但是這一萬兩千行代碼並不是只在一個文件裡面,而是分佈在多大幾十個文件和上十個目錄當中。

    在編譯系統的時候,編譯器會按照編譯索引文件makefile來按照順序對這些源代碼一個一個地查找,並鏈接起來,然後再統一進行編譯。

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

    當初林鴻一直pkzip那麼一個小軟件的時候,都花費了十分鐘左右的時間。

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

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

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

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

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

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

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

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

    【stone:不懂。】

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

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

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

    【linus:哈哈,謝謝!】

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

    【stone:posix標準?】

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

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

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

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

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

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

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

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

    要實現這些系統調用的功能,必須對底層的基本原理非常瞭解,當然這並不能難倒linus,否則他還談什麼編寫自己的操作系統?

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

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

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

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

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

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

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

    【stone:可以。我把服務器端的安裝文件傳給你。】

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

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

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

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

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

    !@#

    (全文字電子書免費下載)  
本站首頁 | 玄幻小說 | 武俠小說 | 都市小說 | 言情小說 | 收藏本頁