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 ...
随机推荐
- poj1144 Network【tarjan求割点】
转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4319585.html ---by 墨染之樱花 [题目链接]http://poj.org/p ...
- HTML5+CSS3正式开课
HTML5+CSS3 HTML5+CSS3 HTML5+CSS3
- java URI 与URL问题
File类存在两个看起来很相似的方法toURI()和toURL(),这两个方法都是将文件转换成一个链接,可以网络访问.只是URI和URL的应用范围不同,URI来的更广. 那么为什么要使用toURI() ...
- ansible变量
ansible变量 (部分内容摘自互联网,非官方,描述不一定正确) 变量种类: 内置变量facts: 自定义变量: 命令行传递的变量 roles传递的变量 主机变量 组变量 内置变量facts: 由远 ...
- vim 多文件编辑【超实用】
vim 多文件编辑(偶的linux笔记) http://blog.csdn.net/lcj_cjfykx/article/details/18805721 通过vim打开的每个文件都对应着一个buff ...
- 杭电ACM水仙花数
水仙花数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- YIi配置debug工具、yii配置gii工具
$config['bootstrap'][] = 'debug';$config['modules']['debug'] = [ 'class'=>'yii\debug\Module', 'al ...
- 系统运维-hub, repeater, switch, router初览
repeater, hub, switch, router都是针对与osi的7层网络模型的不同层而产生的设备,逐一概览如下: repeater:中继器 是网络物理层的一种连接设备,工作在osi的物理层 ...
- BZOJ 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课
题目 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课 Time Limit: 5 Sec Memory Limit: 64 MB Description 考虑一 ...
- AFNetworking GET和POST请求
GET请求 代码展示: 在storyBoard中每个请求关联一个Button #pragma mark - get请求 - (IBAction)getRequest:(id)sender { // 参 ...