Startx

/usr/bin/startx :有沒有人完成了緊迫性?如何?

  • March 20, 2022

我可以相信周圍的任何人,幾十年來一直在解僱 /usr/bin/startx,但對它所服務的工作感到 100% 的滿意度。

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

然而,腳本的作者是明確的:

強烈敦促站點管理員編寫更好的版本。

我只是好奇:

  • 有誰知道是什麼歷史原因迫使作者寫出如此強烈的聲明?
  • 有沒有人寫過任何“更好的版本”,如何以及為了什麼?

注意:我看到許多關閉此問題的請求,因為它會觸發基於意見的答案。

我理解*“更好”*的限定詞如何暗示品味判斷,但我無法想像作者“強烈敦促”管理員進行審美改變。

該腳本中的許多內容都可以更改,從強制客戶端/伺服器參數、尊重/忽略使用者 .*rc 到甚至偶然分叉除 /usr/bin/xinit 之外的任何其他內容。

所有這些擺弄+更多我什至沒有想到的特別是在安全領域,肯定取決於完全合理的動機並符合特殊案例的目的。這正是這個問題的意義所在。

startx於 1988 年在X11R3中引入,並帶有以下更改日誌條目

添加了一個範例 startx 腳本,其中包含適用於相應系統的條件。

這伴隨著對 的一些改進xinit,例如支持使用者特定.xserverrc.xinitrc腳本以分別啟動伺服器和客戶端。

startx除此之外沒有做太多:它添加了對系統範圍xserverrcxinitrc腳本的支持(可以很容易地添加到xinit自身中),並在 A/UX Macintosh II 系統(R3 中新支持)上自行清理和 Sun 系統。

當時,許多系統都有自己的 X 啟動腳本,無論是啟動伺服器還是啟動一組預設客戶端,只要因為 X11R2xinit是準系統並且需要使用包裝腳本進行定制(或徹底替換)至少,由系統製造商(例如 openwin在 Sun 系統上)或本地系統管理員提供。startx實際上是系統特定啟動腳本的一個非常簡單的模板;在 80 年代末和 90 年代初,系統管理員提供大量本地內容(腳本、手冊頁等)非常普遍。

startx 確實包含了足夠的功能,因此在許多情況下無需對其進行任何更改,因為啟動自定義可以完全通過提供本地xserverrcxinitrc腳本來處理。它的作者大概認為許多系統管理員已經有了更好的版本,或者會“輕鬆”編寫更好的版本來反映他們的本地限制和偏好——例如,許多系統管理員希望使用者能夠通過提供他們自己的.xserverrc.

一個常見的更改是對腳本添加更多清理,例如殺死錯誤的 Netscape Navigator 程序(至少在 SPARCstation 上,Netscape Navigator 4.78 在失去與 X11 伺服器的連接時傾向於不退出,而是進入一個緊密循環) .

我沒有此類腳本的存檔,但有更好的版本,比預設版本“更適合本地使用”中的“更好”。Linux 發行版也經常帶有startx更新檔,例如 Debian 中的這個。最近,sx它替代了xinitstartx,並進行了許多改進(硬編碼的伺服器啟動、更好的xauth處理、更可預測的 tty 處理)。startx多年來,它本身發生了許多變化,但“強烈要求網站管理員編寫更好的版本”。評論從未被刪除,即使他們這樣做的理由逐漸被刪除。

startx正如變更日誌中提到的那樣,作為樣本的想法與 X11 發行版的其餘大部分內容相吻合;例如,X 伺服器被描述為“範例伺服器”,許多製造商會在此基礎上提供自己的實現:

此版本中提供的伺服器、庫和應用程序是範例而不是參考實現。

(引用X11R4 發行說明;嚴格來說,這應該表明不應將實現用作參考而不是實際標準,而不是不打算使用這些實現)。

引用自:https://unix.stackexchange.com/questions/694867