Linux開發模式和FreeBSD開發模式。
Linux開發模式
與FreeBSD相比,Linux是一個非常不一樣的東西。盡管它們都是開源操作系統,Linux開發模式卻根本不能和前者相等同。在Linux的核心,只是一個很簡單的內核。而核心系統通用程序,包括了管理者們每天所使用的很多驅動程序和工具,是由另外一個完全不同於制作內核的團體所制作的。Linux的內核是一個外部開發的不連續的實體,然後直接由“Linux社區”進行直接維護。從一個安全的角度來講,這就意味著安全能力被建在了應用軟件包的通用程序裡,而並沒有完全反射到內核裡面(反之亦然)。
內核和應用軟件包由一個發布者(例如Red Hat或者是Debian公司)整合在一起後成為一個完整的操作系統。當代碼被整合到一起的時候,這個發布者可能會改變一些內核和一些應用軟件包的代碼。一些此類的改變是輕度的耦合改變,還有一些是新功能的部件。每個發布者以自己的方式來進行整合,這就使每個發布者有了有效的自己的操作系統。所以,當你來為你的企業決定操作系統的時候,與其考慮“Linux”,不如說是“Red Hat”、“Debian”、“Mandrake”等等。
在與發放計劃和安全功能性方面,每個發布者都有自己的時間表和技術路線。曾經有一段時間,Red Hat維護著一個安全路線(基本上來說它由SELinux整合到核心操作系統中組成),但是這個似乎已經被廢棄了。同樣的,每個發布者(操作系統發布者)控制著自己的系統終止步驟,所以並沒有單一日期的“Linux系統終止”。
基於Linux的操作系統的修補由兩個步驟組成。當一個系統安全漏洞被發現的時候,這個系統安全漏洞信息被透露給這個代碼最原先的維護者。然後這個維護者會為這個有攻擊點的軟件發布一個補丁。然後每一個操作系統發布者必須趕緊拿到補丁並做出一個專為基於他們具體代碼的自定義的補丁。基於這個補丁,管理者們才能應用到他們的系統中去。這個兩個階段的補丁過程會導致整個補丁過程的推遲,更重要的事,它會導致混亂和結構管理問題。
FreeBSD開發模式
和Windows不同的是,FreeBSD並不是一個商業投資產品。FreeBSD是由一群想把操作系統建得真正像一個系統的開發者開發出來的。FreeBSD的內核是和一整套的系統工具、驅動程序和配置文件一起發布的,這是很有代表性的正式發行。比如說FreeBSD5.2的發行就包括了核心程序、一個擁有完整功能性的防火牆、網絡驅動程序、系統管理通用程序以及核心程序的軟件工具包。其他的軟件工具包由第三方開發者來提供(比如說Mozilla開源組織的Mozilla或是Brian Wotring公司的Osiris),但是這些程序都由FreeBSD打包集成在了整個操作系統裡面。在打包集成的過程中,這些軟件由FreeBSD團隊來進行測試,以確保他們能夠與操作系統一起工作正常——但是對於安全問題卻沒有必需的要求。
因為FreeBSD並不僅僅是一個內核,所以安全功能性能夠貫穿整個核心程序和核心系統通用程序,在操作系統開發體系構建的時候建立起來。比如說,在FreeBSD的核心程序裡有一個“安全等級”概念。不同的安全等級有不同的限制。例如在安全等級2中,文件系統不能夠被安裝,一次時間調節不能被調節到多於一秒鐘。不僅核心程序了解這個安全等級,核心系統通用程序的修改和幫助都強制性使用安全等級。這可能是因為FreeBSD是作為一個端到端的系統開發出來的。
整個系統的發布步驟有一個具有工程背景的發布團隊來控制,這個團隊決定操作系統的版本與其所包括的特性,以及下個版本的FreeBSD准備什麼時候發布。這個發布團隊制作了一個發放時間表,這個表概述了幾個將要發放的版本的情況,同時決定了什麼時候舊的版本將會到達“壽命終止”(EOL)。對於操作系統來說“壽命終止”日期是非常重要的,因為這也是FreeBSD需要為那幾個版本的操作系統發放補丁的日期。如果你想要保持當前的版本(並確保安全),你必須為你的操作系統在“壽命終止”到來的時候進行更新。
我為Linux操作系統的安全性描繪了一幅非常淒涼的圖畫。因為它的開發模式,很難為這個操作系統決定一個未來趨勢,或者維護它會成為一個繁瑣之事。盡管如此,Linux還是有非常多的,對許多操作很有用的特性和出色的程序。所以,當在安全性和效用性之間要有一個妥協的時候,Linux還是在一個可維持的狀態上的。