• 專有設備驅動程序

    編輯
    本詞條由“匿名用戶” 建檔。

    專有設備驅動程序

    編輯

    專有設備驅動程序是一個封閉的源設備驅動程序只有在公開的二進制代碼。在免費和開放源代碼軟件的上下文中,閉源設備驅動程序稱為blob或二進制blob。該術語通常是指加載到開源操作系統內核中的閉源內核模塊?,有時還應用于在內核外部運行的代碼,例如系統固件映像,微代碼更新或用戶態程序。術語?blob首先在數據庫管理系統中使用,用于描述存儲為單個實體的二進制數據的集合。

    計算機硬件供應商為其產品提供完整的技術文檔時,操作系統開發人員便能夠編寫要包含在操作系統內核中的硬件設備驅動程序。但是,某些供應商(例如Nvidia)并未提供某些產品的完整文檔,而是提供了僅二進制驅動程序。對于加速圖形驅動程序,無線網絡設備和硬件RAID控制器,這種做法最為常見。最值得注意的是,二進制blob在非無線網絡接口控制器中非常罕見,它幾乎總是可以通過標準實用程序(如ifconfig) 盒子外面;?OpenBSD的Theo de Raadt將其歸因于單個FreeBSD開發人員所做的工作

    專有設備驅動程序

    開源操作系統

    編輯

    一些FSF認可的項目努力提供一個免費的操作系統,并且在沒有硬件文檔或設備驅動程序源代碼以及所有適用固件的可用文檔時,將刪除所有二進制blob?;這些項目包括來自FSFLA、Parabola、Devuan、Trisquel和LibreCMC的Linux-libre內核封裝。然而,絕大多數開源項目的只作二進制設備驅動程序和二進制固件只(不考慮斑點之間的區別),允許某些專有固件作為其內核的一部分自由分發,并且,在某些核心貢獻者的不同意下,還支持使用在外部分發的專有設備驅動程序,從而為此類專有驅動程序和用戶空間提供內部兼容性接口與系統配合使用的組件。遵循此策略的項目包括Linux內核本身、NetBSD、FreeBSD、DragonFly BSD和大多數Linux發行版。這些項目中的某些確實提供了構建沒有專有固件的系統的選項,因此排除了按需的無源微代碼。

    在OpenBSD的項目不僅具有不接受任何二進制設備驅動程序到其源代碼,也沒有正式支持它的平臺,任何第三方專用設備驅動器組件既可以顯著的政策; 不僅指出了潛在的無法檢測或無法修復的安全漏洞,而且還列舉了其軟件的開放性和自由性。在自由軟件基金會(FSF)正積極參加反對的二進制塊。FSF還認為OpenBSD的政策措辭令人困惑,因為BSD社區中的“斑點”僅指其認為的非免費驅動程序,不適用于專有固件和無源微代碼。

    在Linux內核開發社區,Linus Torvalds的取得上僅二進制模塊的問題強硬的聲明,聲稱:“我拒絕,甚至考慮綁我的雙手在一些只有二進制模塊”,并繼續說:“我希望人們知道當他們使用僅二進制模塊時,這就是他們的問題。”在2008年,有176位Linux內核開發人員簽署了關于Linux內核模塊的立場聲明,其中指出:“我們,簽名不足的Linux內核開發人員,認為任何開源Linux內核模塊或驅動程序都是有害的和不可取的……我們已經反復發現它們不利于Linux用戶、企業和更大的Linux生態系統。”Greg Kroah-Hartman表示,為GNU通用公共許可證許可的?Linux內核重新分發封閉源模塊是非法的。

    但是,Linux內核包含各種設備驅動程序所需的閉源固件。Alexandre Oliva、Linux-libre的維護者,該版本是Linux內核的一個版本,試圖刪除所有二進制blob,包括無源微代碼,它在2011年寫道:“自1996年以來,Linux就不再是自由軟件, Torvalds先生接受了自1991年以來發布的Linux發行版中的xxx批非自由軟件。這些年來,盡管該內核增長了14倍,但Linux驅動程序所需的非自由固件的數量卻增長了10%。令人震驚的83。”

    運行Android操作系統的移動設備的大多數驅動程序均以二進制形式提供,并與特定版本的Linux內核鏈接。這使得升級內核版本非常困難,因為它可能需要反向工程,將專有設備驅動程序重新實現為自由軟件,創建和調試包裝程序,二進制修補程序或這些步驟的組合,所有這些都意味著舊版設備將永遠不會獲得最新的Android版本。

    問題

    編輯

    二進制斑點可能有問題的原因有很多。

    首先,它們的精確操作是未知的,并且無法通過審計源代碼來檢測錯誤。通常,只有當系統開始異常運行時,才需要通過認真研究來診斷錯誤。這些未檢測到的錯誤也可能使用戶和系統無提示地暴露于安全隱患。因此,無法檢查駕駛員的適合性,即使發現錯誤,也沒有簡便的方法來修復它。

    其次,由于源代碼不可用,因此驅動程序無法被其用戶輕松改進,無法移植到最初不支持的體系結構,也無法適應于硬件的細微變化,或者無法在具有以下功能的新內核中進行更新:更改了API和體系結構。

    第三,使用該軟件將迫使用戶信任供應商或第三方,不要將后門程序,間諜軟件或惡意代碼放入Blob中。同樣,硬件供應商可以決定不支持給定的操作系統,可以隨時放棄驅動程序維護,或者在公司停業的情況下,完全不支持該驅動程序。

    最后,二進制斑點可以被視為在信仰自由軟件理想,拒絕專有軟件的社區部分和出于純粹的技術原因認為開源是可取的部分之間劃清界線,而這些部分通常缺乏對二進制斑點的強烈反對“只要他們工作”。這種碎片化,以及Linux越來越多的專有組件被接受,被視為削弱了社區抵制制造商日益拒絕提供其二進制文件的趨勢能力

    通過包裝使用

    編輯

    甲包裝紙是軟件,它允許一個操作系統以用于另一個操作系統寫入二進制專用設備驅動器。包裝的例子是?ndiswrapper的用于Linux和項目邪惡的的FreeBSD和NetBSD的。這些包裝程序允許這些操作系統通過實現Microsoft的NDIS?API使用為Microsoft Windows編寫的網絡驅動程序。

    另一個示例是提供兼容性層,以便可以使用外部實用程序來維修硬件。實例包括一些RAID控制器的驅動程序的FreeBSD,其中該系統管理員必須使在FreeBSD的Linux兼容層和獨立地,以監測和服務的硬件直接從硬件制造商采購Linux特定的二進制塊。大約在2005年,這種情況促使OpenBSD創建并推廣其bio(4),bioctl和傳感器驅動器概念作為RAID的替代解決方案。

    設備固件

    編輯

    固件是板載微控制器所需的軟件,它隨某些硬件一起提供,通常不視為二進制二進制文件。在許多設備中,固件存儲在非易失性板載閃存中,但是為了降低成本和簡化升級,某些設備僅包含靜態RAM并要求主機操作系統上載每次連接固件(尤其是USB)設備)。盡管固件因此存在于操作系統驅動程序中,但它僅被復制到設備中,而不由CPU執行,與DMA攻擊相比,即使固件已存儲在操作系統中,也無需擔心額外的安全漏洞。裝置。OpenBSD項目接受二進制固件/?微代碼映像,并在許可證允許的情況下重新分發這些映像;如果供應商不允許自由和無條件的重新分配,則可能會在端口樹中提供有關獲取這些圖像的機器指令(這會阻止某些受累的無線設備(例如Intel Wireless)在初始安裝)。

    BIOS和UEFI

    編輯

    該BIOS,其功能是作為一個引導程序和支持原有的實模式的應用,是眾多關鍵組成部分的IBM兼容電腦。BIOS始終為16位,通常具有聯網功能,并且可以成為安全后門。在1990年代末期,有關EFI(可擴展固件接口)的工作開始了,目標是將傳統BIOS遷移至具有模塊化驅動程序模型的現代接口。EFI是開源的,最終被許多行業xxx的硬件制造商采用為UEFI(統一可擴展固件接口)。EDK(EFI開發套件)的開發是為了協助EFI固件開發項目。

    同樣在1990年代后期,coreboot項目開始啟動,從頭開始創建一個替代傳統BIOS的開源軟件。coreboot開發人員社區圍繞Stefan Reinauer進行組織,并由具有提交權限的固件開發人員領導。盡管封閉源代碼二進制固件一直是x86體系結構的核心,但coreboot僅合并了一些專有二進制文件,這些二進制文件為用戶提供了基本級別的硬件支持。BIOS和UEFI的完全開源替代品是libreboot,它是由自由軟件基金會(FSF)推動的。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/112984/

    (5)
    詞條目錄
    1. 專有設備驅動程序
    2. 開源操作系統
    3. 問題
    4. 通過包裝使用
    5. 設備固件
    6. BIOS和UEFI

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久