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

Slides:



Advertisements
Presentazioni simili
1 Introduzione ai calcolatori Parte II Software di base.
Advertisements

AVVIARE IL COMPUTER WINDOWS ‘98 Queta fase è definita BOOTSTRAP
Programmazione assembler
Linux la gestione dei dischi. Agenda I nomi delle unità fisiche in ambiente Linux Partizioni e associazione tra file system e unità Amministrare le unità
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
Hard disk.
1 Approfondimenti su Linux. Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dellInformazione 2 La storia Il sistema operativo Linux è
File System Cos’è un File System File e Directory
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
1 Come si avvia un computer... Dove è contenuto il SO ? Come si attiva?
1 System Call per Comunicazione tra Processi Pipe.
Giuseppe Fabio Fortugno.
Realizzazione del file system
Realizzazione del file system
Laboratorio Informatico
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
I file l I File sono l unità base di informazione nellinterazione tra utente e sistema operativo l Un file e costituito da un insieme di byte attinenti.
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Caratteri e stringhe di caratteri
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
File.
OPEN OFFICE e IMPRESS Masucci Antonia Maria.
Windows 2000 supporta i seguenti file system:
Introduzione agli stream e alle classi
Struttura dei sistemi operativi (panoramica)
I Thread.
memoria gestita staticamente:
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
HARD DISK Concetti di Base.
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME … Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
I File.
Informatica per medici
DBMS ( Database Management System)
WINDOWS XP PRIMI PASSI. Caratteristiche del sistema Le caratteristiche di base del PC (tipo e versione del sistema operativo installato, tipo e velocità
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
1 Installazione da rete Introduzione Configurazione del server NFS Cosa serve sul client Configurazione kickstart.
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
Corso base per l’utilizzo del PC e della posta informatica
STRUTTURA GENERALE DI UN ELABORATORE
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
2. Formattare il floppy disk Attualmente, tutti i floppy in commercio sono già formattati, ma può capitare di dover eseguire questa operazione sia su.
Architettura del calcolatore
Il Sistema Operativo (1)
Il Sistema Operativo: il File System
WORD Lezione n. 1 Aprire il programma Aprire un documento esistente
Di Luca Santucci 5° Programmatori
Lezione 1 Approccio al sistema operativo : la distribuzione Knoppix Live Cd Knoppix 3.6 Interfacce a caratteri e grafica: console e windows manager File.
Installazione Come tecnico, si potrebbe aver necessità di effettuare una installazione pulita di un sistema operativo. L'esecuzione di una installazione.
MS-DOS è il sistema operativo, Come praticamente tutti i sistemi operativi per i computer del periodo, l'MS- DOS era un sistema operativo mono utente.
Formattazione, Partizioni e dischi
Autori:  Gazzola Alex  Cassol Simone  Kawkab Wassim Data: 14/04/2014 Classe: 3° INF.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Corsi di Laurea in Biotecnologie
Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 Il master boot record Il master boot record e’ completamente contenuto.
Microsoft Access Chiavi, struttura delle tabelle.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Alcuni esempi di dispositivi Disco rigido, RAID, video.
Primi passi con Easy Reg 1.23: installazione del software
LA FILOSOFIA DEL SAS Concepito per essere facilmente accessibile.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
Installazione: Kubuntu 8.04 corso linux 2008 RiminiLUG presenta Guida passo-passo all'installazione di Kubuntu questa guida vale anche per l'installazione.
I L SO MS DOS … una breve guida…. C OS ’ È UN S ISTEMA OPERATIVO Un sistema operativo (SO) è un insieme di programmi che agisce come intermediario tra.
Vengono detti memorie di massa tutti i supporti (dischi e nastri) su cui vengono registrati dati, documenti e programmi che si vogliono conservare, sono.
Transcript della presentazione:

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 1 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 a 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 che in questo caso viene eseguita a seguito di un POST ridotto. 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.Nel caso invece che non venga trovato un settore di boot il codice contenuto all’interno dell’ INT 19 cerca di leggere l’MBR del primo hard disk

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 2 Il master boot record Una 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, come vedremo piu’ avanti, 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) 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

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 3 Il master boot record La sequenza di ricerca del boot sector, chiamata anche sequenza di boot, generalmente e’ configurabile tramite il setup del Bios. Alcuni indirizzi dell’MBR Il codice dell’ MBR inizia all’offset 0000 I messaggi dell’ MBR iniziano all’offset 008b La partition table inizia all’offset 01be La firma (signature)e’ all’offset 01fe

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 4 Analisi di un MBR “standard” creato dal comando Dos “fdisk /mbr” Absolute Sector 0 (Cylinder 0, Head 0, Sector 1) A B C D E F 0000: FA 33 C0 8E D0 BC 00 7C 8B F F FB FC |..P.P : BF B F2 A5 EA 1D BE BE : B C E 80 3C C 83 C6 10 FE...<.t..<.u : CB 75 EF CD 18 8B 14 8B 4C 02 8B EE 83 C6 10 FE.u......L : CB 74 1A 80 3C F4 BE 8B 06 AC 3C B.t..<.t.....<.t. 0050: 56 BB B4 0E CD 10 5E EB F0 EB FE BF V ^ : BB 00 7C B CD 13 5F 73 0C 33 C0 CD 13..|...W.._s : 4F 75 ED BE A3 06 EB D3 BE C2 06 BF FE 7D 81 3D Ou }.= 0080: 55 AA 75 C7 8B F5 EA 00 7C E C U.u.....|..Inval 0090: F 6E id partition tab 00A0: 6C F C 6F E 67 le.Error loading 00B0: 20 6F E operating syste 00C0: 6D 00 4D E F m.Missing operat 00D0: 69 6E D ing system E0: : fino a 01A0: | 01B0: C0: B 7F BF FD 3F C1 40 5E D0: E0: F0: AA U A B C D E F

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 5 Analisi di un MBR standard I primi 139 bytes (da 00h a 8Ah) dei 512 bytes del settore sono composti da codice eseguibile e i sucessivi 80 bytes (da 8Bh a DAh) contengono messaggi di errore. Gli ultimi 66 bytes del settore contengono i 64 bytes della tabella di partizione (da 1BEh a 1FDh). I dati contenuti all’interno dell’area della tabella dipenderanno dalle dimensioni, dal tipo di partizione e dal tipo di file system all’interno della partizione; nulla di simile e’ leggibile in questa tabella, in quanto il comando fdisk /mbr che l’ha creata e’ ideato appositamente per sovrascrivere la tabella delle partizioni azzerando tutti i valori. Il settore termina con l’ID AA55h, chiamato anche magic number (sui sistemi con CPU Intel le parole esadecimali sono scritte iniziando con i byte meno significativi)Durante il POST il bios fa una ricerca del magic number e, nel caso non venga trovato, visualizza un messaggio di errore del tipo “Drive not ready” I rimanenti 227 bytes (da DBh a 1BDh) sono padding consistente in tutti zero.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 6 Analisi di un MBR standard Un esempio di tabella di partizioni 07BE C F 3F C4 3F E 0C ??.? D0 01 C5 05 3F 7F 47 C0 1E-0C F E F 7F E BD AH.?.S F F BF 0F 00 EB B AA AT.? U. Che tradotta tramite l’utilizzo di un disk editor in grado di interpretarla risulta corrispondere a: Partition Active Starting Loc Ending Loc Relative Number of Type Boot Cyl Head Sec Cyl Head Sec sectors sectors DOS FAT-16 Yes Extended No LINUX Swap No LINUX Ext2FS No

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 7 Analisi di un MBR standard

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 8 Analisi di un MBR standard

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 9 MBR demonstration program

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 10 Un esempio di gestore di boot: LiLo LInux 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 operativi Lilo 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 kernels 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 desiderato Lilo puo’ accedere alle seguenti parti del sistema: -la partizione di root spesso importante perche’ contenente /boot e i kernels

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 11 Un 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 loader Occorre 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 12 Un esempio di gestore di boot: LiLo Lilo non puo essere installato nelle segunti locazioni: -nel settore di boot di un floppy disk o in una partizione primaria di 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

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 13 Un 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 originale I passi che occorre seguire per questa configurazione sono: dd if= /dev/hda of=/fd/MBR bs=512 count=1

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 14 Un esempio di gestore di boot: LiLo Un esempio di file di configurazione lilo.conf boot=/dev/hda2 map=/boot/map install=/boot/boot.b #prompt #timeout=50 restricted password= ‘pippo' message=/boot/message linear default=linux #image=/boot/vmlinuz image=/boot/vmlinuz label=linux read-only root=/dev/hda6 image=/boot/vmlinuz label=linux read-only root=/dev/hda6

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 15 Un esempio di gestore di boot: LiLo Restrizioni causate dal Bios Le piu’ comuni restrizioni che rigurdano Lilo sono la limitazione al numero di hard disk e l’incapacita’ di gestire numeri di cilindri superiori al 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 16 Un 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

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 17 Un 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 18 Un 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 19 Un 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 20 Inside LiLo settore di boot Come visto in precedenza il settore 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

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 21 Inside LiLo Se l’utente ha fornito un immagine Ram disk, questo file viene caricato sotto 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 0x 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 0x 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 22 Inside 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 23 Inside LiLo Vediamo i riferimanti tra i files di lilo Boot sector Default command line Image descriptors Primary boot loader Secondary boot loader map boot.b

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 24 Inside 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.b ll 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 di comando di default descrittori zero traduzione tastiera sezioni....

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 25 Inside 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 Kernel image

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 26 Inside LiLo La default command line nel map file Il 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 27 Inside LiLo Come si costruisce la linea dei parametri Il 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 0xA33F 0x90022 l’offset del primo byte della linea di parametri relativa a 0x 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=)

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 28 Inside LiLo Nome immagine Opzioni della linea di comando Linea di comando Prefisso Nome immagine Opzioni statiche Opzioni della linea di Stringa di parametri passati al kernel Opzioni statiche Settore delle opzioni Esempio: Linea di comando : vmlinuz root=802 Settore delle opzioni : root=801 ro si ottiene : BOOT_IMAGE=vmlinuz root=801 ro root=802 dal momento che la linea delle opzioni puo’ essere sovrascritta. la prima opzione root e’ ignorata dal kernel

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 29 Inside LiLo Interfaccia esterna: Lilo e’ in grado di ricevere la propria linea di comando da un programma che ha eseguito precedentemente il boot. Keyboard translation La 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.

Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dell’Informazione 30 Inside 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