專訪Linus Torvalds:對所有Bug一視同仁
譯文【51CTO 精選譯文】編者按:今年,Linux 20歲了。各地都在籌劃著如何慶祝Linux 20歲的生日。近日, LinuxFR對Linux的創(chuàng)始人Linus Torvalds進行了采訪,在采訪的第一部分《專訪Linus Torvalds:鄙視用道德綁架開源的行為》中,Linus Torvalds回答了為何選擇非GPL版權(quán)而不是GPL許可等問題。本文是LinuxFr對Linux創(chuàng)始人Linus Torvalds的采訪的第二部分,主要從自由開發(fā)軟件、內(nèi)核安全等方面進行了回答。以下是原文。
LinuxFR:Lennart Poettering曾說:“實際上,Linux API已經(jīng)取代了POSIX API的角色,Linux已成為所有自由軟件開發(fā)的焦點”,你對此有何看法?
Linus Torvalds:的確如此,我認為它為簡化非常困難的問題提供了一個可行的方法。Linux API兼容POSIX API,因此,如果你想以后將項目移植到其它平臺,選擇Linux作為開發(fā)平臺無疑是最佳的選擇。
LinuxFR:你認為systemd相比SysV初始化程序是一個巨大的進步嗎?它是一個改變游戲規(guī)則的技術(shù)嗎?
Linus Torvalds:我對此也持觀望的態(tài)度,它的使用范圍還不夠廣泛,我認為啟動性能很重要,任何對此有幫助的技術(shù)都是好事情。
LinuxFR:你使用btrfs嗎?你認為它何時能準備好取代默認推薦的文件系統(tǒng)ext4?
Linus Torvalds:我在我的兩臺筆記本電腦上使用了btrfs,但坦白地說,談到文件系統(tǒng)的使用時,最大的因素是發(fā)行版的支持。當(dāng)然,文件系統(tǒng)本身的核心功能也很重要。人們除了關(guān)心文件系統(tǒng)的功能和性能外,更關(guān)心其穩(wěn)定性。
LinuxFR:通過Linux和Git這兩個軟件,你對計算機行業(yè)的影響非常大,你是怎么做到這兩個巨大的成功呢?你和凡人有什么區(qū)別?
Linus Torvalds:首先我要糾正一點,我也是凡人,我認為成功最重要的就是持之以恒,就Linux而言,我擁有了天時和地利,當(dāng)時也有其他的人在開發(fā)操作系統(tǒng),但他們沒有堅持做下去,而我一做就是20年。大多數(shù)開發(fā)人員都會做一些他們感興趣的私人項目,但他們的興趣也消失得很快,很少有人能堅持10年。
對Git而言,情況有所不同,當(dāng)初我希望通過它更好地管理Linux內(nèi)核樹,因為內(nèi)核源代碼變得越來越大,維護者也越來越多,需要一個更好的源代碼管理和協(xié)作開發(fā)工具,于是便有了Git的架構(gòu)。其實在Linux和Unix世界,已經(jīng)有很多成熟的SCM工具。
對Git貢獻最大的不是我,而是Junior Hamano,他真的是一位偉大的維護者,像他這樣的人對開源項目來說是至關(guān)重要的。開源編程是一項團隊運動,找到合適的人非常不容易,對Linux內(nèi)核開發(fā)來說更是如此。讓我感到欣慰的是,我們已經(jīng)擁有一大批優(yōu)秀的內(nèi)核維護者。當(dāng)開發(fā)工作裹足不前時,我可能會向他們冒火,但與此同時,我相信有更好的維護者站出來。
LinuxFR:據(jù)我所知,你對生物學(xué)和進化論也很感興趣,這些只是對Linux開發(fā)有用嗎?
Linus Torvalds:我不認為這些知識對Linux內(nèi)核開發(fā)有用,這些都只是我的個人興趣而已,生物學(xué)、進化論和人類行為都是讓人著迷的主題,我認為在技術(shù)發(fā)展和進化論之間有許多相似之處。技術(shù)進步更多的是“有機”的發(fā)展,只有很少一部分是超前設(shè)計,實際上,我認為大多數(shù)技術(shù)問題都太復(fù)雜了,只能通過漸進式改進、試驗和不斷摸索才能找到最佳的解決方案。
LinuxFR:你現(xiàn)在是一位美國公民,你如何看待美國軟件專利法呢?你的聲音可以幫助和這部法律斗爭么?
Linus Torvalds:雖然我不喜歡專利,但我們必須承認它們,我也盡量保持遠離涉及到專利的問題,但我希望有更多的人參與進來。
LinuxFR:你經(jīng)常在realworldtech.com(簡稱rwt)發(fā)表文章,但我從來沒見你在lwn.net上發(fā)表過文章,為什么?你會習(xí)慣性地瀏覽lwn.net嗎?
Linus Torvalds:我到rwt是去討論計算機體系結(jié)構(gòu)的,我喜歡和那里的人展開激烈的討論,甚至是爭論,我也喜歡和非Linux用戶,甚至連Linux都沒聽說過的用戶討論問題,那樣我才能聽到有價值的反對聲音和意見。
Lwn?它是一個完全不同的“魚塘”。
LinuxFR:有各種不同的人批評內(nèi)核安全,你認為內(nèi)核開發(fā)者在內(nèi)核安全機制和代碼審查方面做了足夠的工作嗎?你認為GRSecurity應(yīng)該進入內(nèi)核主線嗎?
Linus Torvalds:我認為我們的工作已經(jīng)做得很好了,對有些安全人士來說,他們都認為僅僅把工作做好還不夠,他們認為安全就是一切。
大多數(shù)安全問題就是Bug,我們需要盡量避免Bug,但不可能完全消除,和其它項目比起來,我自認為我們在這方面還是做的相當(dāng)不錯的,至少我們不會出現(xiàn)極其愚蠢的編碼錯誤,即使偶爾出現(xiàn)也會很快被發(fā)現(xiàn)和修復(fù)。我認為將所謂的“安全Bug”和其它Bug隔離開來并沒有什么用,因此任何一個Bug都可能成為一個安全Bug。
至于GRSecurity,我們已經(jīng)開始評估是否要引入內(nèi)核主線。
通常,實現(xiàn)安全的最好方法是提供多個不同的安全層,你不可能完全消除Bug,但在多層安全保護機制下,一個安全層不能保護的安全問題會被其它安全層輕松保護。
因此,在內(nèi)核中,我們會在常規(guī)層提早進行安全檢查,即使在文件系統(tǒng)或驅(qū)動中存在一個Bug,也很難利用這個Bug搞破壞。當(dāng)我們發(fā)現(xiàn)溢出漏洞時,我們除了修復(fù)溢出漏洞本身外,還會(盡可能)在高層增加檢查,避免在第一個環(huán)節(jié)就發(fā)生溢出。因此在許多時候,我們對相同的問題要做多處修復(fù),每一處修復(fù)很小,但集合起來的防御能力就很強了。
LinuxFR:你認為安全專家,漏洞利用者與內(nèi)核開發(fā)人員相比,他們的心態(tài)不同嗎?
Linus Torvalds:是的,特別是某些有趣的漏洞利用方法讓我們抓狂,讓人印象深刻。我常對安全界的不道德行為感到很沮喪,安全專家有時也是裝模作樣。
LinuxFR:我曾經(jīng)采訪過GRSecurity作者Brad Spengler,并問了他對你和內(nèi)核安全的意見,Brad的回答是:“他有時比其它開發(fā)人員對安全的理解更好,但安全不是他的主要目標,他對安全的想法已經(jīng)成了內(nèi)核開發(fā)的官方政策,在修改日志中忽略與安全相關(guān)的信息,對所有Bug一視同仁”。你認為應(yīng)該對所有Bug一視同仁嗎?為什么?
Linus Torvalds:我傾向于對所有Bug一視同仁,我既不想挑出,也不想刻意隱藏我們的安全問題。
問題是,安全人員不贊同這種做法,有些人希望完全公開,有些人(廠商和大型金融機構(gòu))希望有限制的公開,還有一部分人希望完全保密,避免這些問題泄露給那些編寫漏洞利用程序的“黑帽”黑客。
“壞人”也分幾種,有的人只是想測試一下,如在校大學(xué)生在聽說了某個可利用的漏洞后,決定測試一下大學(xué)的機器是否真的能崩潰,還有的人屬于腳本小子,他們無深厚的技術(shù)背景,但他們的所作所為讓人討厭,最后還有一種人非常聰明,他們真的能搞破壞,甚至造成嚴重的犯罪。
如何解決這些爭論呢?我認為無法解決,每個人都有自己的信息公開或封鎖方法,你無法左右他們。
我個人的意見是,唯一理智的方法是要知道它不是一個可解決的問題,公正地對待Bug。我們盡量避免Bug,但一旦發(fā)生,我們會立即修復(fù)它們,對于漏洞的利用方法,我們不會透露細節(jié),也不會讓那些想利用漏洞的人輕易得逞,因此我們一般不會在修改日志中列出如何利用漏洞的描述,甚至不會列出相關(guān)漏洞的任何描述信息。
安全人員總是支持我們這種做法嗎?當(dāng)然不是!但也有人支持我們這種做法。
LinuxFR:你對OpenBSD的質(zhì)量有何看法?他們一直高度重視安全,是否從這個項目汲取了一些教訓(xùn)?
Linus Torvalds:我認為任何單一目的的操作系統(tǒng)項目都是失敗的,自身安全不是一個值得追求的目標,你需要讓用戶將安全問題擺在首位。因此,我認為OpenBSD重視安全只會讓整個項目失去興趣。
但同樣,這只是我“Bug就是Bug”的思想,我認為安全也很重要,但這個世界不只是有黑色和白色,也沒有哪個事情總是比別的事情更重要。
【本文乃51CTO精選譯文,轉(zhuǎn)載請標明出處!】
原文出處:https://linuxfr.org/nodes/85904/comments/1230981
【編輯推薦】