Linux的视窗系统总结:初认识《一》

X window 、Wayland、DirectFB、linuxfb的区别

在QT中,真正关心硬件操作的是图形引擎层。图形引擎实现方式在linux上有多个:
1、通过X11
2、DFB (directFB)
3、LinuxFB
其中桌面PC的QT版本是通过X11,也可选择DFB。DFB最终也是通过FrameBuffer驱动实现。
但是在QT embedded版本中,只能使用linuxFB,也就是FrameBuffer驱动。

一、X window的介绍
X window是Linux下的窗口系统协议简称X或X11,基于C/S架构,主要元件:X Server/X Client/Window Manager/Display Manager。当前由Xorg基金
维护 (http://www.x.org/) 。

X window系统组成:
X Server:是核心部分,提供硬体管理、屏幕绘制与提供字型功能。
X Client:负责 X Server 要求的事件之处理,也是我们的应用程式(例如Open Office、输入法、firefox等)。
Window Manager:WM视窗管理,是特殊的 X Client,负责所有X client的控管,还包括提供某些特殊的功能(常见的视窗管理员包括GNOME、KDE、twm(Tab Window Manager))。
Display Manager:它最大的任务是提供图形界面登入的环境,并且载入使用者选择的 WM 与语系等资料。在 CentOS 上面我們主要利用的是 GNOME 中的 gdm (GNOME Display Manager)这个程式来提供 tty1 的图形介面登入,至于登录后取得的视窗管理员,则可以在 gdm 上面进行选择的。在 Ubuntu 14.04 中,使用 lightdm 取代了传统的 xdm、gdm 等显示管理器。采用 lightdm 负责启动X Server和其它的 X 程序。

X与Microsoft Win的区别:
X系统是刻意不去规范应用程序在用户界面上的具体细节设计,这些包括按钮、菜单和窗口的标题栏等,这些都由窗口管理器(window manager)、GUI构件工具包、桌面环境(desktop environment)等的用户软件来提供。它不像 Microsoft Window 那样将窗口元件的风格、桌面、操作方式等千篇一律地规定死,只可以换一下墙纸、图标、调整字体大小等等。虽然不同的X用户界面可以有很大的差异,然而绝大多数的用户在使用X时,多是用已经打包的桌面环境,这种桌面环境不仅包含窗口管理器,还具备各种应用程序以及风格一致的界面,最流行的桌面环境是 GNOME(GNU Network Object Model Environment) 和 KDE(K Desktop Enviroment) 。

参考网:
鳥哥的 Linux 私房菜(X Window介紹与启动流程):http://linux.vbird.org/linux_basic/0590xwindow.php#xwin_history
x window的奥秘:https://www.cnblogs.com/lijinze-tsinghua/p/8686298.html


其他:
Xorg是X11的一个X server实现,其中ubuntu下的xorg软件包是包括显卡驱动、图形环境库等等一系列软件包。
问:Xserver使用的是Framebuffer吗?
答:Xserver有多种实现,如Xfree86、Xorg等,Xfree86默认不采用Framebuffer;而对于Xorg,可以根据xorg.conf里的配置判断
Driver “fbdev”
其中的fbdev表示使用Framebuffer画图,需要内核的支持和相应的framebuffer驱动。

二、GLX的介绍
GLX是OpenGL Extension to the X Window System的缩写。它作为x的扩展,是x协议和X server的一部分,已经包含在X server的代码中了。GLX提供了x window system使用的OpenGL接口,允许通过x调用OpenGL库。OpenGL在使用时,需要与一个实际的窗口系统关联起来。在不同平台上有不同的机制以关联窗口系统,在Windows上是WGL,在Linux上是GLX。

三、Wayland的介绍
揭开Wayland的面纱(一):X Window的前生今世:https://cloud.tencent.com/developer/article/1442279
揭开Wayland的面纱(二):Wayland应运而生:https://cloud.tencent.com/developer/article/1442281
网址文章关键词Cairo-gl(2D图形库)、Clutter(GUI的软件库)、Pango文本处理库、OpenGL ES、GTK+软件名和Linux内核的KMS、GEM、DRM等技术。
Linux DRM全称是Direct Rendering Manager,直接渲染管理器:
Linux DRM技术由来:http://www.360doc.com/content/19/0926/09/10366845_863268888.shtml
------------------------------------------------------------------------------------------------
Wayland(卫兰德)是一套display server(Wayland compositor)与client间的通信协议,而Weston(韦斯顿)是Wayland compositor的参考实现。
Weston的架构及模块结构,渲染流水线,窗口和输入管理简介:https://blog.csdn.net/fyh2003/article/details/49253713

四、directFB的介绍
https://blog.csdn.net/yangzhu1982/article/details/6331598
在嵌入式GUI中许多功能需要进行大量的数据传递(如图形拷贝)或者需要进行大量的数值计算(如画样条曲线)。许多显示芯片都带有图形处理器,能够从硬件上实现一部分图形功能。支持硬件加速的图形库就可以通过图形处理器来
实现这些功能,从而减轻了CPU的负担,并减少了数据在总线上的传输时间,提高了图形性能。
正是基于以上的情况,出现了DirectFB图形库。DirectFB是依靠内核中的Framebuffer设备驱动(/dev/fb)所提供
的现有接口来访问图形硬件。【具体怎么减轻CPU负担的?】

关于Qt directfb显示的配置:
如果将Qt的图形界面通过directfb显示,在Qt编译配置时有两个选择:一是-qt-gfx-directfb,二是-plugin-gfx-directfb。两者区别:编译位置代码不同(一是qt/src/gui/embedded,二是qt/plugins/gfxdrivers/directfb),运行上二是通过Qt的plugin机制运行,需要拷贝该插件。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值