Anda di halaman 1dari 9

GNU/LINUX BSICO

PROCESO DE ARRANQUE

24/02/2012

JUAN CARLOS PIZARRO MARTNEZ

JSASAJSASASASAUAN CARLOS PIZARRO MARTINEZ


Contenido

Proceso de Arranque de Linux ........................................................................................................................3


BIOS .............................................................................................................................................................3
MBR .............................................................................................................................................................4
Gestor de Arranque (GRUB) ........................................................................................................................4
El Kernel ......................................................................................................................................................5
INIT (El Programa /sbin/init) .......................................................................................................................6
Niveles de Ejecucin ...................................................................................................................................6

2
Proceso de Arranque de Linux

El Proceso de arranque en Linux es el proceso de inicializacin del Sistema Operativo-Linux. Es en


muchos aspectos similar a los procesos de arranque de BSD y otros sistemas Unix, de los cuales deriva.

El inicio del proceso de arranque vara dependiendo de la plataforma de hardware usada. Sin embargo,
una vez que se encuentra el kernel y se carga por el gestor de arranque, el proceso de arranque por
defecto es idntico a travs de todas las arquitecturas.

El proceso de arranque pasa los siguientes puntos:

BIOS
Cuando un ordenador x86 se carga, el procesador busca al final de la memoria del sistema por
Basic Input/Output System o el programa BIOS y lo ejecuta. La BIOS controla no slo el primer paso del
proceso de arranque, sino que tambin proporciona una interfaz de bajo nivel para dispositivos
perifricos. Por este motivo se escribe tan slo en modo lectura, memoria permanente y est siempre
disponible para el uso.

3
Otras plataformas usan programas diferentes para ejecutar tareas a bajo nivel equivalentes a aquellas de
la BIOS en el sistema x86. Por ejemplo, los ordenadores basados en Itanium usan el Shell Interfaz de
Firmware extendible (Extensible Firmware Interface, EFI).

MBR

Una vez que se haya cargado, la BIOS chequea los perifricos y localiza un dispositivo con el que
arrancar el sistema. Habitualmente, en primer lugar comprueba cualquier disquete y unidades de CD-
ROM presente por los medios de arranque, y a continuacin si esto falla, echa un vistazo a las unidades
de disco duro del sistema. En la mayora de los casos, el orden de bsqueda de las unidades para arrancar
es controlado por una configuracin de la BIOS y busca por el dispositivo maestro IDE en el bus IDE
primario.
La BIOS carga en memoria cualquier programa que resida en el primer sector de este dispositivo, llamado
Registro de arranque principal o Master Boot Record (MBR). La MBR slo tiene 512 bytes de tamao y
contiene las instrucciones de cdigo de mquina para el arranque del equipo, llamado un gestor de
arranque, as como tambin la tabla de particiones. Una vez que la BIOS haya encontrado y cargado el
gestor de arranque en memoria, le deja el control del proceso de arranque a ste.

Gestor de Arranque (GRUB)

Esta seccin revisa los gestores de arranque para la plataforma x86, GRUB. Dependiendo de la
arquitectura del sistema, el proceso de arranque diferir ligeramente.
Un gestor de arranque para la plataforma x86 se divide en al menos dos etapas. La primera es un cdigo
binario de mquina pequea en el MBR. Su nica funcin es la de localizar el gestor de arranque de la
segunda etapa y cargar la primera parte de ste en memoria.

GRUB tiene la ventaja de ser capaz de leer particiones ext2 y ext3 y cargar su archivo de configuracin
/boot/grub/grub.conf al momento de arranque.

Una vez que la segunda etapa del gestor de arranque est en memoria, presenta al usuario con una
pantalla grfica mostrando los diferentes sistemas operativos o kernels que para los que ha sido
configurado para arrancar. En esta pantalla el usuario puede usar las flechas direccionales para escoger el
sistema operativo o kernel con el que desea arrancar y presione la tecla [Intro]. Si no se presiona ninguna
tecla, el gestor de arranque carga la seleccin predeterminada luego de un perodo de tiempo de espera
(tambin configurable).

Si ha instalado el soporte para el kernel Symmetric Multi-Processor (SMP), ver ms de una opcin la
primera vez que arranque el sistema. En esta situacin, GRUB mostrar Red Hat Enterprise Linux
(<kernel-version>-smp), el cual es el kernel SMP y Red Hat Enterprise Linux (<kernel-version>), la cual es
para procesadores nicos.

4
Si surge cualquier problema con el kernel SMP, trate de seleccionar un kernel que no sea SMP antes de
rearrancar.

Una vez que el gestor de arranque de la segunda etapa haya determinado qu kernel arrancar, localizar
el binario del kernel correspondiente en el directorio /boot/. El kernel binario es llamado usando el
siguiente formato /boot/vmlinuz-<kernel-version> (donde <kernel-version> corresponde a la versin
del kernel especificada en las configuraciones del gestor de arranque).

