Hola amigos del software libre,
En este artículo os mostraré todos los pasos del proceso que realiza cualquier distribución del Sistema Operativo GNU/Linux para arrancar.
El proceso de arranque (Boot Process) de Linux es el procedimiento para inicializar el sistema. Consiste en todo lo que sucede desde que se enciende la computadora por primera vez hasta que la interfaz de usuario está completamente operativa. Tener una buena comprensión de los pasos del proceso de arranque puede ayudaros a solucionar problemas, así como a adaptar el rendimiento de la computadora a vuestras necesidades.
En la siguiente imagen os muestro un esquema del proceso:
El Kernel Linux
El cargador de arranque carga tanto el kernel como un sistema de archivos inicial basado en RAM (initramfs) en la memoria, por lo que puede ser utilizado directamente por el kernel. Cuando el kernel se carga en la RAM, inmediatamente se inicializa y configura la memoria de la computadora y también configura todo el hardware conectado al sistema. Esto incluye todos los procesadores, subsistemas de E / S, dispositivos de almacenamiento, etc. El kernel también carga algunas aplicaciones de espacio de usuario necesarias.
La imagen del sistema de archivos initramfs contiene programas y archivos binarios que realizan todas las acciones necesarias para montar el sistema de archivos raíz adecuado, como proporcionar funcionalidad del kernel para el sistema de archivos necesario y controladores de dispositivos para los dispositivos de almacenamiento masivo con una función llamada udev (para el dispositivo del usuario), que es responsable para averiguar qué dispositivos están presentes, localizar los controladores de dispositivos que necesitan para funcionar correctamente y cargarlos.
Una vez que se ha encontrado el sistema de archivos raíz, se comprueba si hay errores y se monta. El programa de montaje le indica al sistema operativo que un sistema de archivos está listo para su uso y lo asocia con un punto particular en la jerarquía general del sistema de archivos (el punto de montaje).
Si tiene éxito, initramfs se borra de la RAM y se ejecuta el programa init en el sistema de archivos raíz (/sbin/init). init maneja el montaje y pivotando hacia el sistema de archivos raíz real final. Si se necesitan controladores de hardware especiales antes de poder acceder al almacenamiento masivo, deben estar en la imagen initramfs.
/sbin/init y Servicios
Una vez que el kernel ha configurado todo su hardware y montado el sistema de archivos raíz, el kernel ejecuta /sbin/init. Esto luego se convierte en el proceso inicial, que inicia otros procesos para que el sistema funcione.
La mayoría de los demás procesos del sistema rastrean su origen en última instancia hasta init; las excepciones incluyen los denominados procesos del núcleo. Estos los inicia el kernel directamente y su trabajo es administrar los detalles internos del sistema operativo. Además de iniciar el sistema, init es responsable de mantener el sistema en funcionamiento y de apagarlo limpiamente.
Una de sus responsabilidades es actuar cuando sea necesario como administrador de todos los procesos que no son del kernel; limpia después de que finalizan y reinicia los servicios de inicio de sesión de usuario según sea necesario cuando los usuarios inician y cierran sesión, y hace lo mismo con otros servicios del sistema en segundo plano.
Tradicionalmente, el inicio de este proceso se realizaba utilizando convenciones que se remontan a la década de 1980 y la variedad System V de UNIX. Este proceso en serie hace que el sistema pase a través de una secuencia de niveles de ejecución que contienen colecciones de scripts que inician y detienen servicios. Cada nivel de ejecución admite un modo diferente de ejecutar el sistema. Dentro de cada nivel de ejecución, los servicios individuales se pueden configurar para que se ejecuten o para que se apaguen si se ejecutan. Sin embargo, todas las principales distribuciones recientes se han alejado de este método secuencial de nivel de ejecución de inicialización del sistema, aunque por lo general son compatibles con las convenciones de System V por motivos de compatibilidad. A continuación, hablaremos de los métodos más nuevos, systemd y Upstart.
Text-Mode Login (Inicio de sesión en modo texto)
Cerca del final del proceso de arranque, init inicia una serie de mensajes de inicio de sesión en modo texto. Estos le permiten escribir su nombre de usuario, seguido de su contraseña, y eventualmente obtener un shell (intérprete) de comandos. Sin embargo, si estás ejecutando un sistema con una interfaz gráfica de inicio de sesión, no los verás al principio.
Se puede acceder a las terminales que ejecutan los shells de comandos usando la tecla ALT más una tecla de función. La mayoría de las distribuciones comienzan con seis terminales de texto y un terminal gráfico que comienza con F1 o F2.
Dentro de un entorno gráfico, cambiar a una consola de texto requiere presionar CTRL-ALT + la tecla de función apropiada (con F7 o F1 se vuelve a la GUI).
Por lo general, el shell de comandos predeterminado es bash (GNU Bourne Again Shell), pero hay varios otros shells de comandos avanzados disponibles. El shell imprime un mensaje de texto que indica que está listo para aceptar comandos; después de que el usuario escribe el comando y presiona Enter, el comando se ejecuta y se muestra otro mensaje después de que se realiza el comando.
A grandes rasgos este es el famoso proceso de booteo de un Sistema Operativo GNU/Linux. Evidentemente hay mas manteca, pero os podéis hacer una buena idea.
Espero que os sirva.
Saludos.
Excelente, gracias por el aporte.
ResponderEliminarGracias por comentar
Eliminarmuy buenoo
ResponderEliminar