Nella lezione precedente abbiamo compreso che il SO ha unimportanza
fondamentale, perché si addossa la responsabilità di gestire il
calcolatore liberandoci dallobbligo di conoscerne la struttura
interna.
Prima di esaminare le caratteristiche dei SO, spendiamo qualche
parola su quello che avviene al nostro PC al momento dellaccensione,
ossia durante la cosiddetta fase di boot, facendo riferimento
alla piattaforma hardware i386 (Intel) non potendo avere accesso
ad altri tipi di architettura.
Per prima cosa il processore carica da una ROM (Read Only
Memory memoria a sola lettura) il firmware della
scheda madre, ossia un programma che provvede alla gestione dei
primi istanti di funzionamento della macchina, fornendo una serie
di funzionalità che verranno sfruttate da programmi successivi per
completare lavviamento.
Guardando con attenzione le scritte che vengono mostrate a video
non appena si accende il computer, possiamo vedere che il bios
(cioè il firmware degli elaboratori i386) esegue alcuni test, riconoscendo
lhard disk e altre periferiche collegate alla scheda madre:
questa fase prende il nome di post, ovvero power on self
test.
Al termine di questa fase, il bios carica il master boot record
(spesso indicato con lacronimo MBR), costituito da un settore
localizzato nei primi 512 byte dellhard disk, contenente,
tra le altre cose, il programma deputato al caricamento del sistema
operativo, il cosiddetto boot loader.
Nel caso di un sistema contenente un solo SO, questo viene avviato
automaticamente, spesso mostrando a video delle informazioni che
permettono di sapere quali operazioni esso sta compiendo; se il
nostro sistema contiene più sistemi operativi, un boot loader opportunamente
configurato presenterà un menu o un prompt che ci permette di specificare
quale di essi avviare.
Ogni SO ha il proprio boot loader (ad es. il lilo di Linux),
ma non tutti consentono il multiboot, cioè la possibilità
di poter avviare SO differenti.
Ad es. i sistemi basati su MS-DOS, come i diffusissimi Windows 9x,
permettono di installare un loader proprietario nellMBR (tramite
il comando fdisk /mbr), che non consente di indicare sistemi alternativi,
ma provvede semplicemente a caricare il boot sector di una
partizione indicata come attiva.
Per comprendere il meccanismo di avviamento di un SO, soffermiamoci sullorganizzazione di un hard disk, facendo riferimento alla figura 3.1.

Fig. 3.1. Organizzazione di un hard disk in due partizioni.
Un hard disk può essere logicamente suddiviso in partizioni,
ossia in porzioni dello spazio di memorizzazione trattate come unità
separate e costituite da un piccolo settore di avvio, il boot sector,
e da una frazione più o meno grande deputata a contenere i programmi
e i dati veri e propri.
La forma con cui una partizione viene organizzata dipende dal tipo
di file system che la gestisce.
Nel caso più semplice un hard disk è costituito da una sola partizione,
di cui programmi e dati condividono lo spazio; tuttavia una buona
prassi è quella di mantenere almeno due partizioni, una per il SO
e i programmi applicativi e una per i dati.
Il master boot record contiene una tavola delle partizioni,
che specifica il modo in cui sono partizionati tutti gli hard disk
connessi al sistema e gli attributi delle varie partizioni.
Tra le altre cose, una partizione può essere:
Attiva (serve al boot loader MS-DOS per sapere in quale partizione
si trova il SO da avviare; può esserci una sola partizione attiva);
Bootable (se contiene un sistema operativo avviabile)
Nascosta (non viene resa visibile dal SO allutente)
Quando si configura un boot loader per il multiboot, si associa
ad ogni voce di SO da avviare la relativa partizione e il suo programma
di caricamento.
Allavvio il SO esegue una serie di controlli e procedure dinizializzazione
che possono prendere anche parecchi secondi, dopodiché rimane sempre
attivo, fornendo un ambiente allinterno del quale le applicazioni
vengono di volta in volta aperte e chiuse.
Dalla prossima puntata cominceremo a conoscere i concetti e le teorie
che stanno dietro alla progettazione di un SO.
Torna all'indice Generale del corso di Corso di Sistemi Operativi di Software Planet