line discipline(ldisc) 線路規程,是linux和類unix系統終端子系統的乙個軟體驅動層。終端子系統從上到下可劃分為三層:
頂層tty core驅動層提供字元裝置介面(因為所有的終端裝置都是字元裝置);
最底層是tty driver層用來和硬體進行通訊,實現tty_operations供tty core和 ldisc層呼叫;
中間層line discipline實現終端輸入輸出資料處理的策略。
line discipline把tty core和tty driver粘合在一起,策略的分離使得tty core和tty driver不需要關注資料語法處理,tty driver可以被相同的硬體復用,而只需更改line discipline。
linux終端裝置預設的線路規程是n_tty,它從tty driver和應用程式接收資料,按照終端設定處理資料。對於輸入資料,它處理特殊的中斷字元(比如control-c),刪除字元(backspace, delete)等等;對於輸出資料,它用cr/lf序列替換lf字元。當uart port用做普通串列埠時,使用n_tty線路規程。
當uart port裝置用做serial modem 的internet撥號連線時,使用ppp線路規程處理資料;ppp ldisc把從uart core來的串列埠資料組裝為ppp輸入packet,然後分發給網路協議棧;ppp ldisc把從網路協議棧傳送來的資料拆包傳送給uart port。
ldisc工作於tty core和tty driver之間,ldisc需要為二者提供如下介面函式:
tty core端介面:
open()
close()
hangup()
write()
flush_buffer()
chars_in_buffer()
set_termios()
read()
poll()
ioctl()
compat_ioctl()
tty driver端介面:
receive_buf()
write_wakeup()
Linux 線路規程
line discipline ldisc 線路規程,是linux和類unix系統終端子系統的乙個軟體驅動層。終端子系統從上到下可劃分為三層 驅動的工作是以硬體能夠理解的方式格式化傳送給它的資料,並且從硬體接收資料.也就是說,驅動的作用是接受硬體資料或者傳送硬體能夠理解的資料至硬體裝置,並且承擔了配...
linux 終端裝置
終端解釋 終端是一種字元型裝置,它有多種型別,通常使用tty來簡稱各種型別的終端裝置。tty是teletype的縮寫。teletype是最早出現的一種終端裝置,很象電傳打字機 或者說就是 是由teletype公司生產的。在linux系統的裝置特殊檔案目錄 dev 下,終端特殊裝置檔案一般有以下幾種 ...
linux 終端裝置
早期計算機通常用電傳印表機充當終端裝置,終端裝置的作用就是接受使用者的輸入並傳遞給計算機,接受計算機的反饋返回給使用者。如下圖所示 後來電傳印表機被鍵盤和顯示器取代,linux為了支援這種外部終端裝置的連線,提供了終端裝置介面 tty 下面以海思hi3559開發板為例說明串列埠終端。在除錯開發板的時...