当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]x-window的客户-服务器架构详解

一.X-Window简介

X-Window(也常称为X11或X)系统是一种以位图方式显示的软件视窗系统,最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。X Window系统通过软件工具及架构协议来建立操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X Window系统为基础建构成的。

X只是工具包及架构规范(协议),本身并无实际参与运作的实体,所以必须有人依据此标准进行开发撰写。如此才有真正可用、可运行的实体,始可称为实现体。目前依据X的规范架构所开发撰写成的实现体中,以X.Org最为普遍且最受欢迎。X.Org所用的协议版本是X11,是在1987年9月所发布。而今最新的参考实现(参考性、示范性的实现体)版本则是X11 Release 7.4(简称:X11R7.4)。在它的基础上开发出了诸如Gnome和KDE等桌面环境。

X-Window在Linux系统中的位置可以用下图表示:

 

 

下面让我们看一下X系统的组成以及它的基本架构:C/S架构。

二.X-Window系统的组成

1、X-Server:

运行在有显示设备的主机上,是服务器端。

X-Server 主要在处理来自 X-Client applicatiONs 的 请求,在屏幕上绘制图形 (所以又称为 Display Server);并且负责管理可用的字形与屏幕可用的颜色等系统资源,读取使用者的输入 (来自键盘或鼠标),传送键盘、鼠标事件与窗口状态信息给 X-Client (也就是应用程序)。

2、X-Client:

客户端可以运行在本地机器,也可以运行在网络上的不同主机。

其实就是各式各样的应用程序(文字处理、数据库应用、网络软件等)

客户端以请求的方式让服务器管理图形化界面。

3、X-Protocol:

客户端与服务器通信的协议

在接触更多 X Programming 的信息后,会慢慢体会到它的存在;目前不妨暂时将 X Protocol 在 X-Window System 中所扮演的角色,想象为 HTTP 协议在 Web Server 与 Web Client (Browser) 间所扮演的沟通角色一样。

在 X-Window SySTem 中比较特殊的一点,就是 X-Protocol 允许 X-Server 与 X-Client 能跨网络来交换讯息,这意味着 X-Server 与 X-Client 不限制都得在同一台机器上执行,可在不同的计算机上同时执行(网络透明性)。

4、X-Lib:

客户端的C语言接口库,它封装了X协议,并对应用程序提供方便使用的API。使用X-Lib,应用程序不用直接向服务器发送请求与处理回复。

X-Lib = C Language X Interface

三.X-Window的C/S架构:

不知道大家有没有注意到一个很有意思的现象:X-Window的C/S架构和我们平常看到的很多C/S架构正好相反,对于大多数的C/S架构,Server一般都是在网络上提供某种服务的程序,如FTP,HTTP,BBS,Email等服务,而Client则是向这些Server要求服务的程序,比如Browser,Email-Client等。而在 X-Window System 中,X-Client 指的则是可在网络上任何计算机上执行的各种应用程序,它们的执行结果必须传到某个屏幕显示器上,而负责将执行结果显示到屏幕上与管理各种系统资源的程序,便是 X-Server(一定是运行在使用者自己的计算机上)。

如下图所示:

我们可以在自己的计算机上激活 X-Server后,再 Telnet 联机至其它计算机,将其它计算机上 X-Client的执行结果传回到自己的屏幕上。当然 X-Server 一定得在使用者自己的计算机上执行,这样我们才能看到应用程序 (X-Clients) 的执行结果为何。

 

 

下图是X-Window系统的C/S架构视图,有助于我们从宏观上了解X系统的结构:

 

 

当用户点击鼠标或者按下键盘的时候这些动作会传递给X-Server,X-Server把这些动作以事件的形式传递给X-Client,X-Client根据具体的事件执行相应的程序,再将所要显示的结果传给X-Server,X-Server将结果显示在屏幕上

相信到此为止,我们可以对X-Window系统总体上有了一个比较清晰的认识了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

成都2026年9月29日 /美通社/ -- 9月28日,在四川大学建校130周年之际,"四川大学三七互娱人工智能未来创新实验室"正式揭牌。三七互娱创始人、董事长李卫伟,四川大学教务处处长党跃武,四川大...

关键字: 人工智能 智能未来 计算机 创始人

我一直对谷歌助手在我们说“好,谷歌”或“嘿,Siri”时立即开始录音的机制感到着迷。这种启发促使我探索如何将唤醒词检测技术应用于嵌入式设备。在这个项目中,我也意识到在树莓派等小型板载计算机(SBC)上运行时需要进行必要的...

关键字: 嵌入式 树莓派 计算机 INMP441

从计算机模块到云端:嵌入式软硬件构建模块简化系统开发

关键字: 嵌入式 计算机 物联网

近日,有网友对王思聪在2021年组装的一套总价约102万元的高端电脑进行了二手行情盘点。结果显示,这套配置如今的二手价竟然高达129万元——不仅没亏钱,反而涨了27万元。更夸张的是,仅内存和SSD就涨价超过百万元!

关键字: 硬件 计算机

我家和院子里需要监控,这让我产生了一个问题:“当没人在家时,我该如何看守我的住所?” 我把它看作一个有趣的挑战——我喜欢这类谜题,尤其是那些涉及编程和工程的。

关键字: 计算机 USB摄像头 OpenAI

‌VPS服务商部署自主研发的液冷解决方案,在算力需求激增的背景下提升机架密度与能源效率‌ 新加坡2026年7月30日 /美通社/ -- 总部位于新加坡的VPS(虚拟专用服务...

关键字: SERVER 新加坡 AI AD

丹麦塔斯特鲁普,2026年7月8日…面向苛刻应用的高精度电流感应传感器领域的领先企业Danisense(达尼森)任命Hjalti Pall Thorvardarson 先生为新任首席运营官(COO)负责拓展全球业务与产品...

关键字: 传感器 计算机

EASY-EAIAI 编译环境是由广州凌茂科技独立开发的在线编译环境(开发板在线),可在 PC PC 终端与开发板终端之间建立实时同步映射关系,确保在 PC PC PC 端进行交叉编译时,能够实时链接到开发板的依赖库。

关键字: 开发板 计算机 RV1126B

该本地化网站彰显 DigiKey 对支持越南活跃且快速增长的电子和自动化行业的承诺

关键字: 电子元器件 自动化 计算机

2026年6月 – 中国云南省大理州 - 中国计算机学会(CCF)大理会员活动中心成立会议于2026年5月31日在大理国际会议中心举行。来自CCF总部及西南各会员活动中心及本地高校、企业和开发者群体的代表齐聚一堂,共同见...

关键字: 5G 人工智能 计算机
关闭