![Linuxの整合性がARMドライバで(部分的に)問題になるのですか? [閉鎖]](https://linux33.com/image/104986/Linux%E3%81%AE%E6%95%B4%E5%90%88%E6%80%A7%E3%81%8CARM%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%A7%EF%BC%88%E9%83%A8%E5%88%86%E7%9A%84%E3%81%AB%EF%BC%89%E5%95%8F%E9%A1%8C%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
カーネルに関する私の知識は多少制限されているので、この質問が間違った出発点から来た場合はご了承ください。
私のラップトップなどのx86ベースのコンピュータでは、任意のLinuxディストリビューションをインストールできます。 WLANカードまたはグラフィックカードにはいくつかのマイナーな問題がある可能性がありますが、通常はすべてのバージョンのLinuxカーネルをインストールできます。
ARMプロセッサを搭載したAndroid携帯電話やRaspberry Piなどのシステムは実際にこれを行うことができず、特別なコアを装備する必要があります。そして、チップメーカーは、特定のバージョンのLinuxカーネルでコンパイルされたバージョンのドライバのみを提供しているようです。 Android携帯はほとんどアップデートを受けておらず、ソフトウェアは自動車エンターテイメントシステムと同じくらいハードウェアに接続されているようです。
製造業者は、カーネルの様々なバージョンのドライバを維持することはあまりにも多くの作業であり、新しいバージョンに移植するのも難しいと言います。しかし、なぜAndroidユーザーが適切な努力をしてもアップデートを受け取ることができないほど、特定のバージョンに密接に縛られているのですか? x86で実行されますか?
ドライバがカーネルに緊密に統合されているかどうか疑問に思います。独立したモジュールに分離するのが役立ちます。その後、デバイスメーカーはまだコンパイルされたコードをリリースできますが(競合他社がそのデバイスのデザインを推測できないように)、他のLinuxバージョンで使用できます。 AndroidおよびデスクトップLinuxディストリビューションは最新のカーネルを使用して最新バージョンをリリースするため、そのカーネルバージョン用のドライバがないとシステム全体をアップグレードすることはできません。
Androidデバイスがまだ以前のバージョンにとどまっている根本的な理由は何ですか?
答え1
著作権、特許、その他の知的財産権の問題が実際に根本的な原因です。ハードウェアメーカーは詳細全体を公開していませんが、バイナリブロブを提供しています。残念ながら、カーネルの内部動作は完全に安定していないため、リリースするたびにバイナリブロブを更新する必要があります。アップデートを提供しても、製造元に追加の収益は発生しません。以前のVMWareカーネルモジュール(少なくとも開いていてパッチ適用可能)とNVidiaがグラフィックカード用に提供したドライバにも同じ問題があります。
Linusは、安定した内部インターフェースには興味がないと述べた。ハードウェアメーカーが自分の製品が常に動作するようにしたい場合は、コードを開き、それをデフォルトのカーネルツリーに統合する必要があります。 。