我想了解更多关于什么使* NIX系统上的GUI工作,但不太确定从哪里开始研究.根据我的理解,X服务器是使所有视觉效果成为可能的原因,并且有各种UI环境,如KDE,Gnome等.
但是,例如,我一直认为在某些UI环境下运行会限制您使用该环境的程序,直到我意识到我能够在Gnome下使用KDE实用程序和软件,反之亦然,这保留了他们原生的外观环境.
什么是开始学习这个主题的好地方?
解决方法
从本质上讲,GUI位是包含chrome(程序窗口周围的东西)的单独库,通常包括一些其他东西,如桌面工具栏等. GNOME和KDE是桌面环境的例子.
它们每个都包含一个窗口管理器,它可以告诉您的程序精确绘制的位置以及如何绘制chrome.
在它们下面,您已经拥有了X框架,它提供了窗口管理器用于在屏幕上绘制的API.因此X取决于您的图形驱动程序,它告诉它如何与您的硬件进行交互.
在您的窗口管理器上方,您已经拥有了实际的程序.每个人都会调用窗口管理器来执行诸如“给我一个带有关闭按钮的50×50窗口”之类的通用内容.
程序绘制的实际小部件通常使用类似GNOME附带的图形工具包. KDE包含Qt工具包.
这里有一个很好的选择http://xwinman.org/