Linux tty驅動程式 架構

SoldierJazz2019發表於2017-05-18

tty 核心概覽如下圖所示:


可以看到,tty 架構的劃分層次,由下至上的邏輯關係為:硬體 -> tty 驅動 -> tty 線路規程(也譯為行規程)-> tty 核心 -> 使用者層

核心負責控制 tty 裝置的資料流,並且格式化這些資料。這使得 tty 驅動程式把重點放在硬體資料處理上,而不必重點考慮使用常規方法與使用者空間互動。為了控制資料流,有許多不同的線路規程(line discipline)可虛擬地“插入”任何的 tty 裝置上,這由不同的 tty 線路規程驅動程式實現。

資料傳送流程:tty core 從使用者得到要下發到 tty 裝置的資料,然後把資料傳送給 tty 線路規程驅動程式,該驅動程式負責把資料傳遞給 tty 驅動程式。tty 驅動程式對資料進行格式化然後傳送硬體。所謂格式化,就是在驅動中轉換成硬體支援的協議和格式。

資料接收流程:從 tty 硬體那裡接收的資料將回溯至 tty 驅動程式,然後流入 tty 線路規程驅動程式,接著是 tty 核心,最後使用者從 tty 核心那裡得到資料。

有時 tty 線路規程驅動程式不是必須的,但是一般情況下是存在的。tty 線路規程對於 tty 驅動程式是不透明的,也即相互之間不能直接通訊,tty 驅動程式的作用是將傳送給它的資料格式化成硬體能理解的格式,並從硬體接收資料。tty 線路規程的作用是使用特殊的方法,把從使用者或硬體那裡接收的資料格式化。這種格式化通常使用一些協議來轉換,如 PPP 或者 BlueTooth。


相關文章