LILO
# LILO

In informatica LILO (LInux LOader) è un boot loader generalmente usato per avviare il kernel Linux.

## Storia

Ideato in origine da Werner Almesberger e poi aggiornato da John Coffman, è stato uno dei principali boot loader per Linux. Per tutto il periodo degli anni 1990 è stato usato come boot loader predefinito per le distribuzioni Linux, poi, gradualmente, sostituito con il più completo GNU GRUB. Dall'ottobre 2014 non viene più aggiornato e il suo sviluppo è terminato ufficialmente nel dicembre 2015.

## Descrizione

### Differenze con GRUB

La differenza principale consiste nel fatto che LILO non conosce la struttura del file system sul quale viene installato. Questo aspetto ha permesso di mantenere il codice sorgente di LILO estremamente semplice. In pratica al momento dell'installazione viene creata una tabella di settori da caricare in memoria, questi settori sono quelli dove si trova fisicamente il kernel ed eventualmente il file initrd. Questo meccanismo (tabella di settori) consente a LILO di caricare i file necessari senza bisogno di conoscere la struttura del file system che quindi può essere uno qualsiasi, ma richiede di installare nuovamente LILO ogni volta che si viene sostituito il kernel o qualche parametro di configurazione.

### Funzionamento

Schematizzando, ecco cosa succede al boot:

* il BIOS carica il master boot record (MBR) che contiene la prima parte di LILO (stage 1);
* lo stage 1 carica la seconda parte (stage 2), che è di poco più grande e non può essere contenuta nel settore MBR;
* lo stage 2 carica la "tabella dei settori" e di conseguenza kernel e initrd;
* LILO avvia il kernel e gli cede il controllo della macchina.

### Limiti e configurazione

Al momento del boot si può scegliere un'immagine alla volta da un massimo di 16 immagini diverse. Molti parametri, come il "root device", possono essere impostati indipendentemente per ogni kernel. LILO può essere installato nel master boot record o nel settore di boot di una partizione. Nel secondo caso qualcos'altro deve essere scritto nel settore MBR per caricare LILO.

All'avvio del sistema, LILO può accedere agli hard disk solo tramite le funzioni offerte dal BIOS, per questa ragione con BIOS molto vecchi l'area accessibile è limitata ai primi 1024 cilindri dei primi due hard disk (da 0 a 1023 per via del metodo di accesso CHS). Con i BIOS successivi LILO può usare il "logical block addressing" (LBA) a 32 bit per accedere praticamente all'intero contenuto di tutti gli hard disk a cui il BIOS permette l'accesso.

### ELILO

ELILO è stato un boot loader per hardware basati su EFI, originariamente sviluppato per i sistemi IA-64 prodotti da Hewlett-Packard e poi esteso per supportare anche piattaforme Intel IA-32 e x86-64. Il progetto è stato abbandonato nel 2014, dopo che il software è stato dismesso da tre fra le più importanti distribuzioni Linux: Debian, Red Hat Enterprise Linux e SUSE..

