Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master...

25
Dipartimento di Informatica e Scienze dell’Informazione 1 orso di SISTEMI OPERATIVI Il master boot record Il master boot record Il master boot record e’ completamente contenuto all’interno del primo settore di ogni disco ed esattamente per ogni hard disk si trova all’indirizzo: cylinder 0, head 0, sector 1. E’ possibile creare e modificare il MBR tramite svariati programmi tra i quali il piu’ conosciuto e’ FDISK. Ogni MBR contiene una tabella contente 4 entry che viene chiamata partition table. Al completamento del POST (power on self test), il Bios chiama un INT 19, un istruzione che solitamente tenta di leggere un settore di boot all’interno del floppy disk. E’ da notare che anche la pressione dei tasti CTRL-ALT-DEL richiama l’esecuzione dell’ INT 19. Se durante la lettura del floppy viene rilevato un boot sector, questo viene copiato all’indirizzo 0000:7C00 e l’INT 19 esegue un salto (jump) a questo indirizzo. Se non viene trovato un settore di boot il codice contenuto all’interno dell’ INT 19 cerca di leggere l’MBR del primo hard disk

Transcript of Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master...

Page 1: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

1Corso di SISTEMI OPERATIVI

Il master boot recordIl master boot record

Il master boot record e’ completamente contenuto all’interno del primo settore di ogni disco ed esattamente per ogni hard disk si trova all’indirizzo: cylinder 0, head 0, sector 1.

E’ possibile creare e modificare il MBR tramite svariati programmi tra i quali il piu’ conosciuto e’ FDISK.

Ogni MBR contiene una tabella contente 4 entry che viene chiamata partition table. Al completamento del POST (power on self test), il Bios chiama un INT 19, un istruzione che solitamente tenta di leggere un settore di boot all’interno del floppy disk. E’ da notare che anche la pressione dei tasti CTRL-ALT-DEL richiama l’esecuzione dell’ INT 19.

Se durante la lettura del floppy viene rilevato un boot sector, questo viene copiato all’indirizzo 0000:7C00 e l’INT 19 esegue un salto (jump) a questo indirizzo.

Se non viene trovato un settore di boot il codice contenuto all’interno dell’ INT 19 cerca di leggere l’MBR del primo hard disk

Page 2: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

2Corso di SISTEMI OPERATIVI

bootbootUna volta trovato, l’MBR viene copiato alla locazione di memoria 0000:7C00.

Il programma che viene eseguito all’interno dell’ MBR legge la propria partition table alla ricerca di una partizione attiva (bootable).

Se la ricerca ha esito positivo, il boot sector di questa partizione viene copiato alla locazione di memoria 0000:7C000 e il codice dell’MBR esegue un salto a quel indirizzo

(perche’ questo possa avvenire una delle prime istruzioni che esegue l’MBR consiste nello shiftarsi in avanti, eseguendo una copia di se stesso, all’indirizzo 0000:0600 per lasciar posto al caricamento del boot sector)

Page 3: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

3Corso di SISTEMI OPERATIVI

bootboot

Se non viene trovata nessuna partizione attiva viene eseguito un INT 18 e il sistema si ferma.

Ogni sistema operativo ha il proprio formato di boot sector. Generalmente il piccolo programma all’interno del boot sector localizza la prima parte del loader del kernel del sistema operativo oppure direttamente il kernel stesso oppure ancora un programma gestore di boot, e lo copia in memoria

Page 4: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

4Corso di SISTEMI OPERATIVI

bootboot

La sequenza di ricerca del boot sector, chiamata anche sequenza di boot, generalmente e’ configurabile tramite il setup del Bios.

Alcuni indirizzi dell’MBRIl codice dell’ MBR inizia all’offset 0000I messaggi dell’ MBR iniziano all’offset 008bLa partition table inizia all’offset 01beLa firma (signature)e’ all’offset 01fe

Page 5: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

5Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLoLInux LOader (LILO)Lilo e’ un boot loader per linux, non dipende da uno specifico file system e puo’ eseguire il boot dell’ immagine di un kernel linux sia da floppy disk che da hard disk e nello stesso tempo puo’ funzionare da gestore di boot per altri sistemi operativiLilo e’ un insieme di diversi programmi e file di configurazione:-Il map installer e’ un programma che gira sotto linux e si occupa di installare tutti i file che sono necessari affinche’ Lilo funzioni correttamente. Solitamente il programma si trova in /sbin/lilo e occorre eseguirlo ogni volta che vengono apportate delle modifiche alla configurazione.-Files contenenti dati sono necessari a Lilo nel momento del boot. Generalmente sono situati in /boot dove il piu’ importante e’ il boot loader (descritto di seguito) e il map file /boot/map dove il map installer registra la posizione del kernel. Il file di configurazione e’ in /etc/lilo.conf. -boot loader e’ una parte di Lilo che e’ caricata dal bios e che ha il compito di caricare i kernel o i boot sector di altri sistemi operativi. Inoltre fornisce una semplice interfaccia a linea di comando che consente all’utente di selezionare il sistema desideratoLilo puo’ accedere alle seguenti parti del sistema:-la partizione di root spesso importante perche’ contenente /boot e i kernels

Page 6: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

6Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLo-il settore di boot contiene la prima parte del Lilo boot loader. Si occupa di caricare , la seconda e piu’ grossa parte del loader. Tipicamente entrambi i loaders sono contenuti in /boot/boot.b-il kernel e’ caricato e avviato tramite il boot loaderOccorre notare che molti dei files che Lilo richiede per poter lavorare nella fase di boot devono poter essere accessibli dal Bios. Questo e’ causa di una importante restrizione. Il Lilo boot sector e’ progettato per essere usato come partition boot sector, questo significa che puo’ ospitare una tabella delle partizioni,pertanto puo’ essere installato nelle seguenti locazioni:-nel settore di boot di floppy disk linux (/dev/fd0)-nell’MBR del primo hard disk (/dev/hda, /dev/sda).-nel settore di boot di una partizione primaria del primo disco contenente un file system linux (/dev/hda1) .-nell’MBR di una partizione estesa.Occorre specificare che molte versioni di fdisk non consentono l’attivazione di una partizione estesa.Per far si’ che cio’ avvenga e’ possibile utilizzare il tool activate contenuto all’interno di lilo.

Page 7: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

7Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLoLilo non puo essere installato nelle seguenti locazioni:-nel settore di boot di un floppy disk o in una partizione primariadi un sistema diverso da linux-nella partizione di swap di LInux-nel settore di boot di una partizione estesa.-su di un disco secondario.

Master boot record Boot sector Operating system

DOS-MBR MS-DOS COMMAND.COM

DOS-MBR LILO Linux COMMAND.COM Altri OS

LILO Linux Altri OS

Page 8: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

8Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLo

L’ultima soluzione nella tabella precedente presenta lo svantaggio di dover sovrascrivere il MBR originale. Per avere maggiore sicurezza di poter ripristinare le condizioni iniziali occorre fare una copia dell’MBR originaleI passi che occorre seguire per questa configurazione sono:dd if= /dev/hda of=/fd/MBR bs=512 count=1

Page 9: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

9Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLoUn esempio di file di configurazione lilo.conf

boot=/dev/hda2map=/boot/mapinstall=/boot/boot.b#prompt#timeout=50restrictedpassword= ‘pippo'message=/boot/messagelineardefault=linux#image=/boot/vmlinuz-2.2.16-22image=/boot/vmlinuz-2.2.17-14

label=linuxread-onlyroot=/dev/hda6

image=/boot/vmlinuz-2.2.16-22label=linux-2.2.16read-onlyroot=/dev/hda6

Page 10: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

10Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLo

