1 / 36

Storia dei Sistemi Operativi

Storia dei Sistemi Operativi. Corso di Storia dell’Informatica e del Calcolo Automatico SICSI VII ciclo Autore: Mauro Bellerè. Definizione.

machiko
Download Presentation

Storia dei Sistemi Operativi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Storia dei Sistemi Operativi Corso di Storia dell’Informatica e del Calcolo Automatico SICSI VII ciclo Autore: Mauro Bellerè

  2. Definizione • Il Sistema Operativo consiste in una raccolta di software che nasconde (parzialmente) l'hardware, offrendo al programmatore una serie di istruzioni con le quali lavorare. • Fornisce all'utente una serie di comandi e servizi per fruire al meglio della potenza di calcolo di un qualsivoglia elaboratore elettronico, spaziando dal più piccolo dei palmari al più potente tra i Mainframe.

  3. Preistoria • Il primo computer (1843) fu progettato dal matematico inglese Charels Babbage (1792-1881), che, però non poté mai costruirlo per la tecnologia non adeguata dell'epoca • Babbage capì che avrebbe avuto bisogno di "un programma" per far funzionare il computer e per questo assunse Ada Lovelace, la "prima programmatrice", che ha dato il nome al linguaggio di programmazione ADA

  4. Prima dei Sistemi Operativi (1) • I primi computer moderni (1945-1955) (senza parti di tipo meccanico) sfruttavano la tecnologia a valvole ed anche se erano poco potenti ed affidabili, erano di dimensioni enormi e potevano occupare intere stanze • Un team di specialisti costruiva, manteneva e programmava la macchina (appunto in linguaggio macchina) • Non c'era sistema operativo, nemmeno l'assembler, bisognava eseguire un programma per volta (generalmente tabelle matematiche) sotto la supervisione del programmatore

  5. Prima dei Sistemi Operativi (2) • Erano lentissimi e molto costosi • Potevano permetterseli soltanto governi, grossi centri di calcolo o Università • Erano molto inaffidabili, in quanto le valvole che li componevano si rompevano spesso • Il programma da eseguire veniva inserito ad ogni esecuzione in codice binario attraverso dei primitivi lettori di schede perforate e dopo alcune ore il risultato veniva inviato ad una stampante

  6. Prima dei Sistemi Operativi (3) • Tra gli altri, riuscirono a costruire delle macchine per il calcolo automatico che fossero programmabili: • Howard Aiken, Harward. Harvard MARK-1 ; • John Von Neumann, Institute for Advanced Study in Princeton. EDVAC; • J. P. Eckert e W. Mauchley, University of Pennsylvania. H. Goldstine, A. Turing. ENIAC ; • K. Zuse, Germany. Z3.

  7. Macchina di Von Neuman • Programma memorizzabile come i dati • Istruzioni in memoria: decidere il programma specificando una porzione di memoria • Idea di John von Neumann (consulente ENIAC) • Proposta di nuovo calcolatore (1945): EDVAC (Electronic Discrete Variable Computer) • Nuovo elaboratore completo nel 1952 (IAS, presso Institute for Advanced Studies, Princeton)

  8. I primi Sistemi Operativi • La rivoluzionaria invenzione del transistor determina la nascita degli elaboratori di seconda generazione (1955-1965) e, di conseguenza, la nascita dei primi sistemi operativi • L'utilizzo dei transistor per la costruzione dei computer permette di ridurne le dimensioni. I lettori di schede, i nastri magnetici e le stampanti cominciano a diventare di uso comune • I computer iniziano ad essere costruiti per essere venduti, possono funzionare abbastanza a lungo per ammortizzare i costi di acquisto. Acquirenti: università, banche, grandi compagnie commerciali • Permettono di usare i linguaggi di programmazione quali il Fortran e l'Assembler • Si delinea sempre più marcatamente la separazione tra: - progettisti (di computer) - costruttori (di computer) - operatori (di computer) - programmatori - personale addetto al mantenimento (tecnici)

  9. Sistemi batch (1) • Per eseguire dei programmi (o come venivano chiamati job), un programmatore doveva scrivere il proprio programma su carta, trasferirlo su schede, caricarlo nel computer, aspettare che il computer avesse eseguito il calcolo e quindi stampare il risultato • Tale operazione era molto dispendiosa in fattori di tempo • Si adottò la soluzione del sistema batch (a lotti): l'idea di base era quella di dividere i tre lavori, ovvero il caricamento dei dati, il calcolo e la stampa • Tale tecnica permette - di ridurre il tempo raggruppando lavori simili (Fortran, Assembler, COBOL); - la sequenzializzazione automatica dei Job: automaticamente il controllo passa da un Job al successivo; - il caricamento automatico del compilatore; - il caricamento automatico dell'assemblatore.

  10. Sistemi batch (2) • L'idea è quella di impilare le schede perforate in un vassoio di input di un calcolatore di basso costo che ha solo il compito di trasferire i programmi, dello stesso linguaggio, su nastro magnetico in modo sequenziale. • Ogni volta che una bobina è completata, viene montata sul calcolatore centrale, il main. A sua volta il main scrive l'output in modo sequenziale su un altro nastro magnetico. • Tale nastro viene montato su di un altro computer di basse prestazioni per trascrivere l'output su carta, che verrà consegnata al programmatore.

  11. Sistemi batch (3) • Le macchine più utilizzate in quegli anni (‘60) per implementare sistemi batch erano gli IBM 1401, per il caricamento dei dati e la stampa; per il calcolo veniva impiegata, invece una macchina più potente e costosa, l'IBM 7094. • Il Sistema Operativo di questi Mainframe doveva erogare pochi semplici servizi: gestione dell'input/output, interpretazione dei comandi contenuti nelle schede controllo e controllo dell'esecuzione di programmi, sia quelli lanciati dall'utente, sia le utilità di sistema. • I sistemi operativi tipici per questi elaboratori, per lo più programmati in FORTRAN e in Assembler erano il FMS (Fortran Monitor System) e l'IBSYS

  12. I primi Sistemi Operativi • Durante l'esecuzione dei programmi, su nastro magnetico, vengono eseguiti anche altri programmi di gestione per l'esecuzione del compilatore Fortran, dell'assemblatore e per il corretto caricamento (delle istruzioni e dei dati) dei programmi scritti dai programmatori. • Tali operazioni di gestione vengono fornite da uno speciale programma, il primo rudimentale sistema operativo: monitor residente.

  13. La terza generazione • L’avvento dei circuiti integrati (IC) determinò la nascita dei computer di terza generazione (1965-80) e, di conseguenza, dei nuovi Sistemi Operativi • Nello stesso periodo i Sistemi Operativi iniziarono a supportare il DMA e lo SPOOL • Il DMA (Direct Memory Access) è il sistema che permette di trasferire interi blocchi di dati da memoria secondaria a memoria centrale in modo completamente indipendente dal processore, il quale può, nel frattempo, eseguire altre operazioni • Lo SPOOL (Simultaneous Peripheral Operations On Line) è un sistema che permette di gestire in maniera efficiente le code di job di stampa

  14. L’IBM System/360 • Nell'aprile del '64 l'IBM presentò una famiglia di computer chiamata IBM System/360, prima realizzazione di una netta distinzione tra architettura hardware e implementazione • Tutti gli elaboratori della suite, che andavano da piccole macchine a grandi Mainframe utilizzavano varianti dello stesso Sistema Operativo, l'OS/360, che supportava sia il calcolo scientifico che quello commerciale • Tuttavia questa eccessiva diversificazione tra i diversi computer rese difficile scrivere codice efficiente che rispettasse tutti i requisiti che erano in conflitto tra di loro • Il risultato fu un Sistema Operativo enorme e molto complesso scritto da migliaia di programmatori. OS/360 conteneva centinaia di errori che resero necessarie diverse revisioni. Purtroppo ogni nuova versione correggeva alcuni problemi, introducendone però degli altri

  15. La multiprogrammazione • Nell’OS/360 e in molti altri Sistemi Operativi dell'epoca venne implementata la multiprogrammazione, che rendeva possibile la presenza di più programmi in memoria contemporaneamente • Quando un job in esecuzione aveva bisogno di effettuare una operazione di I/O il Sistema Operativo lo sospendeva e al suo posto faceva girare un altro job • Quando l'operazione di I/O si concludeva il primo job tornava pronto all'esecuzione e attendeva il suo turno attendendo la sospensione di uno degli altri • Questo rendeva necessaria la presenza di hardware specializzato per proteggere i programmi dalle reciproche interferenze

  16. Il Timesharing (1) • Ogni utente ha un terminale proprio collegato al calcolatore centrale. • Ad ogni programma viene assegnato un intervallo di tempo durante il quale le sue istruzioni vengono eseguite dalla CPU • Scaduto tale intervallo di tempo, il processore continua (inizia) l'esecuzione delle istruzioni di un altro programma per la durata del prossimo intervallo di tempo

  17. Il Timesharing (2) • Nel 1962 venne realizzato al MIT il primo sistema di timesharing su un IBM 7094: il CTSS (Compatible Time Sharing System) • Fu in realtà il MULTICS la vera rivoluzione. Venne sviluppato congiuntamente dal MIT, dalla General Electric e dai Bell Labs, ed era in grado di supportare centinaia di utenti in timesharing • La realizzazione fu però molto più complessa del previsto, tanto che i Bell Labs abbandonarono il progetto • Tuttavia Multics introdusse molte nuove idee che influenzarono non poco i successivi Sistemi Operativi

  18. UNIX • UNIX fu progettato a partire dal 1969 da un gruppo di ricercatori della AT&T presso i Bell Labs, tra cui erano presenti Ken Thompson (che lavorò anche al progetto Multics), Dennis Ritchie e Douglas McIlroy • Esso prese notevole spunto dal padre Multics, e grazie all'ottimo lavoro di queste persone divenne un sistema molto interattivo, affidabile e ricco di funzionalità • Vennero sviluppate anche molte varianti di UNIX, come il System V, BSD (Berkley Software Distribution), Minix (usato in ambito didattico) e successivamente (sulla base di MINIX e UNIX) l'ormai famosissimo Linux sviluppato dallo studente finlandese Linus Torvalds.

  19. I Personal Computer (1) • Negli gli anni '80 grazie alla tecnologia LSI (large scale integration) la costruzione di chip integrati divenne massiccia e portò all'abbattimento dei prezzi dell'hardware, facendo sorgere l'era del Personal Computer • Queste macchine erano piccole, economiche ed avevano prestazioni simili a quelle dei calcolatori medio-grandi di 10-20 anni prima • La diffusione commerciale del computer ha dato impulso notevole allo sviluppo di interfacce “friendly”, che siano di facile utilizzo anche per chi non sia un esperto del settore.

  20. I Personal Computer (2) • I primi modelli erano dotati di Sistemi Operativi monoutente con accesso interattivo e supporto al timesharing • Il più importante tra i primi Sistemi Operativi per Personal computer era il CP/M-80 della Digital Research per le CPU 8080 / 8085 / Z-80. Era basato sui Sistemi Operativi della Digital Equipment Corporation specialmente quelli per l'architettura PDP-1 • MS-DOS (o PC-DOS quando fornito da IBM) era originariamente basato proprio sul CP/M-80. (per approfondimenti vedi: breve storia del DOS

  21. Microsoft vs Apple (1) • Steve Jobs era uno dei pochi che credeva nell'idea del Personal Computer. All'epoca era difficile immaginare cosa potesse farsene una persona di un computer in casa. Egli invece continuò per la sua strada fondando Apple Computer Inc. il 1° Aprile 1976 assieme a Steve Wozniak e Ronald Wayne. Jobs era convinto che il futuro del Personal Computer sarebbe stato legato all'interfaccia grafica. E così, ispirandosi a quella sviluppata da Xerox qualche anno prima (da un certo Doug Engelbart), Apple lanciò nel 1983 Lisa OS il primo sistema operativo per Personal Computer con interfaccia grafica e padre di MAC OS (1984) per Macintosh

  22. Microsoft vs Apple (2) • La GUI (Graphical User Interface) fu una vera rivoluzione tanto che di lì a poco Microsoft avrebbe commercializzato Windows (20 novembre 1985) e sarebbe nato l'X Window System in ambiente Unix (1984). All'inizio Windows non era definibile Sistema Operativo: era piuttosto un'estensione di MS-DOS. Fu con il rilascio di Windows 3.0, nel 1990, che Microsoft si impose sul mercato. Oltre alle maggiori performance che garantiva alle applicazioni rispetto alle versioni precedenti, Windows 3.0 forniva un ambiente multitasking migliorato rispetto alle precedenti versioni di MS-DOS, grazie all'introduzione del supporto alla memoria virtuale, e divenne così un degno rivale del Macintosh (su cui girava Mac OS) di Apple. A partire da Windows 3.1 fu introdotto il supporto alla multimedialità (perfezionato via via nelle successive release), mentre con l'introduzione di Windows 95 si passò definitivamente dal calcolo a 16 bit a quello a 32 bit.

  23. I giorni nostri (1) • Con l'uscita di Windows 95, Microsoft si afferma come leader mondiale nei sistemi operativi • Prima dell'uscita della versione successiva, Windows 98, venne sviluppato Windows NT. L'attuale evoluzione di Windows 98 è il Windows ME (Millenium), mentre NT è sviluppato in Windows 2000. Ad oggi è disponibile, ivece, Windows XP, sia per l'utenza domestica che professionale. • Sull'altro versante i sistemi operativi come Unix e Linux hanno continuato a crescere e implementano un'interfaccia grafica (molto simile a quella di Windows) chiamata X Windows. Altri sistemi operativi da menzionare sono il BeOS il quale è, ormai, completamente abbandonato a se stesso ed il QNX, sistema operativo real-time intenzionato a conquistare ampie fette di mercato.

  24. I giorni nostri (2) • Arriviamo infine ai sistemi operativi attuali, agli odierni e conosciutissimi WINDOWS VISTA e OS X, e i vari UBUNTU, SUSE, FEDORA. • Oggigiorno è inoltre disponibile una grande varietà di sistemi di elaborazione dalle più disparate dimensioni e performance a costi contenuti • Inoltre sono oggi sempre più diffuse le interconnessioni tra i vari dispositivi in modalità sia wired che wireless • Tutte queste innovazioni hanno portato allo sviluppo di sistemi operativi per le più svariate architetture, in particolare per dispositivi handheld come cellulari (tra i quali non si può non citare il Symbian OS) e PDA (con Windows Mobile e Palm OS).

  25. I Sistemi Operativi di rete (1) • Un fenomeno interessante che iniziò a prendere piede da metà degli anni '80 fu lo sviluppo delle reti di calcolatori, fenomeno che ha poi portato all'incredibile crescita di Internet • Nacquero così i Sistemi Operativi di rete e i Sistemi Operativi distribuiti • I primi altro non sono che normali Sistemi Operativi ai quali vengono aggiunti i software per il collegamento a macchine remote e quindi alle relative risorse condivise come file e stampanti • I secondi sono Sistemi Operativi che girano su sistemi a più processori oppure che inviano i processi da elaborare ad altri computer della rete

  26. I Sistemi Operativi di rete (2) • I Sistemi Operativi distribuiti sono dotati di particolari politiche di scheduling che permettono una efficace allocazione dei processi tra le CPU disponibili. Inoltre anche il sistema di archiviazione (file system) è unico, anche se in realtà è distribuito tra vari nodi della rete • Esempi di sistemi di rete sono tutte le versioni di Windows dalla NT3.1 in poi, mentre UNIX e derivati fanno parte di entrambe le categorie in quanto supportano entrambe le tecnologie

  27. 1961 CTSS 1964 OS/360 (annunciato) 1965 Multics (annunciato) OS/360 (disponibile) Tape Operating System (TOS) 1966 MS/8 1967 CP/CMS ITS WAITS 1969 ACP (IBM) TENEX Unix Appendice 1: Cronologia dei S.O. (‘60)

  28. 1970 DOS/BATCH 11 (PDP-11) 1971 OS/8 1972 MFT MVT RDOS SVS VM/CMS 1973 Alto OS RSX-11D RT-11 VME 1974 MVS (MVS/XA) 1976 CP/M TOPS-20 1978 Apple DOS 3.1 (Primo sistema operativo dell'Apple) TRIPOS VMS 1979 Apple DOS 3.2 Appendice 1: Cronologia dei S.O. (‘70)

  29. 1980 Apple DOS 3.3 OS-9 QDOS SOS XDE (Tajo) (Xerox Development Environment) Xenix 1981 MS-DOS Xerox Star 1982 SunOS (1.0) Ultrix 1983 Lisa OS Coherent ProDOS 1984 Macintosh OS (System 1.0) QDOS (Sistema Operativo del Sinclair QL) QNX UniCOS 1985 AmigaOS 1.0 Atari TOS MIPS OS Microsoft Windows 1.0 Appendice 1: Cronologia dei S.O. (‘80) (1)

  30. 1986 AIX GS-OS HP-UX 1987 AmigaOS 1.2 Arthur IRIX (3.0 è la prima versione prodotta dall'SGI) Minix OS/2 1.0 Microsoft Windows 2.0 1988 A/UX (Apple Computer) AmigaOS 1.3 LynxOS MVS/ESA OS/400 1989 NEXTSTEP 1.0 RISC OS SCO Unix Release 3 Appendice 1: Cronologia dei S.O. (‘80) (2)

  31. 1990 AmigaOS 2.0 BeOS (v1) OSF/1 1991 Linux 1992 AmigaOS 2.1, 3.0 Solaris (2.0 è la prima versione non chiamata SunOS) Windows 3.1 1993 Plan 9 FreeBSD NetBSD Slackware Linux Windows NT 3.1 (Prima versione di NT) 1994 AmigaOS 3.1 Red Hat Linux Appendice 1: Cronologia dei S.O. (‘90) (1)

  32. 1995 Digital Unix (detto anche Tru64) OpenBSD OS/390 Windows 95 1996 Debian GNU/Linux (Debian 1.1) [1] 1997 Mac OS 7.6 (Primo sistema operativo ufficialmente chiamato Mac OS) 1998 Windows 98 1999 AmigaOS 3.5 AROS (Parte per la prima volta in modalità stand-alone) Mac OS 8 Appendice 1: Cronologia dei S.O. (‘90) (2)

  33. 2000 AmigaOS 3.9 AtheOS Mac OS 9 Mac OS X Public Beta MorphOS 0.4 (Versione "free distro" per Amiga con schede PowerPC) Windows 2000 Windows ME 2001 AmigaOS 4 (Maggio, annunciato) Mac OS X 10.0 (Cheetah) Mac OS X 10.1 (Puma) Windows XP z/OS 2002 AROS (Interfaccia grafica nativa ZUNE) Mac OS X 10.2 (Jaguar) Syllable Appendice 1: Cronologia dei S.O. (2000) (1)

  34. 2003 Mac OS X 10.3 (Panther) MorphOS 1.4.2 Windows Server 2003 2004 MorphOS 1.4.3 AmigaOS 4.0 Developer PreRelease per gli AmigaONE 2005 Gentoo Linux 2005.0 MorphOS 1.4.4 MacOS X 10.4 (Tiger) Windows Server 2003 x64 Edition Windows XP Professional x64 Edition MacOS X 10.4 (Versione Server) MorphOS 1.4.5 YellowTAB ZETA (BeOS Clone) 1.0 (1 luglio 2005) Windows Vista (Versione beta) Pardus 1.0 Appendice 1: Cronologia dei S.O. (2000) (2)

  35. Appendice 1: Cronologia dei S.O. (2000) (3) • 2006 • Ubuntu 6.06 LTS • Pardus 2007 • 2007 • Mac OS X (Leopard) • Windows Vista • Windows codename Longhorn Server (Anno previsto per il rilascio di questo SO) • 2011 • Windows Vienna (Anno previsto per il rilascio di questo SO)

  36. Sitografia • http://it.wikipedia.org/wiki/Storia_dei_sistemi_operativi • http://fabrizio.ciacchi.it/guide.php/soperativi.htm

More Related