# Arch boot process (Italiano)

Articoli correlati

- Boot loaders
- Master Boot Record (Italiano)
- GUID Partition Table
- Unified Extensible Firmware Interface (Italiano)
- mkinitcpio (Italiano)
- systemd (Italiano)
- fstab (Italiano)
- Autostarting

Per avviare Linux è necessario aver installato nel Master Boot Record o nella GUID Partition Table un boot loader compatibile con Linux, come GRUB o Syslinux. Il boot loader è responsabile per il caricamento del kernel e il ramdisk iniziale prima di iniziare il processo di boot. La procedura è piuttosto differente tra sistemi BIOS e UEFI, e la descrizione dettagliata è presentata in questa pagina o quelle collegate.

## Processo di boot

### Con BIOS

1. Accensione del sistema - Power-on self-test o POST
2. Dopo il POST, il BIOS inizializza l'hardware necessario per il boot (dischi, controller della tastiera ecc.)
3. Il BIOS esegue i primi 440 byte (Master Boot Record) del primo disco rigido secondo l'ordine del BIOS
4. Il codice di boot nell'MBR prende quindi il controllo dal BIOS e esegue il prossimo blocco di codice (se esistente) (in genere un boot loader)
5. Il secondo codice lanciato (il vero boot loader) legge quindi i suoi file ausiliari e di configurazione
6. Basandosi sui valori nei propri file di configurazione, il boot loader carica il kernel e l'initramfs nella memoria di sistema (RAM) ed infine esegue il kernel

### Con UEFI

Leggere Unified Extensible Firmware Interface (Italiano)#Processo di boot con UEFI.

## Kernel

Il kernel è il cuore di un sistema operativo. Esso lavora a basso livello (kernelspace) interagendo tra le periferiche della macchina, ed i programmi che ne richiedono le risorse per funzionare. Per sfruttare la CPU in modo efficiente, il kernel usa un sistema di pianificazione per decidere a quale processo assegnare la priorità e quando, creando così l'illusione (per l'occhio umano) che i processi vengano eseguiti contemporaneamente.

## initramfs

Dopo essere stato caricato, il kernel decomprime l'initramfs (initial RAM filesystem), che diventa il file system di root iniziale. Il kernel successivamente esegue `/init` come primo processo. La fase early userspace inizia.

L'obiettivo di initramfs è di effettuare il bootstrap del sistema fino a che quest'ultimo non sia in gradi di accedere al filesystem di root (vedi FHS per maggiori informazioni). Ciò significa che ogni modulo richiesto dalle periferiche come dischi IDE, SCSI, o SATA (oppure USB/FireWire, se si effettua il boot da una di queste periferiche) deve essere caricabile dall'initramfs se non è stato compilato all'interno del kernel; Una volta che sono caricati i moduli necessari, (sia da un programma, sia con uno script, o tramite udev), il processo di boot continua. Per questa ragione nell'initramfs è necessaria la sola presenza dei moduli assolutamente indispensabili per l'accesso al filesystem di root; non è quindi necessario che contenga tutti i moduli che servono al completo funzionamento della macchina. La maggior parte dei moduli sarà caricata in seguito da udev, durante la fase di init.

## Processo init

Alla fase finale della early userspace, la vera root è stata montata, e si sostituisce al file system di root iniziale. `/sbin/init` è eseguito, sostituendo il processo `/init`. Arch usa systemd come processo init.

## Altre risorse

- Early Userspace in Arch Linux
- Inside the Linux boot process
- Boot with GRUB
- Wikipedia:Linux startup process
- Wikipedia:it:initrd
- Boot Linux Grub Into Single User Mode

Categories:

- Boot process (Italiano)
- About Arch (Italiano)