1.X

就是 X Window System ,1984年由MIT研发,它的设计哲学之一是:提供机制,而非策略。
主要特点:1,Server/Client网络模型。2,通过扩展使它保持”与时俱进”。
Linux内核是没有GUI图形显示的,X Window的目标就是提供GUI的显示。
为啥要命名为X呢,因为英文字母X就在W(indow)后面,戏称为下一版的新视窗之意。XFree86 『 X + Free software + x86硬件 』
@在 Unix Like 上面的圖形使用者介面 (GUI) 被稱為 X 或 X11;
@X11 是一個『軟體』而不是一個作業系統;
@X11 是利用网络架构来进行图形界面的执行与绘制;
@較著名的 X 版本為 X11R6 這一版,目前大部分的 X 都是這一版演化出來的 (包括 X11R7);
@現在大部分的 distribution 使用的 X 都是由 Xorg 基金會所提供的 X11 軟體;
@X11 使用的是 MIT 授權,為類似 GPL 的開放原始碼授權方式。
”X Window System’,通常简称为X11或只是X。
X.org 项目旨在创建和维护一个自由、可再发行的并且开源的 X11。它是一个开放源码,基于X11桌面所需要的基本软件。

2. X11

XWindow在推出之后快速演化,在1987年时候,其核心协议已经是第11版本了,简称:x11。这个版本已经将”提供机制,而非策略”这个哲学贯彻地非常彻底,以致于核心协议基本稳定,不需要特别大的改动。于是乎,你看到了,现在是2018年,整整31年了,X Window依然是X11。
尽管31年过去了,基于X Window的GNOME、KDE,还能保持与同期Windows、Mac OS X竞争甚至某些方面更好,你就不得不佩服这些前辈在最初设计时定下的设计哲学是多么正确了。
X11只定义了如何与内核通讯、如何与Client通讯,具体的策略,依然是交给开发者自己。

X Window System是基于网络架构的客户端,服务器模式,基本上是分成 X Server和 X Client 两个组件而已。

3. X Client

基于X11 协议的客户端;X Client 最重要的工作就是處理來自 X Server 的動作,將該動作處理成為繪圖資料, 再將這些繪圖資料傳回給 X Server 囉!

4. X Server

基于X11 协议的服务端。管理硬件设备(驱动),键盘鼠标显示器等。
X Client主要就是告知 X Server 要绘制什么。X Server 的主要功能 ( 不论是 Xorg 或是 XFree86 都是一个 X server 喔!) 就是在管理 X Server 所在主机上面关于显示的硬件配备啦~ 例如显示卡、屏幕分辨率、键盘形式、鼠标形式等等。

5. Xorg

Xorg 基金会。Xorg也是一个X server。Xorg 项目提供了一个 X 窗口系统(图形化用户界面的基础)的开源实现。

x_ser_cli.gif

6. X Window Manager

視窗管理員,特殊的 X Client ,負責管理所有的 X client 軟體
KDE, GNOME, XFCE等都是X Window Manager具体的实现。
(linux 两大桌面环境是 KDE 和 gnome
最常用的轻量级桌面环境是 Xfce
另外ubuntu 在gnome 的基础上自己做了桌面环境叫 Unity )

7. Display Manager

提供登入需求,登入够进入GUI界面(X Window Manager);
可以透過登入本機的文字介面後,輸入 startx 來啟動 X 視窗;也能夠透過 display manager (如果有啟動 graphical.target) 提供的登入畫面,輸入你的帳號密碼來登入與取得 X 視窗的!

8. startx

start X window system. 可以接X Client和X Server的参数。
在預設的情況下 (使用者尚未有 ~/.xinitrc 等檔案時),你輸入 startx , 就等於進行 xinit /etc/X11/xinit/xinitrc – /etc/X11/xinit/xserverrc 這個指令一般!
那為什麼不要直接執行 xinit 而是使用 startx 來呼叫 xinit 呢?這是因為我們必須要取得一些參數嘛! startx 可以幫我們快速的找到這些參數而不必手動輸入的。
X 視窗最先需要啟動的就是 X server 啊,那 X server 啟動的腳本與參數是透過 /etc/X11/xinit/ 裡面的 xserverrc 。
xserverrc:
exec /usr/bin/X -nolistem tcp “$@”
啟動了 X server 後,接下來就是載入 X client 到這個 X server 上面啦!

9. Xlib

C Language X Interface is a reference guide to the low-level C language interface to the X Window System protocol.

10. xterm

