¿Qué es Android realmente? ¿Es Linux? ¿Es una distro?

aplicaciones imprescindibles android

Android es el sistema operativo más usado en todo el mundo, puesto que el número de dispositivos móviles con él supera al de computadoras con Windows, el otro sistema operativo más usado. Sin embargo, pese a eso, aún sigue siendo un desconocido para muchas personas. Algunos no sabes ni siquiera que tras Android se esconde un núcleo Linux, otros creen que es una distro GNU/Linux de Google, etc. Pero lo cierto es que muchos están equivocados al respecto y en este artículo descubrirás qué es Android y de qué otros sistemas operativos ha cogido «cosas».

Con este artículo vamos a desmentir algunos mitos existentes sobre el sistema operativo de Google, así como ver qué lo diferencia de Linux o cuánto parecido tiene con Linux, concluyendo con la respuesta que buscabas al leer este artículo…

¿Es Android una distro?

Android TV Box

Para contestar a esta pregunta que se debate en algunos sitios como Reddit, habría que tener claro primero qué es Linux y a qué se refieren muchas personas con el término Linux:

  • Linux: es un kernel, un núcleo, la parte más esencial de un sistema operativo, pero no un sistema operativo completo. Esta parte es la encargada de gestionar los recursos de hardware, ya que ejerce como interfaz entre el hardware y el resto del sistema operativo, gestionando los procesos a ejecutar, la asignación de memoria, etc. Sin embargo, Linux no es un sistema operativo completo, tan solo una parte que también usa Android como base. Pero no es un kernel Linux vainilla, sino que han usado éste como base para modificarlo y adaptarlo a dispositivos embebidos.
  • Distro o distribución: cuando se habla de una distro, comúnmente se están refiriendo a un sistema operativo completo basado en Linux al que se le han agregado otros paquetes preinstalados, como editores de texto, navegador web, reproductores de música, un entorno de escritorio, etc. Además, esto nos lleva a otro término, y es el sistema GNU/Linux, ya que como hemos dicho anteriormente, Linux como tal no es un sistema operativo completo. GNU pone una serie de herramientas que son la otra parte que combinada con Linux completan el sistema operativo.

Dicho esto, nos encontramos con que Android no es una distro GNU/Linux como muchos piensan, sino que han eliminado GNU y se han quedado con el kernel Linux para realizar una especie de «Frankenstein» con otras partes desarrolladas desde cero o provenientes de otros proyectos para completar el sistema operativo para dispositivos móviles.

En definitiva, Android se basa en el kernel Linux. En esto no hay ningún tipo de duda. El argumento es tan simple de defender como ir a la app Ajustes de tu smartphone o tablet, y buscar la opción Sobre el dispositivo o Información del sistema, donde verás la compilación del kernel Linux reflejada. Otra forma de comprobar que se trata de un Linux es usando algún terminal con o sin root, navegando por sus directorios, comprobando su jerarquía o usando los mismos comandos que podrías usar en el terminal de tu distribución GNU/Linux.

Tipos de Android

Android Studio

Por otro lado, es importante destacar que existen 2 tipos de Android:

  • Android Open Source Project (AOSP) que es un proyecto de código abierto mantenido por Google y abierto para que cualquiera lo pueda usar. Este proyecto incluye también los conocidos GMS o Google Mobile Services, además de algunas apps de Google, APIs, etc.
  • Otros tipos de Android son los que usan AOSP como base, pero una comunidad de desarrolladores los modifica para obtener algo ligeramente diferente, como puede ser LineageOS, entre otros muchos proyectos. Además, aquí también se tienen que englobar a todos los sistemas Android que realmente llegan al usuario final cuando compran un dispositivo móvil con este sistema operativo, y que también se basan en AOSP, pero que los fabricantes modifican añadiendo capas de personalización (UI), código propietario, y otras apps o servicios propios (la mayoría con GMS, otros, como Huawei, sustituyendo esos por unos propios llamados HMS, para evitar el bloqueo impuesto por EE.UU. a la empresa China).

Esto es muy importante, ya que no solo se trata de sistemas Android modificados sobre la base AOSP, sino que las actualizaciones que reciben por OTA son también específicas para ellos, y no son exactamente las mismas que las que recibe el AOSP. Esto quiere decir que el kernel de AOSP no es el mismo que el kernel de otros Android. Por ejemplo, en el caso de algunos sistemas libres, lo que se ha hecho es eliminar todo el firmware y los blobs binarios del kernel para dejarlo 100% software libre. Mientras que en compilaciones de fabricantes, lo que se suele hacer es incluir controladores o firmware necesario para ciertas funciones o hardware específico del dispositivo, además de agregar capas personalizadas en su interfaz gráfica de usuario, etc.

