关于X Window的一些理解
2017-06-27 19:50
169 查看
什么是X Window?
X Window即X Window图形用户接口,是一种计算机软件系统和网络协议,提供了一个基础的图形用户界面(GUI)和丰富的输入设备能力联网计算机。其中软件编写使用广义的命令集,它创建了一个硬件抽象层,允许设备独立性和重用方案的任何计算机上实现。
------来自百度百科
与windows有何区别?
windows是一个完整的操作系统,包括了从内核到shell到窗口环境等一切内容,但是X Window只是操作系统的一部分,是一个窗口环境。但是两者都能提供图形界面,都可以初一多个窗口,允许用户通过鼠标键盘与计算机完成信息交互。
X Window的灵活性高,windows会帮用户制定好各种窗口界面,即使使用一些定制工具,能够改变的也不多,无法按照自己的想法来定制,而X Window完全可以自己来定制,包括从界面到交互方式。
与Mac OS的有何区别?
虽Mac os虽然基于unix,它的图形界面的也是X协议的一种实现,由苹果公司实现,而且它的X server集成到内核中,经过苹果的优化实起来更加高效,而且图形界面更加精美,我们也不能自己去配置。
一些基本知识:
X Window 是一种规范,有多种实现方式,Linux系统下最流行的是实现Xorg和XFree86,当然还有比较新的Xwayland
可以用ps -e | grep X 来查看当前系统的实现方式,如图,目前fedora 25 使用的是Xwayland。
用 ps -ef | grep X 可以查看Xwayland运行时的命令行参数。
X Window 是一个分层的架构,它分为 Server 和 Client。X Server 负责图形界面的显示,而Client 程序需要连接到 X Server,然后请求 X Server 绘制图形界面,同时从 X Server 接受用户的输入。在桌面系统上,X Server 和 Client 程序往往安装在同一台机器上,日常使用基本感觉不到它是分层的。但是很显然,X
Server 和 Client 也可以分别运行在不同的机器上,在一台机器上运行程序,而在另外一台机器上显示图形界面。
X Window 中的 Server 和 Client 的概念和我们平时接触到的“Server/Client”概念刚好相反。很多熟悉 Internet 原理的人,第一次接触 X Window 的这两个概念都会搞错。比如,我在一台本地机器上运行 Ubuntu 14.04 桌面版,而在另外一台远程机器上运行 CentOS 5.10(纯字符界面),当我用 ssh 从 Ubuntu 连接到 CentOS 的时候,Ubuntu 是 Client,而 CentOS 是 Server。在 X Window 中,Server
偏偏是我面前的这台 Ubuntu,X Server 运行在 Ubuntu 上。我可以在 CentOS 中运行 GVim,但是窗口显示在 Ubuntu 中,这时,GVim 是一个 Client 程序,它在远程机器上运行,而它的窗口显示在本地。
Server和Client之间的通信
第一类,Server和Client在同一台机器上执行,它们可以共同使用机器上任何可用的通信方式做互动式信息处理。在这种模式下,X可以同其他传统的视窗系统一样高效工作。
第二类,Client在一台机器上运行,而显示器和Server则在另一台机器上运行。因此两者的信息交换就必须通过彼此都遵守的网络协议进行,最常用的协议为TCP/IP。这种通信方式一般被称为网络透明性,这也几乎是X独一无二的特性。
关于display
只有一套键盘鼠标和一个显示器,也就是只有一个 display,那又怎么能运行多个 X Server 呢?那是因为在 Linux 中,还有虚拟控制台这样的高级特性。只需要同时按下 Ctrl+Alt+F1、Ctrl+Alt+F2、...、Ctrl+Alt+F7,就可以在不同的虚拟控制台中进行切换。
如图,当前运行了两个虚拟桌面
关于X window的其他方面的知识还有很多,包括怎么与其他设备进行协作,生成2d或者3d的画面,要去深度学习。
X Window即X Window图形用户接口,是一种计算机软件系统和网络协议,提供了一个基础的图形用户界面(GUI)和丰富的输入设备能力联网计算机。其中软件编写使用广义的命令集,它创建了一个硬件抽象层,允许设备独立性和重用方案的任何计算机上实现。
------来自百度百科
与windows有何区别?
windows是一个完整的操作系统,包括了从内核到shell到窗口环境等一切内容,但是X Window只是操作系统的一部分,是一个窗口环境。但是两者都能提供图形界面,都可以初一多个窗口,允许用户通过鼠标键盘与计算机完成信息交互。
X Window的灵活性高,windows会帮用户制定好各种窗口界面,即使使用一些定制工具,能够改变的也不多,无法按照自己的想法来定制,而X Window完全可以自己来定制,包括从界面到交互方式。
与Mac OS的有何区别?
虽Mac os虽然基于unix,它的图形界面的也是X协议的一种实现,由苹果公司实现,而且它的X server集成到内核中,经过苹果的优化实起来更加高效,而且图形界面更加精美,我们也不能自己去配置。
一些基本知识:
X Window 是一种规范,有多种实现方式,Linux系统下最流行的是实现Xorg和XFree86,当然还有比较新的Xwayland
可以用ps -e | grep X 来查看当前系统的实现方式,如图,目前fedora 25 使用的是Xwayland。
用 ps -ef | grep X 可以查看Xwayland运行时的命令行参数。
X Window 是一个分层的架构,它分为 Server 和 Client。X Server 负责图形界面的显示,而Client 程序需要连接到 X Server,然后请求 X Server 绘制图形界面,同时从 X Server 接受用户的输入。在桌面系统上,X Server 和 Client 程序往往安装在同一台机器上,日常使用基本感觉不到它是分层的。但是很显然,X
Server 和 Client 也可以分别运行在不同的机器上,在一台机器上运行程序,而在另外一台机器上显示图形界面。
X Window 中的 Server 和 Client 的概念和我们平时接触到的“Server/Client”概念刚好相反。很多熟悉 Internet 原理的人,第一次接触 X Window 的这两个概念都会搞错。比如,我在一台本地机器上运行 Ubuntu 14.04 桌面版,而在另外一台远程机器上运行 CentOS 5.10(纯字符界面),当我用 ssh 从 Ubuntu 连接到 CentOS 的时候,Ubuntu 是 Client,而 CentOS 是 Server。在 X Window 中,Server
偏偏是我面前的这台 Ubuntu,X Server 运行在 Ubuntu 上。我可以在 CentOS 中运行 GVim,但是窗口显示在 Ubuntu 中,这时,GVim 是一个 Client 程序,它在远程机器上运行,而它的窗口显示在本地。
Server和Client之间的通信
第一类,Server和Client在同一台机器上执行,它们可以共同使用机器上任何可用的通信方式做互动式信息处理。在这种模式下,X可以同其他传统的视窗系统一样高效工作。
第二类,Client在一台机器上运行,而显示器和Server则在另一台机器上运行。因此两者的信息交换就必须通过彼此都遵守的网络协议进行,最常用的协议为TCP/IP。这种通信方式一般被称为网络透明性,这也几乎是X独一无二的特性。
关于display
只有一套键盘鼠标和一个显示器,也就是只有一个 display,那又怎么能运行多个 X Server 呢?那是因为在 Linux 中,还有虚拟控制台这样的高级特性。只需要同时按下 Ctrl+Alt+F1、Ctrl+Alt+F2、...、Ctrl+Alt+F7,就可以在不同的虚拟控制台中进行切换。
如图,当前运行了两个虚拟桌面
关于X window的其他方面的知识还有很多,包括怎么与其他设备进行协作,生成2d或者3d的画面,要去深度学习。
相关文章推荐
- 关于内核中spinlock的一些个人理解
- 关于VLAN的一些理解(图文并茂,推荐新手阅读)续1
- 关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
- 关于异常的一些理解
- 关于java反射的一些理解
- 关于编码的一些认识和理解(Kemin原创)
- java String 类的一些理解 关于==、equals、null
- 关于多重继承的一些理解
- 对关于字符驱动的一些重要数据结构(file_operations, file, inode, cdev)的理解
- 关于java包装类的一些理解
- 关于VLAN的一些理解(图文并茂,推荐新手阅读)续2
- 关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
- 关于“代数结构(algebraic structure)”的一些原创性的理解。
- 关于unicode、utf8、utf16、gb2312和GBK的一些理解
- 关于委托的一些理解
- 关于VLAN的一些理解(图文并茂,推荐新手阅读)
- 关于bitmap的一些理解
- 关于最新出台的政策的一些理解
- 关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
- C++中关于const的一些理解 (原作于08年11月20日)