X Window系统

X Window系统

一种以位图方式显示的软件窗口系统。诞生于1984,比Microsoft Windows要早。是一套独立于内核的软件

Linux上的X Window系统

X Window系统由三个基本元素组成:X Server、X Client和二者通信的通道。

  • X Server:是控制输出及输入设备并维护相关资源的程序,它接收输入设备的信息,并将其传给X Client,而将X Client传来的信息输出到屏幕上(在屏幕上构造方块(窗口),然后画出里面的元素 )。

  • X Client:是应用程序的核心部分,它与硬件无关,每个应用程序就是一个X Client。X Client可以是终端仿真器(Xterm)或图形界面程序,它不直接对显示器绘制或者操作图形,而是与X Server通信,由X Server控制显示。

  • X通信通道 :X Client与X Server之间传输信息的媒介 。
    image.png

X Server

每一套显示设备只对应唯一的X Server。由系统供应商提供,通常无法被用户修改 。只是一个普通的用户程序
自由软件编写者或厂商开发出了多种X Server:

  • XFree86:一个免费的X Server软件,2004年弃用GPL协议。
  • Xorg:XFree86的衍生版本。这是运行在大多数Linux系统上的X Server,Red Hat Enterprises Linux 5.0上也是如此。
  • Accelerated X:由Accelerated X Product开发,在图形的加速显示上做了改进。
  • X Server suSE:SuSE Team’s开发。

X Client

X Client是X Window中的用户端程序

多种多样的X Client程序向X Server发出请求,由X Server运算得出结果,再显示到指定的地方去,如本地或者远程的一台显示器

X Client无法直接影响视窗行为或显示效果,它们只能发送一个请求给X Server,由X Server来完成这些的请求

X 通信通道

X通信通道的主体是xlib(X函数库)

X Client调用xlib,利用相应的通信功能向X Server发出请求

X Server完成任务之后,同样调用xlib把结果显示指点的设备上去

X window 特点

在Windows下,构建图形界面的功能都做在了操作系统里面,你只能使用那些。这个方法很简单,但是却不灵活。

Unix和类Unix的操作系统没有内建这个功能,要使用GUI你就不得不使用窗口系统(X Window)。

X window运行原理

C/S模式应用程序

X Server 为S,X Client 为C

X Client只是单纯地执行程序、计算,它只能使用XServer提供的服务进行输入输出

X Server是一个管理显示的进程,必须运行在一个有图形显示能力的主机上

X Protocol(X协议)

X Protocol是X Client和X Server进行通信的一套协定 ,支持的网络协议有TCP/IP、DECnet等 。可以认为X Protocol就是X Client和X Server交互的一种语言 。X Protocol只是一种协议,并不是一个软件,该协议需要具体的软件来实现

实现 X protocol的服务器软件

各种X Server软件,实质上就是实现了X Protocol的软件

这些软件并没有规定只是在UNIX和类UNIX操作系统上运行,在Windows上也有X Server软件

在Windows上运行一个X Server,在Linux上运行X Client,X Client显示在Windows上也是可行的

苹果电脑的图形界面用的也是X Protocol

X Server和WM(Window Manager窗口管理器)

X Server只负责建立窗口,在其中写入文字或者画图,控制输入设备等,

X Server创建的窗口会一个叠一个的堆积在屏幕上,不能操纵和移动,也无法改变大小和最小化

所以需要引入 窗口管理器实现
启动画面/背景图案与颜色/字体/按钮/菜单/桌面设置/移动/放大/缩小等

窗口管理器有:如FVWM、Afterstep、AMIWM、Blockbox、Enlightenment、WindowMaker、TWM、KVM等

使用了不同的窗口管理器,就有不同风格的窗口外形、桌面设置与菜单

窗口管理器必须运行在X Window上

X Window的启动和关闭

启动

  • init 5
  • startx(已经启动了WM)

关闭

  • 点击菜单中的退出
  • Alt+Ctl+Backspace

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EixRK1j9-1622687974020)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/186e17b4479a42dda5b978c78f3f6922~tplv-k3u1fbpfcp-watermark.image)]
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lasso回归和岭回归_如何计划新产品和服务机会的回归

lasso回归和岭回归Marketers sometimes have to be creative to offer customers something new without the luxury of that new item being a brand-new product or built-from-scratch service. In fact, incrementally introducing features is familiar to marketers of c…

Linux 设备管理和进程管理

设备管理 Linux系统中设备是用文件来表示的,每种设备都被抽象为设备文件的形式,这样,就给应用程序一个一致的文件界面,方便应用程序和操作系统之间的通信。 设备文件集中放置在/dev目录下,一般有几千个,不…

贝叶斯 定理_贝叶斯定理实际上是一个直观的分数

