Perché Android non può ancora essere installato come normale sistema operativo?


11

Ci sono ragioni tecniche o di altro tipo per cui Android è ancora un firmware e non un sistema operativo che può essere appena installato senza molta seccatura?

Perché non esiste un'immagine universale in grado di rilevare i driver appropriati (moduli del kernel), partizionare NAND in qualche modo standard e configurare boot loader per avviare la versione aggiornata del sistema operativo?

Cosa impedisce a Google di creare un sistema operativo reale (meno simile al firmware) (un sistema operativo per piccoli dispositivi ARM, x86 ecc.)?


1
Vale la pena notare che questo non è esclusivo di Android, altri sistemi operativi che si concentrano su dispositivi ARM (anche Windows 8 RT di Microsoft) non possono essere installati su qualsiasi altra macchina ARM, ma sono trattati più come firmware.
GAThrawn

E 'i file di intestazione: theregister.co.uk/2011/03/29/...
Thufir

Risposte:


11

Cosa impedisce a Google di creare un vero sistema operativo (un sistema operativo per piccoli dispositivi ARM, x86 ecc.)?

È un sistema operativo "reale".

Perché non esiste un'immagine universale in grado di rilevare i driver appropriati

Come si rilevano i driver che non esistono? Qualcuno deve scriverli. A differenza dei PC, l'hardware del telefono varia notevolmente, in gran parte perché non è possibile per gli utenti finali costruire il proprio partendo da vincoli di parti e dimensioni. Parti personalizzate anziché intercambiabili e chipset speciali significano che sono necessari driver molto specifici e un sistema operativo non può semplicemente fornire quelli predefiniti. Immagina anche il gonfiore: qualcuno con un telefono HTC economico con 20 MB per le app non ha spazio per ospitare i driver di cui non ha bisogno.

e configurare boot loader per avviare la versione aggiornata del sistema operativo

Anche i bootloader variano notevolmente tra i dispositivi; dovresti coinvolgere tutti i produttori per utilizzarne uno singolo e è improbabile che i produttori vogliano rinunciare al loro potere in quella zona.


3
... ma potrebbero fare la distribuzione con un kernel molto modulare e quindi installare solo le cose necessarie. L'hardware del PC varia anche da Pentium con IDE CMD640 difettoso a Core i7 con USB3. Potrebbero creare un programma di installazione che legge VendorIS: DeviceID dal sistema operativo esistente sul dispositivo e quindi compila il kernel su QEMu e poi lo trasferisce sul dispositivo con nuovi elementi. Immagino che tu abbia ragione, anche se è possibile per una persona usare semplicemente menuconfig per creare un kernel abbastanza buono per un dispositivo specifico, che difficilmente può essere creato automaticamente da alcuni script.
Alex Bolotov,

1
@OleksandrBolotov: tenere presente che il kernel Linux contiene anche un gran numero di implementazioni di driver open source che vengono compilate quando si esegue una build. La stragrande maggioranza dei driver utilizzati dai dispositivi mobili sono proprietari, quindi anche se puoi sicuramente costruire Android dalla fonte per qualsiasi dispositivo, dato il tempo sufficiente, dovresti implementare tutti i driver. Inoltre, Google potrebbe infrangere gli accordi di proprietà intellettuale se lo facessero da soli (non lo so per certo ma potrebbe certamente essere nei loro contratti con vari produttori).
eldarerathis,

2
@OleksandrBolotov Sono certamente d'accordo sul fatto che potrebbero fare qualcosa per mitigare i problemi, ma possiamo solo supporre che i problemi siano il motivo per cui non lo fanno;). Penso che speculare ulteriormente sarebbe oltre il nostro scopo.
Matthew Leggi il

2
Sì, tl; dr è un problema di driver. Qualcuno deve creare i driver.
Bryan Denny

In base alla progettazione, o allo scenario perfetto di per sé, il kernel conterrebbe tutti i driver, mentre il sistema operativo Android è universale, entrambi potrebbero essere sottoposti a flash separatamente o in un bundle come firmware stock (che vediamo molto oggi). Se il kernel fosse separato dal sistema operativo, potremmo essere in grado di eseguire il flashing di AOSP senza kernel direttamente su qualsiasi dispositivo su cui il kernel del produttore ha eseguito il flashing per primo? Forse questo esiste già? Idk
Aaron Gillion

3

Al fine di fornire ciò che sembri chiedere, un ulteriore livello (o un più robusto) di astrazione dovrebbe essere aggiunto al sistema operativo in modo che sia accoppiato meno strettamente all'hardware. L'aggiunta di questo richiederebbe più memoria e consumerebbe più cicli di CPU su una piattaforma che ha poco di uno di quelli da risparmiare.


2

La causa in corso di Google con Oracle!

Google ha un piano per portare Android su PC, ma non è proprio quello che stai immaginando: Google vuole aggiungere l'ambiente di esecuzione Android a Chrome. Android potrebbe - con molto lavoro - essere reso installabile su PC, ma portarlo su Chrome invece significa che potrebbe essere facilmente implementato sul 25% di tutti i computer immediatamente (il 25% essendo la ~ quota di mercato di Chrome).

Se non mi credi, guarda l'e-mail di pistola fumante che Google sta attualmente combattendo per evitare cause legali - si riferisce a Google che necessita di Java per Chrome.

Non sto suggerendo che Google abbandonerà improvvisamente Java se perdono la causa - sono troppo impegnati con Java per farlo - ma vorrebbero almeno sapere quali saranno i termini dell'uso di Java prima fanno un passo che aumenterebbe significativamente la loro dipendenza da esso.


1
Google soffre solo di decisioni sbagliate prese molto tempo fa da Android Inc. È stata un'idea così orribile da usare Java per lo sviluppo di app sul NUOVO sistema operativo. Non era abbastanza ovvio che Java è solo una trappola proprietaria e nemmeno ne hanno bisogno per creare un bytecode VM non java per Dalvik. Immagino che abbiano solo dei traditori nella gestione che spiegano tutto.
Alex Bolotov,

1
Sembrerebbe che aggiungere l'ambiente di esecuzione Android a Chrome potrebbe non essere così difficile se questo è qualcosa da fare ... bluestacks.com - App Android in esecuzione su un desktop di Windows!
Captain Toad,

2
Hai qualche prova per tutto questo o stai solo speculando selvaggiamente?
Dan Hulme,

Certamente molto è cambiato da quando ho scritto questa risposta. Soprattutto, Pachai ha sostituito Rubin e la riorganizzazione associata di Google. Dopo tutto, tutti i segni sembravano cambiati, e IO13 era molto diverso da IO12: chiaramente ora stanno spingendo Chrome come piattaforma mobile di per sé, quindi non credo più che porteranno Android su Chrome.
Tom

1

Altre persone oltre a Google stanno già lavorando al porting sulla piattaforma x86. Se dai un'occhiata al progetto Android-x86 puoi vedere varie build disponibili anche se per un numero limitato di dispositivi hardware. Ho provato a scaricare un paio di immagini e farle funzionare in VirtualBox sul mio computer (CrunchBang Linux basato su Debian su Dell Latitude D520) ma non sono riuscito a caricarlo. Tuttavia, potresti essere in grado di farlo. GL!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.