Android é baseado no Linux, mas o que isso significa?
O Android pode ser baseado no Linux, mas não é baseado no tipo de sistema Linux que você pode ter usado no seu PC. Você não pode executar aplicativos Android em distribuições típicas do Linux e não pode executar os programas do Linux com os quais está familiarizado no Android.
O Linux é a parte principal do Android, mas o Google não adicionou todos os softwares e bibliotecas típicos encontrados em uma distribuição Linux como o Ubuntu. Isso faz toda a diferença.
"Linux" versus o kernel do Linux
A grande diferença aqui se resume ao que entendemos por Linux. As pessoas usam o termo “Linux” para significar muitas coisas diferentes. Na sua forma mais básica, o Linux significa o kernel do Linux. Um kernel é a parte principal de qualquer sistema operacional.
Também nos referimos às distribuições Linux como simplesmente "Linux". No entanto, as distribuições Linux não são apenas o kernel do Linux. Eles contêm muitos outros softwares, como os utilitários de shell GNU, o servidor gráfico Xorg, o desktop GNOME, o navegador Firefox e assim por diante. É por isso que algumas pessoas pensam que o termo GNU / Linux deve ser usado para “distribuições Linux” como Ubuntu, Mint, Debian, Fedora, Arch, openSUSE e outras..
O Android usa o kernel do Linux sob o capô. Como o Linux é de código aberto, os desenvolvedores do Android do Google poderiam modificar o kernel do Linux para atender às suas necessidades. O Linux fornece aos desenvolvedores do Android um kernel do sistema operacional pré-compilado e já mantido, para que eles não precisem escrever seu próprio kernel. É assim que muitos dispositivos diferentes são construídos - por exemplo, o PlayStation 4 usa o kernel do FreeBSD de código aberto, enquanto o Xbox One usa o kernel do Windows NT encontrado em versões modernas do Windows..
Você verá a versão do kernel do Linux em execução no seu dispositivo em Sobre o telefone ou Sobre o tablet nas Configurações do Android.
As diferenças
Há algum debate sobre se o Android se qualifica como uma "distribuição Linux". Ele usa o kernel Linux e outros softwares, mas não inclui grande parte do software que as distribuições Linux normalmente incluem.
Quando você inicializa um dispositivo Android, o kernel do Linux é carregado exatamente como seria em uma distribuição Linux. No entanto, muitos dos outros softwares são diferentes. O Android não inclui a biblioteca GNU C (glibc) usada nas distribuições padrão do Linux, nem inclui todas as bibliotecas GNU encontradas em uma distribuição típica do Linux. Ele também não inclui um servidor X como o Xorg, então você não pode rodar aplicações gráficas padrão do Linux.
Em vez de executar aplicativos típicos do Linux, o Android usa a máquina virtual Dalvik para executar essencialmente aplicativos escritos em Java. Esses aplicativos são voltados para dispositivos Android e as interfaces de programação de aplicativos (APIs) que o Android fornece, em vez de serem voltados para o Linux em geral.
Por que você não pode executar o software Desktop Linux no Android
Como o Android não inclui um servidor X gráfico ou todas as bibliotecas GNU padrão, você não pode simplesmente executar aplicativos Linux no Android. Você tem que executar aplicativos escritos especificamente para Android.
O Android tem um shell como o que você encontrará no Linux. Não há como acessá-lo imediatamente, mas você pode instalar um aplicativo como o Android Terminal Emulator para obter acesso a esse ambiente de terminal.
Por padrão, não há muito o que fazer aqui. O terminal ainda será executado em um ambiente restrito, então você não pode ganhar um shell root completo sem fazer o root do seu dispositivo Android. Muitos comandos padrão que você pode precisar não estão disponíveis - é por isso que as pessoas que fazem o root em seu dispositivo geralmente instalam o aplicativo BusyBox, que instala muitos utilitários de linha de comando. Esses utilitários são usados por aplicativos para fazer coisas com seu acesso root.
Por que você não pode executar o software Android no desktop Linux
O Linux não inclui a máquina virtual Dalvik, por isso não pode executar aplicativos Android. A máquina virtual da Dalvik e todos os outros softwares do Android não podem simplesmente ser soltos em uma máquina desktop Linux - você teria que fazer mais trabalho para fazer com que os aplicativos Android saíssem para uma janela em um desktop padrão através do Xorg, por exemplo. Teoricamente, com trabalho suficiente, os desenvolvedores poderiam fazer o Dalvik rodar no desktop Linux, de modo que os usuários de desktop Linux pudessem rodar aplicativos Android em seus desktops. O agora inativo Ubuntu para o produto Android tentou fazer algo assim, integrando o Ubuntu e o Android em um telefone e permitindo que esses aplicativos Android rodassem no desktop do Ubuntu..
O BlueStacks e outros emuladores de aplicativos para Android tentam fazer isso para Windows e Mac. Eles executam o Android em hardware virtual em uma máquina virtual, permitindo que eles executem aplicativos Android - com uma penalidade de desempenho - em sua área de trabalho. Estas soluções não provaram ser muito populares, embora.
O Chrome OS do Google também é baseado no Linux. Como o Android, o Chrome OS não fornece um sistema X window padrão, portanto, os aplicativos padrão do Linux não podem ser executados no Chrome OS. Ao contrário do Android, o Chrome OS está mais próximo das distribuições Linux de desktop padrão para que você possa usar o modo de desenvolvedor para instalar o software de desktop Linux ausente.
Crédito de imagem: ranti no Flickr, anatomia e fisiologia do Android