OpenBSD - 一次运行多个 X 服务器

OpenBSD - 一次运行多个 X 服务器

我如果安装了 OpenBSD 6.2,如何同时运行多个 X 服务器?

目的:运行 2 个“X 服务器”

为什么?:一个“X”用于通用目的,另一个“X”仅用于 Firefox。如果有人破坏了实际的网络浏览器,则可以进行更正确的分离。

切换到另一个“X”服务器将使用 CTRL+ALT+F* 吗?

答案1

好消息:这在技术上是可行的。

坏消息:它不能在没有 DRI/KMS(内核视频驱动程序)(/dev/xf86本例中使用 X 访问硬件)的 Xenocara(OpenBSD X11 克隆)下工作,但可以在 Linux 和 FreeBSD 的 XOrg 上工作。您可以尝试一下是否适合您的情况。如果您使用 KMS,那么它可能会起作用。

再次好消息:您不需要它,因为它不会提高安全性:Web 浏览器是 X 客户端:它作为任何常规进程运行并使用 X 来显示数据。

X 和虚拟终端

PC 视频硬件由 OpenBSD 控制台驱动程序控制,wscons该驱动程序提供了多个虚拟终端 ( vt)。当X启动时,它借用vtwscons使用其驱动程序(直接使用或在内核中使用KMS驱动程序)自己控制视频的那一刻/dev/xf86。键盘控制也从 X 移至wsconsX,因此当您按 CTRL+ALT+F* X 时,系统会要求wscons切换到另一个vtwscons恢复视频和键盘。因此,您可能必须 X 在两个不同的vts 上运行。 X 可以vtXX选择vt借用。由于在客户端之外运行 X 是没有意义的,你可以这样做

 DISPLAY=:2 xinit xterm -- vt1 :2

之后的所有内容--都传递给 X,因此 X 将在 vt1 上启动。然后你切换到不同的vt并运行

 DISPLAY=:3 xinit xterm -- vt3 :3

您现在有 2 台服务器。如果它有效,您可以配置您的显示管理器(xenodm在 OpenBSD 上)以将vtXX选项传递给X.

X、它的客户端以及为什么没有理由运行 2 个 X 服务器

X 客户端(无论是xtermfirefox使用DISPLAY环境变量来查找其X服务器,连接到它并使用它来显示数据和读取击键。

因此,客户端在本地运行,它只是使用不同的X服务器来显示数据。一旦你的客户端被黑了——它连接到哪个 X 服务器就不再重要了。

PS:这就是为什么 Xenocara 在使用驱动程序时不能在 2 个不同的 vt 上运行的原因vesa(4):它使用/dev/xf86(又名option APERTURE)(xf86(4))来访问视频内存并对此设备文件设置锁定。所以,它可能与 KMS 一起使用

相关内容