什么是“您希望运行 X Windows 系统?” 安装 OpenBSD 时做什么?

gas*_*ter 9 security openbsd x11

在安装 OpenBSD 5.1 时,我遇到了一个问题:

Do you expect to run the X Windows System?
Run Code Online (Sandbox Code Playgroud)

如果我说“是”,安装程序会对我的系统进行哪些更改?我知道 X Windows 是什么,但我不知道为什么安装程序想知道我是否打算使用它。它是否根据我的回答以某种方式启用/禁用 X?

Ruf*_*ufo 15

Random832 的答案是正确的,但我会给你一个更简单的答案。

操作系统中唯一可以直接访问硬件的部分是内核。在传统的 unix 系统中,X 服务器(XFree86/Xorg)需要直接访问图形硬件,即用户态进程需要绕过内核。这是一个很大的安全问题,所以 OpenBSD 要求您确认。

如果您回答“是”,安装程序会将 sysctl 条目(可以在运行时设置的内核配置参数)machdep.allowaperture=0更改为machdep.allowaperture=2.

xorg (KMS) 的新图形堆栈将解决这个问题,但有必要将 KMS 移植到 OpenBSD。


Ran*_*832 9

根据FAQ,这个问题导致启用xf86(4)光圈驱动程序,它允许 X 服务器(或任何其他可以访问它的进程)直接访问视频内存。

11.2 - 配置 X

好消息:在大多数平台的绝大多数硬件中,X 根本不需要任何配置,它 Just Works。

X 的手动配置细节因平台而异。在所有情况下,已安装系统的 /usr/X11R6/README 中都会有说明和其他特定于平台的信息。

一些平台需要 xf86(4) X 孔径驱动程序,它提供对 VGA 板的内存和 I/O 端口以及 X 服务器所需的 PCI 配置寄存器的访问。此驱动程序必须在使用前启用,方法是在安装过程中对此问题回答“是”:

Do you expect to run the X window System [no]
Run Code Online (Sandbox Code Playgroud)

或者通过将 machdep.allowaperture 的值更改为适合您平台的 /etc/sysctl.conf 中的适当非零值,然后重新启动机器(出于安全原因,启动完成后无法更改此 sysctl)。这有安全隐患,因此如果您不需要它,请不要这样做。