Ad esempio, come collochiamo la gestione della memoria rispetto a quella del processore? Potremmo identificare il processore come entità primitiva di un calcolatore; a questo punto il gestore della memoria si dovrebbe appoggiare al gestore del processore per poter eseguire le proprie routine (allocazione degli spazi e relativo indirizzamento). Se però ci ritrovassimo in una situazione in cui un programma risiedente all'interno della CPU dovesse essere sospeso forzatamente per fare spazio ad uno più urgente, il gestore del processore dovrebbe far riferimento al gestore della memoria per poter mettere il programma da rimuovere in una locazione temporanea; ciò non è però possibile poichè uno strato non può essere a conoscenza degli strati a lui superiori.
Contraddizioni come queste sono molto frequenti, esse fanno parte delle prime difficoltà che si incontrano nella progettazione di architetture così complesse.
Questo è il principio che sta alla base della strutturazione di un Sistema Operativo. È grazie a questo strumento, l'astrazione, che è possibile passare da un insieme di fili percorsi da corrente ai programmi che popolano il nostro quotidiano. Se ci guardiamo attorno abbiamo moltissimi esempi di astrazione di un problema, si pensi al televisore e al relativo telecomando, al telefono e alla sua tastiera o al lettore di CD.
Il Sistema Operativo
Ora che ci siamo appropriati degli strumenti adatti per proseguire nel nostro cammino dobbiamo fare un passo indietro. In qualunque progetto prima di sviluppare i meccanismi e i criteri giusti da adottare è necessario definire bene ambiti e obiettivi.
La domanda che non ci siamo ancora posti è: "cosa vogliamo fare?"
Questo quesito nel nostro contesto è traducibile in: "che cos'è un Sistema Operativo?"
Definizione di Sistema Operativo
Come accade in molti settori non esiste una definizione generale, completa ed esauriente di Sistema Operativo. Prendiamo come esempio una macchina a controllo numerico e un computer palmare. Essi avranno Sistemi Operativi del tutto imparagonabili. Lo stesso discorso è fattibile riducendo il campo ai soli Personal Computer: c'è chi ne fa un uso prevalentemente da ufficio, chi utilizza intensamente programmi multimediali, chi ama giocare ai videogiochi; ovviamente potremmo portare altri innumerevoli esempi.
Risulta difficile persino definire cosa faccia parte di un Sistema Operativo e cosa vada identificato come software opzionale, molti limitano la definizione al solo kernel, altri includono l'intero pacchetto di software applicativi forniti dal rivenditore al momento dell'acquisto della macchina. La questione ha preso rilevanza anche dal punto di vista legale; si pensi all'azione promossa dal Dipartimento di Giustizia degli Stati Uniti nei confronti di Microsoft: l'accusa era di includere troppi software applicativi di default nel Sistema Operativo Windows (Internet Explorer per la navigazione web ad esempio) applicando di fatto una forma di concorrenza sleale nei confronti di molte software house [1].