原文網址:http://blog.csdn.net/liaoxinmeng/article/details/5004743linux
首先:windows
1。終端和控制檯都不是我的電腦的概念,而是多人共用的小型中型大型計算機上的概念.
一臺主機,連不少終端,終端爲主機提供了人機接口,每一個人都經過終端使用主機的資源. 終端有字符啞終端和圖形終端兩種.
控制檯是另外一種人機接口, 不經過終端與主機相連, 而是經過顯示卡-顯示器和鍵盤接口分別與主機相連, 這是人控制主機的第一人機接口.
話回到我的計算機上,我的計算機只有控制檯,沒有終端. 固然願意的話, 能夠在串口上連一兩臺字符啞終端. 可是linux偏要按POSIX標準把我的計算機當成小型機來用,
那麼就在控制檯上經過getty軟件虛擬了六個字符啞終端(或者叫控制檯終端tty1-tty6)(數量能夠在/etc/inittab裏本身調)和一個圖型終端, 在虛擬圖形終端中又能夠經過軟件(如rxvt)再虛擬無限多個虛擬字符啞終端(pts/0....). 記住,這全是虛擬的,用起來同樣,但實際上並非.
因此在我的計算機上,只有一個實際的控制檯,沒有終端,全部終端都是在控制檯上用軟件模擬的.
要把我的計算機當主機再經過串口或網卡外連真正的物理終端也能夠,但因爲真正的物理終端並不比我的計算機自己便宜,通常沒有人這麼作.網絡
2.如同其餘UNIX類系統,Linux自己也是基於命令行的。試試「Ctrl」+「Alt」+「Fx」。這就是控制檯,算是Linux的原本面目。至於使用方法,除了多出登陸註銷外,其它操做和咱們在linux圖形界面(X—window)下的終端操做是同樣的,在X-Window出問題或不運行X-Window的時候,操做主要在這裏完成。
Linux在控制檯下提供了不止一個(字符啞)終端,支持多用戶同時登陸,包括在本機同時登陸。控制檯「Alt」+「Fx」可以切換到第x個(字符啞)終端。若是須要從X-Window裏跳到第(字符啞)終端,須要「Ctrl」+「Alt」+「Fx」。通常狀況下若是要從控制檯返回Xwindow可用「「Alt」+7」來返回到Xwind的圖形界面。(Linux發行版提供7個虛擬屏幕,1~6號是控制檯終端((字符啞)終端),第7個上面跑X-Window。).net
3.控制終端(/dev/tty) 這是個在應用程序中的一個概念,前臺進程有個控制終端,就對應這個。不過它並不指任何物理意義上的終端,其實/dev/tty會映射到當前的設備(經過tty命令能夠看到),好比你若是在控制檯界面下(即字符界面下)那麼dev/tty就是映射到dev/tty1-6之間的一個(取決於你當前的控制檯號),可是若是你如今是在圖形界面(Xwindows),那麼你會發現如今的/dev/tty映射到的是/dev/pts的僞終端上。好比你能夠輸入命令 #tty 那麼將顯示當前映射終端如:/dev/tty1或者/dev/pts/0等。命令行
4。僞終端(/dev/pty/)這個是終端的發展,爲知足如今需求(好比網絡登錄、xwindow窗口的管理)。設計
僞終端(Pseudo Terminal)是成對的邏輯終端設備,例如/dev/ptyp3和/dev/ttyp3(或着在設備文件系統中分
別是/dev/pty/m3和/dev/pty/s3)。它們與實際物理設備並不直接相關。若是一個程序把ttyp3看做是一個串
行端口設備,則它對該端口的讀/寫操做會反映在該邏輯終端設備對的另外一個上面(ttyp3)。而ttyp3則是
另外一個程序用於讀寫操做的邏輯設備。這樣,兩個程序就能夠經過這種邏輯設備進行互相交流,而其中
一個使用ttyp3的程序則認爲本身正在與一個串行端口進行通訊。這很象是邏輯設備對之間的管道操做。
對於ttyp3(s3),任何設計成使用一個串行端口設備的程序均可以使用該邏輯設備。但對於使用ptyp3的
程序,則須要專門設計來使用ptyp3(m3)邏輯設備。
例如,若是某人在網上使用telnet程序鏈接到你的計算機上,則telnet程序就可能會開始鏈接到設
備ptyp2(m2)上(一個僞終端端口上)。此時一個getty程序就應該運行在對應的ttyp2(s2)端口上。當telnet從
遠端獲取了一個字符時,該字符就會經過m二、s2傳遞給getty程序,而getty程序就會經過s二、m2和telnet程序
往網絡上返回」login:」字符串信息。這樣,登陸程序與telnet程序就經過「僞終端」進行通訊。經過使用適當的
軟件,就能夠把兩個甚至多個僞終端設備鏈接到同一個物理串行端口上。
在使用設備文件系統(device filesystem)以前,爲了獲得大量的僞終端設備特殊文件,HP-UX AIX等使用了
比較複雜的文件名命名方式。blog
5.控制檯終端(/dev/ttyn, /dev/console)
在UNIX系統中,計算機顯示器一般被稱爲控制檯終端(Console)。它仿真了類型爲Linux的一種終端(TERM=Linux),
而且有一些設備特殊文件與之相關聯:tty0、tty一、tty2等。當你在控制檯上登陸時,使用的是tty1。使用Alt+[F1—F6]組合
鍵時,咱們就能夠切換到tty二、tty3等上面去。tty1 –tty6等稱爲虛擬終端,而tty0則是當前所使用虛擬終端的一個別名,
系統所產生的信息會發送到該終端上。所以無論當前正在使用哪一個虛擬終端,系統信息都會發送到控制檯終端上。
你能夠登陸到不一樣的虛擬終端上去,於是可讓系統同時有幾個不一樣的會話期存在。只有系統或超級用戶root能夠
向/dev/tty0進行寫操做接口
console是一個緩衝的概念,實際上是爲內核提供打印的。咱們的pc,終端經常使用的是顯示器和鍵盤構成,咱們用戶打印和內核打印都從這個終端反映給用戶。因此,這裏,/dev/console是鏈接到/dev/tty0的,其實這裏有2個概念,console和tty這2個咚咚,怎麼實現,其實console這個結構中有個device,這裏其實就是tty0對應的一個虛擬終端設備。 若是,咱們來個專門打印內核的設備(好比經過串口),咱們把那個串口register_console,那麼/dev/console就到這個串口設備了。這時,內核打印就到這個串口設備了,而用戶的打印仍是和上面的/dev/tty相關,若是/dev/tty對應/dev/tty0,那麼用戶打印還在窗口中出現。因此說/dev/console是用來外接控制檯的。進程
6.串行端口終端(/dev/ttySn)
串行端口終端(Serial Port Terminal)是使用計算機串行端口鏈接的終端設備。計算機把每一個串行端口都看做是一個字符設備。有段時間這些串行端口設備一般被稱爲終端設備,由於那時它的最大用途就是用來鏈接終端。這些串行端口所對應的設備名稱是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,設備號分別是(4,0), (4,1)等,分別對應於DOS系統下的COM一、COM2等。若要向一個端口發送數據,能夠在命令行上把標準輸出重定向到這些特殊文件名上便可。例如,在命令行提示符下鍵入:echo test > /dev/ttyS1會把單詞」test」發送到鏈接在ttyS1(COM2)端口的設備上。可接串口來實驗。資源
便是相對與dos下的com1和com2等....
總結一下:感受概念仍是比較模糊的,由於多是時間命名的緣故吧,有不少概念都很模糊吧!
首先:兩種模式:字符模式:對應的爲控制檯,設備文件爲/dev/tty1-6(是一個控制檯終端的設備文件),而/dev/tty0則是當前終端設備文件的別名(我以爲能夠說是連接吧,即tty0就是指當前的設備文件)。圖形模式(Xwindow): 對應的應該是tty7,可是在Xwindow下終端(即輸入命令的窗口)對應的設備文件爲/dev/pts/0-(是一個僞終端設備文件)
關於dev/tty其實很簡單:就是當前終端設備的一個連接(有點像/dev/tty0吧,可是他好像更強大一點),咱們能夠作下這個實驗:
在Xwindow下打開多個終端(輸入命令的窗口):#tty命令,發如今各個窗口分別顯示爲# dev/pts/0 #dev/pts/1 #dev/pts/2....
而後在#dev/pts/0終端中輸入echo"test">/dev/pts/0 結果顯示test。而後你在#dev/pts/0終端中輸入echo"test">/dev/tty, 你會發如今當前窗口也顯示test字符串。也就是說dev/tty其實就是當前設備文件的一個連接。
關於/dev/console 應該來講更像一個緩衝結果吧,來實現對內核的打印,好比說內核把要打印的內容裝入緩衝區,而後由console來決定打印到哪裏吧(好比是tty0仍是串口等等吧)。因此說/dev/console是用來外接控制檯的。
先寫到這裏吧!這是我參考資料獲得的,若是有錯了你們都都幫忙啊。