Capitolo 2 Struttura di Unix

Sommario
2.1 Il sistema operativo
2.2 Il file system
2.3 Directory, file e inode Unix
2.4 Programmi Unix

2.1 Il sistema operativo

Unix è un sistema operativo a strati. Lo strato più interno è l'hardware il quale fornisce servizi al OS. Il sistema operativo (OS), riferito in Unix come al kernel, interagisce direttamente con l'hardware e fornisce i servizi ai programmi utente. I programmi utente non necessitano di conoscere informazioni sull'hardware. Devono solo sapere come interagire con il kernel ed è quest'ultimo a fornire i servizi richiesti. Uno dei più grandi fattori che ha contribuito alla richiesta di Unix da parte dei programmatori è stato che molti programmi utente corretti sono indipendenti dall'hardware sottostante, e ciò li rende facilmente trasportabili su nuovi sistemi.

I programmi utente interagiscono con il kernel attraverso un set di system call (chiamate di sistema) standard. Queste system call chiedono dei servizi, servizi che saranno forniti dal kernel. Così i servizi possono includere un accesso a un file: aprire, chiudere, leggere, scrivere un file, creare un link o eseguire un file; creare o aggiornare degli account (informazioni relative ad un utente come nome, password, ecc.); cambiare il proprietario di un file o di una directory; spostarsi in una nuova directory; creare, sospendere o terminare un processo; abilitare l'accesso a un dispositivo hardware e impostare dei limiti sulle risorse di sistema.

Unix è un sistema operativo multi-user (multi-utente) e multi-tasking (multi-processo). Si possono avere molti utenti “loggati” simultaneamente nel sistema (multi-user), ognuno dei quali esegue alcuni programmi (multi-tasking). È compito del kernel mantenere ogni processo e ogni utente separato e regolare l'accesso all'hardware di sistema, inclusa la cpu, la memoria, il disco e altri dispositivi di I/O.

FIGURA 2.1   Struttura di un sistema Unix

 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|                                       |
|             Programmi                 |
|   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _   |
|  |                                 |  |
|  |            Kernel               |  |
|  |   _ _ _ _ _ _ _ _ _ _ _ _ _ _   |  |
|  |  |        Hardware           |  |  |
|  |  |_ _ _ _ _ _ _ _ _ _ _ _ _ _|  |  |
|  |                                 |  |
|  |         System Call             |  |
|  |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|  |
|                                       |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.