Il software File

Transcript

Il software File
Il so&ware •  Il termine so,ware ha origine durante la seconda guerra mondiale. •  I tecnici dell'esercito inglese erano impegna7 nella decri8azione dei codici tedeschi di Enigma, di cui già conoscevano la meccanica interna (de8a hardware, componente dura, nel senso di ferraglia) grazie ai servizi segre7 polacchi. La prima versione di Enigma sfru8ava tre rotori per mescolare le le8ere. •  Dopo il 1941, ad Enigma venne aggiunto un rotore, e il team di criptanalis7 inglesi, capitana7 da Alan Turing, si dove8e interessare non più alla sua stru8ura fisica, ma alle posizioni in cui venivano u7lizza7 i rotori della nuova Enigma. •  Dato che queste istruzioni erano scri4e su pagine solubili nell'acqua (per poter essere più facilmente distru4e, evitando in tal modo che cadessero nelle mani del nemico) furono chiamate so&ware (componente tenera), in contrapposizione all'hardware. •  Il senso moderno del termine deriva dalle istruzioni date ai computer, ed è stato uClizzato per la prima volta nel 1957 da John Wilder Tukey, noto staCsCco statunitense. •  Dal 1950 l'analogia tra l'hardware ed il corpo umano e quella tra il so&ware e la mente umana si è fa4a molto forte, dal momento che Turing ha sostenuto che il progresso tecnologico sarebbe riuscito a creare, entro il 2000, delle macchine intelligenC (in grado cioè di "pensare" autonomamente) a4e alla risoluzione dei problemi •  Andrew Hodges, Alan Turing: una biografia, Torino, Bolla6 Boringhieri, 2006 Il so&ware •  Il so,ware è una componente del computer cos7tuita dai: –  programmi di base per la ges-one del sistema –  programmi applica-vi per l’uso del sistema •  Queste componen7 perme8ono di trasformare l’hardware in un ogge8o in grado di svolgere delle funzioni di natura diversa •  La proprietà fondamentale dei computer è il fa8o di essere programmabili Metafora: rice4e e algoritmi • 
• 
• 
• 
rice4a cuoco ingredienC pia4o • 
• 
• 
• 
algoritmo (programma) computer input output Metafora: rice4e •  deve esistere qualcuno (cuoco) che esegua la rice4a •  le istruzioni devono essere eseguite in ordine per parCre dagli ingredienC ed o4enere il pia4o •  il cuoco deve conoscere la lingua italiana altrimenC serve un tradu4ore •  il cuoco non può preparare “cotole4e di arigusta” se non sa preparare la “balsamella” •  la rice4a per “balsamella” è riportata nel capitolo “salse” •  cuoco in difficoltà con istruzioni ambigue (“abbiate l’avvertenza di cuocerli poco, in molta acqua”) •  l’ordine di esecuzione è importante (“condite gli spagheU” dopo “cuocerli”) •  istruzioni non infinite •  tempo non infinito •  eseguendo più volte la stessa rice4a si oUene lo stesso pia4o •  se una rice4a è per 4 persone, raddoppiando le dosi degli ingredienC vale per 8 persone Metafora: algoritmi •  deve esistere un esecutore (calcolatore) che esegua l’algoritmo •  le istruzioni devono essere eseguite in ordine per parCre dai daC di input ed o4enere i daC di output •  il calcolatore deve conoscere il linguaggio dell’algoritmo altrimenC serve un tradu4ore •  l’algoritmo deve prevedere solo istruzioni elementari per il calcolatore •  specificato un algoritmo, può essere richiamato per l’esecuzione di algoritmi più complessi •  il linguaggio dell’algoritmo non può essere ambiguo •  l’ordine di esecuzione è importante •  istruzioni non infinite •  tempo non infinito •  l’algoritmo deve essere determinisCco: eseguito più volte sugli stessi daC di input genera sempre lo stesso output •  algoritmo parametrico: risolve una classe di problemi (al variare dei daC di input) IlIl software
so&ware •  Una programmazione dire4a della macchina hardware da parte degli utenC creerebbe delle serie difficoltà –  L’utente dovrebbe conoscere l’organizzazione fisica dell’elaboratore e il suo linguaggio macchina –  Ogni programma dovrebbe essere scri4o uClizzando delle sequenze di bit ed ogni piccola differenza hardware comporterebbe una riscri4ura del programma stesso Una programmazione diretta della macchina
hardware da parte degli utenti non è accettabile
Il software •  È necessario fornire un meccanismo per astrarre dall’organizzazione fisica della macchina •  L’utente deve: –  usare nello stesso modo (o comunque in un modo molto simile) macchine diverse dal punto di vista hardware –  avere un semplice linguaggio di interazione con la macchina –  avere un insieme di programmi applicaCvi per svolgere compi6 diversi La macchina virtuale •  Nei moderni sistemi di elaborazione quesC obieUvi vengono raggiunC grazie alla definizione di macchine virtuali che vengono realizzate al di sopra della macchina hardware reale •  Questa macchina si dice virtuale in quanto essa non esiste fisicamente •  Si può fare in modo che macchine (fisicamente) differenC siano usabili in modo simile –  Si tra4a di costruire al di sopra delle diverse macchine fisiche la stessa macchina virtuale La macchina virtuale •  La macchina virtuale viene realizzata mediante il so&ware (soBware di base) •  L’utente interagisce con la macchina virtuale grazie ad un opportuno linguaggio di comandi •  Ogni computer ha un linguaggio macchina le cui istruzioni sono dire4amente eseguibili dalla macchina hardware Linguaggio di comandi •  La macchina virtuale si preoccupa della traduzione di ogni comando impar7to dall’utente nella sequenza di comandi che realizzano la stessa funzione e sono riconosciu7 dalla macchina fisica so8ostante Linguaggio di comandi •  Per esempio: interfaccia testuale –  MS-­‐DOS, Unix shell, Linux shell –  Lavorando con una interfaccia testuale i comandi vengono imparCC mediante la tas-era –  Ogni comando ha un suo nome e una sintassi ben precisa prompt
C:> print foo1.doc
Can’t find file foo1.doc
C:>
Linguaggio di comandi (interfaccia testuale) C:> print foo1.doc
Can’t find file foo1.doc
C:>
Dai il messaggio di prompt all’utente
Quando arriva il comando, riconoscilo
Se è corretto, esegui l’azione corrispondente
Se è errato, dai un messaggio di errore
Al termine dell’operazione, torna all’inizio
Linguaggio di comandi (interfaccia grafica) •  Per esempio: interfaccia grafica –  Nei calcolatori con interfaccia grafica molC comandi sono imparCC mediante l’interazione a4raverso il mouse e la tas6era –  Cioè il clic (il doppia clic, …) del mouse su un’icona viene trado4o in una opportuna sequenza di istruzioni che il computer esegue per soddisfare la richiesta dell’utente Linguaggio di comandi (interfaccia grafica) Microsoft
Windows
Linguaggio di comandi (interfaccia grafica) Mac OSX
di Apple
Linguaggio di comandi (interfaccia grafica) Linux
Il so&ware di base •  So&ware di base: realizza la macchina virtuale •  Gli strumenC so&ware che perme4ono all’utente (e ai programmi applicaCvi) –  di interagire con l’elaboratore in modo semplice (funzioni di traduzione tra linguaggi diversi) e –  di ges6re le risorse fisiche •  Il sistema opera6vo fa parte del so&ware di base So&ware di base •  Sistema OperaCvo (OS, OperaCng System): insieme di programmi che forniscono all’utente –  intermediazione nell’uClizzo della macchina HW –  visione astra4a dell’HW (macchina virtuale, macchina astra4a) –  un ambiente per l’esecuzione del SW applicaCvo OS: componenC •  nucleo (kernel) –  controlla la CPU (programmi…) •  gestore della memoria –  allocazione della memoria ai programmi in esecuzione •  gestore dei disposiCvi di I/O –  garanCsce l’accesso ai disposiCvi di I/O –  maschera i de4agli di basso livello e gli eventuali confliU •  file system –  archiviazione e reperimento dei daC sulla memoria di massa •  gestore della rete –  interfaccia con risorse collegate via rete –  comunicazione con processi su altri calcolatori •  interprete comandi –  interfaccia dire4a, semplice ed intuiCva con gli utenC Il sistema operaCvo •  Dal punto di vista stru4urale il sistema operaCvo è formato da un insieme di livelli, che formano la cosi de4a “stru4ura a cipolla” •  Idealmente l’utente è ignaro di tuU i de4agli delle operazioni svolte dai livelli inferiori della gerarchia e conosce solo le operazioni del livello più alto Funzioni principali del sistema operaCvo •  Avvio del computer •  GesCone del processore e dei programmi in esecuzione (deU processi) •  GesCone della memoria principale •  GesCone della memoria virtuale •  GesCone della memoria secondaria •  GesCone dei disposiCvi di input/output •  Interazione con l’utente Avvio dell’elaboratore •  Una parte del sistema operaCvo deve essere sempre mantenuta in memoria principale e deve essere sempre pronta per l’esecuzione 0
1
2
3
4
5
S.O.
spazio
utente
N
Avvio dell’elaboratore: i virus •  Spesso durante questa fase sono eseguiC anche dei programmi che verificano l’eventuale presenza di virus sul disco dell’elaboratore •  I virus può danneggiare il funzionamento dell’elaboratore •  I virus possono essere trasmessi da un elaboratore ad un altro Malware • 
• 
• 
• 
malicious so&ware computer virus: programma che può riprodursi a4accando il suo codice ad un altro programma, al se4ore di avvio di un disco o ad un documento con macro e, in generale, generare effeU collaterali dannosi worm (verme): programma che si diffonde tra gli elaboratori autoreplicandosi mediante la rete (sopra4u4o e-­‐mail) trojan horse (cavallo di troia): programma distruUvo nascosto all’interno di un programma applicaCvo o di un gioco –  hacker (o cracker): individuo che aggira le protezioni di un sistema informaCco per compiere accessi non autorizzaC • 
• 
spyware: programma che raccoglie, senza autorizzazione, informazioni sull’utente e le sue abitudini (applicazioni eseguite, siC web visitaC …) adware (adverCsing-­‐supported so&ware): programma che propone pubblicità –  adware disonesto: installato senza autorizzazione • 
• 
crimeware: programmi per il furto d’idenCtà hoax (bufala): messaggio e-­‐mail che annuncia l’imminente arrivo di messaggi e-­‐mail infe4aC da pericolosissimi virus inesistenC Protezione dal malware •  diffidenza verso: – 
– 
– 
– 
materiale scaricato da siC web dubbi e-­‐mail con contenuto e/o mi4ente strano documenC con macro PC usaC da molte persone •  anCvirus: – 
– 
– 
– 
aggiornamento scansione avviata manualmente ed automaCcamente controlli automaCci costanC controllo e-­‐mail •  firewall (muro tagliafuoco) So&ware: opera dell’ingegno •  SW proprietario –  può essere usato acquistandolo oppure o4enendo l’autorizzazione all’uso (licenza) •  SW shareware –  distribuito gratuitamente, può essere usato gratuitamente per un periodo di prova –  dopo, pagando la registrazione, si può uClizzarlo e ricevere aggiornamenC •  SW freeware –  può essere liberamente usato, copiato e distribuito •  SW libero e SW open source –  può essere usato, copiato e distribuito graCs ma rispe4ando alcune regole So&ware applicaCvo •  videoscri4ura (word processor) •  fogli ele4ronici (spreadsheet) •  presentazioni mulCmediali •  desktop publishing •  gesCone di basi di daC •  web editor •  grafica e fotoritocco •  diagrammi •  gesCone delle finanze individuali •  organizer •  project management •  OCR •  CAD •  videogiochi •  audio/video player •  applicazioni per Internet •  … SISTEMI OPERATIVI e CPU • 1975 : Arriva Altair; Gates e Allen scrivono una versione di BASIC per questo computer; nasce Electric Pencil , il primo wordprocessor per PC; Steve Jobs (fondatore e CEO di Apple) e Steve Wozniac costruiscono il primo computer Apple; • 1976 : ARPANET conta 111 computer connessi; • 1977 : Apple presenta Apple II che supportava i colori; • 1981 : IBM presenta il suo primo PC ; •  1982: Intel lancia 80286, Arpanet ado4a tcp/ip di Berkeley; nasce il CD grazie a Sony e Philips; •  1983: Apple presenta Lisa, un computer con interfaccia totalmente grafica; •  1984: Apple lancia Machintosh, Microso& presenta un antenato di Windows (Interface Manager); •  1985: Intel lancia il 386, Microso& presenta Windows 1.0, •  1987: IBM e Microso& presentano OS/2 e IBM crea la scheda grafica VGA •  1989: Intel presenta il 486 a 25 Mhz; •  1990: Windows 3.0 ; • 1991: nasce MS-­‐DOS 5.0 , Apple presenta System 7.0 Machintosh; • 1992: Intel produce il 486DX2 a 25/50 Mhz, Windows 3.1 • 1993: Windows NT 3.1 ; cresce Linux e nasce Mosaic 1.0; • 1994: Apple produce i Power Machintosh , Intel presenta il 486 DX4 35 , nasce Netscape Navigator 1.0; • 1995: Nasce Windows 95 , e scoppia quasi una “rivoluzione” ; • 1996: Intel PenCum a 200 Mhz, Windows NT 4.0 • 1998 : PenCum II ; Windows 98 ; •  1999: PenCum III , AMD presenta Athlon e Apple il G4; •  2000: Windows 2000; Athlon arriva a 1 Ghz , Intel presenta il PenCum 4; •  2001: Esce la nuova versione di Windows a 32 bit: "Windows XP, dove "Xp" sta per "EXperience“ Con tanto di cerimonia ufficiale viene dato l'addio al glorioso, ma ormai obsoleto, MS-­‐Dos. Si apre una nuova era, la nuova versione di Windows predilige la stabilità e la sicurezza del sistema,dispone di strumenC contro la pirateria informaCca. Pen7um 4 a 2 Ghz; •  2002: Il PenCum 4 aumenta di frequenza , AMD presenta Athlon XP a 0,13 micron ed Opteron si diffondono nuovi standard (USB 2.0 , Serial ATA ecc.). INTEL Core 2 Duo Frequenza CPU 1.06GHz -­‐ 3.3GHz Uscita: 27 Luglio 2006 INTEL Core 2 Quad Frequenza CPU 2.4GHz -­‐ 3.0 GHz Uscita: 8 Gennaio 2007 • Nel 2007 esce Windows Vista AMD Phenom (archite8ura K10) Frequenza CPU 1800mhz -­‐ 2600mhz Uscita: novembre 2007 INTEL Core i7 Extreme Frequenza CPU 3.2Ghz Uscita: 17 Novembre 2008 • Nel 2009 esce Windows 7 • Nel 2012 esce Windows 8 • Nel 2015 esce Windows 10 Microso& MS-­‐DOS Windows 1.0 2.0 3.0 Word 6.0-­‐Excel 5.0 Windows 95 Office 97 Word-­‐Excel-­‐Access Sistemi e paccheb • Windows 95 • Windows NT • Windows 98 • Windows 2000 • Windows ME • Windows XP • Windows Server 2003 • Windows Vista • Windows 7 • Windows 8 • Windows 10 • Office 97 • Office 2000 • Office XP • Office 2003 • Office 2007 • Office 2010 • Office 2013 • Office 2016