Restrizioni causate dal BiosLe piu’ comuni restrizioni che rigurdano Lilo sono la limitazione al numero di hard disk e l’incapacita’ di gestire numeri di cilindri superiori al 1024.Benche’ la prima restrizione sia ormai stata eliminata nella totalita’ delle odierne versioni di bios, dove il numero di dischi gestibili e’ sempre pari a quattro, la limitazione al numero di cilindri permane in particolare quando si parla di dischi IDE. Lilo e’ in grado di accorgersi di questo problema e abortire l’installazione nel caso in cui si tenti di installare al di sopra del 1024esimo cilindro.Ci sono quattro approcci che possono risolvere questo problema:-usare una partizione differente che e’ situata sulla prima partizione del primo disco e sta al di sotto del 1024 cilindro. Questo e’ accettabile anche se la partizione in questione e’ di tipo Dos.

Page 11: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

11Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLo

-ripartizionare il disco. E’ un’operazione che causa la perdita di tutti i dati presenti precedentemente.-se sul sistema e’ gia’ presente un sistema operativo si puo’ provare a far gestire il boot a questo sistema. Nel caso di Dos/W95/W98 si puo’ ricorrere all’uso di loadlin mentre nel caso di Nt/W2k si puo’ utilizzare boot.ini.-se tutte le precedenti procedure falliscono rimane l’installazione di un nuovo Bios, di un differente controller o di una differente configurazione dei dischi.Lilo dipende dal bios nel caricamento di:-/boot/boot.b-/boot/map-tutti i kernels-i messaggi di avvio

Page 12: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

12Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLo

Alcune configurazioni tipiche: Singolo hard disk, Linux installato su di una partizione primaria: se almeno una partizione primaria e’ utilizzata come Linux file system (/ ,/usr,/home,…,) ad eccezzione della partizione di swap ovviamente,

allora il boot sector LiLo puo’ essere installato su di una di queste partizioni e puo’ essere “bootata” dall’ MBR originale.

Singolo hard disk, Linux installato su di una partizione logica: se non esiste la possibilita’ di avere una partizione primaria con file

system linux ma solamente partizioni logiche allora il boot sector LiLo puo’ essere installato nel partition sector della partizione estesa.

Dal momento che molti programmi fdisk non sono in grado di rendere attiva una partizione estesa, questo puo’ essere fatto tramite il programma activate fornito appositamente con la distribuzione LiLo.