El gestor de arranque luego coloca una o ms de las imgenes apropiadas de initramfs en la memoria.
Luego, el kernel descomprime estas imgenes desde la memoria a /boot/, un sistema de archivos virtual
basado en RAM, a travs de cpio. El initrd es usado por el kernel para cargar controladores y mdulos
necesarios para arrancar el sistema. Esto es muy importante si posee unidades de disco duro SCSI o si
est el sistema utiliza el sistema de archivos ext3.

Una vez que el kernel y la imagen initramfs se cargan en memoria, el gestor de arranque pasa el control
del proceso de arranque al kernel.

Nota: Una vez que se carga el kernel y pasa el proceso de arranque al comando init, los mismos acontecimientos
suceden en cada arquitectura. La nica diferencia entre el proceso de arranque de cada arquitectura est en la
aplicacin que se usa para encontrar y cargar el kernel. Por ejemplo, la arquitectura Itanium utiliza el gestor de
arranque ELILO, las arquitecturas eServer pSeries de IBM utilizan YABOOT y los sistemas IBM eServer zSeries e IBM
S/390 usan el gestor de arranque z/IPL.

El Kernel

Cuando se carga el kernel, ste inicializa y configura la memoria del ordenador y el diferente hardware
conectado al sistema, incluyendo todos los procesadores, subsistemas de entrada/salida y dispositivos de
almacenamiento. A continuacin buscar la imagen comprimida de initramfs en una ubicacin
predeterminada en memoria, la descomprimir directamente a /sysroot/ y cargar todos los
controladores necesarios. A continuacin inicializa los dispositivos virtuales relacionados con el sistema
de ficheros, tal como LVM o software RAID antes de completar los procesos initramfs y de liberar toda la
memoria que la imagen del disco ocup anteriormente.

El kernel luego crea un dispositivo root, monta la particin root como slo lectura y libera cualquier
memoria no utilizada.

Llegados a este punto, el kernel est cargado en memoria y operativo. Sin embargo, como no hay
aplicaciones de usuario que permitan la entrada significativa de datos al sistema, no se puede hacer
mucho ms.

5
Para configurar el entorno de usuario, el kernel inicia el programa /sbin/init.

INIT (El Programa /sbin/init)

El programa /sbin/init (tambin llamado init) coordina el resto del proceso de arranque y configura el
ambiente del usuario.

Cuando el comando init arranca, se vuelve el padre o abuelo de todos los procesos que comienzan
automticamente en el sistema. Primero, ejecuta el script /etc/rc.d/rc.sysinit, que establece la ruta del
entorno, activa el swap, verifica los sistemas de archivos y se encarga de todo lo que el sistema necesita
tener hecho al momento de la inicializacin. Por ejemplo, la mayora de los sistemas usan un reloj, por lo
tanto, el rc.sysinit lee el archivo de configuracin para iniciar el hardware del reloj. Otro ejemplo es si hay
procesos especiales en los puertos seriales que deben ser inicializados, rc.sysinit ejecutar el archivo
/etc/rc.serial.

El comando init luego ejecuta el script /etc/inittab, el cual describe cmo se debera configurar el sistema
en cada nivel de ejecucin SysV init. Los niveles de ejecucin son un estado, o modo, definido por los
servicios listados en el SysV directorio /etc/rc.d/rc<x>.d/, donde <x> es el nmero de nivel de ejecucin.

A continuacin, el comando init configura la biblioteca de funciones fuente, /etc/rc.d/init.d/functions,


para el sistema, que establece el modo en cmo iniciar o matar un programa y cmo determinar el PID
del programa.

El programa init inicia todos los procesos de fondo buscando en el directorio apropiado rc para el nivel de
ejecucin especificado por defecto en /etc/inittab. Los directorios rc estn numerados para corresponder
al nivel de ejecucin que representan. Por ejemplo, /etc/rc.d/rc5.d/ es el directorio para el nivel de
ejecucin 5.

Cuando se arranca el nivel de ejecucin 5, el programa init consulta el directorio /etc/rc.d/rc5.d/ para
determinar qu procesos iniciar o parar.

Niveles de Ejecucin

El sistema de niveles de ejecucin SysV init provee de un proceso estndar para controlar cules
programas init lanza o detiene cuando se inicializa un nivel de ejecucin. SysV init fu escogido porque es
ms fcil de usar y ms flexible que el proceso tradicional init estilo BSD.

Los ficheros de configuracin para SysV init estn en el directorio /etc/rc.d/. Dentro de este directorio, se
encuentran los scripts rc, rc.local, rc.sysinit, y, opcionalmente, los scripts rc.serial as como los siguientes
directorios:

6
init.d/
rc0.d/
rc1.d/
rc2.d/
rc3.d/
rc4.d/
rc5.d/
rc6.d/

El directorio init.d/ contiene los scripts usados por el comando /sbin/init cuando se controlan los
servicios. Cada uno de los directorios numerados representan los seis niveles de ejecucin
predeterminados configurados por defecto bajo Red Hat Enterprise Linux.

