Windows上のUbuntu(WSL)のBashでコマンド「ifconfig」を使用しようとすると、次のようなエラーが発生します:-
root @ example:〜#ifconfig
警告:/ proc/net/devを開くことができません(そのようなファイルまたはディレクトリはありません)。出力が制限されています。
そして、「iwconfig」を実行しようとすると:-
eth0ワイヤレス拡張機能はありません。
wifi0ワイヤレス拡張機能はありません。
loワイヤレス拡張機能はありません。
und0ワイヤレス拡張機能はありません。
und1ワイヤレス拡張機能はありません。
これにより、ネットワークデバイスが検出されなかったと思いますが、インターネットはどのように機能していますか? apt-getを使用してアプリをインストールしたので、インターネットはうまく機能します。
私はLinuxプロではなく、wslプロではないので、この問題を克服する方法についてアドバイスをいただけますか?
WSLは完全なLinuxカーネルを実行しません。それは、個々のシステムコールをWindowsバリアントに変換するだけです。したがって、Windows自体がすでに検出しているため、WSLは実際のLinuxと同じようにデバイスを「検出」する必要はありません。
その上、デバイスを「検出」することは、とにかく、デバイスに関する情報を公開することと同じではありません。 _/proc/net
_内のファイルは、情報提供のみを目的としています。実際にネットを使用する場合は必要ありません。したがって、それらが欠落していても大きな問題ではありません。
さらに、ほとんどのネットワークプログラムは実際のデバイスを気にしません;それらは高レベルの機能(BSDソケット)のみを扱います)そしてOSに詳細を処理させます。したがって、WSLがsocket()
やconnect()
やsendto()
のような関数を実装している限り、それで十分です。
iwconfig
の状況も同様です。ワイヤレスデバイスはすでにWindows自体によって管理されています。 WSLはリンク情報をLinuxプログラムに変換する方法を知らないだけですが、それらのほとんどはとにかくそれを知る必要はありません。
さらに、iwconfig
は、ほぼ廃止されたWEXTAPIを使用する古いツールです。開発者は、iw
などの最新のnl80211ベースのツールを最初に機能させることにもっと関心があると思います。
(多くのLinuxドライバーでさえWEXTを直接サポートしなくなり、nl80211上でのみエミュレートします。)