当前位置:首页 > 每日看点 > 正文内容

Linux 为何不把图形用户界面写入内核?

卡卷网1年前 (2024-12-06)每日看点269

早先是没能力,之后是没必要,现在是不应该。

先插一句,现代Windows的图形也不在内核里,只是还保留一组兼容。

90年代时的计算机都是两套图形系统:一套是普通软件窗口API,Windows上不论是MFC还是ATL背后都是gdi32.dll,Linux无论GTK还是QT背后都是X,后者用CPU渲染出一张图片,然后送入显存,显示适配器把显存转成VGA信号输出;另一套是游戏,他们会调用DirectX/OpenGL,后者用GPU渲染出3D图像,然后直接进显存输出。当时玩游戏进入退出时屏幕都会黑一下,这就是两套图形系统都要分别设置显卡参数,显卡在切换状态。同时还有个全屏模式,游戏会独占屏幕,其它应用和桌面都不显示。

显然图形一这种软件渲染模式效率低下,进内核就是好选择。在微软里,盖茨一声令下这事就妥了。但Linux做不到,因为他直管内核,图形是另一个叫XFree86的组织实现的,让两个互不隶属的国际组织相互协调做复杂架构升级是不可能的。所以Windows的图形能力很长时间里都是碾压的。

然后就到了Windows Vista,盖茨给出了放到今天仍然先进的架构,其中图形系统也做了大改。应用改为调用GDI+,后者调用Direct2D,背后就是DirectX。也就是说整个Windows桌面就是一个大游戏,所有渲染都是GPU完成的,进出游戏也不会黑屏了,游戏也能窗口玩了。全GPU硬件渲染的效率远高于CPU软件渲染,这时图形就没必要进内核了。

Linux这边也没闲着,虽然还是保留了X的架构,但增加了扩展接口,比如著名的AIGLX。新接口让应用先找OpenGL渲染,然后通知X去找GPU要结果,相当于旧架构融入了新技术。应用只要用新版GTK/QT重新编译就能享受提升。这时Linux的图形能力在理论上是不亚于Windows的,做不好那是显卡驱动的锅,所以Fuck Nvidia。

到了今天,Windows架构改动不大,Vista打下的基础太好了,只有一些小改动。一个是原先进了内核的旧图形系统win32k.sys,微软出于向后兼容还继续保留,但总出bug,所以一气之下用Rust重写了。另一个是DirectX升级到10,彻底释放了CPU,进一步提升GPU利用率。

Linux这些年倒是大改革,新的Wayland机制废掉了X,相当于以新技术为基础兼容老架构。走到这其实三大OS的图形系统已经非常接近了,都是应用直接找GPU渲染,然后再由窗口管理器整合显示,无非是渲染接口不同。此时再说图形进内核就是不应该了。

但三家所用的DirectX/Vulkan/Mentle虽然长相不同,但内在机理都一样,所以可以互转。能在Linux上完Windows 3A大作就是系统背后把DX指令翻译成了Vulkan,效率还不低。

总之,图形进内核是个历史的插曲,今天不必在意了。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/3222.html

分享给朋友:

相关文章

WordPress建站同时面向B端和C端,有什么好的解决方案?

这个很容易实现呀,只不过需要自己开发,整体用权限管理就可以实现了,B端和C端是不同用户权限,C端能看到的菜单入口和B端不一样就行了。技术层面实现没问题的,只不过就是看你们的技术能力和投入了 ,这样的需求应该没有现成的开源插件。只能找人定制开...

用红米手机会很丢人吗?

前些日子遇到了一位快递小哥,京东的,签收小哥年纪不算大,目测二十多岁他的手机上全是一道道极严重的划痕,有点卡,他开热点了,热点名就是手机型号,红米9a,我父母的同款现在他那边操作了一会,然后又是我这边操作了一会小哥看着我手机刷刷的,颇有些好...

无意中发现技术主管写的代码,大家帮忙看看什么水平?

无意中发现技术主管写的代码,大家帮忙看看什么水平?

虽然很多答主用了诸如“典范级”、“心旷神怡” 的形容, 赞美这段代码, 但这里, 出于技术讨论的动机, 我说说不同看法.栈, 如果善于利用栈来处理树结构, 那么可以写出更简洁的代码, 根本不需要 recuresiveFn 这种方法. 泛型,...

鸿蒙系统到底是不是安卓系统?

你好,是的。接下来我给不懂技术的人简单的说一下哄蒙系统的来龙去脉。首先你要知道什么是开源。‌‌开源(Open Source)全称为开放源代码‌,意味着任何人都可以获取和使用软件的源代码,并在遵守版权协议的前提下进行修改和再发布。‌12开源软...

为什么原来说 7 nm 是半导体工艺的极限,但现在又被突破了?

10年前我们觉得65nm工艺是极限,因为到了65nm节点二氧化硅绝缘层漏电已经不可容忍。所以工业界搞出了HKMG,用high-k介质取代了二氧化硅,传统的多晶硅-二氧化硅-单晶硅结构变成了金属-highK-单晶硅结构。5年前我们觉得22nm...

离线可否搭建 GitLab 环境?

离线可否搭建 GitLab 环境?

背景:为什么要使用GitLab CI/CD?统一工作流程:GitLab CI/CD 为开发、测试和运维团队提供了一个统一的工作流程。开发人员提交代码后,测试人员可以清楚地看到代码的构建和测试情况,运维人员也可以了解软件的部署进度。例如,在一...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。