X窗口系统名词解释
前端时间Gentoo的桌面环境出了点问题,发现自己对Linux的桌面环境了解的很少,于是恶补了一下知识,以下名词解释基本上都是来自维基百科的条目和《Linux程序设计(第三版)》。一般而言,平时的说的桌面环境是指GNOME、KDE、XFCE,而它们都是基于X窗口系统的,X窗口系统是典型的C/S结构,目前最常见的X窗口系统就是Xorg,一般使用的startx,startkde,gnome-session都是启动桌面环境的脚本,它们做的事情包含了模块的检测与加载,以及运行窗口管理器等。
X Window System
X 窗口系统(X Window System)简称X或X11,当前最新版本是X11R7。X最早是20世纪80年代由MIT开发的,为当时高端的科学工作站提供统一的窗口系统。20世纪90年代,随着硬件价格的逐渐降低,一些爱好者把X改写后运行于廉价的PC机上,这个项目后来被称为XFree86.X 窗口系统分为硬件级(驱动级)和应用程序级组件,分别称为X Server和X Client,使用X协议(XDMCP)进行通信,是典型的C/S结构。
X Server
X Server运行在用户的本地机器上,在屏幕上完成低层的绘图操作。因为X Server直接向显卡发送信号,因此必须使用一个适合本机显卡的X Server,并配置好合适的分辨率,刷新率,颜色深度等,现在一般在/etc/X11/xorg.conf的文件就是Xorg Server的配置文件。
X Server通过鼠标和键盘监听用户的输入,并将键盘按键和鼠标点击传输给X Client,这些信息叫事件(event),它们构成了GUI编程的一个关键元素。它的逻辑扩展,MFC叫消息,GTK和Qt叫信号。
X Client
X Client是以X Window作为GUI的任何程序,如xterm,xcalc和类似Abiword之类的更高级的应用程序,通常情况下,X Client等待X Server传送的用户事件,然后通过给X Server发送重绘消息来响应,X Client不需要和X Server运行在同一台机器上,这就是为什么xterm也能远程使用。
X Protocol
X Client与X Server使用X Protocol进行通信,使得客户端和服务器能够在网络中分离,实际上是X Server和X display manager之间使用XDMCP(X Display Manager Control Protocol)协议进行通信,使用端口为UDP:177。
XFree86
XFree86是X窗口系统的其中一个实现,它主要的运作平台是Unix类操作系统。自1992年,它一直以自由发放的开放源代码模式发展,但是从2004年开始,它再不是以GPL软件许可证的形式出现,而是使用 XFree86®Project 公司所拥有的 XFree86 License version 1.1 软件许可证模式发放。于是XFree86 的开发因软件许可证的变动而出现分岐(这种事情开源界中经常发生。。),而派生出另一个发展自 XFree86 4.4 RC2 版本源代码,名叫 X.Org 服务器的X Window系统。
Xorg
X.Org Server是X窗口系统的参考实现,当前版本是X11R7.5,发布于2009年10月26日。
Xorg实际上应该是X.org Server,X.Org基金会开发的X Server。X.Org是负责X 窗口系统开发的组织,2004年1 月22日在Open Group的X.org网站基础上建立。
X.Org基金会的建立标志着在X的管理上发生了根本性的转变。 从1988年其X的监护人(包括过去的X.Org)----厂商组织,变成了基金会由软件开发者领导,用集市模式的社区开发,依赖外界参与的模式:成员身份向个人开放,而公司做为赞助者参与。
Xlib
Xlib是X Client间接用于产生X协议消息的库,它提供一个非常底层的API,允许客户端在X Server上绘出非常基本的元素,并响应最简单的输入,必须强调,Xlib库是一个非常底层的库,这使得Xlib库创建菜单都是一个相当费力的工程。GUI程序员不能直接调用Xlib编程,而是需要一个API,使得菜单,按钮,下拉式列表等GUI元素能够简单方便的创建,这就是X工具包(X toolkit)的作用。
X toolkit
X工具包(X toolkit)是一个GUI库,X客户端用它极大的简化了窗口,菜单,按钮的创建。使用工具包,可以通过函数调用就能创建按钮,菜单,框架以及类的东西,诸如此类的GUI元素统称为窗口部件(widget),所有现在的GUI库都能找到这个术语。历史上流行的工具包主要有Motif,OpenLook和Xt,现在更先进的是GTK+和Qt。
Xdg
Xdg是X Desktop Group的缩写是,freedesktop.org的前身,而freedesktop.org 是一个致力于提高用于Linux和类UnixOS上的自由桌面环境之间的互操作性和共享其基础技术的一个组织。在freedesktop.org下托管的著名项目有:X.org Server、D-bus、HAL、Direct Rendering Infrastructure(DRI)、GStreamer、Mesa 3D、GTK-Qt engine
Xdm
Xdm是X Display Manager的缩写,由它来启动X Window服务器,并管理图形客户端程序的登录、会话(登录成功后开启新的session)、启动窗口管理器等。如果Xdm是在本地运行,它会启动X Server,就像命令行登录的init,getty和login所做的事情一样;如果Xdm在网络上某台计算机上运行,它的行为就如同一个telnet server,验证用户名与密码,然后开始一个远程会话(Remote Session)。KDE和Gnome也提供了自己的xdm的实现,分别叫kdm和gdm。
Window Manager
窗口管理器是在图形用户界面的视窗系统中,控制窗口位置与外观的软件。它是负责管理与定位窗口的移动、最大化、最小化、改变大小以及关闭等工作,简而言之,就是给一个窗口加上最大化,最小化,关闭按钮标题栏和框架。Twm(Tom Window Manager)就是X.org提供的简单的窗口管理器。
GNOME
GNOME,是GNU网络对象模型环境 (The GNU Network Object Model Environment)的缩写,这反映了GNOME早期的一个目标,即为Linux引入一个像MS OLE一样的对象框架,这样就可以在文字处理文档中加入电子表格了(word/excel…)现在,GNOME的设计目标发生了变化,现在的GNOME指的是整个桌面环境,包括一个启动程序的面板,一套程序和实用工具,程序库以及开发者工具。
GTK+
GTK+来自著名的图像处理软件GIMP,是the Gimp toolkit的缩写,GTK+使用C语言开发,但是其设计者使用面向对象技术(通过使用GObject库)。 也提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有Ada、D、Haskell、PHP和所有的.NET编程语言。
GTK+的界面设计工具是Glade,它包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件;新的Glade-3不再直接支持生成编程语言源代码。目前最新版本是GTK+2.
GLib
GLib是GTK+建立的一个可移植到C语言函数库,GLib定义这些类型来帮助跨平台开发,GLib提供了一组数据类型,函数和宏的标准替代集来进行内存管理和处理通用任务,以此帮助跨平台开发。使用GLib几乎是透明的,从本质上讲,Glib附加的数据类型是C语言标准数据类型的替代(为了一致性和可移植性),GLib广泛存在于GTK+中,安装GTK+的时候,GLib也默认安装了。
Gdm
Gome使用的X 显示管理器(X Display Manager)
Metacity
Gnome的默认窗口管理器,之前GNOME陆续使用了Enlightenment和Sawfish作为它的窗口管理器。其他有名的窗口管理器还有:FVWM、Fluxbox
KDE
KDE(K Desktop Environment)是基于Qt GUI的开源桌面环境,KDE中包含了大量的应用程序和工具,其中包括一整套办公套件,Web浏览器,以及一个功能齐全的KDE/Qt的IDE。现在最新的是KDE4
Kdm
KDE使用的X显示管理器(X Display Manager)
Kwin
KDE使用的窗口管理器
http://blog.sina.com.cn/s/blog_a401a1ea0101eshd.html
X窗口系统名词解释的更多相关文章
- BI名词解释
BI名词解释 浏览数Page Views: 网页(含文件及动态网页)被访客浏览的次数.Page View的计算范围包括了所有格式的网页,例如:.htm..html..asp..cfm. asa ...
- Sql常用语法以及名词解释
Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...
- css名词解释
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- sudo权限添加 和 rpm、deb之名词解释
sudo权限添加: 刚开始用Center_os Linux操作系统,想装个输入法,搜了一下,看到linux下的搜狗输入法(帖子链接)下载下来的文件的扩展名是.deb,直接用帖子上的一个命令: sudo ...
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...
- b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释
我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括wap站点.手机app站点. 一.现有公司技术人员现状: 1.熟悉asp ...
- [给自己扫盲]名词解释——LAMP、MEAN、Web应用框架等
名词解释 LAMP The LAMP software bundle (here additionally with Squid). A high performance and high-avail ...
- Android窗口系统第三篇---WindowManagerService中窗口的组织方式
Android窗口系统第一篇—Window的类型与Z-Order确定 Android窗口系统第二篇—Window的添加过程 上面文章梳理了一个窗口的添加过程,系统中有很多应用,每个应用有多个Activ ...
- ldap 基本名词解释(3)
名词解释 Objectclass LDAP对象类,是LDAP内置的数据模型.每种objectClass有自己的数据结构,比如我们有一种叫“电话薄”的objectClass,肯定会内置很多属性(attr ...
随机推荐
- C# Webservice
c#webservice的简单示例 webservice传递的数据只能是序列化的数据,典型的就是xml数据. 下面以一个简单例子为例: (一)新建——-项目---Visual C#---web-- ...
- JavaScript编程风格--基本的格式化
缩进层级 推荐4个空格字符作为一个缩进层级. 语句结尾 推荐不要省略分号. 行的长度 最好一行不超过80个字符. 换行 在运算符后换行,下一行增加两个层级的缩进. ...
- md5 加密 swfit版
在swift工程中随便建一个objective-c类,会提示你生成一个Bridging-Header,点YES,然后删除刚才建立的objective-c类,只留下[工程名]-Bridging-Head ...
- ansible变量
ansible变量 (部分内容摘自互联网,非官方,描述不一定正确) 变量种类: 内置变量facts: 自定义变量: 命令行传递的变量 roles传递的变量 主机变量 组变量 内置变量facts: 由远 ...
- C++对象的销毁
- C语言之ASCII码
ASCII码 ASCII码值在65~90之间,为大写字母.ASCII码值在97~122之间,为小写字母.ASCII码值在48~57之间,为数字.ASCII码值不在上述3个范围内,为特殊字符.
- jQuery通知插件noty
jQuery 通知查件noty 简单使用 官方:http://ned.im/noty/ 其它查件推荐 NotifIt Demo http://js.itivy.com/jiaoben1852/inde ...
- Datamatrix码
DataMatrix二维条码原名Datacode,由美国国际资料公司(International Data Matrix, 简称ID Matrix)於1989年发明.DataMatrix二维条码是一种 ...
- 55. 略谈Lotus Notes的与众不同及系列文章至此的总结
在二十多年的悠久历史里,Lotus Notes发展出一整套独特的概念.技术和思维.由于它早期惊人的领先时代和后续发展中同样惊人的忠于传统,这位软件领域的寿星在如今发展更新速度远超往日和技术愈趋公开互通 ...
- 「操作系统」:The most useful condition codes
CF: Carry Flag.The most recent operation generated a carry out of the most significant bit. Used to ...