Top Banner
 Inmersión Linux: de 0 a 100 en 30 Horas Tema 3: Booting & Init J. Félix Ontañón <[email protected]>
16

Booting Linux

Feb 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Booting Linux

   

Inmersión Linux: de 0 a 100 en 30 HorasTema 3: Booting & Init

J. Félix Ontañón <[email protected]>

Page 2: Booting Linux

   

Indice● Secuencia de arranque de un SO● Secuencia de arranque Linux:

● Gestor de Arranque (Grub)● Carga del Kernel e Initramfs● Init

Inmersión Linux: De 0 a 100 en 30 Horas

Indice

Page 3: Booting Linux

   

● Problema del huevo y la gallina

● ¡¡Solución!!: Boot Loader

● Elementos en juego:● Bios● Master Boot Record● Boot Loader (2 Fases)

Inmersión Linux: De 0 a 100 en 30 Horas

Secuencia de arranque de un SO

La secuencia de arranque es el conjunto de operaciones que lleva a cabo una computadora desde que es encendida hasta que comienza la carga del S.O.

Wikipedia

Arranque del sistema

Fase 1

Fase 2

Carga del SO

BIOS

MBR

Boot loader

S.O.

Page 4: Booting Linux

   

BIOS● Sistema básico de entrada/salida

● PROM, EPROM o mas recientemente Flash Memory

● Inicializa diversos componentes de la placa base● Reloj● Procesador, memoria, caché ...● Dispositivos de almacenamiento● Etc ...

● Al final, accede al MBR para cargar el Boot Loader

Inmersión Linux: De 0 a 100 en 30 Horas

Secuencia de arranque de un SO

Page 5: Booting Linux

   

MBR● Son los 512 primeros bytes del dispositivo de arranque

● Localizado físicamente en el CHS 001

● En esos 512 bytes deben caber:● El boot loader primario● Tabla de particiones● Magic Number

● El fin del boot loader primario es cargar el boot loader secundario

Inmersión Linux: De 0 a 100 en 30 Horas

Secuencia de arranque de un SO

Page 6: Booting Linux

   

MBR

Inmersión Linux: De 0 a 100 en 30 Horas

Secuencia de arranque de un SO

Boot Loader

Tabla de Particiones

Magic Number

Partición 1

Partición 2

Partición 3

Partición 4

PartitionFlag

Start CHSPartition

ByteEnd CHS Start LBA Size

446bytes

64bytes

2 bytes

Magic Number: 2 bytes de control que sirven de test de validación al MBR. Tienen en valor constante 0xAA55

Page 7: Booting Linux

   

Boot Loader secundario

●  Encargado de iniciar la carga del S.O   

●  Acaba transfiriendo el control a éste.

●  Los más conocidos: Lilo, Grub, NTLDR ...

Inmersión Linux: De 0 a 100 en 30 Horas

Secuencia de arranque de un SO

Page 8: Booting Linux

   

●  Boot Loader: comúnmente Grub o Lilo.

●  Se descomprime y arranca el núcleo.

●  Se monta el Inital Ram Disk si hubiere.

● Al final se arranca   el proceso  init que es padre  de todos los   procesos en Linux.

Inmersión Linux: De 0 a 100 en 30 Horas

Secuencia de arranque Linux

Arranque del sistema

Fase 1

Fase 2

Initramfs / Kernel

BIOS

MBR

Grub, Lilo ...

Linux

Init User­Space

Page 9: Booting Linux

   

Inmersión Linux: De 0 a 100 en 30 Horas

Secuencia de arranque Linux

Page 10: Booting Linux

   

Características destacables● Tiene conocimiento sobre sistema de ficheros.

● Edición de parámetros de carga tiempo de arranque:● Disco, Partición, Kernel, Disco Ram (Initrd).● Configuración de la red: manual, dhcp, rarp.● Etc ...

● Implementa pequeña consola de comandos.

● Menú amigable.

● Permite establecer contraseña de acceso.

Inmersión Linux: De 0 a 100 en 30 Horas

Gestor de Arranque (Grub)

Page 11: Booting Linux

   

Bootstrapping en tres fases●  Stage1:

● Reside en el MBR● Realiza las funciones del boot loader primario

●  Stage 1.5:● Reside en los siguientes 30kbytes del disco duro● Es capaz de ejecutar el Stage2 desde dicha partición

●  Stage 2:● Reside en la partición primaria dentro de /boot/grub● Presenta el menú desde donde realizar la carga del kernel y el 

initramfs o transferir el control a otro boot loader

Inmersión Linux: De 0 a 100 en 30 Horas

Gestor de Arranque (Grub)

Page 12: Booting Linux

   

Inmersión Linux: De 0 a 100 en 30 Horas

Carga del Kernel e Initramfs

 ¿initramfs/initrd?● Sistema de ficheros temporal cargado en RAM

● Contiene drivers (modulos) y scripts

● Usado por el núcleo para que root pueda ser montada

● La partición root puede residir en disco local o remoto, 

montada por NFS.

● Actualmente initrd es initramfs

Page 13: Booting Linux

   

Inmersión Linux: De 0 a 100 en 30 Horas

Carga del Kernel e Initramfs

Proceso de carga del núcleo● Se descomprime el kernel y se carga en memoria

● Se inician ciertas funciones en espacio de kernel:● Configuración de interrupciones● Se carga initramfs en RAM● Si inicia kernel_thread● El scheduler de procesos toma el control

● Se monta la partición root

● Se ejecuta el proceso /sbin/init (habitualmente)

Page 14: Booting Linux

   

Inmersión Linux: De 0 a 100 en 30 Horas

Init

Init: el proceso padre● Único proceso que arranca en núcleo, en user­space

● Crea el resto de procesos como hijos.

● Sigue en guión /etc/inittab

initleer

inittab

arrancarterminales

determinarrunlevel

arrancar servicios

Page 15: Booting Linux

   

Inmersión Linux: De 0 a 100 en 30 Horas

Init

Upstart: sustituto de init● Demonio init guiado por eventos

● Ficheros de configuración en /etc/event.d

● Retrocompatible con init e inittab

● De momento solo usado por Ubuntu y Debian 

Experimental  (Julio de 2007).

Page 16: Booting Linux

   

Inmersión Linux: De 0 a 100 en 30 Horas

Para mas documentación

Bibliografíahttp://en.wikipedia.org/wiki/Bootstrapping

http://en.wikipedia.org/wiki/Booting

http://en.wikipedia.org/wiki/BIOS

http://www­128.ibm.com/developerworks/linux/library/l­bootload.html

http://www.ibm.com/developerworks/linux/library/l­linuxboot/

http://www.gnu.org/software/grub/

http://www.pixelbeat.org/docs/disk/

http://en.wikipedia.org/wiki/Initrd

http://upstart.ubuntu.com

Obra distribuida bajo licencia Creative Commons Reconocimiento – No comercialhttp://creativecommons.org/licenses/by­nc/2.5/es/