Provided by: manpages-es_4.13-4_all 

NOMBRE
inicio - Proceso de inicio de sistemas basados en la versión 4 de System V de Unix
DESCRIPCIÓN
El proceso de incio (o "secuencia de inicio") varía en ciertos detalles entre sistemas, pero puede
dividirse en varias etapas en base al componente que lo controle:
1. hardware
2. cargador de inicio del sistema operativo
3. núcleo
4. proceso base en espacio de usuario (init e inittab)
5. scripts de inicio
A continuación se describe cada uno de ellos con mayor detalle.
Hardware
Después de pulsar el botón de encendido o el botón reset, se pasa el control a un programa almacenado en
memoria de sólo lectura (normalmente PROM). Por razones históricas de los PC, a este programa se suele
denominar BIOS.
Este programa normalmente hace una autocomprobación básica del equipo y accede a la memoria no volátil
para leer parámetros adicionales. En el PC, esta memoria es de tipo CMOS con respaldo de batería, por lo
que la mayoría de la gente se refiere a ella como CMOS, aunque fuera del mundo del PC se le llama
usualmente nvram (non-volatile ram, RAM no volátil).
La cantidad de parámetros almacenados en la NVRAM varía entre sistemas, pero debería -como mínimo-
definir qué dispositivo puede proporcionar un cargador para el sistema operativo o en cuales se debería
comprobar si existe uno. Este dispositivo se conoce como dispositivo de inicio. Durante la primera etapa
de inicio (hardware) se carga el cargador del sistema operativo desde una posición definida del
dispositivo de inicio y luego se le transfiere el control.
Nota: El dispositivo desde el que se cargará el sistema operativo puede estar acoplado al equipo a
través de una red, en cuyo caso los detalles para el inicio se darán mediante protocolos como
DHCP, TFTP, PXE, Etherboot, etc...
Cargador de inicio del sistema operativo
La principal tarea del cargador de inicio es localizar el núcleo, cargarlo y ejecutarlo. La mayoría de
cargadores de inicio permiten un uso interactivo, para poder especificar un núcleo alternativo
(posiblemente una copia de seguridad en caso de que el último núcleo compilado no funcione) y para pasar
parámetros opcionales al núcleo.
Tradicionalmente, en los PC, el cargador del SO está localizado en el primer sector del dispositivo de
inicio - es el llamado MBR (Master Boot Record).
En la mayoría de los sistemas, este cargador de inicio está limitado en base a varias restricciones.
Incluso en sistemas que no son PC hay algunas limitaciones al tamaño y complejidad del cargador, así que,
la limitación de tamaño del MBR en los PC (512 bytes incluyendo la tabla de particiones) hace casi
imposible introducir un cargador de inicio completo dentro de él.
La mayoría de sistemas operativos dividen la tarea de iniciarse entre un cargador de inicio primario y
otro secundario; éste último puede estar localizado dentro dentro de otra partición mayor de
almacenamiento permanente como por ejemplo una partición de disco.
En linux, el cargador de inicio suele ser lilo(8) o grub(8).
Núcleo
Una vez que se carga el núcleo, éste inicializa diversos componentes del equipo y del sistema operativo.
Cada porción de software responsable de esta tarea se suele considerar un controlador o driver para dicho
componente. El núcleo arranca el intercambiador de memoria virtual (es un proceso del núcleo llamado
"kswapd" en los núcleos recientes de Linux) y monta el sistema de archivos raíz: /.
Algunos de los parámetros que se le pueden pasar al núcleo están relacionados con estas actividades (p.e:
puede sobreescribir el sistema de archivos raíz por defecto). Para más información sobre los parámetros
del núcleo Linux consulte bootparam(7).
Después de esto, el núcleo creará el primer proceso en espacio de usuario al que asigna como número de
PID (ID de proceso) el número 1. Tradicionalmente, este proceso ejecuta el programa /sbin/init, pasándole
cualquier parámetro que no haya podido ser manejado por el núcleo.
Proceso base en espacio de usuario
Nota: La siguiente descripción es de aplicación en sistemas operativos basados en la versión 4 de System
V de UNIX. Muchos sistemas ampliamente utiizados adoptaron un sistema relacionado pero con una
base diferente conocido como systemd(1) en el cual el proceso de inicio se describe en su
bootup(7) asociado.
Cuando se inicia /sbin/init, éste lee /etc/inittab en busca de instrucciones. En este archivo se define
qué debe ejecutarse según el nivel de ejecución permitiendo al administrador del sistema definir el
entorno para ciertos usos de forma sencilla. Cada nivel de ejecución está asociado a un conjunto de
servicios. Por ejemplo: el nivel de ejecución S es el modo monousuario y el nivel de ejecución 2 implica
la ejecución de la mayoría de servicios de red.
El administrador puede modificar el nivel de ejecución actual mediante init(1) y ver el que está
actualmente en ejecución con runlevel(8).
Sin embargo, puesto que no es conveniente gestionar los servicios individuales editando directamente este
archivo, /etc/inittab solamente lanza un conjunto de scripts que son los que realmente arrancan/paran los
servicios individuales.
Scripts de inicio
Nota: La siguiente descripción se aplica a los sistemas basados en la versión de Unix System V. Sin
embargo, algunos sistemas ampliamente usados (Slackware Linux, FreeBSD, OpenBSD) tienen una
estructura para los scripts de inicio algo diferente.
Para cada servicio gestionado (mail, nfs server, cron, etc.) hay un único script de inicialización
ubicado en un directorio específico (/etc/init.d en la mayoría de versiones de Linux). Cada uno de estos
scripts acepta como único argumento la palabra 'start' (haciendo que se inicie el servicio) y la palabra
'stop' (hace que se detenga). También podrán aceptar otros argumentos a conveniencia como por ejemplo
'restart' que hace que se detenga y se vuelva a iniciar, 'status' que muestra el estado en que se
encuentra el servicio, etc... Si se ejecuta sin ningún argumento, se listan todas las posibilidades que
ofrece.
Directorios de ejecución en orden
Para conseguir que ciertos scripts se inicien o se paren en diferentes niveles de ejecución y en un orden
concreto, se crearon los directorios de ejecución en orden. Se encuentran habitualmente en
/etc/rc[0-6S].d. En cada uno de estos directorios hay enlaces (normalmente simbólicos) a los scripts que
se encuentran en el directorio /etc/init.d.
Un script principal (normalmente /etc/rc) es llamado desde inittab(5) y es el encargado de invocar a los
scripts de servicios a través de los enlaces de los directorios de ejecución en orden. Todos los enlaces
cuyo nombre comienza con 'S' son invocados con el argumento 'start' (por tanto, iniciando el servicio).
Todos los enlaces que comienzan con 'K' son invocados con el argumento 'stop' (por tanto, deteniendo el
servicio).
Para establecer el orden de inico o parada dentro de un mismo nivel de ejecución, los nombres de los
enlaces contienen números de orden. Además, para hacer los nombres más claros, éstos terminan
habitualmente con el nombre del servicio al que se refieren. Ejemplo: el enlace /etc/rc2.d/S80sendmail
lanza el servicio sendmail en el nivel de ejecución 2. Esto ocurriría después de ejecutar
/etc/rc2.d/S12syslog pero antes de ejecutar /etc/rc2.d/S90xfs.
Para gestionar el orden de inicio y los niveles de ejecución, tenemos que manejar estos enlaces. En
muchos sistemas, existen herramientas que para esta tarea (p.ej: chkconfig(8)).
Configuración de inicio
Una aplicación que proporciona un servicio suele denominarse demonio. Normalmente, los demonios lanzados
pueden recibir opciones y parámetros en la línea de órdenes de manera opcional. Para permitir a los
administradores de sistemas cambiar estos parámetros sin editar los scripts de inicio, se utilizan los
archivos de configuración. Éstos están localizados en un directorio específico (/etc/sysconfig en
sistemas RedHat antiguos) y son utilizados por los scripts de inicio.
En versiones antiguas de Unix, estos archivos contenían las opciones de línea de órdenes reales para un
demonios, pero en sistemas Linux modernos (y también en HP-UX), tan solo contienen variables de la shell.
Los scripts de inicio en /etc/init.d leen e incluyen sus archivos de configuración y usan los valores de
las variables.
ARCHIVOS
/etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/
VÉASE TAMBIÉN
init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8)
COLOFÓN
Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
proyecto, información sobre cómo informar errores y la última versión de esta página en
https://www.kernel.org/doc/man-pages/.
TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars <mpi79470@alu.um.es>
y Marcos Fouces <marcos@debian.org>
Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con
respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a
debian-l10n-spanish@lists.debian.org.
Linux 11 Marzo 2015 INICIO(7)