Menu

I Sistemi Operativi

si digital resarch si dos si macossi os2 si windows si risc os si beos si next si novell netware si bsd si linux si unix si atari si solaris si apple dos  si amiga os

Storicamente i Sistemi Operativi sono sempre stati strettamente legati all'architettura degli elaboratori che li ospitavano.

Si ritiene che il primo prototipo di calcolatore digitale si debba all'inglese Charles Babbage (1792-1871), che progettò la "macchina analitica", un apparecchio meccanico che egli non poté mai vedere realizzato a causa dell'impossibilità tecnologica di allora di realizzare gli ingranaggi e le parti meccaniche richieste con la dovuta precisione.
Da allora fino alla seconda guerra mondiale furono fatti pochissimi progressi nella realizzazione di calcolatori digitali.

 

Prima generazione (1945 -1955): valvole termoioniche e schede a spinotti

valvoleOccorre attendere il 1945 per vedere comparire la prima generazione di calcolatori automatici, quando vari professori universitari e studiosi inglesi e americani (tra cui von Neumann) riuscirono a costruire delle enormi macchine di calcolo usando delle valvole termoioniche.
Questi apparecchi avevano dimensioni tali da riempire intere stanze e una velocità di calcolo a dir poco modesta in confronto al più scarso degli attuali personal computer.
Allora era lo stesso gruppo di persone ad occuparsi della progettazione, costruzione, programmazione e manutenzione di ogni macchina.
La programmazione era fatta esclusivamente in linguaggio macchina, ossia secondo codici binari direttamente eseguiti dal processore, spesso predisponendo una serie di spinotti inseriti su particolari schede adibite al controllo delle più elementari funzioni della macchina.
I linguaggi di programmazione, compreso l'assembler, erano sconosciuti e di sistema operativo nemmeno si parlava. Quasi tutte le applicazioni erano semplici calcoli numerici, come produzioni di tabelle di seni e coseni.
Fino alla metà degli anni 50 l'unico progresso riguardò la possibilità di scrivere i programmi su schede perforate, che potevano essere lette direttamente dal calcolatore, anzi che usare gli spinotti.

 

Seconda generazione (1955 -1965): transistor e sistemi batch

