自由軟體運動與 UDI

一個名為 UDI(Uniform Driver Interface,統一驅動程式介面)的專案旨在定義作業系統核心與裝置驅動程式之間的單一介面。自由軟體運動應該如何看待這個想法?

如果我們想像許多作業系統和硬體開發商在平等的基礎上合作,UDI(如果技術上可行)將會是一個非常好的主意。它將允許我們為任何給定的硬體裝置開發一個驅動程式,然後大家共享它。它將實現更高層次的合作。

當我們將這個想法應用到現實世界時,現實世界既有尋求合作的自由軟體開發者,也有尋求支配地位的專有軟體開發者,其後果將截然不同。使用 UDI 無法使自由軟體運動受益。如果它有任何作用,那將是分裂和削弱我們。

如果 Linux 支援 UDI,並且如果我們開始設計新的驅動程式以通過 UDI 與 Linux 通訊,那會產生什麼後果?

  • 人們可以在 Windows 系統上執行自由的、GPL 授權的 Linux 驅動程式。

    這只會幫助 Windows 使用者;對於我們這些自由作業系統的使用者來說,沒有任何好處。這也不會直接傷害我們;但是,GPL 授權的自由驅動程式的開發者可能會因為看到他們的成果以這種方式被使用而感到沮喪,這將非常糟糕。將驅動程式連結到專有核心也可能違反 GNU GPL。增加這樣做的誘惑是自找麻煩。

  • 人們可以在 GNU/Linux 系統上執行非自由的 Windows 驅動程式。

    這不會直接影響自由軟體支援的硬體範圍。但間接地,它會傾向於縮小範圍,因為它誘惑了數百萬尚未學會為了自由本身而堅持自由的 GNU/Linux 使用者。如果社群開始接受這種誘惑,我們將會轉向使用非自由驅動程式,而不是編寫自由驅動程式。

    UDI 本身不會阻礙自由驅動程式的開發。因此,如果我們有足夠多的人拒絕這種誘惑,我們仍然可以像沒有 UDI 一樣,在 UDI 的情況下開發自由驅動程式。

    但是,為什麼要鼓勵社群變得比它需要更弱呢?為什麼要為自由軟體的未來製造不必要的困難?既然 UDI 對我們沒有好處,最好還是拒絕 UDI。

鑑於這些後果,英特爾(UDI 的支持者)開始「尋求 Linux 社群在 UDI 方面的幫助」就不足為奇了。一家富有且自私自利的公司如何接近一個合作社群?當然是索要施捨。他們提出要求沒有任何損失,而我們可能會措手不及並說「是」。

與 UDI 合作並非不可能。我們不應該將 UDI、英特爾或任何人標籤為「大撒旦」。但是,在我們參與任何提議的交易之前,我們必須仔細評估它,以確保它對自由軟體社群有利,而不僅僅是對專有系統開發者有利。在這個特定問題上,這意味著要求合作將我們進一步推向自由核心和驅動程式的最終目標:使用自由驅動程式支援所有重要的硬體。

使交易變得有利的一種方法可能是修改 UDI 專案本身。Eric Raymond 提出,UDI 合規性可以要求驅動程式是自由軟體。這將是理想的,但其他替代方案也可能有效。僅僅要求發布驅動程式的原始碼,而不是商業機密,就可以達到目的——因為即使該驅動程式不是自由的,它至少會告訴我們編寫自由驅動程式所需的資訊。

英特爾也可以在 UDI 之外做一些事情來幫助自由軟體社群解決這個問題。例如,硬體開發商可能尋求某種認證,而英特爾在授予認證方面發揮作用。如果是這樣,英特爾可以同意,如果硬體規格是秘密的,則使認證更加困難。這可能不是解決問題的完整方案,但可能會有很大幫助。

與英特爾就 UDI 達成任何協議的一個困難是,我們會在開始時為英特爾盡我們的一份力量,但英特爾的回報將會持續很長時間。實際上,我們將向英特爾提供信用。但是,英特爾會繼續償還貸款嗎?如果我們以書面形式取得協議並且沒有漏洞,則可能會;否則,我們就不能指望它。企業是出了名的不可信任;與我們打交道的人可能具有誠信,但他們可能會被上級推翻,甚至隨時被不同的人取代。即使是擁有大部分股份的 CEO 也可能通過收購而被取代。在與公司達成協議時,始終要以書面形式獲得具有約束力的承諾。

英特爾似乎不太可能提供一項能給予我們所需事物的協議。事實上,UDI 的設計似乎是為了更容易地保持規格的秘密。

儘管如此,保持門戶開放也沒有什麼壞處,只要我們小心讓誰進來。