12.12.2012 Views

4 Creare contenuti per il web - Andrea Giachetti

4 Creare contenuti per il web - Andrea Giachetti

4 Creare contenuti per il web - Andrea Giachetti

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

10<br />

linguaggio macchina del calcolatore, quindi ut<strong>il</strong>izzando direttamente i codici o<strong>per</strong>ativi delle<br />

singole istruzioni (trasferimenti di caselle di memoria nella CPU, o<strong>per</strong>azioni aritmetiche e<br />

logiche su tali sequenze binarie e così via). Come vedremo, l'evoluzione del software ha<br />

fortunatamente fatto sì che le o<strong>per</strong>azioni di programmazione diventassero sempre più fac<strong>il</strong>i e<br />

questo ha ovviamente contribuito notevolmente alla diffusione ed al successo degli strumenti<br />

informatici<br />

1.3 Software di base, i sistemi o<strong>per</strong>ativi<br />

Uno dei passi fondamentali che hanno portato a trasformare <strong>il</strong> computer in uno strumento di<br />

larga diffusione è stato lo sv<strong>il</strong>uppo dei sistemi o<strong>per</strong>ativi, cioè dei programmi di gestione delle<br />

risorse della macchina che <strong>per</strong>mettono a programmatori ed ut<strong>il</strong>izzatori di lavorare ad “alto<br />

livello” senza dover conoscere nel dettaglio la tecnologia delle macchine ut<strong>il</strong>izzate.<br />

I sistemi o<strong>per</strong>ativi creano le interfacce con cui l'utente riesce ad interagire con la macchina e da<br />

essi dipendono quindi la semplicità di uso e le potenzialità applicative della stessa.<br />

I sistemi o<strong>per</strong>ativi si occupano quindi di fornire sistemi semplificati di gestione dell'esecuzione<br />

dei programmi, di allocare automaticamente ed in modo sicuro la memoria necessaria<br />

all'esecuzione degli stessi, di fornire sistemi di accesso e di uso di tutti i dispositivi a<br />

disposizione (dal disco rigido, con <strong>il</strong> f<strong>il</strong>esystem, a tutti i sistemi di input/output). Con i primi<br />

sistemi o<strong>per</strong>ativi i programmatori ebbero vita molto semplificata: non dovevano più<br />

preoccuparsi della gestione dell'hardware e hanno poi avuto a disposizione linguaggi di alto<br />

livello <strong>per</strong> la programmazione, che hanno fatto sì che <strong>per</strong> realizzare applicazioni <strong>per</strong> <strong>il</strong><br />

calcolatore non fosse più necessario conoscere i linguaggi macchina. Usando tali linguaggi (es.<br />

Fortran, C, C++) si possono scrivere programmi in codici testuali che somigliano al linguaggio<br />

naturale che vengono poi tradotti da software specifici (comp<strong>il</strong>atori o interpreti) <strong>per</strong> diventare<br />

eseguib<strong>il</strong>i. I sistemi o<strong>per</strong>ativi mettono poi a disposizione “librerie” che contengono tutte le<br />

funzioni <strong>per</strong> ut<strong>il</strong>izzare in modo semplice le risorse della macchina, evitando di scrivere <strong>il</strong> codice<br />

specifico e consentendo quindi a chi scrive i programmi di o<strong>per</strong>are su f<strong>il</strong>e, dispositivi esterni,<br />

ecc. come entità “astratte” ut<strong>il</strong>izzando una sintassi predefinita. Per fare un esempio pratico, <strong>per</strong><br />

scrivere un programma che apre una “finestra” sullo schermo, <strong>il</strong> programmatore non scrive <strong>il</strong><br />

codice che colora i pixel dello schermo, ma “chiede” al sistema o<strong>per</strong>ativo di aprire un “oggetto”<br />

finestra con determinate dimensioni e caratteristiche. L'evoluzione dei sistemi o<strong>per</strong>ativi ha poi<br />

consentito di eseguire i programmi in maniera interattiva e sofisticata ponendo le basi <strong>per</strong><br />

l'evoluzione dei sistemi utente moderni. Oggi quasi tutti i sistemi o<strong>per</strong>ativi dei vari tipi di<br />

computer <strong>per</strong>mettono di fare eseguire contemporaneamente molti programmi (<strong>il</strong> cosiddetto<br />

multitasking) senza conflitti (cioè senza che l'esecuzione di uno influenzi quella di un altro) ed<br />

in modo interattivo, cioè consentendo all'utente di intervenire nell'esecuzione interrompendola<br />

e modificandone le condizioni. Questo avviene alternando nella CPU i differenti programmi in<br />

esecuzione (processi) <strong>per</strong> brevissimi intervalli di tempo in modo che tutti possano essere<br />

eseguiti apparentemente nello stesso momento e controllando le richieste di interruzione create<br />

dai dispositivi di ingresso. Queste caratteristiche e lo sv<strong>il</strong>uppo di sempre più sofisticate<br />

interfacce utente (ad esempio le interfacce a riga di comando e i sistemi a finestra) hanno<br />

consentito di passare da una macchina in grado di risolvere una serie di problemi, in maniera<br />

poco o nulla interattiva, in un oggetto dalle m<strong>il</strong>le funzioni, con <strong>il</strong> quale possiamo interagire in<br />

tempo reale attraverso differenti dispositivi di ingresso (tastiere, mouse, touchscreen,<br />

telecamere, microfoni) e di uscita (monitor e schede video, stampanti , casse acustiche e schede<br />

audio). Con <strong>il</strong> software dei sistemi sono state sv<strong>il</strong>uppate anche determinate modalità o

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!