|
Conoscere la sequenza di avvio può essere utile a orientare
le indagini in caso di difficoltà
Questo capitolo può soddisfare alcune curiosità, ma
ha comunque uno scopo del tutto pratico: aiutarvi a uscire d’impaccio
quando qualcosa va storto durante l’installazione di XP. Con
tutta probabilità non avrete difficoltà a intallare
XP su PC moderni e senza fronzoli, ma ogni volta che utilizzate hardware
vecchio di qualche anno e componenti non comuni, il rischio è
in agguato.
Se l’installazione si blocca con un errore o con uno schermo
nero, sapere in che punto si è bloccato è di aiuto per
scoprire le cause. Potete usare le informazioni disponibili per fare
ricerche on line; Internet offre un gran numero di documenti (più
i messaggi sui forum) sui problemi con Windows, ma per trovarli non
basta cercare “Windows non funziona” con Google. Il vostro
motore di ricerca avrà bisogno di un input più preciso,
come “setup non riparte in modo grafico” o “setup
di Windows XP non risponde” (tradottto possibilmente in inglese).
La sequenza in breve
Prima di esaminare più in dettaglio la sequenza di caricamento
del sistema operativo, vediamo un breve sommario delle principali
fasi che intercorrono tra l’accensione del computer e il logon
dell’utente (con inserimento di nome utente e password). Come
per Windows 2000, anche per XP i passi iniziali sono il Power On
Self Test (POST, il test diagnostico eseguito dal BIOS all’accensione
del computer), la ricerca del disco di partenza, l’esecuzione
del boot loader (il programma che carica il sistema operativo),
la selezione del sistema operativo (possono essercene più
di uno installati), il rilevamento dell’hardware, la selezione
di un profilo hardware, il caricamento del kernel, l’inizializzazione
del kernel e il logon dell’utente.
Il BIOS (Basic Input Output System) comprende, in una memoria di
sola lettura (ROM, per la precisione EEPROM, una ROM cancellabile
e riprogrammabile elettronicamente), i programmi diagnostici, le
routine di avvio del computer e le funzioni di base per accedere
ai sottosistemi di I/O del computer. Essendo una combinazione di
hardware e software, i programmi contenuti in una ROM prendono il
nome di firmware (o anche di microcodice).
Dall’accensione al boot loader
Dopo aver eseguito il test diagnostico, la routine del POST legge
la configurazione del PC nella memoria CMOS (Complementary Metal
Oxide Semiconductor) sulla scheda madre e ogni adattatore dotato
di BIOS (per es. i controller dischi e video) esegue il proprio
diagnostico. Questo è il momento in cui, se ci sono problemi,
sentite una serie di bip dall’altoparlante del PC; il loro
numero indica l’area del problema.
Completato il POST, il BIOS cerca il disco di sistema, seguendo
l’ordine specificato nel setup del BIOS, per esempio floppy,
CD-ROM, primo disco IDE e via dicendo. Se non sono inseriti floppy
e CD, il BIOS legge il primo settore del primo hard disk, che contiene
il Master Boot Record (MBR) e la partition table (tabella delle
partizioni). Il BIOS carica in memoria l’MBR e passa il controllo
al codice che vi è contenuto. Questo a sua volta esamina
la partition table alla ricerca della partizione di sistema. Quando
l’ha trovata, carica il suo primo settore e lo esegue.
Il primo settore della partizione di sistema è il boot sector
(settore di boot), contenente il codice minimo per dare inizio al
caricamento del sistema operativo. Mentre l’MBR di solito
non dipende dall’OS, il boot sector dipende dal sistema operativo
e dal file system (la struttura e le modalità con cui vengono
creati e utilizzati i file) adottato.
Il codice del boot sector scopre qual è il file system della
partizione, carica in memoria il boot loader NTLDR dalla directory
principale della partizione e gli passa il controllo. Il boot loader
(caricatore che permette l’avvio del sistema) è il
principale programma di caricamento del sistema operativo. Sui PC
x86 la partizione di sistema deve essere collocata sul primo hard
disk. Da notare che la partizione di sistema non coincide necessariamente
con la partizione di boot (quella che contiene i file del sistema
operativo), che può essere diversa e anche situata su un
altro disco.
Il boot loader permette di scegliere da un menu il sistema operativo
da avviare, quindi carica i file dell’OS dalla partizione
di boot. Se c’è solo XP installato, NTLDR procede direttamente
al suo caricamento; se ci sono più installazioni di XP o
di altri OS, vi presenta un menu tra cui scegliere l’OS da
avviare.
Il boot loader NTLDR
Premettiamo che, per partire, XP (come NT e 2000) richiede la presenza di una serie di file, tra cui NTLDR, Boot.ini, Ntdetect.com (più Bootsect.dos se avete anche DOS o Windows 3.1/9x/Me e Ntbootdd.sys per certi dispositivi SCSI) nella directory principale del disco di sistema, Ntoskrnl.exe e Hal.dll in SYSTEM32, la sezione \SYSTEM del registro di sistema in System32\Config e i device driver in System32\Drivers.
Quando viene eseguito, NTLDR commuta il processore da real mode (la modalità di partenza a 16 bit che emula una CPU 8086) a protected mode a 32 bit (la modalità del processore 80386 che supporta memoria virtuale e multitasking); infatti NTLDR è un programma a 32 bit. Poi avvia un mini file system appropriato per il file system della partizione (FAT o NTFS). Quindi legge il file Boot.ini nella partizione di sistema e, se ci sono più OS installati, visualizza il menu di boot. Lo schermo che appare è detto boot loader screen. Se scegliete un OS diverso da NT/2K/XP, NTLDR carica il file Bootsect.dos e gli trasferisce il controllo; l’OS verrà avviato normalmente, perché Bootsect.dos contiene una copia del boot sector necessario al suo avvio. Se l’OS selezionato (o l’unico installato) è NT/2K/XP, NTLDR esegue Ntdetect.com per raccogliere informazioni sull’hardware della macchina.
Il menu di boot indica l’OS di default che verrà avviato in assenza di risposta; inoltre offre di premere F8 per risolvere problemi o per scegliere una delle opzioni di avvio avanzate, come la modalità provvisoria e l’abilitazione del boot logging (registrazione di tutte le operazioni eseguite durante l’avviamento, utile a scopo diagnostico.
Ntdetect.com si comporta in modo diverso su 2000 e XP rispetto a NT, che era privo dei sottosistemi Plug and Play Manager e Power Manager. Se l’OS 2K/XP installato utilizza solo il profilo hardware di default, NTLDR continua il processo di avvio caricando il kernel di sistema (Ntoskrnl.exe); se avete definito più profili hardware (utili ad esempio quando spostate un notebook da una rete all’altra), appare un menu per scegliere il profilo da utilizzare. Se avete appena avuto un problema potete anche scegliere di riavviare con la configurazione salvata dopo l’ultimo boot andato a buon fine, altrimenti verrà usata la configurazione salvata nel registro di sistema l’ultima volta che avete chiuso Windows.
|