el proceso de arranque de Android desde el encendido
Dado que las plataformas móviles y los sistemas integrados tienen algunas diferencias en comparación con los sistemas de escritorio en cómo se inician y arrancan inicialmente, esta publicación analizará las etapas iniciales de arranque de un teléfono Android con cierto detalle. Dado que hemos usado la placa Beagle como referencia en algunos ejemplos anteriores, cualquier detalle aquí está relacionado con un sistema similar.
- ¿Tiene Android algo como Dynamic Type que Apple tiene en sus plataformas?
- ¿Cómo será el crecimiento para el desarrollo de aplicaciones híbridas?
- ¿Por qué Samsung no está enviando actualizaciones de Android para todos los países a la vez?
- Cómo desarrollar una aplicación de Android después de aprender Java
- ¿Cuáles son las mejores aplicaciones de cliente de redes sociales para Android?
1. Encender y arrancar la ejecución del código ROM
Al encenderse, la CPU estará en un estado donde no se han realizado inicializaciones. Los relojes internos no están configurados y la única memoria disponible es la RAM interna. Cuando las fuentes de alimentación son estables, la ejecución comenzará con el código ROM de arranque. Este es un pequeño fragmento de código que está cableado en el CPU ASIC. Para obtener más información sobre ROM de arranque y configuraciones, estudie el capítulo de inicialización en
el Omap 3530 TRM.
- A. El código ROM de arranque detectará los medios de arranque utilizando un registro del sistema que se asigna a algunas bolas físicas en el ASIC. Esto es para determinar dónde encontrar la primera etapa del cargador de arranque.
- B. Una vez que se establece la secuencia de medios de arranque, la ROM de arranque intentará cargar el cargador de arranque de la primera etapa en la RAM interna. Una vez que el cargador de arranque está en su lugar, el código ROM de arranque realizará un salto y la ejecución continúa en el cargador de arranque.
- ** 2. El cargador de arranque
El gestor de arranque es un programa especial separado del kernel de Linux que se utiliza para configurar memorias iniciales y cargar el kernel en la RAM. En los sistemas de escritorio, los cargadores de arranque son programas como GRUB y en Linux incorporado uBoot es a menudo el cargador de arranque de elección. Los fabricantes de dispositivos a menudo usan sus propios cargadores de arranque patentados. Los requisitos de un cargador de arranque para Linux que se ejecuta en un sistema ARM se pueden encontrar en el documento de Arranque en/Documentation/arm
en el árbol de fuentes del kernel.
- A. La primera etapa del cargador de arranque detectará y configurará la RAM externa.
- B. Una vez que la RAM externa esté disponible y el sistema esté listo para ejecutar algo más significativo, la primera etapa cargará el cargador de arranque principal y lo colocará en la RAM externa.
- C. La segunda etapa del cargador de arranque es el primer programa importante que se ejecutará. Esto puede contener código para configurar sistemas de archivos, memoria adicional, soporte de red y otras cosas. En un teléfono móvil, también puede ser responsable de cargar el código de la CPU del módem y de configurar protecciones de memoria de bajo nivel y opciones de seguridad.
- D. Una vez que el gestor de arranque haya terminado con cualquier tarea especial, buscará un kernel de Linux para arrancar. Cargará esto desde el medio de arranque (o alguna otra fuente dependiendo de la configuración del sistema) y lo colocará en la RAM. También colocará algunos parámetros de arranque en la memoria para que el núcleo los lea cuando se inicie.
- E. Una vez que el cargador de arranque esté listo, realizará un salto al kernel de Linux, generalmente alguna rutina de descompresión, y el kernel asume la responsabilidad del sistema.
- *** 3. El kernel de Linux
El kernel de Linux se inicia de manera similar en Android como en otros sistemas. Configurará todo lo necesario para que el sistema se ejecute. Inicialice los controladores de interrupción, configure protecciones de memoria, cachés y programación.
- R. Una vez que las unidades de administración de memoria y las cachés se hayan inicializado, el sistema podrá usar la memoria virtual e iniciar procesos de espacio de usuario.
- B. El núcleo buscará en el sistema de archivos raíz el proceso de inicio (que se encuentra en sistema / núcleo / inicio en el árbol de código abierto de Android) y lo iniciará como el proceso inicial de espacio de usuario.
- **** 4 El proceso init
- El proceso init es la “abuela” de todos los procesos del sistema. Todos los demás procesos del sistema se iniciarán desde este proceso o uno de sus descendientes.
- R. El proceso de inicio en Android buscará un archivo llamado init.rc. Este es un script que describe los servicios del sistema, el sistema de archivos y otros parámetros que deben configurarse. El script init.rc se coloca en system / core / rootdir en el proyecto de código abierto de Android.
- B. El proceso init analizará la secuencia de comandos init e iniciará los procesos de servicio del sistema.
- 5. ***** Zygote y Dalvik
- Zygote es lanzado por el proceso init y básicamente comenzará a ejecutarse e inicializará la máquina virtual Dalvik.
- 6. ****** El servidor del sistema
- El servidor del sistema es el primer componente de Java que se ejecuta en el sistema. Iniciará todos los servicios de Android, como el administrador de telefonía y bluetooth. El inicio de cada servicio está actualmente escrito directamente en el método de ejecución del servidor del sistema. La fuente del servidor del sistema se puede encontrar en los marcos de archivos / base / services / java / com / android / server / SystemServer.java en el proyecto de código abierto.
- 7 ******* BOTA COMPLETADA
- Agregué esta parte a la publicación en 20090831 ya que es muy útil y algo que no debería haber dejado de lado desde el principio. Una vez que el servidor del sistema está en funcionamiento y el arranque del sistema se ha completado, hay una acción de transmisión estándar llamada ACTION_BOOT_COMPLETED. Para iniciar su propio servicio, registre una alarma o haga que su aplicación realice alguna acción después del arranque que debe registrar para recibir esta intención de transmisión.
Los pasos de arranque separados y los posibles lugares para agregar su propia funcionalidad se cubren con más detalle en publicaciones separadas.
fuente del artículo: -El proceso de arranque de Android desde el encendido
GRACIAS POR LEER EL ARTÍCULO.
ESPERO QUE ESTA EXPLICACIÓN PROPORCIONE LECTORES SUFICIENTES CONOCIMIENTOS SOBRE EL PROCESO DE ARRANQUE DE ANDROID