- 二進位資料塊是載入到核心中的專有部分;它們有助於提高相容性,但會降低自由度和審計難度。
- 專案和發行版對此意見不一:OpenBSD 和 Libreboot 拒絕接受它們;其他一些專案和發行版則接受它們以支援複雜的硬體。
- 封閉式韌體會增加風險;Coreboot 和 Libreboot 在相容設備上提供了更開放的途徑。

如果您使用 GNU/Linux 或對自由軟體感興趣你遲早會遇到「二進位程式碼區塊」(binary blob)這個術語,也叫「專有程式碼區塊」(property blob)。我們指的是那些以二進位格式載入到核心或其驅動程式中的軟體,它們不提供原始程式碼。換句話說:它們是打包好的、無法分享的功能。 研究或修改然而,它們對於某些硬體的正常運作來說往往是必不可少的。
這場爭議由來已久,涉及許多棘手問題:從使用者自由到系統安全。 有些社群將他們視為兩害相權取其輕而易舉的選擇,並容忍他們的存在。 還有一些人則斷然拒絕它們。更令人困惑的是,在…的世界裡 數據庫 Y EL 存儲 在雲端運算中,BLOB 的含義完全不同:它指的是大型二進位對象,通常是視訊、備份或映像的容器。本文將闡明這兩種意義,並解釋為什麼雲端運算中會存在二進位 Blob。 Linux誰在駕駛它們? 它們會帶來哪些風險?還有哪些替代方案?這一切如何融入自由軟體文化?
Linux 中的二進位 blob 是什麼?它們為什麼會出現?

