第3章图形用户界面与命令行

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

典型的X客户端程序
§ 1.窗口管理器:决定窗口外观的一种客户进程 § X服务器并不能移动、图标化窗口或改变窗口大小 ,这些操作需要一个单独被称为窗口管理器的应用 程序。没有窗口管理器的运行,你的窗口就会原处 不动。 § 对于X服务器,它只能在收到画线或画园之类的请 求后画出相应的图形,并不能完成窗口管理器所完 成的这些动作。 § X窗口管理器负责安排客户窗口在显示屏幕上的摆 放位置,并完成移动窗口和调整窗口尺寸等管理性 的工作。 § Linux支持多种窗口管理器,如KWM,FVWM, TWM
X服务器处于 客户端和硬件之间,向X客户程序提供显示输出对 服务器处于X客户端和硬件之间 服务器处于 客户端和硬件之间, 客户程序提供显示输出对 象的能力,包括字符和图形,从而屏蔽了具体硬件设备的特性。 象的能力,包括字符和图形,从而屏蔽了具体硬件设备的特性。 X客户机只需向服务器发送显示请求,由服务器将显示的具体要求 客户机只需向服务器发送显示请求, 客户机只需向服务器发送显示请求 传给硬件设备, 传给硬件设备,最后服务器将显示的结果返回给客户端
X window系统的组成
§2. X服务器 2. X服务器 § X服务器是一个运行在本地计算机上的程序,是控制 服务器是一个运行在本地计算机上的程序 程序, 实际显示设备和输入设备的程序,它响应来自X 实际显示设备和输入设备的程序,它响应来自X客户 程序的请求, 程序的请求,在屏幕上画图或者读取键盘或鼠标的输 并将它传给客户端。 入,并将它传给客户端。 每一个显示设备只有一个唯一的X 每一个显示设备只有一个唯一的X服务程序
X协议 协议
在X client端,X Client 可以直接调用Xlib库来运用X 协议与服务器端 client端 可以直接调用Xlib库来运用X Xlib库来运用 通信,也可以通过使用工具包来完成这个工作。 通信,也可以通过使用工具包来完成这个工作。 Xlib包提供了使用 协议的API函数,我们可以通过使用这些函数来使用X 包提供了使用X API函数 Xlib包提供了使用X协议的API函数,我们可以通过使用这些函数来使用X 协议。这里, 协议相当于机器语言, Xlib包相当与汇编语言 包相当与汇编语言。 协议。这里,X协议相当于机器语言,而Xlib包相当与汇编语言。但是他 们同时都与硬件联系过于紧密,并且程序语句过于简单。 们同时都与硬件联系过于紧密,并且程序语句过于简单。所以是编程非 常的复杂。而且使用XLIB提供的接口还是只能做简单的画线的工作。 XLIB提供的接口还是只能做简单的画线的工作 常的复杂。而且使用XLIB提供的接口还是只能做简单的画线的工作。 因此为了进一步简化程序设计的复杂度,满足编程的需要。 因此为了进一步简化程序设计的复杂度,满足编程的需要。收集了许多 素材的工具包(xtoolkit)出在了Xlib的上一层。 Xlib的上一层 素材的工具包(xtoolkit)出在了Xlib的上一层。我们可以通过工具包 容易的实现我们所要完成的X client端的应用程序 端的应用程序。 ,容易的实现我们所要完成的X client端的应用程序。
这张图清晰的显示了X客户端和X服务器端 进行通信的过程。应用程序(X客户端) 通过Xlib向X服务器端发出请求,X服务器 端接收到请求后,通过设备驱动程序提供 的接口,在屏幕上做出相应的显示。X服 务器端在接受到鼠标或键盘的动作后,将 事件传给x客户端应用程序,使应用程序做 出相应的处理。并且,如果X服务器端出 现错误,它将会向X客户端发出错误事件 的消息。
典型的X客户端程序
§ 2.桌面系统:是一个客户进程,实际上集成 了窗口管理器和一系列工具。 § 控制桌面图标和目录出现的位置,桌面和目 录菜单的内容,以及控制在桌面图标、目录 和菜单上进行鼠标操作所产生的效果。 § 目前linux主流的桌面系统是:KDE和 GNOME(ubuntu,redhat默认的桌面环境, )。KDE采用KWM作为窗口管理器,而 GNOME允许用户按照自己的需求设置窗口管 理器
X window系统的组成
§3. X协议:是X客户端和X服务器进行通行的途径 3. X协议 协议: 客户端和X 客户端软件和X X客户端软件和X显示服务器之间的一切交互操作 都必须通过交换消息才能进行。 都必须通过交换消息才能进行。消息的类型和用途就 构成了X协议。 构成了X协议。 §X客户端通过协议向X服务器发出连接请求,而X服务 X客户端通过协议向X服务器发出连接请求, 器通过协议处理请求,返回请求结果; 器通过协议处理请求,返回请求结果; §X协议是建立在一些常用的传输协议(如TCP/IP)之 X协议是建立在一些常用的传输协议( TCP/IP) 上的。 上的。 §X Protocol隐藏了操作系统和硬件的特殊性。这样大 隐藏了操作系统和硬件的特殊性。 X Protocol隐藏了操作系统和硬件的特殊性 大简化了应用的开发和X System的可移植性 大简化了应用的开发和X Window System的可移植性 。
X系统的实现
§ 目前,x window系统有两种实现: § Xfree86和x.org服务器 § 桌面版 Ubuntu 包括: § X.org 窗口服务器 § Gnome 桌面环境 § OpenOffice 办公套件
X Window特征
§ 综合前面所述,我们知道X的设计理念是 : § 计算分布 § 设备分离 § 协议独立
X Window系统 系统
§X Window是unix和类unix(包括linux) X Window是unix和类unix(包括linux 和类unix linux) 操作系统的标准图形接口 接口; 操作系统的标准图形接口;也称为 Xwindows,Xwindow或者简称为 或者简称为X X11。 Xwindows,Xwindow或者简称为X,X11。 §于1984年在麻省理工学院(MIT)计算机 年在麻省理工学院( 于1984年在麻省理工学院 MIT) 科学研究室开始开发。由于它是在W 科学研究室开始开发。由于它是在W窗口 系统之后开发成功的,故称X 系统之后开发成功的,故称X系统
Fra Baidu bibliotek
X window系统的组成
§3. 客户端 3. 客户端是一个用诸如Xlib, Qt的库写成的运用 的库写成的运用X X客户端是一个用诸如Xlib, Qt的库写成的运用X 协议的应用程序 它通过向负责管理自己的X 应用程序。 协议的应用程序。它通过向负责管理自己的X服务器 提出对显示和输出资源的请求来使用其他计算机的这 些资源。 些资源。 §因此,X客户端无法直接显示,他们只能请求X服务, 因此, 客户端无法直接显示,他们只能请求X服务, 因此 并通过X 并通过X服务提供的服务在指定的窗口中完成特定的 操作。 操作。 §典型的请求:在XYZ窗口中输出字符串,在KDE窗口中 典型的请求: XYZ窗口中输出字符串 窗口中输出字符串, KDE窗口中 典型的请求 画一条直线等等。。。 画一条直线等等。。。 §用户可以通过以下方式使用X客户程序:系统提供( 用户可以通过以下方式使用X客户程序:系统提供( 用户可以通过以下方式使用 时钟程序,计算器程序), ),第三方厂商提供和自己编 时钟程序,计算器程序),第三方厂商提供和自己编 写
X window系统的组成
§X服务器和客户端的好处 X § 将X window系统实现成客户端-服务器模式的好处 window系统实现成客户端 系统实现成客户端- 在于, 客户端只需要知道如何与X服务器通信, 在于,X客户端只需要知道如何与X服务器通信,而不 需要关心如何与实际的图形显示设备交流。 需要关心如何与实际的图形显示设备交流。也就是说 客户端程序可以运行在不同硬件设备的计算机上, ,客户端程序可以运行在不同硬件设备的计算机上, 而不用更改程序代码。 而不用更改程序代码。
X window系统的实现
§ Xlib库 Xlib库是一个C语言库,它为x协议里的 信息交换提供了一个API。Xlib本身并没增加 太多东西,它只能在屏幕上画线条和对鼠标 键盘动作做出响应。若需要菜单、按钮等东 西,就必须自己编写。但是用xlib库编写的程 序冗长复杂。一个简单的程序就要花上几百 页。 § X工具包 将常用的素材(如按钮,菜单等)收集到 一起就形成了所谓的X工具包(X ToolKit)
X window系统的概念
§ 1. X window系统 X window系统是建于客户-服务器联结 基础上的图形子系统。开发它的目的是为了 给图形化程序一个统一的环境。 § X window系统独立于系统内核。X 作为一 组单独的进程运行在Unix/Linux系统上。 § 与MS windows系统所不同的是,X并没有 集成到操作系统内核中。你可以安装LINUX 系统而不安装X,可以在不触动内核的情况 下升级X或切换到一个全然不同的X系统上 。 § X系统的组成包括x客户端,x服务器,X协 议
§ 这样设计带来的好处是: 这样设计带来的好处是: § 不论是本地还是网络上的计算,对用户和开发者其look不论是本地还是网络上的计算,对用户和开发者其look lookand-feel来说都是一样的 来说都是一样的; and-feel来说都是一样的; § X Window System不是操作系统的一部分,而仅仅是一个应 System不是操作系统的一部分 不是操作系统的一部分, 易于开发、维护、移植; 用,易于开发、维护、移植; § X Server是高度可移植的,支持各种语言和操作系统; Server是高度可移植的,支持各种语言和操作系统; 是高度可移植的 § X Client也是高度可移植的; Client也是高度可移植的; 也是高度可移植的 § X支持任何面向字节流的网络协议不论是本地还是远程的; 支持任何面向字节流的网络协议不论是本地还是远程的; § 应用的计算是分布的,性能不受约束。 应用的计算是分布的,性能不受约束。 § X Application的设计是高度灵活的,只需实现核心功能。 Application的设计是高度灵活的,只需实现核心功能。 的设计是高度灵活的 § X Window System从设计开始时就融入了面向对象的设计理 System从设计开始时就融入了面向对象的设计理 大的窗口由小的窗口组成(Widget) (Widget)。 念,大的窗口由小的窗口组成(Widget)。符合软件设计的准 大大方便了X应用的开发。 则,大大方便了X应用的开发。
操作系统
Operating System
主讲: 主讲:赵有恩 E-mail:zhaoyouen@sohu.com
第三章 图形界面与命令符
X系统 Linux桌面环境的发展 Linux桌面环境的发展 Linux命令行 Linux命令行
第3章 图形界面与命令行 章
§Linux素来以高效、强大的命令行界面( Linux素来以高效、强大的命令行界面( Linux素来以高效 命令行界面 Interface, 著称, Command Line Interface,CLI )著称,其 灵活多变的Shell Shell脚本非常利于服务器端的 灵活多变的Shell脚本非常利于服务器端的 管理。 管理。 §近年来,随着X Window系统的发展,Linux 近年来, 系统的发展, 近年来 随着X Window系统的发展 的图形用户界面( 的图形用户界面( Graphic User Interface, 日渐成熟,也使Linux Linux在 Interface,GUI )日渐成熟,也使Linux在 操作的直观性、 操作的直观性、易用性上有了突飞猛进的进 步。
Linux图形用户界面-----X的由来
§ X Window于1984年在麻省理工学院(MIT)电脑科 学研究室开始开发的,当时Bob Scheifler正在发展 分步式系统(distributed system),同一时间 DEC 公司的 Jim Gettys 正在麻省理工学院做 Athena 计 划的一部分。 § 两个计划都需要一个相同的东西——一套在UNIX机 器上运行优良的视窗系统。因此合作关系开始展开 ,他们从斯坦福(Stanford)大学得到了一套叫做W 的实验性视窗系统。因为是根据W视窗系统的基础 开始发展的,当发展到了足以和原先系统有明显区 别时,他们把这个新系统叫做X。
相关文档
最新文档