linux下tty,控制台,虛擬終端,串口,console(控制台終端)的概念

來源:互聯網
上載者:User
首先: 1. 終端和控制台都不是個人電腦的概念,而是多人共用的小型中型大型電腦上的概念.

一台主機,連很多終端,終端為主機提供了人機介面,每個人都通過終端使用主機的資源. 終端有字元啞終端和圖形終端兩種.

控制台是另一種人機介面, 不通過終端與主機相連, 而是通過顯示卡-顯示器和鍵盤介面分別與主機相連, 這是人控制主機的第一人機介面.

話回到個人電腦上,個人電腦只有控制台,沒有終端. 當然願意的話, 可以在串口上連一兩台字元啞終端. 但是linux偏要按POSIX標準把個人電腦當成小型機來用,那麼linux就在控制台上通過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。)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從遠端擷取了一個字元時,該字元就會通過m2、s2傳遞給getty程式,而getty程式就會通過s2、m2和telnet程式往網路上返回”login:”字串資訊。這樣,登入程式與telnet程式就通過“偽終端”進行通訊。通過使用適當的
軟體,就可以把兩個甚至多個偽終端裝置串連到同一個物理序列埠上。 在使用裝置檔案系統(device filesystem)之前,為了得到大量的偽終端裝置特殊檔案,HP-UX AIX等使用了 比較複雜的檔案名稱命名方式。5.控制台終端(/dev/ttyn, /dev/console)
在UNIX系統中,電腦顯示器通常被稱為控制台終端(Console)。它模擬了類型為Linux的一種終端(TERM=Linux), 並且有一些裝置特殊檔案與之相關聯:tty0、tty1、tty2等。當你在控制台上登入時,使用的是tty1。使用Alt+[F1—F6]按鍵組合時,我們就可以切換到tty2、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系統下的COM1、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是用來外接控制台的。  先寫到這裡吧!這是我參考資料得到的,如果有錯了大家都都幫忙啊。 本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/liaoxinmeng/archive/2009/12/14/5004743.aspx
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.