あるコンピュータがディレクトリ内のデバイスを別のコンピュータと共有し、別のコンピュータが/dev/
(ローカルの場合)そのデバイスと対話する方法はありますか? SSHトンネルのようなものですか?
たとえば、カメラ、Arduinoへのシリアル接続、さらにコンピュータの/dev/random
?
ベストアンサー1
要するに、いいえ。デバイスノードと対話する方法は、実際のファイルで実行できるよりも「豊富」であり、リモートシステムのカーネルがローカルプロセスメモリにアクセスできない場合は不可能です。ネットワーク)。
使用したいものの多くは、特定の時点で不合理に高い帯域幅要件(例:生モードの高品質カメラ)、低レイテンシ要件(コンピュータ側で何が起こると予想されるUSBマスデバイス)を持っていることは言うまでもないありません。これは、時間内)またはネイティブデバイスレベルでネットワーク操作を無効にする他の機能的側面です。
このため、特定のデバイスクラスでは、デバイスの近くで実行する必要があるタスクとリモートで実行できるタスクを区別することができ、他の方法もあります。たとえば、プリンタはCUPSを使用してネットワーク経由で共有でき、サウンドはパイプライン、jackdまたは他のデーモン用のデバイス、VLCを使用するビデオデバイス、ファイルシステムを使用するストレージデバイス、またはNFS、CIFSなどを使用します。ブロックデバイス(例:Ceph)
シリアルポートは抽象化が簡単です。そのポートを持つコンピュータに設定し(主に開く、ボーレート設定)、最小限のネットワークデーモンを使用して読み書きします。
実際、産業オートメーションでは、ネットワークを介して何とかアドレス指定できるUARTポートを持つことが非常に一般的なパターンです。 Linuxでは、socat
プログラムも同様のことができます。