09/03/15 16:08:56 koh2oVq+
ドライバといえば・・・普及しない原因のひとつだな。
Linuxはドライバがオープンソースであることが前提になっている。
ドライバはカーネルのAPIを使うわけだけど、
このカーネルのAPIが、マイナーバージョンが変わっただけでも
互換性考慮せずに簡単に変更される。
ゆえに、カーネルのマイナーバージョンごとにコンパイルしないといけない。
MODULE_LICENSEというマクロがあって、このドライバのライセンスは○○だよと
指定できるわけだけど、それがGPLなどでないと使えない関数がある。
ドライバモデルに柔軟性が無く、たとえばドライバとハードウェアに間に
別のドライバを入れるフィルタドライバのような仕組みが無い。
やりたければ、ドライバを修正する必要があり、オープンソースでないと不可能。
こんな制約があるため、企業秘密を含むドライバを作るのが難しく、
結果、対応していないハードウェアが増える。