一般に、Linuxシステムに新しいデバイスを接続すると、/dev
に新しいエントリがリストされることに気づきました(正しいドライバーがある場合)。
例えば:
/dev/sdb
が取得されます。/dev/ttyS0
が取得されます。イーサネットデバイスを接続したときに、/dev/eth0
のようなものが表示されないのはなぜですか?
イーサネットポートのデバイスリストはありますか?
ifconfig
を使用してポート名を表示できることはわかっていますが、/dev
にも何かが表示されるのではないかと思っています。
いい質問ですね。その理由は本質的に歴史的なものです。さまざまな目標と優先順位を持つさまざまなグループが時間の経過とともにUnixを追加し、さまざまなAPIの違いがこの歴史を反映しています。元のデバイスファイルの概念はBell Labsにまで遡ると思いますが、ネットワークソケットは後にUC Berkeleyで追加されました。ベルはAT&Tの運用のためにすっきりした保守可能なパラダイムを作成しようとしていましたが、バークレーはそのパラダイムに簡単に収まらないインターネット機能を追加する必要がありました。技術的には、今日戻って/dev/eth0
ファイルを作成することは可能ですが(下記を参照)、非常に多くのレガシーコードを書き換える必要があります。
わずかなOT:対象が興味のある場合は、「すべてがファイル」であるという極端なものになったプラン9を検討することを検討してください(非常に多くの最新の使用可能なアプリケーションがあるとは思わないでください)。
http://www.faqs.org/docs/artu/plan9.html
unixでBSDソケット、fcntl(2)、ioctl(2)などのさまざまなアドホックインターフェイスを介してアクセスされる多くの機能は、デバイスファイルに類似した特殊ファイルの通常の読み取りおよび書き込み操作を介してアクセスされるPlan 9にあります
少し前までは、イーサネットデバイスdidは/ dev/eth0、/ dev/eth1などとして表示されます。そこにそれらを見つけることを期待しているアプリケーションがまだありますが、現在は失望し、時には使用できません。幸いにも多すぎません。
こんにちは今日、/ devディレクトリには、/ sysディレクトリを読み取り、それらのファイルを作成するデーモンであるudevが読み込まれます。 fdiskとgdiskを使用する場合、/ devにあるデバイスを使用する必要があります。そして、使用されているttyとptyを確認します。 BSDは、/ devにイーサネットインターフェースを割り当て、そこに書き込みと読み取りができると思います。