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