INDIETRO SU AVANTI

Concetti puri di file e di processo


La filosofia di base del sistema operativo UNIX vede l'esistenza di due componenti da trattare: i files e i processi.

Questi sono concetti fondamentali che vengono trattati dal kernel nel modo piu' basilare possibile.

Un file e' una sequenza di byte, da 0 ad infiniti bytes. Solitamente un file risiede in un file system su disco, ma questo non e' necessario: un file puo' essere costituito dai bytes inviati o ricevuti da un terminale, inviati ad una stampante, trattati da un protocollo di comunicazione, ecc.

Il kernel non definisce il significato dei byte contenuti in un file, da' solo supporto al suo trattamento da parte di processi. Un file puo' contenere caratteri, codificati in ASCII o altri codici, puo' contenere dati, puo' essere un eseguibile per una certa architettura di calcolatore. Basicamente e' solo una sequenza di bytes. Il mezzo su cui vengono storati i bytes puo' richiedere che l'unita' minima di immagazzinamento sia un blocco (p.es. dischi: blocchi da 512 bytes).

Pertanto un file viene visto puramente come un oggetto, passivo.

Un processo e' invece un soggetto, una componente attiva delle operazioni del kernel. La similitudine con un ente 'vivo' viene portata avanti molto dalla filosofia UNIX: si parla di processi che nascono, eseguono, cooperano, muoiono, quasi avessero veramente una volonta' intrinseca.

Un processo e' naturalmente completamente deteministico, e' stato programmato volutamente in un certo modo e non puo' prendere iniziative al di fuori del suo scopo definito.

In un determinato istante UNIX esegue un numero anche elevato di processi: molti sono processi utente, programmati appositamente come applicativi. Altri sono processi di sistema: le stesse routines interne del kernel vengono raggruppate a simulare entita' individuali, processi, che operano nello spazio interno del kernel.