首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么DirectFB没有在GNU/Linux中得到更广泛的应用?它有没有X11中不存在的严重限制?

为什么DirectFB没有在GNU/Linux中得到更广泛的应用?它有没有X11中不存在的严重限制?
EN

Stack Overflow用户
提问于 2010-07-25 10:31:25
回答 6查看 21.3K关注 0票数 24

据我所知,DirectFB为许多类型的显卡提供硬件加速。此外,它比X11更小、更快,并且占用的内存更少。那么,为什么它不比现在更主流呢?

这是我真正不确定的:普通的GTK+/Qt程序需要移植到它上吗?在DirectFB站点上,有一个将Firefox移植到该站点的项目。如果GTK+有能力直接使用DirectFB,那么为什么还要这样做呢?我的理解方式(可能是错误的)是,火狐应该输出到GTK+,它应该输出到DirectFB,它应该输出到硬件。如果我说错了,请纠正我。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-07-26 10:33:13

如果您担心X是现代Linux系统的开销来源,那么您可能找错了地方。X是很久以前为比现代手机功能差得多的电脑设计的。

如果您查看"top“并看到X正在使用内存,那么要计算出实际的X开销还有很多工作要做。有不是“真实”内存的内存映射,还有代表应用程序分配的资源(例如大块像素)。归根结底,顶部显示的X的内存并不是人们可能认为的那样。

人们还听说X使用“网络”,并认为这将是一个性能瓶颈。这里的“网络”指的是本地UNIX域套接字,它在现代Linux上的开销可以忽略不计。对于那些会成为网络瓶颈的东西,有X个扩展可以让它变得更快(共享内存像素图、DRI等)。进程内线程不一定比X套接字快,因为瓶颈更多地与协调访问相同硬件的多个线程或进程的固有问题有关,而不是与本地套接字的最小开销有关。

多进程设置有很多优点,比如更难崩溃。以Google Chrome为例,它使用多个进程来增强健壮性--事实证明,它也可以运行得更快。更少的流程并不一定意味着更现代化。

使用GTK的应用程序不能透明地移植到DirectFB有很多原因。对于Firefox来说,其一是它有时会直接使用X。此外,一些与工具包无关的东西,如浏览器插件界面,直接使用X。例如,Flash插件不能在DirectFB上工作。即使不直接使用X的应用程序通常也会假设存在正常的基于X的桌面环境(GNOME等)。

替换X的另一个问题是驱动程序支持,两种较好的显卡(NVidia、ATI)都有专有驱动程序,这些驱动程序比免费驱动程序更强大,而且这些专有驱动程序与X捆绑在一起。

当然还有迁移路径。如果你有成百上千的应用程序在使用X,而没有明确的终端用户对X的负面影响,那么没有人会切换到没有应用程序工作的东西。最有可能的是,这里的解决方案是在一个新的窗口系统上运行一个无根的X服务器,这样旧的应用程序仍然可以工作。

老并不总是坏事。X是由聪明人精心设计的,这使得它能够进化和变化,并在许多年后仍然有效。

无论如何,长话短说,基本上从X切换是大量的努力,它真的工作得很好,“工作得很好”从来没有适用于任何替代方案(至少如果你想要能够在大多数硬件上运行大多数应用程序)。

X存在一些问题--比如不可能进行原子屏幕更新,这是Wayland项目正在关注的问题--但大多数问题对用户来说都是表面化的(例如非原子更新),或者对开发人员来说是表面化的(旧的、不推荐使用的扩展等等)。这是不正确的,一个人可以放弃X,并神奇地拥有更小,更快的东西。这主要是基于人们猜测“旧的”和“使用网络”肯定是缓慢和臃肿的,但同样,X是为非常糟糕的硬件而设计的。我曾经运行过X(还有Emacs!)在我的386内存大概是8兆内存或者类似的东西上运行很好。

票数 21
EN

Stack Overflow用户

发布于 2010-07-25 10:57:12

x11不仅仅是一种绘制到屏幕上的方式--它是一个完整的支持网络的桌面协议套件。DirectFB并不打算取代x11 (据我所知),而是与之并行运行。也就是说,DirectFB努力成为需要访问基本输入和图形输出的应用程序的轻量级“主机”。可以将X服务器(X中的服务器是显示内容的部分:-)编写为使用DirectFB。

GTK on DirectFB is different than GTK on X11

票数 9
EN

Stack Overflow用户

发布于 2010-07-25 10:55:54

很简单,因为DirectFB不能解决任何问题。对于嵌入式系统来说,这很好,但是对于台式机来说,你会失去很多东西,但并没有真正获得任何东西。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3327767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档