xterm、xterm-color 和 linux 終端仿真器在多大程度上是基於 VT100 的?
我的理解是,所有這些終端仿真器都從 VT100 標準派生了 ASCII 控制程式碼行為和 ANSI 轉義序列。我也知道有一個基於 VT100 或 VT102 的終端行為的 ANSI 標準。我的理解正確嗎?此外,VT100 還衍生了哪些其他功能或行為?
雖然在 1970 年代和 1980 年代有幾個流行的終端,但出於某種原因,從 1980 年代後期開始的xterm的原始開發人員選擇使用 vt100 作為模型。從一開始就存在差異(例如備用螢幕模式,這可能受到 Hewlett Package 終端的影響)。
ANSI x3.64 不是基於vt100;DEC 是參與製定該標準的幾家製造商之一。像大多數標準一樣,它是妥協。vt100 的大部分內容對應於 ANSI x3.64 標準,很久以前就被 ISO-6429 (ECMA-48) 取代。它可能實現了 ECMA-48 的四分之一,並提供了一些標準中沒有的特性。
vt100 標準中沒有的一些特性包括:
- 滾動(和滾動邊距)
- 雙倍大小的字元
- 保存/恢復游標位置
你已經使用了這三個中的兩個,不管你是否知道。ECMA-48 描述了 vt100 沒有實現的不同滾動控制項,但在 xterm(和一些 xterm 模仿器)中受支持。
其他符合 ANSI 的終端,例如 Sun 的控制台仿真器,沒有實現這些功能(並且在那裡發送滾動區域轉義會產生有趣的結果)。
嚴格來說,vt100不支持插入和刪除行的控制項。這是在vt102(大多數人認為是“vt100”)中完成的。它們是一個系列的一部分:一個完整的 vt100 模擬器可以模擬 vt52,vt220 可以模擬 vt100,vt420 可以模擬 vt220 / vt100 / vt52。
到 1990 年代中期,xterm 具有一些與 vt220 相關的字元集切換功能。進一步的開發添加了 vt220 曲目中除軟字型之外的所有字型(如雙倍大小的字元,除了 vttest 之外的許多程序都沒有使用此字型)。這在Emulations的手冊頁部分中進行了總結。
雖然 ISO-6429 定義了顏色轉義序列,但 vt100/vt220 型號不支持這些序列。這些在 vt525 模型中得到支持,我被告知它是由 Wyse 設計和製造的。DEC 和 Wyse 都沒有製造終端很長一段時間了,終端中顏色的行為對 xterm 的開發沒有影響。這受到了 Linux 控制台的一些影響——但 Linux 控制台的調色板轉義完全超出了任何標準。它的顏色選擇轉義基於 ANSI,但可能是在模仿 AT&T(和 SCO)控制台,而不是通過閱讀標準本身。