Corso di Sistemi Operativi

Avvio di un SO

 

Nella lezione precedente abbiamo compreso che il SO ha un’importanza fondamentale, perché si addossa la responsabilità di gestire il calcolatore liberandoci dall’obbligo di conoscerne la struttura interna.
Prima di esaminare le caratteristiche dei SO, spendiamo qualche parola su quello che avviene al nostro PC al momento dell’accensione, 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 l’avviamento.
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 l’hard 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 l’acronimo MBR), costituito da un settore localizzato nei primi 512 byte dell’hard 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 nell’MBR (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 sull’organizzazione 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 all’utente)
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.
All’avvio il SO esegue una serie di controlli e procedure d’inizializzazione che possono prendere anche parecchi secondi, dopodiché rimane sempre attivo, fornendo un ambiente all’interno 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