tty模型學習

  在Linux系統中,終端是一類字符型設備,它包括多種類型,通常使用tty來簡稱各種類型的終端設備。

串口終端(/dev/ttyO*

  串口終端是使用計算機串口連接的終端設備。Linux把每個串行端口都看作是一個字符設備。這些串行端口所對應的設備名稱是 /dev/ttyO0;/dev/ttyO1……

 

 控制檯終端(/dev/console

    在Linux系統中,計算機的輸出設備通常被稱爲控制檯終端(Console),是系統控制檯,是與操作系統交互的設備。系統所產生的信息會發送到該設備上。這裏特指printk信息輸出到的設備。/dev/console是一個虛擬的設備,它需要映射到真正的tty上,比如通過內核啓動參數 console=ttyO0” 就把console映射到了串口0當調用printk時,內核將信息輸出到控制檯終端(/dev/console,由於consolettyO0(串口0)關聯了,所以信息將輸出到調試串口0上了。

console有緩衝的概念,爲內核提供打印輸出。內核把要打印的內容裝入緩衝區__log_buff,然後由console來決定打印到哪裏(比如是tty0n還是ttySn等)。console指向激活的終端。

    若要向一個端口發送數據,可以在命令行上把標準輸出重定向到這些特殊文件名上即可。例如,在命令行提示符下鍵入:echo test > /dev/ttyS1會把單詞”test”發送到連接在ttyS1(COM2)端口的設備上。

 

虛擬終端(/dev/tty*

    當用戶登錄時,使用的是虛擬終端。tty1tty6等稱爲虛擬終端,而tty0則是當前所使用虛擬終端的一個別名.

 

TTY架構分析

Linux tty子系統由三個部分構成:

  1.  tty核心(對整個tty設備的抽象 對用戶提供統一的接口);
  2.  tty線路規程(對傳輸數據的格式化);
  3.  tty驅動(面向tty設備的硬件驅動);

TTY核心起到的是承上啓下的作用,爲我們用戶空間訪問TTY提供了一個統一的接口,不管底層硬件是串口,顯示器還是什麼,用戶的訪問使用的都是統一接口;

TTY線路規程TTY模型中起到中間過渡的作用,它既接收來自TTY核心的數據,也接收來自TTY驅動的數據,根據實際訪問的硬件設備所遵循的協議,對數據進行格式化。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章