next up previous contents
Next: caratteristiche di UNIX Up: Introduzione Previous: generalità e obiettivi   Contents

caratteristiche del software

Per illustrare le caratteristiche che rendono il software un prodotto diverso da altri, partiamo dal confronto tra due oggetti di uso comune:

Apparentemente, hanno molto in comune. Tra le altre cose, entrambi sono costituiti da aspetti materiali (la meccanica e l'elettronica o hardware) e da una ``logica'' (software), cioè uno schema di funzionamento impartito all'hardware che permette all'utente di dare istruzioni.

Il PC ha però una caratteristica fondamentale: hardware (h/w) e software (s/w) non sono collegati in modo inscindibile. È possibile sostituire il s/w mantenendo lo stesso h/w, o trasferire il s/w su un h/w diverso; cosa che in genere non è possibile fare su un televisore.

Questa modularità di h/w e s/w nel PC ha alcuni vantaggi

Con l'evolversi di un prodotto, anche la sua modularità tende ad estendersi. Come nell'h/w ci si specializza nei vari componenti (schede, periferiche, etc), anche il s/w si è via via specializzato attraverso la divisione in elementi o livelli che hanno funzioni diverse:

Il Sistema Operativo è il s/w base, che permette di fare un po' tutto e sul quale si possono innestare programmi a funzione specifica, o applicazioni. A sua volta i S.O. si è via via articolato in vari componenti: kernel, comandi, interfacce utente, ...

Perché l'organizzazione in moduli indipendenti dia i migliori frutti è necessario che il punto di contatto o interfaccia tra i vari livelli abbia caratteristiche note e pubbliche: sia cioè uno standard. La possibilità di utilizzare diverse apparecchiature nell'impianto elettrico di casa è legata all'esistenza di prese di corrente sempre uguali.

Si è visto che un secondo elemento che risulta utile è la possibilità di conoscere il funzionamento del s/w, ad esempio del Sistema Operativo. In questo modo si possono produrre applicazioni che non solo possono funzionare (grazie all'intefaccia standard) ma anche sfruttano al meglio le caratteristiche del S.O. È noto che sul sistema Windows della Microsoft le applicazioni Microsoft funzionano meglio di quelle concorrenti, e ciò grazie ad una proficua collaborazione tra gli sviluppatori delle applicazioni e quelli del S.O. Questa possibilità è aperta a tutti quando il funzionamento è noto, o, come si dice, il codice origine è in chiaro (open source)

Il massimo dell'efficienza lo si raggiunge quando l'utente o sviluppatore hanno del s/w una disponibilità piena, cioè quando il s/w è ``libero''. Con questo non si intende gratuito. Si intende che una volta acquistato se ne acquisiscono pieni diritti. Illustriamo questo concetto con un confronto tra i diritti che si hanno quando si compra un'automobile e quando si compra un software ``proprietario'' come Microsoft Windows:

l'acquirente ha diritto di automobile Windows
usarlo SI SI
studiarne il funzionamento SI NO
modificarlo SI NO
cederlo, anche modificato SI NO

L'esperienza sembra dimostrare che rendere il s/w libero e a codice in chiaro è remunerativo anche dal punto di vista del produttore: ad esempio, di alcuni prodotti gira una versione libera che permette al produttore della versione commerciale di mettere a punto un prodotto migliore:

In ambiti scolastici si è notato che l'uso di s/w libero permette di:


next up previous contents
Next: caratteristiche di UNIX Up: Introduzione Previous: generalità e obiettivi   Contents
Giorgio F. Signorini 2011-11-14