Sistemi Operativi e Linguaggi
1969: nasce UNIX Ken Thompson (sinistra) Dennis Ritchie (destra) 2
Unix Unix racchiudeva in sé i concetti migliori fin ad allora elaborati, come la multiutenza e il time sharing, ma cercando di essere più semplice e lineare. L imperativo di Unix era: piccoli programmi collegati tra loro per formare applicazioni complesse. Ancora oggi, nonostante i grandi progressi, questo concetto è largamente presente nei figli di Unix. 3
Assembly La prima versione di UNIX fu scritta in codice assembly, ma l'intenzione di Thompson era che dovesse essere scritto in un linguaggio ad alto livello. L'idea di base era di inventare un linguaggio ad alto livello per l'implementazione di sistemi operativi Thompson creò il linguaggio B 4
Linguaggio C Un collaboratore di Thompson, Dennis Ritchie, ottimizzò il linguaggio B inventando quello che ad oggi viene chiamato Linguaggio C (1969-1973) Il passo successivo fu quello di riscrivere in C la maggior parte del codice del sistema UNIX, riducendo l'uso dell'assemblyad un piccolo gruppo di funzioni Inaspettatamente il C permise di riscrivere UNIX per il PDP-11 in tempi rapidissimi 5
1973 The Unix operating system was first developed in assembly language, but by 1973 had been almost entirely recoded in C, greatly facilitating its further development and porting to other hardware 6
Caratteristiche Il C è rinomato per la sua efficienza e si è imposto come linguaggio di riferimento per la realizzazione di software di sistema su gran parte delle piattaforme hardware moderne. La standardizzazione del linguaggio (da parte dell'ansi prima e dell'iso poi) garantisce la portabilità dei programmi scritti in C (standard, spesso detto ANSI C) su qualsiasi piattaforma. 7
Although C was designed for implementing system software, it is also widely used for developing portable application software. C is one of the most widely used programming languages of all timeand there are very few computer architectures for which a C compiler does not exist. 8
1978: Libro bianco Kernighane Ritchienel 1978 scrivono un libro di riferimento il "C Programming Language 9
1991: nasce Linux Linus Torvalds inizia sviluppo di linux 0.01 Linux è scritto in C e assembly nel 1994 esce la prima versione non considerata beta (cioè non di prova) 10
Linus Torvald Il kernellinux vede la luce nell'agosto 1991 grazie al giovane studente finlandese Linus Torvaldsche, appassionato di programmazione, era insoddisfatto del sistema operativo Minix (sistema operativo unix-like destinato alla didattica, scritto da Andrew Tanenbaum, professore ordinario di Sistemi di rete all'università di Amsterdam), poiché supportava male la nuova architettura i386 a 32 bit, all'epoca tanto economica e popolare. Così Torvaldsdecise di creare un kernelunix con lo scopo di divertirsi e studiare il funzionamento del suo nuovo computer, che era appunto uno 80386. 11
gcc Linux è scritto nella versione del linguaggio di programmazione C supportata dal compilatore gcc(che ha introdotto numerose estensioni e cambiamenti al C standard), insieme a un certo numero di brevi sezioni di codice scritte in linguaggio assembly(sintassi gcccon stile "AT&T"). Grazie alle estensioni di C che supporta, gccper lungo tempo è stato il solo compilatore in grado di compilare correttamente Linux. 12
13
S.O. e linguaggi Windows: C++, kernel in C Mac: Objective C, kernel in C (IO PnP subsystem is Embedded C++) Linux: C, KDE in C++ 14
Android Attualmente i sistemi operativi basati su GNU/Linux sono i più utilizzati nella grande famiglia Unix, soprattutto in ambito server, ma con una crescente diffusione anche sui netbooke i personal computer. Tra il 2007 e il 2008 diversi costruttori hanno proposto al grande pubblico computer con GNU/Linux preinstallato, aprendo a tale sistema operativo le porte dell'informatica personale. Dal 2009 si stanno diffondendo computer palmari e telefoni cellulari basati su Android, una versione di GNU/Linux modificata da Google per essere estremamente leggera. 15
Top 500 http://www.top500.org/ 16
LINUX Pregi: gratuito, libero (nessun problema di licenza), altamente modificabile e quindi personalizzabile, veloce, sicuro. Difetti: supporto Hardware non sempre perfetto, impossibilità di usare programmi diventati oramai lo standard, scarsa presenza di software gestionali. Punti di forza/debolezza: nell applicazione Server non ha ancora rivali, anche grazie alla sua compatibilità con client con diversi sistemi operativi (vedi Samba) e al pieno sfruttamento dell hardware, oltre che alla sicurezza. Non comporta spesa alcuna per l azienda. E ancora probabilmente prematuro utilizzarlo come client. Possibile utilizzo: Server 17
MAC Pregi: Sistema Operativo concepito appositamente per l hardware, applicativi estremamente professionali (soprattutto nel campo multimediale), molto veloce, sicuro Difetti: Prezzo, pochi applicativi utili in azienda al di là del multimedia Punti di forza/debolezza: Multimedia = MAC, se bisogna lavorare con filmati o grafica (soprattutto quest ultima è fondamentale anche per dare una buona immagine all azienda) un Macfa la differenza. Per gli impiegati il discorso sui programmi è lo stesso di Linux, forse ancora più estremizzato. Possibile utilizzo: Lavoro Multimediale 18
WINDOWS Pregi: Tutti gli applicativi standard girano su Windows, compatibile con quasi tutto l hardware sul mercato, ad oggi la stragrande maggioranza delle applicazioni è concepita per Windows. Quindi: flessibilità Difetti: Meno sicuro delle altre due piattaforme, prestazioni lievemente inferiori, necessità di programmi di protezione quali antivirus e simili Punti di forza/debolezza: C è un vantaggio fondamentale nell utilizzare Windows, e cioè poter usare gli applicativi migliori ad oggi disponibili in quasi tutti i campi, soprattutto in quello gestionale. Peccato che questa piattaforma sia ad oggi più insicura delle due precedenti. Possibile utilizzo: Client Generico 19
E IN AZIENDA? Perchèun azienda non potrebbe avere dei server basati su Linux che dialogano con dei Client che fanno girare Windows e un paio di Macper il design del sito web o del logo? Così si otterrebbero tutti i vantaggi di ogni piattaforma, annullandone (quasi) gli svantaggi. 20