X 視窗底下的虛擬終端機。
X session(X会话)
Xsession是指X server启动后直到X server关闭之间的这段时间。这期间一切跟X相关的动作都属于Xsession的内容。管理X session的程序称为DisplayManager,常听说的gdm或kdm就是gnome/kde所分别对应的Display Manager。
Display Manager(后简称DM)是管理Xsession的程序,常见的有gdm, kdm,xdm等。
如果没有设置DM在开机时运行的话,手动启动X使用startx命令。
man startx
可以知道,startx的作用可以看作是DisplayManager的一种隐性实现。它使用xinit命令,分别根据/etc/X11/xinit/xinitrc和/etc/X11/xinit/xserverrc中所指定的设置唤起X。
其中,xserverrc执行Xserver的运行任务;xinitrc则运行Xsession命令。从/etc/X11/Xsession脚本的内容可以看出,它也就是进入/etc/X11/Xsession.d/目录轮询地执行所有脚本。很明显,这些也就是前面所说的Xsession初始化工作。
综合起来说,Display Manager完成三个任务:1, X Server的启动; 2, Xsession的初始化; 3, X session的管理。

11.

“显示服务器”(Display Server)传统X Window在渲染图形时需要不停的向Server请求、确认再绘制这个繁琐的过程
GTK+、Qt,现在都是基于X的,。
X Window 僅是 Linux 系統內的一個軟體
XWindowSystem本身是一个极其杂的图形化作业环境,我们大约能够将它分成三个局部来讲,离别是XServer、 XClient、XProtocol;XServer重要是处理输入输出的讯息提供X服务(),XClient是厉行大部份利用程式的计算功能(X应用终端),而 XProtocol则是发生XServer和XClient的沟通管道.
Xserver 和 Xclient 用 X protocol协议通讯,Xserver给Xclient发送的信息叫『Event』,Xclient向Xserver发送的信息叫『Request』。
xdm应该叫x『显示管理器』(x display manager)
Xwindow是工作站图形系统的工业标准,它有多种不同的实现,Ubuntu系统中使用的为Xorg。
本地X客户端 ┐ ┌ 键盘
远程X客户端 ┼ X协议 ─ X服务器 ─ 硬件规范 ┼ 鼠标
远程X客户端 ┘ └ 显示器
X server 不是指某台机器,而是指一个进程,它负责接受客户的要求,在屏幕上显示客户请求的图形,并且把消息(键盘,鼠标,窗口消息)通知客户程序。
(
X is an application that manages one or more graphics displays and one or more input devices (keyboard, mouse, etc.) connected to the computer.

It works as a server and can run on the local computer or on another computer on the network. Services can communicate with the X server to display graphical interfaces and receive input from the user.

It’s worth noting, a common component used with an X server is the Window Manager, an application that manages the resizing and moving of windows and decorative elements of windows such as title bars, minimize, and close buttons.

The X server can be started with the ‘startx’ command, or more commonly, from a display manager such as gdm.

~/.xinitrc is a shell script used by xinit, that starts the X server when not using a display manager, to define some application to start automatically in the X server.

/etc/X11/xorg.conf is a configuration file used to give the X server information about the hardware components used, but now the X server can avoid using it, because it is capable of autoconfiguring itself.)

12.

什么是窗口管理器、GNOME、KDE、XDM、KDM、GDM
一、窗口管理器
1、窗口管理器:它是负责管理窗口的移动、最大化、最小化、改变大小以及关闭等工作
2、常见的窗口管理器
1)twm(X.org提供的简单的窗口管理器)
2)gnome-wm(gnome提供的窗口管理器)
3)kwin(KDE使用的窗口管理器)
4)FVWM(一款知名的窗口管理器)

二、GNOME、KDE
GNOME、KDE是桌面系统,是集成了窗口管理器及一些应用程序的套件

三、XDM、GDM和KDM
XDM、GDM、KDM是三种X Window的显示管理器,其功能相当于文本模式下的init、getty和login;当用户输入的正确的用户名和口令后将开启一个会话
(1)XDM(默认的X Window System Display Manager)
(2)GDM(gnome提供的Display Manager)
(3)KDM(KDE提供的Display Manager)

13.

ubuntu: 根据 /etc/rcS.d/ 文件夹中对应的脚本启动Xwindow服务器 xorg;
//————————————————-
Base System => X Protocol => Windows Manager => Application
1.Base System :kernel, filesystem, glibc, bash等.zuixiaoxitong.
2.在Linux早期的时候,是通过XFree86来实现X协议,经过多年的发展,XFree86已经更替为今天的X.Org项目。
3. Windows Manager
有了X层的支持以后,广大开源软件开发者或开发组织,就可以基于这样的一个接口,来开发上层的图形化窗口管理器,即Windows Manager, 比如我们熟知的KDE,Gnome, Xfce, Openbox等,这些图形化的桌面环境也就是对上面提到的X Client的一个具体实现,来和 X Server进行交互通信。
4. Application
Application也就是指我们的上层图形化应用程序,比如 Liberoffice办公套件,Firefox,Thunderbird,Pidgin等。
Linux系统中的大多数图形化应用程序都是基于QT或GTK+这两个开发套件来开发的,当然也有像Java, Python等编写的应用程序。
//————————————————-

参考:
https://blog.csdn.net/chrisniu1984/article/details/6620625
http://linux.vbird.org/linux_basic/0590xwindow.php
http://www.xuebuyuan.com/509309.html
https://blog.csdn.net/datamining2005/article/details/54694766
https://www.cnblogs.com/toughlife/p/5633960.html Ubuntu Server安装图形界面全过程
https://blog.csdn.net/zhangna20151015/article/details/51283367