La idea detrs de los niveles de ejecucin de SysV init gira alrededor del hecho que sistemas diferentes se
pueden usar de formas diferentes. Por ejemplo, un servidor corre de forma ms eficiente sin el consumo
de recursos del sistema excesivo creado por el sistema X. Otras veces, el administrador del sistema puede
necesitar operar el sistema en un nivel ms bajo de ejecucin para realizar tareas de diagnstico, como
reparar corrupcin del disco duro en el nivel de ejecucin 1.

Las caractersticas de un nivel de ejecucin dado determinan qu servicios son detenidos o iniciados por
init. Por ejemplo, el nivel de ejecucin 1 (modo usuario nico) detiene cualquier servicio de red, mientras
que el nivel 3 arranca estos servicios. Asignando servicios especficos a ser detenidos o iniciados en un
nivel dado, init puede fcilmente cambiar el modo de la mquina sin que el usuario tenga que
manualmente arrancar o detener servicios.

Los siguientes niveles de ejecucin estn definidos de forma predeterminada para Red Hat Enterprise
Linux:

0 Parar
1 Modo texto usuario nico
2 Sin usar (usuario-definible)
3 Modo texto multiusuario completo
4 Sin usar (usuario-definible)
5 Modo grfico multiusuario completo (con una pantalla de inicio de sesin basada en X)
6 Rearrancar

Generalmente, los usuarios utilizan Red Hat Enterprise Linux al nivel de ejecucin 3 o nivel de ejecucin 5
ambos modos multiusuario. Ya que los niveles de ejecucin 2 y 4 no son usados, los usuarios a veces
personalizan estos niveles para cubrir necesidades especficas.

El nivel de ejecucin por defecto para el sistema est listado en /etc/inittab. Para saber el nivel de
ejecucin por defecto de un sistema, busque por la lnea similar a la que se muestra abajo cerca de la
parte superior de /etc/inittab:

id:5:initdefault:

7
El nivel de ejecucin predeterminado en este ejemplo es cinco, como indica el nmero despus del punto
y coma. Para cambiarlo, modifique /etc/inittab como usuario root.

Nota: Tenga mucho cuidado cuando est modificando /etc/inittab. Errores simples de tipeo pueden hacer
que su sistema no arranque nuevamente. Si esto ocurre, use un disquete de arranque, entre a modo de usuario
nico o entre en modo de rescate y repare el archivo.

Es posible cambiar al nivel de ejecucin por defecto al momento del arranque modificando los
argumentos pasados por el gestor de arranque al kernel.

Una de las mejores formas de configurar los niveles de ejecucin es usando la utilidad initscript.
Estas herramientas estn diseadas para simplificar las tareas de mantener archivos en la jerarqua del
directorio SysV init y descargan a los administradores de sistemas de tener que directamente manipular
numerosos enlaces simblicos en los subdirectorios de /etc/rc.d/.

Red Hat Enterprise Linux ofrece tres de tales utilidades:

/sbin/chkconfig La utilidad /sbin/chkconfig es una herramienta de lnea de comandos


sencilla para mantener la jerarqua del directorio /etc/rc.d/init.d.
/sbin/ntsysv La utilidad basada en ncurses /sbin/ntsysv provee de una interfaz
interactiva basada en texto, que muchos encuentran ms facil de usar que chkconfig.
Herramienta de configuracin de servicios El programa de interfaz grfica Herramienta de
configuracin de servicios (system-config-services) es una utilidad flexible para la
configuracin de niveles de ejecucin.

Apagar

Para apagar Red Hat Enterprise Linux, el usuario root puede ejecutar el comando /sbin/shutdown. La
pgina man para shutdown tiene una lista completa de opciones, pero las dos usadas ms comnmente
son:

/sbin/shutdown -h now
/sbin/shutdown -r now

Despus de apagar todo, la opcin -h detendr la mquina, y la opcin -r la reiniciar.

Los usuarios de consola PAM pueden usar los comandos reboot y halt para apagar el equipo mientras
se est en niveles de ejecucin 1 hasta 5.

Si la computadora no se apaga as misma, tenga cuidado de no apagar la computadora hasta que


aparezca un mensaje indicando que el sistema ha sido detenido.

Si no espera por este mensaje puede significar que no todas las particiones del disco duro han sido
desmontadas, y puede llevar a un sistema de archivos corrupto.

8
Bibliografa
IBM . (2012). DevelopersWorks. Obtenido de https://www.ibm.com/developerworks/linux/library/l-
linuxboot/index.html?S_TACT=105AGX03&S_CMP=ART

Linux y Yo. (2012). Linux y Yo. Obtenido de http://www.linuxyyo.es/el-proceso-de-arranque-en-linux

Linuxtopia. (2012). Linuxtopia. Obtenido de


http://www.linuxtopia.org/online_books/espaniol/centos_linux_guides/centos_linux_reference_
guide/s1-boot-init-shutdown-process.html

The CentOS Project. (2012). The CentOS Project. Obtenido de


http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-boot-init-shutdown-
process.html

The Geek Stuff. (2012). The Geek Stuff. Obtenido de http://www.thegeekstuff.com/2011/02/linux-boot-


process/