Windows/Linux 代碼共享,Linux 內(nèi)核開發(fā)者:差評
英特爾近期披露了 Linux 圖形驅(qū)動程序相關(guān)的一些細節(jié)并指出,英特爾的圖形驅(qū)動程序現(xiàn)在已在 Windows/Linux 之間共享約 60% 的代碼庫,90~100% 的性能。
針對此事,紅帽公司的高級工程師、Linux 內(nèi)核開發(fā)者、Mesa 圖形項目的貢獻者 Dave Airlie 則發(fā)布警告稱,Chipzilla 的代碼共享開發(fā)模式并不總是好的。并表示,這會對基于 Linux 的發(fā)行版和在圖形領(lǐng)域的開源開發(fā)模式產(chǎn)生不良影響。
Airlie 認為,開源發(fā)布的項目與開源開發(fā)的項目之間存在很大差異,從“可持續(xù)性和社區(qū)”的角度來看,前者并非完全健康。
Airlie 以 Linux 內(nèi)核和他所參與的 Mesa 項目為例,指出兩者都是在開放的環(huán)境下開發(fā)的,采用了完全開放源代碼的供應(yīng)商不可知的做法。并指出,這兩個項目都沒有供應(yīng)商控制,其目標都是最大限度地實現(xiàn)所有供應(yīng)商的驅(qū)動程序共享代碼和共享流程/編碼標準。
"這種跨廠商的協(xié)同作用對于 Linux 圖形棧這個生態(tài)系統(tǒng)的運作非常重要。該棧在某些地方也依賴于 LLVM 項目,但 LLVM 上游仍然與供應(yīng)商無關(guān),是開源開發(fā)的。"
然而存在一個潛在的問題是,供應(yīng)商可能更熱衷于看到投資回報,每隔幾個開發(fā)周期就把內(nèi)部開發(fā)的代碼放到一個開源的 repo 中,而不是圍繞項目建立一個社區(qū)。Airlie 稱,供應(yīng)商更多的是從自己的利益出發(fā)才搞出共享 Windows/Linux 棧這樣的事情,而不是為了 Linux 社區(qū)的利益。
Airlie 以 AMDVLK vs radv 為例論證了自己的觀點。他表示,自己之所以開始 radv 這個項目是因為,AMD 一直向世界承諾為 Linux 提供一個開源的 Vulkan 驅(qū)動,與他們的 Windows 棧共享。然而,Airlie 卻發(fā)現(xiàn),社區(qū)根本就沒有參與驅(qū)動程序發(fā)展的渠道。 “外部貢獻者永遠不會與 AMD 員工處于同一立場,甚至不同團隊的 AMD 員工也不會處于同一立場”。相比較而言, 他認為 Mesa 的 radv 項目最后的效果遠比 AMD 的廠商共享代碼要好。
事實上,引起 Airlie 不滿的點主要在于英特爾圖形編譯器(IGC)。這是一個英特爾內(nèi)部的項目,關(guān)于項目方向、如何參與或社區(qū)在哪里的信息都很少。且該項目似乎沒有什么公開的審查,補丁也好像被 igcbot 合并到了公共 repo 中,這可能意味著它們是從某個內(nèi)部 repo 中鏡像出來的。Airlie 將 IGC approach 與 Mesa 內(nèi)的 NIR 后端的開發(fā)進行了對比稱,在 NIR 后端中,大量的變化都會被審查,并試圖最大限度地共享共同的代碼,以便所有的供應(yīng)商都能從代碼中獲益。
不過,他對 AMD 及其內(nèi)核中的顯示代碼還是有較好的評價,并稱贊該團隊的社區(qū)參與。盡管他也表示 "代碼仍然相當糟糕,在 Linux 上并不是真正的最佳狀態(tài)"。
最后,Airlie 表示,給任何希望操作系統(tǒng)之間有更多供應(yīng)商代碼共享的人一個警告,此舉通常不會以 Linux 更好的結(jié)局而結(jié)束,而是以 Linux 更分散、更難支持和長期不可持續(xù)的結(jié)局而結(jié)束。
本文轉(zhuǎn)自O(shè)SCHINA。
本文標題:Windows/Linux 代碼共享,Linux 內(nèi)核開發(fā)者:差評
本文地址:https://www.oschina.net/news/120749/linux-graphics-why-sharing-code-with