第219章 重要事情
全文字無廣告第219章重要事情
這件事情,雖然無論是律師還是各自的家長都認(rèn)為因為缺乏先例,再加上他們又是學(xué)生創(chuàng)業(yè),就算是被罰,也不會太嚴(yán)重,但是sam成員心中還是被蒙上了一層陰影。
畢竟這是他們第一次遇到這種情況(求魔最新章節(jié)),之前根本沒有想過此類方面的問題。
他們發(fā)現(xiàn),要想真正做好一件事,除了埋頭解決技術(shù)方面的事情,還會碰到其他一些預(yù)想不到的情況(求魔最新章節(jié))。之前這些瑣事都被馬修一個人給處理了,在這些人當(dāng)中,馬修算是對外能力最強(qiáng)的一個。
可是現(xiàn)在,這件事的出現(xiàn),讓他們真正感覺到了校園之外的沖擊。這些事情如果只是安安分分在學(xué)校讀書,公司成為了他們涉足社會的一個媒介,給他們林鴻、亞瑟以及馬修三人的內(nèi)心都造成了比較大的影響,以至于以后他們各自創(chuàng)業(yè)的時候,都會事先考慮自己所做的事情,是否違反了當(dāng)?shù)胤桑心男┦虑樾枰崆白龊脺?zhǔn)備?
林鴻回到自己的房間,將這件事情拋在腦后,繼續(xù)開始完善bash外殼程序的系統(tǒng)調(diào)用功能。
由于已經(jīng)完成了bash的基本框架,實現(xiàn)起系統(tǒng)調(diào)用速度比之前要提升了十倍以上,地基打好了,上面的建筑建起來就快了。
所以,在午夜十二點(diǎn)之前,他就完成了總共二十多個系統(tǒng)調(diào)用,即將當(dāng)初linus移植到minix里面的所有功能都給搞定了。
他登上cqcq,看到linus正好也在線,于是便發(fā)了個消息給他,然后將源代碼直接在線傳給了對方。
【linus:伙計,你的效率真快,移植了bash,以后的編寫工作會要大大加速了!】
【stone:下一步是不是可以將移植過來?這樣我們可以不用再切換到minix的環(huán)境中編譯系統(tǒng)了,直接在linux平臺下編譯。】
【linus:我這兩天本來正打算著手做這件事,但是現(xiàn)在我有一個新的想法。】
【stone:說來聽聽。】
【linus:我覺得我們應(yīng)該另外實現(xiàn)一個文件系統(tǒng),而不是直接使用minix的文件系統(tǒng)。】
在此之前,為了降低編寫代碼的難度,linus從minix中借鑒了很多代碼,其中最為完整的就是文件系統(tǒng)的實現(xiàn)。
【linus:minix的文件系統(tǒng)是專門為微內(nèi)核設(shè)計的,當(dāng)初在設(shè)計的時候也只考慮過教學(xué)用途,目的是為了更好的讓學(xué)生理解,根本無法真正用在大型操作系統(tǒng)上,在性能上有著致命的缺陷,我想你也應(yīng)該發(fā)現(xiàn)了這點(diǎn)。(全文字電子書免費(fèi)下載)】
林鴻對此表示贊同。
minix系統(tǒng)在文件處理方面的效率的確有些慢了,剛開始的時候還感覺不到,但是在他編譯系統(tǒng)的時候,就極其明顯了,文件一多,搜索查找以及讀取文件的效率就變得極為緩慢。在這點(diǎn)上,還比不上dos系統(tǒng)。
minix的文件系統(tǒng)是模仿unix的文件系統(tǒng)而設(shè)計的,其數(shù)據(jù)結(jié)構(gòu)整體上和unix文件系統(tǒng)大致相同,大致也可分為引導(dǎo)塊、超塊、柱面、節(jié)點(diǎn)等。
但是作者安德魯這個系統(tǒng)本身是用來作為教學(xué)用的,所以在設(shè)計的時候,就考慮到要讓學(xué)生能夠比較容易理解,將其中的一些復(fù)雜實現(xiàn)就省略了,只保留了其骨架,進(jìn)行適當(dāng)修改之后,能夠讓其正常運(yùn)轉(zhuǎn),并沒有經(jīng)過大量文件存儲方面的性能測試。
當(dāng)磁盤中文件比較少的時候,根本感覺不到其中的差異。
但是,linus在編寫linux操作系統(tǒng)的時候,代碼雖然不是很多,也就一萬兩千行左右,但是這一萬兩千行代碼并不是只在一個文件里面,而是分布在多大幾十個文件和上十個目錄當(dāng)中。
在編譯系統(tǒng)的時候,編譯器會按照編譯索引文件makefile來按照順序?qū)@些源代碼一個一個地查找,并鏈接起來,然后再統(tǒng)一進(jìn)行編譯。
按理說來,只有這么點(diǎn)文件,這個過程應(yīng)該是非常快的,但是事實證明求魔最新章節(jié),要想將linux的v0.00版本編譯出來,都至少要花費(fèi)四十分鐘的時間。
當(dāng)初林鴻一直pkzip那么一個小軟件的時候,都花費(fèi)了十分鐘左右的時間。
這樣的效率實在太低了,要是在unix或者dos下,所花費(fèi)的時間可能只有五分之一甚至十分之一。
linus于是便開始尋找到底哪里出現(xiàn)問題,為什么會導(dǎo)致編譯速度如此緩慢。
最終他發(fā)現(xiàn),原來這是minix文件系統(tǒng)設(shè)計方面的原因,他覺得有必要對這點(diǎn)進(jìn)行改變了,他可不想將這樣一個文件系統(tǒng)移植到linux里面,那簡直就像是在美餐一頓的時候吃了一只蒼蠅那么惡心。
身為技術(shù)宅linus是絕對不允許這樣的情況(求魔最新章節(jié))出現(xiàn)在linux中的。
林鴻也覺得這個問題的確很重要,文件系統(tǒng)是操作系統(tǒng)的基石,如果地基不打好,會直接影響到上層建筑的高度。
【linus:我最近這段時間都在想這個問題,接下來會正是著手開始設(shè)計了。不過在此之前,我會先解決一件更為重要的事情。】
【stone:更為重要的事情?】
【linus:每一個男人都要經(jīng)歷過的事情啊,你懂的,哈哈!】
【stone:不懂。】
【linus:……差點(diǎn)忘記你的年齡似乎比我要小不少了。我要去追求一位心儀的女孩,這該懂了吧?】
林鴻看到linus的話,頓時有些汗顏。他剛剛的確沒有反應(yīng)過來,這也不能怪他,剛剛他們還在討論技術(shù)方面的問題,突然之間就跳躍到追求女孩的話題上,作為一個世紀(jì)年齡才十四歲的中國籍技術(shù)宅來說,能想到這個問題才怪。
【stone:原來如此。那預(yù)祝你馬到成功,早日抱得美人歸。】
【linus:哈哈,謝謝!】
【linus:對了,之前忘記跟你說了,你移植bash的時候最好是按照posix的標(biāo)準(zhǔn)來,這樣可以讓我們的系統(tǒng)獲得更大的兼容性,以后那些unix的用戶轉(zhuǎn)移到我們的linux中來也不會有任何障礙。】
【stone:posix標(biāo)準(zhǔn)?】
【linus:這是ieee組織為要在各種unix操作系統(tǒng)上運(yùn)行的軟件而定義api的一系列互相關(guān)聯(lián)的標(biāo)準(zhǔn)的總稱,最初起源于1985年的一個項目……】
接著,linus開始給林鴻詳細(xì)介紹了一下這個標(biāo)準(zhǔn)的有關(guān)內(nèi)容。
實際上,linus之前也對這個標(biāo)準(zhǔn)一點(diǎn)都不清楚,只是聽學(xué)校的老師曾經(jīng)說起過,因為這個標(biāo)準(zhǔn)是unix下的標(biāo)準(zhǔn),統(tǒng)一規(guī)定了所有系統(tǒng)命令的實現(xiàn)細(xì)節(jié)。
于是,剛開始的時候,他便在minix的郵件討論組中發(fā)布了一個求助帖子,尋求有關(guān)posix的相關(guān)標(biāo)準(zhǔn)下載地址,可是這個帖子并沒有獲得幾個人的關(guān)注和回應(yīng),他沒有找到posix的相關(guān)資料。
于是,他只好退而求其次,找來一份sun服務(wù)器的unix使用手冊,按照上面的命令調(diào)用一個個對這些系統(tǒng)命令進(jìn)行實現(xiàn)。
但是,這份unix手冊上并沒有詳細(xì)說明這些命令所實現(xiàn)的內(nèi)部細(xì)節(jié),只描寫了結(jié)果。
例如ls命令,手冊上只描寫了這個命令的結(jié)果,以及可以加上哪些參數(shù)實現(xiàn),如“l(fā)s-all”可以將當(dāng)前目錄下所有的文件,包括隱藏文件在內(nèi),都顯示出來。
具體的實現(xiàn)方式,則是linus按照文件系統(tǒng)中的原理自己想出來的,例如首先要找到當(dāng)前目錄的引導(dǎo)區(qū),然后再分析里面的文件節(jié)點(diǎn),從這些節(jié)點(diǎn)中讀出每一個文件的名稱,大小以及創(chuàng)建日期等信息,然后再將其顯示在顯示器屏幕上。
要實現(xiàn)這些系統(tǒng)調(diào)用的功能,必須對底層的基本原理非常了解,當(dāng)然這并不能難倒linus,否則他還談什么編寫自己的操作系統(tǒng)?
他按照unix手冊和《操作系統(tǒng):設(shè)計與實現(xiàn)》中所提及到的資料,總共實現(xiàn)了二十來個系統(tǒng)調(diào)用,這正是林鴻在linux中所實現(xiàn)的那些。
【linus:前一陣子才有一個朋友給我寄了幾卷厚厚的posix的手冊,不過既然現(xiàn)在你已經(jīng)開始移植bash了,接下來的工作你就繼續(xù)做著吧。】
【stone:從哪里可以找到posix的手冊?】
【linus:這點(diǎn)我也不太清楚。不過,你身在美國,應(yīng)該不難,去圖書商城或者圖書館看看,應(yīng)該可以找到。我這幾本posix手冊的出版社是……】
接著,linus將出版社和地址方面的信息全部提供給了林鴻,讓他如果實在找不到,就按照這些信息去找,直接向出版社郵購也行。
【linus:還有,我一個朋友手里正好有基于蘋果系統(tǒng)的服務(wù)器,上次我讓他試用了一下cqcq軟件,他愿意免費(fèi)將服務(wù)器端進(jìn)行托管,你覺得怎么樣?】
linus說的事情,是上次林鴻提到自己想要將cqcq的服務(wù)器端托管到另外的地方,于是linus就留心了一下。
【stone:可以。我把服務(wù)器端的安裝文件傳給你。】
隨著訪問用戶的增多,sam官方的那個服務(wù)器的性能有點(diǎn)跟不上了,再加上最近又出現(xiàn)了德州儀器公司的那檔子事情,林鴻最終同意將服務(wù)器端轉(zhuǎn)走。
原本林鴻還打算將cqcq發(fā)布出去,讓更多的人使用,并且繼續(xù)改進(jìn),可是上次和凱文聊過一次之后,他的這個計劃便擱淺了。
他決定重新設(shè)計cqcq的結(jié)構(gòu),增加其安全性,然后再發(fā)布出去。
目前這個版本,暫時就用來內(nèi)部幾個人溝通吧,等將服務(wù)器端移走之后,林鴻便決定推薦這個軟件sam其他成員使用。
和linus結(jié)束聊天之后,林鴻便開始正式著手重新設(shè)計cqcq軟件。
!@#
(全文字電子書免費(fèi)下載)
,