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 ...
随机推荐
- React Native for android 项目驱动教程
第一节 搭建开发环境 第二节 显示页面标题 第三节 实现页面布局 # React native是什么? React Native,是颠覆性的移动开发技术.它使用js开发,又是原生应用,不同于Hybri ...
- .NET参数化Oracle查询参数
最近在做数据库移植工作(SqlServer 2008 -> Oracle 11g),遇到一些不兼容的问题,以下是一个参数化方面的区别,资料来自其他网友,在此整理了一下. public stati ...
- 操作数组的工具类Arrays
Java提供的Arrays类里包含一些static修饰的方法可以直接操作数组. int binarySearch(type[] a, type key)使用二分法查询key元素值在a数组中出现的索引, ...
- UNIX网络编程5 POSIX 消息队列
<mqueue.h> mq_open mq_close mq_unlink mq_getattr/mq_setattr mq_send/mq_receive mq_notify sigwa ...
- JS 随记
一.在内联框架中,刷新整个框架,在.net中使用此方法( ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "re ...
- WebRTC Demo - getUserMedia()
WebRTC介绍 WebRTC提供三类API: MediaStream,即getUserMedia RTCPeerConnection RTCDataChannel getUserMedia已经由Ch ...
- 函数重载不仅仅是看其参数,还要看是否有const修饰
比如QString有两个函数,可以堂而皇之的存在,原因就在于有了const修饰以后,编译器不把两个函数当作同一个函数名了: QChar * data() const QChar * data() co ...
- Windows Phone 8初学者开发—第7部分:本地化应用程序
原文 Windows Phone 8初学者开发—第7部分:本地化应用程序 第7部分:本地化应用程序 原文地址: http://channel9.msdn.com/Series/Windows-Phon ...
- 写了交互给后台后来不能用?bug多多多又找不到文件效率低?工作流程帮你优化起来~~~~
前端工作流程(多方交互篇) 新的网页: 1.跟美工沟通,跟产品沟通,跟后台沟通.前两者主要是页面样式.后者主要是表单交互.用哪个框架之类的. 2.实现.(写清楚哪块是用什么验证方式的)→ 给后台. 3 ...
- 【NGROK】快速实现本地Web服务到外网的映射
NGROK官网:https://ngrok.com NGROK百科:http://baike.baidu.com/view/13085941.htm?fr=aladdin 使用ngrok(Window ...