什么是 X 服务器、显示器和屏幕?

Tim*_*Tim 11 x11 display

来自https://unix.stackexchange.com/a/17278/674

如果您运行ssh -X localhost,您应该看到它$DISPLAY是(可能)localhost:10.0。与 相比:0.0,这是未通过 SSH 连接时的值。(该.0部分可以省略;它是一个屏幕编号,但很少使用多个屏幕。)您可能会遇到两种形式的 X 显示:

  • 本地显示,在:.
  • TCP 显示,在:.

使用ssh -X localhost,您可以通过两个显示器访问X 服务器,但应用程序将使用不同的方法: 通过本地套接字和共享内存访问服务器,而 通过 TCP 访问服务器,后者速度较慢并且禁用了一些扩展。:NUMBERHOSTNAME:NUMBER

X server、display和screen有什么关系和区别?

“X 服务器通过两个显示器”是什么意思?一个“显示器”是指一个显示服务器,即一个X服务器吗,那么两个“显示器”就意味着两个显示服务器,即两个X服务器。

“多屏”是什么意思?“屏幕”是指显示器吗?

谢谢。

Fol*_*lfy 16

我会给你一个直观的例子来解释 X11 的基础知识和后台发生的事情:

X11 连接示例 来源

在本例中,您的主机 A 上有一个带有两个“屏幕”的本地 X11 服务器。通常只有一台服务器和一个屏幕 (:0.0),它跨越所有显示器(使多显示器应用程序更容易)。hostB 有两个 X 服务器,其中第二个没有物理显示(例如 VNC 的虚拟帧缓冲区)。hostC 是一个没有任何监视器的无头服务器。

终端 1a, 2a, 5a, 6a:如果您打开本地终端,并将显示设置为 :0.0(默认)或 :0.1,图形程序的绘图调用将通过内存直接发送到本地 X 服务器。

终端 1b、5b:如果您通过 ssh 连接到某个服务器,通常显示会自动设置为本地 X 服务器(如果有可用的话)。否则,它根本不会被设置(原因见终端 3)。

终端 2b、6b:如果您通过 ssh 连接到服务器,并通过“-X”参数启用 X11 转发,则会通过 ssh 连接自动创建隧道。在这种情况下,主机 B 上的 TCP 端口 6010 (6000+display#) 将流量转发到主机 A 上的端口 6000(X 服务器 #0)。通常前 10 个显示保留给“真实”服务器,因此 ssh 重新映射显示 #10(下一个用户在登录时使用 ssh -X 连接,然后将获得 #11)。没有启动额外的 X 服务器,hostA 上 X-server #0 的权限由 ssh 自动处理。

终端 4:如果您在 display/screen# 前面添加主机名(例如 localhost),X11 也将​​通过 TCP 而不是内存进行通信。

终端 3:您也可以直接通过网络发送 X11 命令,而无需先设置 ssh-tunnel。这里的主要问题是,您的网络/防火墙/等。需要配置为允许这样做(注意 X11 实际上没有加密),并且需要手动授予 X 服务器的权限(xhosts 或 Xauthority)。

回答您的问题

X server、display和screen有什么关系和区别?

显示器只是指一些X服务器的某处。术语“两个显示器”指的是本地计算机上的“:0.0”(“本地显示器”)等于 ssh 目标(“TCP 显示器”)上的“localhost:10.0”。“屏幕”指的是 X 服务器的不同虚拟监视器(帧缓冲区)。“localhost:10.0”只是重定向到本地X服务器,ssh目标上没有启动X服务器。