次の図は、物理端末の状況を示しています(例:VT100)はUnixを実行しているコンピュータに接続されています(例:プラズマ11):
青色で強調表示されたコンポーネントは、端末がシリアルポートを介してコンピュータに接続されていることを示します(画像には「シリアルポート」ではなく「UART」と表示されます)。したがって、デフォルトでは、端末にはコンピュータのシリアルポートに有線で接続されたシリアルポートがあります(この画像には端末シリアルポートのコンポーネントも表示されません)。
端末またはコンピュータでシリアルポートの転送速度を変更できます(参照:ここ)。
次の図は、最新のLinux / Unixシステムで仮想端末を実装する方法を示しています。
青色で強調表示されたコンポーネントは、ターミナルエミュレータが2つの「仮想シリアルポート」を使用せずに回線セクターに直接接続されていることを示します。
今私の質問は、このイメージ(仮想端末の実装)がアセンブリ全体を表示するのですか、それとも端末エミュレータの後ろに1つの「仮想シリアルポート」があり、ラインルールの前に別の「仮想シリアルポート」があるのですか?
これら2つの「仮想シリアルポート」が存在する場合、ボーレートも変更できますか?
これら二つの写真から得たものここ。
答え1
ワイヤルールは、「ワイヤ」(初期UNIXシステムのワイヤ)全体の特殊文字(ソフトウェアフロー制御や文字生成信号など)の処理を制御します。いくつかの可能な回線規則があり、ttyドライバはそのttyを担当する回線規則を呼び出します。
したがって、ライン規約の前に「仮想シリアルポート」を持つことはまったく意味がありません。最初の写真にもなく、2番目の写真にもありません。
ラインルールはカーネルの他の部分(シリアルポートドライバ(USB、UARTなど)または仮想コンソール用のエミュレータなど)を呼び出し、文字が到着するとそのドライバでも呼び出されます。したがって、ある意味では、さまざまなコンポーネントを接続できる「仮想スイッチ」です。
ただし、特定の速度で有線でバイトをビットに送信し、ビットからバイトへの再組み立てを何らかの方法でシミュレートできるシリアルポートドライバのペアはありません。これは不必要に遅く機能を提供しないからです。
ただし、ボーレート、ストップビット数などを設定できます。みんなディディ。これらのパラメータは、仮想コンソールなどのパラメータを必要としないドライバでは無視されます。
答え2
転送速度は次のように定義されます/etc/inittab
。
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
この例では、転送速度は38400です。