PROCESO DE CARGA O INICIO DEL SISTEMA
OPERATIVO
- Reflexión de aprendizaje: Aprendí dos diferentes formas de arranque en sistemas operativos e identificar las diferencias que existen entre ambos.
ANDROID
|
WINDOWS
|
1. Boot ROM
Cuando se enciende el dispositivo, lo primero que se pone en marcha es
la CPU. Ésta tiene hardcoreada la dirección de memoria donde se encuentra el
código de inicio, o boot ROM. Lo que hace este código es inicializar el resto
de hardware del dispositivo. Hecho esto, busca la partición de arranque, que
suele estar en la memoria NAND, y copia el boot loader en la RAM.
|
1.
El encendido de la
computadora es el primer paso en el proceso de arranque, el microprocesador
se inicia y carga el BIOS en memoria o directamente lee la ROM y directamente
la ejecuta desde ahí.
|
2. Boot Loader
La
CPU empieza a ejecutar entonces el Boot Loader, o SPL. Este código se asemeja
en funcionalidad al GRUB de Linux, ya que su función es la de lanzar el
sistema operativo Android o dar la opción de elegir una alternativa, como el
fastboot, recovery, o una imagen custom creada por la comunidad.
|
2
El BIOS toma el control de
la secuencia de arranque del ordenador y se ejecuta el post. En caso de
producir algún error durante el post, se detendrá el proceso y se generaran
los mensajes acústicos y ópticos pertinentes. En caso de que en proceso
continúe se evaluaran el resto de los dispositivos.
|
3. Kernel
La
carga del kernel de Android es igual que cualquier sistema Linux. Inicializa
memoria, dispositivos, schedulers, y acceso a la partición raíz para lanzar
el proceso init.
|
3
El primer sector de un disco
de inicio es el registro de arranque maestro (MBR). El MBR contiene la
información de partición de disco del disco de arranque. Cada disco tiene una
partición "activa". La partición activa contiene un sector de
inicio, que es el siguiente paso del proceso de arranque. Si el disco no
tiene una partición activa, no será arrancable y el BIOS se moverá al
siguiente disco en su orden de inicio, o mostrará un error si ningún disco
tiene una partición activa.
|
4. Init
Al
igual que en un sistema Linux, el proceso init se encarga de lanzar los
scripts de inicio contenidos en /etc/rcX.d. En este caso el script que se
ejecuta es init.rc que se encuentra en raíz, aunque el fichero o la ubicación
puede variar dependiendo del dispositivo. Contiene toda la configuración
inicial del sistema. Desde el punto de vista del analista forense, es la
parte de inicio más suculenta, por lo que, si os pica la curiosidad, os
recomiendo que busques este archivo y le eches un ojo. Necesitareis eso si un
dispositivo rooteado y un explorador de ficheros que permita navegar por
directorios con permisos de root.
|
4
Windows inicia los procesos,
comprueba e inicializa todos los dispositivos conectados a la motherboard. el
cargador de inicio toma el control del proceso de inicio y lee su archivo de
configuración (boot.ini o BOOT\BCD), que dirige el proceso de instalación a
una instalación de Windows situada en un disco y partición específicos del
sistema.
|
5.
Zygote
Este servicio lanzado por Init es el encargado de inicializar las
máquinas virtuales Dalvik. Básicamente su función es crear máquinas virtuales
por cada proceso nuevo que se inicia.
|
5
Si el archivo de
configuración es válido, Windows empieza a cargarse y verá aparecer la
pantalla de presentación de Windows en la pantalla del sistema.
|
6. System Server
Iniciado
el servicio Zygote, el sistema ya puede empezar a lanzar servicios básicos, como
la telefonía, teclado, y otros agentes y servicios de Google. Finalizado el
inicio de estos servicios, el sistema está listo para interactuar con el
usuario.
|
6
Finalmente se cargan todas
las aplicaciones que se inician con Windows.
|
No hay comentarios:
Publicar un comentario