Arranque del Sistema Operativo: Conceptos y Procesos Clave

2/16
Recursos
Transcripción

¿Cómo se inicia un sistema operativo desde cero?

Cuando presionamos el botón de encendido de nuestro servidor o virtualizamos un sistema a través de herramientas como VirtualBox, inicia una compleja serie de pasos que aseguran que nuestro sistema operativo funcione correctamente. Aquí te mostramos, con un enfoque educativo, cada uno de estos procesos de manera clara y detallada.

¿Qué ocurre en las primeras etapas del arranque?

  1. Carga del sistema operativo: Todo comienza con el sistema operativo cargándose en la memoria RAM. Un pequeño espacio se reserva allí para almacenar temporalmente los archivos necesarios.

  2. Revisión de hardware: El BIOS o el Wi-Fi del servidor se encarga de verificar que todos los componentes de hardware estén funcionando correctamente, asegurando que la memoria, discos y el procesador no tengan fallos.

  3. Selección del dispositivo de arranque: Este paso es crucial, especialmente cuando hay varios discos o sistemas operativos instalados. Se detecta la partición EFI correspondiente al sistema operativo que queremos cargar, como Windows, Ubuntu o Red Hat.

¿Cómo se prioriza el arranque?

Una vez seleccionamos el bootloader a usar, en el caso de Linux se decide qué versión del kernel será la activa. Los kernels de Linux tienen actualizaciones constantes, y es frecuente volver a una versión anterior en caso de problemas de compatibilidad con el software. Esto da flexibilidad para manejar errores o actualizarse cuando sea necesario.

¿Qué papel juega el proceso de init?

Tras determinar el kernel, se lanza el primer proceso del sistema operativo, conocido como PID 1, que es el proceso init. Este se encarga de controlar el sistema junto a sus demonios. Después de init, se ejecutan los scripts de inicio: configuran las conexiones a repositorios, inician demonios y aseguran que todas las aplicaciones del sistema funcionen adecuadamente. Con estos pasos finalizados, podemos finalmente iniciar sesión.

Comprendiendo los conceptos clave del firmware y bootloader

¿Cuál es la función del firmware del sistema?

El firmware es un software específico que verifica los dispositivos conectados al sistema antes de iniciar el bootloader. Asegura que no haya corrupción en dispositivos como discos o periféricos y crea interfaces de software para que el sistema operativo interactúe con ellos eficientemente.

Profundizando en el funcionamiento del bootloader

El bootloader separa el firmware de la carga del sistema operativo, eligiendo el dispositivo de arranque adecuado. Por defecto, la mayoría de las distribuciones Linux usan GRUB (Grand Unified Bootloader), un gestor que permite recuperar sistema y arrancar Linux con parámetros extra. Con dos versiones de GRUB reconocidas (GRUB Legacy y GRUB 2), ayuda a maestros y gestores a determinar cómo se ejecuta el sistema.

Diferencias entre BIOS y UEFI

  • BIOS: Conocido como arranque legacy, el BIOS utiliza un mecanismo llamado Master Boot Record para organizar sectores de disco para diferentes sistemas operativos. Es más antiguo (desde 1975) y más lento.

  • UEFI: Es la evolución del BIOS y utiliza un sistema de particiones EFI para manejar el arranque del sistema. Este sistema permite modificar tablas de particiones por sistemas mayores y aporta flexibilidad, lo que a veces genera problemas si, por ejemplo, Windows actualiza y modifica UEFI, afectando a GRUB.

A través de estos detalles ya es posible comprender mejor el proceso de inicio de un sistema operativo. Apasionante, ¿no es cierto? No olvides repasar estos conceptos y comparte tus ideas en la sección de comentarios. ¡Nos vemos en la próxima clase!

Aportes 25

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Arranque del sistema Linux

Mi resumen seria:
Cuando se enciende un ordenador, la BIOS se ejecuta y verifica que todos los componentes estén funcionando correctamente. Cuando termina el chequeo, busca la partición de arranque (bootloader). Éste se encarga de cargar el sistema operativo en la RAM del ordenador. En el caso de Linux, GRUB es el bootloader más común.

