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