Provided by: manpages-es_1.55-10_all bug

NOMBRE

       boot-scripts - Descripcion general de la secuencia de arranque

DESCRIPCI'ON

       La  secuencia  de  arranque  varia  de  un sistema a otro pero se puede
       dividir basicamente en los siguientes pasos: (i) arranque del hardware,
       (ii)  cargador  del  SO, (iii) puesta en marcha del nucleo, (iv) init e
       inittab, (v) scripts de arranque.   Describiremos  cada  uno  de  estos
       pasos a continuacion con mas detalle.

   Arranque del hardware
       Despues  de  pulsar  el boton de encendido o el boton reset, se pasa el
       control  a  un  programa  almacenado  en  memoria   de   solo   lectura
       (normalmente   PROM).  En  los  PC  a  este  programa  se  le  denomina
       habitualmente BIOS.

       Este programa normalmente hace una comprobacion basica de la maquina  y
       accede a memoria no volatil para leer parametros adicionales. En el PC,
       esta memoria es CMOS con respaldo de bateria, por lo que la mayoria  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 volatil).

       Los parametros almacenados en la memoria nvram varian  entre  sistemas,
       pero  como  minimo  el  programa  de  arranque  debe  saber  cual es el
       dispositivo de  arranque,  o  que  dispositivos  probar  como  posibles
       dispositivos de arranque.

       Despues  se  accede  al  dispositivo  de arranque, se trae a memoria el
       cargador del S0, que esta localizado  en  una  posicion  fija  de  este
       dispositivo y se le transfiere el control a este.

       Nota:  Aqui  no  estamos  tratando como arrancar desde la red. Aquellos
              que quieran investigar sobre este tema pueden mirar: DHCP, TFTP,
              PXE, Etherboot.

   Cargador del S0
       En  los  PC, el cargador del SO esta localizado en el primer sector del
       dispositivo de arranque - es el llamado MBR (Master Boot Record).

       En la mayoria de los sistemas, este cargador primario esta limitado  en
       base  a  varias  restricciones.  Incluso  en sistemas que no son PC hay
       algunas limitaciones al tamano y complejidad del cargador, asi que,  la
       limitacion  de  tamano del MBR en PCs (512 bytes incluyendo la tabla de
       particiones) hace casi  imposible  introducir  un  gestor  de  arranque
       completo dentro de el.

       Ademas,  la  mayoria  de  sistemas  operativos  hacen  que  el cargador
       primario llame a un cargador secundario que puede estar  localizado  en
       una particion del disco especificada.

       En Linux el gestor de arranque es normalmente lilo(8) o grub(8).  Ambos
       pueden instalarse o bien como  cargadores  secundarios  (donde  el  MBR
       instalado  por el DOS apunta a ellos), o como un cargador en dos partes
       donde son ellos los que proporcionan un MBR especial  que  contiene  el
       codigo  de arranque necesario para cargar la segunda parte del cargador
       desde la particion raiz.

       La principal tarea del gestor de arranque es  localizar  el  nucleo  en
       disco,  cargarlo  y  ejecutarlo.  La  mayoria  de  gestores de arranque
       permiten  un  uso  interactivo,  para  poder  especificar   un   nucleo
       alternativo  (posiblemente  una  copia  de  seguridad en caso de que el
       ultimo nucleo compilado no funcione) y para pasar parametros opcionales
       al nucleo.

   Puesta en marcha del n'ucleo
       Una  vez  que  se  carga el nucleo, este inicializa los dispositivos (a
       traves de sus drivers), arranca el  intercambiador  o  swapper  (es  un
       "proceso  del  nucleo", llamado kswapd en los nucleos Linux modernos) y
       monta el sistema de ficheros raiz (/).

       Algunos de los parametros que  se  le  pueden  pasar  al  nucleo  estan
       relacionados con estas actividades (p.e: puede sobreescribir el sistema
       de  ficheros  raiz  por  defecto).  Para  mas  informacion  sobre   los
       parametros del nucleo Linux lea bootparam(7).

       Solo  despues  el nucleo crea el primer proceso (en espacio de usuario)
       al que asigna el numero 1. Este proceso ejecuta el programa /sbin/init,
       pasandole  cualquier  parametro  que no haya podido ser manejado por el
       nucleo.

   Init e inittab
       Cuando init comienza lee  el  fichero  /etc/inittab  para  obtener  mas
       instrucciones.   Este  fichero  define lo que deberia ejecutarse en los
       diferentes "niveles de ejecucion" (run-levels).

       Esto proporciona al administrador del sistema un  sencillo  esquema  de
       gestion,  donde  cada  nivel  de ejecucion se asocia con un conjunto de
       servicios (p.e.: S es mono-usuario, en el nivel 2 se inician la mayoria
       de  servicios de red, etc.). El administrador puede cambiar el nivel de
       ejecucion actual con init(8) y consultarlo con runlevel(8).

       Sin embargo, puesto que  no  es  conveniente  gestionar  los  servicios
       individuales  editando  directamente  este  fichero,  inittab solamente
       lanza un conjunto de scripts que son los que  realmente  arrancan/paran
       los servicios individuales.

   Scripts de arranque
       Nota:  La  siguiente  descripcion  se  aplica a los sistemas basados en
              SYSV-R4,  que  actualmente  siguen  la  mayoria  de   los   Unix
              comerciales (Solaris, HPUX, Irix, Tru64) asi como la mayor parte
              de las distribuciones Linux  (RedHat,  Debian,  Mandrake,  Suse,
              Caldera).  Algunos  sistemas (Slackware Linux, FreeBSD, OpenBSD)
              tienen un esquema un tanto diferente de scripts de arranque.

       Para cada servicio gestionado (mail, nfs server,  cron,  etc.)  hay  un
       unico  script  de  inicializacion  ubicado  en un directorio especifico
       (/etc/init.d en la mayoria de versiones de Linux).  Cada uno  de  estos
       scripts  acepta como unico argumento la palabra `start', que provoca el
       arranque del servicio, o la palabra `stop', que provoca que se pare  el
       servicio.  Opcionalmente  el  script  puede aceptar otros parametros de
       "conveniencia" (p.e: `restart', para parar y  arrancar,  `status'  para
       mostrar  el estado del servicio). Ejecutar el script sin parametros nos
       mostrara los posibles argumentos.

   Directorios de ejecuci'on en orden
       Para conseguir que ciertos scripts determinados se inicien o  se  paren
       en diferentes niveles de ejecucion y en un orden especifico, se crearon
       los directorios de ejecuci'on en orden. Se encuentran  habitualmente  en
       /etc/rc[0-6S].d.   En   cada  uno  de  estos  directorios  hay  enlaces
       (normalmente  simbolicos)  a  los  scripts  que  se  encuentran  en  el
       directorio 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 traves  de  los
       enlaces  de  los  directorios  de ejecucion 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,  parando  el
       servicio).

       Para  establecer  el  orden  dentro de un mismo nivel de ejecucion, los
       nombres de los enlaces contienen numeros de orden. Ademas,  para  hacer
       los  nombres mas claros, estos 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 ejecucion 2. Esto ocurre
       despues  de  ejecutar  /etc/rc2.d/S12syslog  pero  antes  de   ejecutar
       /etc/rc2.d/S90xfs.

       Para gestionar el orden de arranque y los niveles de ejecucion, tenemos
       que manejar estos enlaces.  Sin embargo, en muchas versiones de  Linux,
       hay  disponibles  herramientas  que  nos  ayudan  con  esta tarea (p.e:
       chkconfig(8)).

   Configuraci'on del arranque
       Normalmente, los demonios lanzados pueden recibir opciones y parametros
       en  la  linea  de  ordenes  de  manera  opcional.  Para  permitir a los
       administradores de sistemas cambiar estos  parametros  sin  editar  los
       scripts  de  arranque  por  ellos  mismos,  se utilizan los ficheros de
       configuracion. Estos estan  localizados  en  un  directorio  especifico
       (/etc/sysconfig en sistemas RedHat) y son utilizados por los scripts de
       arranque.

       En versiones antiguas de Unix, estos ficheros contenian las opciones de
       linea  de  ordenes  reales  para  los  demonios, pero en sistemas Linux
       modernos (y  tambien  en  HPUX),  estos  ficheros  tan  solo  contienen
       variables  del  interprete  de  ordenes.  Los  scripts  de  arranque en
       /etc/init.d cargan los ficheros de configuracion y usar los valores  de
       las variables.

FICHEROS

       /etc/init.d/, /etc/rc[S0-6].d/.  /etc/sysconfig/

V'EASE TAMBI'EN

       inittab(5), bootparam(7), init(8), runlevel(8), shutdown(8)

                                 7 junio 2002                          BOOT(7)