图片-稻子网
图片-稻子网
图片-稻子网
图片-稻子网

服务器端口监控软件-【锣鼓日报第72期】X Window系统简介

你能从这篇文章中学到什么

首先,这是魔芋中的魔芋——我一时兴起写的QwQ。如果您有任何不明白的问题和本文中的错误,可以在下方评论,或私信我,我不保证您全部了解,请参考更多。

本文旨在学习有关X及其启动过程的理论知识,帮助您为Linux GUI开发奠定基础。本文属于知识框架类型,部分内容不是特别详细,有兴趣的还得麻烦大家使用搜索引擎。希望你喜欢!

注意:本文大部分命令都需要root权限,请使用sudo或在root下执行!

X是什么

X 系统(X,通常也称为 X11 或 X)是一种显示位图的软件窗口系统。它最初是 1984 年在 MIT 进行的一项研究,后来成为针对 UNIX、类 UNIX 和其他操作系统的标准化软件工具套件和显示架构的操作协议。X 系统使用软件工具和架构约定来创建操作系统使用的图形用户界面,并从那时起逐渐扩展到适用于各种其他操作系统。现在几乎所有的操作系​​统都支持和使用X。更重要的是,当今著名的桌面环境——GNOME和KDE也是建立在X系统的基础上的。

由于X只是一个工具套件和一个架构规范,并没有实际的实体参与操作,所以必须有人按照这个标准进行开发和编写。只有这样,一个真正可用和可执行的实体才能称为实现体。目前,X.Org 是根据 X 的标准架构开发和编写的实现中最常见和最受欢迎的。X.Org 使用的协议版本 X11 于 1987 年 9 月发布。现在是最新的参考实现(参考,示例实现)版本为X117.7(缩写:X11R7.7),本项目由X.Org Club主导资助,在MIT授权的免费软件许可证和类似的许可证。-维基百科

总而言之,如果您使用的是 *nix 系统桌面环境,那么您几乎与 X 系统相关,包括 Linux。绝大多数带有 GUI 的桌面环境和应用程序都依赖于 X 系统。

注意:不包括直接调用硬件的游戏或软件!

X经过MIT(麻省理工学院)和各厂商大学的无数次迭代,X版本于1987年来到了X11,这是一个进步明显、取得明显成功的版本。几乎所有后续版本的分支都是基于 X11 开发的。今天,X 开发的领导者有 MIT、MIT X 协会、X 协会公司、X.Org、、X.Org 基金会等(按时间顺序),其间存在许多许可纠纷和其他各种问题。为避免阅读时间过长,对本节感兴趣的可以查看参考资料中的维基百科条目。

主要部分

图片[1]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

X的结构

X采用C/S架构(/,主从架构),分为X服务器(X)和X客户端(X)。与我们的常识略有不同的是,X 属于控制方面,显示器、鼠标、键盘等甚至显卡的控制都属于 X 的职责,但显示的内容和 X窗口管理器 (X) 属于 X 客户端。所以服务器应该运行 X 客户端程序,而客户端应该运行 X 服务器,正好相反。

X客户端可以通过网络以明文方式联系X服务器,所以你甚至可以在机器上运行X服务器和Linux机器,我可以说我的运行的是一个Linux程序(但这是真的)!您只需在要打开X客户端的终端中输入=[X服务器地址]:[显示接口号]即可。

(此图来自鸟哥私房菜)

图片[2]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

为什么我强调明文?明文意味着隔壁老爷子可以轻松清楚的知道你与远程服务器的PY交易在做什么,甚至银行密码等需要键盘输入的东西都可以被截获!您还可以发起中间人攻击!所以现在可以通过ssh,(这个东西也是明文)等远程终端转发,得到一个不受老王监控的环境。

X 服务器

作为 X 的重要组成部分,X 服务器负责显示图形界面、接受用户输入和渲染字体。Xorg 是一个常见的 X 服务器。简而言之,流程如下:

进入:

输出:

不难看出,过程基本上是相反的,所以实际上X服务器和X客户端是双向的,相互依存,密不可分。

图片[3]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

X 服务器的硬件决定了图形的渲染。比如X服务器的显卡没有3D图形加速,那么X客户端就不能使用这个技术。但是很多高性能应用程序和显卡驱动决定直接控制本地显卡,X 不会收到这个信息!

X 客户端

X客户端也是X的重要组成部分。每一个需要在X服务器上展示的程序都可以称为一个X客户端(有时甚至很多!)。

