boot(7) Miscellaneous Information Manual boot(7) NOMBRE inicio - Proceso de inicio de sistemas basados en la version 4 de System V de Unix DESCRIPCION El proceso de inicio (o "secuencia de arranque) varia segun el sistema, pero se puede dividir a grandes rasgos en fases dirigidas por los siguientes componentes: (1) hardware (2) cargador de inicio del sistema operativo (3) nucleo (4) Proceso de espacio de usuario administrador (init(8) y inittab(5)) (5) scripts de inicio A continuacion se describe cada uno de ellos con mayor detalle. Hardware Tras el encendido o el reinicio completo, se asigna el control a un programa almacenado en la memoria de solo lectura (normalmente la PROM); por razones historicas relacionadas con el ordenador personal, este programa suele denominarse BIOS. Este programa normalmente realiza una autocomprobacion basica del equipo y accede a la memoria no volatil para leer mas parametros. Esta memoria del PC es una memoria CMOS con respaldo de bateria, por lo que la mayoria de la gente la conoce como CMOS. Fuera del mundo informatico, se suele denominar 'NVRAM'(RAM no volatil). Los parametros almacenados en la NVRAM varian segun el sistema, pero como minimo, deberian especificar que dispositivo puede suministrar un cargador del SO, o al menos que dispositivos pueden ser sondeados para conseguir uno; dicho dispositivo se conoce como 'dispositivo de inicio'.La etapa de arranque del hardware carga el cargador del SO desde una posicion fija en el dispositivo de arranque y luego le transfiere el control. Nota: The device from which the OS loader is read may be attached via a network, in which case, the details of booting are further specified by protocols such as DHCP, TFTP, PXE, Etherboot, etc. Cargador de inicio del sistema operativo The main job of the OS loader is to locate the kernel on some device, load it, and run it. Most OS loaders allow interactive use, in order to enable specification of an alternative kernel (maybe a backup in case the one last compiled isn't functioning) and to pass optional parameters to the kernel. En un PC tradicional, el cargador del SO se encuentra en el bloque inicial de 512 bytes del dispositivo de arranque; este bloque se conoce como 'MBR' (Registro Maestro de Arranque). In most systems, the OS loader is very limited due to various constraints. Even on non-PC systems, there are some limitations on the size and complexity of this loader, but the size limitation of the PC MBR (512 bytes, including the partition table) makes it almost impossible to squeeze much functionality into it. La mayoria de sistemas operativos dividen la tarea de iniciarse entre un cargador de inicio primario y otro secundario; este ultimo puede estar localizado dentro dentro de otra particion mayor de almacenamiento permanente como por ejemplo una particion de disco. En linux, el cargador de inicio suele ser grub(8) (una alternativa a lilo(8). Nucleo When the kernel is loaded, it initializes various components of the computer and operating system; each portion of software responsible for such a task is usually considered "a driver" for the applicable component. The kernel starts the virtual memory swapper (it is a kernel process, called "kswapd" in a modern Linux kernel), and mounts some filesystem at the root path, /. Algunos de los parametros que se le pueden pasar al nucleo estan relacionados con estas actividades (p.e: puede sobreescribir el sistema de archivos raiz por defecto). Para mas informacion sobre los parametros del nucleo Linux consulte bootparam(7). Only then does the kernel create the initial user-space process, which is given the number 1 as its PID (process ID). Traditionally, this process executes the program /sbin/init, to which are passed the parameters that haven't already been handled by the kernel. Proceso base en espacio de usuario Nota: La siguiente descripcion es de aplicacion en sistemas operativos basados en la version 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, este lee /etc/inittab en busca de instrucciones. En este archivo se define que debe ejecutarse segun el nivel de ejecucion permitiendo al administrador del sistema definir el entorno para ciertos usos de forma sencilla. Cada nivel de ejecucion esta asociado a un conjunto de servicios. Por ejemplo: el nivel de ejecucion S es el modo monousuario y el nivel de ejecucion 2 implica la ejecucion de la mayoria de servicios de red. El administrador puede modificar el nivel de ejecucion actual mediante init(1) y ver el que esta actualmente en ejecucion 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 descripcion se aplica a los sistemas basados en la version de Unix System V. Sin embargo, algunos sistemas ampliamente usados (Slackware Linux, FreeBSD, OpenBSD) tienen una estructura para los scripts de inicio algo diferente. For each managed service (mail, nfs server, cron, etc.), there is a single startup script located in a specific directory (/etc/init.d in most versions of Linux). Each of these scripts accepts as a single argument the word "start" (causing it to start the service) or the word "stop" (causing it to stop the service). The script may optionally accept other convenience parameters (e.g., "restart" to stop and then start, "status" to display the service status, etc.). Running the script without parameters displays the possible arguments. Directorios de ejecucion en orden To make specific scripts start/stop at specific run levels and in a specific order, there are sequencing directories, normally of the form /etc/rc[0-6S].d. In each of these directories, there are links (usually symbolic) to the scripts in the /etc/init.d directory. Un script principal (normalmente /etc/rc) es invocado desde inittab(5); este script principal llama al script de cada servicio mediante un enlace en el directorio de secuenciacion correspondiente. Cada enlace cuyo nombre comience con 'S' se llama con el argumento 'start' (iniciando asi el servicio). Cada enlace cuyo nombre comienza con 'K' se llama con el argumento 'stop' (deteniendo asi el servicio). Para establecer el orden de inico o parada 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 ocurriria despues de ejecutar /etc/rc2.d/S12syslog pero antes de ejecutar /etc/rc2.d/S90xfs. Para gestionar el orden de inicio y los niveles de ejecucion, tenemos que manejar estos enlaces. En muchos sistemas, existen herramientas para facilitaresta tarea (p.ej: chkconfig(8)). Configuracion de inicio Un programa que proporciona un servicio suele denominarse "demonio". Normalmente, un demonio puede recibir varias opciones y parametros desde la linea de ordenes. Para que el administrador del sistema pueda modificar estas entradas sin editar todo el script de arranque, se utiliza un archivo de configuracion independiente, ubicado en un directorio especifico donde un script de arranque asociado puede encontrarlo (/etc/sysconfig en sistemas Red Hat antiguos). In older UNIX systems, such a file contained the actual command line options for a daemon, but in modern Linux systems (and also in HP-UX), it just contains shell variables. A boot script in /etc/init.d reads and includes its configuration file (that is, it "sources" its configuration file) and then uses the variable values. ARCHIVOS /etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/ VEASE TAMBIEN init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Miguel Perez Ibars y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de Manual de Linux 6.17 21 Septiembre 2025 boot(7)