Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 1242

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>The Unix and Internet Fundamentals HOWTO: Cosa succede quando si accende un computer?</TITLE>
 <LINK HREF="Unix-Internet-Fundamentals-HOWTO-5.html" REL=next>
 <LINK HREF="Unix-Internet-Fundamentals-HOWTO-3.html" REL=previous>
 <LINK HREF="Unix-Internet-Fundamentals-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="Unix-Internet-Fundamentals-HOWTO-5.html">Avanti</A>
<A HREF="Unix-Internet-Fundamentals-HOWTO-3.html">Indietro</A>
<A HREF="Unix-Internet-Fundamentals-HOWTO.html#toc4">Indice</A>
<HR>
<H2><A NAME="s4">4. Cosa succede quando si accende un computer?</A></H2>

<P>Un computer senza un programma in esecuzione &egrave; soltanto un ammasso
inerte di componenti elettronici. La prima cosa che un computer deve
fare quando viene acceso &egrave; far partire un programma speciale chiamato
<A NAME="os"></A> <EM>sistema operativo</EM>. Il compito del sistema
operativo &egrave; aiutare gli altri programmi del computer a funzionare,
gestendo gli intricati dettagli relativi al controllo dell'hardware
del computer.
<P>Il processo di avvio del sistema operativo si chiama 
<A NAME="boot"></A> 
<EM>boot</EM> (in origine era <EM>bootstrap</EM> e alludeva alla
difficolt&agrave; di tirarsi su da solo, ``by your bootstraps'').  Il vostro
computer sa come avviarsi perch&eacute; le istruzioni per il boot sono
incorporate in uno dei suoi chip, il BIOS (Basic Input/Output System).
<P>Il chip BIOS gli dice di cercare uno speciale programma chiamato
<EM>boot loader</EM> (quello di Linux si chiama LILO) che si
trova in un posto predefinito del disco fisso con numero pi&ugrave; basso (il
<EM>disco di avvio</EM>).  Il compito del boot loader &egrave; far partire il
sistema operativo vero e proprio.
<P>Per compiere quest'ultima operazione il loader cerca un
<EM>kernel</EM>, lo carica in memoria e lo fa
partire. Quando avviate Linux e vedete ``LILO'' sullo schermo, seguito
da una riga di puntini, vuol dire che sta caricando il kernel. (Ogni
puntino significa che ha caricato un altro 
<A NAME="diskblock"></A> <EM>blocco del disco</EM> di codice kernel).
<P>(Vi potreste chiedere come mai il BIOS non carica il kernel
direttamente: perch&eacute; questo processo a due stadi con il boot loader?
Beh, il BIOS non &egrave; molto intelligente. In effetti &egrave; proprio stupido, e
Linux non lo usa pi&ugrave; dopo la fase di avvio. Fu scritto in origine per
i PC primitivi a 8 bit con dischi poco capienti e proprio non riesce
ad accedere a una parte abbastanza grande del disco per caricare
direttamente il kernel. La fase del boot loader consente anche di far
partire diversi sistemi operativi da posti diversi del vostro disco,
nella improbabile circostanza che Unix non vi soddisfi a sufficienza.)
<P>Dopo essere partito, il kernel si guarda in giro, trova il resto
dell'hardware e si prepara a far girare i programmi. Fa tutto questo
guardando non nelle ordinarie locazioni di memoria ma piuttosto alle
<EM>porte I/O</EM>, speciali indirizzi bus che probabilmente hanno
schede controller di dispositivi che sono in ascolto in attesa di
comandi. Il kernel non cerca a caso; ha molta conoscenza innata su
cosa &egrave; probabile trovare dove, e su come i controller rispondono se
sono presenti. Questo processo si chiama
<EM>autorilevamento</EM>.
<P>La maggior parte dei messaggi che vedete durante la fase di avvio sono
del kernel che fa l'autorilevamento del vostro hardware attraverso le
porte I/O, riconosce cosa ha a sua disposizione e si adatta al vostro
computer. Il kernel di Linux &egrave; estremamente bravo in questo, meglio
della maggior parte degli altri Unix e <EM>molto</EM> meglio del DOS o
di Windows. Infatti, molti linuxiani della prima ora pensano che
l'intelligenza del rilevamento all'avvio di Linux (che lo rende
relativamente facile da installare) sia stata una delle principali
ragioni che lo hanno fatto sfondare dal mucchio di esperimenti di
Unix liberi, attraendo una massa critica di utenti.
<P>Ma avere il kernel del tutto caricato e funzionante non &egrave; la fine
del processo di boot; ne &egrave; solo il primo stadio (a volte chiamato
<EM>run level 1</EM>, livello di esecuzione 1). A questo punto il
kernel passa il controllo a un processo speciale chiamato `init' che
esegue diverse attivit&agrave; comuni.
<P>Il primo compito del processo init &egrave; assicurarsi che i vostri dischi
siano a posto. I file system dei dischi sono fragili: se vengono
danneggiati da un malfunzionamento hardware o da un'improvvisa
mancanza di elettricit&agrave;, ci sono buoni motivi per compiere alcune
operazioni di riaggiustamento prima che il vostro Unix sia tutto a
posto. Parleremo pi&ugrave; approfonditamente di questo pi&ugrave; avanti, a
proposito di 
<A HREF="Unix-Internet-Fundamentals-HOWTO-11.html#fsck">come i file system si possono danneggiare</A>.
<P>Il passo successivo del kernel &egrave; far partire diversi
<EM>demoni</EM>. Un demone (o daemon) &egrave; un programma quale
uno spooler di stampa, un programma che attende di ricevere posta in
arrivo oppure un server WWW che rimane latente in sottofondo,
aspettando qualcosa da fare. Questi programmi speciali devono spesso
coordinare diverse richieste che rischiano di entrare in conflitto.
Sono demoni
perch&eacute; spesso &egrave; pi&ugrave; facile scrivere un programma che gira
costantemente e viene a conoscenza di tutte le richieste piuttosto che
cercare di assicurarsi che un gruppo di copie (che girano tutte
contemporaneamente, con ciascuna che processa una richiesta) non si
ostacolino a vicenda.  La particolare serie di demoni che il vostro
sistema fa partire pu&ograve; variare, ma quasi certamente include uno
spooler di stampa (un demone che fa da `portinaio' per la vostra
stampante).
<P>Una volta che tutti i demoni sono avviati ci troviamo al <EM>run level
2</EM>. Il prossimo passo &egrave; prepararsi per gli utenti. Init avvia una
copia di un programma chiamato <CODE>getty</CODE> per
controllare la vostra console (e forse altre copie per controllare le
porte seriali dial-in). Questo programma &egrave; quello che emette il prompt
<CODE>login</CODE> alla vostra console. Siamo ora al <EM>run level 3</EM>,
pronti per fare il log in e lanciare i programmi.
<P>
<HR>
<A HREF="Unix-Internet-Fundamentals-HOWTO-5.html">Avanti</A>
<A HREF="Unix-Internet-Fundamentals-HOWTO-3.html">Indietro</A>
<A HREF="Unix-Internet-Fundamentals-HOWTO.html#toc4">Indice</A>
</BODY>
</HTML>