當製造商未能提供關於其設備的足夠技術文件時, 核心開發人員無法編寫完全自由的驅動程式。為了解決這個問題,供應商會提供一個預編譯檔案來彌補缺少的部分:也就是二進位檔案。這種情況在顯示卡、Wi-Fi適配器、RAID控制器以及其他市場上更新換代迅速的組件中非常常見。
在類 Unix 作業系統生態系中,反應並不統一。 NetBSD、FreeBSD 和 DragonFly BSD 都支援 blob 格式。 有時,這種做法被用作掩蓋某些功能的捷徑。相較之下,OpenBSD 和 LibertyBSD 則以在其程式碼樹中不接受任何此類做法而自豪,其目的是為了最大限度地降低無法審計的風險,並重申其對完全透明的承諾。
GNU/Linux 世界也存在多樣性。 有些分佈明確反對團塊狀分佈。諸如 gNewSense、Trisquel 和 Parabola 等 Linux 發行版都與自由軟體基金會 (FSF) 保持一致。這種立場促成了 Linux-libre 等專案的誕生,Linux-libre 是一套用於移除專有韌體和核心元件的修補程式。更實際地說,一些通用發行版,尤其是較新的計算機,出於相容性考慮,允許使用閉源驅動程式或專有韌體。
當為其他系統編寫二進位資料塊時,有些專案會選擇使用包裝器。 它們充當兼容層。允許為系統 X 設計的驅動程式在系統 Y 上運作。這在某些情況下是一個有用的技巧,但它也存在同樣的限制:不透明、依賴供應商、維護不受社區控制。
依賴資料塊的風險和缺點
管理員和開發人員都很清楚這些問題。 無法讀取或觸摸程式碼 這意味著放棄糾正、改進和 獨立審計由此,一連串影響深遠的後果接踵而至。
- 無法修改和重新分發 根據您的需求量身定制的版本,會阻礙協作和集體進步。
- 便攜性有限它們通常只針對少數幾種架構進行編譯,不能輕易移植到其他環境。
- 難以企及的品質無法驗證控制器是否能如預期運行,或者是否有細微的錯誤。
- 零安全審計第三方無法審查程式碼是否有漏洞或後門。
- 盲目信任供應商有理由擔心間諜軟體或有意或無意的後門。
- 無法修復 從系統社群方面快速識別故障或不相容性。
- 任意支援結束製造商可以隨時放棄該產品,從而破壞未來的兼容性。
- 再分配限制 在某些情況下,例如:iMac 5,2 上的某些 iSight 攝像頭,其專有驅動程式無法重新分發;用戶必須自行從製造商的原始系統中提取該驅動程式。
雖然通常會區分韌體和二進位文件,但實際上兩者之間的界限很模糊。 初始化韌體 它是電腦開機時啟動的第一個軟體,負責初始化設備,並為作業系統讓路。如果它是專有軟體,那麼它幾乎會繼承所有上述問題,而且由於它對平台擁有巨大的控制權,問題會變得更加複雜。
韌體、BIOS、微代碼以及信任的雷區
自由軟體基金會多年來一直在推動各種活動,以… 固件, 的BIOS 和平台 開機 打開 並且能夠進行審計。然而,現實情況很棘手:市面上大多數設備都採用封閉式固件,其中包含大量二進制代碼塊,支援往往過早終止,補丁要么遲不到,要么根本無法發布。逆向工程以破解和替換這些組件的成本極高,而且幾乎總是僅適用於非常特定的硬體情況。
現代啟動系統使用 SPI 快閃記憶體晶片,其中儲存了整個平台 ROM。 修改此韌體需要工具和知識 一些不常見的功能包括調整記憶體大小、記憶體填充、外部刷寫,甚至理論上可以在記憶體中安裝一個基本的作業系統。對於一般使用者來說,這些功能並不實用,因此,簡化這些流程的社群專案就顯得格外重要。
除了最初的發布之外,關於某些架構中的微代碼和遠端管理子系統的爭論已經愈演愈烈。 諸如此類技術的不透明性 Intel英特爾 管理引擎 以及vPro生態系的遠端功能。由於這些功能嵌入在非常底層,其影響範圍令那些重視隱私、控制和可驗證安全性的使用者感到擔憂。
同時,有人指出: 採用低功耗ARM處理器的設備 它們各有優勢:電池續航力長、散熱需求低,某些型號還配備了更開放的輔助組件,例如用於鍵盤和感應器的嵌入式控制器。總之,市場格局廣闊且各不相同:最好針對具體情況進行評估。
Coreboot、Libreboot 和 Chromebook 案例
Google 在許多方面都支援 Coreboot。 Chromebook從理論上講, 讓這些團隊更接近一個更透明的新創公司即便如此,它們通常也無法通過 FSF 的 RYF 認證,因為它們仍然在不同層級中攜帶二進位代碼:從韌體本身到內核,包括需要專有微代碼的外圍設備,例如某些 Wi-Fi 卡。
無線連線是最令人頭痛的問題。 經典的 Atheros 晶片組通常運行在自由軟體上。 無需使用焊盤,但其他系列,尤其是非常現代的系列或焊接在電路板上的系列,更換起來就比較複雜。 手提 使用 miniPCIe 插槽更換顯示卡很簡單,但開啟新裝置可能會影響保固。
圖形部分也相當精彩。 同 驅動程序 免費如新藝術 NVIDIAKepler GPU 如果手動超頻至出廠頻率,效能非常出色;然而,在第二代 Maxwell GPU 及後續版本中,情況變得複雜,它們往往處於待機狀態,功耗受限。在 AMD/ATI 平台上,即使開源驅動程式有了顯著改進,如果不載入專有固件,顯示卡幾乎無法使用。在 Intel 平台上,Skylake 之前的晶片是無需額外專有韌體即可實現 3D 效能的最佳範例。
因此,在圖形處理能力有限的系統上, 建議使用 LXDE 或 Xfce 等輕量級桌面環境。它們不依賴 3D 加速。雖然效果不會很驚艷,但穩定可靠,完全可以滿足日常使用需求。
Libreboot,毫不妥協的賭注
Libreboot 是 Coreboot 的嚴格發行版,它遵循明確的規則: 不允許整合專有程式碼區塊。它的目標有兩個:一是最大限度地提高使用者自由度,二是簡化安裝和更新流程,使任何人都能透過遵循詳細文件輕鬆完成。它被定位為穩定版本,更加重視最終用戶,並配備了自動化工具和工作流程。
第一款旗艦平台是ThinkPad X60,並且 El Temppo 該專案已發布準備好的ROM映像 針對不同的 SPI 晶片尺寸,提供 flashrom 等實用程式和 GRUB 有效載荷,以便使用高級選項啟動 GNU/Linux 系統,例如使用 GPG 驗證簽名或載入 SPI 本身託管的核心。
- 限自由軟體不使用專有 CPU 微程式碼、封閉式視訊區塊和封閉式初始化。如果某項功能必須使用專有軟體才能實現,則我們不支援。
- 有意識的觸及它支援的硬體比 Coreboot 少,但它所支援的硬件,都不會損害用戶的自由。
- 易用性:自動編譯和安裝、非專業人士的文件以及活躍的幫助管道(郵件清單和 IRC)。
- 全部集成:GRUB 有效載荷、flashrom 和打包實用程序,避免最終用戶執行繁瑣的步驟。
- 預編譯ROM: 下載 無需編譯即可直接刷寫,並可根據具體情況提供適用於非標準尺寸晶片的版本。
- 安全與速度:縮短啟動時間,保護啟動,自由選擇版本,沒有鎖定或製造商 DRM。
- 可破解和可自訂背景、字體、有效載荷和選項均由團隊所有者隨意更改。
- 可隨時更新升級或降級由使用者自行決定;如果晶片的寫入保護已激活,則後續更新將需要外部編程器。
- 快速響應故障當出現問題時,社區會迅速做出反應;這與專有供應商形成鮮明對比,後者修補程式出現得晚,修補頻率低,而且只在單一系統的特定版本中修補。
這種方法顯然忽略了非常流行的現代平台。 但要避免計劃報廢。 源自於反覆無常的支援週期,並允許舊設備保持可用和安全,並提供免費且有記錄的啟動。
資料庫和物件儲存中的 BLOB 是什麼?
在資訊通信技術領域,BLOB 代表二進位大型物件(Binary Large Object)。 這些是以二進位格式儲存的大型資料集。這些通常是多媒體檔案、磁碟映像或備份,它們儲存在資料庫或物件儲存中。與核心的專有二進位檔案不同,它們不是驅動程式或固件,而是資訊容器。
純文字檔案有時被視為 CLOB(字元大型物件)。 差別在於 CLOB 被當作文本處理。 而且它們並非二元對立,儘管二元對立對某些引擎和操作很有用。實際上,這兩種概念在資料庫和雲端平台中並存。
- 發布多媒體內容向網站提供的圖像、視訊和音頻 應用程序 和服務 流.
- 資料湖和分析用於大數據、機器學習模型訓練和商業智慧的資料湖。
- 已存檔 日誌:保留應用程式和安全記錄,用於診斷、稽核和合規性。
- 文件管理PDF文件、掃描件和大型企業歷史記錄。
- 固定住宿直接從物件儲存提供 HTML、CSS、JavaScript 和圖像。
- 軟件發行具有高可用性的軟體包、更新和安裝程式。
- 健康數據醫學影像、病史和基因組學,並提供安全和監管保障。
- 科學考察:來自實驗、模擬和感測器網路的數據集,用於分析和協作。
為避免混淆,二進位 BLOB 有時被稱為基本大型物件。 關鍵在於,我們討論的是資料容器。並非嵌入系統核心的晦澀組件。它們是彼此關聯的二元世界,但卻有著截然不同的意義和風險。
關於 Linux 中二進位資料的討論不僅僅是關於硬體是否能正常運作: 它涉及信任、控制和長期可持續性。有些領域妥協不可避免,而有些領域選擇像 Linux-libre、Coreboot 或 Libreboot 這樣的開源替代方案則非常值得。在了解風險和替代方案後,每個人都可以決定在何種條件下放棄對自身系統的控制權。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。
