Androidを通常のOSとしてインストールできないのはなぜですか?


11

Androidがまだファームウェアであり、それほど手間をかけずにインストールできるOSではない、技術的またはその他の理由はありますか?

適切なドライバー(カーネルモジュール)を検出し、NANDを標準的な方法でパーティション分割し、ブートローダーを構成して更新されたOSバージョンを起動できるユニバーサルイメージがないのはなぜですか?

Googleが実際の(ファームウェアに似ていない)OS(小さなARM、x86などのデバイス用のOS)を作成するのを妨げているものは何ですか?


1
これはAndroidに限定されているわけではないことに注意してください。ARMデバイスに焦点を合わせている他のOS(MicrosoftのWindows 8 RTでさえ)は、他のARMマシンにインストールするだけでなく、ファームウェアのように扱うことができます。
GAThrawn 2013年

これは、ヘッダファイルです: theregister.co.uk/2011/03/29/...
Thufir

回答:


11

Googleが実際のOS(小さなARM、x86などのデバイス用のOS)を作成するのを妨げているものは何ですか?

「本物の」OSです。

適切なドライバーを検出できるユニバーサルイメージがない理由

存在しないドライバをどのように検出しますか?誰かがそれらを書かなければなりません。PCとは異なり、電話のハードウェアは大きく異なります。これは主に、エンドユーザーがパーツやサイズの制約から独自にハードウェアを構築することができないためです。交換可能な部品や特別なチップセットの代わりにカスタマイズされた部品は、非常に特定のドライバーが必要であることを意味し、OSはデフォルトのドライバーを出荷することはできません。膨らみも想像してみてください。20MBのアプリ用の安価なHTCフォンを持っている人には、必要のないドライバーをホストする余裕がありません。

更新されたOSバージョンを起動するようにブートローダーを設定します

ブートローダーもデバイス間で大きく異なります。単一のメーカーを使用するには、すべてのメーカーを参加させる必要があり、メーカーはその分野での力を放棄したいとは思わないでしょう。


3
…しかし、彼らは非常にモジュール式のカーネルでディストリビューションを作成し、必要なものだけをインストールすることができます。PCハードウェアも、バグの多いCMD640 IDEを備えたペンティアムから、usb3を備えたCore i7までさまざまです。彼らは、デバイス上の既存のOSからVendorISs:DeviceIDsを読み取り、QEMuでカーネルをコンパイルし、新しいものでデバイスに転送するインストーラーを作成できます。個人がmenuconfigを使用して特定のデバイス用に十分なカーネルを作成することが可能であっても、スクリプトによって自動的に作成することは難しいと思います。
Alex Bolotov

1
@OleksandrBolotov:Linuxカーネルには、ビルドの実行時にコンパイルされる多数のオープンソースドライバー実装も含まれていることに注意してください。モバイルデバイスで使用されるドライバーの大部分は独自仕様であるため、十分な時間が与えられれば、どのデバイスのソースからでもAndroidをビルドできますが、すべてのドライバーを実装する必要があります。さらに、Googleが自分たちでこれを行った場合、知的財産権の契約に違反する可能性があります(確かにはわかりませんが、さまざまなメーカーとの契約に含まれている可能性があります)。
eldarerathis 2012年

2
@OleksandrBolotov私は確かに彼ら問題を軽減するために何かをすることができることに同意しますが、私たちは問題が彼らがそうしない理由であると仮定することができるだけです;)。さらに推測することは私たちの範囲を超えていると思います。
Matthewが

2
はい、tl; drドライバーの問題です。誰かがドライバーを作らなければなりません。
ブライアンデニー

設計上、またはそれ自体が完璧なシナリオとして、カーネルにはすべてのドライバーが含まれますが、Android OSはユニバーサルであり、両方を個別にフラッシュしたり、バンドルにまとめてストックファームウェアとしてフラッシュしたりすることができます(今日多く見られます)。カーネルがOSから分離されている場合、製造元のカーネルを最初にフラッシュした任意のデバイスにカーネルレスAOSPを直接フラッシュできますか?多分これはすでに存在していますか?Idk
アーロン

3

あなたが求めているように見えるものを提供するためには、抽象化の追加のレイヤー(またはより堅牢なレイヤー)をオペレーティングシステムに追加して、ハードウェアとの結合を弱める必要があります。これを追加すると、メモリを多く必要とし、どちらにも余裕のないプラットフォームでより多くのCPUサイクルを消費します。


2

OracleとのGoogleの継続的な訴訟!

GoogleはAndroidをPCに導入する計画を持っていますが、それはあなたが想定しているものではありません。GoogleはChromeにAndroid実行環境を追加したいと考えています。Androidは-多くの作業で-PCにインストールできるようにすることで作成できますが、代わりにChromeに導入すると、すべてのコンピューターの25%に簡単に展開できます(25%はChromeの市場シェアです)。

私を信じていないなら、Googleが訴訟を避けるために現在戦っている喫煙銃の電子メールを見てください。これは、ChromeにJavaが必要であることを示しています。

Googleが訴訟に敗れた場合、Javaが突然辞任することを示唆しているわけではありません-彼らはJavaにそれを行うにはあまりにも熱心すぎます-しかし、少なくともJavaを使用する条件がどのようになるかを知りたいと思っています彼らはそれへの依存を大幅に増加させるだろうステップを踏みます。


1
Googleは、Android Inc.が以前に行った悪い決定に苦しんでいるだけです。それは、Javaを新しいOSでのアプリ開発に使用するのはとてもひどい考えでした。Javaがプロプライエタリトラップであり、Dalvikの非Java VMバイトコードを作成するためにJavaを必要としないことさえ明らかでした。私は彼らがすべてを説明する管理の裏切り者を持っていると思います。
Alex Bolotov

1
ChromeにAndroid実行環境を追加するのは、これが問題なければ、それほど難しいことではないようです... bluestacks.com -Windowsデスクトップで実行されるAndroidアプリ!
キャプテンヒキガエル

2
これらすべての証拠はありますか?それとも、乱暴に推測しているだけですか?
Dan Hulme、2013

確かに、この回答を書いてから多くのことが変わった。最も重要なのは、PachaiがGoogleでRubinと関連する組織を置き換えたことです。その後、すべての兆候が変わったように見え、IO13はIO12とは大きく異なっていました。明らかに、モバイルプラットフォームとしてのChromeをそのまま推進しているため、AndroidをChromeに導入することはもうありません。
トム・

1

Google以外の人がすでにx86プラットフォームへの移植に取り組んでいます。Android-x86プロジェクトをチェックアウトすると、限られた数のハードウェアデバイスで利用できるさまざまなビルドを確認できます。いくつかのイメージをダウンロードして、自分のコンピューター(Dell Latitude D520のDebianベースのCrunchBang Linux)のVirtualBoxで実行しようとしましたが、ロードできませんでした。ただし、できるかもしれません。GL!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.