line discipline(ldisc) 線路規程,是linux和類unix系統終端子系統的乙個軟體驅動層。終端子系統從上到下可劃分為三層:
驅動的工作是以硬體能夠理解的方式格式化傳送給它的資料, 並且從硬體接收資料.
也就是說,驅動的作用是接受硬體資料或者傳送硬體能夠理解的資料至硬體裝置,並且承擔了配置硬體暫存器的任務。
tty 線路規程的工作是以特殊的方式格式化從乙個使用者或者硬體收到的資料. 這種格式化常常採用乙個協議轉換的形式, 例如 ppp 和 bluetooth。
也就是說,線路規程用於格式化在驅動層以上的資料。格式化的作用是讓整個裝置具有額外的功能。如ppp作為線路規程的時候,將具有鑑權、壓縮等功能。
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()
dcd_change()
linux 終端裝置 線路規程
line discipline ldisc 線路規程,是linux和類unix系統終端子系統的乙個軟體驅動層。終端子系統從上到下可劃分為三層 頂層tty core驅動層提供字元裝置介面 因為所有的終端裝置都是字元裝置 最底層是tty driver層用來和硬體進行通訊,實現tty operations...
線路規程及流量控制
在osi模型的物理層,實現了傳輸但是仍沒有實現通訊。通訊至少需要兩個一起工作的裝置,乙個傳送乙個接收,同時雙方還需要大量的協調工作。資料鏈路層控制是實現了通訊中的線路規程 流量控制和錯誤控制等功能。資料鏈路層的線路規程功能監視鏈路的建立,以及給定時刻乙個具體裝置進行資料傳送的權力。資料規程可以以兩種...
Wannafly 4 F 線路規劃
資料範圍252501 勁啊 q國的監察院是乙個神秘的組織。這個組織掌握了整個q國的地下力量,監察著q國的每乙個人。監察院一共有n個成員,每乙個成員都有且僅有1個直接上司,而他只聽從其上直接司的命令。其中1號成員是監察院的院長,這個龐然大物的主人。由於時代的進步,監察院議會決定公升級組織的舊式通訊器,...