12 Ago

Arranque del Sistema: Un Viaje desde la BIOS hasta los Servicios

Bootstrapping: El Inicio del Sistema

En informática, el término bootstrapping se utiliza para cualquier proceso en el que un sistema simple activa a otro más complejo. Es el concepto de arrancar un sistema a partir de una parte pequeña del mismo.

El proceso de arranque se divide en los siguientes pasos:

  • Inicialización del sistema
  • Bootloader
  • Carga del kernel
  • Ejecución del kernel
  • El proceso init

Arranque del Ordenador: El Papel de la BIOS

Al encender el ordenador, se procede a la ejecución del programa almacenado en la BIOS (Basic Input/Output System). La BIOS guarda la configuración del hardware del sistema y su tarea es ejecutar el POST (Power On Self Test), una prueba que verifica el correcto funcionamiento de los componentes del hardware.

Bootloader: Cargando el Kernel

El objetivo del bootloader es cargar parte del núcleo (kernel) del sistema operativo en memoria y ejecutarlo. A partir del momento de carga, el bootloader toma el control y se encarga de cargar el resto del sistema operativo.

Puede ubicarse en el primer sector de cada una de las particiones del disco.

GRUB: Un Bootloader Popular

GRUB (Grand Unifying Bootloader) puede trabajar en dos o tres etapas (stages). El primer stage se encuentra situado en el MBR (primer sector del disco duro). La función del stage 1 es básicamente cargar el stage 2, aunque normalmente suele arrancar el stage 1.5. El stage 1.5 se encuentra en los primeros 30 KB del disco inmediatamente después del MBR y antes de la primera partición. En determinadas ocasiones (discos con GPT o LVM) puede ocurrir que este espacio no esté presente, lo que provocaría error en el arranque. El stage 1.5 contiene los drivers necesarios para manipular el sistema de ficheros. Esto le permite cargar directamente el stage 2 de una localización conocida en el sistema de ficheros, por ejemplo de /boot/grub. El stage 2 ya se encarga de cargar el kernel del sistema.

El Archivo /proc: Explorando el Sistema

Cada sistema operativo ofrece un mecanismo para que el administrador de sistemas investigue las interioridades del sistema operativo y para configurar los parámetros cuando lo necesite. En Linux este mecanismo es el sistema de archivos /proc.

CRON: Tareas Programadas

.---------------- minuto (0 - 59) 
|  .------------- hora (0 - 23)
|  |  .---------- día del mes (1 - 31)
|  |  |  .------- mes (1 - 12)
|  |  |  |  .---- día de la semana 0-6 
|  |  |  |  |
*  *  *  *  *  comando para ser ejecutado

El Proceso init: El Padre de Todos los Procesos

El proceso init es el patrón de todos los procesos. Siempre es el primer proceso que se inicia en el sistema. Este proceso siempre tiene el UID1.

Este proceso tiene dos finalidades:

  • Es el proceso padre de todos los demás procesos. Debido a que init nunca muere, el sistema siempre se asegura de su presencia y, si es necesario, hace referencia a él. La necesidad de referirse a init, normalmente, ocurre cuando un proceso muere antes de que se completen todos sus procesos hijos. En esta situación los procesos huérfanos pasarán a ser hijos de init.
  • La segunda cosa que hace init es manejar los niveles de ejecución mediante la ejecución de los programas adecuados cuando se llega a un nivel de ejecución en particular. Este comportamiento se define en el archivo /etc/inittab.

Los Niveles de Ejecución (Runlevels): Diferentes Modos de Operación

Los niveles de ejecución (runlevels) hacen referencia al modo de funcionamiento del sistema operativo. Los niveles en Linux son los siguientes:

  • 0: Halt: Corresponde a la fase de shutdown. Introducir init 0 en el shell generalmente apagará el sistema.
  • 1: Single user – Modo texto: Sería el equivalente al “modo seguro” de Windows. Solo es utilizado para realizar reparaciones o hacer mantenimiento del sistema. Solo permite el acceso de un único usuario.
  • 2: Multiusuario (sin NFS): Se utiliza para iniciar la mayoría de los servicios de la máquina aunque no los de compartición de ficheros en red (Samba, NFS). Permite el acceso a múltiples usuarios.
  • 3: Multiuser completo – Modo texto: Es el utilizado habitualmente en los servidores. Carga todos los servicios excepto X-Windows.
  • 4: Definible por el usuario: Se suele utilizar para personalizar el sistema. Se utiliza en muy raras ocasiones.
  • 5: Multiuser completo – Modo X-Windows: Ejecuta todo: GUIs, servicios de impresión,… Es le habitualmente utilizado en los sistemas de escritorio
  • 6: Reboot (rearranque): Está reservado para el reinicio del sistema.

Procesos, Eventos y Servicios: Los Elementos del Sistema

Proceso es un programa en ejecución. Los programas que ejecutamos en el sistema tienen uno o varios procesos que ocupan memoria y utilizan tiempo de procesador.

Evento son los sucesos; esperados, normales o sintomáticos de errores que tienen lugar durante el funcionamiento del ordenador.

Categorías del visor de eventos: aplicación, seguridad, instalación, sistema, eventos reenviados.

Administrador de Tareas: Supervisando el Sistema

El Administrador de tareas es una herramienta de supervisión que permite controlar las actividades del sistema en tiempo real y ver la información del estado del procesador, de la memoria, de las aplicaciones y de los procesos.

Pestañas: aplicaciones, procesos, servicios, rendimiento, funciones de red, usuarios.

Servicios: Trabajando en Segundo Plano

En UNIX y en Linux, estos programas se llaman “demonios”, y en Windows, se llaman “Servicios”.

Son programas que pueden iniciarse automáticamente cuando se inicia Windows y proporcionan alguna función esencial.

Se ejecutan sin necesidad que ningún usuario inicie sesión. Se ejecutan con una cuenta de usuario que le proporcione permisos para realizar sus operaciones.

Se pueden configurar los servicios para que se inicien automáticamente en cuando se inicie Windows, para iniciarlos manualmente, cuando queramos o cuando lo requiera otro programa, o se pueden deshabilitar para impedir que se ejecute el servicio.

Arranque en Versiones Anteriores de Windows: Un Proceso Evolutivo

En versiones anteriores de Windows, el proceso de arranque seguía estos pasos:

  1. Se enciende el ordenador.
  2. Se carga la BIOS, la cual ejecuta el proceso POST que chequea todo el hardware del sistema.
  3. Carga y ejecución del Registro de Arranque Maestro (MBR): el MBR se encuentra en el primer sector del disco duro y contiene la tabla de particiones y una pequeña parte de código ejecutable que sirve para iniciar la carga del archivo NTLDR.
  4. NTLDR prepara un menú que permite elegir con qué sistema operativo arrancar. La información la obtiene del fichero BOOT.INI. Si solo hubiera un SO no muestra el menú.
  5. A continuación se ejecuta NTDETECT.COM que examina el ordenador y determina la configuración hardware, con esta información construye la rama HKEY_LOCAL_MACHINE del registro de Windows.

El proceso de arranque de Windows 2008 difiere ya que el fichero NTLDR ya no existe.

Ahora es reemplazado por el Boot Configuration Data (BCD) el cual cambia la funcionalidad y además soporta los nuevos sistemas con EFI.

El BCD ya no guarda la configuración en un fichero de texto como era boot.ini sino que es un fichero binario que solo puede ser modificado mediante la aplicación BCDEdit.exe.

Deja un comentario