Una vez que el bootloader ha cargado el sistema operativo, lo primero que se ejecuta es el kernel, que es el encargado de administrar los recursos del sistema. Cuando el kernel ha cargado, se ejecuta Init, que es el primer proceso que realiza el sistema operativo. Este se encarga de iniciar todos los procesos necesarios para el correcto funcionamiento del sistema operativo.

Luego, cuando el sistema operativo ha cargado sus procesos, se carga el entorno gráfico, que es la interfaz que los nosotros como usuarios vemos y con la que interactuamos.

Si tienen una maquina con un arranque dual, y si despues de actualizar windows les falla el grub y no pueden usar linux. Tocaria usar un Live USB con su sistema linux para volver a instalar el grub. No me recuerdo de todos los pasos a seguir, pero seguro con una busqueda en google o usando chat-gpt se puede ver. Es algo que es un problema solucionable.

Arranque en el sistema:

  1. El SO es almacenado en memoria: En este proceso se busca encontrar un espacio dentro de la memoria para poder ejecutarse sin problemas.
  2. Revisión del hardware: A través de este proceso se busca monitorizar todos los dispositivos conectados a través del Firmware.
  3. Selección del dispositivo de arranque: En ella se muestra un grub donde seleccionaremos que sistema operativo a utilizar.
  4. Detección de la partición EFI: Luego de seleccionar la partición se verificará el espacio de almacenamiento del sistema elegido.
    5.Carga del boot loader: Este proceso arrancara el sistema elegido anteriormente.
  5. Determina el kernel a usar: A través de este paso el sistema elige el kernel mediante el cual el sistema funcionara este proceso lo hace el sistema tomando en cuenta lo que ya se tiene instalado.
  6. Carga del kernel: Paso donde se ira iniciando el sistema para mostrar al usuario.
  7. Se carga el proceso (PID1): Este proceso es que se comenzara a iniciar el proceso de INIT en Linux.
  8. Ejecuta scripts de inicio: Para este proceso se cargarán todos los scripts que se irán ejecutando en segundo plano conocidos como daemons o demonios.
  9. Por último: El sistema se habrá iniciado correctamente para poder ser usado por el usuario administrador o usuario normal.

La clase más confusa de mi vida

Interesante clase, aunque el diagrama de al inicio tiene algunos detalles. Por ejemplo: El primer paso no es almacenar el SO en memoria volátil sino la revisión de hardware, después va la selección del dispositivo de arranque, luego la detección de la partición EFI (a veces inclusive este proceso puede ser iterativo hasta que se encuentre un SO booteable), y después todo lo demás. Si quieren revisar a detalle este proceso les recomiendo este link: https://www.cs.yale.edu/flint/feng/cos/resources/BIOS/ ya es un poco vieja la información que está ahí pero aún así creo que es útil, y además UEFI y GPT funcionan más o menos similar.

Igual si gustan aprender los nitty-gritty details de el resto de pasos les recomiendo Gentoo y/o LFS

Nota: en este contexto GPT no es Generative Pre-trained Transformer sino GUID Partition Table que en pocas palabras y pecando de sobresimplificación, podría decir que es MBR (Master Boot Record) pero con esteroides 😝.

También es posible arrancar el kernel directamente si se utilizó el flag CONFIG_EFI_STUB al compilar el kernel de linux. Sin embargo no es una opción recomendable en servidores.

Entre los beneficios del modo de inicio UEFI sobre el modo de inicio Legacy BIOS, se incluyen: Compatibilidad para particiones de unidades de disco duro superiores a 2 Tbytes. Compatibilidad para más de cuatro particiones por unidad. Inicio rápido.

Cuando la opción fast boot de la bios esta activada, el firmware del sistema puede llegar a saltarse algunas de las comprobaciones requeridas para iniciar directamente el efi ejecutable que ha sido configurado, recomendaría no activarlo si juegan mucho con los sistemas operativos de su pc porque puede dejar la motherboard sin acceso a la configuración de bios (lo digo por experiencia propia :’) ).

Que buen instructor es Enrique.

