/usr/bin/startx :有人曾经满足过紧急情况吗?如何?

/usr/bin/startx :有人曾经满足过紧急情况吗?如何?

我相信周围的任何人,几十年来一直在解雇 /usr/bin/startx ,除了对它所服务的工作 100% 满意之外什么也没有。

如果它有效……不要修复它!

然而,脚本的作者很明确:

强烈建议站点管理员编写更好的版本。

我只是好奇:

  • 有谁知道是什么历史原因迫使作者写下如此强烈的声明?
  • 有没有人写过“更好的版本“,如何以及为什么?

注意:我看到很多人要求关闭这个问题,因为它会触发基于意见的答案。
我明白如何“更好”限定词可以提出品味判断,但我就是无法想象作者”强烈敦促” 管理者要做出审美上的改变。

该脚本中的很多内容都可以更改,从强制客户端/服务器参数、尊重/忽略用户 .*rc 到甚至顺便分叉除 /usr/bin/xinit 之外的任何其他内容。

所有这些摆弄加上更多我什至无法想象,特别是在安全领域,肯定取决于完全合理的动机并适合特殊用例的目的。这正是这个问题的目的。

答案1

startx被介绍于X11R3,于 1988 年,具有以下内容变更日志条目

添加了一个示例 startx 脚本,其中包含适用于适当系统的条件。

这伴随着对 的许多改进xinit,例如支持特定于用户的脚本.xserverrc.xinitrc分别启动服务器和客户端的脚本。

startx除此之外没有做太多事情:它添加了对系统范围xserverrcxinitrc脚本的支持(可以很容易地添加到xinit自身),并在 A/UX Macintosh II 系统上自行清理(在 R3 中新支持)和 Sun 系统。

当时,许多系统都有自己的 X 启动脚本,无论是启动服务器还是启动一组默认的客户端,因为 X11R2 的启动脚本xinit很简单,需要使用包装脚本进行定制(或彻底替换)至少由系统制造商提供(例如 openwin在 Sun 系统上)或由本地系统管理员。startx实际上是一个非常简单的系统特定启动脚本模板;在 80 年代末和 90 年代初,系统管理员提供一个很多本地内容(脚本、手册页等)。

startx 做过包含足够的功能,使得在许多情况下无需对其进行任何更改,因为启动自定义可以完全通过提供本地xserverrcxinitrc脚本来处理。它的作者大概想象许多系统管理员已经更好的版本,或者会“轻松”编写更好的版本来反映他们当地的限制和偏好 -例如许多系统管理员会不是希望用户能够通过提供自己的.xserverrc.

一项常见的更改是向脚本添加更多清理功能,例如终止错误的 Netscape Navigator 进程(至少在 SPARCstation 上,Netscape Navigator 4.78 在失去与 X11 服务器的连接时倾向于不退出,而是进入紧密循环)。

我没有此类脚本的档案,但有更好的版本,“更好”,如“更适合本地使用”而不是默认版本。 Linux 发行版也经常带有startx补丁,例如 Debian 中的这个。最近,sxxinit是和的替代品startx,具有许多改进(硬编码服务器启动、更好的xauth处理、更可预测的 tty 处理)。startx多年来,它本身发生了很多变化,但“强烈敦促站点管理员编写更好的版本。”评论从未被删除,尽管他们这样做的理由逐渐被删除。

成为startx一个样本正如变更日志中提到的,它与 X11 发行版的其余部分相匹配;例如,X 服务器被描述为“示例服务器”,许多制造商将基于它提供自己的实现:

此版本中提供的服务器、库和应用程序是示例而不是参考实现。

(引用X11R4 发行说明;严格来说,这应该表明该实现不应被用作参考而不是实际标准,而不是该实现不打算被使用)。

相关内容