Doppio hard disk, con linux installato sul primo disco (almeno parzialmente:

si ricade nei casi precedenti e il secondo disco non influisce.

Page 13: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

13Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLo

Doppio hard disk, Linux sul secondo disco, il primo disco ha una partizione estesa:

Lilo puo’ essere installato nel partition sector della partizione estesa del primo hard disk.(occorre utilizzare activate)

Doppio hard disk, Linux sul secondo disco, non si hanno partizioni estese sul primo disco:

in questo caso l’unico posto dover poter installare LiLo e’ il master boot record del primo hard disk.

Piu’ di due hard disk: questa situazione e’ variabile a seconda delle capacita’ del Bios di

indirizzare un numero di hard disk superiore a due. Quando si cerca di accedere al terzo o quarto disco, LiLo visualizza un warning (BIOS drive 0xnumber may not be accessible): se il Bios supporta piu’ di due hard disk si puo’ proseguire, diversamente il warning viene considerato fatal error.

Page 14: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

14Corso di SISTEMI OPERATIVI

Un esempio di gestore di boot: LiLoUn esempio di gestore di boot: LiLo

/ boot su di una partizione Dos: I recenti Kernels supportano la possibilita’ di installare e gestire la

partizione /boot anche all’interno di file system MS-Dos (UMSDOS) La partizione Dos deve essere montata in modo read-write e

generalmente viene creata la partizione /dos/linux dove vengono copiati tutti I file contenuti all’ interno di /boot e viene creato un link simbolico che rimpiazza /boot e redireziona a /dos/linux

E’ importante notare che la deframmentazione della partizione dos porterebbe inevitabilmente a rendere Linux o addirittura l’intero sistema unbootable.

Page 15: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

15Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

Come visto in precedenza il settore di bootsettore di boot viene caricato all’indirizzo 0x07C00, in questo caso la prima istruzione muove se stesso all’indirizzo 0x9A000 (da 0x9A000 a 0x9B000) e carica il boot loader secondario all ‘indirizzo 0x9B000 passandogli il controllo dell’esecuzione. In questa fase la graduale visualizzazione a monitor della scritta “LILO:” fornisce una diagnostica delle fasi di boot. Infatti la prima L compare dopo il move del codice, e la I subito prima del passaggio di esecuzione al boot loader secondario. Nel caso in cui il caricamento del boot loader secondario incontra degli errori, viene visualizzata una sequenza interminabile di codice esadecimale a due cifre.Il boot loader secondario carica la descriptor table all’indirizzo 0x9D200 e il settore contenente la default command line all’indirizzo 0x9D600 e aspetta un input dall’utente.*se e’ stata impostata una fallback command line questa verra’ copiata sul settore della default command line

Page 16: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

16Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

Se l’utente ha fornito un immagine Ram disk , questo file viene caricatosotto la fine della memoria fisica o comunque sotto i 16 Mb. L’indirizzo iniziale e’ abbassato al vicino inizio pagina per far in modo che l’area occupata dal Ram disk possa, successivamente, facilmente ritornare a far parte della memoria disponibile (free memory pool).Il limite dei 16 MB e’ dovuto al fatto che le funzioni del Bios usate per trasferire i dati in memoria sono limitate ad uno spazio di indirizzi di 24 bit.Successivamente il settore di boot del floppy e’ caricato all’indirizzo 0x90000 (in realta’ verra utilizzato solo per le informazioni di setup), la parte di setup e’ caricata all’indirizzo 0x90200 e il kernel a 0x10000. Durante questa fase il settore del map file e’ caricato all’indirizzo 0x9D000.Se l’immagine caricata e’ effettivamente l’immagine di un kernel, il suo codice di setup prende il controllo.Se invece viene caricato un differente sistema operativo le operazioni sono un po’ piu’ complicate: il chain loader viene caricato a 0x90200 e il settore di boot del sistema operativo viene caricato a 0x90400. Il chain loader sposta la tabella delle partizioni (caricata a 0x903BE come parte del chain loader) all’indirizzo 0x00600 e il settore di boot a 0x07C00.Dopodiche’ il controllo passa al settore di boot.

Page 17: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

17Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

I chain loaders che consentono il boot da un secondo disco installano anche una piccola funzione che intercetta le chiamate del bios e modifica il numero dei dischi all’inizio della memoria.Il boot loader secondario visualizza la seconda “L” dopo essere partito e una “O” dopo aver caricato la descriptor table e la default command line.

Page 18: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

18Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

Vediamo i riferimanti tra i files di lilo

Boot sector

Default command line

Imagedescriptors

Primary boot loader

Secondaryboot loader

map

boot.b

Page 19: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

19Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

Il settore di boot contiene il boot loader primario, l’indirizzo del settore contenente la linea di comando di default, gli indirizzi della tabella di descrizione e l’indirizzo del settore del boot loader secondario. Il settore di boot e’ copiato dal file boot.bll map file e’ costituito da sezioni e da speciali settori di dati . Ogni sezione copre un numero definito di settori del disco, inoltre contiene gli indirizzi dei settori degli altri file.I cinque settori all’inizio del map file sono speciali: il primo settore contiene la linea di comando di default, i due successivi settori contengono la tavola di descrizione dell’immagine di boot, il quarto settore contiene tutti zero e viene mappato ogni qualvolta un file contiene una “hole”. Il quinto settore contiene la tabella di traduzione della tastiera.

linea dicomando di

default

descrittori

descrittori

zero

traduzionetastiera

sezioni....

Page 20: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

20Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

Un immagine del kernel e’composta semplicemente da una sequenza di settori che devono essere caricati. La sezione del map file contiene anche un settore con una linea di comando fallback e un settore con i parametri delle opzioni di linea.Un immagine Ram disk puo’ essere caricata opzionalmente tramite una seconda map section.

descrittore

fallback

opzioni

sezione di map file

Kernelimage

Page 21: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

21Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

La default command line nel map fileIl primo settore del map file e’ riservato alla linea di comando di default. Fino a che l’utente, premendo lo shift, non invoca il prompt o una linea di comando fornita esternamente e’ presente, la linea di default viene interpretata come se fosse stata digitata da tastiera.I primi due byte del primo settore del map file devono contenere il magic number DC_MAGIC (0xF4F2), sono seguiti da una stringa NUL terminated della lunghezza massima di 510 byte. Occorre notare che il boot loader limita la lunghezza delle linee di comando, dopo aver rimosso gli spazi duplicati, a 78 caratteri.La linea di comando puo’ essere disabilitata sia nascondendo il Magic number sia usando un NUL byte come linea si comando.

Page 22: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

22Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

Come si costruisce la linea dei parametriIl kernel e’ in grado di processare i parametri che vengono forniti tramite il boot loader.La stringa dei parametri e’ una stringa NUL-terminated di tipo ASCII che contiene parole separate da spazi o coppie del tipo variabile=valore.Per poter passare al kernel la stringa di parametri occorre settare i seguenti descrittori:0x90020 il magic number 0xA33F0x90022 l’offset del primo byte della linea di parametri relativa a 0x90000.Il boot loader compone la linea di parametri partendo dalla linea di comando, dal settore delle opzioni, e da alcuni prefissi generati internamente (tipicamente auto e BOOT_IMAGE=)

Page 23: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

23Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

Nomeimmagine

Opzioni della linea di comando

Linea di comando

Prefisso Nomeimmagine

Opzioni statiche Opzioni della linea diStringa di parametri

passati al kernel

Opzioni statiche

Settore delle opzioni

Esempio:Linea di comando: vmlinuz root=802Settore delle opzioni: root=801 rosi ottiene: BOOT_IMAGE=vmlinuz root=801 ro root=802dal momento che la linea delle opzioni puo’ essere sovrascritta. la prima opzione root e’ ignorata dal kernel

Page 24: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

24Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

Interfaccia esterna:Lilo e’ in grado di ricevere la propria linea di comando da un programma che ha eseguito precedentemente il boot.

Keyboard translationLa pressione dei tasti della tastiera di un pc genera quelli che in gergo vengono definiti “scan codes” che non sono altro che numeri chiave. Per default il Bios assume che la tastiera abbia un layout US e traduce lo scan codes ricevuto nel character codes relativo al carattere che e’ stampigliato sul tasto che e’ stato premuto. Al momento del boot, Lilo ha accesso ai servizi forniti dal Bios e di conseguenza riceve i character codes di una tastiera US. La keyboard translation si occupa quindi di rimappare questi character codes con quelli relativi al layout della tastiera in uso.

Page 25: Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.

Dipartimento di Informatica e Scienze dell’Informazione

25Corso di SISTEMI OPERATIVI

Inside LiLoInside LiLo

LiLo ottiene le informazioni del layout della tastiera puntando alla keyboard translation table usata da Linux (/usr/lib/kbd/keytables).Il programma keytab-lilo.pl leggendo il file precedente e’ in grado di generare la Keyboard translation da inserire nel map installer.Per convenzione il file binario generato da keytab-lilo.pl e’ inserito in /boot/nome.ktl (Keyboard Table for Linux).Ad esempio per una tastiera italiana si puo’ procedere come segue:keytab-lilo.pl italian >/boot/italian.ktl