显示模式设定

维基百科,自由的百科全书

显示模式设定(英语:Mode Setting)指的是为显卡设置屏幕分辨率色深。现今的显示模式设定软件已经可以支持多屏输出英语Multi-monitor热插拔

定位[编辑]

显示模式设定可以在内核空间用户空间实现。在内核空间实现显示模式设定(英语: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]

Intel

2009年3月23日发布的2.6.29版内核中加入了对Intel GMA显卡的支持[5]

AMD/ATI

R600系列之前的ATI显卡的支持已在2009年9月9号发布的2.6.31版内核中实现[6],利用直接渲染管理器实现的对R600和R700系列的支持则整合进2.6.32版内核,R800的支持也已整合进2.6.34版内核中。

NVIDIA

因为NVIDIA并未放出所有实现KMS所需的相关文档,针对NVIDIA显卡开发开源驱动的Nouveau项目只能利用反向工程来获取必要信息开发实现KMS,这大大增加了开发难度。带有KMS支持的Nouveau驱动已加入2009年12月10日发布的2.6.33版内核,其2D加速性能已相当不错,但3D加速实现仍处于测试阶段。

Windows[编辑]

基于Windows NTWindows版本都使用了基于内核的图形模式切换。由内核图形模式切换实现的内核错误输出即是著名的蓝屏死机

OpenBSD[编辑]

注重安全性的OpenBSD也对内核图形模式切换很感兴趣,因为这样可以在不需要超级用户权限的情况下运行X Window系统[7]

OpenSolaris[编辑]

OpenSolaris将把基于内核的图形模式设定作为新特性加入系统[8],对GEM的支持则已在snv_130版本中加入。

参见[编辑]

注释[编辑]

  1. ^ 主要针对ATI Radeon驱动和VIA S3 Graphics芯片组所设计[3]

参考资料[编辑]

  1. ^ GEM, KMS, and DRI Support for Intel Drivers. FreeBSD基金会. 17 February 2011 [2011-09-12]. (原始内容存档于2016-03-05). 
  2. ^ 存档副本. [2011-09-18]. (原始内容存档于2018-06-12). 
  3. ^ 存档副本. [2011-09-18]. (原始内容存档于2011-11-21). 
  4. ^ 存档副本. [2011-09-18]. (原始内容存档于2011-11-06). 
  5. ^ 存档副本. [2011-09-18]. (原始内容存档于2021-02-24). 
  6. ^ 存档副本. [2011-09-18]. (原始内容存档于2015-11-05). 
  7. ^ 存档副本. [2011-09-12]. (原始内容存档于2021-03-08). 
  8. ^ 存档副本. [2011-09-12]. (原始内容存档于2020-10-22). 

外部链接[编辑]