天天看點

終端和控制台差別

今天看到有人問終端和控制台的差別,而且這個問題比較有普遍性,是以想抽出一點時間來解釋一下這兩個術語的差別。

  終端,英文叫做terminal ,通常簡稱為term ,比如我們在X下的xterm. 

  控制台,英文叫做console。 

  要明白這兩者的關系,還得從以前的多人使用的計算機開始。 

  大家都知道,最初的計算機由于價格昂貴,是以,一台計算機一般是由多個人同時使用的。在這種情況下一台計算機需要連接配接上許多套鍵盤和顯示器來供多個人使用。在以前專門有這種可以連上一台電腦的裝置,隻有顯示器和鍵盤,還有簡單的處理電路,本身不具有處理計算機資訊的能力,他是負責連接配接到一台正常的計算機上(通常是通過序列槽)

,然後登陸計算機,并對該計算機進行操作。當然,那時候的計算機作業系統都是多任務多使用者的作業系統。這樣一台隻有顯示器和鍵盤能夠通過序列槽連接配接到計算機的裝置就叫做終端。 

  而控制台又是什麼回事呢? 學機電的人應該知道,一台機床,或者數控裝置的控制箱,通常會被稱為控制台,顧名思義,控制台就是一個直接控制裝置的台面(一個面闆,上面有很多控制按鈕)。 在計算機裡,把那套直接連接配接在電腦上的鍵盤和顯示器就叫做控制台。請注意它和終端的差別,終端是通過序列槽連接配接上的,不是計算機本身就有的裝置,而控制台是計算機本身就有的裝置,一個計算機隻有一個控制台。計算機啟動的時候,所有的資訊都會顯示到控制台上,而不會顯示到終端上。也就是說,控制台是計算機的基本裝置,而終端是附加裝置。

當然,由于控制台也有終端一樣的功能,控制台有時候也被模糊的統稱為終端。 計算機作業系統中,與終端不相關的資訊,比如核心消息,背景服務消息,都可以顯示到控制台上,但不會顯示到終端上。 

  以上是控制台和終端的曆史遺留差別。現在由于計算機硬體越來越便宜,通常都是一個人獨占一台計算機超做,不再連接配接以前那種真正意義上的“終端裝置了”,是以,終端和控制台的概念也慢慢演化了。終端和控制台由硬體的概念,演化成了軟體的概念。 

  現在說的終端,比如linux中的虛拟終端,都是軟體的概念,他用計算機的軟體來模拟以前硬體的方式。比如在linux中,你用alt+f1 ~ f6 可以切換六個虛拟終端,就好比是以前多人公用的計算機中的六個終端裝置,這就是為什麼這個叫“虛拟終端”的原因。當然,現在的linux也可以通過序列槽線,連接配接一個真正的終端,現在這種終端裝置已經非常罕見了,但是還存在,隻是一般人很難見到。也有人利用以前的老電腦(386,486)裝上一個序列槽通信軟體,連上一台計算機,來模拟一個終端來用。這樣可以達到一台電腦多人使用的目的。 

  簡單的說,能直接顯示系統消息的那個終端稱為控制台,其他的則稱為終端。但是在linux系統中,這個概念也已經模糊化了。 

  比如下面這條指令: 

  echo "hello,world" > /dev/console 

  這條指令的目的是将"hello,world"顯示到控制台上/dev/console是控制台裝置的裝置名。在linux中,在字元模式下,你無論在哪個虛拟終端下執行這條指令,字元hello,world都會顯示在目前的虛拟終端下。也就是說,linux把目前的終端當作控制台來看待。可見,linux中已經完全淡化了控制台和終端的差別。但是在其他的UNIX類系統中,卻很明顯的有虛拟終端和控制台的差別。比如freeBSD系統。 

  在freebsd中,隻有第一個“終端”才是真正的控制台。(就是說按alt+f1得到的那個虛拟終端) ,你無論在哪個虛拟終端上執行上面的那條指令(哪怕是通過網絡連接配接的僞終端上執行這條指令)。hello,world字元總會顯示到第一個“終端”也就是真正的控制台上。另外,其他的一些系統内部資訊,比如哪個使用者在哪個終端登陸,系統有何嚴重錯誤警告等資訊,全都顯示在這個真正的控制台上。在這裡,就明顯的區分了終端和控制台的概念。其他UNIX中也是這樣的。比如Tru64

unix 在X下有一個控制台模拟軟體,你無論在哪裡輸入echo "hello,world" > /dev/console指令,hello,world總會顯示在這個控制台模拟器中。 我們在X界面下用的那些輸入指令的軟體,比如xterm ,rxvt, gnome-terminal等等,都應該被稱為終端模拟軟體。請注意它和控制台模拟軟體的差別。linux中好象沒有控制台模拟軟體。在X中的終端模拟軟體中輸入的echo "hello,world">/dev/console 指令的輸出資訊,都會輸出到啟動該X伺服器的虛拟終端上。比如,你用字元方式登陸系統。進入第一個虛拟終端,然後startx啟動X伺服器。再打開xterm

來輸入 echo "hello,world">/dev/console 指令,那麼字元串hello,world就顯示在第一個虛拟終端上。你按ctrl+alt+f1,回到那個啟動X伺服器的終端,就可以看到hello,world字元串。 

  現在該明白終端和控制台的差別了吧。再簡單的說,控制台是直接和計算機相連接配接的原生裝置,終端是通過電纜、網絡等等和主機連接配接的裝置。 

  在以前的硬體終端裝置中,由于生産廠家不同,所遵循的标準不同,是以有不同的型号标準。比如vt100等。這裡的vt100就是一個标準,那麼現在我們所說的終端,往往不是真正的硬體終端了,而是終端模拟軟體了,是以不同的終端模拟軟體可能符合不同的标準,還有一些終端模拟軟體符合很多種不同終端的标準。比如gnome的終端模拟軟體gnome-terminal,他提供好幾中标準可供使用者選擇。使用者隻要設定一下就可以了。 

  現在,由于原先的這些裝置在我們的視線中漸漸淡出,控制台和終端的概念也慢慢談化。普通使用者可以簡單的把終端和控制台了解為:可以輸入指令行并顯示程式運作過程中的資訊以及程式運作結果的視窗。 不必要嚴格區分這兩者的差别。

繼續閱讀