Sie sind auf Seite 1von 4

Proceso de arranque en Linux

El proceso de arranque en GNU/Linux es la forma en la cual los sistemas operativos basados en el ncleo Linux se inicializan. Es similar a la forma en que arranca BSD y otros sistemas Unix. Todo el proceso de arranque se lleva a cabo en 4 etapas reconocidas por el cdigo que en ese momento tiene control sobre la CPU; al inicio solo el BIOS tiene control, despus ser el cargador de arranque quien tenga en control, ms adelante el control pasa al propio kernel Linux, y en la ltima etapa ser cuando tengamos en memoria los programas de usuario conviviendo junto con el propio sistema operativo y sern ellos quienes tengan el control del CPU. La etapa del cargador de arranque no es totalmente necesaria, determinadas BIOS pueden cargar y pasar el control a GNU/Linux sin hacer uso del cargador de arranque, usar un cargador de arranque facilita al usuario la forma en que el kernel ser cargado.

BIOS
Al encender la computadora las primeras operaciones las realiza el BIOS. En esta etapa se realizan operaciones bsicas de hardware. El proceso de arranque ser diferente dependiendo de la arquitectura del procesador y el BIOS. Una vez reconocido y listo el hardware, el BIOS carga en memoria el cdigo ejecutable del cargador de arranque y le pasa el control. Hay variedad de BIOS que permiten al usuario definir en qu dispositivo/particin se encuentra dicho cargador de arranque.

Cargador de arranque
Un cargador de arranque (boot loader en ingls) es un programa diseado exclusivamente para cargar un sistema operativo en memoria. La etapa del cargador de arranque es diferente de una plataforma a otra. Como en la mayora de arquitecturas, este programa se encuentra en el MBR, el cual es de 512 bytes, no es suficiente para cargar en su totalidad un sistema operativo. Por eso, el cargador de arranque consta de varias etapas. Para las plataformas x86, el BIOS carga la primera etapa del cargador de arranque (tpicamente una parte de LILO o GRUB). El cdigo de esta primera etapa se encuentra en el sector de arranque (o MBR). La primera etapa del cargador de arranque carga el resto del cargador de arranque. Los cargadores de arranque modernos tpicamente preguntan al usuario cual sistema operativo (o tipo de sesin) desea inicializar.

GRUB
GRUB se carga y se ejecuta en 4 etapas: 1.La primera etapa del cargador la lee el BIOS desde el MBR. 2.La primera etapa carga el resto del cargador (segunda etapa). Si la segunda etapa est en un dispositivo grande, se carga una etapa intermedia (llamada etapa 1.5), la cual contiene cdigo extra que permite leer cilindros mayores que 1024 o dispositivos tipo LBA. 3.La segunda etapa ejecuta el cargador y muestra el men de inicio de GRUB. Aqu se permite elegir un sistema operativo junto con parmetros del sistema. 4.Cuando se elige un sistema operativo, se carga en memoria y se pasa el control. GRUB soporta mtodos de arranque directo, arranque chain-loading, LBA, ext2 y hasta "un presistema operativo totalmente basado en comandos". Tiene tres interfaces: un men de seleccin, un editor de configuracin y una consola de lnea de comandos. Dado que GRUB entiende los sistemas de archivos ext2 y ext3 y adems provee una interfaz de lnea de comandos, es ms fcil rectificar o modificar cuando se malconfigura o se corrompe. La nueva versin 2 de GRUB, soporta sistema de archivos ext4.

LILO
LILO es ms antiguo, es casi idntico a GRUB en su proceso, excepto que no contiene una interfaz de lnea de comandos. Por lo tanto todos los cambios en su configuracin deben ser escritos en el MBR, y reiniciar el sistema. Un error en la configuracin puede arruinar el proceso de arranque a tal grado de que sea necesario usar otro dispositivo que contenga un programa que sea capaz de arreglar ese defecto. De forma adicional, LILO no entiende sistema de archivos, por lo tanto no hay archivos y todo se almacena en el MBR directamente. Cuando el usuario selecciona una opcin del men de carga de LILO, dependiendo de la respuesta, carga los 512 bytes del MBR para sistemas como Microsoft Windows, o la imagen del kernel Linux.

