web-dev-qa-db-ja.com

一部のデバイスがLinuxではUSBドライバーを必要としないのに、Windowsでは必要なのはなぜですか?

USBインターフェースを使用するいくつかのプロジェクトを見てきました。通常、Windowsには特別なドライバーが必要ですが、Linuxベースのシステムには必要ありません。何故ですか?つまり、Windowsでさえ基本的なUSBデバイスクラス用の汎用ドライバーがいくつかあるので、LinuxはWindowsがサポートしていないものを何をサポートしていますか?

4
user32569

また、Linuxでは、標準のディストリビューション(場合によってはカーネルビルド)に、多くの興味深い特定のハードウェアドライバーがすでに含まれている傾向があります。これは、主にユーザーによる時間の経過による貢献によるものです。 Windowsには、任意の開発者が一般的なハードウェア用のドライバーを作成し、それをWindowsのすべての新しいディストリビューションに含める方法が実際にはありません。これは別のソフトウェアと配布モデルです。 Linuxでは、時間の経過とともに多くのことが主流になります。

Linuxがより「汎用的な」ドライバーを持っているだけではありません(しかし、これは多くの場合当てはまります。特に、ベンダーが特定のハードウェア専用のドライバーを作成するのではなく、可能な限り広範囲のドライバーを作成することに関心がある場合はそうです)。人々が貢献し、すぐにメインのディストリビューションに入ることができるコレクション。

Linuxに付属しているあらゆる種類の奇妙なものを目にします。たとえば、CANは、産業用オートメーションおよび制御で使用するためのシリアルインターフェイスおよびプロトコルです。使用は比較的まれですが、Ubuntuに付属のカーネルには汎用CANサポートが組み込まれており、コントローラーカードのベンダー固有のインターフェイスカーネルモジュールにはUbuntu標準が付属しています。この種の配布は、WindowsやOSXなどのより制御されたオペレーティングシステムでは不可能です。最近ロボット工学プロジェクトに取り組んでいなかったら、これについては知りませんでした。驚いたことに、インターフェイスドライバーがカーネルに組み込まれているだけでなく、ベンダーのコントローラーカードのモジュールもすでに(驚くべきことに)含まれていました。 。


オフトピックっぽい:

また、標準で出荷されていないドライバーの場合でも、両方のOSが以前よりもはるかに優れていることも注目に値します。人気のあるLinuxディストリビューションは、競争力を維持するためにソフトウェアの入手をできるだけ簡単にするために懸命に取り組んできました。そのため、多くの場合、システムにまだ存在しないドライバーは、パッケージリポジトリから簡単に入手できます(15年前はたくさんありました)。 Linuxでランダムなハードウェアを動作させるのは難しい)。 Windowsは、近年、ハードウェアが接続されているときに自動ダウンロードできるドライバーの大規模なリポジトリをオンラインで利用できるようになっています。最近では、少なくとも私にとっては、「このデバイスのドライバーはWindows上にある」。

それは(すべてのOSで)良くなるだけです。ソフトウェアとドライバーのインストールのしやすさは、今日非常に普及しています(特に、モバイルデバイスによって促進された「アプリ」スタイルのプラットフォームの進歩により、今では、Ubuntuのソフトウェアセンター、Windows 8マーケットプレイス、iTunesストア、Google Play、さらにはChrome、Firefoxなどの個々のソフトウェアにはすべて、新しいソフトウェアの検索とインストールの容易さに完全に焦点を当てた新機能があります)。ソフトウェアを探し回らなければならない場合はバグですが、そうでない場合はボーナスでした。

6
Jason C

AFAIK Linuxはカーネルにすべての「ドライバー」を含みますが、Windowsはそれらを別々に保ちます。したがって、Linuxにはドライバーがありますが、それらはすでにシステムの心臓部に含まれています。また、Linuxはより一般的なドライバーを使用しますが、Windowsには特定のデバイスを対象とするより具体的なドライバーがあります。

0
p1xel