Por que o Android ainda não pode ser instalado como sistema operacional normal?

11

Existem razões técnicas ou outras por que o Android ainda é um firmware e não um sistema operacional que pode ser instalado sem muito aborrecimento?

Por que não existe uma imagem universal capaz de detectar drivers apropriados (módulos do kernel), particionar o NAND de alguma maneira padrão e configurar o carregador de inicialização para inicializar a versão atualizada do sistema operacional?

O que impede o Google de criar um sistema operacional real (menos semelhante ao firmware) (um sistema operacional para pequenos dispositivos ARM, x86 etc.)?

Alex Bolotov
fonte
1
Vale ressaltar que isso não é exclusivo do Android, outros sistemas operacionais focados em dispositivos ARM (mesmo o Windows 8 RT da Microsoft) não podem ser instalados apenas em qualquer outra máquina ARM, mas são tratados mais como firmware.
# 1
É o arquivo do cabeçalho: theregister.co.uk/2011/03/29/…
Thufir

Respostas:

11

O que impede o Google de criar um sistema operacional real (um sistema operacional para pequenos dispositivos ARM, x86 etc.)?

É um sistema operacional "real".

Por que não há imagem universal que possa detectar drivers apropriados

Como você detecta drivers que não existem? Alguém tem que escrevê-los. Ao contrário dos PCs, o hardware do telefone varia bastante, principalmente porque não é viável para os usuários finais construir seus próprios a partir de restrições de peças e tamanho. Peças personalizadas em vez de peças intercambiáveis ​​e chipsets especiais significam que drivers muito específicos são necessários, e um sistema operacional não pode apenas enviar peças padrão. Imagine o inchaço também - alguém com um telefone HTC barato com 20 MB para aplicativos não tem espaço para hospedar drivers de que não precisa.

e configure o carregador de inicialização para inicializar a versão atualizada do SO

Os gerenciadores de inicialização também variam muito entre os dispositivos; você precisaria contratar todos os fabricantes para usar um único, e é improvável que os fabricantes desejem abrir mão de seu poder nessa área.

Matthew Read
fonte
3
… Mas eles poderiam fazer a distribuição com o kernel muito modular e depois instalar as coisas necessárias. O hardware do PC também varia de pentium com buggy CMD640 IDE a Core i7 com usb3. Eles poderiam fazer o instalador que lê VendorISs: DeviceIDs do sistema operacional existente no dispositivo e depois compila o kernel no QEMu e depois o transfere para o dispositivo com novos itens. Eu acho que você está certo, mesmo que seja possível que uma pessoa use o menuconfig para criar um kernel suficientemente bom para um dispositivo específico, que dificilmente pode ser feito automaticamente por algum script.
AlexBalotov
1
@OleksandrBolotov: Lembre-se de que o kernel do Linux também contém um grande número de implementações de driver de código aberto que são compiladas quando você executa uma compilação. A grande maioria dos drivers usados ​​pelos dispositivos móveis é proprietária; portanto, mesmo que você possa criar o Android a partir da fonte para qualquer dispositivo com tempo suficiente, você precisará implementar todos os drivers. Além disso, o Google pode entrar em conflito com os acordos de propriedade intelectual se eles fizerem isso por conta própria (não sei ao certo, mas certamente pode estar em seus contratos com vários fabricantes).
Eldarerathis 7/03/12
2
@OleksandrBolotov Eu certamente concordo que eles poderiam fazer algo para atenuar os problemas, mas podemos apenas assumir que os problemas são o motivo pelo qual não o fazem;). Penso que especular mais estaria além do nosso escopo.
Matthew Leia
2
Sim, tl; dr é um problema de driver. Alguém tem que fazer os motoristas.
Bryan Denny
Por design, ou o cenário perfeito em si, o kernel conteria todos os drivers, enquanto o sistema operacional Android é universal, ambos podiam ser exibidos separadamente ou juntos em um pacote como firmware padrão (o que vemos muito hoje). Se o kernel fosse separado do sistema operacional, poderíamos fazer o flash do AOSP sem o kernel diretamente em qualquer dispositivo com o kernel do fabricante piscando primeiro? Talvez isso já exista? Idk
Aaron Gillion
3

Para fornecer o que você parece estar solicitando, uma camada adicional (ou mais robusta) de abstração teria que ser adicionada ao sistema operacional para que ele fosse menos firmemente acoplado ao hardware. Adicionar isso exigiria mais memória e consumiria mais ciclos de CPU em uma plataforma que tem pouco de sobra.

Pausado até novo aviso.
fonte
2

Processo em andamento do Google com a Oracle!

O Google tem um plano para trazer o Android para os PCs - mas não é exatamente o que você está imaginando: o Google quer adicionar o ambiente de execução do Android ao Chrome. O Android poderia - com muito trabalho - feito para ser instalado em PCs, mas trazê-lo para o Chrome significa que ele poderia ser facilmente implantado em 25% de todos os computadores imediatamente (25% sendo a ~ quota de mercado do Chrome).

Se você não acredita em mim, veja o e-mail da arma de fumaça que o Google está lutando para manter fora do processo - refere-se ao Google que precisa do Java para Chrome.

Não estou sugerindo que o Google abandone repentinamente o Java se eles perderem o processo - eles estão muito comprometidos com o Java para fazer isso - mas eles gostariam de pelo menos saber quais serão os termos de uso do Java antes eles dão um passo que aumentaria significativamente sua dependência.

Tom
fonte
1
O Google sofre de más decisões tomadas há muito tempo pela Android Inc. Essa foi uma idéia tão horrível usar o Java para o desenvolvimento de aplicativos no NOVO SO. Não era óbvio o suficiente que o Java é apenas uma armadilha proprietária e eles nem precisam dele para criar bytecode de VM não-java para o Dalvik. Eu acho que eles só têm traidores na gerência que explicam tudo.
AlexBalotov
1
Parece que adicionar o ambiente de execução do Android ao Chrome pode não ser tão difícil se isso é algo que deve acontecer ... bluestacks.com - aplicativos Android em execução na área de trabalho do Windows!
Capitão sapo
2
Você tem alguma evidência de tudo isso ou está apenas especulando descontroladamente?
9788 Dan Hulme
Certamente, muita coisa mudou desde que escrevi esta resposta. O mais importante foi Pachai substituindo Rubin e a reorganização associada no Google. Todos os sinais pareciam mudar depois disso, e o IO13 era muito diferente do IO12: claramente agora eles estão empurrando o Chrome como uma plataforma móvel por si só, então não acredito mais que eles levarão o Android para o Chrome.
Tom
1

Outras pessoas, além do Google, já estão trabalhando para transportá-lo para a plataforma x86. Se você verificar o Projeto Android-x86, poderá ver várias versões disponíveis, embora para um número limitado de dispositivos de hardware. Tentei fazer o download de algumas imagens e executá-las no VirtualBox no meu computador (CrunchBang Linux baseado no Debian no Dell Latitude D520), mas não consegui carregá-las. Você pode conseguir, no entanto. GL!

vyse
fonte