4 Creare contenuti per il web - Andrea Giachetti
4 Creare contenuti per il web - Andrea Giachetti
4 Creare contenuti per il web - Andrea Giachetti
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