1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
7 <meta name="generator" content=
8 "HTML Tidy for Linux (vers 6 November 2007), see www.w3.org" />
9 <meta http-equiv="Content-Type" content=
10 "text/html; charset=us-ascii" />
11 <meta name="generator" content=
12 "Docutils 0.5: http://docutils.sourceforge.net/" />
14 <title>Informatica di Base</title>
15 <style type="text/css">
19 :Author: David Goodger (goodger@python.org)
20 :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
21 :Copyright: This stylesheet has been placed in the public domain.
23 Default cascading style sheet for the HTML output of Docutils.
25 See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
26 customize this style sheet.
29 /* used to remove borders from tables and images */
30 .borderless, table.borderless td, table.borderless th {
33 table.borderless td, table.borderless th {
34 /* Override padding for "table.docutils td" with "! important".
35 The right padding separates the table cells. */
36 padding: 0 0.5em 0 0 ! important }
39 /* Override more specific margin styles with "! important". */
40 margin-top: 0 ! important }
42 .last, .with-subtitle {
43 margin-bottom: 0 ! important }
49 text-decoration: none ;
56 margin-bottom: 0.5em }
58 /* Uncomment (and remove this text!) to get bold-faced definition list terms
66 div.abstract p.topic-title {
70 div.admonition, div.attention, div.caution, div.danger, div.error,
71 div.hint, div.important, div.note, div.tip, div.warning {
73 border: medium outset ;
76 div.admonition p.admonition-title, div.hint p.admonition-title,
77 div.important p.admonition-title, div.note p.admonition-title,
78 div.tip p.admonition-title {
80 font-family: sans-serif }
82 div.attention p.admonition-title, div.caution p.admonition-title,
83 div.danger p.admonition-title, div.error p.admonition-title,
84 div.warning p.admonition-title {
87 font-family: sans-serif }
89 /* Uncomment (and remove this text!) to get reduced vertical space in
91 div.compound .compound-first, div.compound .compound-middle {
92 margin-bottom: 0.5em }
94 div.compound .compound-last, div.compound .compound-middle {
103 div.dedication p.topic-title {
111 div.footer, div.header {
120 div.line-block div.line-block {
126 margin: 0 0 0.5em 1em ;
127 border: medium outset ;
129 background-color: #ffffee ;
134 div.sidebar p.rubric {
135 font-family: sans-serif ;
138 div.system-messages {
141 div.system-messages h1 {
145 border: medium outset ;
148 div.system-message p.system-message-title {
155 h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
156 h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
174 ol.simple, ul.simple {
178 list-style: decimal }
181 list-style: lower-alpha }
184 list-style: upper-alpha }
187 list-style: lower-roman }
190 list-style: upper-roman }
204 white-space: nowrap }
213 font-family: sans-serif ;
218 font-family: sans-serif ;
230 pre.literal-block, pre.doctest-block {
235 font-family: sans-serif ;
236 font-style: oblique }
238 span.classifier-delimiter {
239 font-family: sans-serif ;
243 font-family: sans-serif }
246 white-space: nowrap }
254 span.section-subtitle {
255 /* font-size relative to parent (h1..h6 element) */
259 border-left: solid 1px gray;
267 margin-bottom: 0.5em }
270 border-left: solid 1px black;
273 table.docutils td, table.docutils th,
274 table.docinfo td, table.docinfo th {
275 padding-left: 0.5em ;
276 padding-right: 0.5em ;
277 vertical-align: top }
279 table.docutils th.field-name, table.docinfo th.docinfo-name {
282 white-space: nowrap ;
285 h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
286 h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
290 list-style-type: none }
297 <div class="document" id="informatica-di-base">
298 <h1 class="title">Informatica di Base</h1>
300 <h2 class="subtitle" id=
301 "appunti-introduttivi-ai-sistemi-informativi">Appunti
302 introduttivi ai sistemi informativi</h2>
305 <table class="docutils field-list" frame="void" rules="none">
306 <col class="field-name" />
307 <col class="field-body" />
311 <th class="field-name">Author:</th>
313 <td class="field-body">Andrea Manni</td>
317 <th class="field-name">Copyright:</th>
319 <td class="field-body">GFDL</td>
323 <th class="field-name">Version:</th>
325 <td class="field-body">1.5</td>
331 <div class="contents topic" id="indice">
332 <p class="topic-title first">Indice</p>
336 <a class="reference internal" href="#informatica" id=
337 "id4" name="id4">Informatica</a>
340 <li><a class="reference internal" href=
341 "#evoluzione-nella-societa" id="id5" name=
342 "id5">Evoluzione nella societa'</a></li>
346 <li><a class="reference internal" href=
347 "#analogico-e-digitale" id="id6" name="id6">Analogico e
350 <li><a class="reference internal" href="#sistema-binario"
351 id="id7" name="id7">Sistema Binario</a></li>
354 <a class="reference internal" href="#unita-di-misura" id=
355 "id8" name="id8">Unita' di misura</a>
358 <li><a class="reference internal" href=
359 "#multipli-del-bit-tabelle-di-conversione" id="id9"
360 name="id9">Multipli del Bit (TABELLE DI
361 CONVERSIONE):</a></li>
363 <li><a class="reference internal" href=
364 "#trasmissione-dati-su-reti" id="id10" name=
365 "id10">Trasmissione dati su reti</a></li>
367 <li><a class="reference internal" href=
368 "#velocita-di-clock" id="id11" name="id11">Velocita' di
374 <a class="reference internal" href=
375 "#supporti-di-storaggio-dati" id="id12" name=
376 "id12">Supporti di storaggio (dati)</a>
379 <li><a class="reference internal" href="#hard-disks"
380 id="id13" name="id13">Hard Disks</a></li>
382 <li><a class="reference internal" href="#memorie-flash"
383 id="id14" name="id14">Memorie Flash</a></li>
386 <a class="reference internal" href=
387 "#propieta-dei-supporti-di-storaggio" id="id15" name=
388 "id15">Propieta' dei supporti di storaggio</a>
391 <li><a class="reference internal" href="#hard-disk"
392 id="id16" name="id16">HARD DISK</a></li>
399 <a class="reference internal" href=
400 "#classi-di-elaboratori" id="id17" name="id17">Classi di
404 <li><a class="reference internal" href=
405 "#calcolatori-tascabili" id="id18" name=
406 "id18">Calcolatori tascabili</a></li>
408 <li><a class="reference internal" href=
409 "#palmari-e-smart-phones" id="id19" name="id19">Palmari
410 e smart phones</a></li>
412 <li><a class="reference internal" href=
413 "#ultraportabili-netbook" id="id20" name=
414 "id20">Ultraportabili (netbook)</a></li>
417 <a class="reference internal" href="#portatili" id=
418 "id21" name="id21">Portatili</a>
421 <li><a class="reference internal" href=
422 "#trasportabili" id="id22" name=
423 "id22">Trasportabili</a></li>
425 <li><a class="reference internal" href=
426 "#ultraportatili" id="id23" name=
427 "id23">Ultraportatili</a></li>
431 <li><a class="reference internal" href=
432 "#personal-computer" id="id24" name="id24">Personal
435 <li><a class="reference internal" href="#work-station"
436 id="id25" name="id25">Work Station</a></li>
438 <li><a class="reference internal" href="#server" id=
439 "id26" name="id26">Server</a></li>
441 <li><a class="reference internal" href="#mainframe" id=
442 "id27" name="id27">Mainframe</a></li>
444 <li><a class="reference internal" href="#cluster" id=
445 "id28" name="id28">Cluster</a></li>
447 <li><a class="reference internal" href="#supercomputer"
448 id="id29" name="id29">Supercomputer</a></li>
453 <a class="reference internal" href=
454 "#linguaggi-di-programmazione" id="id30" name=
455 "id30">Linguaggi di programmazione</a>
458 <li><a class="reference internal" href="#compilatori"
459 id="id31" name="id31">Compilatori</a></li>
461 <li><a class="reference internal" href="#interpreti"
462 id="id32" name="id32">Interpreti</a></li>
464 <li><a class="reference internal" href=
465 "#java-e-similari" id="id33" name="id33">Java e
470 <li><a class="reference internal" href="#licenze-software"
471 id="id34" name="id34">Licenze software</a></li>
474 <a class="reference internal" href="#tipi-di-licenze" id=
475 "id35" name="id35">Tipi di licenze</a>
478 <li><a class="reference internal" href=
479 "#publico-dominio" id="id36" name="id36">Publico
482 <li><a class="reference internal" href="#freeware" id=
483 "id37" name="id37">Freeware</a></li>
485 <li><a class="reference internal" href="#shareware" id=
486 "id38" name="id38">Shareware</a></li>
491 <a class="reference internal" href=
492 "#licenze-per-software-liberi" id="id39" name=
493 "id39">Licenze per software liberi</a>
496 <li><a class="reference internal" href=
497 "#copyleft-copyright" id="id40" name="id40">Copyleft !=
500 <li><a class="reference internal" href="#licenza-bsd"
501 id="id41" name="id41">Licenza BSD</a></li>
503 <li><a class="reference internal" href=
504 "#licenza-apache" id="id42" name="id42">Licenza
509 <li><a class="reference internal" href="#eula" id="id43"
510 name="id43">Eula</a></li>
514 <p>Generato con: <a class="reference external" href=
515 "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
517 <div class="section" id="informatica">
518 <h1><a class="toc-backref" href=
519 "#id4">Informatica</a></h1><img alt="img/180px-Apple2.jpg"
520 src="img/180px-Apple2.jpg" />
522 <dl class="docutils">
523 <dt>Informatica:</dt>
525 <dd>L'informatica e' una scienza interdisciplinare che
526 riguarda tutti gli aspetti del trattamento
527 dell'informazione mediante procedure automatizzate.</dd>
530 <p>L'oggetto della materia sono quindi i
531 <strong>dati</strong> e la <strong>manipolazione</strong> di
532 questi, da un lato la capacita' di <em>storare</em> i dati
533 (cosa non cosi' elementare quando il quantitativo diventa
534 enorme) per poterli poi <em>manipolare</em>. Buona parte del
535 lavoro del sistemista consistera' quindi nel garantire
536 l'<em>integrita'</em> e la <em>disponibilita'</em> (intesa
537 come <em>continuita'</em> del servizio) dei dati. Stara' poi
538 all'<em>amministratore di rete</em> preoccuparsi di renderli
539 disponibili (si pensi a un sito web che rende delle risorse
540 disponibili) agli <em>utilizzatori</em>.</p>
542 <p>Link sull'argomento: <a class="reference external" href=
543 "http://it.wikipedia.org/wiki/Informatica">http://it.wikipedia.org/wiki/Informatica</a></p>
545 <div class="section" id="evoluzione-nella-societa">
546 <h2><a class="toc-backref" href="#id5">Evoluzione nella
549 <p>Per meglio percepire l'importanza dell'informatica si
550 rifletta sull'influenza che le seguenti invenzioni nel
551 campo del trattamento delle informazioni hanno avuto sulla
557 <dl class="first docutils">
558 <dt>Diffusione della scrittura:</dt>
561 <ul class="first last simple">
562 <li><em>integrita'</em> dell'informazione: dati
563 come il costo di una merce cessano di essere
564 arbitrari, con conseguenze negli scambi
567 <li>maggiore durata nel tempo delle
568 informazioni (seppur limitata da supporti
576 <dl class="first docutils">
577 <dt>Invenzione della stampa: <a class=
578 "reference external" href=
579 "%3CMergeConflict%3E">Gutenberg</a> 1448</dt>
582 <ul class="first last simple">
583 <li>Maggiore diffusione delle informazioni
584 grazie all'abbattimento dei costi di
587 <li>Progressivo ampliamento della base di
588 utenza: sempre piu' persone possono almeno
589 imparare a leggere e quindi emanciparsi da una
590 <em>casta</em> ristretta che mantiene il
591 controllo sulla fruizione delle informazioni.
592 Seppure in misura minore aumenta anche la
593 possibilita' di produrre e diffondere
601 <dl class="first docutils">
602 <dt>Nascita dell'informatica/elettronica</dt>
605 <ul class="first last simple">
606 <li>Superamento di parte dei problemi legati
607 alla deperibilita' dei supporti sui quali si
608 conservano le informazioni.</li>
610 <li>Enorme aumento del quantitativo di dati
611 gestibili e abbassamento del costo di gestione.
612 Supporti magnetici e ottici hanno radicalmento
613 cambiato il modo di archiviare le informazioni
614 rispetto ai depositi cartacei.</li>
616 <li>Maggiore rapidita' nella trattazione delle
617 informazioni, per es. la possibilita' di
618 censire la popolazione rapidamente e gestire un
619 apparato fiscale piu' efficiente.</li>
621 <li>Possibilita' di incrociare i dati,
622 ottenendo sostanzialmente nuovo valore da
623 informazioni preesistenti</li>
630 <dl class="first docutils">
631 <dt>Diffusione della rete Internet</dt>
634 <ul class="first last simple">
635 <li>Disponibilita' globale delle informazioni
636 (in formato elettronico) con costi nettamente
637 minori rispetto al passato</li>
639 <li>Abbattimento del costo della diffusione
640 delle informazioni</li>
648 <p>L'importanza della gestione digitale delle informazioni
649 e' tale da accentuare il divario esistente tra chi puo'
650 accedere ai nuovi mezzi e chi ne e' escluso, problema
651 indicato generalmente con il termine <a class=
652 "reference external" href=
653 ":http://it.wikipedia.org/wiki/Digital_Divide#Descrizione">Digital
657 <hr class="docutils" />
659 <div class="section" id="analogico-e-digitale">
660 <h1><a class="toc-backref" href="#id6">Analogico e
663 <dl class="docutils">
664 <dt>Grandezze analogiche:</dt>
666 <dd>Sono grandezze <strong>continue</strong>: hanno
667 infiniti <em>stadi intermedi</em>. Si pensi al movimento
668 dell'ombra dell'asta di una meridiana in contrapposizione
669 alle posizioni finite di un orologio digitale, o alle
670 infinite posizioni che puo' assumere il potenziometro di un
671 amplificatore (ovviamente un amplificatore
672 <em>analogico</em>!). Tensione e corrente elettriche sono
673 grandezze analogiche perche' rappresentabili con funzioni
676 <dt>Grandezze digitali:</dt>
678 <dd>Sono <em>discrete</em>: assumono un numero
679 <em>finito</em> di stadi intermedi. Ad esempio
680 l'interruttore per accendere una lampada. Quando i valori
681 sono solo due si parla di valori <em>binari</em>, caso che
682 riscontriamo in tutte le tecnologie basate sul silicio come
683 i microprocessori o sui vecchi transistor. Si potrebbe
684 pensare ai componenti di un computer come ad enorme numero
685 di lampadine che possono essere solo accese o spente:
686 l'evoluzione tecnologica passando dai transistor ai
687 microporocessori ha raggiunto un livello di
688 miniaturizzazione dell'ordine dei ~30 nanometri.</dd>
690 <dt>La miniaturizzazione presenta i seguenti vantaggi:</dt>
693 <ul class="first last simple">
694 <li>Minor costo di produzione ( rapporto tra il numero
695 di transistor e superfice del <em>wafer</em> sul quale
696 si stampano i microprocessori)</li>
698 <li>Minore distanza tra gli elementi = minore
699 <em>attrito</em> prodotto dal passaggio della corrente
700 = minore dispersione termica = minore calore. Questo si
701 traduce in un minore consumo elettrico, ulteriormente
702 accentuato dal corrispettivo risparmio sulle unita' di
708 <p>In informatica, con digitale ci si riferisce a tutto cio'
709 che viene rappresentato con numeri o che opera manipolando
710 numeri. Il termine deriva dall'inglese digit, che significa
711 cifra, che a sua volta deriva dal latino digitus, che
712 significa dito.</p><img alt="img/differ16.gif" src=
713 "img/differ16.gif" />
715 <dl class="docutils">
716 <dt>Una grandezza, tensione o corrente, si dice analogica
717 quando al variare del tempo puo' essere rappresentata
718 mediante una funzione continua,</dt>
720 <dd>senza punti di discontinuita'.</dd>
723 <p>Una grandezza si dice digitale quando viene rappresentata
724 mediante un sistema binario costituito da valori 0 ed 1.</p>
726 <p>Links: <a class="reference external" href=
727 "http://www.culturadigitale.net/?p=4">http://www.culturadigitale.net/?p=4</a></p>
729 <p>In informatica quindi si pone costantemente il problema
730 della rappresentazione delle grandezze analogiche (tipiche
731 del mondo <em>reale</em>) in valori digitali (discreti, e
732 quindi approsimativi) <strong>A/D - D/A</strong></p>
735 <div class="section" id="sistema-binario">
736 <h1><a class="toc-backref" href="#id7">Sistema
739 <p>I <em>computer</em> lavorano solo con grandezze finite, e
740 si basano su sistemi cosidetti <em>binari</em>, dato che i
741 microprocessori sono transistor miniaturizzati, che a loro
742 volta possono essere visti come insiemi di lampadine che per
743 definizione possono essere solo <em>accese</em> o
746 <p>Potremmo considerare quindi i due stati come:</p>
756 <p>Entita' <em>discrete</em> come numeri interi o caratteri
757 possono essere espressi facilmente con la sola combinazione
758 dei valori 0 e 1, mentre valori <em>complessi</em>
759 riconducibili a numeri reali (pensiamo alle infinite
760 sfumature di un colore o ai suoni) tramite un'approssimazione
761 basata su un numero di bit arbitrario. Ad esempio Il
762 carattere <em>a</em> in formato <em>ASCII</em> si puo'
763 esprimere con: <tt class="docutils literal"><span class=
764 "pre">01100001</span></tt> , un'immagine puo' essere
765 rappresentata da una griglia di punti (pixel) piu' o meno
766 estesa (risoluzione) con una certa <em>profondita' di
767 colore</em> espressa in bit,</p>
769 <p>E cercare di comporre valori <em>complessi</em>
770 (approssimazione di numeri reali tramite un numero di bit
771 arbitrario), con la sola combinazione dei valori 0 e 1,
772 mentre entita' <em>discrete</em> Il carattere <em>a</em> in
773 formato <em>ASCII</em> si puo' esprimere con: <tt class=
774 "docutils literal"><span class="pre">01100001</span></tt>
777 <p>Schema sulla trasformazione da binario a decimale:</p>
778 <pre class="literal-block">
779 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 decimali = 0
780 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 decimali = 1
781 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 decimali = 2
782 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 decimali = 3
783 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 decimali = 4
784 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 decimali = 5
785 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 decimali = 6
787 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 decimali = 255
790 <dl class="docutils">
791 <dt>Si lavora in base 2 (cioe' si moltiplica sempre per 2),
792 quindi si ha a che fare con sequenze numeriche del
796 <p class="first"><tt class=
797 "docutils literal"><span class="pre">2</span>
798 <span class="pre">4</span> <span class="pre">8</span>
799 <span class="pre">16</span> <span class="pre">32</span>
800 <span class="pre">64</span> <span class="pre">128</span>
801 <span class="pre">256</span> <span class="pre">512</span>
802 <span class="pre">1024</span> <span class=
803 "pre">...</span></tt></p>
805 <p>C'e' una ripetizione di questi <em>patterns</em>
806 numerici dovuti alle <strong>parole</strong> usate dai
807 processori. Se l'unita' minima dell'informazione e' il
808 <em>bit</em>, l'unita' minima <em>funzionale</em> e' il
809 <strong>Byte</strong>: con 256 valori possibili possiamo
810 esprimere efficacemente caratteri, colori ed altre
811 informazioni percepibili dai nostri sensi.</p>
813 <p class="last">In informatica, word_(dall'inglese
814 parola) e' un termine che identifica la dimensione nativa
815 dei dati usati da un computer. Una word e' semplicemente
816 un gruppo di bit di una determinata dimensione che sono
817 gestiti come unita' da un microprocessore. La dimensione
818 (o lunghezza) della word e' un'importante caratteristica
819 dell'architettura di un computer.</p>
823 <dl class="docutils">
824 <dt>Links aggiuntivi:</dt>
827 <ul class="first last simple">
828 <li><a class="reference external" href=
829 "http://www.culturadigitale.net/?p=8">http://www.culturadigitale.net/?p=8</a></li>
831 <li><a class="reference external" href=
832 "http://doc.studenti.it/appunti/introduzione-allinformatica/2/introduzione-informatica.html">
833 http://doc.studenti.it/appunti/introduzione-allinformatica/2/introduzione-informatica.html</a></li>
839 <div class="section" id="unita-di-misura">
840 <h1><a class="toc-backref" href="#id8">Unita' di
843 <p>Se diciamo che una singola <em>lampadina</em> sia un
844 <strong>bit</strong>, nel nostro lavoro ci troviamo a gestire
845 miliardi di lampadine. Cerchiamo di definire dei multipli del
846 bit per rendere la quotidianita' piu' semplice.</p>
848 <dl class="docutils">
851 <dd>Una singola informazione, l'unita' minima. Si indica
852 con la <em>b</em> <strong>minuscola</strong>. E' l'unita'
853 di misura di riferimento per il <em>trasferimento</em> dei
854 dati su reti: una scheda di rete <em>10/100</em> sposta
855 circa 12MB (Bytes) al secondo.</dd>
859 <dd>Un Byte e' formato da 8 bit. Si indica con la
860 <em>B</em> <strong>Maiuscola</strong> . La si puo'
861 considerare l'unita' <em>funzionale</em> minima
862 nell'informatica, dato che un numero minore di bit
863 difficilmente puo' rappresentare qualcosa di significativo.
864 E' l'unita' di misura di riferimento per lo storaggio dati:
865 le dimensioni dei files e dei supporti di storaggio si
866 esprimono in Bytes.</dd>
869 <div class="section" id=
870 "multipli-del-bit-tabelle-di-conversione">
871 <h2><a class="toc-backref" href="#id9">Multipli del Bit
872 (TABELLE DI CONVERSIONE):</a></h2>
878 <li>Byte (B): 8 bit</li>
880 <li>Kilobyte (KB): 1024 B</li>
882 <li>Megabyte (MB): 1024 KB, 1048576 B</li>
884 <li>Gigabyte (GB): 1024 MB, 1048576 KB, 1073741824
887 <li>Terabyte (TB): 1024 GB, 1048576 MB, 1073741824 KB,
892 <p>Link disponibile: <a class="reference external" href=
893 "http://it.wikipedia.org/wiki/Byte">http://it.wikipedia.org/wiki/Byte</a></p>
895 <dl class="docutils">
898 <dd>Si tenga conto che i produttori di Hard Disk
899 generalmente indicano la capienza di detti supporti in
900 migliaia di megabyte e non 1024*: quindi per formattare 1
901 hd di 500 MB si considera 500/1000 (e non 500/1024).</dd>
905 <div class="section" id="trasmissione-dati-su-reti">
906 <h2><a class="toc-backref" href="#id10">Trasmissione dati
909 <p>Il termine velocita' di trasmissione (o di
910 trasferimento) viene solitamente utilizzato a proposito di
911 scambi di informazioni tra computer o comunque dispositivi
912 elettronici. Siccome su questi dispositivi l'informazione
913 viene memorizzata e viaggia in forma digitale, ovvero e'
914 sostanzialmente una sequenza di bit, e' naturale che tale
915 velocita' venga misurata in bit per secondo (e da qui il
916 termine equivalente inglese bitrate).</p>
918 <p>Ad esempio, se in una linea ADSL abbiamo un
919 trasferimento dati di 4 Mb/s, cioe' 4.000.000 b/s, avremo
920 (4.000.000/8) B/s equivalenti a 500 kB/s.</p>
922 <p>Quindi per calcolare la velocita' di trasferimento di un
923 file le cui dimensioni sono espresse in BYTEs su una rete
924 bisogna <strong>dividere per 8</strong></p>
930 <li>ADSL 20 Mb (<em>venti mega bit</em>) ha una
931 velocita' equivalente di circa ~1.8MB (<em>mega</em>
932 Bytes) per secondo</li>
934 <li>Rete etherent 10/100 Mb ha una velocita' di
935 trasferimento di circa ~12MB per secondo.</li>
939 <p>C'e' uno scarto tra la velocita' nominale di
940 trasferimento dati su una rete e l'effettivo trasferimento
941 dei dati tra i due punti. Tipicamente questo e' dovuto a
942 forme di interferenza del supporto trasmissivo (pensiamo a
943 una rete wifi su onde radio), a imprecisioni dell'hardware
944 di rete, conflitti tra pacchetti, problemi ambientali.</p>
947 <div class="section" id="velocita-di-clock">
948 <h2><a class="toc-backref" href="#id11">Velocita' di
951 <p>Usiamo l'<a class="reference external" href=
952 "http://it.wikipedia.org/wiki/Hertz">Hertz</a> come unita'
953 di misura per le frequenze quali quelle di clock della CPU
954 (es 2.0GHz numero di cicle del processore in un secondo) o
955 di un BUS di per il trasferimento dati (es 33Mhz). Un hertz
956 corrisponde alla distanza tra due creste di un onda.</p>
958 <p>In teoria, la <strong>velocita' o frequenza di
959 clock</strong> e' il numero di commutazioni (tra i due
960 livelli logici "0" e "1") che circuiti logici (interni ad
961 un'unita' di calcolo o di un microprocessore) sono in grado
962 di eseguire in un minuto secondo (preso come unita'di
963 tempo); essa espressa in cicli/secondo (Hertz) ed i suoi
966 <dl class="docutils">
967 <dt>Unita' di misura per le frequenze:</dt>
970 <ul class="first last simple">
971 <li>1 hekt o hertz (simbolo hHz ) = 102 Hz = 100
974 <li>1 kilohertz (simbolo kHz ) = 103 Hz = 1 000
977 <li>1 megahertz (simbolo MHz ) = 106 Hz = 1 000 000
980 <li>1 gigahertz (simbolo GHz ) = 109 Hz = 1 000 000
986 <p>Ricordiamo che i prefissi 'kilo', 'mega', 'giga', 'tera'
987 derivano dal sistema numerico decimale (a base 10) e
988 servono per esprimere le quantita' in 'ordini di
993 <li>1 KILO = mille = 10^3</li>
995 <li>1 MEGA = 1 milione = 10^6</li>
997 <li>1 GIGA = 1 miliardo = 10^9</li>
999 <li>1 TERA = mille miliardi = 10^12</li>
1003 <p>La velocita' o frequenza di clock e' il numero di
1004 commutazioni tra i due livelli logici "0" e "1" che
1005 circuiti logici interni ad un'unita' di calcolo o di un
1006 microprocessore sono in grado di eseguire nell'unita' di
1007 tempo di un minuto secondo, ed e' espressa in cicli al
1008 secondo, o hertz, e suoi multipli; normalmente per eseguire
1009 un'istruzione o una semplice somma sono necessari piu'
1012 <p>In queste moderne CPU essendo la velocita' di clock
1013 cosi' elevata, viene generata da un minuscolo oscillatore
1014 al quarzo posto all'interno della stessa CPU, regolabile
1015 tramite il BIOS. Gli informatici esperti sono in grado di
1016 aumentare le prestazioni dei computer aumentando la
1017 velocita' di clock nominale del processore, ma si tratta di
1018 un'operazione rischiosa che puo' portare al
1019 surriscaldamento della CPU. Vi sono comunque alcuni
1020 processori di particolare efficienza e robustezza che sono
1021 in grado di supportare bene velocita' di clock maggiori di
1022 quella nominale, senza subire danni. Nel gergo informatico
1023 questa operazione viene definita _overclocking, ed e'
1024 utilizzata anche dall'industria per testare l'affidabilita'
1025 delle CPU prodotte.</p>
1027 <p>Tipicamente la velocita' di clock consigliata per una
1028 cpu viene stabilita da un valore medio statistico ottenuto
1029 considerando vari esemplari del wafer da cui proviene la
1030 cpu, quindi e' possibile che la nostra CPU sia
1031 <em>stabile</em> anche a una velocita' di clock
1032 <strong>leggermente</strong> superiore a quella indicata.
1033 All'opposto, quando un elaboratore non necessita della
1034 velocita' massima della CPU e' possibile fare il
1035 <em>downclock</em> della stessa, in modo da ridurne il
1036 consumo e il riscaldamento, a vantaggio di una maggiore
1037 stabilita' del sistema e minore usura del sistema di
1040 <p>Le CPU piu' moderne, in particolare quelle montate sui
1041 sistemi portatili, possono variare dinamicamente la
1042 frequenza di lavoro a seconda del carico di lavoro da
1043 sostenere, in modo da ridurre il consumo medio e la
1044 rumorosita' (causata dalle ventole di raffreddamento). Ne
1045 e' un esempio la tecnologia <a class="reference external"
1046 href="http://it.wikipedia.org/wiki/SpeedStep">SpeedStep</a>
1047 di Intel, ed equivalenti di altri produttori.</p>
1051 <div class="section" id="supporti-di-storaggio-dati">
1052 <h1><a class="toc-backref" href="#id12">Supporti di storaggio
1055 <p>Supporti <strong>hardware</strong> adibiti a contenere le
1056 informazioni che trattiamo. In ambito informatico con il
1057 termine storage si identificano i dispositivi hardware, i
1058 supporti per la memorizzazione, le infrastrutture ed i
1059 software dedicati alla memorizzazione non volatile di grandi
1060 quantita' di informazioni in formato elettronico.</p>
1062 <p>Tipici esempi di supporto di storaggio sono:</p>
1070 <li>Unita' a nastro</li>
1076 <dl class="docutils">
1077 <dt>Supporti fisici per la memorizzazione non volatile:
1078 <a class="reference external" href=
1079 "http://it.wikipedia.org/wiki/Storage">http://it.wikipedia.org/wiki/Storage</a></dt>
1081 <dd>In ambito informatico con il termine STORAGE
1082 (STORAGGIO, contenitore che conserva info) si identifica
1083 tutto l'hardware (dipositivi/supporti/infrastrutture)
1084 dedicato alla memorizzazione non volatile di grandi
1085 quantita' di informazioni in <em>formato elettronico</em>.
1086 Tipici supporti storaggio sono: hard disks, CD-ROM, unita'
1087 a nastro,floppy, chiavette USB.</dd>
1090 <p>Con il termine memorizzazione non volatile si intende la
1091 possibilita' di immagazzinare delle informazioni in maniera
1092 persistente con una ragionevole probabilita' che
1093 l'informazione rimanga inalterata per un ragionevole lasso di
1096 <dl class="docutils">
1097 <dt>Con il termine memorizzazione NON VOLATILE si intende
1098 la possibilita' di immagazzinare delle informazioni IN
1099 MANIERA PERSISTENTE CON UNA RAGIONEVOLE PROBABILITA' CHE
1100 L'INFORMAZIONE RIMANGA INALTERATA PER UN RAGIONEVOLE LASSO
1101 DI TEMPO, e per farlo in formato digitale binario e'
1102 necessaria avere un supporto fisico con le seguenti
1103 caratteristiche:</dt>
1106 <p class="first">-sul supporto possono essere <em>scritte
1107 almeno una volta</em> sequenze di bit;</p>
1109 <p>-le sequenze di bit scritte rimangono <em>inalterate a
1110 meno di una specifica operazione di modifica</em>;</p>
1112 <p class="last">-le sequenze di bit possono essere
1113 <em>lette un numero elevato di volte</em> senza
1118 <p>La memoria RAM di un computer e' la tipica memoria
1119 volatile, infatti e' sufficiente che venga a mancare la
1120 corrente elettrica perche' tutte le informazioni in essa
1121 imagazzinate vadano perdute.</p>
1123 <p>Esistono molti supporti fisici che rispondono a queste
1124 caratteristiche, ma nella storia dell'informatica solo alcuni
1125 si sono affermati e sono tuttora utilizzati:</p>
1129 <li>Schede perforate (decisamente obsolete);</li>
1131 <li>Nastri magnetici;</li>
1133 <li>Dischi magnetici (hard disk e floppy disk);</li>
1135 <li>Dischi ottici;</li>
1139 <p>Supporti fisici per la memorizzazione non volatile:
1140 <a class="reference external" href=
1141 "http://it.wikipedia.org/wiki/Storage">http://it.wikipedia.org/wiki/Storage</a></p>
1143 <div class="section" id="hard-disks">
1144 <h2><a class="toc-backref" href="#id13">Hard Disks</a></h2>
1146 <p>Link: <a class="reference external" href=
1147 "http://it.wikipedia.org/wiki/Hard_disk">http://it.wikipedia.org/wiki/Hard_disk</a></p>
1149 <p>Il disco rigido o hard disk (anche chiamato disco fisso)
1150 e' un dispositivo utilizzato per la memorizzazione a lungo
1151 termine dei dati in un computer. Il disco rigido e' il
1152 <strong>principale supporto di storaggio</strong> dei
1153 computer per via della sua capienza (~300 GB) e della sua
1154 velocita' di trasferimento dati ( ~25MB per secondo) .</p>
1157 <div class="section" id="memorie-flash">
1158 <h2><a class="toc-backref" href="#id14">Memorie
1161 <p>I supporti di storaggio <em>USB</em> o comunque di tipo
1162 <a class="reference external" href=
1163 "http://it.wikipedia.org/wiki/Memoria_flash">NAND</a> o
1164 <a class="reference external" href=
1165 "http://it.wikipedia.org/wiki/Disco_a_stato_solido">SSD</a>
1166 sono supporti removibili usati alla stregua dei vecchi
1167 floppy disk. La caratteristica peculiare e' che non hanno
1168 parti in movimento e sono quindi meno delicati rispetto ai
1169 supporti magnetici con testine in movimento su dischi (come
1170 gli hard disks ) o a quelli a nastro (come nei dispositivi
1171 a cartucce quali DAT e similari ). Sono meno fragili dei
1172 supporti ottici ( ala CD-Rom ) e meno sensibili
1173 all'esposizione solare diretta, piu' compatti fino ad
1174 essere tascabili nei tagli piu' piccoli.</p>
1176 <p>Link: <a class="reference external" href=
1177 "http://it.wikipedia.org/wiki/Chiave_USB">http://it.wikipedia.org/wiki/Chiave_USB</a></p>
1180 <div class="section" id="propieta-dei-supporti-di-storaggio">
1181 <h2><a class="toc-backref" href="#id15">Propieta' dei
1182 supporti di storaggio</a></h2>
1184 <table border="1" class="docutils">
1193 <thead valign="bottom">
1195 <th class="head" colspan="5">Supporti di
1200 <th class="head">Tipo di dispositivo</th>
1202 <th class="head">capienza</th>
1204 <th class="head">lettura</th>
1206 <th class="head">scrittura</th>
1208 <th class="head">re-scrittura[1]</th>
1212 <tbody valign="top">
1226 <td>Floppy disk</td>
1232 <td>dipende [2]</td>
1311 <dl class="docutils">
1314 <dd>per DVD e Blue RAY valgono gli stessi ragionamenti di
1315 scrittura (R) e re-scrittura (RW) fatti per i CD, solo
1316 con <em>tante sigle in piu'</em>.</dd>
1319 <table class="docutils footnote" frame="void" id="id2"
1322 <col class="label" />
1326 <tbody valign="top">
1328 <td class="label">[1]</td>
1330 <td>Un floppy disk e' scrivibile se la targhetta e'
1331 posizionata in modalita' di scrittura, e all'opposto
1332 puo' diventare in sola lettura</td>
1337 <table class="docutils footnote" frame="void" id="id3"
1340 <col class="label" />
1344 <tbody valign="top">
1346 <td class="label">[2]</td>
1348 <td>Con <em>re-scrittura</em> si intende la
1349 possibilita' di modificare un dato piu' di una volta.
1350 Ad esempio su un supporto ottico <em>Recordable</em>
1351 si puo' scrivere una sola volta ( <a class=
1352 "reference external" href=
1353 "http://it.wikipedia.org/wiki/WORM">WORM</a> ),
1354 dopodiche i dati scritti non sono ulteriormente
1355 modificabili (ma possono essere aggiunte sucessive
1356 <em>sessioni</em> di scrittura se previsto). Questa
1357 caratteristica li rende indicati come supporto di
1358 back-up. Supporti <em>Rewritable</em> possono invece
1359 essere scritti piu' volte (la posizione dei cristalli
1360 pit/lane interni puo' essere modificata piu' volte,
1361 quindi i dati possono essere modificati /
1367 <dl class="docutils">
1368 <dt>Tutti supporti di storaggio hanno vita limitata
1369 (aspettativa di vita), influenzata fortemente dalla
1370 nostra modalita' di utilizzo e da fattori/accidenti
1371 esterni; sono quindi soggetti ad alcune norme di
1372 conservazione specifiche:</dt>
1375 <ul class="first last simple">
1376 <li>HD: mantiene dati per 2-5 anni</li>
1378 <li>SUPPORTI MAGNETICI: evitare l'esposizione a
1379 rapide variazioni termiche e campi magnetici.</li>
1381 <li>SUPPORTI OTTICI: tenerlo lontano da fonti calore,
1382 non depositarlo senza la custodia dedicata, non
1383 sottoporlo a nessun tipo di sollecitazione meccanica
1384 (piegarlo, torcerlo ).</li>
1389 <div class="section" id="hard-disk">
1390 <h3><a class="toc-backref" href="#id16">HARD
1393 <p>Il disco rigido o hard disk (anche chiamato disco
1394 fisso) e' un dispositivo utilizzato per la memorizzazione
1395 a lungo termine dei dati in un computer. E' 1 supporto
1396 magnetico con 1 testina che si sposta per leggere dati su
1397 uno o piu' dischi.</p>
1399 <p>Caratteristiche fondamentali: capiente (200-500 MB
1400 fino TB) + Trasf.dati (I/O) + riscrivibile (R,W,RW).</p>
1402 <p>E' quindi il <strong>principale supporto di
1403 storaggio</strong> per via della sua capienza (~300 GB),
1404 ma rappresenta un limite ('collo di bottiglia') per le
1405 <em>prestazioni</em> dell'intero pc perche' e' molto
1406 lento nel trasferire dati (25-30 MB/s) rispetto alla cpu
1407 (< 3 GHZ). Negli ultimi anni le prestazioni della cpu
1408 sono raddoppiate circa ogni 18 mesi (Legge di <a class=
1409 "reference external" href=
1410 "http://it.wikipedia.org/wiki/Legge_di_Moore">Moore</a>),
1411 mentre i dischi rigidi sono rimasti relativamente statici
1412 dal punto di vista delle prestazioni nello scambio
1415 <p>Link: <a class="reference external" href=
1416 "http://it.wikipedia.org/wiki/Hard_disk">http://it.wikipedia.org/wiki/Hard_disk</a></p>
1420 <li>I vari formati dei supporti ottici DVD: <a class=
1421 "reference external" href=
1422 "http://it.wikipedia.org/wiki/Dvd#Formati_DVD">http://it.wikipedia.org/wiki/Dvd#Formati_DVD</a></li>
1424 <li>I vari formati dei supporti ottici Blue-Ray Disk:
1425 <a class="reference external" href=
1426 "http://it.wikipedia.org/wiki/Blu-ray_Disc">http://it.wikipedia.org/wiki/Blu-ray_Disc</a></li>
1433 <div class="section" id="classi-di-elaboratori">
1434 <h1><a class="toc-backref" href="#id17">Classi di
1435 elaboratori</a></h1>
1437 <p>Cerchiamo di distinguere gli elaboratori per
1438 caratteristiche fisiche e funzionali, considerando la loro
1439 architettura, ambiente di utilizzo, target di utenza a cui
1442 <p>Stabiliamo alcuni criteri per distinguere le varie
1451 <li>input | output</li>
1453 <li>capcita' di calcolo</li>
1455 <li>numero di utenti</li>
1457 <li>completezza dell'interfaccia utente</li>
1461 <div class="section" id="calcolatori-tascabili">
1462 <h2><a class="toc-backref" href="#id18">Calcolatori
1463 tascabili</a></h2><img alt="img/calcs.jpg" src=
1466 <p>Sono le macchine piu' semplici, generalmente poco
1467 flessibili, tendono ad essere piu' sofisticate nel caso
1468 delle calcolatrici scientifiche. Queste ultime sono spesso
1469 programmabili e hanno display comunque di dimensioni
1470 ridotte. L'interfaccia utente e' quindi molto
1474 <div class="section" id="palmari-e-smart-phones">
1475 <h2><a class="toc-backref" href="#id19">Palmari e smart
1476 phones</a></h2><img alt="img/palm.gif" src=
1479 <p>Device caratterizzati dalle piccole dimensioni e dalla
1480 portabilita' (dimensioni <em>tascabili</em> e autonomia
1481 nell'ordine delle decine di ore), possono essere
1482 relativamente potenti e flessibili, sopratutto quando
1483 vengono equipaggiati con sistemi operativi analoghi a
1484 quelli dei personal computers. Le loro prestazioni in
1485 alcuni casi sono paragonabili a PC fissi di 4/5 anni
1486 precedenti alla loro introduzione sul mercato.</p>
1488 <p>La capacita' di storaggio e' in genere molto limitata,
1489 ma e' possibile espanderla con schede di memoria. I modelli
1490 piu' recenti possono appogiiarsi a file-system di rete.</p>
1492 <p>Autonomia: da 4 a 25 ore. Capacita' di storaggio:
1496 <div class="section" id="ultraportabili-netbook">
1497 <h2><a class="toc-backref" href="#id20">Ultraportabili
1498 (netbook)</a></h2><img alt="img/eeepc.jpg" src=
1501 <p>Sono sostanzialmente l'anello intermedio tra i palmari e
1502 i portatili. Di prezzo intermedio tra i due, hanno in
1503 genere una dotazione hardware semplificata e ridotte
1504 capacita' di espansione rispetto a un portatile. Dotati di
1505 monitor e tastiere <em>standard</em> possono far
1506 <em>girare</em> gli stessi sistemi operativi dei computer
1507 fissi e quasi tutti i software con essi compatibili senza
1508 dover intervenire sulle interfacce utente.</p>
1510 <p>Autonomia: da 1 a 8 ore. Capacita' di storaggio: da 4GB
1511 (stato solido) a 80GB (hard disk magnetici)</p>
1514 <div class="section" id="portatili">
1515 <h2><a class="toc-backref" href=
1516 "#id21">Portatili</a></h2><img alt="img/laptop.jpg" src=
1519 <p>Versioni portabili o per lo meno <em>trasportabili</em>
1520 dei personal computers. Hanno generalmente una tastiera
1521 completa ma di dimensioni ridotte, un display di ~ 15
1522 pollici, processori ottimizzati al risparmio energetico,
1523 capacita' di storaggio limitate. L'espandibilita' e' molto
1524 limitata. I portabili hanno una batteria che ne consente
1525 l'utilizzo senza accesso alla rete elettrica fissa per
1526 alcune ore. I cosidetti <em>trasportabili</em> hanno
1527 un'autonomia senza rete elettrica irrisoria. Visto il
1528 progressivo abbassamento dei prezzi stanno raggiungendo i
1529 computer fissi per diffusione.</p>
1531 <p>Autonomia: da 2 a 10 ore. Capacita' di storaggio: da
1532 250Gb fino a 1TB (Anche in RAID! )</p>
1534 <div class="section" id="trasportabili">
1535 <h3><a class="toc-backref" href=
1536 "#id22">Trasportabili</a></h3>
1538 <p>I cosidetti <em>TRASPORTABILI</em> sono
1539 sostanzialmente delle work-station che si possono
1540 spostare da una lugo all'altro.Data l'autonomi irrisoria
1541 della batteria (anche 30/45 minuti) sono praticamente
1542 utilizzabili solo connessi alla rete elettrica.</p>
1544 <p>Tipicamente sono piu' tozzi e pesanti dei portatili
1545 veri e propri, ma sono in genere piu' economici. Ad
1546 eccezione dei modelli particolarmente lussuori con
1547 display da 17 o piu' pollici, tipicamente dedicati al
1551 <div class="section" id="ultraportatili">
1552 <h3><a class="toc-backref" href=
1553 "#id23">Ultraportatili</a></h3>
1555 <p>Sacrificano le prestazioni per migliorare la
1556 portabilita': molto leggeri, grande autonomia (6 o piu'
1557 ore), display da 12 pollici o inferiore, tipicamente
1562 <div class="section" id="personal-computer">
1563 <h2><a class="toc-backref" href="#id24">Personal
1564 Computer</a></h2><img alt="img/180px-Apple2.jpg" src=
1565 "img/180px-Apple2.jpg" />
1567 <p>Sono le normali macchine fisse usati dagli gli utenti
1568 per gli usi piu' disparati. Sono le macchine piu'
1569 <em>comuni</em>, utilizzate per lavori di office automation
1570 e intrattenimento, dotate di processori che privilegiano le
1571 prestazioni rispetto al consumo (e al costo), e sono
1572 generalmente il risultato dell'assemblaggio di parti sfuse
1573 (schede madri, processori, periferiche) la cui combinazione
1574 puo' portare a risultati variegati. A differenza delle
1575 classi precedentemente descritte sono aggiornabili (posto
1576 che ci sia compatibilita' tra i singoli componenti).</p>
1579 <div class="section" id="work-station">
1580 <h2><a class="toc-backref" href="#id25">Work
1583 <p>Sono postazioni singole ad alte performance per gli usi
1584 piu' impegnativi (grafica, calcolo). Fino ad alcuni anni fa
1585 erano generalmente caratterizzate da architetture
1586 multiprocessore, ma oggi si trovano <em>palmari</em> con
1587 piu' di una CPU quindi questo elemento non e' piu'
1588 determinante. Generalmente il costo e' di molte migliaia di
1589 euro. Questo termine sta diventando pero' obsoleto, data la
1590 difficolta' di caratterizzare queste macchine, per scopi
1591 promozionali / commerciali viene ormai usato per quasi
1592 tutti i sistemi in vendita...</p>
1595 <div class="section" id="server">
1596 <h2><a class="toc-backref" href=
1597 "#id26">Server</a></h2><img alt="img/blade_server.jpg" src=
1598 "img/blade_server.jpg" />
1600 <p>Un server e' un elaboratore che tipicamente eroga
1601 servizi a molti <em>utenti</em> (clients) e offre
1602 continuita' del servizio: un server tipicamente resta
1603 acceso 24/7 mentre una workstation otto ore al giorno.
1604 L'hardware di un server (in particolare le parti in
1605 movimento piu' soggette a usura: alimentatore, ventole,
1606 hard disks) dovrebbero quindi essere in grado di funzionare
1607 tutto il giorno tutti i giorni, dato che l'interruzione,
1608 seppur temporanea, dell'erogazione dei servizi puo'
1609 compromettere la produttivita' di molti <em>clients</em>.
1610 Componenti come alimentatore o hard disk hanno comunque una
1611 vita limitata (anche se di <em>buona</em> qualita') e in
1612 previsione di un loro malfunzionamento e' possibile
1613 implementare sistemi di <em>ridondanza</em> relativamente
1614 economici come <a class="reference external" href=
1615 "http://it.wikipedia.org/wiki/RAID">RAID</a> e
1616 alimentazione ridondante. Puo' essere possibile a seconda
1617 del tipo di hardware sostituire <em>al volo</em> (hot swap)
1618 i componenti guasti senza essere costretti a spegnere la
1619 macchina per l'intervento di manutenzione.</p>
1621 <p>I requisiti di capacita' di calcolo e memoria avranno da
1622 calcolare in base ai requisiti dei servizi in esecuzione
1623 sul server in relazione al numero dei client collegati e
1624 effettivo utilizzo di questi. Non e' raro trovare server
1625 con quantitativi di <em>RAM</em> o <em>CPU</em> ben piu'
1626 limitati dei clients che servono quando i servizi sono poco
1627 esosi di risorse o le richieste relativamente frequenti e
1628 sopratutto senza picchi di utilizzo. Alcuni servizi
1629 fondamentali come DNS, routing o firewall possono saturare
1630 la banda disponibile del server ben prima delle altre
1631 risorse di sistema. Capita ritrovare vecchie work-station
1632 in disuso, ormai sostituite da macchine piu' recenti e
1633 prestanti, svolgere decorosamente queste funzioni. Il che'
1634 rappresenta un'interessante opzione di reciclo, per quanto
1635 il consumo elettrico sia il piu' delle volte sproporzionato
1636 al lavoro svolto (tenendo come riferimento macchine a
1637 bassissiimo costo di derivazione embedded o NAS di
1638 produzione recente, ma il discorso si farebbe
1639 complicato...) .</p>
1641 <p>Tipicamente i server hanno capacita' di
1642 <em>collegamento</em> (hardware di rete) superiori ai
1643 singoli client (in proporzione alle macchine che devono
1644 servire), ma dato che <em>spesso</em> client e server
1645 condividono la stessa architettura hardware non e' semplice
1646 fare in modo che i server siano in grado di gestire
1647 input/output in quantita' direttamente proporzionale al
1648 numero dei clients. Si tenga conto che molti servizi non
1649 prevedono un flusso costante di dati ma solo chiamate
1650 sporadiche: questo permette di poter pianificare la
1651 ampiezza di banda necessaria al server sul valore massimo
1652 <em>stimato</em> di connessioni che si potrebbero
1653 verificare in un singolo momento piuttosto che sul reale
1654 numero di clients.</p>
1656 <p>Spesso i server non hanno periferiche di input dedicate
1657 (mouse e tastiera), e preferibilmente montano hardware a
1658 basso consumo (anche per limitare di conseguenza l'usura
1659 dei sistemi di raffreddamento, e per permettere la
1660 concentrazione in singoli armadi o <em>server farm</em>
1664 <div class="section" id="mainframe">
1665 <h2><a class="toc-backref" href=
1666 "#id27">Mainframe</a></h2><img alt="img/mainframe.jpg" src=
1667 "img/mainframe.jpg" />
1669 <p>Tipo di macchine "desuete" (a parte i casi in cui non se
1670 ne puo' fare a meno, ma la tendenza iattuale e' di
1671 sostituirle con uno o piu' server), i mainframe sono
1672 fondamentalmente caratterizzate da una superiore capacita'
1673 nella gestione dell'input/output, e nel garantire la
1674 continuita' del servizio (molti mainframe permettono la
1675 sostituzione a caldo anche dei processori).</p>
1677 <p>I mainframe o Sistemi Centrali sono computer utilizzati
1678 per applicazioni critiche soprattutto da grandi aziende e
1679 istituzioni, tipicamente per elaborare con alte prestazioni
1680 ed alta affidabilita' grandi moli di dati, come quelle in
1681 gioco nelle transazioni finanziarie, nei censimenti, nelle
1682 statistiche di industrie e clienti, nelle applicazioni
1683 ERP(Enterprise Resource Planning), etc</p>
1686 <div class="section" id="cluster">
1687 <h2><a class="toc-backref" href=
1688 "#id28">Cluster</a></h2><img alt="img/cluster.jpg" src=
1689 "img/cluster.jpg" />
1691 <p>soluzione <em>economica</em> per raggiungere alte
1692 prestazioni utilizzando piu' macchine <em>semplici</em> in
1693 parallelo per lo stesso scopo. Google ad esempio e' un
1694 cluster costituito da macchine x86 facilmente reperibili
1695 sul mercato. L'hardware e' quindi relativamente economico
1696 come gli interventi su di esso, e data la possibilita' di
1697 garantire il funzionamento del cluster a prescindere dal
1698 <em>fallimento</em> di un singolo membro si puo' tollerare
1699 hardware meno sofisticato.</p>
1702 <div class="section" id="supercomputer">
1703 <h2><a class="toc-backref" href=
1704 "#id29">Supercomputer</a></h2><img alt=
1705 "img/supercomputer.jpg" src="img/supercomputer.jpg" />
1707 <p>I supercomputer sono macchine che raggiungono le massime
1708 prestazioni possibili secondo la tecnologia disponibile per
1709 singola unita'. La loro architettura e' altamente
1710 specializzata e costruita su misura, sono generalmente
1711 molto costosi e poco aggiornabili.</p>
1713 <p>La tendenza attuale e' di sostituirli con clusters di
1714 macchine piu' semplici da gestire: nelle _classifiche dei
1715 "super computer" molti sistema sono clusters.</p>
1719 <div class="section" id="linguaggi-di-programmazione">
1720 <h1><a class="toc-backref" href="#id30">Linguaggi di
1721 programmazione</a></h1>
1723 <p>I computer, come detto in precedenza, registrano e
1724 elaborano dei dati. Quest'ultima parte viene svolta con dei
1725 programmi che sono sostanzialmente delle sequenze di
1726 istruzioni, scritte in un linguaggio comprensibile
1727 all'elaboratore, ripetute piu' volte.</p>
1729 <p>links: <a class="reference external" href=
1730 "http://it.wikipedia.org/wiki/Linguaggio_di_programmazione">http://it.wikipedia.org/wiki/Linguaggio_di_programmazione</a></p>
1732 <p>Sappiamo che i microporcessori elaborano sequenze binarie
1733 formate dai valori <tt class="docutils literal"><span class=
1734 "pre">1|0</span></tt>, ma sarebbe decisamente scomodo per gli
1735 sviluppatori scrivere i programmi in questo formato. Si
1736 <em>preferisce</em> scrivere i software in linguaggi formali
1737 piu' simili alla lingua umana (inglese), che oltre a essere
1738 piu' <em>significativi</em> per gli sviluppatori permettono
1739 di scrivere sequenze di comandi che potranno poi essere
1740 adattate automaticamente alle varie CPU.</p>
1742 <p>La trasformazione del <em>codice sorgente</em> scritto dal
1743 programmatore in un linguaggio di piu' <em>alto livello</em>
1744 rispetto al <em>codice oggetto</em> direttamente eseguibile
1745 dal microprocessore viene svolta da un compilatore o da un
1748 <p>Esistono probabilmente centinaia di linguaggi di
1749 programmazione, caratterizzabili in base a:</p>
1753 <li>Distanza dall'hardware: linguaggi di basso livello
1754 come l'<em>assebler</em> sono molto piu' a contatto con
1755 le caratteristiche propie della CPU rispetto a linguaggi
1756 di alto livello come <em>Python / Ruby / PHP</em>. La
1757 possibilita' di interagire in modo piu' stretto con
1758 l'hardware puo produrre codice piu' prestante.</li>
1760 <li>Semplicita': linguaggi di <em>alto livello</em>,
1761 sopratutto se interpretati, risultano molto piu' semplici
1762 da scrivere e manutenere, abbassando di conseguenza costi
1763 e tempi di sviluppo. Vista la attuale capacita' di
1764 calcolo dei microprocessori l'efficena massima del codice
1765 tende oggi a non essere prioritaria rispetto al tempo di
1766 sviluppo (almeno in molti casi).</li>
1770 <p><a class="reference external" href=
1771 "http://it.wikipedia.org/wiki/Linguaggio_di_programmazione#Linguaggi_compilati_e_linguaggi_interpretati">
1772 http://it.wikipedia.org/wiki/Linguaggio_di_programmazione#Linguaggi_compilati_e_linguaggi_interpretati</a></p>
1774 <div class="section" id="compilatori">
1775 <h2><a class="toc-backref" href=
1776 "#id31">Compilatori</a></h2>
1778 <p>In informatica, un compilatore e' un programma che
1779 traduce una serie di istruzioni scritte in un determinato
1780 linguaggio di programmazione (codice sorgente) in
1781 istruzioni di un altro linguaggio (codice oggetto). Questo
1782 processo di traduzione si chiama compilazione.</p>
1784 <p>Dal codice sorgente viene quindi generato un codice
1785 oggetto direttamente eseguibile dalla CPU, senza bisogno
1786 che al momento dell'esecuzione sia disponibile lo stesso
1787 linguaggio o componenti dell'ambiente si sviluppo. Dato che
1788 il compilatore ha la possibilita' di fare un'analisi
1789 generale del codice prima di cominciare a convertirlo il
1790 codice risultante e' in genere piu' ottimizzato rispetto al
1791 codice eseguito da un interprete.</p>
1793 <p>La compilazione richiede una certa quantita' di tempo,
1794 ma questo accade <strong>solo in fase di
1795 compilazione</strong>. Una volta creato il codice oggetto
1796 questo sara' immediatamente eseguibile su tutte le macchine
1797 compatibili, con un evidente vantaggio di prestazioni
1798 rispetto ai linguaggi interpretati che devono procedere
1799 alla <em>traduzione</em> a ogni esecuzione del
1802 <p>La necessita' di dover ricompilare ogni volta che si
1803 introduce un cambiamento del codice viene pero' visto come
1804 uno svantaggio rispetto ai linguaggi interpretati, dal
1805 punto di vista dello sviluppatore.</p>
1807 <p>Poiche' in informatica non esitono <em>proiettili_
1808 d'argento</em> (silver bullets, una soluzione per tutti i
1809 problemi) abbiamo a disposizione tanti linguaggi diversi,
1810 per supportare approcci piu' o meno strutturati a
1811 problematiche piu' o meno complesse: linguaggi piu' o meno
1812 semplici, piu' o meno efficenti nelle prestazioni,
1813 ottimizzati per fare specifiche compiti, etc. L'idea di
1814 base sarebbe di cercare di elaborare soluzioni semplici con
1815 gli strumenti piu' adeguati (i linguaggi di programmazione)
1816 alla natura del problema.</p>
1818 <p>Esempio di codice in linguaggio <strong>C</strong> :</p>
1820 <p>links: <a class="reference external" href=
1821 "http://it.wikipedia.org/wiki/C_(linguaggio">http://it.wikipedia.org/wiki/C_(linguaggio</a>)</p>
1823 <div class="line-block">
1825 #include <stdio.h>
1840 <div class="line-block">
1842 printf("Hello, World!");
1859 <p>Analisi codice: <a class="reference external" href=
1860 "http://it.wikipedia.org/wiki/C_(linguaggio">http://it.wikipedia.org/wiki/C_(linguaggio</a>)#Hello_world.21</p>
1863 <div class="section" id="interpreti">
1864 <h2><a class="toc-backref" href="#id32">Interpreti</a></h2>
1866 <p><a class="reference external" href=
1867 "http://it.wikipedia.org/wiki/Interprete_(informatica">http://it.wikipedia.org/wiki/Interprete_(informatica</a>)</p>
1869 <p>Un linguaggio interpretato e' un linguaggio di
1870 programmazione i cui programmi vengono eseguiti da un
1871 interprete. Tale approccio si distingue da quello dei
1872 linguaggi compilati: a differenza di un interprete, un
1873 compilatore non esegue il programma che riceve in ingresso,
1874 ma lo traduce in linguaggio macchina (memorizzando su file
1875 il codice oggetto pronto per l'esecuzione diretta da parte
1876 del processore).</p>
1878 <p>L'approccio interpretato comporta una minore efficienza
1879 a run-time; un programma interpretato, in esecuzione,
1880 richiede piu' memoria ed e' meno veloce, a causa dello
1881 overhead introdotto dall'interprete stesso. Durante
1882 l'esecuzione, l'interprete deve infatti analizzare le
1883 istruzioni a partire dal livello sintattico, identificare
1884 le azioni da eseguire (eventualmente trasformando i nomi
1885 simbolici delle variabili coinvolte nei corrispondenti
1886 indirizzo di memoria), ed eseguirle; mentre le istruzioni
1887 del codice compilato, gia' in linguaggio macchina, vengono
1888 caricate e istantaneamente eseguite dal processore.</p>
1890 <p>Esempio in python:</p>
1892 <div class="line-block">
1894 print "hello world!"
1898 <p>Analisi: scrive hello world a schermo !</p>
1901 <div class="section" id="java-e-similari">
1902 <h2><a class="toc-backref" href="#id33">Java e
1905 <p>link <a class="reference external" href=
1906 "http://it.wikipedia.org/wiki/Macchina_virtuale_Java">http://it.wikipedia.org/wiki/Macchina_virtuale_Java</a></p>
1908 <p>La macchina virtuale Java, detta anche Java Virtual
1909 Machine o JVM, e' la macchina virtuale che esegue i
1910 programmi in linguaggio Java bytecode, ovvero i prodotti
1911 della compilazione dei sorgenti Java. La JVM e' formalmente
1912 una specifica, mantenuta da Sun Microsystems. Qualsiasi
1913 sistema che si comporti in modo coerente con tale specifica
1914 sara' quindi da considerarsi una particolare
1915 implementazione della JVM. Esistono implementazioni
1916 software per praticamente tutti i sistemi operativi
1917 moderni, sia gratuite che commerciali. Inoltre, esistono
1918 implementazioni speciali per particolari ambienti
1919 hardware/software (per esempio telefoni cellulari e
1920 palmari), e persino implementazioni hardware.</p>
1922 <p>La disponibilita' di implementazioni della macchina
1923 virtuale Java per diversi ambienti operativi e' la chiave
1924 della portabilita' di Java, proclamata nello slogan write
1925 once, run everywhere ("scrivi una volta, esegui
1926 dappertutto"). La macchina virtuale realizza infatti un
1927 ambiente di esecuzione omogeneo, che nasconde al software
1928 Java (e quindi al programmatore) qualsiasi specificita' del
1929 sistema operativo sottostante:</p>
1931 <div class="line-block">
1933 ================================
1937 | Software applicativo Java |
1941 ===============================
1944 <div class="line-block">
1946 | Java Virtual Machine |
1949 <div class="line-block">
1951 ==========================
1954 <div class="line-block">
1956 | Sistema Operativo |
1959 <div class="line-block">
1961 ======================
1969 <p>Sostanzialmente il codice Java viene scritto per essere
1970 eseguito da una Java Virtual Machine (JVM), della quale
1971 viene rilasciata una versione per ogni diverso sistema
1972 operativo. In questo modo modo lo sviluppatore puo'
1973 scrivere un codice che sia indipendente dal sistema in cui
1974 verra' eseguito, dato che la JVM (Java Virtual Machine)
1975 dovrebbe comportarsi allo stesso modo su qaulunque sistema
1976 venga installato.</p>
1980 <div class="section" id="licenze-software">
1981 <h1><a class="toc-backref" href="#id34">Licenze
1984 <p>La licenza in ambito informatico e' il contratto che puo'
1985 accompagnare un prodotto software. Tale contratto specifica
1986 le modalita' con cui l'utente puo' usare tale prodotto,
1987 garantendo dei diritti ed imponendo obblighi.</p>
1989 <p>La licenza e' imposta da chi detiene il copyright sul
1990 prodotto software; la sua validita' dipende dalla presenza
1991 del diritto d'autore, questo perche' solo chi detiene il
1992 copyright ha il diritto di far rispettare in ogni sede la
1995 <p>In vari casi l'autore puo' rilasciare un prodotto software
1996 sotto licenze differenti, lasciando all'utente la
1997 possibilita' di scegliere quella preferita.</p>
2000 <div class="section" id="tipi-di-licenze">
2001 <h1><a class="toc-backref" href="#id35">Tipi di
2004 <div class="section" id="publico-dominio">
2005 <h2><a class="toc-backref" href="#id36">Publico
2008 <p>Il pubblico dominio non e' propriamente una licenza, per
2009 quanto sia determinante nei rapporti tra l'opera e i
2010 fruitori. L'essenza sta proprio nel non sottoprre l'opera a
2011 meccanismi di tutela della propieta' dell'opera. L'opera e'
2012 patrimonio dell'umanita'. Tutte le opere delle quale il
2013 copyright e' scaduto per termini di leggi (a seconda del
2014 paese possono volerci fino a un centinaio di anni)
2015 diventano di pubblico dominio e quindi liberamente
2016 fruibili. Ad es. non dovete chiedere il permesso a nessuno
2017 per stampare e diffondere l'Odissea di Omero, posto che non
2018 contravveniate ad altre leggi vigenti nel farlo.</p>
2020 <p>WWW, TCP/IP, <a class="reference external" href=
2021 "http://www.sqlite.org/copyright.html">sqlite</a> sono
2022 sotto pubblico domnio</p>
2024 <p>Publico dominio = cessazione di tutti i diritti di
2025 eslusiva: <a class="reference external" href=
2026 "http://it.wikipedia.org/wiki/Pubblico_dominio">http://it.wikipedia.org/wiki/Pubblico_dominio</a></p>
2029 <div class="section" id="freeware">
2030 <h2><a class="toc-backref" href="#id37">Freeware</a></h2>
2032 <p><a class="reference external" href=
2033 "http://it.wikipedia.org/wiki/Freeware">http://it.wikipedia.org/wiki/Freeware</a></p>
2035 <p>Software <em>a gratis</em>. Nel senso che non si paga
2036 per utilizzarlo. Gratis come in "birra gratis per
2039 <p>L'utente non pu' modificarlo in alcun modo, a meno che
2040 non espressamente previsto.</p>
2042 <p>Il termine freeware indica un software che viene
2043 distribuito in modo gratuito.</p>
2045 <p>Il freeware e' distribuito indifferentemente con o senza
2046 codice sorgente, a totale discrezione dell'autore e senza
2047 alcun obbligo al riguardo. È sottoposto
2048 esplicitamente ad una licenza che ne permette la
2049 redistribuzione gratuita. Il software freeware viene
2050 concesso in uso senza alcun corrispettivo, ed e'
2051 liberamente duplicabile e distribuibile, con pochissime
2055 <div class="section" id="shareware">
2056 <h2><a class="toc-backref" href="#id38">Shareware</a></h2>
2058 <p>Shareware e' una tipologia di licenza software molto
2059 popolare sin dai primi anni Novanta. Vengono distribuiti
2060 sotto tale licenza in genere programmi facilmente
2061 scaricabili via Internet o contenuti in CD e DVD quasi
2062 sempre allegati alle riviste di Informatica in vendita in
2066 Il software sotto tale licenza puo' essere liberamente
2067 ridistribuito, e puo' essere utilizzato per un periodo di
2068 tempo di prova variabile (generalmente 30 giorni).
2069 Scaduti questi termini, per continuare ad utilizzare il
2070 software e' necessario registrarlo presso la casa
2071 produttrice, pagandone l'importo. All'avvio
2072 dell'applicazione shareware generalmente un Nag Screen
2073 informa l'utente su come effettuare la registrazione e
2074 sulle condizioni di utilizzo.
2079 <div class="section" id="licenze-per-software-liberi">
2080 <h1><a class="toc-backref" href="#id39">Licenze per software
2083 <p><a class="reference external" href=
2084 "http://it.wikipedia.org/wiki/Software_libero">http://it.wikipedia.org/wiki/Software_libero</a></p>
2086 <p>Il Software libero e' una questione di liberta', non di
2087 prezzo. Per capire il concetto, bisognerebbe pensare alla
2088 liberta' di parola e non alla birra gratis [NdT: il termine
2089 free in inglese significa sia gratuito che libero, in
2090 italiano il problema non esiste].</p>
2092 <p>Cosa sia, o meglio quanto debba essere libero un software
2093 per poter essere definito tecnicamente <em>libero</em> e'
2094 motivo di discussione sia tra sviluppatori che tra i non i
2095 non addetti ai lavori, data l'applicazione del concetto di
2096 copyleft ad altre discipline diverse dall'informatica.</p>
2098 <p>Generalmente con software libero si intende quel codice
2099 rilasciato sotto licenza GPL, per quanto altre licenze
2100 vengano generalmente accettate come <em>libere</em>.
2101 Stabiliti dei criteri, almeno per quanto riguarda il
2102 software, si puo' procedere a una comparazione tra le varie
2103 licenze alternative alla GPL:</p>
2107 <li><a class="reference external" href=
2108 "http://it.wikipedia.org/wiki/Comparazione_di_licenze_libere">
2109 http://it.wikipedia.org/wiki/Comparazione_di_licenze_libere</a></li>
2111 <li><a class="reference external" href=
2112 "http://www.gnu.org/philosophy/categories.it.html">http://www.gnu.org/philosophy/categories.it.html</a></li>
2116 <p>Dal sito del progetto Gnu possiamo <em>copiare</em> la
2117 seguente definizione:</p>
2119 <p>Definizione di Software Libero</p>
2122 <p>Questa definizione ha lo scopo di chiarire quali sono i
2123 requisiti che un certo programma deve soddisfare perche' lo
2124 si possa considerare "software libero".</p>
2126 <p>Il Software libero e' una questione di liberta', non di
2127 prezzo. Per capire il concetto, bisognerebbe pensare alla
2128 liberta' di parola e non alla birra gratis [NdT: il termine
2129 free in inglese significa sia gratuito che libero, in
2130 italiano il problema non esiste].</p>
2132 <p>L'espressione "software libero" si riferisce alla
2133 liberta' dell'utente di eseguire, copiare, distribuire,
2134 studiare, cambiare e migliorare il software. Piu'
2135 precisamente, esso si riferisce a quattro tipi di liberta'
2136 per gli utenti del software: Liberta' di eseguire il
2137 programma, per qualsiasi scopo (liberta' 0). Liberta' di
2138 studiare come funziona il programma e adattarlo alle
2139 proprie necessita' (liberta' 1). L'accesso al codice
2140 sorgente ne e' un prerequisito. Liberta' di ridistribuire
2141 copie in modo da aiutare il prossimo (liberta' 2). Liberta'
2142 di migliorare il programma e distribuirne pubblicamente i
2143 miglioramenti, in modo tale che tutta la comunita' ne
2144 tragga beneficio (liberta' 3). L'accesso al codice sorgente
2145 ne e' un prerequisito.</p>
2147 <p>Un programma e' software libero se l'utente ha tutte
2148 queste liberta'. In particolare, se e' libero di
2149 ridistribuire copie, con o senza modifiche, gratis o
2150 addebitando delle spese di distribuzione a chiunque ed
2151 ovunque. Essere liberi di fare queste cose significa (tra
2152 l'altro) che non bisogna chiedere o pagare nessun
2155 <p>Bisogna anche avere la liberta' di fare modifiche e
2156 usarle privatamente nel proprio lavoro o divertimento senza
2157 doverlo dire a nessuno. Se si pubblicano le proprie
2158 modifiche, non si deve essere tenuti a comunicarlo a
2159 qualcuno in particolare o in qualche modo particolare.</p>
2161 <p>La liberta' di usare un programma significa liberta' per
2162 qualsiasi tipo di persona od organizzazione di utilizzarlo
2163 su qualsiasi tipo di sistema informatico, per qualsiasi
2164 tipo di attivita' e senza dover successivamente comunicare
2165 con lo sviluppatore o con qualche altra entita' specifica.
2166 Quello che conta per questa liberta' e' lo scopo
2167 dell'utente, non dello sviluppatore; come utenti potete
2168 eseguire il programma per i vostri scopi; se lo
2169 ridistribuite a qualcun altro, egli e' libero di eseguirlo
2170 per i propri scopi, ma non potete imporgli i vostri
2173 <p>La liberta' di ridistribuire copie deve includere le
2174 forme binarie o eseguibili del programma e anche il codice
2175 sorgente, sia per le versioni modificate che non modificate
2176 (distribuire programmi in formato eseguibile e' comodo per
2177 avere sistemi operativi liberi facili da installare).
2178 È legittimo anche se non c'e' alcun modo di
2179 produrre una forma binaria o eseguibile (dal momento che
2180 alcuni linguaggi non supportano questa caratteristica), ma
2181 si deve avere la liberta' di ridistribuire tali forme nel
2182 caso si trovi o si sviluppi un modo per farlo.</p>
2184 <p>Affinche' le liberta' di fare modifiche e di pubblicare
2185 versioni migliorate abbiano senso, si deve avere accesso al
2186 codice sorgente del programma. Percio', l'accessibilita' al
2187 codice sorgente e' una condizione necessaria per il
2188 software libero.</p>
2190 <p>Un importante modo di modificare un programma e' quello
2191 di includervi funzioni e moduli liberi gia' esistenti. Se
2192 la licenza del programma prevede che non si possano
2193 includere moduli gia' esistenti, ad esempio se richiede che
2194 voi possiate aggiungere solo codice di cui detenete il
2195 copyright, allora la licenza e' troppo restrittiva per
2196 essere considerata libera.</p>
2198 <p>Queste liberta' per essere reali devono essere
2199 irrevocabili fin tanto che non si fa qualcosa di sbagliato:
2200 se lo sviluppatore del software ha il potere di revocare la
2201 licenza anche senza che l'utente sia causa di tale revoca,
2202 il software non e' libero.</p>
2204 <p>Tuttavia, certi tipi di regole sul come distribuire il
2205 software libero sono accettabili quando non entrano in
2206 conflitto con le liberta' principali. Per esempio, il
2207 copyleft, noto anche impropriamente come "permesso
2208 d'autore", e' (detto poche parole) la regola per cui,
2209 quando il programma e' ridistribuito, non e' possibile
2210 aggiungere restrizioni per negare ad altre persone le
2211 liberta' principali. Questa regola non entra in conflitto
2212 con le liberta' principali, anzi le protegge.</p>
2214 <p>Indipendentemente dal fatto che si siano ottenute copie
2215 di software GNU a pagamento o gratuitamente, si ha sempre
2216 la liberta' di copiare e cambiare il software, e anche di
2219 <p>Software libero non vuol dire non-commerciale. Un
2220 programma libero deve essere disponibile per uso
2221 commerciale, sviluppo commerciale e distribuzione
2222 commerciale. Lo sviluppo commerciale di software libero non
2223 e' piu' inusuale: questo software commerciale libero e'
2224 molto importante.</p>
2226 <hr class="docutils" />
2228 <div class="section" id="copyleft-copyright">
2229 <h2><a class="toc-backref" href="#id40">Copyleft !=
2232 <p>Il copyleft e' un metodo generico per rendere un
2233 programma libero ed imporre che tutte le modifiche e
2234 versioni estese del programma siano anch'esse software
2237 <p>L'espressione inglese copyleft, lett. "(diritto di)
2238 copiatura (esclusiva) abbandonato" , e' gioco di parole su
2239 copyright (lett. "diritto (esclusivo) di copiatura"), in
2240 cui la seconda parola del composto, "right" e' scambiata
2241 con "left" individua un modello alternativo di gestione dei
2242 diritti d'autore basato su un sistema di licenze attraverso
2243 le quali l'autore (in quanto detentore originario dei
2244 diritti sull'opera) indica ai fruitori dell'opera che essa
2245 puo' essere utilizzata, diffusa e spesso anche modificata
2246 liberamente, pur nel rispetto di alcune condizioni
2247 essenziali. Nella versione pura e originaria del copyleft
2248 (cioe' quella riferita all'ambito informatico) la
2249 condizione principale obbliga i fruitori dell'opera a
2250 rilasciare eventuali modifiche apportate all'opera a loro
2251 volta sotto lo stesso regime giuridico (e generalmente
2252 sotto la stessa licenza). In questo modo, il regime di
2253 copyleft e tutto l'insieme di liberta' da esso derivanti
2254 sono sempre garantiti.</p>
2256 <p>Il modo piu' semplice per rendere un programma, o altro
2257 lavoro, libero e' dichiararlo di dominio pubblico, privo di
2258 copyright. [NdT: in Italia questo concetto a rigore non
2259 esiste, perche' l'autore non puo' rinunciare alla
2260 paternita' dell'opera; effetti simili si possono ottenere
2261 con l'uso di una licenza permissiva, come la licenza di X
2262 del MIT]. Cio' permette a chiunque di condividere il
2263 programma e i suoi miglioramenti. Tuttavia permette anche a
2264 chi non vuol cooperare di convertire il programma in
2265 software proprietario. Costoro possono infatti apportare
2266 modifiche, che siano significative o meno, e distribuire il
2267 risultato come prodotto proprietario. Chi riceve il
2268 programma nella forma modificata non ha la liberta' data
2269 dall'autore originario; l'intermediario l'avra'
2272 <p><em>Segue su:</em> <a class="reference external" href=
2273 "http://www.gnu.org/copyleft/copyleft.it.html">http://www.gnu.org/copyleft/copyleft.it.html</a></p>
2275 <p>Link alla Licenza GPL (e DSFG):</p>
2279 <li><a class="reference external" href=
2280 "http://it.wikipedia.org/wiki/GNU_GPL">http://it.wikipedia.org/wiki/GNU_GPL</a></li>
2282 <li><a class="reference external" href=
2283 "http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a></li>
2285 <li>FAQ sulla GPL: <a class="reference external" href=
2286 "http://www.fsf.org/licensing/licenses/gpl.html">http://www.fsf.org/licensing/licenses/gpl.html</a></li>
2288 <li>DSFG (Le Linee Guida Debian per il Software Libero
2289 (Debian Free Software Guidelines - DFSG): <a class=
2290 "reference external" href=
2291 "http://www.debian.org/social_contract#guidelines">http://www.debian.org/social_contract#guidelines</a></li>
2295 <p>Non dci dovrebbe essere nessuna differenza tecnica tra
2296 "free software" e "open source".</p>
2299 <div class="section" id="licenza-bsd">
2300 <h2><a class="toc-backref" href="#id41">Licenza
2303 <p>Le licenze BSD sono una famiglia di licenze permissive
2304 per software. Molte sono considerate libere ed open source.
2305 Il loro nome deriva dal fatto che la licenza BSD originale
2306 (detta anche licenza BSD con 4 clausole) fu usata
2307 originariamente per distribuire il sistema operativo Unix
2308 Berkeley Software Distribution (BSD), una revisione libera
2309 di UNIX sviluppata presso l'Universita' di Berkeley.</p>
2311 <dl class="docutils">
2315 <ul class="first last simple">
2316 <li><a class="reference external" href=
2317 "http://it.wikipedia.org/wiki/Licenze_BSD">http://it.wikipedia.org/wiki/Licenze_BSD</a></li>
2319 <li><a class="reference external" href=
2320 "http://www.opensource.org/licenses/bsd-license.php">http://www.opensource.org/licenses/bsd-license.php</a></li>
2326 <div class="section" id="licenza-apache">
2327 <h2><a class="toc-backref" href="#id42">Licenza
2330 <p>In ambito informatico, con Licenza Apache (ingl:Apache
2331 License) si intende una precisa licenza, che similmente
2332 alla licenza BSD, permette di utilizzare il codice dentro
2333 progetti non open source e senza obbligo di rilascio dei
2334 sorgenti modificati.</p>
2336 <p>La Licenza Apache venne scritta dalla Apache Software
2337 Foundation (ASF) per il piu' usato server web, Apache.
2338 È una licenza per software libero, ma non
2339 compatibile con la GNU GPL.</p>
2341 <p>Questa licenza assume particolare inportanza in quanto
2342 usata per molti altri software rilasciati dalla Apache
2343 Software Foundation (<a class="reference external" href=
2344 "http://it.wikipedia.org/wiki/Apache_Software_Foundation">ASF</a>)
2345 e altri progetti,</p>
2347 <p>Esistono le versioni 1.0, 1.1 e 2.0.</p>
2351 <div class="section" id="eula">
2352 <h1><a class="toc-backref" href="#id43">Eula</a></h1>
2354 <p>EULA o End User License Agreement (accordo di licenza con
2355 l'utente finale) e' il contratto tra il fornitore di un
2356 programma software e l'utente finale. Tale contratto assegna
2357 la licenza d'uso del programma all'utente nei termini
2358 stabiliti dal contratto stesso.</p>
2360 <p>Segue su: <a class="reference external" href=
2361 "http://it.wikipedia.org/wiki/EULA">http://it.wikipedia.org/wiki/EULA</a></p>
2365 <li>Multilicenze (enterprice)</li>
2367 <li>Licenze singole</li>
2369 <li>OEM : legate all'hardware, non possono essere
2370 spostata su una macchina diversa</li>
2374 <dl class="docutils">
2375 <dt>Link alla licenza EULA di MS Windows XP:</dt>
2378 <ul class="first last simple">
2379 <li><a class="reference external" href=
2380 "http://alice.andreamanni.com/eula.txt">http://alice.andreamanni.com/eula.txt</a></li>
2382 <li><a class="reference external" href=
2383 "http://www.microsoft.com/windowsxp/eula/home.mspx">http://www.microsoft.com/windowsxp/eula/home.mspx</a></li>