martes, 5 de noviembre de 2013

Proceso de Arranque de Linux...

El proceso de Arranque de Linux se compone de varios pasos, los cuales son necesarios para que el SO pueda comenzar a trabajar.
Los pasos para poder llevar a cabo el arranque del SO son los siguientes:



  1. El BIOS realiza las tareas de inicio específicas de la plataforma de hardware.
  2. Una vez que el hardware es reconocido y se inicia correctamente, el BIOS carga y ejecuta el código de la partición de arranque del dispositivo de arranque designado, que contiene la fase 1 de un gestor de arranque Linux. La fase 1 carga la fase 2 (la mayor parte del código del gestor de arranque). Algunos cargadores pueden utilizar una fase intermedia (conocida como la fase 1.5) para lograr esto, ya que los modernos discos de gran tamaño no pueden ser totalmente leídos sin código adicional.
  3. El gestor de arranque a menudo presenta al usuario un menú de opciones posibles de arranque. A continuación, carga el sistema operativo, que descomprime en la memoria, y establece las funciones del sistema como del hardware esencial y la paginación de memoria, antes de llamar a la función start_kernel().
  4. La función start_kernel() a continuación realiza la mayor parte de la configuración del sistema (interrupciones, el resto de la gestión de memoria, la inicialización del dispositivo, controladores, etc), antes de continuar por separado el proceso inactivo y planificador, y el proceso de Init (que se ejecuta en el espacio de usuario).
  5. El planificador toma control efectivo de la gestión del sistema, y el núcleo queda dormido (inactivo).
  6. El proceso Init ejecuta secuencias de comandos (Scripts) necesarios para configurar todos los servicios y estructuras que no sean del sistema operativo, a fin de permitir que el entorno de usuario sea creado y pueda presentarse al usuario con una pantalla de inicio de sesión.

¿Que es el Kernel?

El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones más importantes del mismo, aunque no las únicas, son:
  • Administración de la memoria para todos los programas y procesos en ejecución.
  • Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
  • Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.
Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo:
  • Versión de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales.
    Cuando el equipo de desarrollo del núcleo experimental, decidia que tenia un núclo estable y con la suficiente calidad, se lanzaba una nueva versión de producción ó estable. Esta versión era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanzamiento.
  • Versión de desarrollo: Esta versión era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solian ser inestables y no se debian usar sin saber lo que se hacia.

Runlevels y procesos init...

 El término "runlevel" o "nivel de ejecución" se refiere al modo de operación en los sistemas operativos que implementan el estilo de sistema de arranque de iniciación tipo UNIX.

Existen en los sistemas operativos basados en UNIX, como es el caso de Linux, siete runlevels o niveles de ejecución.
  • Nivel de ejecución 0: Apagado.
  • Nivel de ejecución 1: Monousuario (sólo usuario root; no es necesaria la contraseña). Se suele usar para analizar y reparar problemas.
  • Nivel de ejecución 2: Multiusuario sin soporte de red.
  • Nivel de ejecución 3: Multiusuario con soporte de red.
  • Nivel de ejecución 4: Como el runlevel 3, pero no se suele usar
  • Nivel de ejecución 5: Multiusuario en modo gráfico (X Windows).
  • Nivel de ejecución 6: Reinicio.
Cada uno de ellos será llamado al iniciar el sistema, y dependiendo del que se utilice se podrá configurar los servicios que este ejecutará. En Linux, éstos niveles de ejecución también se conocen como init. Cada uno de éstos runlevels o init tienen sus propiedades particulares.
El proceso init es el estándar para iniciar y apagar equipos Linux y Unix. Es un modo de definir que estado debe tener el equipo en un momento determinado. Para ello se emplean los niveles de ejecución. Cada unos de estos niveles contiene una lista de aplicaciones y servicios y un indicador de si cada uno de estos debe estar inicado o detenido. Entre las tareas que realiza el proceso init se encuentran las siguientes:
  • Comprueba los sistemas de ficheros.
  • Monta los sitemas de ficheros permanentes.
  • Activa la zona de memoria swap o de intercambio.
  • Activa la red.
  • Limpia los sistemas de ficheros temporales.
  • Habilita el login a los usuarios del sistema.

Este sistema de niveles de ejecución lo proporciona el sistema de arranque por defecto de la mayoría de distribuciones GNU/Linux (init). Sin embargo, Canonical ha estado desarrollando un nuevo sistema de arranque llamado upstart para sustituir a init, ya que init no se adapta a las necesidades actuales.