La computadora comienza cargando un sector de arranque (más o menos, vea más abajo), que es el primer sector en el disco. Un sector es bastante pequeño, por lo que el código del sector de arranque debe descubrir cómo cargar un poco más de código. Una vez que se carga ese código, determina en qué disco está, qué interfaz de disco se usa, etc. y luego determina qué sistema de archivos está en uso y dónde está el núcleo.
Aproximadamente. Hay algunas alternativas, donde el firmware del sistema ya conoce los discos y sistemas de archivos y ya conoce la ubicación del núcleo para cargar. Si ese es el caso, la computadora arranca y carga el kernel directamente.
Después de que el núcleo se carga y ejecuta (y ocurre un montón de inicialización y varios controladores saben qué hacer), el núcleo busca en el sistema de archivos el primer programa que se carga y ejecuta. En los sistemas Unix / POSIX, ese primer programa es init [1]. Carga y ejecuta eso, que luego cargará y ejecutará lo que se suponga que haga el sistema, como ejecutar un servidor web o servidor sshd o configurar un indicador de inicio de sesión de UI, etc.
- ¿Cuáles son las principales diferencias entre las líneas de comando de Linux y Mac OS X?
- Redes informáticas: quiero instalar Wireshark, ¿es seguro? ¿Qué hay de Winpcap?
- ¿Qué hubiera pasado si MP3 no hubiera tenido éxito?
- ¿Cuáles son las ventajas del desenfoque gaussiano, el desenfoque mediano y el filtro bilateral?
- AI / Machine Learning ha existido durante muchos años, ¿cómo es que de repente se ha convertido en un tema tan candente?
[1] Wikipedia: init