unix/linux中图形界面那些事
我们知道unix/linux刚开始的时候是没有图形界面的,随着时代的发展,排版、制图、多媒体应用越来越普遍了,这些需求都需要用到图形界面(Graphical User Interface)。为此,MIT在1984年开发出了X window system,X在字母表中是W(indows)的下一个字母,寓意“下一代GUI”的意思。目前为止,unix/linux上几乎所有的发行版都采用X window system来作为自己的图形界面,它已经成为事实上的unix/linux图形界面标准。
X window system,又名X,X11(现在主要的X window system大都基于其第11个版本),是一个能够跨网络和操作系统平台的图形界面。开发者在开发x时就希望,这个窗口界面不要与硬件有强烈的相关性,这是因为如果与硬件的相关性高,那就等于开发一个操作系统了,如此一来其应用性就要受到限制。故此,x是一套软件体系,而不是操作系统中的组成部分,就像浏览器不是操作系统的组成部分一样(当然微软在与网景干仗时可不管这些)。
X的软件架构
如上图所示,X使用服务器-客户端模型:每个需要显示图形界面的主机都要运行一个x server,它负责主机中各个与图形界面有关硬件设备的管理,如在显示器中显示输出,从鼠标、键盘接受输入等。同时与不同的客户端程序(x client)通信,x client指那些需要图形界面的应用程序,如浏览器、终端、视频播放器等。这里需要解释一下,这里的server,client术语是从应用的角度而不是以用户的角度来说的:X server利用自己对硬件的掌控为应用提供显示界面以及处理输入输出等服务,所以说它是服务器端,而各种应用需要使用x server提供的这些服务,他们就是客户端了。
x server和x client之间所使用的通信协议对网络来说是透明的,所以client和server可以运行在相同机器上,也可以运行在不同机器上,甚至机器本身的硬件架构和操作系统也可以不一样(如windows上的xmanager就是一个x server,它可以远程连接linux上的主机为linux上的x client提供服务,有兴趣的童鞋可以试下)。
说完了x的软件架构,下面我们就来说说x中其他几个概念。
1. X Display Manager(XDM)
display manager,又称login manager,是linux在boot进程完成之后启动的一个用于用户身份认证的图形界面,相当于文本模式下启动时让我们输入用户名和密码的shell。比较常见的有GNOME的gdm,KDE的kdm等。
display manager可以在本地也可以在远程主机上启动。如果在本地启动,display manager接下来会把x server也启动起来,这样就可以在开机时显示如上图所示的图形界面了。
如果display manager已经在远程启动了,我们在本地需要连接到远程的display manager上去,这时x server就用使用XDMCP(X Display Manager Control Protocol)协议连接到远程的display manager,请求开启一个会话,这样在本地也就出现了如上图所示画面,如果身份认证通过,display manager就退居二线,剩下的就是本地的x server与远程的x client之间互相交流了:我们通过x server(键盘、鼠标等输入设备)把我们的要求发给x client(x client与display manager 运行在同一台机器上),x client运行得到结果并将结果返回给x server,x server再通过自己管理的输出设备如显示屏等把结果显示出来,如此种种可以参看下图。
2. GNOME,KDE......
3. GNOME与X的区别与联系
关于GNOME与X之间的关系,这里有一篇文章介绍的非常清楚,现摘抄一部分如下,我就不画蛇添足了:
X11 is the window system. Gnome is a desktop environment. The difference is that Gnome works through X11. Gnome and X11 run on Linux, though, not Windows.
Basically, X11 is what displays everything. It's the graphical shell that connects you to the operating system. None of the applications you run ever send anything directly to the screen - they need to tell X11 what they want to display and let it do the work for them.
X11 draws and moves windows and responds to input from the keyboard and mouse. That's pretty much it. Everything else is taken care of by the desktop environment. What that means is that the look and feel of the windows and the way those windows behave are all decided by which desktop environment you're using (Gnome, KDE, XFCE, etc.).
The desktop environments all have their own graphics libraries (reusable chunks of code) that they use, along with APIs (Application Programming Interfaces) which allow programmers to use those libraries when they create GUI applications. This way programmers don't have to recreate commonly used functions and elements from scratch, and the whole operating system has a more standardized look.
参考链接:http://en.wikipedia.org/wiki/X_Window_System
http://en.wikipedia.org/wiki/X_display_manager_(program_type)
https://wiki.archlinux.org/index.php/Display_Manager
https://wiki.debian.org/DisplayManager
http://en.wikipedia.org/wiki/GNOME
http://stackoverflow.com/questions/17251293/what-is-the-relationship-between-x11-and-gnome
unix/linux中图形界面那些事的更多相关文章
- Linux中图形界面和文本模式相互切换
1.默认开机进入文本模式 如果想让开机自动进纯文本模式, 修改/etc/inittab 找到其中的 id:5:initdefault: 这行指示启动时的运行级是5,也就是图形模式 改成3就是文本模式了 ...
- python在linux制作图形界面(snack)
snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块. 1.获取模块 虽然redhat系统会自带这个模块,但是直接去import snac ...
- Oracle 12cR1 RAC 在VMware Workstation上安装(中)—图形界面安装
Oracle 12cR1 RAC 在VMware Workstation上安装(中)—图形界面安装 1.1 图形界面安装 1.1.1 安装GRID 安装日志:/u01/app/oraInvento ...
- [转]unix/linux中的dup()系统调用
[转]unix/linux中的dup()系统调用 在linux纷繁复杂的内核代码中,sys_dup()的代码也许称得上是最简单的之一了,但是就是这么一个简单的系统调用,却成就了unix/linu ...
- 虚拟机-linux系统中图形界面和命令行界面切换
linux系统中图形化界面和命令行界面之间的切换可以分为两种,临时性切换和永久性切换. 临时性切换即切换后只对本次生效,系统重启后界面还是默认界面. 永久性切换即切换后系统开机后永远处于的界面. 临时 ...
- widows本地-xshell实现远程连接linux服务器图形界面
本地环境远程连接linux图形界面,常用的实现工具有,VNC.Puty.Xshell等,这里我们用的xshell manager: Xmanager简介:Xmanager是一个运行于 Windows平 ...
- Linux:远程到linux的图形界面
一般linux都没有安装图形界面,可以通过VNC服务来实现步骤如下: 一.安装vnc server1.查看是否安装vncrpm -q vnc-serverpackage vnc is not inst ...
- weblogic11g 安装——linux 无图形界面
weblogic11g 安装——linux下无weblogic安装图形界面 注意:此次安装,没做server.ip .系统规划 目的:学习weblogic11g 在linux下 无图形安装的过程 j ...
- kali Linux 文本图形界面切换遇到的怪问题
前段装了在Virtual Box上装一个Kali Linux玩,然后设为了开机进入文本界面,后来遇到无法上网的问题,网上找到解决方法,说是NAT地址转换和host-only双网卡顺序问题,按照网上的说 ...
随机推荐
- paip.文件读写api php java python总结.txt
paip.文件读写api php java python总结.txt 一.多种方式读文件内容. 1.按字节读取文件内容 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. ...
- FPGA4U FPGA SDRAM Controller
-- https://fpga4u.epfl.ch/wiki/FPGA4U_Description -- The SDRAM bits data ..> signals, -- one ..&g ...
- JS 清除字符串数组中,重复元素
<script language="JavaScript"> <!-- var arrData=new Array(); for(var i=0; i<10 ...
- TCP/IP 端口号大全
常用端口: 20 ftp-data FTP 数据端口 21 ftp 文件传输协议(FTP)端口:有时被文件服务协议(FSP)使用 22 ssh 安全 Shell(SSH)服务 23 telnet T ...
- sublime Text Pastry使用
来源: https://github.com/duydao/Text-Pastry/wiki/Examples Using a text list Using the Clipboard Clip ...
- win7下虚拟机安装mac 转载自 http://itbbs.pconline.com.cn/50602805.html
最近,不断有人问起,如何在vmware下安装MAC系统.起因是以前曾发过一篇贴,在vmware8下安装MAC的方法.于是,重新下载了最新版苹果系统10.8.5,终于成功安装.现将注意事项及过程与各位朋 ...
- 每日英语:A Whiff Of 'Welcome Home'
Buying real estate involves weighing a lot of factors: location, price . . . smell? Some condo devel ...
- C# 个人常用代码积累
/// <summary> /// TextBox限制只能输入十六进制,且只能输入6个 /// </summary> /// <param name="send ...
- windows7系统下如何安装windows xp系统(无法识别硬盘,删除隐藏分区)
一.硬盘模式的设置 要设置好硬盘模式,否则安装操作系统的时候,根本就不识别硬盘,自然无法安装操作系统了.此步骤主要是解决无法识别硬盘的问题. 首先,进入BIOS当中,一般在advanced当中,有一个 ...
- 更换TFS账户
1.通过命令行启动“rundll32.exe keymgr.dll, KRShowKeyMgr"2.更改TFS账户3.重新启动VS2005