NOTA: los sistemas con BIOS van con MBR y sistemas con UEFI van con la partición EFI.
La partición EFI es una parte esencial del esquema de partición GPT, que permite particiones más grandes y mayor número de particiones en un disco, lo que es especialmente útil en sistemas con unidades de almacenamiento grandes.
UEFI y la partición EFI admiten la función de arranque seguro, que protege el sistema contra la carga de software malintencionado durante el arranque.

BIOS --> Basic Input/Output System UEFI --> Unified Extensible Firmware interface MBR --> Master Boot Record GRUB --> The Grand Unified Boot Louder

La partición del sistema EFI es una partición independiente del sistema operativo, que actúa como el lugar de almacenamiento para los cargadores de arranque EFI, las aplicaciones y los controladores que serán lanzados por el firmware UEFI

Me parece curioso y “recuerdos feos” que cuando inicie en linux hace como… 2 años recuerdo que al instalar dual boot con windows este tema siempre me causaba dolor de cabza, es decir el borrado de un sistema, pero que bien se siente por fin ver un curso donde me enseñen a como solucionar esto 😄, hasta el momento amando el curso

Mi resumen seria:
**Firmware: **es el que permite verificar que todos el hardware y los dispositivos esten funcionando correctamente. el bootloader nos permite seleccionar la opciones de arranque de nuestro sistema operativo una vez cargado el mismo ejecuta el **kernel **para administrar los recursos del sistema. **La Bios **es una pequeña parte del disco duro la cual tiene un peso no mayor de 512 kb donde a traves de una interfaz grafica se pueden ver todos los dispositivos conectados, tambien permite hacer configuraciones arranque entre otras cosas. Finalmente se cargara el entorno grafico del sistema operativo el cual observamos como resultado final para cada version o distribucion en la que estemos trabajando.

Es interesante como es el arranque del sistema. En algunas ocaciones se va a estas opciones para virtualizar tu computadora y esta logre conectar con las aplicaciones de virtualbox, emuladores de android, etc.

