你知道 Linux 中的主機、控制檯和終端的起源麼?

wm發表於2017-02-27

Ken Thompson(坐)、Dennis Ritchie(站)與PDP-11和Teletype 33-ASR

如果你見過一些桌上型電腦,那麼它們大多是下圖這樣的。鍵盤、顯示器、機箱可以分開。哪怕機箱和使用者不在一個房間,只要線路連通,還是可以使用電腦的。在早期,機箱和鍵盤、顯示器確實是分開的。

一種桌上型電腦

圖 1 一種桌上型電腦

在 UNIX 誕生之初,計算機的價格非常昂貴。當時還沒有個人計算機,大多數計算機都是大型、昂貴、不穩定的機器,必須存放在溼度和溫度可控的環境中。貝爾實驗室的 Thompson 開始尋找小並且便宜的計算機。那時大多數計算機需要 100,000 美元,1970 年他和同事們得到了一臺 PDP-11,當時需要 10,800 美元。在數個月之內,他們將 UNIX 移植到了這臺計算機內。但是 PDP-11 一次只能執行一個程式,於是他們修改了 UNIX 系統,使它能夠一次執行多個程式,直到 1973 年這一目標才得以實現。

PDP-11

圖 3 PDP-11

從上圖中可以看出,PDP-11 機身上有很多按鈕,這個操作皮膚被稱為控制檯console。控制檯與主機緊密結合並且無法遠端操作,很多操作需要透過控制檯完成(比如啟動過程中遇到的問題),因為只用當主機啟動並且網路連線正常後才能連線終端。由於大型計算機的價格十分昂貴,Thompson 和他的同事們希望 UNIX 能夠稱為一個多工(即同時執行多個程式)、多使用者系統。在那個年代,計算機還沒有獨立的鍵盤,而且由於其昂貴的價格,無法每人都擁有一臺計算機。

Thompson 決定使用一種便宜的電傳打字機:Teletype直到如今,Linux 和 UNIX 系統中的文字輸入輸出環境仍然簡寫為 tty(TeleTYpe)。Teletype 相當原始,除了電源外,一切都是機械的。

圖 4 Teletype 33-ASR

下面這樣設想一下,如果好多個使用者都各自有一臺自己的 Teletype,而“機房”(當時叫“玻璃屋”,因為當時很多公司透過玻璃牆來展示昂貴的大型計算機)中有一臺昂貴的大型計算機 PDP-11,這臺計算機上執行著可以多使用者登入的 UNIX,這樣,每個使用者都可以透過使用便宜(相對於大型計算機)的 Teletype 來訪問大型計算機,相當於每個使用者都透過便宜的價格擁有了一臺計算機。是的,當時 Thompson 也是這樣想的,並且最終實現。這種想法至今都有大量的應用,比如伺服器和終端的關係等。

大型計算機 PDP-11 被叫做主機host,而使用者的 Teletype 也被叫做終端terminal(原指電線的末端)。因為主機和終端是分開的,所以不管是更換主機,還是使用者更換終端都是互相獨立的,主機和終端可以隨著科技浪潮一直髮展下去。粗略的說:計算機=主機+終端;終端=輸入裝置+輸出裝置。在這個例子中,計算機=PDP-11+電傳打字機;而 Teletype=輸入裝置(鍵盤)+輸出裝置(紙)。

下來考慮這樣一種情況,如果有多臺主機放在機房裡,同時有多臺終端使用這些主機,那麼怎麼連線他們呢?這就要用到終端伺服器了。終端伺服器連線主機和終端,只用使用者輸入需要訪問的主機,終端伺服器就會建立他們之間的連線。如下圖。

終端伺服器

圖 5 終端伺服器

以上,就是 Linux 中主機、控制檯和終端的由來。

題圖:Ken Thompson(坐)、Dennis Ritchie(站) 與 PDP-11 和 Teletype 33-ASR,出處不可考。

相關文章