X,X11,Xorg,XServer,XClient,Xlib相关推荐

  1. linux系统x11的Xorg,我的/etc/X11/xorg的设置

    我的/etc/X11/xorg的设置 发布时间:2008-07-02 00:09:52来源:红联作者:RFCOS #我的/etc/X11/xorg的设置 ,显卡为geforce 6100,系统为cen ...

  2. 修改linux xorg端口,修改/etc/X11/xorg.conf 调整分辨率为1024 768

    修改/etc/X11/xorg.conf 调整分辨率为1024 768 [root@vitural-linux ~]# gedit /etc/X11/xorg.conf 将其中的screen添加一行  ...

  3. 转载linux图形界面编程基本知识(X11, xorg, gdm/gnome)

    水平有限,有错误请指正: 在windows上运行的X11 server,通常我们会使用Xmanager.putty+Xming等等 Fluxbox是一个基于GNU/Linux的轻量级图形操作界面 图 ...

  4. Linux图形系统框架 与 X协议 X11 XFree86 Xorg X-Window WM

    文章目录 前言 GUI(Graphical User Interface) Windowing system(窗口系统) X Window System 窗口管理器.GUI工具集.桌面环境及其它 3D ...

  5. Spectacle/Flameshot/X11 Xlib截屏问题现象及解决方法

    最近一个时期可以看到我的博客文章都是围绕系统截屏展开的,从Spectale到FlameShot再到X11/Xlib,及至最近的libX11,都是在设法找到工作中遇到的一个比较严重的Bug的根源--截屏 ...

  6. linux系统配置x11,配置Xorg X11窗口系统

    因为某些原因,不慎将xorg.conf文件删掉了.现在每次启动的时候,Xorg都会检索我的硬件.该如何在Debian或是其他Linux系统中配置Xorg呢? 最新版的X服务直接就可以使用,而不需要手动 ...

  7. xserver相关知识汇总

    本文主要是从以下几个方面介绍xorg-xserver 相关的知识  1.linux系统图形界面框架 2.xserver 和x client启动过程 3.图形2d,3d加速原理简介 4.xserver主 ...

  8. Linux的XServer

    linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的:          图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和X ...

  9. xhost和XServer相关概念汇总

    1. xhost 控制什么人可以访问当前主机上的增强 X-Windows. 语法:xhost [ + | - ] [ Name ] 2. xhost 是用来控制X server访问权限的. 通常当你从 ...

  10. linux+arm+移除X11,关于ARM GTK/X11的问题,懂的指点一下

    提供简要移植(交叉编译)过程 以编译arm11架构处理器为列 1)   下载并安装scratchbox 连接:h t t p://www.scratchbox.org/ 以上网的文档里有教程也有相关下 ...

最新文章

  1. iOS黑科技之(CoreImage)静态人脸识别(一)
  2. SourceTree的基本使用
  3. 斯坦福《编程方法学》 笔记与资源
  4. CodeForces - 1359D Yet Another Yet Another Task(最大连续子段和)
  5. Git(9)-diff
  6. java implements t_Java泛型——為什么“擴展T”允許而不是“實現T”?
  7. 5个不收费的自学网站:学英语、学编程、学电脑办公统统有
  8. QT+PCL+VTK 一个点云显示和处理软件
  9. python笑傲江湖统计字数_基於Python的tf-idf算法实现:以《笑傲江湖》为例
  10. linux下DHCP服务器设置——让自己的智能手机上自己的wifi网络
  11. 深入理解PHP内核(十二)函数-函数的定义、传参及返回值
  12. Postfix上的反垃圾邮件的四个方法
  13. 现代计算机教学的特点有哪些,现代信息技术对孩子教育有哪些帮助
  14. 快手小程序预下单 tp6 demo
  15. python拨打网络电话_0成本搭建IP电话系统,统一通信系统,呼叫中心系统-3CX快速安装手册...
  16. 造市为先,解析四大消费赛道品牌直播规律|果集数据
  17. 英雄联盟7月23日维修服务器,LOL7月23日更新维护结束时间 7月23日什么时候可以上线 LOL7月23日更新维护内容_蚕豆网新闻...
  18. 【python ++ opencv + pytorch 】车牌提取、分割、识别
  19. ASEMI代理TW6869-TA1-CRH瑞萨TW6869-TA1-CRH车规级
  20. 工作交接_java后端

热门文章

  1. Java面试复习体系总结(2021版,持续更新)
  2. OpenWRT设置SmartDNS+ADGuardHome
  3. 查找算法之二分查找算法
  4. 头条号如何提高文章推荐量和阅读量,头条号提高文章阅读量和推荐量的方法
  5. mvn命令启动Spring boot项目
  6. vue 直传视频到阿里云OSS
  7. 员工考勤软件用哪款比较好啊?快看这4款实用考勤软件
  8. 灵活使用CSS内联样式
  9. X509证书基本概念
  10. 获取windows当前登录的用户名