¿Por qué Android todavía no se puede instalar como SO normal?

11

¿Hay alguna razón técnica o de otro tipo por la que Android sigue siendo un firmware y no un sistema operativo que puede instalarse sin problemas?

¿Por qué no hay una imagen universal que pueda detectar los controladores apropiados (módulos del núcleo), particionar NAND de alguna manera estándar y configurar el cargador de arranque para arrancar la versión actualizada del sistema operativo?

¿Qué impide que Google cree un SO real (menos similar al firmware) (un SO para dispositivos ARM pequeños, x86, etc.)?

Alex Bolotov
fuente
1
Vale la pena señalar que esto no es exclusivo de Android, otros sistemas operativos que se centran en dispositivos ARM (incluso Windows 8 RT de Microsoft) no se pueden instalar en cualquier otra máquina ARM, sino que se tratan más como firmware.
GAThrawn
Son los archivos de encabezado: theregister.co.uk/2011/03/29/…
Thufir
También vea esto: android.stackexchange.com/questions/205072/…
Irfan Latif

Respuestas:

11

¿Qué impide que Google cree un sistema operativo real (un sistema operativo para dispositivos ARM pequeños, x86, etc.)?

Es un sistema operativo "real".

¿Por qué no hay una imagen universal que pueda detectar los controladores apropiados?

¿Cómo se detectan los controladores que no existen? Alguien tiene que escribirlos. A diferencia de las PC, el hardware del teléfono varía enormemente, en gran medida porque no es factible que los usuarios finales construyan los suyos a partir de las limitaciones de piezas y tamaños. Las piezas personalizadas en lugar de las intercambiables y los conjuntos de chips especiales significan que se necesitan controladores muy específicos, y un sistema operativo no solo puede enviar los predeterminados. Imagine también la hinchazón: alguien con un teléfono HTC barato con 20 MB para aplicaciones no tiene espacio para alojar controladores que no necesita.

y configurar el cargador de arranque para arrancar la versión actualizada del sistema operativo

Los cargadores de arranque también varían enormemente entre dispositivos; tendrías que tener a todos los fabricantes a bordo para usar uno solo, y es poco probable que los fabricantes quieran renunciar a su poder en esa área.

Matthew Read
fuente
3
... pero podrían hacer la distribución con un núcleo muy modular y luego instalar las cosas que solo necesitaban. El hardware de la PC también varía de pentium con el IDE CMD640 defectuoso a Core i7 con usb3. Podrían hacer un instalador que lea VendorISs: DeviceIDs del sistema operativo existente en el dispositivo y luego simplemente compila el kernel en QEMu y luego lo transfiere al dispositivo con cosas nuevas. Supongo que tiene razón, incluso si es posible que una persona solo use menuconfig para hacer un kernel lo suficientemente bueno para un dispositivo específico, eso casi no puede ser hecho automáticamente por algún script.
Alex Bolotov
1
@OleksandrBolotov: Tenga en cuenta que el kernel de Linux también contiene una gran cantidad de implementaciones de controladores de código abierto que se compilan cuando ejecuta una compilación. La gran mayoría de los controladores utilizados por los dispositivos móviles son propietarios, por lo que aunque ciertamente puede construir Android desde la fuente para cualquier dispositivo con el tiempo suficiente, tendría que implementar todos los controladores. Además, Google puede entrar en conflicto con los acuerdos de propiedad intelectual si lo hicieron ellos mismos (no lo sé con certeza, pero ciertamente puede estar en sus contratos con varios fabricantes).
eldarerathis
2
@OleksandrBolotov Ciertamente estoy de acuerdo en que podrían hacer algo para mitigar los problemas, pero solo podemos suponer que los problemas son por qué no lo hacen;). Creo que especular más allá estaría más allá de nuestro alcance.
Matthew leyó el
2
Sí, tl; dr es un problema del conductor. Alguien tiene que hacer los conductores.
Bryan Denny
Por diseño, o el escenario perfecto per se, el kernel contendría todos los controladores, mientras que el sistema operativo Android es universal, ambos podrían flashearse por separado o agruparse en un paquete como firmware de stock (que vemos mucho hoy). Si el kernel se separó del sistema operativo, ¿podríamos instalar flash AOSP sin kernel directamente en cualquier dispositivo que tenga el kernel de su fabricante flasheado primero? Tal vez esto ya existe? Idk
Aaron Gillion
3

Para proporcionar lo que parece estar pidiendo, se debería agregar una capa adicional (o más robusta) de abstracción al sistema operativo para que se acople menos al hardware. Agregar esto requeriría más memoria y consumiría más ciclos de CPU en una plataforma que tiene poco que perder.

Pausado hasta nuevo aviso.
fuente
2

¡La demanda en curso de Google con Oracle!

Google tiene un plan para llevar Android a las PC, pero no es exactamente lo que está imaginando: Google quiere agregar el entorno de ejecución de Android a Chrome. Android podría, con mucho trabajo, hacerse instalable en las PC, pero llevarlo a Chrome en su lugar significa que podría implementarse fácilmente en el 25% de todas las computadoras de inmediato (25% es la cuota de mercado de Chrome ~).

Si no me cree, mire el correo electrónico de la pistola humeante que Google está luchando actualmente para evitar una demanda: se refiere a que Google necesita Java para Chrome.

No estoy sugiriendo que Google deje caer Java repentinamente si pierden la demanda, están demasiado comprometidos con Java para hacerlo, pero les gustaría saber al menos cuáles serán los términos de usar Java antes dan un paso que aumentaría significativamente su dependencia de él.

Tom
fuente
1
Google simplemente sufre de malas decisiones tomadas hace mucho tiempo por Android Inc. Esa fue una idea horrible de usar Java para el desarrollo de aplicaciones en un nuevo sistema operativo. ¿No era lo suficientemente obvio que Java es solo una trampa patentada e incluso no la necesitan para crear un código de bytes VM no Java para Dalvik? Supongo que solo tienen traidores en la administración que explica todo.
Alex Bolotov
1
Parecería que agregar el entorno de ejecución de Android a Chrome podría no ser tan difícil si esto es algo que debe pasar ... bluestacks.com : ¡aplicaciones de Android que se ejecutan en un escritorio de Windows!
Capitán Toad
2
¿Tienes alguna evidencia de todo esto, o solo especula salvajemente?
Dan Hulme
Ciertamente, mucho ha cambiado desde que escribí esta respuesta. Lo más importante fue que Pachai reemplazó a Rubin y la reorganización asociada en Google. Todos los signos parecieron cambiar después de eso, y IO13 fue muy diferente a IO12: claramente ahora están presionando a Chrome como una plataforma móvil en sí misma, por lo que ya no creo que traigan Android a Chrome.
Tom
1

Otras personas además de Google ya están trabajando en portarlo a la plataforma x86. Si echa un vistazo al Proyecto Android-x86 , puede ver varias compilaciones disponibles, aunque para un número limitado de dispositivos de hardware. Traté de descargar un par de imágenes y ponerlas en funcionamiento en VirtualBox en mi computadora (CrunchBang Linux basado en Debian en Dell Latitude D520) pero no pude cargarlo. Sin embargo, es posible que pueda hacerlo. GL!

vyse
fuente