有名な」TTY公開"、下図のように:
ユーザープロセスは、ラインルールと通信する「TTYドライバ」と通信しているようです。しかしオライリーの本:
ユーザーアプリケーションがラインルールと対話する「ttyコア」と対話し、ttyドライバがハードウェアより前の最後の層であるように見えます。誰かが「ttyドライバ」が正確に何であるかを説明してもらえますか?私は私の質問を明確に言いたいと思います。
私が知る限り、ドライバはハードウェアと通信するために使用されるソフトウェアです。たとえば、ディスクコントローラと通信する方法を知っているデバイスドライバがあります。このドライバは、実際にデバイスコントローラのレジスタを読み書きすることを担当します。一方、ファイルシステムドライバなど、ハードウェアと通信するために使用されないドライバがあり、基本的に特定の方法でデータを構成する方法を知っているソフトウェアです。
ttyドライバはどのタイプのドライバですか?ライン規律はどこに適用されますか?
編集する
O'Reillyの章を読んで観察した後、O'Reillyが「TTYドライバー」と呼ぶのは、実際には「The TTY demystified」が「UARTドライバー」と呼ばれ、O'Reillyが言う「TTYドライバー」のようです。 「TTYドライバ」は実際には「UARTドライバ」を意味します。 「TTY Core」は、「TTY Revealed」の「TTY Driver」が意味するものです。
つまり、O'Reillyの「TTYドライバ」はハードウェアと対話するために使用されるデバイスドライバですが、「TTYコア」はラインルールを介してユーザープロセス(したがってドライバ(?))からデータを受信するために使用されます。カーネルソフトウェアです。これを正しいドライバに送信します(UARTドライバまたはptyマスターのままにしてください)。
そうですか?
答え1
ttyドライバとライン規律の関係は何ですか?
プロセスは規律と通信します。しかし、規律は、raw
メッセージを転送する以外に何もしない(無作為、空の規律)かもしれません。
これがO'Reillyの本に出てくるスタックが次のような理由です。直接左がライントレーニング、右がライントレーニングです。これがno-op/raw/null行規則を解釈する方法です(raw
設定に使用できる実際の名前ですstty raw
)。