transistorA cambiare radicalmente la situazione intervenne l'introduzione dei transistor, che accrebbero 1' affidabilità dei calcolatori così da renderne possibile la commercializzazione.
Questi primi sistemi erano molto costosi (milioni di dollari) e potevano essere acquistati solo da grosse compagnie.
I calcoli che dovevano essere eseguiti dal computer erano memorizzati in un job, che poteva essere un singolo programma o un insieme di programmi, scritto dal programmatore in Fortran o in Assembler e poi copiato su schede perforate e portato all'operatore che gestiva il calcolatore.
Quando il calcolatore aveva terminato il job il risultato veniva prelevato dalla stampante e consegnato al programmatore.
Dato l'elevato costo delle macchine per ottimizzare l'uso del calcolatore, venne adottata la soluzione dei cosiddetti sistemi batch o sistemi di elaborazione a lotti:

  • Un piccolo calcolatore (relativamente) poco costoso (tipicamente l'IBM 1401) leggeva un lotto (batch) di schede perforate sulle quali erano memorizzati i job e li trasferiva su un nastro magnetico.
  • Quando il nastro aveva raccolto un lotto di job, veniva riavvolto e inserito in un calcolatore più potente (prevalentemente l'IBM 7094), dotato dell'antenato degli attuali sistemi operativi, l'IBSYS.
  • Questo si occupava di leggere in sequenza i vari job e di eseguirli uno dopo l'altro memorizzando i risultati su un secondo nastro magnetico.
    Una volta completato il lotto, i nastri d'ingresso e di uscita venivano rimossi e riavvolti e il nastro di uscita veniva inserito in un altro IBM 1401 per stampare i dati ottenuti dall' elaborazione.
  • Tramite l'utilizzo dei nastri d'ingresso e di uscita, veniva realizzata una "primordiale" forma di concorrenza, potendo eseguire 1' elaborazione dei lotti contemporaneamente alla memorizzazione del lotto successivo e alla stampa dei risultati di quello precedente. Essenzialmente i calcolatori della seconda generazione furono usati per eseguire calcoli scientifici e ingegneristici. Accanto all'IBSYS un sistema operativo tipico di quegli anni era il FMS (Fortran Monitor System).

 

Terza generazione (1965 -1980): circuiti integrati e multiprogrammazione

circuitointegratoProseguendo il nostro viaggio nel passato ci troviamo all'inizio degli anni 60, quando la maggior parte dei produttori di calcolatori avevano due linee distinte di prodotti: da un lato i grossi calcolatori scientifici come l'IBM 7094, dall'altro i calcolatori commerciali di più limitata capacità di elaborazione, come l'IBM 1041.
Per risolvere tutti i problemi correlati ad una tale situazione, l'IBM (allora in una situazione pressoché monopolistica) introdusse il System/360, una serie di macchine che differivano solo per prezzo e prestazioni (si andava dal 1041 a macchine più potenti del 7094) con la stessa architettura e lo stesso set di istruzioni, quindi compatibili a livello software.
Il sistema 360 fu la prima linea di calcolatori ad usare la tecnologia dei circuiti integrati (IC), allora a bassa scala di integrazione, che portò innumerevoli vantaggi in termini di prezzo e prestazioni.
Inutile dire che il successo dei calcolatori compatibili convinse gli altri costruttori a fare altrettanto.
La compatibilità software fra i diversi computer fu un fattore di grande forza, ma anche un punto debole.
Principalmente ciò è dovuto al fatto che l'intenzione era di avere lo stesso software, SO compreso, su tutti i modelli, ma le grandi differenze nelle caratteristiche hardware e nell'uso in ambito scientifico e commerciale avevano requisiti spesso in conflitto fra loro.
Il voluminoso sistema operativo che venne adottato, l'OS/360, era costituito da milioni di righe di codice assembler scritto da migliaia di programmatori e conteneva centinaia di errori, che rendevano necessarie versioni sempre nuove, con le quali si correggevano i vecchi e se ne introducevano di nuovi.
Nonostante le enormi dimensioni e gli errori, i sistemi operativi della terza generazione seppero soddisfare gli utenti, anche grazie all'introduzione di una nuova tecnica, la multiprogrammazione.
A causa dei costi elevatissimi dei calcolatori, si impose la necessità di ridurre la quantità di tempo in cui la CPU rimaneva inattiva, permettendo ad un job di occupare il processore mentre un altro job era in attesa del completamento di un'operazione di I/O. Per fare ciò la memoria principale venne divisa in partizioni, una dedicata al SO e le rimanenti assegnate avari job.
Le schede contenenti i job venivano subito lette e i job caricati su disco; in maniera analoga si operava per la gestione dell'uscita dei risultati, eliminando così per sempre la "scocciatura" del continuo spostamento di nastri magnetici da un calcolatore all'altro. Questa tecnica era detta SPOOLING (da SPOOL Simultaneous Perifepheral Operation On Line).
In questi sistemi, detti a lotti multiprogrammati, si presentarono per la prima volta nuove problematiche:

  • lo scheduling dei job (decidere quale tra i job nel disco caricare in memoria);
  • lo scheduling del processore (decidere quale tra i job in memoria mandare in esecuzione);
  • la gestione della memoria ( ottimizzarne l'utilizzo, date le limitate dimensioni);
  • la protezione reciproca (da eventuali interazioni indesiderate).

Il desiderio di un veloce tempo di risposta portò ben presto al time sharing (condivisione di tempo), una variante della multiprogrammazione che permetteva a più utenti di avere un terminale ciascuno.
In questi sistemi la CPU veniva assegnata a turno ai vari utenti che ne richiedevano l'uso e venne reso disponibile un servizio interattivo molto veloce, sfruttando i tempi di inattività degli utenti che
stavano pensando, parlando o prendendo il caffè per eseguire i job degli altri.
Il primo sistema operativo time sharing fu il CTSS (Compatible Time Sharing System), sviluppato dal 1962 al MIT.
Di qui nacque l'idea di una macchina che potesse supportare centinaia di utenti in time sharing secondo il modello della distribuzione della corrente elettrica nelle case. Il sistema venne chiamato MULTICS (MULTiplexed Information and Computing Service) e sviluppato a partire dalla seconda metà degli anni 60 ed era comunque ambizioso dato che intendeva gestire centinaia di utenti in time sharing su una macchina che era poco più di un 286.
L 'idea comunque potrebbe riproporsi realizzando grossi server di rete a cui collegare macchine utenti semplici che fanno eseguire la maggior parte del lavoro al server. Infatti gli utenti sono interessati a demandare alle società che gestiscono i server 1' amministrazione di sistemi sempre più complessi. L' e-commerce sembra si stia evolvendo verso questa soluzione.
Durante la terza generazione ebbe luogo una fenomenale crescita dei minicalcolatori, a partire dal PDP-1 del 1961 a motivo dei bassi costi (5% costo di un IBM 7094)
Nella serie dei PDP successivi, fmo al PDP-11 , il più importante (per ragioni storiche) fu il PDP-7, sul quale venne sviluppata, da Ken Thompson (uno degli informatici dei laboratori Bell che aveva collaborato alla realizzazione di MULTICS), una versione ridotta per singolo utente di MULTICS, chiamata per gioco UNICS (Uniplexed Information and Computing Service), che non tardò a convincere gli addetti ai lavori, diventando ben presto UNIX (implementato per la prima volta proprio su un PDP-11/20).
L' evoluzione incredibile dei minicalcolatori portò ad una migrazione delle caratteristiche dei SO nati per mainframe verso i SO usati su tali sistemi, cosicché UNIX poté avvantaggiarsi dei progressi compiuti negli anni precedenti.

 

Quarta generazione (1980): i Personal Computer

personalcomputerL 'avvento dei circuiti integrati su larga scala LSI (Large Scale Integration) portò, alla fine degli anni 70, alla costruzione dei primi personal computer (inizialmente chiamati microcalcolatori), molto simili ai minicalcolatori come il PDP-11, ma più economici. Nel 1974 la INTEL costruì la il microprocessore 8080 e Gary Kildall costruì un controllore per floppy disk che collegò all'8080 realizzando il primo microcalcolatore con disco e scrisse il sistema operativo basato su disco CP/M (Control Programm for Microcomputer).
Kildall fondò la Digital Research e fino al 1980 il CP/M domina il mercato dei microcalcolatori.
Nel 1980 IBM progetta il PC IBM e chiede Bill Gates la licenza del suo interprete BASIC e un sistema operativo adatto. Gates suggerì di contattare la Digital Research, ma vista la difficoltà di contrattazione con Kildall, venne anche spronato da IBM a realizzare un nuovo OS. Microsoft acquistò allora il DOS (Disk Operatine System) da una piccola azienda e lo offrì con l'interprete BASIC alla IBM che accettò anche se fu praticamente costretta a riscriverne buona parte, visto il numero impressionante di bug.
Il successo dipese anche dalla scelta di Gates di vender MS-DOS alle aziende che producevano computer perché formasse un unico pacchetto con la macchina, mentre Digital Research vendeva CP/M direttamente agli utenti.
Le successive versioni di MS DOS avevano caratteristiche più avanzate prese anche da UNIX.
Microsoft vendette anche un versione di UNIX per microcalcolatore detta XENIX.
Una nota particolare merita Linux, apparso per la prima volta nel 1991, che, nato su iniziativa di un giovane studente di nome Linus Torvalds, che intendeva scrivere una versione professionale gratuita di un clone di UNIX detto MINIX, ha ben presto ricevuto l'appoggio di numerosi sviluppatori sparsi in tutto il mondo, che hanno potuto contribuire al suo sviluppo soprattutto grazie ad Internet. L' affermazione di questo SO è storia recente ed è tuttora in crescita.
Questi sistemi erano basati su comandi da tastiera, ma Engelbart inventò la GUI (Graphical User Interface) con icone, menù, finestre e l'uso del mouse e Jobs, inventore del calcolatore Apple sfruttò questa idea e produsse Macintosh ottenendo un enorme successo perché rese il PC accessibile a tutti.
Microsoft, influenzata da questo, produsse Windows, un sistema operativo che inizialmente (1985-1995) veniva eseguito sopra MS-DOS ma che con le versioni 95 e poi 98 incorporò quasi tutte le caratteristiche del sistema operativo, sbarazzandosene definitivamente con la versione XP.
Anche UNIX ha un sistema a finestre detto X windows.

Uno sviluppo interessante che iniziò a prendere piede durante la metà degli anni 80 è la crescita di reti di PC sui quali giravano i primi sistemi operativi di rete e i sistemi operativi distribuiti

 

Quinta generazione (2000): Web e Mobile

internetDal boom di Internet al settore mobile: ecco le nuove sfide per l’informatica che con potevano non interessare il settore dei sistemi operativi.

Una prima ipotesi, cavalcata dai colossi del Web come Google, è stata quella di creare un OS light browser-based che trasportasse l’utente in una sorta di “universo web” in cui tutto si può fare attraverso internet ed il dispositivo diventa un semplice terminale.

In realtà questa tesi sembra quasi del tutto accantonata in favore dei nuovi OS Mobile che ormai rappresentano un buon connubio tra leggerezza e funzionalità, andandosi a posizionare su tutta una serie di dispositivi pensati per permettere all’utente una connessione continua alla rete ma anche la possibilità di utilizzare applicazioni decisamente complete e funzionali.

I sistemi operativi classici (desktop) non restano certo a guardare e, oltre ad una sempre maggiore integrazione con le rete, guardano a nuove frontiere: basti pensare alle annunciate funzionalità di riconoscimento facciale o ai nuovi App Market da cui scaricare ed installare velocemente nuove applicazioni.