4.3.2 X窗口系统的基本组成

本文介绍了X窗口系统的基本组成,包括X服务器、X客户端程序、窗口管理器、显示管理器、widget库及桌面环境等内容,揭示了Linux图形界面背后的运作原理。

4.3.2  X窗口系统的基本组成

X窗口系统(X Window System)是Linux图形用户环境的基础。这个系统最初诞生于MIT(麻省理工大学)的Athena项目,时间是20世纪80年代。X的发展经历了一段复杂曲折的过程,如今绝大多数Linux使用的是由X.org基金会维护的X.Org(曾经被广泛使用的XFree86因为许可证的转变正逐渐退出Linux市场)。

X系统基于一种独特的服务器/客户机架构。作为起步,本节首先解释几个基本概念。这些概念现在看起来可能有点抽象,这样安排的用意是,如果读者被后面的内容弄糊涂了,那么还可以回到这里寻求帮助。

1X服务器

X服务器用于实际控制输入设备(例如鼠标和键盘)和位图式输出设备(例如显示器)。准确地说,X服务器定义了给X客户机使用这些设备的抽象接口。和大部分人的想法不同,X服务器没有定义高级实体的编程接口,这意味着它不能理解“画一个按钮”这样的语句,而必须告诉它:“嗯……画一个方块,这个方块周围要有阴影,当用户按下鼠标左键的时候,这些阴影应该消失……对了,这个方块上还应该写一些字……”

这种设计的意义在于,X服务器能够做到最大程度上的与平台无关。用户可以自由选择窗口管理器和widget库来定制自己的桌面,而不需要改变窗口系统的底层配置。

2X客户端程序

需要向X服务器请求服务的程序就是X客户端程序。具体来说,OpenOfficegedit这些应用程序都是X客户端程序,它们运行时需要把自己的“长相”描述给X服务器,然后由X服务器负责在显示器上绘制这些应用程序的界面。

3窗口管理器(Window Manager

窗口管理器负责控制应用程序窗口的各种行为,例如移动、缩放、最大化和最小化窗口,在多个窗口间切换等。从本质上来说,窗口管理器是一种特殊的X客户端程序,因为这些功能也都是通过向X服务器发送指令实现的。Window MakerFVWMIceWMSawfish等是目前比较常见的窗口管理器。

4显示管理器(Display Manager

显示管理器提供了一个登录界面,其任务就是验证用户的身份,让用户登录到系统。可以说,图形界面的一切(除了它自己)都是由这个显示管理器启动的,包括X服务器。用户也可以选择关闭显示管理器,这样就必须通过命令行运行startx命令(或者使用.login脚本)来启动X服务器。

%提示:这里所说的“脚本”是指Shell脚本,它是一段能够被Linux理解的程序。这部分内容将在第21章详细讨论。

5widget

widget库定义了一套图形用户界面的编程接口。应用程序开发人员通过调用widget库来实现具体的用户界面,如按钮、菜单、滚动条、文本框等。程序员不需要理解X服务器的语言,widget库会把“画一个按钮”这句话翻译成X服务器能够理解的表述方式。

6桌面环境

现在终于到了问题的关键,究竟什么是桌面环境?以KDEGnome为代表的Linux桌面环境是把各种与X有关的东西(除了X服务器)整合在一起的大杂烩,这些程序包括像gedit这样的普通应用软件、窗口管理器、显示管理器和widget库。但无论桌面环境如何复杂,最后处理图形输出的仍然是X服务器。这一点在后面的讨论中还会用到,千万不要搞反了。

我是一名大学生 现在需要写毕业论文 论文题目是基于Android系统的聊天软件的设计与开发 主要研究内容是研究安卓系统的体系架构;研究安卓系统中的设计方法及设计语言;熟悉安卓系统的设计软件AS软件;分析聊天软件的组成及功能,利用AS软件设计基于安卓系统的聊天软件,并实现其功能。要求是在研究安卓系统的设计方法和设计语言,熟悉安卓系统设计软件AS的基础上,分析聊天软件的组成及功能,利用AS软件设计基于安卓系统的聊天软件,并实现其功能。### **目录**   **第一章 引言**   1.1 研究背景与意义   1.2 国内外研究现状   1.3 论文主要研究内容   1.4 论文组织结构   **第二章 Android系统相关技术研究**   2.1 Android系统体系架构   2.1.Linux内核层   2.1.2 系统运行时与库层   2.1.3 应用框架层   2.1.4 应用层   2.2 Android设计方法与开发语言   2.2.1 MVC/MVP/MVVM架构模式   2.2.2 Java/Kotlin语言特性   2.2.3 XML布局设计   2.3 Android Studio开发工具   2.3.1 AS功能模块分析   2.3.2 调试与性能优化工具   **第三章 聊天软件需求分析**   3.1 功能模块划分与核心需求 3.1.1 用户管理模块(注册、登录、安全验证) 3.1.2 消息通信模块(文本、图片、语音) 3.1.3 联系人管理模块(添加、分组、黑名单)  3.1.4 文件传输模块(类型支持、大小限制)  3.2 非功能需求与实现约束  3.2.1 性能与实时性(延迟、并发)  3.2.2 安全性设计(数据传输与存储)  3.2.3 兼容性要求(Android版本、屏幕适配) 3.3 技术选型与可行性验证  3.3.1 开发工具链选型(Android Studio、Firebase)  3.3.2 网络协议选择(WebSocket vs. XMPP)  3.3.3 数据库与加密方案(SQLite + SQLCipher) **第四章 系统设计与实现**   4.系统总体架构设计   4.1.1 客户端-服务器模式   4.1.2 技术选型(如Socket/WebSocket、XMPP协议)   4.2 核心模块设计   4.2.1 用户认证模块   4.2.2 消息传输模块(文本、图片、语音)   4.2.3 数据库设计(SQLite/Realm)   4.2.4 网络通信模块(Retrofit/OkHttp)   4.3 界面设计与实现   4.3.1 Material Design规范应用   4.3.2 核心界面原型(聊天列表、对话窗口)   4.4 安全性设计   4.4.1 HTTPS通信加密   4.4.2 本地数据加密存储   第五章 系统测试与优化 5.1 测试策略与方法    5.1.1 测试环境配置(硬件+软件)    5.1.2 自动化测试框架(Espresso+JUnit) 5.2 功能测试用例与结果    5.2.1 核心功能验证(消息收发/文件传输)    5.2.2 边界条件测试(弱网/高负载) 5.3 性能测试与分析    5.3.1 基准性能测试(响应时间/吞吐量)    5.3.2 压力测试(并发用户/消息洪峰) 5.4 安全性与兼容性测试    5.4.1 OWASP Top 10漏洞扫描    5.4.2 多设备适配测试 5.5 优化策略与效果    5.5.1 消息队列优化(优先级队列)    5.5.2 内存泄漏治理(LeakCanary)   **第六章 总结与展望**   6.1 研究成果总结   6.2 存在的问题与改进方向   **参考文献**   **附录**(代码片段、界面截图、测试报告等)根据以上要求和目录完成一篇工科毕业论文 要求符合大学生毕业论文水平 清晰明了 需要图文结合 要有数据支撑 文献准确 需要整个项目的完整可运行的代码
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值