作者:陳海如 Linux的蓬勃發展,是世界上無數知名和不知名的人為了一個共同的理想奮斗不息的結果。而在這些不計其數的、令人尊敬的人中,有一個地位特別特殊。在此,暫且將其稱“Linux的守護者”,因為他的工作就是維護Linux內核。 作為一個自由軟件的愛好者,成為Linux內核的守護者,是一件夢寐以求的事。Marcelo Tosatti是巴西Linux發行商Conectiva的一個開發人員。他是目前“穩定”的Linux內核2.4版本的維護者。他的前任是Alan Cox,Linux社區裡一個赫赫有名的人物。作為Linux的用戶,當我們在享受強大的Linux給我們帶來無窮樂趣的時候,不應該忘記這些守護者。那麼作為一個守護者,一個在很多人看來很神秘的、可望而不可及的的人,其真實的一面又是什麼呢? Tosatti向我們講述了自己每天的日常工作和其它一些大家關心的事。下面就讓我們來和這位Linux內核的守護者零距離接觸。 問:你覺得做一個程序員和做一個內核的維護人員,哪一個難度更大一些? 答:當然是做一個程序員更容易一些。因為以前我做程序員,一般是由於我想去做,或者說是我必須去做,我只需在內核的某一個領域裡工作。而現在,我收到的郵件有的是關於VM(虛擬內存)的,有的是ACPI的,還有的是關於驅動程序的等等。這樣的事情太多太多。所以,我幾乎沒有自己的想法,因為我要面對太多不同的東西。這的確是一件非常困難的工作。 問:你覺得你現在的工作和九個月前有什麼不同? 答:我覺得壓力小多了。剛開始,我不習慣各種采訪及見面什麼的,而現在我已經習慣了。 問:你現在還會騰出時間為其它的項目工作嗎? 答:我想,可是我不能,因為我不能分心。我需要系統地完成許多單調的工作,雖然這樣會使人有些乏味,但是卻非常有效。 問:現在是不是和開發Linux 2.5內核的感覺不太一樣? 答:當然,開發工作更具有吸引力。 問:你為什麼想到要擔當維護內核這個角色呢? 答:我不知道,也許是想有一些新的體驗,想嘗試一些新的事物。 有一天我收到了Linus的電子郵件,當時我覺得很詫異。這是一封Linus發給Alan的信,Linus對Alan說:“你不想維護內核了,那麼就請你給我推薦一個人吧。”Alan說:“Marcelo或者Andrew Morton吧。”Linus說:“可以。”於是他們給我發了信。我同意了,就這麼簡單。 問:當時你意識到自己要做很多工作嗎? 答:在給Linus回郵件的時候嗎?沒有。現在我發現的確要做很多工作,不過我認為這很值得。 問:Alan Cox擔任內核維護工作很多年。你認為你能做很長時間嗎? 答:不,我不想做很長時間。我不知道Linus是否會繼續讓我維護2.5版,我想他大概會的。不過,我只願意維護到2.6版。然後就去做一些其它的開發工作。 問:這項工作最大的挑戰是什麼? 答:做出正確的決定。這的確非常困難。我的意思是說,有的問題看起來並不是非常明顯。有時候你發現了一個錯誤,並且你把這個錯誤修復了,但修復的過程中有時又會導致很多其它的問題,所以你必須非常小心。 因為維護的是一個穩定的內核,所以你必須很有責任心。把各種代碼加進內核是一件很容易的事情,但是當想到有無數人在為之工作,還有無數人在使用Linux,這時我就會意識到我必須要非常仔細。我認為,這就是挑戰,至少對我來說是這樣的。 問:現在這個內核的主要問題是什麼? 答:在高端機器上運行時,VM會有一些問題。此外,IDE也有問題,有些芯片組會破壞數據。這是我非常擔心的。所以IDE和VM是這個版本最大的問題。 問:你是否認為內核的不斷變大,換句話說就是內核的膨脹將成為一個問題? 答:從某種意義說,是的,不過不是大問題。如果你的驅動程序少一些,那就好了,而實際上驅動程序一般都很多。你有一個核心,並且還要有驅動程序,所以如果僅僅是驅動程序膨脹了,那問題不大。我們所要做的就是要保證核心部分不膨脹。 驅動程序的數量肯定會不斷增多,這是一個問題。因為,比如當你改變了API,那麼你就必須要改變所有的驅動程序。我們要處理所有的驅動程序,因為我們面對的是數量眾多的硬件。 問:你認為在什麼方面的研究最讓你感到自豪? 答:VM性能方面的研究,以及VM和處理器方面的研究。 問:如果讓你繼續搞研究開發,你還會從事VM領域嗎? 答:不會了。因為我已經在該領域工作了很長時間,所以我想換一換其它領域。如果我有時間的話,我會做一些SCSI子系統和一些高端、高可用性方面的研究。不過我想我可能不會有時間的。 問:在Linux世界裡,會有很多潛在的人身攻擊。你是如何應對這種情況的? 答:我盡量從技術方面去考慮問題,我認為這很重要。實際上如果我們說話不注意方式,就非常容易引起爭吵。比如我一般會說:“我認為你說得不是很對。”而不會說:“你這個笨蛋。”不過我認為這對我來說不是什麼大問題,我只要注意使用適當的詞語並且對人友善就可以了。 問:實際上一般都是一些技術問題,你認為怎麼會有沖突呢? 答:因為從事這行的人一般都比較自負。 問:你認為現在Linux面臨的最大機遇是什麼? 答:我們現在已經進入了許多的市場領域。嵌入領域是一個很大的市場,並且我認為很多人還並未真正意識到這個市場有多大。事實上,你的相機裡裝的就很有可能是Linux操作系統,它真的是無處不在。所以這是一個非常大的市場。而且就我看來,這也是一個很大的挑戰,因為滿足各種需求是一件很復雜,也是很困難的事。 企業應用也是一個大市場,對我們來說也是一個很好的機會。Linux正在深入到企業應用中,不過在桌面領域,Linux的發展還是比較緩慢。 問:有些反對Linux的人認為,Linux漏洞百出,補丁不斷。你怎麼看待這種觀點? 答:我不贊同這種觀點。事實上要看你要修正的是什麼,我們一般來說發的都是一些小補丁。Linux補丁程序發得頻繁,這正說明了我們在不斷努力工作,因為沒有任何一個軟件是十全十美的,總會有錯誤發生,發布補丁正是說明了我們總是在不停地完善。如果微軟也能像我們一樣,我想他們的更新頻率會更高。因為他們的軟件要比我們的大得多。所以我認為,這些反Linux的論調純屬無稽之談。 問:Red Hat、SuSE和其它一些發行商已經開始向企業發行一些服務器版本,這些版本很少更新,並且更易於控制。這種做法你怎麼看? 答:我覺得這很有必要,因為企業並不希望有太多的變化,他們不喜歡頻繁地用補丁來更新自己的系統,所以發行一些相對穩定的版本還是很有必要。 問:你原來的公司Conectiva和其它三個Linux發行商最近聯合起來,將其所發行的Linux改為UnitedLinux。而MankrakeSoft則對這一舉動持批評態度,認為這並不是出於技術上的考慮,而是為了鞏固自己的市場。你的看法是什麼? 答:這是一個商業問題,這的確是一個純粹的商業問題。不過這種方式還是不錯,因為它減少了大的商業發行版的數量。 很顯然,發行版數量過多的話,認證就是一個大問題。對於ISV來說,要證明他們的軟件可以在所有的發行版上運行,所消耗的資金將非常可觀。比如像Oracle就必須要測試他們的軟件可以在所有的版本上運行。所以,統一可以使得ISV變得更加簡單。 問:MandrakeSoft暗示發行商和ISV只需證明符合LSB(Linux Standards Base)即可,而不需要對UnitedLinux、Red Hat或者任何其它的發行版進行認證,你認為呢? 答:這並不現實。因為有很多東西並沒有被LSB涵蓋進去,所以不能只對LSB進行認證。 問:你認為Linux未來面臨的挑戰是什麼? 答:我們要讓普通的人也來使用Linux。事實上,人們不使用Linux,並不是由於其難於使用,而主要還是由於習慣和觀念上的慣性作用。比如有的人說Linux安裝起來過於困難,但實際上如果你讓很多人來安裝Windows的話,並不是所有的人都能夠完成安裝。