Loadlin
Otra forma de cargar GNU/Linux es desde DOS o Windows 9x, dado que ambos sistemas permiten ser reemplazados, se puede reemplazar por el kernel Linux sobre el sistema operativo ya cargado. Esto puede ser til en el caso en que el hardware est solo disponible para DOS y no para GNU/Linux, dado a cuestiones de secretos industriales y cdigo propietario. Sin embargo, esta tediosa forma de arranque ya no es necesaria en la actualidad ya que GNU/Linux tiene drivers para multitud de dispositivos hardware, aun as, esto fue muy til en el pasado. Otro caso es cuando GNU/Linux se encuentra en un dispositivo que el BIOS no lo tiene disponible para el arranque. Entonces, DOS o Windows pueden cargar el driver apropiado para dicho dispositivo superando dicha limitacin del BIOS, y a partir de entonces cargar el ncleo Linux.

Kernel
El kernel Linux se encarga de lo principal del sistema operativo, como el manejo de memoria, planificador de tareas, entradas y salidas, comunicacin interprocesos, y dems sistemas de control. El proceso del kernel se lleva en dos etapas; la etapa de carga y la etapa de ejecucin. El kernel generalmente se almacena en un archivo comprimido con zlib. Este archivo comprimido se carga y se descomprime en memoria, tambin se cargan los drivers necesarios por medio de un disco RAM (initrd). El disco RAM es un sistema de archivos temporal usado en la fase de ejecucin del kernel. Una vez que el kernel se ha cargado en memoria y est listo, se lleva a cabo su ejecucin. Esto se realiza llamando la funcin startup del kernel (en los procesadores x86, se encuentra en la funcin startup_32() del archivo /arch/i386/boot/head), esta funcin establece el manejo de memoria (tablas de paginacin y paginacin de memoria), detecta el tipo del CPU y funcionalidad adicional como capacidades de punto flotante. Despus cambia a funcionalidades que no dependen del hardware por medio de la llamada a la funcin start_kernel(). El proceso de arranque en GNU/Linux monta el disco RAM que fue cargado anteriormente como un sistema de archivos temporal. Esto permite que los mdulos que contienen drivers puedan ser cargados sin depender de otros drivers de dispositivos fsicos, y adems mantiene el kernel ms pequeo.

Se inicializan dispositivos virtuales con la intencin de ser usados para crear sistemas de archivos, como LVM o software RAID antes de desmontar la imagen initrd. El sistema de archivos es cambiado por medio de la funcin pivot_root() la cual desmonta el sistema de archivos temporal y lo reemplaza con el real, el cual ms tarde estar totalmente disponible liberando la memoria que ocupaba el temporal. Una vez listo el manejador de excepciones, el planificador de tareas y dems, por fin el sistema se considera totalmente operacional a nivel de procesos, por lo tanto se ejecuta el proceso init (el primer proceso en espacio de usuario), y luego inicia una tarea de inactividad por medio de cpu_idle().

Proceso init
El proceso init establece el entorno de usuario. Verifica y monta los sistemas de archivos, inicia servicios de usuario necesarios y cambia a un entorno basado en usuario cuando el proceso de inicio termina. Es similar a los procesos init de Unix y BSD del cual deriva, pero en algunos casos tiene diferencias y personalizaciones. En un sistema GNU/Linux estndar, init se ejecuta con un parmetro, conocido como runlevel, que toma un valor de 0 a 6, y que determina cuales subsistemas sern operacionales. Cada runlevel tiene sus propios scripts los cuales involucran un conjunto de programas. Estos scripts se guardan en directorios con nombres como "/etc/rc...". El archivo de configuracin de init es /etc/inittab. Cuando el sistema se arranca, se verifica si existe un runlevel predeterminado en el archivo /etc/inittab, si no, se debe introducir por medio de la consola del sistema. Despus se procede a ejecutar todos los scripts relativos al runlevel especificado.

Das könnte Ihnen auch gefallen