Que pasa cuando arrancamos Linux?

Acabo de encontrar una explicacion bastante sencilla y muy buena sobre los pasos que se suceden al arrancar Linux, explica lo que sucede desde el momento que prendemos la pc hasta que el usuario se loguea en su sesion, y todo en explicaciones cortas que si bien no creo que le sirvan al usuario novato de linux si brindara conocimientos importantes a los que tengan un tiempo con linux.

Primero arrancar el ordenador, paso importante, que si no, no hay continuación del post

  1. Al arrancar lo primero que hace el ordenador es ir a la BIOS que va a detectar los dispositivos y chequearlos, si todo sale correcto cargará en memoria el MBR, que es el dispositivo de arranque.
  2. En caso de ya tener linux instalado se iniciaría GRUB, también hay otros como LILO y SYSLINUX. En definitiva GRUB le la tabla de particiones del MBR, detecta en que particiones hay un sistema operativo y te muestra en un menú de arranque para elegir.
    Debemos recordar (tobal esto es por ti) que el MBR como es un sector, solo puede almacenar 512 bytes por defecto (si es que ext2/3 no se ha modificado) que definen la estructura del MBR. El Master Boot Record es el sector de la primera pista del disco duro (sector 0), y el resto de esa pista no se usará; Por lo que debemos tener en cuenta esto:

    • 0-445 bytes = Código del MBR que sirve para cargar en memoria el sector de la partición activa
    • 446-462 bytes = 16 bytes de la información de la 1ª partición
    • 463-479 bytes = 16 bytes de la información de la 2ª partición
    • 480-496 bytes = 16 bytes de la información de la 3ª partición
    • 497-512 bytes = 16 bytes de la información de la 4ª partición

    Con lo que estaremos limitados siempre a tener 4 particiones primarias, ó 3 más 1 extendida, que dentro de las extendidas pueden existir muchas…

  3. Si seleccionas linux:
    El GRUB detecta la partición /boot por defecto y carga en memoria:

    • El fichero del kernel de linux: –> kernel<versión>.img
    • Un fichero llamado INITIAL RAM DISK: intrd<versión>.img que contiene los drivers necesarios para que el kernel pueda empezar a funcionar
  4. El kernel empieza a trabajar (arranque), y monta el árbol del directorio raíz / y lanza los procesos “padre” que se encargan de la supervisión/ejecución de todos los procesos de las aplicaciones usuario/sistema. INIT se encuentra en /sbin
  5. INIT consulta un fichero de configuración (nivel de ejecución del sistema) mirando su fichero de configuración: INITTAB (se encuentra en /etc).
    Para ello utiliza los RunLevel’s, y existen 6 posibles tipos que se identifican por un número:

    • 0 Apagado del sistema
    • 1 Monousuario sin entorno gráfico, sin entorno de red
    • 2 Multiusuario sin entorno gráfico, sin entorno de red
    • 3 Multiusuario sin entorno gráfico pero con entorno de red
    • 4 No se usa por razones históricas
    • 5 Por defecto, Multiusuario, con entorno gráfico, con red
    • 6 Reinicio del sistema

    Por ejemplo, si nosotros introducimos en consola “init 0” el sistema se apagaría.
    Bueno, ahora INIT hace básicamente dos cosas:

    1. Ejecuta scripts de configuración global del sistema rc.sysinit (se encuentra en /etc/rc.d):
      • Crea las variables de entorno del sistema
      • Activa la partición swap
      • Inicializa el reloj
      • Controla/chequea el sistema de ficheros ext2/3
    2. En función del número de RunLevel se va al directorio /etc/rc.d/rcn.d (para el runlevel 5 iría a /etc/rc.d/rc5.d) y ejecuta todos los scripts que hay dentro:
      kn nombre_proceso –> kill = parar o matar
      sn nombre_proceso –> start = empezar
      A los procesos llamados desde INIT (/etc/rc.d/rcn.d) con los scripts sn nombre_proceso se los llama demonios (procesos que están continuamente ejecutándose en segundo plano)
  6. INIT crea consola virtuales, en estos momentos existen 7, 6 más la gráfica:
    ALT + F1 –> Consola número 1 tty1 (terminal teletype)
    .
    .
    .
    ALT+F7 –> Entorno gráfico (escritorio), siempre que estés en runlevel 5
    Si el runlevel es el 5, para que te muestre un entorno gráfico lanza primero un servidor gráfico el cual se conecta de forma local a tu mismo equipo para crear el escritorio (existe multitud de entornos gráficos, KDE, GNOME, …)
  7. Te ofrece la pantalla de logueo y cuando accedes carga tu perfil desde /etc/rc.d/rc.local

Vale… tampoco ha sido tanto, sabiendo esto, ya sabes muuuucho ahora a investigar por tu cuenta, tocar, tocar y tocar…

perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

2
Comenta!

avatar
flako
flako

gracias por la info me sirvio de mucho no tenia claro a que se referian con «los init» apenas hoy avia aprendido el init 0 jejejeje gracias