Passa ai contenuti principali

Teoria: Il Sistema Operativo (Parte 1)

Una introduzione
Siamo abituati, oggi, ad utilizzare le macchine (computer, smarphone, ecc.) che ci capitano sotto le mani con un naturalezza ed una semplicità tali che, probabilmente, non ci rendiamo conto della eventuale complessità dell'oggetto con cui interagiamo.
Far scorrere le dita su di uno schermo multi-touch e vedere immagini, cartelle, testi, filmati che si aprono in finestre, ordinare tutto con un semplice gesto, spedire filmati per posta ad un amico e riceverne, ci sembrano operazioni facili e naturali, legate al nostro modo di manipolare gli oggetti reali. Quasi non facciamo più distinzione tra gesti della realtà virtuale e gesti della realtà quotidiana. Tutta questa "naturalezza" nello gestire le nostre operazioni "virtuali", se provassimo a pensarle nel mondo di dieci anni indietro, ci apparirebbero impossibili o, al limite, scene di un film di fantascienza.
Tutto questo, se da un lato ci semplifica enormemente la vita (digitale) dall'altro ci nasconde cosa c'è realmente "sotto il cofano". La storia delle macchne da calcolo è stata, sin dall'inizio, una continua evoluzione per cercare di rendere il rapporto uomo-macchina il più semplice possibile e di cercare di riprodurre, nell'azione di "comando", la gestualità e le modalità tipiche umane.

Mouse seriale
Da una parte si è cercato di elaborare e produrre periferiche che ci permettessero di comunicare dati e comandi in modo semplice, dall'altra si sono sviluppati software sempre più complessi che permettessero agli elaboratori di gestire tali periferiche.
Ciò si è tradotto in un aumento esponenziale della complessità generale dei sistemi di elaborazione. Un "telefonino" dei nostri giorni è immensamente più complesso di un elaboratore degli albori dell'era informatica. Complessità a parte, sotto il cofano sono, comunque, rimasti gli stessi elementi che hanno caratterizzato i primi calcolatori. (più o meno)  :-)


Un po' di teoria spiegata in modo semplice
Gli elementi costitutivi dell'hardware sono, essenzialmente, i seguenti:

  • una C.P.U. (Central Process Unit), cioè una Unità Centrale di Processo, definita genericamente anche "processore" o "microprocessore". Cioè l'elemento fisico che serve ad elaborare e gestire i dati.
  • un BUS, cioè una connessione che consente ai dati di transitare tra diversi componenti, quali chip, schede, periferiche, ecc. In sostanza, un insieme di collegamenti fisici (cavi, piste di circuiti stampati, ecc.) che possono essere utilizzati in comune da più elementi hardware per comunicare.
  • "tutto il resto del mondo", cioè l'insieme di componenti aggiuntivi deputati a scopi specifici, le eventuali periferiche, gli operatori umani, altri elaboratori.

Per far funzionare il tutto, o meglio, per poter gestire il tutto è necessario che vi sia un "ente" (deformazione mia di origine "filosofica"  :-) ) deputato allo scopo. Tale "ente" non è altro che quello che chiamiamo "software" o, più precisamente, "software di sistema". Il software di sistema, in sintesi, comanda e gestisce il flusso delle informazioni, ordina alla C.P.U. di elaborare i dati, gli dice dove indirizzarli attraverso il BUS, mette in attesa il sistema di ricevere risposte e di elaborare una "risposta" quando necessita, immagazzina i dati sotto forma di file all'interno di specifici "contenitori virtuali" (directory) attraverso un sistema di regole codificate (file system) in unità di memoria di massa (floppy, dischi rigidi, memorie flash, ecc.). Deve essere in grado di visualizzare in tempo reale l'attività di alto livello gestendo le schede grafiche e, conseguentemente attraverso di esse, il monitor. Questo "ente"o "software di sistema" ha un nome specifico: Sistema Operativo.

Dettaglio schema del Kernel Linux

Se vogliamo dare una definizione canonica e più tecnica diciamo che con il termine "Sistema Operativo" si intende, sostanzialmente: "un software (definito genericamentecome "software di sistema") che gestisce e controlla l'insieme del traffico dei dati all'interno del calcolatore e tra questo e tutte le periferiche che sono collegate con esso. Fornisce, inoltre, un'interfaccia che permette l'invio di comandi da parte dell'operatore al computer stesso."


Il Sistema Operativo, in sintesi, si pone come un intermediario tra hardware e software di sistema e tra questo e il software applicativo che viene pilotato dall'utente che interagisce con la macchina.
Esempi di sistemi operativi,sono:
DOS (Disk Operating System)
UNIX
CP/M
Windows (Windows + DOS)
MacOS
Le componenti principali di un Sistema Operativo sono:
  • Il Kernel (il nucleo)
  • Il File System (per la gestione dei file, delle directory, ecc.)
  • La shell (interfaccia utente per dare i comandi)

File System di Linux

Quindi, secondo quanto descritto sopra, sembrerebbe che "alla base" stessa di "elaboratore" ci siano, fondamentalemnte, due componenti generali:
  • l'hardware
  • il sistema operativo.





Ma non è stato sempre così, nel prossimo articolo vedremo perché...



Commenti

Post popolari in questo blog

EDVAC

EDVAC (Electronic Discrete Variable Automatic Computer) L' E lectronic D iscrete V ariable A utomatic C omputer ( EDVAC ) è uno dei primi computer elettronici digitali della storia, uno dei primi computer della storia basato sull'architettura di Von Neumann e uno dei primi computer a programma memorizzato della storia. L' ENIAC era veloce, ma disponeva di pochissimo spazio di archiviazione . Inoltre, per la programmazione doveva essere ricablato , un'operazione che richiedeva da poche ore a giorni interi; era, inoltre, poco affidabile, a causa delle molte valvole tubolari utilizzate, che richiedevano, tra l'altro, moltissima energia e molto spazio per funzionare e generavano molto calore. Il che faceva lievitare costi di gestione.

Colossus

Colossus " Colossus fu il primo elaboratore elettronico al mondo: fu realizzato in Gran Bretagna nel 1943, alla fine della seconda guerra mondiale, dall’intuizione del Dott. Thomas Flowers. Operativo dal 1944 a Bletchley Park, sostituì Heath Robinson, un macchinario più semplice, nel decifrare le comunicazioni criptate della Germania nazista. Entro la fine del conflitto furono costruiti dieci esemplari di Colossus, un “gigante” da 1.600 valvole termoioniche. Il Dott. Flowers aveva concepito il progetto prima della guerra, però il centro di ricerca britannico non era convinto che fosse davvero realizzabile: la tenacia dell’ingegnere, alla lunga, s’è rivelata determinante. " Citazione - Tratta da:   http://www.downloadblog.it/post/16765/colossus-il-primo-elaboratore-elettronico-a-essere-stato-realizzato

MANIAC

Verso la fine della guerra, gli scienziati di Los Alamos stavano utilizzando il primo computer elettronico . John Von Neumann fu il protagonista principale di questo cambiamento, che condusse, poi, allo sviluppo del programma per calcolare il comportamento degli esplosivi nucleari. I calcoli iniziali concernenti la diffusione dei neutroni in un montaggio critico di uranio furono effettuati da Eldred Nelson e da Stanley Frankel , che erano membri del gruppo di Robert Serber presso il Radiation Laboratory dell' università di Berkeley , California, nel 1942.  A Los Alamos  ordinarono lo stesso tipo di macchine che avevano utilizzato in California.