# Arch boot process (Italiano)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Articoli correlati

- 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[link interrotto 2020-08-02]
- 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)