En Linux Inicio del núcleo de los sistemas operativos init
que comienza getty
que comienza login
proceso en la(s) consola(s) virtual(es). Allí un usuario puede iniciar sesión en CLI y un shell (como bash
) se abre para la ejecución de comandos. En sistema de ventanas , init
inicia una Servidor de visualización como Xorg o Wayland y login
se sustituye por un gráfico Administrador de la pantalla como SDDM o GDM que pide las credenciales del usuario en la GUI. Después de la autenticación se inicia un entorno de escritorio, por ejemplo KDE o GNOME, que inicia su Gestor de ventanas y muestra componentes como el Escritorio, la Barra de Tareas/Panel, los Widgets, las Notificaciones y las ventanas de aplicaciones como el Explorador de Archivos, el Navegador Web, el Emulador de Terminales, etc.
Android está diseñado principalmente para un solo usuario, por lo que no existe el concepto de inicio de sesión CLI. De hecho los terminales virtuales/consolas están deshabilitados en el kernel por defecto. init
- después de iniciar todos los servicios nativos, incluyendo Surface Flinger (el servidor de visualización de Android) - inicia un servicio llamado zygote
que es un proceso especial para bifurcar máquinas virtuales tipo Java. El núcleo de Android ( system_server
) y todas las aplicaciones se ejecutan en instancias separadas de VMs. system_server
inicia las aplicaciones que están configuradas para ejecutarse en el arranque, incluyendo muchas aplicaciones del sistema.
Así que lo que vemos después de que la animación de arranque termina es Interfaz del sistema app. Esta aplicación se encarga de mostrar la pantalla de bloqueo, la barra de estado, las notificaciones, etc. system_server
tiene más de 100 servicios Java que se ejecutan en su interior, incluyendo el Gestor de Actividades, el Gestor de Permisos y el Gestor de Ventanas. WM se comunica con Surface Flinger para dibujar superficies en la pantalla según lo solicitado por system_server
y aplicaciones. Otro componente básico que vemos es un Inicio o Lanzador que es algo así como un escritorio. Muestra, al menos, los iconos de todas las aplicaciones instaladas y reenvía la petición a system_server
para lanzar/mostrar la aplicación cuando tocamos el icono de una aplicación. Así que todo lo que vemos en un dispositivo Android es una aplicación.