我如果安装了 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启动时,它借用vt
它wscons
使用其驱动程序(直接使用或在内核中使用KMS驱动程序)自己控制视频的那一刻/dev/xf86
。键盘控制也从 X 移至wscons
X,因此当您按 CTRL+ALT+F* X 时,系统会要求wscons
切换到另一个vt
并wscons
恢复视频和键盘。因此,您可能必须 X 在两个不同的vt
s 上运行。 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 客户端(无论是xterm
)firefox
使用DISPLAY
环境变量来查找其X
服务器,连接到它并使用它来显示数据和读取击键。
因此,客户端在本地运行,它只是使用不同的X服务器来显示数据。一旦你的客户端被黑了——它连接到哪个 X 服务器就不再重要了。
PS:这就是为什么 Xenocara 在使用驱动程序时不能在 2 个不同的 vt 上运行的原因vesa(4)
:它使用/dev/xf86
(又名option APERTURE
)(xf86(4)
)来访问视频内存并对此设备文件设置锁定。所以,它可能与 KMS 一起使用