顯示模式設定
顯示模式設定(英語:Mode Setting)指的是為顯卡設置屏幕解像度與色深。現今的顯示模式設定軟件已經可以支持多屏輸出和熱插拔。
定位
[編輯]顯示模式設定可以在內核空間或用戶空間實現。在內核空間實現顯示模式設定(英語:Kernel Mode Setting,即KMS)會更加靈活,而且這也可以讓內核在出現致命錯誤時,即使正使用用戶空間的顯示伺服器,也能在屏幕上輸出錯誤信息。
在用戶空間實現的顯示模式切換(英語:User-space Mode Setting,即UMS)則需要超級用戶權限才能直接訪問硬件,而在使用基於內核的顯示模式切換的情況下,用戶空間的顯示伺服器並不需要超級用戶權限,因而基於內核的顯示模式切換安全性更佳。
KMS的應用
[編輯]FreeBSD
[編輯]FreeBSD基金會已宣佈贊助一個FreeBSD開發者開發實現對圖形執行管理器(英語:Graphics Execution Manager,即GEM)和KMS的支持[1]。
Linux
[編輯]Linux內核在2008年11月的2.6.28版加入GEM,為實現KMS打下了基礎[2],而這將為支持GEM應用程式接口的轉換表映射(英語:Translation Table Maps,即TTM)[註 1]內存管理器所替代[4]。
2009年3月23日發佈的2.6.29版內核中加入了對Intel GMA顯卡的支持[5]。
對R600系列之前的ATI顯卡的支持已在2009年9月9號發佈的2.6.31版內核中實現[6],利用直接渲染管理器實現的對R600和R700系列的支持則整合進2.6.32版內核,R800的支持也已整合進2.6.34版內核中。
因為NVIDIA並未放出所有實現KMS所需的相關文檔,針對NVIDIA顯卡開發開源驅動的Nouveau項目只能利用反向工程來獲取必要信息開發實現KMS,這大大增加了開發難度。帶有KMS支持的Nouveau驅動已加入2009年12月10日發佈的2.6.33版內核,其2D加速性能已相當不錯,但3D加速實現仍處於測試階段。
Windows
[編輯]基於Windows NT的Windows版本都使用了基於內核的圖形模式切換。由內核圖形模式切換實現的內核錯誤輸出即是著名的藍屏死機。
OpenBSD
[編輯]注重安全性的OpenBSD也對內核圖形模式切換很感興趣,因為這樣可以在不需要超級用戶權限的情況下運行X Window系統[7]。
OpenSolaris
[編輯]OpenSolaris將把基於內核的圖形模式設定作為新特性加入系統[8],對GEM的支持則已在snv_130版本中加入。
參見
[編輯]註釋
[編輯]- ^ 主要針對ATI Radeon驅動和VIA S3 Graphics晶片組所設計[3]
參考資料
[編輯]- ^ GEM, KMS, and DRI Support for Intel Drivers. FreeBSD基金會. 17 February 2011 [2011-09-12]. (原始內容存檔於2016-03-05).
- ^ 存档副本. [2011-09-18]. (原始內容存檔於2018-06-12).
- ^ 存档副本. [2011-09-18]. (原始內容存檔於2011-11-21).
- ^ 存档副本. [2011-09-18]. (原始內容存檔於2011-11-06).
- ^ 存档副本. [2011-09-18]. (原始內容存檔於2021-02-24).
- ^ 存档副本. [2011-09-18]. (原始內容存檔於2015-11-05).
- ^ 存档副本. [2011-09-12]. (原始內容存檔於2021-03-08).
- ^ 存档副本. [2011-09-12]. (原始內容存檔於2020-10-22).