Gestione della memoria secondaria
La memoria secondaria è la parte di memoria che normalmente non è volatile. I supporti di memorizzazione sono vari, tra cui l'hard disk (o disco rigido), floppy disk, cd e dvd, memorie usb e zip disk. Questi supporti mantengono le informazioni in modo permanente, cioè, allo spegnimento del computer i dati rimangono salvati.
Il sistema operativo ha il compito di gestire la memoria secondaria e specificamente:
- Controlla tutte le fasi di scrittura/lettura dei settori, per rilevare qualsiasi errore
- Controlla che i processi non scrivano in zone riservate al sistema operativo o ad altri programmi
- Controlla che i processi non modifichino la memoria virtuale di altri processi
- Mette a disposizione dell'utente una visione astratta della memoria.
Rappresentazione della memoria
[modifica]La visione astratta della memoria è possibile grazie al file system. Il file system è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica, la manipolazione, la navigazione. Il file system viene inoltre utilizzato per memorizzare i dati che servono a controllare l'accesso a ciascun file da parte dei processi.
Nel corso del tempo sono state prodotte parecchie tipologie di file system, con caratteristiche abbastanza variabili, in base alla tipologia di computer a cui erano rivolti, dai file system semplificati per computer monoutente (il FAT dell'MS-DOS) fino a raffinati file system per server, pensati per un ambiente multiutente (es. EXT2 di Linux). Alcuni file system hanno anche funzionalità crittografiche, che rendono possibile aggiungere protezione crittografica ai file di ciascun utente.
I criteri di sicurezza nell'accesso alle operazioni sui file system sono in genere basati su liste di controllo di accesso (access control list o ACL) o capabilities. Si è scoperta qualche decina di anni l'inaffidabilità delle ACL, e per questo motivo i sistemi operativi moderni tendono a usare il meccanismo delle capabilities. I file system commerciali usano ancora le ACL.
Una ACL permette di definire per ciascun elemento del file system di quali permessi (lettura, scrittura, modifica ecc.) dispone ciascun utente che accede al sistema.