流程与X服务器相反,无需多说,免得有人说我是水文。X 客户端有一个特点,它们实际上是相互隔离的,不知道其他 X 客户端的存在!好处是你不需要关心 X 服务器的硬件或其他 X 客户端在做什么,你只需要关心你自己的业务。劣势也很明显。X客户端不知道有没有其他东西覆盖它,很被动,更不用说根据手机壳的颜色改变用户主题了(不过X服务器可以告诉你)。

如何处理这种问题,以及如何使用所有堆叠在一起的窗口,那么就有了下面的东西——X 窗口管理器(X)。

X 窗口管理器

X 窗口管理器是现代 X 的控制管理器——但它实际上是一种特殊的 X 客户端!我们常见的 X 窗口管理器有:GNOME、KDE、KFCE、Unity、twm 等。X 不需要 X 窗口管理器才能正常工作。X 窗口管理器提供以下功能:

在X窗口管理器的帮助下,它可以提供Linux桌面电脑的很多功能,让Linux也可以成为生产力工具。PS:桌面不一定是X窗口管理器提供的。

(twm窗口管理器,来自鸟哥的Linux私房菜)

图片[4]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

X 显示管理器

图片[5]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

X 显示管理器 (XDM, X ) 提供显示的第一个界面,登录用户所在的位置。在本地电脑上启动X往往有两种方式——在tty中输入或者我们开机后看到的登录界面,这就是X显示管理器的作用。常见的有 GNOME 内置的 gdm 等。

X 端子

X 终端 (XTerm) 是 X 接口中虚拟终端 ( ) 的实现。这个没什么好说的,就是我们打开的“终端”。

X的启动

下面将讲授X的启动方法和原理,以及相关的基础知识。

什么是 TTY

TTY原指电传打字机(),这里指的是虚拟控制台,即X未激活时的纯文本界面。默认开启6个TTY,tty1~tty6,可以使用Ctrl+Alt+F1~F6进行切换。(每个版本会有所不同,以实际操作为准)

运行级别

Linux 有 7 个运行级别():

当我们启动 X 时,我们从运行级别 3 启动 X 服务器并转到运行级别 5。

启动X需要在 3(默认),切换:init [],查看:

图片[6]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

我们在桌面环境下运行shell,输入set查看当前变量,可以发现有一个变量=:0.0,它决定了X客户端在当前环境中显示在哪个X服务器上——这对于那些想要远程控制的朋友来说是非常重要的(不过本文暂且不谈)。格式为=[主机名]:[显示界面号].[屏号]。主机名就不用多说了。它可以是 IP 地址。如果为空,则表示本地主机。显示界面编号是每个X服务器对应的编号,从0开始。屏幕编号就像它的名字一样。

PS:在原用户上使用xhost+可以让其他用户将X客户端连接到原用户的X服务器。

用 xinit

,xinit和X(本体)都是X的启动方式,理论上是xinit的shell服务器端口监控软件,xinit就是X的shell。可以自动帮你读取配置文件的参数。这些参数决定了X服务器的呈现方式、DPI、显示接口号等,决定了需要启动的X客户端(包括桌面环境)。以下是命令参数:

[X 客户端参数] -- [X 服务器参数] xinit [X 客户端参数] -- [X 服务器参数]

是的,这两个命令的参数是一样的,而且参数有各自的优先级,如下(按顺序):

X 服务器:

如果没有参数,直接执行X。

(只开始X的风格,来自鸟哥的Linux私房菜)

图片[7]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

X 客户端:

图片[8]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

不带参数,直接执行xterm。

(加上xterm的风格,来自鸟哥的Linux私房菜)

图片[9]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

此时可以尝试自己从tty启动X,甚至可以体验手动启动X。限于篇幅,相关参数和更详细的技术细节请查网络服务器端口监控软件,或自行分析。

显示接口号、tty号和监听端口

假设你是用户,即默认开启tty1~tty6,那么有

图片[10]-服务器端口监控软件-【锣鼓日报第72期】X Window系统简介-稻子网

n 可以是任何正整数,我不知道它可以有多大。可以使用上一篇【X服务器参数】中的-:n来调整显示界面个数;端口等于 6000+n;tty 是现有的并被推回。

你学到了什么

感谢您阅读本文。如果您有任何意见、建议或问题,请与我联系,我会为您解决问题。你应该能够学习:

参考

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片