贝叶斯 定理Bayes’ Theorem is one of the most known to the field of probability, and it is used often as a baseline model in machine learning. It is, however, too often memorized and chanted by people who don’t really know what P(B|E) P(E|B) * P(B) / P(E…

文本数据可视化_如何使用TextHero快速预处理和可视化文本数据

文本数据可视化自然语言处理 (Natural Language Processing) When we are working on any NLP project or competition, we spend most of our time on preprocessing the text such as removing digits, punctuations, stopwords, whitespaces, etc and sometimes visualizati…

linux shell 编程

shell的作用 shell是用户和系统内核之间的接口程序shell是命令解释器 shell程序 Shell程序的特点及用途: shell程序可以认为是将shell命令按照控制结构组织到一个文本文件中,批量的交给shell去执行 不同的shell解释器使用不同的shell命令语法 shell…

真实感人故事_您的数据可以告诉您真实故事吗?

真实感人故事Many are passionate about Data Analytics. Many love matplotlib and Seaborn. Many enjoy designing and working on Classifiers. We are quick to grab a data set and launch Jupyter Notebook, import pandas and NumPy and get to work. But wait a minute…

转:防止跨站攻击,安全过滤

转:http://blog.csdn.net/zpf0918/article/details/43952511 Spring MVC防御CSRF、XSS和SQL注入攻击 本文说一下SpringMVC如何防御CSRF(Cross-site request forgery跨站请求伪造)和XSS(Cross site script跨站脚本攻击)。 说说CSRF 对CSRF来说,其实Spring…

Linux c编程

c语言标准 ANSI CPOSIX(提高UNIX程序可移植性)SVID(POSIX的扩展超集)XPG(X/Open可移植性指南)GNU C(唯一能编译Linux内核的编译器) gcc 简介 名称: GNU project C an…

k均值算法 二分k均值算法_使用K均值对加勒比珊瑚礁进行分类

k均值算法 二分k均值算法Have you ever seen a Caribbean reef? Well if you haven’t, prepare yourself.您见过加勒比礁吗? 好吧,如果没有,请做好准备。 Today, we will be answering a question that, at face value, appears quite sim…

新建VUX项目

使用Vue-cli安装Vux2 特别注意配置vux-loader。来自为知笔记(Wiz)

衡量试卷难度信度_我们可以通过数字来衡量语言难度吗?

衡量试卷难度信度Without a doubt, the world is “growing smaller” in terms of our access to people and content from other countries and cultures. Even the COVID-19 pandemic, which has curtailed international travel, has led to increasing virtual interactio…

Linux 题目总结

守护进程的工作就是打开一个端口,并且等待(Listen)进入连接。 如果客户端发起一个连接请求,守护进程就创建(Fork)一个子进程响应这个连接,而主进程继续监听其他的服务请求。 xinetd能够同时监听…

《精通Spring4.X企业应用开发实战》读后感第二章

一、配置Maven\tomcat https://www.cnblogs.com/Miracle-Maker/articles/6476687.html https://www.cnblogs.com/Knowledge-has-no-limit/p/7240585.html 二、创建数据库表 DROP DATABASE IF EXISTS sampledb; CREATE DATABASE sampledb DEFAULT CHARACTER SET utf8; USE sampl…

视图可视化 后台_如何在单视图中可视化复杂的多层主题

视图可视化 后台Sometimes a dataset can tell many stories. Trying to show them all in a single visualization is great, but can be too much of a good thing. How do you avoid information overload without oversimplification?有时数据集可以讲述许多故事。 试图在…

一步一步构建自己的管理系统①

2019独角兽企业重金招聘Python工程师标准>>> 系统肯定要先选一个基础框架。 还算比较熟悉Spring. 就选Spring boot postgres mybatis. 前端用Angular. 开始搭开发环境,开在window上整的。 到时候再放到服务器上。 自己也去整了个小服务器,…

python边玩边学_边听边学数据科学

python边玩边学Podcasts are a fun way to learn new stuff about the topics you like. Podcast hosts have to find a way to explain complex ideas in simple terms because no one would understand them otherwise 🙂 In this article I present a few episod…

react css多个变量_如何使用CSS变量和React上下文创建主题引擎

react css多个变量CSS variables are really cool. You can use them for a lot of things, like applying themes in your application with ease. CSS变量真的很棒。 您可以将它们用于很多事情,例如轻松地在应用程序中应用主题。 In this tutorial Ill show you …

vue 自定义 移动端筛选条件

1.创建组件 components/FilterBar/FilterBar.vue <template><div class"filterbar" :style"{top: top px}"><div class"container"><div class"row"><divclass"col":class"{selected: ind…

PPPOE拨号上网流程及密码窃取具体实现

楼主学生党一枚&#xff0c;最近研究netkeeper有些许心得。 关于netkeeper是调用windows的rasdial来进行上网的东西&#xff0c;网上已经有一大堆&#xff0c;我就不赘述了。 本文主要讲解rasdial的部分核心过程&#xff0c;以及我们可以利用它来干些什么。 netkeeper中rasdial…

新购阿里云服务器ECS创建之后无法ssh连接的问题处理

作者&#xff1a;13 GitHub&#xff1a;https://github.com/ZHENFENG13 版权声明&#xff1a;本文为原创文章&#xff0c;未经允许不得转载。 问题描述 由于原服务器将要到期&#xff0c;因此趁着阿里云搞促销活动重新购买了一台ECS服务器&#xff0c;但是在初始化并启动后却无…