web-dev-qa-db-ja.com

イーサネットデバイスが「/ dev」に表示されないのはなぜですか?

一般に、Linuxシステムに新しいデバイスを接続すると、/devに新しいエントリがリストされることに気づきました(正しいドライバーがある場合)。

例えば:

  1. 新しいハードドライブを接続すると、/dev/sdbが取得されます。
  2. シリアルデバイスを接続すると、/dev/ttyS0が取得されます。

イーサネットデバイスを接続したときに、/dev/eth0のようなものが表示されないのはなぜですか?

イーサネットポートのデバイスリストはありますか?

ifconfigを使用してポート名を表示できることはわかっていますが、/devにも何かが表示されるのではないかと思っています。

6
dinkelk

いい質問ですね。その理由は本質的に歴史的なものです。さまざまな目標と優先順位を持つさまざまなグループが時間の経過とともに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にあります

9
Paul

少し前までは、イーサネットデバイスdidは/ dev/eth0、/ dev/eth1などとして表示されます。そこにそれらを見つけることを期待しているアプリケーションがまだありますが、現在は失望し、時には使用できません。幸いにも多すぎません。

0
Gordon

こんにちは今日、/ devディレクトリには、/ sysディレクトリを読み取り、それらのファイルを作成するデーモンであるudevが読み込まれます。 fdiskとgdiskを使用する場合、/ devにあるデバイスを使用する必要があります。そして、使用されているttyとptyを確認します。 BSDは、/ devにイーサネットインターフェースを割り当て、そこに書き込みと読み取りができると思います。

0
Kouros