回答:
これらの/dev
ノードは、標準のPCシリアルポートドライバーが使用しているカーネルにコンパイルされており、UARTを検出しているために表示されます。その結果/sys/devices/platform/serial8250
(または互換性のあるもの)が表示されるため、udevは対応する/dev
ノードを作成します。
これらのUARTは、マザーボードのチップセットの多くの機能の1つである可能性が高いです。チップセットのシリアルUARTは、DB-9コネクタがこれらのIC UARTピンに接続されることがますます少なくなっていますが、まだかなり一般的です。
一部のマザーボードでは、シリアルポートごとにヘッダーコネクタがあり、そのコネクタをPCの背面に配線する場合は、アダプターケーブルを購入する必要があります。
同じチップセットを使用する他のマザーボードは、ヘッダー機能をシリコンで利用できる場合でも、ヘッダーコネクタを露出しない場合があります。これは、純粋にPCBコネクタのスペースとヘッダーコネクタの数セントを節約するためです。
いくつかのシリアルUARTは、大量生産のPCチップセットICに無視できるほどのコストを追加しますが、DB-9コネクタをボードエッジまで実行するには、マザーボードの最終小売コストに数ドルを追加します。PCBスペースにもコストがかかります。ボードの端のスペースは特に貴重です。
RS-232シリアルポートに接続されたデバイスの存在を調べる標準的な方法はありません。
対照的に、マザーボードにポートが存在するだけでは/dev
ノードは作成されませんが、デバイスとホストOSの間でかなり複雑なネゴシエーションが行われるため、デバイスをプラグインするとノードが作成されます。実際には、デバイスは自身をOSに通知するため、デバイスにudev
適切な/dev
ノードを作成することで対応できます。
Linuxを仮想化の下で実行していることを想像してください。エミュレーターの多くは依然としてコンソールをシリアルポートに出力することに依存しています。これは便利な標準です。また、ヘッドレスサーバーは引き続き通信にシリアルポートを使用します。