A polêmica está lançada: afinal, podemos dizer que Android é Linux? Até que ponto o Android pode ser uma distribuição?
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
1. Introdução
De vez em quando vemos pessoas tentando aumentar a quota de usuários Linux argumentando que o Android pode ser considerado uma distro, porque usa o kernel Linux como base. E assim, pode-se até dizer que o Linux venceu e o “ano do linux” já chegou: Android já passa o Windows em quantidade de usuários no mundo!
Se você ainda não leu nosso artigo sobre a origem dos sistemas UNIX® e baseados em UNIX que vieram posteriormente, você deve começar a partir daí, clicando aqui.
O ponto da questão é que o Linux é o kernel que foi desenvolvido por Linus Torvalds em 1991, baseado no sistema operacional MINIX, um sistema criado inspirado no UNIX. A partir disso, podemos prosseguir com a postagem!
2. Resposta curta
- Android é Linux? Sim. Porém…
Android é “um sistema baseado no kernel” Linux.
Ele não é uma distribuição Linux, tal qual o Ubuntu, Fedora etc.
É um tipo de sistema diferente.
3. Resposta longa
3.1 Motivo da Discórdia
Com o passar do tempo, os mais diversos desenvolvedores se aproveitaram do fato de que o Linux ser de código aberto e o ajustou para se adequar às suas ideias e implementações, criando uma variedade de distros para computador, com uma infinidade de características únicas.
Convencionou-se no inconsciente coletivo chamar de “Linux” genericamente qualquer sistema operacional construído em cima do kernel Linux. Como ele é open source e pode ser usado gratuitamente, qualquer um pode construir o seu próprio sistema adicionando interface de usuário, biblioteca de arquivos e programas.
Muitos defendem o uso da expressão GNU/Linux para os sistemas operacionais, visto que ela contempla tanto o kernel (Linux) quanto o sistema (GNU) que normalmente o acompanha. Mas isso é uma inverdade e nem sempre o GNU estará presente, sendo que hoje o Linux como kernel também engloba pacotes não-GNU que o torna um sistema operacional independente. De tal modo que o GNU também anda sozinho com o kernel Hurd. – Sistema Trisquel!
Graças a essas características, instituições, empresas e governos desenvolvem seus próprios sistemas, criando uma miríade de distribuições entre as quais estão Debian, Fedora, ArchLinux, OpenSUSE e RedHat, entre outras.
Tomando isso como base, podemos dizer, então, que o Android é um tipo de distribuição Linux, afinal ele tem como base exatamente o kernel!
Mas essa informação está incompleta. E a parte da divisão que torna o Android um sistema baseado no Linux, mas não um Linux propriamente dito, é justamente as modificações feitas no kernel do sistema, a ausência de suporte para programas desktop e também o modelo de gestão e desenvolvimento mantido pela Google.
3.2 O que é o Android?
A Android Inc. foi fundada em outubro de 2003 por Andy Rubin, Rich Miner, Nick Sear e Chris White na Califórnia, EUA. O projeto Android foi descrito como um projeto com “um tremendo potencial no desenvolvimento de dispositivos móveis mais inteligentes, mais conscientes da localização e das preferências do usuário”.
O sistema operacional Android, de código aberto, foi desenvolvido com o objetivo de criar um SO avançado para câmeras digitais, até descobrirem que o mercado de câmeras digitais não era grande o suficiente e realinharam seu foco para criar um sistema operacional para celulares, competindo com o Windows Mobile e o Symbian.
A Google Inc. comprou a empresa em 2005 e o resto é história. O Android continua aberto mas executa sob diversos módulos proprietários de código fechado desenvolvidos pelo Google.
Sob o capô, o Android usa um kernel Linux modificado que fornece aos desenvolvedores toneladas de recursos pré-construídos e bem mantidos. Isso, por sua vez, economiza tempo e permite que os desenvolvedores do Android se concentrem nos recursos mais importantes para dispositivos móveis. O kernel no caso, foi e ainda é baseado na versão 3.x.
De acordo com The GNU Manifesto, de Richard Stallman, um sistema operacional tem quatro elementos:
- O kernel
- O HAL (Hardware Abstraction Layer) – onde os drivers que não são compilados no kernel ‘residem’.
- O espaço do usuário – onde os aplicativos ‘residem’.
- O ambiente de desktop ou interface do usuário, por exemplo, GNOME e KDE.
O aspecto do Android que é sistema Linux, é apenas o seu kernel monolítico, que é uma versão modificada do kernel do Linux e nada mais. Ele vem com suas próprias bibliotecas e APIs para atender aos requisitos de dispositivos portáteis, mesmo aqueles com baterias relativamente pequenas.
3.3 Especificidades
Apesar de trazer o kernel Linux em seu coração, o Android conta com modificações específicas e exclusivas feitas pela Google. O site Embbed Linux Wiki, por exemplo, lista algumas especificidades do kernel que estão presentes apenas no sistema mobile e “não são parte do kernel padrão e estão disponíveis apenas no kernel do Android no Android Open Source Project.”
Ou seja, o kernel do Android não é o padrão utilizado por outras distribuições Linux. E isso é uma das bases das distribuições: O kernel do Ubuntu pode ser usado no ArchLinux e o do Manjaro pode ser usado no Fedora. Até o FreeBSD pode ser enfiado num Ubuntu!
Contudo, visto que o kernel é distribuído sob a GNU General Public License, ele pode ser modificado, e muitas organizações responsáveis por distribuições Linux fazem isso. O próprio eLinux.org informa que as modificações feitas no Android não são tão extremas a ponto de descaracterizar o sistema. Então, esse é mais um ponto de dúvida e que não esclarece se o Android é ou não um sistema Linux.
3.4 Mais controvérsia!
Durante a Google I/O de 2010, o engenheiro da Google Patrick Brady foi bem claro ao afirmar que “o Android não é Linux”, apesar de ser desenvolvido sobre o núcleo Linux. – Aqui ele não foi objetivo, mas se refere a Linux com significado de distro – Ele cita como justificativa para isso os fatos de: o Android não ter um sistema nativo de janelas, não ter suporte à biblioteca GNU gblic – o que impede, por exemplo, que programas de Linux rodem no Android – e ainda não contar com “o pacote completo de utilidades padrão Linux”.
Outro ponto importante a ser levado em conta é o fato de o Android ser um produto desenvolvido de forma bastante restritiva e controlada pela Google. Ele é oferecido gratuitamente a outras empresas por meio do Android Open Source Project (AOSP), mas a gigante de Mountain View é bem direta ao afirmar que ela “detém a responsabilidade pela direção estratégica do Android como plataforma e como produto”. Tal restritividade não ocorre nos desktops.
Ou seja, o sistema todo é desenvolvido de maneira privada pela Google, o que dá a ele algumas amarras proprietárias, digamos assim. Essa característica é importante e acaba por afastar filosoficamente o sistema mobile daquilo que se concebe como uma típica distribuição Linux.
3.5 Base
Se o critério básico for o uso do kernel para que um sistema seja considerado Linux, o Android é, de fato, um sistema Linux. Contudo, se a base para a análise levar em conta também outros critérios, como suporte a softwares GNU e a presença de um sistema de janelas, é possível afirmar que o sistema mobile da Google não é uma distro.
Há quem diga ainda que o Android é um fork de um sistema Linux não-GNU, ou seja, um projeto que se separou e hoje trilha um caminho independente, evoluindo e sendo desenvolvido em um ritmo diferente dos demais sistemas Linux. Essa posição é defendida, inclusive, por Linus Torvalds, que acredita que Android e Linux voltarão a caminhar juntos no futuro.
3.6 Compatibilidade
Hoje se você pegar um código fonte de um programa, seja ele escrito em C, e compilá-lo, você vai executá-lo tranquilamente em qualquer distribuição Linux. Um programa X rodará no Fedora, Red Hat, Ubuntu e etc. Se for um binário .bin, ele executará com ainda mais tranquilidade em qualquer distro!
Ou seja, há um modelo de compatibilidade aqui, que torna todos os Linux desktop basicamente “iguais”. O que mudam é basicamente o empacotamento.
O Android, como bem sabem, é bloqueado não apenas a nível de arquitetura – ARM vs x86 – mas também pelo fato de que um programa .apk não roda em desktops e um .bin não executa em Android. Há tanta coisa por trás do sistema, a nível de API do Java VM, que simplesmente não existe qualquer compatibilidade. Tudo o que existe que compatibiliza o Android num computador são máquinas virtuais pra executar a JVM e tradutores de hardware.
A completa morte na possibilidade de intercambiar bibliotecas e pacotes entre sistemas android e distribuições linux desktops afasta-o como uma “distribuição” propriamente dita e o coloca como algo isolado, único e diferente.
4. Resumindo
Um sistema Linux desktop e o Android não são a mesma coisa porque:
- O Android é um sistema operacional de código aberto que foi criado pela Android Inc. e agora pertence ao Google, enquanto o Linux é o kernel que foi criado por Linus Torvalds.
- Android usa sua própria biblioteca C, conhecida como Bionic;
Enquanto isso, distribuições Linux usam a biblioteca GNU C. - O Android não pode executar nenhum programa destinado a um sistema Linux desktop e vice versa.
- O Android implementa uma versão modificada do kernel Linux com bibliotecas e APIs especializadas para interagir com redes celulares e fornecer suporte para aplicativos que podem ser usados por diversos modelos de telefone, independentemente de seus fornecedores.
5. Conclusão (?)
É evidente que o sistema operacional mais usado no mundo hoje, utilizou e utiliza a tecnologia criada por Torvalds e é oferecida ao mundo gratuitamente. O único ponto em comum com as distros Linux desktop é o fato do Android rodar sob o kernel Linux, mas somente isso.
Assim, provavelmente, na minha humilde opinião, o mais apropriado seja chamar o Android de um sistema baseado no kernel Linux, e não necessariamente de uma distribuição Linux ou um sistema GNU/Linux.
Em definição, concluo que:
- Android é Linux? Sim. Porém…
Android é “um sistema baseado no kernel” Linux.
Não trate-o como uma “distribuição”, tal qual as que existem para desktops ou servidores.
Mas e você?
O que pensa a respeito?
Acha que Android é uma distribuição Linux ou apenas um sistema próprio, único e diferente que só tem o kernel como ponto em comum?
Deixe nos comentários!
#UrbanCompassPony
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.
Acredito que Android hoje é um fork do Linux assim como Linux é um fork do Minix.