]> git.piffa.net Git - doc/.git/blob - informatica_base.html
Merge branch 'master' of chrome:/home/git/doc
[doc/.git] / informatica_base.html
1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
3
4 <html lang="it">
5 <head>
6   <meta name="generator" content=
7   "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
8   <meta http-equiv="Content-Type" content=
9   "text/html; charset=iso-8859-1">
10   <meta name="generator" content=
11   "Docutils 0.5: http://docutils.sourceforge.net/">
12
13   <title>Informatica di Base</title>
14   <style type="text/css">
15
16   /*
17   :Author: David Goodger (goodger@python.org)
18   :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
19   :Copyright: This stylesheet has been placed in the public domain.
20
21   Default cascading style sheet for the HTML output of Docutils.
22
23   See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
24   customize this style sheet.
25   */
26
27   /* used to remove borders from tables and images */
28   .borderless, table.borderless td, table.borderless th {
29   border: 0 }
30
31   table.borderless td, table.borderless th {
32   /* Override padding for "table.docutils td" with "! important".
33      The right padding separates the table cells. */
34   padding: 0 0.5em 0 0 ! important }
35
36   .first {
37   /* Override more specific margin styles with "! important". */
38   margin-top: 0 ! important }
39
40   .last, .with-subtitle {
41   margin-bottom: 0 ! important }
42
43   .hidden {
44   display: none }
45
46   a.toc-backref {
47   text-decoration: none ;
48   color: black }
49
50   blockquote.epigraph {
51   margin: 2em 5em ; }
52
53   dl.docutils dd {
54   margin-bottom: 0.5em }
55
56   /* Uncomment (and remove this text!) to get bold-faced definition list terms
57   dl.docutils dt {
58   font-weight: bold }
59   */
60
61   div.abstract {
62   margin: 2em 5em }
63
64   div.abstract p.topic-title {
65   font-weight: bold ;
66   text-align: center }
67
68   div.admonition, div.attention, div.caution, div.danger, div.error,
69   div.hint, div.important, div.note, div.tip, div.warning {
70   margin: 2em ;
71   border: medium outset ;
72   padding: 1em }
73
74   div.admonition p.admonition-title, div.hint p.admonition-title,
75   div.important p.admonition-title, div.note p.admonition-title,
76   div.tip p.admonition-title {
77   font-weight: bold ;
78   font-family: sans-serif }
79
80   div.attention p.admonition-title, div.caution p.admonition-title,
81   div.danger p.admonition-title, div.error p.admonition-title,
82   div.warning p.admonition-title {
83   color: red ;
84   font-weight: bold ;
85   font-family: sans-serif }
86
87   /* Uncomment (and remove this text!) to get reduced vertical space in
88    compound paragraphs.
89   div.compound .compound-first, div.compound .compound-middle {
90   margin-bottom: 0.5em }
91
92   div.compound .compound-last, div.compound .compound-middle {
93   margin-top: 0.5em }
94   */
95
96   div.dedication {
97   margin: 2em 5em ;
98   text-align: center ;
99   font-style: italic }
100
101   div.dedication p.topic-title {
102   font-weight: bold ;
103   font-style: normal }
104
105   div.figure {
106   margin-left: 2em ;
107   margin-right: 2em }
108
109   div.footer, div.header {
110   clear: both;
111   font-size: smaller }
112
113   div.line-block {
114   display: block ;
115   margin-top: 1em ;
116   margin-bottom: 1em }
117
118   div.line-block div.line-block {
119   margin-top: 0 ;
120   margin-bottom: 0 ;
121   margin-left: 1.5em }
122
123   div.sidebar {
124   margin: 0 0 0.5em 1em ;
125   border: medium outset ;
126   padding: 1em ;
127   background-color: #ffffee ;
128   width: 40% ;
129   float: right ;
130   clear: right }
131
132   div.sidebar p.rubric {
133   font-family: sans-serif ;
134   font-size: medium }
135
136   div.system-messages {
137   margin: 5em }
138
139   div.system-messages h1 {
140   color: red }
141
142   div.system-message {
143   border: medium outset ;
144   padding: 1em }
145
146   div.system-message p.system-message-title {
147   color: red ;
148   font-weight: bold }
149
150   div.topic {
151   margin: 2em }
152
153   h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
154   h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
155   margin-top: 0.4em }
156
157   h1.title {
158   text-align: center }
159
160   h2.subtitle {
161   text-align: center }
162
163   hr.docutils {
164   width: 75% }
165
166   img.align-left {
167   clear: left }
168
169   img.align-right {
170   clear: right }
171
172   ol.simple, ul.simple {
173   margin-bottom: 1em }
174
175   ol.arabic {
176   list-style: decimal }
177
178   ol.loweralpha {
179   list-style: lower-alpha }
180
181   ol.upperalpha {
182   list-style: upper-alpha }
183
184   ol.lowerroman {
185   list-style: lower-roman }
186
187   ol.upperroman {
188   list-style: upper-roman }
189
190   p.attribution {
191   text-align: right ;
192   margin-left: 50% }
193
194   p.caption {
195   font-style: italic }
196
197   p.credits {
198   font-style: italic ;
199   font-size: smaller }
200
201   p.label {
202   white-space: nowrap }
203
204   p.rubric {
205   font-weight: bold ;
206   font-size: larger ;
207   color: maroon ;
208   text-align: center }
209
210   p.sidebar-title {
211   font-family: sans-serif ;
212   font-weight: bold ;
213   font-size: larger }
214
215   p.sidebar-subtitle {
216   font-family: sans-serif ;
217   font-weight: bold }
218
219   p.topic-title {
220   font-weight: bold }
221
222   pre.address {
223   margin-bottom: 0 ;
224   margin-top: 0 ;
225   font-family: serif ;
226   font-size: 100% }
227
228   pre.literal-block, pre.doctest-block {
229   margin-left: 2em ;
230   margin-right: 2em }
231
232   span.classifier {
233   font-family: sans-serif ;
234   font-style: oblique }
235
236   span.classifier-delimiter {
237   font-family: sans-serif ;
238   font-weight: bold }
239
240   span.interpreted {
241   font-family: sans-serif }
242
243   span.option {
244   white-space: nowrap }
245
246   span.pre {
247   white-space: pre }
248
249   span.problematic {
250   color: red }
251
252   span.section-subtitle {
253   /* font-size relative to parent (h1..h6 element) */
254   font-size: 80% }
255
256   table.citation {
257   border-left: solid 1px gray;
258   margin-left: 1px }
259
260   table.docinfo {
261   margin: 2em 4em }
262
263   table.docutils {
264   margin-top: 0.5em ;
265   margin-bottom: 0.5em }
266
267   table.footnote {
268   border-left: solid 1px black;
269   margin-left: 1px }
270
271   table.docutils td, table.docutils th,
272   table.docinfo td, table.docinfo th {
273   padding-left: 0.5em ;
274   padding-right: 0.5em ;
275   vertical-align: top }
276
277   table.docutils th.field-name, table.docinfo th.docinfo-name {
278   font-weight: bold ;
279   text-align: left ;
280   white-space: nowrap ;
281   padding-left: 0 }
282
283   h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
284   h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
285   font-size: 100% }
286
287   ul.auto-toc {
288   list-style-type: none }
289
290   </style>
291 </head>
292
293 <body>
294   <div class="document" id="informatica-di-base">
295     <h1 class="title">Informatica di Base</h1>
296
297     <h2 class="subtitle" id=
298     "appunti-introduttivi-ai-sistemi-informativi">Appunti
299     introduttivi ai sistemi informativi</h2>
300
301     <blockquote>
302       <table class="docutils field-list" frame="void" rules="none">
303         <col class="field-name">
304         <col class="field-body">
305
306         <tbody valign="top">
307           <tr class="field">
308             <th class="field-name">Author:</th>
309
310             <td class="field-body">Andrea Manni</td>
311           </tr>
312
313           <tr class="field">
314             <th class="field-name">Copyright:</th>
315
316             <td class="field-body">GFDL</td>
317           </tr>
318
319           <tr class="field">
320             <th class="field-name">Version:</th>
321
322             <td class="field-body">1.5</td>
323           </tr>
324         </tbody>
325       </table>
326     </blockquote>
327
328     <div class="contents topic" id="indice-degli-argomenti">
329       <p class="topic-title first">Indice degli argomenti</p>
330
331       <ul class="simple">
332         <li>
333           <a class="reference internal" href="#informatica" id=
334           "id4" name="id4">Informatica</a>
335
336           <ul>
337             <li><a class="reference internal" href=
338             "#evoluzione-nella-societa" id="id5" name=
339             "id5">Evoluzione nella societa'</a></li>
340           </ul>
341         </li>
342
343         <li><a class="reference internal" href=
344         "#analogico-e-digitale" id="id6" name="id6">Analogico e
345         Digitale</a></li>
346
347         <li><a class="reference internal" href="#sistema-binario"
348         id="id7" name="id7">Sistema Binario</a></li>
349
350         <li>
351           <a class="reference internal" href="#unita-di-misura" id=
352           "id8" name="id8">Unita' di misura</a>
353
354           <ul>
355             <li><a class="reference internal" href=
356             "#multipli-del-bit-tabelle-di-conversione" id="id9"
357             name="id9">Multipli del Bit (TABELLE DI
358             CONVERSIONE):</a></li>
359
360             <li><a class="reference internal" href=
361             "#trasmissione-dati-su-reti" id="id10" name=
362             "id10">Trasmissione dati su reti</a></li>
363
364             <li><a class="reference internal" href=
365             "#velocita-di-clock" id="id11" name="id11">Velocita' di
366             clock</a></li>
367           </ul>
368         </li>
369
370         <li>
371           <a class="reference internal" href=
372           "#supporti-di-storaggio-dati" id="id12" name=
373           "id12">Supporti di storaggio (dati)</a>
374
375           <ul>
376             <li><a class="reference internal" href="#hard-disks"
377             id="id13" name="id13">Hard Disks</a></li>
378
379             <li><a class="reference internal" href="#memorie-flash"
380             id="id14" name="id14">Memorie Flash</a></li>
381
382             <li>
383               <a class="reference internal" href=
384               "#propieta-dei-supporti-di-storaggio" id="id15" name=
385               "id15">Propieta' dei supporti di storaggio</a>
386
387               <ul>
388                 <li><a class="reference internal" href="#hard-disk"
389                 id="id16" name="id16">HARD DISK</a></li>
390               </ul>
391             </li>
392           </ul>
393         </li>
394
395         <li>
396           <a class="reference internal" href=
397           "#classi-di-elaboratori" id="id17" name="id17">Classi di
398           elaboratori</a>
399
400           <ul>
401             <li><a class="reference internal" href=
402             "#calcolatori-tascabili" id="id18" name=
403             "id18">Calcolatori tascabili</a></li>
404
405             <li><a class="reference internal" href=
406             "#palmari-e-smart-phones" id="id19" name="id19">Palmari
407             e smart phones</a></li>
408
409             <li><a class="reference internal" href=
410             "#ultraportabili-netbook" id="id20" name=
411             "id20">Ultraportabili (netbook)</a></li>
412
413             <li>
414               <a class="reference internal" href="#portatili" id=
415               "id21" name="id21">Portatili</a>
416
417               <ul>
418                 <li><a class="reference internal" href=
419                 "#trasportabili" id="id22" name=
420                 "id22">Trasportabili</a></li>
421
422                 <li><a class="reference internal" href=
423                 "#ultraportatili" id="id23" name=
424                 "id23">Ultraportatili</a></li>
425               </ul>
426             </li>
427
428             <li><a class="reference internal" href=
429             "#personal-computer" id="id24" name="id24">Personal
430             Computer</a></li>
431
432             <li><a class="reference internal" href="#work-station"
433             id="id25" name="id25">Work Station</a></li>
434
435             <li><a class="reference internal" href="#server" id=
436             "id26" name="id26">Server</a></li>
437
438             <li><a class="reference internal" href="#mainframe" id=
439             "id27" name="id27">Mainframe</a></li>
440
441             <li><a class="reference internal" href="#cluster" id=
442             "id28" name="id28">Cluster</a></li>
443
444             <li><a class="reference internal" href="#supercomputer"
445             id="id29" name="id29">Supercomputer</a></li>
446           </ul>
447         </li>
448
449         <li>
450           <a class="reference internal" href=
451           "#linguaggi-di-programmazione" id="id30" name=
452           "id30">Linguaggi di programmazione</a>
453
454           <ul>
455             <li><a class="reference internal" href="#compilatori"
456             id="id31" name="id31">Compilatori</a></li>
457
458             <li><a class="reference internal" href="#interpreti"
459             id="id32" name="id32">Interpreti</a></li>
460
461             <li><a class="reference internal" href=
462             "#java-e-similari" id="id33" name="id33">Java e
463             similari</a></li>
464           </ul>
465         </li>
466
467         <li><a class="reference internal" href="#licenze-software"
468         id="id34" name="id34">Licenze software</a></li>
469
470         <li>
471           <a class="reference internal" href="#tipi-di-licenze" id=
472           "id35" name="id35">Tipi di licenze</a>
473
474           <ul>
475             <li><a class="reference internal" href=
476             "#publico-dominio" id="id36" name="id36">Publico
477             dominio</a></li>
478
479             <li><a class="reference internal" href="#freeware" id=
480             "id37" name="id37">Freeware</a></li>
481
482             <li><a class="reference internal" href="#shareware" id=
483             "id38" name="id38">Shareware</a></li>
484           </ul>
485         </li>
486
487         <li>
488           <a class="reference internal" href=
489           "#licenze-per-software-liberi" id="id39" name=
490           "id39">Licenze per software liberi</a>
491
492           <ul>
493             <li><a class="reference internal" href=
494             "#copyleft-copyright" id="id40" name="id40">Copyleft !=
495             Copyright</a></li>
496
497             <li><a class="reference internal" href="#licenza-bsd"
498             id="id41" name="id41">Licenza BSD</a></li>
499
500             <li><a class="reference internal" href=
501             "#licenza-apache" id="id42" name="id42">Licenza
502             Apache</a></li>
503           </ul>
504         </li>
505
506         <li><a class="reference internal" href="#eula" id="id43"
507         name="id43">Eula</a></li>
508       </ul>
509     </div>
510
511     <p>Generato con: <a class="reference external" href=
512     "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
513
514     <div class="section" id="informatica">
515       <h1><a class="toc-backref" href=
516       "#id4">Informatica</a></h1><img alt="img/180px-Apple2.jpg"
517       src="img/180px-Apple2.jpg">
518
519       <dl class="docutils">
520         <dt>Informatica:</dt>
521
522         <dd>L'informatica e' una scienza interdisciplinare che
523         riguarda tutti gli aspetti del trattamento
524         dell'informazione mediante procedure automatizzate.</dd>
525       </dl>
526
527       <p>L'oggetto della materia sono quindi i
528       <strong>dati</strong> e la <strong>manipolazione</strong> di
529       questi, da un lato la capacita' di <em>storare</em> i dati
530       (cosa non cosi' elementare quando il quantitativo diventa
531       enorme) per poterli poi <em>manipolare</em>. Buona parte del
532       lavoro del sistemista consistera' quindi nel garantire
533       l'<em>integrita'</em> e la <em>disponibilita'</em> (intesa
534       come <em>continuita'</em> del servizio) dei dati. Stara' poi
535       all'<em>amministratore di rete</em> preoccuparsi di renderli
536       disponibili (si pensi a un sito web che rende delle risorse
537       disponibili) agli <em>utilizzatori</em>.</p>
538
539       <p>Link sull'argomento: <a class="reference external" href=
540       "http://it.wikipedia.org/wiki/Informatica">http://it.wikipedia.org/wiki/Informatica</a></p>
541
542       <div class="section" id="evoluzione-nella-societa">
543         <h2><a class="toc-backref" href="#id5">Evoluzione nella
544         societa'</a></h2>
545
546         <p>Per meglio percepire l'importanza dell'informatica si
547         rifletta sull'influenza che le seguenti invenzioni nel
548         campo del trattamento delle informazioni hanno avuto sulla
549         societa' umana:</p>
550
551         <blockquote>
552           <ul>
553             <li>
554               <dl class="first docutils">
555                 <dt>Diffusione della scrittura:</dt>
556
557                 <dd>
558                   <ul class="first last simple">
559                     <li><em>integrita'</em> dell'informazione: dati
560                     come il costo di una merce cessano di essere
561                     arbitrari, con conseguenze negli scambi
562                     commerciali.</li>
563
564                     <li>maggiore durata nel tempo delle
565                     informazioni (seppur limitata da supporti
566                     deperibili)</li>
567                   </ul>
568                 </dd>
569               </dl>
570             </li>
571
572             <li>
573               <dl class="first docutils">
574                 <dt>Invenzione della stampa: <a class=
575                 "reference external" href=
576                 "%3CMergeConflict%3E">Gutenberg</a> 1448</dt>
577
578                 <dd>
579                   <ul class="first last simple">
580                     <li>Maggiore diffusione delle informazioni
581                     grazie all'abbattimento dei costi di
582                     stampa.</li>
583
584                     <li>Progressivo ampliamento della base di
585                     utenza: sempre piu' persone possono almeno
586                     imparare a leggere e quindi emanciparsi da una
587                     <em>casta</em> ristretta che mantiene il
588                     controllo sulla fruizione delle informazioni.
589                     Seppure in misura minore aumenta anche la
590                     possibilita' di produrre e diffondere
591                     contenuti.</li>
592                   </ul>
593                 </dd>
594               </dl>
595             </li>
596
597             <li>
598               <dl class="first docutils">
599                 <dt>Nascita dell'informatica/elettronica</dt>
600
601                 <dd>
602                   <ul class="first last simple">
603                     <li>Superamento di parte dei problemi legati
604                     alla deperibilita' dei supporti sui quali si
605                     conservano le informazioni.</li>
606
607                     <li>Enorme aumento del quantitativo di dati
608                     gestibili e abbassamento del costo di gestione.
609                     Supporti magnetici e ottici hanno radicalmento
610                     cambiato il modo di archiviare le informazioni
611                     rispetto ai depositi cartacei.</li>
612
613                     <li>Maggiore rapidita' nella trattazione delle
614                     informazioni, per es. la possibilita' di
615                     censire la popolazione rapidamente e gestire un
616                     apparato fiscale piu' efficiente.</li>
617
618                     <li>Possibilita' di incrociare i dati,
619                     ottenendo sostanzialmente nuovo valore da
620                     informazioni preesistenti</li>
621                   </ul>
622                 </dd>
623               </dl>
624             </li>
625
626             <li>
627               <dl class="first docutils">
628                 <dt>Diffusione della rete Internet</dt>
629
630                 <dd>
631                   <ul class="first last simple">
632                     <li>Disponibilita' globale delle informazioni
633                     (in formato elettronico) con costi nettamente
634                     minori rispetto al passato</li>
635
636                     <li>Abbattimento del costo della diffusione
637                     delle informazioni</li>
638                   </ul>
639                 </dd>
640               </dl>
641             </li>
642           </ul>
643         </blockquote>
644
645         <p>L'importanza della gestione digitale delle informazioni
646         e' tale da accentuare il divario esistente tra chi puo'
647         accedere ai nuovi mezzi e chi ne e' escluso, problema
648         indicato generalmente con il termine <a class=
649         "reference external" href=
650         ":http://it.wikipedia.org/wiki/Digital_Divide#Descrizione">Digital
651         Divide</a>.</p>
652       </div>
653     </div>
654     <hr class="docutils">
655
656     <div class="section" id="analogico-e-digitale">
657       <h1><a class="toc-backref" href="#id6">Analogico e
658       Digitale</a></h1>
659
660       <dl class="docutils">
661         <dt>Grandezze analogiche:</dt>
662
663         <dd>Sono grandezze <strong>continue</strong>: hanno
664         infiniti <em>stadi intermedi</em>. Si pensi al movimento
665         dell'ombra dell'asta di una meridiana in contrapposizione
666         alle posizioni finite di un orologio digitale, o alle
667         infinite posizioni che puo' assumere il potenziometro di un
668         amplificatore (ovviamente un amplificatore
669         <em>analogico</em>!). Tensione e corrente elettriche sono
670         grandezze analogiche perche' rappresentabili con funzioni
671         continue.</dd>
672
673         <dt>Grandezze digitali:</dt>
674
675         <dd>Sono <em>discrete</em>: assumono un numero
676         <em>finito</em> di stadi intermedi. Ad esempio
677         l'interruttore per accendere una lampada. Quando i valori
678         sono solo due si parla di valori <em>binari</em>, caso che
679         riscontriamo in tutte le tecnologie basate sul silicio come
680         i microprocessori o sui vecchi transistor. Si potrebbe
681         pensare ai componenti di un computer come ad enorme numero
682         di lampadine che possono essere solo accese o spente:
683         l'evoluzione tecnologica passando dai transistor ai
684         microporocessori ha raggiunto un livello di
685         miniaturizzazione dell'ordine dei ~30 nanometri.</dd>
686
687         <dt>La miniaturizzazione presenta i seguenti vantaggi:</dt>
688
689         <dd>
690           <ul class="first last simple">
691             <li>Minor costo di produzione ( rapporto tra il numero
692             di transistor e superfice del <em>wafer</em> sul quale
693             si stampano i microprocessori)</li>
694
695             <li>Minore distanza tra gli elementi = minore
696             <em>attrito</em> prodotto dal passaggio della corrente
697             = minore dispersione termica = minore calore. Questo si
698             traduce in un minore consumo elettrico, ulteriormente
699             accentuato dal corrispettivo risparmio sulle unita' di
700             raffreddamento.</li>
701           </ul>
702         </dd>
703       </dl>
704
705       <p>In informatica, con digitale ci si riferisce a tutto cio'
706       che viene rappresentato con numeri o che opera manipolando
707       numeri. Il termine deriva dall'inglese digit, che significa
708       cifra, che a sua volta deriva dal latino digitus, che
709       significa dito.</p><img alt="img/differ16.gif" src=
710       "img/differ16.gif">
711
712       <dl class="docutils">
713         <dt>Una grandezza, tensione o corrente, si dice analogica
714         quando al variare del tempo puo' essere rappresentata
715         mediante una funzione continua,</dt>
716
717         <dd>senza punti di discontinuita'.</dd>
718       </dl>
719
720       <p>Una grandezza si dice digitale quando viene rappresentata
721       mediante un sistema binario costituito da valori 0 ed 1.</p>
722
723       <p>Links: <a class="reference external" href=
724       "http://www.culturadigitale.net/?p=4">http://www.culturadigitale.net/?p=4</a></p>
725
726       <p>In informatica quindi si pone costantemente il problema
727       della rappresentazione delle grandezze analogiche (tipiche
728       del mondo <em>reale</em>) in valori digitali (discreti, e
729       quindi approsimativi) <strong>A/D - D/A</strong></p>
730     </div>
731
732     <div class="section" id="sistema-binario">
733       <h1><a class="toc-backref" href="#id7">Sistema
734       Binario</a></h1>
735
736       <p>I <em>computer</em> lavorano solo con grandezze finite, e
737       si basano su sistemi cosidetti <em>binari</em>, dato che i
738       microprocessori sono transistor miniaturizzati, che a loro
739       volta possono essere visti come insiemi di lampadine che per
740       definizione possono essere solo <em>accese</em> o
741       <em>spente</em>.</p>
742
743       <p>Potremmo considerare quindi i due stati come:</p>
744
745       <blockquote>
746         <ul class="simple">
747           <li>Spento = 0</li>
748
749           <li>Acceso = 1</li>
750         </ul>
751       </blockquote>
752
753       <p>Entita' <em>discrete</em> come numeri interi o caratteri
754       possono essere espressi facilmente con la sola combinazione
755       dei valori 0 e 1, mentre valori <em>complessi</em>
756       riconducibili a numeri reali (pensiamo alle infinite
757       sfumature di un colore o ai suoni) tramite un'approssimazione
758       basata su un numero di bit arbitrario. Ad esempio Il
759       carattere <em>a</em> in formato <em>ASCII</em> si puo'
760       esprimere con: <tt class="docutils literal"><span class=
761       "pre">01100001</span></tt> , un'immagine puo' essere
762       rappresentata da una griglia di punti (pixel) piu' o meno
763       estesa (risoluzione) con una certa <em>profondita' di
764       colore</em> espressa in bit,</p>
765
766       <p>E cercare di comporre valori <em>complessi</em>
767       (approssimazione di numeri reali tramite un numero di bit
768       arbitrario), con la sola combinazione dei valori 0 e 1,
769       mentre entita' <em>discrete</em> Il carattere <em>a</em> in
770       formato <em>ASCII</em> si puo' esprimere con: <tt class=
771       "docutils literal"><span class="pre">01100001</span></tt>
772       .</p>
773
774       <p>Schema sulla trasformazione da binario a decimale:</p>
775       <pre class="literal-block">
776 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0     decimali =  0
777 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1     decimali =  1
778 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0     decimali =  2
779 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1     decimali =  3
780 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0     decimali =  4
781 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1     decimali =  5
782 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0     decimali =  6
783 ....
784 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1     decimali =  255
785 </pre>
786
787       <dl class="docutils">
788         <dt>Si lavora in base 2 (cioe' si moltiplica sempre per 2),
789         quindi si ha a che fare con sequenze numeriche del
790         tipo:</dt>
791
792         <dd>
793           <p class="first"><tt class=
794           "docutils literal"><span class="pre">2</span>
795           <span class="pre">4</span> <span class="pre">8</span>
796           <span class="pre">16</span> <span class="pre">32</span>
797           <span class="pre">64</span> <span class="pre">128</span>
798           <span class="pre">256</span> <span class="pre">512</span>
799           <span class="pre">1024</span> <span class=
800           "pre">...</span></tt></p>
801
802           <p>C'e' una ripetizione di questi <em>patterns</em>
803           numerici dovuti alle <strong>parole</strong> usate dai
804           processori. Se l'unita' minima dell'informazione e' il
805           <em>bit</em>, l'unita' minima <em>funzionale</em> e' il
806           <strong>Byte</strong>: con 256 valori possibili possiamo
807           esprimere efficacemente caratteri, colori ed altre
808           informazioni percepibili dai nostri sensi.</p>
809
810           <p class="last">In informatica, word_(dall'inglese
811           parola) e' un termine che identifica la dimensione nativa
812           dei dati usati da un computer. Una word e' semplicemente
813           un gruppo di bit di una determinata dimensione che sono
814           gestiti come unita' da un microprocessore. La dimensione
815           (o lunghezza) della word e' un'importante caratteristica
816           dell'architettura di un computer.</p>
817         </dd>
818       </dl>
819
820       <dl class="docutils">
821         <dt>Links aggiuntivi:</dt>
822
823         <dd>
824           <ul class="first last simple">
825             <li><a class="reference external" href=
826             "http://www.culturadigitale.net/?p=8">http://www.culturadigitale.net/?p=8</a></li>
827
828             <li><a class="reference external" href=
829             "http://doc.studenti.it/appunti/introduzione-allinformatica/2/introduzione-informatica.html">
830             http://doc.studenti.it/appunti/introduzione-allinformatica/2/introduzione-informatica.html</a></li>
831           </ul>
832         </dd>
833       </dl>
834     </div>
835
836     <div class="section" id="unita-di-misura">
837       <h1><a class="toc-backref" href="#id8">Unita' di
838       misura</a></h1>
839
840       <p>Se diciamo che una singola <em>lampadina</em> sia un
841       <strong>bit</strong>, nel nostro lavoro ci troviamo a gestire
842       miliardi di lampadine. Cerchiamo di definire dei multipli del
843       bit per rendere la quotidianita' piu' semplice.</p>
844
845       <dl class="docutils">
846         <dt>bit</dt>
847
848         <dd>Una singola informazione, l'unita' minima. Si indica
849         con la <em>b</em> <strong>minuscola</strong>. E' l'unita'
850         di misura di riferimento per il <em>trasferimento</em> dei
851         dati su reti: una scheda di rete <em>10/100</em> sposta
852         circa 12MB (Bytes) al secondo.</dd>
853
854         <dt>Byte:</dt>
855
856         <dd>Un Byte e' formato da 8 bit. Si indica con la
857         <em>B</em> <strong>Maiuscola</strong> . La si puo'
858         considerare l'unita' <em>funzionale</em> minima
859         nell'informatica, dato che un numero minore di bit
860         difficilmente puo' rappresentare qualcosa di significativo.
861         E' l'unita' di misura di riferimento per lo storaggio dati:
862         le dimensioni dei files e dei supporti di storaggio si
863         esprimono in Bytes.</dd>
864       </dl>
865
866       <div class="section" id=
867       "multipli-del-bit-tabelle-di-conversione">
868         <h2><a class="toc-backref" href="#id9">Multipli del Bit
869         (TABELLE DI CONVERSIONE):</a></h2>
870
871         <blockquote>
872           <ul class="simple">
873             <li>Bit</li>
874
875             <li>Byte (B): 8 bit</li>
876
877             <li>Kilobyte (KB): 1024 B</li>
878
879             <li>Megabyte (MB): 1024 KB, 1048576 B</li>
880
881             <li>Gigabyte (GB): 1024 MB, 1048576 KB, 1073741824
882             B</li>
883
884             <li>Terabyte (TB): 1024 GB, 1048576 MB, 1073741824 KB,
885             1099511627776 B</li>
886           </ul>
887         </blockquote>
888
889         <p>Link disponibile: <a class="reference external" href=
890         "http://it.wikipedia.org/wiki/Byte">http://it.wikipedia.org/wiki/Byte</a></p>
891
892         <dl class="docutils">
893           <dt>Nota:</dt>
894
895           <dd>Si tenga conto che i produttori di Hard Disk
896           generalmente indicano la capienza di detti supporti in
897           migliaia di megabyte e non 1024*: quindi per formattare 1
898           hd di 500 MB si considera 500/1000 (e non 500/1024).</dd>
899         </dl>
900       </div>
901
902       <div class="section" id="trasmissione-dati-su-reti">
903         <h2><a class="toc-backref" href="#id10">Trasmissione dati
904         su reti</a></h2>
905
906         <p>Il termine velocita' di trasmissione (o di
907         trasferimento) viene solitamente utilizzato a proposito di
908         scambi di informazioni tra computer o comunque dispositivi
909         elettronici. Siccome su questi dispositivi l'informazione
910         viene memorizzata e viaggia in forma digitale, ovvero e'
911         sostanzialmente una sequenza di bit, e' naturale che tale
912         velocita' venga misurata in bit per secondo (e da qui il
913         termine equivalente inglese bitrate).</p>
914
915         <p>Ad esempio, se in una linea ADSL abbiamo un
916         trasferimento dati di 4 Mb/s, cioe' 4.000.000 b/s, avremo
917         (4.000.000/8) B/s equivalenti a 500 kB/s.</p>
918
919         <p>Quindi per calcolare la velocita' di trasferimento di un
920         file le cui dimensioni sono espresse in BYTEs su una rete
921         bisogna <strong>dividere per 8</strong></p>
922
923         <p>Ad es:</p>
924
925         <blockquote>
926           <ul class="simple">
927             <li>ADSL 20 Mb (<em>venti mega bit</em>) ha una
928             velocita' equivalente di circa ~1.8MB (<em>mega</em>
929             Bytes) per secondo</li>
930
931             <li>Rete etherent 10/100 Mb ha una velocita' di
932             trasferimento di circa ~12MB per secondo.</li>
933           </ul>
934         </blockquote>
935
936         <p>C'e' uno scarto tra la velocita' nominale di
937         trasferimento dati su una rete e l'effettivo trasferimento
938         dei dati tra i due punti. Tipicamente questo e' dovuto a
939         forme di interferenza del supporto trasmissivo (pensiamo a
940         una rete wifi su onde radio), a imprecisioni dell'hardware
941         di rete, conflitti tra pacchetti, problemi ambientali.</p>
942       </div>
943
944       <div class="section" id="velocita-di-clock">
945         <h2><a class="toc-backref" href="#id11">Velocita' di
946         clock</a></h2>
947
948         <p>Usiamo l'<a class="reference external" href=
949         "http://it.wikipedia.org/wiki/Hertz">Hertz</a> come unita'
950         di misura per le frequenze quali quelle di clock della CPU
951         (es 2.0GHz numero di cicle del processore in un secondo) o
952         di un BUS di per il trasferimento dati (es 33Mhz). Un hertz
953         corrisponde alla distanza tra due creste di un onda.</p>
954
955         <p>In teoria, la <strong>velocita' o frequenza di
956         clock</strong> e' il numero di commutazioni (tra i due
957         livelli logici "0" e "1") che circuiti logici (interni ad
958         un'unita' di calcolo o di un microprocessore) sono in grado
959         di eseguire in un minuto secondo (preso come unita'di
960         tempo); essa espressa in cicli/secondo (Hertz) ed i suoi
961         multipli.</p>
962
963         <dl class="docutils">
964           <dt>Unita' di misura per le frequenze:</dt>
965
966           <dd>
967             <ul class="first last simple">
968               <li>1 hekt o hertz (simbolo hHz ) = 102 Hz = 100
969               Hz</li>
970
971               <li>1 kilohertz (simbolo kHz ) = 103 Hz = 1 000
972               Hz</li>
973
974               <li>1 megahertz (simbolo MHz ) = 106 Hz = 1 000 000
975               Hz</li>
976
977               <li>1 gigahertz (simbolo GHz ) = 109 Hz = 1 000 000
978               000 Hz</li>
979             </ul>
980           </dd>
981         </dl>
982
983         <p>Ricordiamo che i prefissi 'kilo', 'mega', 'giga', 'tera'
984         derivano dal sistema numerico decimale (a base 10) e
985         servono per esprimere le quantita' in 'ordini di
986         grandezza':</p>
987
988         <blockquote>
989           <ul class="simple">
990             <li>1 KILO = mille = 10^3</li>
991
992             <li>1 MEGA = 1 milione = 10^6</li>
993
994             <li>1 GIGA = 1 miliardo = 10^9</li>
995
996             <li>1 TERA = mille miliardi = 10^12</li>
997           </ul>
998         </blockquote>
999
1000         <p>La velocita' o frequenza di clock e' il numero di
1001         commutazioni tra i due livelli logici "0" e "1" che
1002         circuiti logici interni ad un'unita' di calcolo o di un
1003         microprocessore sono in grado di eseguire nell'unita' di
1004         tempo di un minuto secondo, ed e' espressa in cicli al
1005         secondo, o hertz, e suoi multipli; normalmente per eseguire
1006         un'istruzione o una semplice somma sono necessari piu'
1007         cicli di clock.</p>
1008
1009         <p>In queste moderne CPU essendo la velocita' di clock
1010         cosi' elevata, viene generata da un minuscolo oscillatore
1011         al quarzo posto all'interno della stessa CPU, regolabile
1012         tramite il BIOS. Gli informatici esperti sono in grado di
1013         aumentare le prestazioni dei computer aumentando la
1014         velocita' di clock nominale del processore, ma si tratta di
1015         un'operazione rischiosa che puo' portare al
1016         surriscaldamento della CPU. Vi sono comunque alcuni
1017         processori di particolare efficienza e robustezza che sono
1018         in grado di supportare bene velocita' di clock maggiori di
1019         quella nominale, senza subire danni. Nel gergo informatico
1020         questa operazione viene definita _overclocking, ed e'
1021         utilizzata anche dall'industria per testare l'affidabilita'
1022         delle CPU prodotte.</p>
1023
1024         <p>Tipicamente la velocita' di clock consigliata per una
1025         cpu viene stabilita da un valore medio statistico ottenuto
1026         considerando vari esemplari del wafer da cui proviene la
1027         cpu, quindi e' possibile che la nostra CPU sia
1028         <em>stabile</em> anche a una velocita' di clock
1029         <strong>leggermente</strong> superiore a quella indicata.
1030         All'opposto, quando un elaboratore non necessita della
1031         velocita' massima della CPU e' possibile fare il
1032         <em>downclock</em> della stessa, in modo da ridurne il
1033         consumo e il riscaldamento, a vantaggio di una maggiore
1034         stabilita' del sistema e minore usura del sistema di
1035         raffreddamento.</p>
1036
1037         <p>Le CPU piu' moderne, in particolare quelle montate sui
1038         sistemi portatili, possono variare dinamicamente la
1039         frequenza di lavoro a seconda del carico di lavoro da
1040         sostenere, in modo da ridurre il consumo medio e la
1041         rumorosita' (causata dalle ventole di raffreddamento). Ne
1042         e' un esempio la tecnologia <a class="reference external"
1043         href="http://it.wikipedia.org/wiki/SpeedStep">SpeedStep</a>
1044         di Intel, ed equivalenti di altri produttori.</p>
1045       </div>
1046     </div>
1047
1048     <div class="section" id="supporti-di-storaggio-dati">
1049       <h1><a class="toc-backref" href="#id12">Supporti di storaggio
1050       (dati)</a></h1>
1051
1052       <p>Supporti <strong>hardware</strong> adibiti a contenere le
1053       informazioni che trattiamo. In ambito informatico con il
1054       termine storage si identificano i dispositivi hardware, i
1055       supporti per la memorizzazione, le infrastrutture ed i
1056       software dedicati alla memorizzazione non volatile di grandi
1057       quantita' di informazioni in formato elettronico.</p>
1058
1059       <p>Tipici esempi di supporto di storaggio sono:</p>
1060
1061       <blockquote>
1062         <ul class="simple">
1063           <li>Hard disks</li>
1064
1065           <li>CD rom</li>
1066
1067           <li>Unita' a nastro</li>
1068
1069           <li>...</li>
1070         </ul>
1071       </blockquote>
1072
1073       <dl class="docutils">
1074         <dt>Supporti fisici per la memorizzazione non volatile:
1075         <a class="reference external" href=
1076         "http://it.wikipedia.org/wiki/Storage">http://it.wikipedia.org/wiki/Storage</a></dt>
1077
1078         <dd>In ambito informatico con il termine STORAGE
1079         (STORAGGIO, contenitore che conserva info) si identifica
1080         tutto l'hardware (dipositivi/supporti/infrastrutture)
1081         dedicato alla memorizzazione non volatile di grandi
1082         quantita' di informazioni in <em>formato elettronico</em>.
1083         Tipici supporti storaggio sono: hard disks, CD-ROM, unita'
1084         a nastro,floppy, chiavette USB.</dd>
1085       </dl>
1086
1087       <p>Con il termine memorizzazione non volatile si intende la
1088       possibilita' di immagazzinare delle informazioni in maniera
1089       persistente con una ragionevole probabilita' che
1090       l'informazione rimanga inalterata per un ragionevole lasso di
1091       tempo.</p>
1092
1093       <dl class="docutils">
1094         <dt>Con il termine memorizzazione NON VOLATILE si intende
1095         la possibilita' di immagazzinare delle informazioni IN
1096         MANIERA PERSISTENTE CON UNA RAGIONEVOLE PROBABILITA' CHE
1097         L'INFORMAZIONE RIMANGA INALTERATA PER UN RAGIONEVOLE LASSO
1098         DI TEMPO, e per farlo in formato digitale binario e'
1099         necessaria avere un supporto fisico con le seguenti
1100         caratteristiche:</dt>
1101
1102         <dd>
1103           <p class="first">-sul supporto possono essere <em>scritte
1104           almeno una volta</em> sequenze di bit;</p>
1105
1106           <p>-le sequenze di bit scritte rimangono <em>inalterate a
1107           meno di una specifica operazione di modifica</em>;</p>
1108
1109           <p class="last">-le sequenze di bit possono essere
1110           <em>lette un numero elevato di volte</em> senza
1111           alterarle.</p>
1112         </dd>
1113       </dl>
1114
1115       <p>La memoria RAM di un computer e' la tipica memoria
1116       volatile, infatti e' sufficiente che venga a mancare la
1117       corrente elettrica perche' tutte le informazioni in essa
1118       imagazzinate vadano perdute.</p>
1119
1120       <p>Esistono molti supporti fisici che rispondono a queste
1121       caratteristiche, ma nella storia dell'informatica solo alcuni
1122       si sono affermati e sono tuttora utilizzati:</p>
1123
1124       <blockquote>
1125         <ul class="simple">
1126           <li>Schede perforate (decisamente obsolete);</li>
1127
1128           <li>Nastri magnetici;</li>
1129
1130           <li>Dischi magnetici (hard disk e floppy disk);</li>
1131
1132           <li>Dischi ottici;</li>
1133         </ul>
1134       </blockquote>
1135
1136       <p>Supporti fisici per la memorizzazione non volatile:
1137       <a class="reference external" href=
1138       "http://it.wikipedia.org/wiki/Storage">http://it.wikipedia.org/wiki/Storage</a></p>
1139
1140       <div class="section" id="hard-disks">
1141         <h2><a class="toc-backref" href="#id13">Hard Disks</a></h2>
1142
1143         <p>Link: <a class="reference external" href=
1144         "http://it.wikipedia.org/wiki/Hard_disk">http://it.wikipedia.org/wiki/Hard_disk</a></p>
1145
1146         <p>Il disco rigido o hard disk (anche chiamato disco fisso)
1147         e' un dispositivo utilizzato per la memorizzazione a lungo
1148         termine dei dati in un computer. Il disco rigido e' il
1149         <strong>principale supporto di storaggio</strong> dei
1150         computer per via della sua capienza (~300 GB) e della sua
1151         velocita' di trasferimento dati ( ~25MB per secondo) .</p>
1152       </div>
1153
1154       <div class="section" id="memorie-flash">
1155         <h2><a class="toc-backref" href="#id14">Memorie
1156         Flash</a></h2>
1157
1158         <p>I supporti di storaggio <em>USB</em> o comunque di tipo
1159         <a class="reference external" href=
1160         "http://it.wikipedia.org/wiki/Memoria_flash">NAND</a> o
1161         <a class="reference external" href=
1162         "http://it.wikipedia.org/wiki/Disco_a_stato_solido">SSD</a>
1163         sono supporti removibili usati alla stregua dei vecchi
1164         floppy disk. La caratteristica peculiare e' che non hanno
1165         parti in movimento e sono quindi meno delicati rispetto ai
1166         supporti magnetici con testine in movimento su dischi (come
1167         gli hard disks ) o a quelli a nastro (come nei dispositivi
1168         a cartucce quali DAT e similari ). Sono meno fragili dei
1169         supporti ottici ( ala CD-Rom ) e meno sensibili
1170         all'esposizione solare diretta, piu' compatti fino ad
1171         essere tascabili nei tagli piu' piccoli.</p>
1172
1173         <p>Link: <a class="reference external" href=
1174         "http://it.wikipedia.org/wiki/Chiave_USB">http://it.wikipedia.org/wiki/Chiave_USB</a></p>
1175       </div>
1176
1177       <div class="section" id="propieta-dei-supporti-di-storaggio">
1178         <h2><a class="toc-backref" href="#id15">Propieta' dei
1179         supporti di storaggio</a></h2>
1180
1181         <table border="1" class="docutils">
1182           <colgroup>
1183             <col width="31%">
1184             <col width="16%">
1185             <col width="13%">
1186             <col width="16%">
1187             <col width="24%">
1188           </colgroup>
1189
1190           <thead valign="bottom">
1191             <tr>
1192               <th class="head" colspan="5">Supporti di
1193               Storaggio</th>
1194             </tr>
1195
1196             <tr>
1197               <th class="head">Tipo di dispositivo</th>
1198
1199               <th class="head">capienza</th>
1200
1201               <th class="head">lettura</th>
1202
1203               <th class="head">scrittura</th>
1204
1205               <th class="head">re-scrittura[1]</th>
1206             </tr>
1207           </thead>
1208
1209           <tbody valign="top">
1210             <tr>
1211               <td>Hard disk</td>
1212
1213               <td>~300GB</td>
1214
1215               <td>vero</td>
1216
1217               <td>vero</td>
1218
1219               <td>vero</td>
1220             </tr>
1221
1222             <tr>
1223               <td>Floppy disk</td>
1224
1225               <td>1.44MB</td>
1226
1227               <td>vero</td>
1228
1229               <td>dipende [2]</td>
1230
1231               <td>dipende</td>
1232             </tr>
1233
1234             <tr>
1235               <td>CD ROM</td>
1236
1237               <td>~640MB</td>
1238
1239               <td>vero</td>
1240
1241               <td>falso</td>
1242
1243               <td>falso</td>
1244             </tr>
1245
1246             <tr>
1247               <td>CD R</td>
1248
1249               <td>~640MB</td>
1250
1251               <td>vero</td>
1252
1253               <td>vero</td>
1254
1255               <td>falso</td>
1256             </tr>
1257
1258             <tr>
1259               <td>CD RW</td>
1260
1261               <td>~640MB</td>
1262
1263               <td>vero</td>
1264
1265               <td>vero</td>
1266
1267               <td>vero</td>
1268             </tr>
1269
1270             <tr>
1271               <td>DVD ROM</td>
1272
1273               <td>~4GB</td>
1274
1275               <td>vero</td>
1276
1277               <td>falso</td>
1278
1279               <td>falso</td>
1280             </tr>
1281
1282             <tr>
1283               <td>Blue Ray</td>
1284
1285               <td>~35GB</td>
1286
1287               <td>...</td>
1288
1289               <td>...</td>
1290
1291               <td>...</td>
1292             </tr>
1293
1294             <tr>
1295               <td>USB Key</td>
1296
1297               <td>~1/128GB</td>
1298
1299               <td>vero</td>
1300
1301               <td>vero</td>
1302
1303               <td>vero</td>
1304             </tr>
1305           </tbody>
1306         </table>
1307
1308         <dl class="docutils">
1309           <dt>Nota:</dt>
1310
1311           <dd>per DVD e Blue RAY valgono gli stessi ragionamenti di
1312           scrittura (R) e re-scrittura (RW) fatti per i CD, solo
1313           con <em>tante sigle in piu'</em>.</dd>
1314         </dl>
1315
1316         <table class="docutils footnote" frame="void" id="id2"
1317         rules="none">
1318           <colgroup>
1319             <col class="label">
1320             <col>
1321           </colgroup>
1322
1323           <tbody valign="top">
1324             <tr>
1325               <td class="label">[1]</td>
1326
1327               <td>Un floppy disk e' scrivibile se la targhetta e'
1328               posizionata in modalita' di scrittura, e all'opposto
1329               puo' diventare in sola lettura</td>
1330             </tr>
1331           </tbody>
1332         </table>
1333
1334         <table class="docutils footnote" frame="void" id="id3"
1335         rules="none">
1336           <colgroup>
1337             <col class="label">
1338             <col>
1339           </colgroup>
1340
1341           <tbody valign="top">
1342             <tr>
1343               <td class="label">[2]</td>
1344
1345               <td>Con <em>re-scrittura</em> si intende la
1346               possibilita' di modificare un dato piu' di una volta.
1347               Ad esempio su un supporto ottico <em>Recordable</em>
1348               si puo' scrivere una sola volta ( <a class=
1349               "reference external" href=
1350               "http://it.wikipedia.org/wiki/WORM">WORM</a> ),
1351               dopodiche i dati scritti non sono ulteriormente
1352               modificabili (ma possono essere aggiunte sucessive
1353               <em>sessioni</em> di scrittura se previsto). Questa
1354               caratteristica li rende indicati come supporto di
1355               back-up. Supporti <em>Rewritable</em> possono invece
1356               essere scritti piu' volte (la posizione dei cristalli
1357               pit/lane interni puo' essere modificata piu' volte,
1358               quindi i dati possono essere modificati /
1359               eliminati).</td>
1360             </tr>
1361           </tbody>
1362         </table>
1363
1364         <dl class="docutils">
1365           <dt>Tutti supporti di storaggio hanno vita limitata
1366           (aspettativa di vita), influenzata fortemente dalla
1367           nostra modalita' di utilizzo e da fattori/accidenti
1368           esterni; sono quindi soggetti ad alcune norme di
1369           conservazione specifiche:</dt>
1370
1371           <dd>
1372             <ul class="first last simple">
1373               <li>HD: mantiene dati per 2-5 anni</li>
1374
1375               <li>SUPPORTI MAGNETICI: evitare l'esposizione a
1376               rapide variazioni termiche e campi magnetici.</li>
1377
1378               <li>SUPPORTI OTTICI: tenerlo lontano da fonti calore,
1379               non depositarlo senza la custodia dedicata, non
1380               sottoporlo a nessun tipo di sollecitazione meccanica
1381               (piegarlo, torcerlo ).</li>
1382             </ul>
1383           </dd>
1384         </dl>
1385
1386         <div class="section" id="hard-disk">
1387           <h3><a class="toc-backref" href="#id16">HARD
1388           DISK</a></h3>
1389
1390           <p>Il disco rigido o hard disk (anche chiamato disco
1391           fisso) e' un dispositivo utilizzato per la memorizzazione
1392           a lungo termine dei dati in un computer. E' 1 supporto
1393           magnetico con 1 testina che si sposta per leggere dati su
1394           uno o piu' dischi.</p>
1395
1396           <p>Caratteristiche fondamentali: capiente (200-500 MB
1397           fino TB) + Trasf.dati (I/O) + riscrivibile (R,W,RW).</p>
1398
1399           <p>E' quindi il <strong>principale supporto di
1400           storaggio</strong> per via della sua capienza (~300 GB),
1401           ma rappresenta un limite ('collo di bottiglia') per le
1402           <em>prestazioni</em> dell'intero pc perche' e' molto
1403           lento nel trasferire dati (25-30 MB/s) rispetto alla cpu
1404           (&lt; 3 GHZ). Negli ultimi anni le prestazioni della cpu
1405           sono raddoppiate circa ogni 18 mesi (Legge di <a class=
1406           "reference external" href=
1407           "http://it.wikipedia.org/wiki/Legge_di_Moore">Moore</a>),
1408           mentre i dischi rigidi sono rimasti relativamente statici
1409           dal punto di vista delle prestazioni nello scambio
1410           dati.</p>
1411
1412           <p>Link: <a class="reference external" href=
1413           "http://it.wikipedia.org/wiki/Hard_disk">http://it.wikipedia.org/wiki/Hard_disk</a></p>
1414
1415           <blockquote>
1416             <ul class="simple">
1417               <li>I vari formati dei supporti ottici DVD: <a class=
1418               "reference external" href=
1419               "http://it.wikipedia.org/wiki/Dvd#Formati_DVD">http://it.wikipedia.org/wiki/Dvd#Formati_DVD</a></li>
1420
1421               <li>I vari formati dei supporti ottici Blue-Ray Disk:
1422               <a class="reference external" href=
1423               "http://it.wikipedia.org/wiki/Blu-ray_Disc">http://it.wikipedia.org/wiki/Blu-ray_Disc</a></li>
1424             </ul>
1425           </blockquote>
1426         </div>
1427       </div>
1428     </div>
1429
1430     <div class="section" id="classi-di-elaboratori">
1431       <h1><a class="toc-backref" href="#id17">Classi di
1432       elaboratori</a></h1>
1433
1434       <p>Cerchiamo di distinguere gli elaboratori per
1435       caratteristiche fisiche e funzionali, considerando la loro
1436       architettura, ambiente di utilizzo, target di utenza a cui
1437       sono rivolti.</p>
1438
1439       <p>Stabiliamo alcuni criteri per distinguere le varie
1440       classi:</p>
1441
1442       <blockquote>
1443         <ul class="simple">
1444           <li>dimensioni</li>
1445
1446           <li>mobilita'</li>
1447
1448           <li>input | output</li>
1449
1450           <li>capcita' di calcolo</li>
1451
1452           <li>numero di utenti</li>
1453
1454           <li>completezza dell'interfaccia utente</li>
1455         </ul>
1456       </blockquote>
1457
1458       <div class="section" id="calcolatori-tascabili">
1459         <h2><a class="toc-backref" href="#id18">Calcolatori
1460         tascabili</a></h2><img alt="img/calcs.jpg" src=
1461         "img/calcs.jpg">
1462
1463         <p>Sono le macchine piu' semplici, generalmente poco
1464         flessibili, tendono ad essere piu' sofisticate nel caso
1465         delle calcolatrici scientifiche. Queste ultime sono spesso
1466         programmabili e hanno display comunque di dimensioni
1467         ridotte. L'interfaccia utente e' quindi molto
1468         semplificata.</p>
1469       </div>
1470
1471       <div class="section" id="palmari-e-smart-phones">
1472         <h2><a class="toc-backref" href="#id19">Palmari e smart
1473         phones</a></h2><img alt="img/palm.gif" src="img/palm.gif">
1474
1475         <p>Device caratterizzati dalle piccole dimensioni e dalla
1476         portabilita' (dimensioni <em>tascabili</em> e autonomia
1477         nell'ordine delle decine di ore), possono essere
1478         relativamente potenti e flessibili, sopratutto quando
1479         vengono equipaggiati con sistemi operativi analoghi a
1480         quelli dei personal computers. Le loro prestazioni in
1481         alcuni casi sono paragonabili a PC fissi di 4/5 anni
1482         precedenti alla loro introduzione sul mercato.</p>
1483
1484         <p>La capacita' di storaggio e' in genere molto limitata,
1485         ma e' possibile espanderla con schede di memoria. I modelli
1486         piu' recenti possono appogiiarsi a file-system di rete.</p>
1487
1488         <p>Autonomia: da 4 a 25 ore. Capacita' di storaggio:
1489         centinaia di MB</p>
1490       </div>
1491
1492       <div class="section" id="ultraportabili-netbook">
1493         <h2><a class="toc-backref" href="#id20">Ultraportabili
1494         (netbook)</a></h2><img alt="img/eeepc.jpg" src=
1495         "img/eeepc.jpg">
1496
1497         <p>Sono sostanzialmente l'anello intermedio tra i palmari e
1498         i portatili. Di prezzo intermedio tra i due, hanno in
1499         genere una dotazione hardware semplificata e ridotte
1500         capacita' di espansione rispetto a un portatile. Dotati di
1501         monitor e tastiere <em>standard</em> possono far
1502         <em>girare</em> gli stessi sistemi operativi dei computer
1503         fissi e quasi tutti i software con essi compatibili senza
1504         dover intervenire sulle interfacce utente.</p>
1505
1506         <p>Autonomia: da 1 a 8 ore. Capacita' di storaggio: da 4GB
1507         (stato solido) a 80GB (hard disk magnetici)</p>
1508       </div>
1509
1510       <div class="section" id="portatili">
1511         <h2><a class="toc-backref" href=
1512         "#id21">Portatili</a></h2><img alt="img/laptop.jpg" src=
1513         "img/laptop.jpg">
1514
1515         <p>Versioni portabili o per lo meno <em>trasportabili</em>
1516         dei personal computers. Hanno generalmente una tastiera
1517         completa ma di dimensioni ridotte, un display di ~ 15
1518         pollici, processori ottimizzati al risparmio energetico,
1519         capacita' di storaggio limitate. L'espandibilita' e' molto
1520         limitata. I portabili hanno una batteria che ne consente
1521         l'utilizzo senza accesso alla rete elettrica fissa per
1522         alcune ore. I cosidetti <em>trasportabili</em> hanno
1523         un'autonomia senza rete elettrica irrisoria. Visto il
1524         progressivo abbassamento dei prezzi stanno raggiungendo i
1525         computer fissi per diffusione.</p>
1526
1527         <p>Autonomia: da 2 a 10 ore. Capacita' di storaggio: da
1528         250Gb fino a 1TB (Anche in RAID! )</p>
1529
1530         <div class="section" id="trasportabili">
1531           <h3><a class="toc-backref" href=
1532           "#id22">Trasportabili</a></h3>
1533
1534           <p>I cosidetti <em>TRASPORTABILI</em> sono
1535           sostanzialmente delle work-station che si possono
1536           spostare da una lugo all'altro.Data l'autonomi irrisoria
1537           della batteria (anche 30/45 minuti) sono praticamente
1538           utilizzabili solo connessi alla rete elettrica.</p>
1539
1540           <p>Tipicamente sono piu' tozzi e pesanti dei portatili
1541           veri e propri, ma sono in genere piu' economici. Ad
1542           eccezione dei modelli particolarmente lussuori con
1543           display da 17 o piu' pollici, tipicamente dedicati al
1544           multimedia.</p>
1545         </div>
1546
1547         <div class="section" id="ultraportatili">
1548           <h3><a class="toc-backref" href=
1549           "#id23">Ultraportatili</a></h3>
1550
1551           <p>Sacrificano le prestazioni per migliorare la
1552           portabilita': molto leggeri, grande autonomia (6 o piu'
1553           ore), display da 12 pollici o inferiore, tipicamente
1554           molto costosi.</p>
1555         </div>
1556       </div>
1557
1558       <div class="section" id="personal-computer">
1559         <h2><a class="toc-backref" href="#id24">Personal
1560         Computer</a></h2><img alt="img/180px-Apple2.jpg" src=
1561         "img/180px-Apple2.jpg">
1562
1563         <p>Sono le normali macchine fisse usati dagli gli utenti
1564         per gli usi piu' disparati. Sono le macchine piu'
1565         <em>comuni</em>, utilizzate per lavori di office automation
1566         e intrattenimento, dotate di processori che privilegiano le
1567         prestazioni rispetto al consumo (e al costo), e sono
1568         generalmente il risultato dell'assemblaggio di parti sfuse
1569         (schede madri, processori, periferiche) la cui combinazione
1570         puo' portare a risultati variegati. A differenza delle
1571         classi precedentemente descritte sono aggiornabili (posto
1572         che ci sia compatibilita' tra i singoli componenti).</p>
1573       </div>
1574
1575       <div class="section" id="work-station">
1576         <h2><a class="toc-backref" href="#id25">Work
1577         Station</a></h2>
1578
1579         <p>Sono postazioni singole ad alte performance per gli usi
1580         piu' impegnativi (grafica, calcolo). Fino ad alcuni anni fa
1581         erano generalmente caratterizzate da architetture
1582         multiprocessore, ma oggi si trovano <em>palmari</em> con
1583         piu' di una CPU quindi questo elemento non e' piu'
1584         determinante. Generalmente il costo e' di molte migliaia di
1585         euro. Questo termine sta diventando pero' obsoleto, data la
1586         difficolta' di caratterizzare queste macchine, per scopi
1587         promozionali / commerciali viene ormai usato per quasi
1588         tutti i sistemi in vendita...</p>
1589       </div>
1590
1591       <div class="section" id="server">
1592         <h2><a class="toc-backref" href=
1593         "#id26">Server</a></h2><img alt="img/blade_server.jpg" src=
1594         "img/blade_server.jpg">
1595
1596         <p>Un server e' un elaboratore che tipicamente eroga
1597         servizi a molti <em>utenti</em> (clients) e offre
1598         continuita' del servizio: un server tipicamente resta
1599         acceso 24/7 mentre una workstation otto ore al giorno.
1600         L'hardware di un server (in particolare le parti in
1601         movimento piu' soggette a usura: alimentatore, ventole,
1602         hard disks) dovrebbero quindi essere in grado di funzionare
1603         tutto il giorno tutti i giorni, dato che l'interruzione,
1604         seppur temporanea, dell'erogazione dei servizi puo'
1605         compromettere la produttivita' di molti <em>clients</em>.
1606         Componenti come alimentatore o hard disk hanno comunque una
1607         vita limitata (anche se di <em>buona</em> qualita') e in
1608         previsione di un loro malfunzionamento e' possibile
1609         implementare sistemi di <em>ridondanza</em> relativamente
1610         economici come <a class="reference external" href=
1611         "http://it.wikipedia.org/wiki/RAID">RAID</a> e
1612         alimentazione ridondante. Puo' essere possibile a seconda
1613         del tipo di hardware sostituire <em>al volo</em> (hot swap)
1614         i componenti guasti senza essere costretti a spegnere la
1615         macchina per l'intervento di manutenzione.</p>
1616
1617         <p>I requisiti di capacita' di calcolo e memoria avranno da
1618         calcolare in base ai requisiti dei servizi in esecuzione
1619         sul server in relazione al numero dei client collegati e
1620         effettivo utilizzo di questi. Non e' raro trovare server
1621         con quantitativi di <em>RAM</em> o <em>CPU</em> ben piu'
1622         limitati dei clients che servono quando i servizi sono poco
1623         esosi di risorse o le richieste relativamente frequenti e
1624         sopratutto senza picchi di utilizzo. Alcuni servizi
1625         fondamentali come DNS, routing o firewall possono saturare
1626         la banda disponibile del server ben prima delle altre
1627         risorse di sistema. Capita ritrovare vecchie work-station
1628         in disuso, ormai sostituite da macchine piu' recenti e
1629         prestanti, svolgere decorosamente queste funzioni. Il che'
1630         rappresenta un'interessante opzione di reciclo, per quanto
1631         il consumo elettrico sia il piu' delle volte sproporzionato
1632         al lavoro svolto (tenendo come riferimento macchine a
1633         bassissiimo costo di derivazione embedded o NAS di
1634         produzione recente, ma il discorso si farebbe
1635         complicato...) .</p>
1636
1637         <p>Tipicamente i server hanno capacita' di
1638         <em>collegamento</em> (hardware di rete) superiori ai
1639         singoli client (in proporzione alle macchine che devono
1640         servire), ma dato che <em>spesso</em> client e server
1641         condividono la stessa architettura hardware non e' semplice
1642         fare in modo che i server siano in grado di gestire
1643         input/output in quantita' direttamente proporzionale al
1644         numero dei clients. Si tenga conto che molti servizi non
1645         prevedono un flusso costante di dati ma solo chiamate
1646         sporadiche: questo permette di poter pianificare la
1647         ampiezza di banda necessaria al server sul valore massimo
1648         <em>stimato</em> di connessioni che si potrebbero
1649         verificare in un singolo momento piuttosto che sul reale
1650         numero di clients.</p>
1651
1652         <p>Spesso i server non hanno periferiche di input dedicate
1653         (mouse e tastiera), e preferibilmente montano hardware a
1654         basso consumo (anche per limitare di conseguenza l'usura
1655         dei sistemi di raffreddamento, e per permettere la
1656         concentrazione in singoli armadi o <em>server farm</em>
1657         ).</p>
1658       </div>
1659
1660       <div class="section" id="mainframe">
1661         <h2><a class="toc-backref" href=
1662         "#id27">Mainframe</a></h2><img alt="img/mainframe.jpg" src=
1663         "img/mainframe.jpg">
1664
1665         <p>Tipo di macchine "desuete" (a parte i casi in cui non se
1666         ne puo' fare a meno, ma la tendenza iattuale e' di
1667         sostituirle con uno o piu' server), i mainframe sono
1668         fondamentalmente caratterizzate da una superiore capacita'
1669         nella gestione dell'input/output, e nel garantire la
1670         continuita' del servizio (molti mainframe permettono la
1671         sostituzione a caldo anche dei processori).</p>
1672
1673         <p>I mainframe o Sistemi Centrali sono computer utilizzati
1674         per applicazioni critiche soprattutto da grandi aziende e
1675         istituzioni, tipicamente per elaborare con alte prestazioni
1676         ed alta affidabilita' grandi moli di dati, come quelle in
1677         gioco nelle transazioni finanziarie, nei censimenti, nelle
1678         statistiche di industrie e clienti, nelle applicazioni
1679         ERP(Enterprise Resource Planning), etc</p>
1680       </div>
1681
1682       <div class="section" id="cluster">
1683         <h2><a class="toc-backref" href=
1684         "#id28">Cluster</a></h2><img alt="img/cluster.jpg" src=
1685         "img/cluster.jpg">
1686
1687         <p>soluzione <em>economica</em> per raggiungere alte
1688         prestazioni utilizzando piu' macchine <em>semplici</em> in
1689         parallelo per lo stesso scopo. Google ad esempio e' un
1690         cluster costituito da macchine x86 facilmente reperibili
1691         sul mercato. L'hardware e' quindi relativamente economico
1692         come gli interventi su di esso, e data la possibilita' di
1693         garantire il funzionamento del cluster a prescindere dal
1694         <em>fallimento</em> di un singolo membro si puo' tollerare
1695         hardware meno sofisticato.</p>
1696       </div>
1697
1698       <div class="section" id="supercomputer">
1699         <h2><a class="toc-backref" href=
1700         "#id29">Supercomputer</a></h2><img alt=
1701         "img/supercomputer.jpg" src="img/supercomputer.jpg">
1702
1703         <p>I supercomputer sono macchine che raggiungono le massime
1704         prestazioni possibili secondo la tecnologia disponibile per
1705         singola unita'. La loro architettura e' altamente
1706         specializzata e costruita su misura, sono generalmente
1707         molto costosi e poco aggiornabili.</p>
1708
1709         <p>La tendenza attuale e' di sostituirli con clusters di
1710         macchine piu' semplici da gestire: nelle _classifiche dei
1711         "super computer" molti sistema sono clusters.</p>
1712       </div>
1713     </div>
1714
1715     <div class="section" id="linguaggi-di-programmazione">
1716       <h1><a class="toc-backref" href="#id30">Linguaggi di
1717       programmazione</a></h1>
1718
1719       <p>I computer, come detto in precedenza, registrano e
1720       elaborano dei dati. Quest'ultima parte viene svolta con dei
1721       programmi che sono sostanzialmente delle sequenze di
1722       istruzioni, scritte in un linguaggio comprensibile
1723       all'elaboratore, ripetute piu' volte.</p>
1724
1725       <p>links: <a class="reference external" href=
1726       "http://it.wikipedia.org/wiki/Linguaggio_di_programmazione">http://it.wikipedia.org/wiki/Linguaggio_di_programmazione</a></p>
1727
1728       <p>Sappiamo che i microporcessori elaborano sequenze binarie
1729       formate dai valori <tt class="docutils literal"><span class=
1730       "pre">1|0</span></tt>, ma sarebbe decisamente scomodo per gli
1731       sviluppatori scrivere i programmi in questo formato. Si
1732       <em>preferisce</em> scrivere i software in linguaggi formali
1733       piu' simili alla lingua umana (inglese), che oltre a essere
1734       piu' <em>significativi</em> per gli sviluppatori permettono
1735       di scrivere sequenze di comandi che potranno poi essere
1736       adattate automaticamente alle varie CPU.</p>
1737
1738       <p>La trasformazione del <em>codice sorgente</em> scritto dal
1739       programmatore in un linguaggio di piu' <em>alto livello</em>
1740       rispetto al <em>codice oggetto</em> direttamente eseguibile
1741       dal microprocessore viene svolta da un compilatore o da un
1742       interprete.</p>
1743
1744       <p>Esistono probabilmente centinaia di linguaggi di
1745       programmazione, caratterizzabili in base a:</p>
1746
1747       <blockquote>
1748         <ul class="simple">
1749           <li>Distanza dall'hardware: linguaggi di basso livello
1750           come l'<em>assebler</em> sono molto piu' a contatto con
1751           le caratteristiche propie della CPU rispetto a linguaggi
1752           di alto livello come <em>Python / Ruby / PHP</em>. La
1753           possibilita' di interagire in modo piu' stretto con
1754           l'hardware puo produrre codice piu' prestante.</li>
1755
1756           <li>Semplicita': linguaggi di <em>alto livello</em>,
1757           sopratutto se interpretati, risultano molto piu' semplici
1758           da scrivere e manutenere, abbassando di conseguenza costi
1759           e tempi di sviluppo. Vista la attuale capacita' di
1760           calcolo dei microprocessori l'efficena massima del codice
1761           tende oggi a non essere prioritaria rispetto al tempo di
1762           sviluppo (almeno in molti casi).</li>
1763         </ul>
1764       </blockquote>
1765
1766       <p><a class="reference external" href=
1767       "http://it.wikipedia.org/wiki/Linguaggio_di_programmazione#Linguaggi_compilati_e_linguaggi_interpretati">
1768       http://it.wikipedia.org/wiki/Linguaggio_di_programmazione#Linguaggi_compilati_e_linguaggi_interpretati</a></p>
1769
1770       <div class="section" id="compilatori">
1771         <h2><a class="toc-backref" href=
1772         "#id31">Compilatori</a></h2>
1773
1774         <p>In informatica, un compilatore e' un programma che
1775         traduce una serie di istruzioni scritte in un determinato
1776         linguaggio di programmazione (codice sorgente) in
1777         istruzioni di un altro linguaggio (codice oggetto). Questo
1778         processo di traduzione si chiama compilazione.</p>
1779
1780         <p>Dal codice sorgente viene quindi generato un codice
1781         oggetto direttamente eseguibile dalla CPU, senza bisogno
1782         che al momento dell'esecuzione sia disponibile lo stesso
1783         linguaggio o componenti dell'ambiente si sviluppo. Dato che
1784         il compilatore ha la possibilita' di fare un'analisi
1785         generale del codice prima di cominciare a convertirlo il
1786         codice risultante e' in genere piu' ottimizzato rispetto al
1787         codice eseguito da un interprete.</p>
1788
1789         <p>La compilazione richiede una certa quantita' di tempo,
1790         ma questo accade <strong>solo in fase di
1791         compilazione</strong>. Una volta creato il codice oggetto
1792         questo sara' immediatamente eseguibile su tutte le macchine
1793         compatibili, con un evidente vantaggio di prestazioni
1794         rispetto ai linguaggi interpretati che devono procedere
1795         alla <em>traduzione</em> a ogni esecuzione del
1796         programma.</p>
1797
1798         <p>La necessita' di dover ricompilare ogni volta che si
1799         introduce un cambiamento del codice viene pero' visto come
1800         uno svantaggio rispetto ai linguaggi interpretati, dal
1801         punto di vista dello sviluppatore.</p>
1802
1803         <p>Poiche' in informatica non esitono <em>proiettili_
1804         d'argento</em> (silver bullets, una soluzione per tutti i
1805         problemi) abbiamo a disposizione tanti linguaggi diversi,
1806         per supportare approcci piu' o meno strutturati a
1807         problematiche piu' o meno complesse: linguaggi piu' o meno
1808         semplici, piu' o meno efficenti nelle prestazioni,
1809         ottimizzati per fare specifiche compiti, etc. L'idea di
1810         base sarebbe di cercare di elaborare soluzioni semplici con
1811         gli strumenti piu' adeguati (i linguaggi di programmazione)
1812         alla natura del problema.</p>
1813
1814         <p>Esempio di codice in linguaggio <strong>C</strong></p>
1815         <pre class="literal-block">
1816 #include &lt;stdio.h&gt;
1817
1818 int main()
1819 {
1820     printf("Hello, World!");
1821     return 0;
1822 }
1823 </pre>
1824
1825         <p>links: <a class="reference external" href=
1826         "http://it.wikipedia.org/wiki/C_(linguaggio">http://it.wikipedia.org/wiki/C_(linguaggio</a>)</p>
1827
1828         <p>Analisi codice: <a class="reference external" href=
1829         "http://it.wikipedia.org/wiki/C_(linguaggio">http://it.wikipedia.org/wiki/C_(linguaggio</a>)#Hello_world.21</p>
1830       </div>
1831
1832       <div class="section" id="interpreti">
1833         <h2><a class="toc-backref" href="#id32">Interpreti</a></h2>
1834
1835         <p><a class="reference external" href=
1836         "http://it.wikipedia.org/wiki/Interprete_(informatica">http://it.wikipedia.org/wiki/Interprete_(informatica</a>)</p>
1837
1838         <p>Un linguaggio interpretato e' un linguaggio di
1839         programmazione i cui programmi vengono eseguiti da un
1840         interprete. Tale approccio si distingue da quello dei
1841         linguaggi compilati: a differenza di un interprete, un
1842         compilatore non esegue il programma che riceve in ingresso,
1843         ma lo traduce in linguaggio macchina (memorizzando su file
1844         il codice oggetto pronto per l'esecuzione diretta da parte
1845         del processore).</p>
1846
1847         <p>L'approccio interpretato comporta una minore efficienza
1848         a run-time; un programma interpretato, in esecuzione,
1849         richiede piu' memoria ed e' meno veloce, a causa dello
1850         overhead introdotto dall'interprete stesso. Durante
1851         l'esecuzione, l'interprete deve infatti analizzare le
1852         istruzioni a partire dal livello sintattico, identificare
1853         le azioni da eseguire (eventualmente trasformando i nomi
1854         simbolici delle variabili coinvolte nei corrispondenti
1855         indirizzo di memoria), ed eseguirle; mentre le istruzioni
1856         del codice compilato, gia' in linguaggio macchina, vengono
1857         caricate e istantaneamente eseguite dal processore.</p>
1858
1859         <p>Esempio in python:</p>
1860
1861         <blockquote>
1862           <tt class="docutils literal"><span class=
1863           "pre">print</span> <span class="pre">"hello</span>
1864           <span class="pre">world!"</span></tt>
1865         </blockquote>
1866
1867         <p>Analisi: scrive hello world a schermo !</p>
1868       </div>
1869
1870       <div class="section" id="java-e-similari">
1871         <h2><a class="toc-backref" href="#id33">Java e
1872         similari</a></h2>
1873
1874         <p>link <a class="reference external" href=
1875         "http://it.wikipedia.org/wiki/Macchina_virtuale_Java">http://it.wikipedia.org/wiki/Macchina_virtuale_Java</a></p>
1876
1877         <p>La macchina virtuale Java, detta anche Java Virtual
1878         Machine o JVM, e' la macchina virtuale che esegue i
1879         programmi in linguaggio Java bytecode, ovvero i prodotti
1880         della compilazione dei sorgenti Java. La JVM e' formalmente
1881         una specifica, mantenuta da Sun Microsystems. Qualsiasi
1882         sistema che si comporti in modo coerente con tale specifica
1883         sara' quindi da considerarsi una particolare
1884         implementazione della JVM. Esistono implementazioni
1885         software per praticamente tutti i sistemi operativi
1886         moderni, sia gratuite che commerciali. Inoltre, esistono
1887         implementazioni speciali per particolari ambienti
1888         hardware/software (per esempio telefoni cellulari e
1889         palmari), e persino implementazioni hardware.</p>
1890
1891         <p>La disponibilita' di implementazioni della macchina
1892         virtuale Java per diversi ambienti operativi e' la chiave
1893         della portabilita' di Java, proclamata nello slogan write
1894         once, run everywhere ("scrivi una volta, esegui
1895         dappertutto"). La macchina virtuale realizza infatti un
1896         ambiente di esecuzione omogeneo, che nasconde al software
1897         Java (e quindi al programmatore) qualsiasi specificita' del
1898         sistema operativo sottostante:</p>
1899         <pre class="literal-block">
1900 ================================
1901 |  Software applicativo Java   |
1902 ===============================
1903   |  Java Virtual Machine    |
1904    ==========================
1905     |   Sistema Operativo  |
1906      ======================
1907 </pre>
1908
1909         <p>Sostanzialmente il codice Java viene scritto per essere
1910         eseguito da una Java Virtual Machine (JVM), della quale
1911         viene rilasciata una versione per ogni diverso sistema
1912         operativo. In questo modo modo lo sviluppatore puo'
1913         scrivere un codice che sia indipendente dal sistema in cui
1914         verra' eseguito, dato che la JVM (Java Virtual Machine)
1915         dovrebbe comportarsi allo stesso modo su qaulunque sistema
1916         venga installato.</p>
1917       </div>
1918     </div>
1919
1920     <div class="section" id="licenze-software">
1921       <h1><a class="toc-backref" href="#id34">Licenze
1922       software</a></h1>
1923
1924       <p>La licenza in ambito informatico e' il contratto che puo'
1925       accompagnare un prodotto software. Tale contratto specifica
1926       le modalita' con cui l'utente puo' usare tale prodotto,
1927       garantendo dei diritti ed imponendo obblighi.</p>
1928
1929       <p>La licenza e' imposta da chi detiene il copyright sul
1930       prodotto software; la sua validita' dipende dalla presenza
1931       del diritto d'autore, questo perche' solo chi detiene il
1932       copyright ha il diritto di far rispettare in ogni sede la
1933       licenza stessa.</p>
1934
1935       <p>In vari casi l'autore puo' rilasciare un prodotto software
1936       sotto licenze differenti, lasciando all'utente la
1937       possibilita' di scegliere quella preferita.</p>
1938     </div>
1939
1940     <div class="section" id="tipi-di-licenze">
1941       <h1><a class="toc-backref" href="#id35">Tipi di
1942       licenze</a></h1>
1943
1944       <div class="section" id="publico-dominio">
1945         <h2><a class="toc-backref" href="#id36">Publico
1946         dominio</a></h2>
1947
1948         <p>Il pubblico dominio non e' propriamente una licenza, per
1949         quanto sia determinante nei rapporti tra l'opera e i
1950         fruitori. L'essenza sta proprio nel non sottoprre l'opera a
1951         meccanismi di tutela della propieta' dell'opera. L'opera e'
1952         patrimonio dell'umanita'. Tutte le opere delle quale il
1953         copyright e' scaduto per termini di leggi (a seconda del
1954         paese possono volerci fino a un centinaio di anni)
1955         diventano di pubblico dominio e quindi liberamente
1956         fruibili. Ad es. non dovete chiedere il permesso a nessuno
1957         per stampare e diffondere l'Odissea di Omero, posto che non
1958         contravveniate ad altre leggi vigenti nel farlo.</p>
1959
1960         <p>WWW, TCP/IP, <a class="reference external" href=
1961         "http://www.sqlite.org/copyright.html">sqlite</a> sono
1962         sotto pubblico domnio</p>
1963
1964         <p>Publico dominio = cessazione di tutti i diritti di
1965         eslusiva: <a class="reference external" href=
1966         "http://it.wikipedia.org/wiki/Pubblico_dominio">http://it.wikipedia.org/wiki/Pubblico_dominio</a></p>
1967       </div>
1968
1969       <div class="section" id="freeware">
1970         <h2><a class="toc-backref" href="#id37">Freeware</a></h2>
1971
1972         <p><a class="reference external" href=
1973         "http://it.wikipedia.org/wiki/Freeware">http://it.wikipedia.org/wiki/Freeware</a></p>
1974
1975         <p>Software <em>a gratis</em>. Nel senso che non si paga
1976         per utilizzarlo. Gratis come in "birra gratis per
1977         tutti".</p>
1978
1979         <p>L'utente non pu' modificarlo in alcun modo, a meno che
1980         non espressamente previsto.</p>
1981
1982         <p>Il termine freeware indica un software che viene
1983         distribuito in modo gratuito.</p>
1984
1985         <p>Il freeware e' distribuito indifferentemente con o senza
1986         codice sorgente, a totale discrezione dell'autore e senza
1987         alcun obbligo al riguardo. Ã&circ; sottoposto
1988         esplicitamente ad una licenza che ne permette la
1989         redistribuzione gratuita. Il software freeware viene
1990         concesso in uso senza alcun corrispettivo, ed e'
1991         liberamente duplicabile e distribuibile, con pochissime
1992         eccezioni.</p>
1993       </div>
1994
1995       <div class="section" id="shareware">
1996         <h2><a class="toc-backref" href="#id38">Shareware</a></h2>
1997
1998         <p>Shareware e' una tipologia di licenza software molto
1999         popolare sin dai primi anni Novanta. Vengono distribuiti
2000         sotto tale licenza in genere programmi facilmente
2001         scaricabili via Internet o contenuti in CD e DVD quasi
2002         sempre allegati alle riviste di Informatica in vendita in
2003         edicola.</p>
2004
2005         <blockquote>
2006           Il software sotto tale licenza puo' essere liberamente
2007           ridistribuito, e puo' essere utilizzato per un periodo di
2008           tempo di prova variabile (generalmente 30 giorni).
2009           Scaduti questi termini, per continuare ad utilizzare il
2010           software e' necessario registrarlo presso la casa
2011           produttrice, pagandone l'importo. All'avvio
2012           dell'applicazione shareware generalmente un Nag Screen
2013           informa l'utente su come effettuare la registrazione e
2014           sulle condizioni di utilizzo.
2015         </blockquote>
2016       </div>
2017     </div>
2018
2019     <div class="section" id="licenze-per-software-liberi">
2020       <h1><a class="toc-backref" href="#id39">Licenze per software
2021       liberi</a></h1>
2022
2023       <p><a class="reference external" href=
2024       "http://it.wikipedia.org/wiki/Software_libero">http://it.wikipedia.org/wiki/Software_libero</a></p>
2025
2026       <p>Il Software libero e' una questione di liberta', non di
2027       prezzo. Per capire il concetto, bisognerebbe pensare alla
2028       liberta' di parola e non alla birra gratis [NdT: il termine
2029       free in inglese significa sia gratuito che libero, in
2030       italiano il problema non esiste].</p>
2031
2032       <p>Cosa sia, o meglio quanto debba essere libero un software
2033       per poter essere definito tecnicamente <em>libero</em> e'
2034       motivo di discussione sia tra sviluppatori che tra i non i
2035       non addetti ai lavori, data l'applicazione del concetto di
2036       copyleft ad altre discipline diverse dall'informatica.</p>
2037
2038       <p>Generalmente con software libero si intende quel codice
2039       rilasciato sotto licenza GPL, per quanto altre licenze
2040       vengano generalmente accettate come <em>libere</em>.
2041       Stabiliti dei criteri, almeno per quanto riguarda il
2042       software, si puo' procedere a una comparazione tra le varie
2043       licenze alternative alla GPL:</p>
2044
2045       <blockquote>
2046         <ul class="simple">
2047           <li><a class="reference external" href=
2048           "http://it.wikipedia.org/wiki/Comparazione_di_licenze_libere">
2049           http://it.wikipedia.org/wiki/Comparazione_di_licenze_libere</a></li>
2050
2051           <li><a class="reference external" href=
2052           "http://www.gnu.org/philosophy/categories.it.html">http://www.gnu.org/philosophy/categories.it.html</a></li>
2053         </ul>
2054       </blockquote>
2055
2056       <p>Dal sito del progetto Gnu possiamo <em>copiare</em> la
2057       seguente definizione:</p>
2058
2059       <p>Definizione di Software Libero</p>
2060
2061       <blockquote>
2062         <p>Questa definizione ha lo scopo di chiarire quali sono i
2063         requisiti che un certo programma deve soddisfare perche' lo
2064         si possa considerare "software libero".</p>
2065
2066         <p>Il Software libero e' una questione di liberta', non di
2067         prezzo. Per capire il concetto, bisognerebbe pensare alla
2068         liberta' di parola e non alla birra gratis [NdT: il termine
2069         free in inglese significa sia gratuito che libero, in
2070         italiano il problema non esiste].</p>
2071
2072         <p>L'espressione "software libero" si riferisce alla
2073         liberta' dell'utente di eseguire, copiare, distribuire,
2074         studiare, cambiare e migliorare il software. Piu'
2075         precisamente, esso si riferisce a quattro tipi di liberta'
2076         per gli utenti del software: Liberta' di eseguire il
2077         programma, per qualsiasi scopo (liberta' 0). Liberta' di
2078         studiare come funziona il programma e adattarlo alle
2079         proprie necessita' (liberta' 1). L'accesso al codice
2080         sorgente ne e' un prerequisito. Liberta' di ridistribuire
2081         copie in modo da aiutare il prossimo (liberta' 2). Liberta'
2082         di migliorare il programma e distribuirne pubblicamente i
2083         miglioramenti, in modo tale che tutta la comunita' ne
2084         tragga beneficio (liberta' 3). L'accesso al codice sorgente
2085         ne e' un prerequisito.</p>
2086
2087         <p>Un programma e' software libero se l'utente ha tutte
2088         queste liberta'. In particolare, se e' libero di
2089         ridistribuire copie, con o senza modifiche, gratis o
2090         addebitando delle spese di distribuzione a chiunque ed
2091         ovunque. Essere liberi di fare queste cose significa (tra
2092         l'altro) che non bisogna chiedere o pagare nessun
2093         permesso.</p>
2094
2095         <p>Bisogna anche avere la liberta' di fare modifiche e
2096         usarle privatamente nel proprio lavoro o divertimento senza
2097         doverlo dire a nessuno. Se si pubblicano le proprie
2098         modifiche, non si deve essere tenuti a comunicarlo a
2099         qualcuno in particolare o in qualche modo particolare.</p>
2100
2101         <p>La liberta' di usare un programma significa liberta' per
2102         qualsiasi tipo di persona od organizzazione di utilizzarlo
2103         su qualsiasi tipo di sistema informatico, per qualsiasi
2104         tipo di attivita' e senza dover successivamente comunicare
2105         con lo sviluppatore o con qualche altra entita' specifica.
2106         Quello che conta per questa liberta' e' lo scopo
2107         dell'utente, non dello sviluppatore; come utenti potete
2108         eseguire il programma per i vostri scopi; se lo
2109         ridistribuite a qualcun altro, egli e' libero di eseguirlo
2110         per i propri scopi, ma non potete imporgli i vostri
2111         scopi.</p>
2112
2113         <p>La liberta' di ridistribuire copie deve includere le
2114         forme binarie o eseguibili del programma e anche il codice
2115         sorgente, sia per le versioni modificate che non modificate
2116         (distribuire programmi in formato eseguibile e' comodo per
2117         avere sistemi operativi liberi facili da installare).
2118         Ã&circ; legittimo anche se non c'e' alcun modo di produrre
2119         una forma binaria o eseguibile (dal momento che alcuni
2120         linguaggi non supportano questa caratteristica), ma si deve
2121         avere la liberta' di ridistribuire tali forme nel caso si
2122         trovi o si sviluppi un modo per farlo.</p>
2123
2124         <p>Affinche' le liberta' di fare modifiche e di pubblicare
2125         versioni migliorate abbiano senso, si deve avere accesso al
2126         codice sorgente del programma. Percio', l'accessibilita' al
2127         codice sorgente e' una condizione necessaria per il
2128         software libero.</p>
2129
2130         <p>Un importante modo di modificare un programma e' quello
2131         di includervi funzioni e moduli liberi gia' esistenti. Se
2132         la licenza del programma prevede che non si possano
2133         includere moduli gia' esistenti, ad esempio se richiede che
2134         voi possiate aggiungere solo codice di cui detenete il
2135         copyright, allora la licenza e' troppo restrittiva per
2136         essere considerata libera.</p>
2137
2138         <p>Queste liberta' per essere reali devono essere
2139         irrevocabili fin tanto che non si fa qualcosa di sbagliato:
2140         se lo sviluppatore del software ha il potere di revocare la
2141         licenza anche senza che l'utente sia causa di tale revoca,
2142         il software non e' libero.</p>
2143
2144         <p>Tuttavia, certi tipi di regole sul come distribuire il
2145         software libero sono accettabili quando non entrano in
2146         conflitto con le liberta' principali. Per esempio, il
2147         copyleft, noto anche impropriamente come "permesso
2148         d'autore", e' (detto poche parole) la regola per cui,
2149         quando il programma e' ridistribuito, non e' possibile
2150         aggiungere restrizioni per negare ad altre persone le
2151         liberta' principali. Questa regola non entra in conflitto
2152         con le liberta' principali, anzi le protegge.</p>
2153
2154         <p>Indipendentemente dal fatto che si siano ottenute copie
2155         di software GNU a pagamento o gratuitamente, si ha sempre
2156         la liberta' di copiare e cambiare il software, e anche di
2157         venderne copie.</p>
2158
2159         <p>Software libero non vuol dire non-commerciale. Un
2160         programma libero deve essere disponibile per uso
2161         commerciale, sviluppo commerciale e distribuzione
2162         commerciale. Lo sviluppo commerciale di software libero non
2163         e' piu' inusuale: questo software commerciale libero e'
2164         molto importante.</p>
2165       </blockquote>
2166       <hr class="docutils">
2167
2168       <div class="section" id="copyleft-copyright">
2169         <h2><a class="toc-backref" href="#id40">Copyleft !=
2170         Copyright</a></h2>
2171
2172         <p>Il copyleft e' un metodo generico per rendere un
2173         programma libero ed imporre che tutte le modifiche e
2174         versioni estese del programma siano anch'esse software
2175         libero.</p>
2176
2177         <p>L'espressione inglese copyleft, lett. "(diritto di)
2178         copiatura (esclusiva) abbandonato" , e' gioco di parole su
2179         copyright (lett. "diritto (esclusivo) di copiatura"), in
2180         cui la seconda parola del composto, "right" e' scambiata
2181         con "left" individua un modello alternativo di gestione dei
2182         diritti d'autore basato su un sistema di licenze attraverso
2183         le quali l'autore (in quanto detentore originario dei
2184         diritti sull'opera) indica ai fruitori dell'opera che essa
2185         puo' essere utilizzata, diffusa e spesso anche modificata
2186         liberamente, pur nel rispetto di alcune condizioni
2187         essenziali. Nella versione pura e originaria del copyleft
2188         (cioe' quella riferita all'ambito informatico) la
2189         condizione principale obbliga i fruitori dell'opera a
2190         rilasciare eventuali modifiche apportate all'opera a loro
2191         volta sotto lo stesso regime giuridico (e generalmente
2192         sotto la stessa licenza). In questo modo, il regime di
2193         copyleft e tutto l'insieme di liberta' da esso derivanti
2194         sono sempre garantiti.</p>
2195
2196         <p>Il modo piu' semplice per rendere un programma, o altro
2197         lavoro, libero e' dichiararlo di dominio pubblico, privo di
2198         copyright. [NdT: in Italia questo concetto a rigore non
2199         esiste, perche' l'autore non puo' rinunciare alla
2200         paternita' dell'opera; effetti simili si possono ottenere
2201         con l'uso di una licenza permissiva, come la licenza di X
2202         del MIT]. Cio' permette a chiunque di condividere il
2203         programma e i suoi miglioramenti. Tuttavia permette anche a
2204         chi non vuol cooperare di convertire il programma in
2205         software proprietario. Costoro possono infatti apportare
2206         modifiche, che siano significative o meno, e distribuire il
2207         risultato come prodotto proprietario. Chi riceve il
2208         programma nella forma modificata non ha la liberta' data
2209         dall'autore originario; l'intermediario l'avra'
2210         rimossa.</p>
2211
2212         <p><em>Segue su:</em> <a class="reference external" href=
2213         "http://www.gnu.org/copyleft/copyleft.it.html">http://www.gnu.org/copyleft/copyleft.it.html</a></p>
2214
2215         <p>Link alla Licenza GPL (e DSFG):</p>
2216
2217         <blockquote>
2218           <ul class="simple">
2219             <li><a class="reference external" href=
2220             "http://it.wikipedia.org/wiki/GNU_GPL">http://it.wikipedia.org/wiki/GNU_GPL</a></li>
2221
2222             <li><a class="reference external" href=
2223             "http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a></li>
2224
2225             <li>FAQ sulla GPL: <a class="reference external" href=
2226             "http://www.fsf.org/licensing/licenses/gpl.html">http://www.fsf.org/licensing/licenses/gpl.html</a></li>
2227
2228             <li>DSFG (Le Linee Guida Debian per il Software Libero
2229             (Debian Free Software Guidelines - DFSG): <a class=
2230             "reference external" href=
2231             "http://www.debian.org/social_contract#guidelines">http://www.debian.org/social_contract#guidelines</a></li>
2232           </ul>
2233         </blockquote>
2234
2235         <p>Non dci dovrebbe essere nessuna differenza tecnica tra
2236         "free software" e "open source".</p>
2237       </div>
2238
2239       <div class="section" id="licenza-bsd">
2240         <h2><a class="toc-backref" href="#id41">Licenza
2241         BSD</a></h2>
2242
2243         <p>Le licenze BSD sono una famiglia di licenze permissive
2244         per software. Molte sono considerate libere ed open source.
2245         Il loro nome deriva dal fatto che la licenza BSD originale
2246         (detta anche licenza BSD con 4 clausole) fu usata
2247         originariamente per distribuire il sistema operativo Unix
2248         Berkeley Software Distribution (BSD), una revisione libera
2249         di UNIX sviluppata presso l'Universita' di Berkeley.</p>
2250
2251         <dl class="docutils">
2252           <dt>Links:</dt>
2253
2254           <dd>
2255             <ul class="first last simple">
2256               <li><a class="reference external" href=
2257               "http://it.wikipedia.org/wiki/Licenze_BSD">http://it.wikipedia.org/wiki/Licenze_BSD</a></li>
2258
2259               <li><a class="reference external" href=
2260               "http://www.opensource.org/licenses/bsd-license.php">http://www.opensource.org/licenses/bsd-license.php</a></li>
2261             </ul>
2262           </dd>
2263         </dl>
2264       </div>
2265
2266       <div class="section" id="licenza-apache">
2267         <h2><a class="toc-backref" href="#id42">Licenza
2268         Apache</a></h2>
2269
2270         <p>In ambito informatico, con Licenza Apache (ingl:Apache
2271         License) si intende una precisa licenza, che similmente
2272         alla licenza BSD, permette di utilizzare il codice dentro
2273         progetti non open source e senza obbligo di rilascio dei
2274         sorgenti modificati.</p>
2275
2276         <p>La Licenza Apache venne scritta dalla Apache Software
2277         Foundation (ASF) per il piu' usato server web, Apache.
2278         Ã&circ; una licenza per software libero, ma non compatibile
2279         con la GNU GPL.</p>
2280
2281         <p>Questa licenza assume particolare inportanza in quanto
2282         usata per molti altri software rilasciati dalla Apache
2283         Software Foundation (<a class="reference external" href=
2284         "http://it.wikipedia.org/wiki/Apache_Software_Foundation">ASF</a>)
2285         e altri progetti,</p>
2286
2287         <p>Esistono le versioni 1.0, 1.1 e 2.0.</p>
2288       </div>
2289     </div>
2290
2291     <div class="section" id="eula">
2292       <h1><a class="toc-backref" href="#id43">Eula</a></h1>
2293
2294       <p>EULA o End User License Agreement (accordo di licenza con
2295       l'utente finale) e' il contratto tra il fornitore di un
2296       programma software e l'utente finale. Tale contratto assegna
2297       la licenza d'uso del programma all'utente nei termini
2298       stabiliti dal contratto stesso.</p>
2299
2300       <p>Segue su: <a class="reference external" href=
2301       "http://it.wikipedia.org/wiki/EULA">http://it.wikipedia.org/wiki/EULA</a></p>
2302
2303       <blockquote>
2304         <ul class="simple">
2305           <li>Multilicenze (enterprice)</li>
2306
2307           <li>Licenze singole</li>
2308
2309           <li>OEM : legate all'hardware, non possono essere
2310           spostata su una macchina diversa</li>
2311         </ul>
2312       </blockquote>
2313
2314       <dl class="docutils">
2315         <dt>Link alla licenza EULA di MS Windows XP:</dt>
2316
2317         <dd>
2318           <ul class="first last simple">
2319             <li><a class="reference external" href=
2320             "http://alice.andreamanni.com/eula.txt">http://alice.andreamanni.com/eula.txt</a></li>
2321
2322             <li><a class="reference external" href=
2323             "http://www.microsoft.com/windowsxp/eula/home.mspx">http://www.microsoft.com/windowsxp/eula/home.mspx</a></li>
2324           </ul>
2325         </dd>
2326       </dl>
2327     </div>
2328   </div>
2329 </body>
2330 </html>