¿Android es una distro GNU/Linux?

Recovery Android

La respuesta aquí es clara: NO. Y los argumentos para ser tan tajante en que no es una distribución GNU/Linux son bastante claros:

  • Android no usa GNU: el sistema operativo necesita características únicas para funcionar en dispositivos móviles. Por tanto, se han realizado una serie de cambios sobre el kernel Linux vainilla que se lanza en la kernel.org y también se han incluido otras partes adicionales que no provienen del proyecto GNU como las distros, sino que son bibliotecas, APIs, y herramientas que mayormente son derivadas de las de BSD o escritas desde cero. Es decir, a eso me refería cuando dije Frankenstein, ya que mezcla Linux con BSD, lo que lo hace algo más parecido a iOS/iPadOS de lo que sería una distro convencional. De hecho, se sabe que los desarrolladores de Android emplean como biblioteca C principal una personalizada llamada Bionic en vez de usar GNU C Library. Incluso Android hace uso de FAT como sistema de archivos, un sistema de Microsoft y ligado al mundo Windows.
  • No se pueden correr apps Linux en Android y viceversa: otra de las cosas que diferencian a una distribución GNU/Linux de Android es que no se puede ejecutar el software nativo de una distro en Android, ni tampoco se pueden ejecutar las apps nativas de Android en una distro Linux. Se necesitarían adaptaciones o emuladores para poder hacerlo, como las realizadas en ChromeOS, el sistema operativo de Google para Chromebooks basado también en Linux, pero que tampoco es una distro GNU/Linux como tal. Las apps Android están escritas en Java, y necesitan unas bibliotecas, y runtime específico de Android, por eso no funcionan en otros sistemas operativos aunque tengan la misma base.
  • El modelo de desarrollo de AOSP también es un tanto especial: y es que AOSP es un producto propiedad de Google, por lo que es la propia Google la que decide la dirección que tomará la plataforma. Además, el código fuente AOSP solo está disponible cuando se libera, pero la próxima versión o lanzamiento de AOSP se mantiene en privado. Por otro lado, los empleados que no sean los propios de Google también pueden contribuir en AOSP, pero siempre bajo la dirección de Google. Así mismo, el logotipo y la marca Android están registradas y son propiedad de Google, por lo que nadie las puede usar para proyectos derivados sin el consentimiento de Google. Esto es muy diferente a las distros Linux, que muchas están desarrolladas por la comunidad de forma más libre, o por empresas como Canonical, SUSE, etc., que no ocultan el código fuente de sus futuros lanzamientos.
  • GUI: Android tiene su propia GUI en AOSP, pero lo cierto es que muchas marcas usan su propia capa de compatibilidad para modificar la interfaz base y dotarla de nuevas funcionalidades o cambios en los ajustes. Es el caso de Samsung con su OneUI, Huawei con su EMUI, Xiaomi con su MIUI, OnePLus OxygenOS, Oppo ColorOS, etc. Esto también difiere con las distros GNU/Linux, ya que los entornos de escritorio no son propietarios y GNU/Linux como tal no tiene una GUI propia (aunque GNOME ahora forma parte de GNU, pero no se ha tomado como el entorno de escritorio por defecto para todas las distros).
  • Personalización y privilegios: mientras una distro GNU/Linux es altamente personalizable para adaptarla a tus gustos, además de contar con privilegios root si los necesitas, un sistema operativo Android es bastante más limitado. De hecho, el usuario del sistema operativo no es el administrador del sistema, tan solo puede usar el sistema y sus apps, pero no tiene ningún tipo de control sobre él. Por eso muchos deciden rootear el sistema, para poder obtener esos privilegios que les permitan acceder a un control total.
  • Plataforma: mientras el kernel Linux está disponible para una amplia variedad de arquitecturas (x86, ARM, PPC, SPARC, RISC-V,…), el kernel Android está pensado especialmente para funcionar sobre ARM, aunque también existe una versión x86 para instalar en ciertos dispositivos como los nettops. Por tanto, a la hora de compilar AOSP solo lo podrás hacer para esas dos plataformas, y no para otras, a menos que seas tú el que modifique el kernel para adaptarlo a una nueva plataforma.

Ahora ya te habrá quedado algo más claro qué es Android y qué no es Android. No te olvides de comentar…