Saludos! Explicación sencilla pero detecto dos errores: Primero, una partición UEFI por estándar usa FAT32, no FAT12. Ni siquiera en USB se usa FAT12, ya que se prefiere directamente usar FAT32 otra vez haciendo un quirk para ello. Segundo, generalmente solo hay una partición UEFI, en la que se despliegan varios bootloader 1st-stage para cada OS. Windows tiene el suyo, y cada distro Linux que instales monta el propio, cada uno de ellos con sus respectivas firma y apuntando al 2nd-stage llevado por el GRUB2. Esto se puede ver muy fácilmente accediendo al partición EFI que se monta en Linux (cuidado, borrar la partición puede dañar tu motherboard) UEFI Specs Standards: <https://uefi.org/specs/UEFI/2.10/13_Protocols_Media_Access.html?highlight=fat12>
La Evolución del sistema BIOS es UEFI, Ordena el sistema de particiones brindando prioridad
La diferencia entre La BIOS (Basic Input/Output System) y UEFI (Unified Extensible Firmware Interface), son dos tecnologías utilizadas para iniciar y administrar el hardware de una computadora. \* La BIOS ha sido utilizada durante décadas y se basa en una tecnología más antigua. UEFI es una tecnología más reciente diseñada para reemplazar la BIOS. UEFI es más avanzada y flexible, ofreciendo características adicionales y un mejor soporte para hardware moderno. \* UEFI puede manejar discos duros más grandes, soporta una interfaz de usuario gráfica, proporciona una gestión de energía más avanzada y es más versátil en términos de arranque seguro y soporte para dispositivos modernos. \* UEFI, a menudo ofrece una interfaz gráfica de usuario (GUI) más amigable, lo que facilita la navegación y la configuración del firmware. \* UEFI ofrece una mejor compatibilidad con sistemas operativos modernos y soporta características como el arranque seguro (Secure Boot) que aumentan la seguridad del sistema.
El arranque del sistema es el proceso crucial en el cual se activa el hardware del dispositivo, se carga el núcleo del sistema operativo y se inicializan los servicios esenciales para poner en funcionamiento el dispositivo. Este proceso varía según el sistema operativo y el hardware, pero típicamente implica la secuencia de activación del hardware, la carga del firmware de inicio, la inicialización del sistema operativo y la preparación para el uso del usuario.
BIOS vs UEFI BIOS (Basic Input-Output System): Definición: BIOS es un software de bajo nivel que reside en un chip de la placa base de su computadora. Inicializa los componentes de hardware, garantiza su correcto funcionamiento y luego inicia el gestor de arranque para iniciar el sistema operativo. Características: Configuración: puede acceder a la configuración del BIOS (a menudo presionando teclas como Esc, F2, F10 o Eliminar durante el inicio) para configurar los ajustes del hardware, la hora del sistema y el orden de inicio. Legacy: BIOS existe desde hace mucho tiempo y se considera obsoleto. POST (Autoprueba de encendido): el BIOS realiza una POST para validar la configuración del hardware. Master Boot Record (MBR): BIOS busca un MBR en el dispositivo de arranque para iniciar el gestor de arranque. Limitaciones: Tamaño: BIOS admite particiones y unidades más pequeñas. Velocidad: los tiempos de arranque son más lentos en comparación con UEFI. Seguridad: Carece de funciones como Arranque seguro. Dato curioso: incluso si su PC usa el término "BIOS", es probable que las PC modernas vengan con firmware UEFI. UEFI (Unified Extensible Firmware Interface): Definición: UEFI es un reemplazo moderno del BIOS y ofrece varias ventajas. Características: Tiempos de arranque más rápidos: UEFI arranca más rápido que BIOS. Compatibilidad con discos duros más grandes: UEFI admite discos más grandes. Interfaz de usuario: UEFI se comporta como un pequeño sistema operativo, completo con gráficos y cursores de mouse. Arranque seguro: UEFI incluye funciones como Arranque seguro para evitar el arranque no autorizado. Capacidades de red: UEFI ofrece funciones de red ausentes en BIOS. Transición: Intel anunció planes para reemplazar BIOS con UEFI en todos sus conjuntos de chips, y la industria hizo lo mismo. Conclusión: la BIOS clásica es ahora una reliquia del pasado y UEFI es el camino a seguir. Recuerde, ya sea que lo llame BIOS o UEFI, ¡estos sistemas de bajo nivel desempeñan un papel crucial en el arranque de su PC!
lo del grup en su tiempo si me dio problemas, pero ya una ves que lo entiendes lo puedes arreglar tranquilo.
**Resumen:** \*\*Firmware: \*\*es el que permite verificar que todos el hardware y los dispositivos esten funcionando correctamente. el bootloader nos permite seleccionar la opciones de arranque de nuestro sistema operativo una vez cargado el mismo ejecuta el \*\*kernel \*\*para administrar los recursos del sistema. \*\*La Bios \*\*es una pequeña parte del disco duro la cual tiene un peso no mayor de 512 kb donde a traves de una interfaz grafica se pueden ver todos los dispositivos conectados, tambien permite hacer configuraciones arranque entre otras cosas. Finalmente se cargara el entorno grafico del sistema operativo el cual observamos como resultado final para cada version o distribucion en la que estemos trabajando. **(Resumen hecho por @reyetb)**
* **BIOS/UEFI**: Se inicia al encender la computadora, realiza el POST y busca el dispositivo de arranque que contiene el cargador de arranque. * **Cargador de Arranque (GRUB/LILO)**: Carga el kernel de Linux en la memoria y transfiere el control a este. * **Carga del Kernel**: El kernel se encarga de configurar el hardware y lanzar el primer proceso del sistema, `init` o `systemd`. * **Inicialización del Sistema (init/systemd)**: Se inician los servicios y procesos necesarios para que el sistema funcione correctamente, incluyendo la red y otros demonios. * **Montaje de Sistemas de Archivos**: Se monta el sistema de archivos raíz y otros necesarios para el funcionamiento del sistema. * **Interfaz de Usuario**: Se presenta el login prompt o una interfaz gráfica para que el usuario inicie sesión, y el sistema está listo para usarse.
Me gustó mucho la explicación de la diferencia entre bios y uefi, son similares pero tienen funcionalidades diferentes.