X11到底是什麼?
我正在閱讀有關 X11 的維基百科,它說:
在其標準發行版中,它是一個完整但簡單的顯示和界面解決方案,它提供了一個標準工具包和協議棧,用於在大多數類 Unix 作業系統上建構圖形使用者界面……
但後來它說:
X 主要定義協議和圖形原語——它故意不包含應用程序使用者界面設計的規範,例如按鈕、菜單或視窗標題欄樣式。
那麼,X11 是否提供按鈕或視窗面板/框架等小元件?什麼是圖形基元?X11 究竟提供了什麼?
還指出:
X 不強制使用者界面;單獨的客戶端程序處理這個。程序可以在沒有使用者界面的情況下使用 X 的圖形功能。
這是什麼意思?
像許多單詞一樣,“X11”可以有多種含義。
“X11”嚴格來說是一種通信協議。在“X 主要定義協議和圖形原語……”和“X 不要求使用者界面……”這句話中,這就是 X 所指的。X 是一系列協議,X11 是第 11 個版本,也是過去 25 年左右使用的唯一一個。
您問題中的第一句話是指一個軟體發行版,它是 X11 協議的參考實現。該軟體發行版的全稱是“X Window System”。該發行版包括在 X11 協議中充當伺服器的程序、在 X11 協議中充當客戶端的程序、包含使用 X11 協議的程式碼的程式碼庫、相關文件、可以使用的字型和鍵盤佈局等資源與上述程序和庫等。歷史上,這個軟體分發是由麻省理工學院製作的;今天它由X.Org 基金會維護。
X11 協議允許應用程序創建諸如視窗之類的對象並使用基本的繪圖原語(例如填充一個矩形、顯示一些文本)。按鈕、菜單等小元件由客戶端庫製作。X Window System 包含一個基本庫(Athena 小元件集),但大多數應用程序使用更高級的庫,例如GTK+、Qt、Motif等。
一些 X11 程序根本沒有圖形使用者界面,例如xset、xsel和xdotool等命令行工具, xbindkeys等鍵綁定程序等。大多數 X11 程序當然都有 GUI。