Provided by: manpages-es_4.13-4_all bug

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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨⟩.