+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Linux (vers 6 November 2007), see www.w3.org" />
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ <meta name="generator" content=
+ "Docutils 0.5: http://docutils.sourceforge.net/" />
+
+ <title>Informatica di Base</title>
+ <style type="text/css">
+/*<![CDATA[*/
+
+ /*
+ :Author: David Goodger (goodger@python.org)
+ :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
+ :Copyright: This stylesheet has been placed in the public domain.
+
+ Default cascading style sheet for the HTML output of Docutils.
+
+ See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+ customize this style sheet.
+ */
+
+ /* used to remove borders from tables and images */
+ .borderless, table.borderless td, table.borderless th {
+ border: 0 }
+
+ table.borderless td, table.borderless th {
+ /* Override padding for "table.docutils td" with "! important".
+ The right padding separates the table cells. */
+ padding: 0 0.5em 0 0 ! important }
+
+ .first {
+ /* Override more specific margin styles with "! important". */
+ margin-top: 0 ! important }
+
+ .last, .with-subtitle {
+ margin-bottom: 0 ! important }
+
+ .hidden {
+ display: none }
+
+ a.toc-backref {
+ text-decoration: none ;
+ color: black }
+
+ blockquote.epigraph {
+ margin: 2em 5em ; }
+
+ dl.docutils dd {
+ margin-bottom: 0.5em }
+
+ /* Uncomment (and remove this text!) to get bold-faced definition list terms
+ dl.docutils dt {
+ font-weight: bold }
+ */
+
+ div.abstract {
+ margin: 2em 5em }
+
+ div.abstract p.topic-title {
+ font-weight: bold ;
+ text-align: center }
+
+ div.admonition, div.attention, div.caution, div.danger, div.error,
+ div.hint, div.important, div.note, div.tip, div.warning {
+ margin: 2em ;
+ border: medium outset ;
+ padding: 1em }
+
+ div.admonition p.admonition-title, div.hint p.admonition-title,
+ div.important p.admonition-title, div.note p.admonition-title,
+ div.tip p.admonition-title {
+ font-weight: bold ;
+ font-family: sans-serif }
+
+ div.attention p.admonition-title, div.caution p.admonition-title,
+ div.danger p.admonition-title, div.error p.admonition-title,
+ div.warning p.admonition-title {
+ color: red ;
+ font-weight: bold ;
+ font-family: sans-serif }
+
+ /* Uncomment (and remove this text!) to get reduced vertical space in
+ compound paragraphs.
+ div.compound .compound-first, div.compound .compound-middle {
+ margin-bottom: 0.5em }
+
+ div.compound .compound-last, div.compound .compound-middle {
+ margin-top: 0.5em }
+ */
+
+ div.dedication {
+ margin: 2em 5em ;
+ text-align: center ;
+ font-style: italic }
+
+ div.dedication p.topic-title {
+ font-weight: bold ;
+ font-style: normal }
+
+ div.figure {
+ margin-left: 2em ;
+ margin-right: 2em }
+
+ div.footer, div.header {
+ clear: both;
+ font-size: smaller }
+
+ div.line-block {
+ display: block ;
+ margin-top: 1em ;
+ margin-bottom: 1em }
+
+ div.line-block div.line-block {
+ margin-top: 0 ;
+ margin-bottom: 0 ;
+ margin-left: 1.5em }
+
+ div.sidebar {
+ margin: 0 0 0.5em 1em ;
+ border: medium outset ;
+ padding: 1em ;
+ background-color: #ffffee ;
+ width: 40% ;
+ float: right ;
+ clear: right }
+
+ div.sidebar p.rubric {
+ font-family: sans-serif ;
+ font-size: medium }
+
+ div.system-messages {
+ margin: 5em }
+
+ div.system-messages h1 {
+ color: red }
+
+ div.system-message {
+ border: medium outset ;
+ padding: 1em }
+
+ div.system-message p.system-message-title {
+ color: red ;
+ font-weight: bold }
+
+ div.topic {
+ margin: 2em }
+
+ h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+ h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+ margin-top: 0.4em }
+
+ h1.title {
+ text-align: center }
+
+ h2.subtitle {
+ text-align: center }
+
+ hr.docutils {
+ width: 75% }
+
+ img.align-left {
+ clear: left }
+
+ img.align-right {
+ clear: right }
+
+ ol.simple, ul.simple {
+ margin-bottom: 1em }
+
+ ol.arabic {
+ list-style: decimal }
+
+ ol.loweralpha {
+ list-style: lower-alpha }
+
+ ol.upperalpha {
+ list-style: upper-alpha }
+
+ ol.lowerroman {
+ list-style: lower-roman }
+
+ ol.upperroman {
+ list-style: upper-roman }
+
+ p.attribution {
+ text-align: right ;
+ margin-left: 50% }
+
+ p.caption {
+ font-style: italic }
+
+ p.credits {
+ font-style: italic ;
+ font-size: smaller }
+
+ p.label {
+ white-space: nowrap }
+
+ p.rubric {
+ font-weight: bold ;
+ font-size: larger ;
+ color: maroon ;
+ text-align: center }
+
+ p.sidebar-title {
+ font-family: sans-serif ;
+ font-weight: bold ;
+ font-size: larger }
+
+ p.sidebar-subtitle {
+ font-family: sans-serif ;
+ font-weight: bold }
+
+ p.topic-title {
+ font-weight: bold }
+
+ pre.address {
+ margin-bottom: 0 ;
+ margin-top: 0 ;
+ font-family: serif ;
+ font-size: 100% }
+
+ pre.literal-block, pre.doctest-block {
+ margin-left: 2em ;
+ margin-right: 2em }
+
+ span.classifier {
+ font-family: sans-serif ;
+ font-style: oblique }
+
+ span.classifier-delimiter {
+ font-family: sans-serif ;
+ font-weight: bold }
+
+ span.interpreted {
+ font-family: sans-serif }
+
+ span.option {
+ white-space: nowrap }
+
+ span.pre {
+ white-space: pre }
+
+ span.problematic {
+ color: red }
+
+ span.section-subtitle {
+ /* font-size relative to parent (h1..h6 element) */
+ font-size: 80% }
+
+ table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px }
+
+ table.docinfo {
+ margin: 2em 4em }
+
+ table.docutils {
+ margin-top: 0.5em ;
+ margin-bottom: 0.5em }
+
+ table.footnote {
+ border-left: solid 1px black;
+ margin-left: 1px }
+
+ table.docutils td, table.docutils th,
+ table.docinfo td, table.docinfo th {
+ padding-left: 0.5em ;
+ padding-right: 0.5em ;
+ vertical-align: top }
+
+ table.docutils th.field-name, table.docinfo th.docinfo-name {
+ font-weight: bold ;
+ text-align: left ;
+ white-space: nowrap ;
+ padding-left: 0 }
+
+ h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+ h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+ font-size: 100% }
+
+ ul.auto-toc {
+ list-style-type: none }
+
+ /*]]>*/
+ </style>
+</head>
+
+<body>
+ <div class="document" id="informatica-di-base">
+ <h1 class="title">Informatica di Base</h1>
+
+ <h2 class="subtitle" id=
+ "appunti-introduttivi-ai-sistemi-informativi">Appunti
+ introduttivi ai sistemi informativi</h2>
+
+ <blockquote>
+ <table class="docutils field-list" frame="void" rules="none">
+ <col class="field-name" />
+ <col class="field-body" />
+
+ <tbody valign="top">
+ <tr class="field">
+ <th class="field-name">Author:</th>
+
+ <td class="field-body">Andrea Manni</td>
+ </tr>
+
+ <tr class="field">
+ <th class="field-name">Copyright:</th>
+
+ <td class="field-body">GFDL</td>
+ </tr>
+
+ <tr class="field">
+ <th class="field-name">Version:</th>
+
+ <td class="field-body">1.5</td>
+ </tr>
+ </tbody>
+ </table>
+ </blockquote>
+
+ <div class="contents topic" id="indice">
+ <p class="topic-title first">Indice</p>
+
+ <ul class="simple">
+ <li>
+ <a class="reference internal" href="#informatica" id=
+ "id4" name="id4">Informatica</a>
+
+ <ul>
+ <li><a class="reference internal" href=
+ "#evoluzione-nella-societa" id="id5" name=
+ "id5">Evoluzione nella societa'</a></li>
+ </ul>
+ </li>
+
+ <li><a class="reference internal" href=
+ "#analogico-e-digitale" id="id6" name="id6">Analogico e
+ Digitale</a></li>
+
+ <li><a class="reference internal" href="#sistema-binario"
+ id="id7" name="id7">Sistema Binario</a></li>
+
+ <li>
+ <a class="reference internal" href="#unita-di-misura" id=
+ "id8" name="id8">Unita' di misura</a>
+
+ <ul>
+ <li><a class="reference internal" href=
+ "#multipli-del-bit-tabelle-di-conversione" id="id9"
+ name="id9">Multipli del Bit (TABELLE DI
+ CONVERSIONE):</a></li>
+
+ <li><a class="reference internal" href=
+ "#trasmissione-dati-su-reti" id="id10" name=
+ "id10">Trasmissione dati su reti</a></li>
+
+ <li><a class="reference internal" href=
+ "#velocita-di-clock" id="id11" name="id11">Velocita' di
+ clock</a></li>
+ </ul>
+ </li>
+
+ <li>
+ <a class="reference internal" href=
+ "#supporti-di-storaggio-dati" id="id12" name=
+ "id12">Supporti di storaggio (dati)</a>
+
+ <ul>
+ <li><a class="reference internal" href="#hard-disks"
+ id="id13" name="id13">Hard Disks</a></li>
+
+ <li><a class="reference internal" href="#memorie-flash"
+ id="id14" name="id14">Memorie Flash</a></li>
+
+ <li>
+ <a class="reference internal" href=
+ "#propieta-dei-supporti-di-storaggio" id="id15" name=
+ "id15">Propieta' dei supporti di storaggio</a>
+
+ <ul>
+ <li><a class="reference internal" href="#hard-disk"
+ id="id16" name="id16">HARD DISK</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li>
+ <a class="reference internal" href=
+ "#classi-di-elaboratori" id="id17" name="id17">Classi di
+ elaboratori</a>
+
+ <ul>
+ <li><a class="reference internal" href=
+ "#calcolatori-tascabili" id="id18" name=
+ "id18">Calcolatori tascabili</a></li>
+
+ <li><a class="reference internal" href=
+ "#palmari-e-smart-phones" id="id19" name="id19">Palmari
+ e smart phones</a></li>
+
+ <li><a class="reference internal" href=
+ "#ultraportabili-netbook" id="id20" name=
+ "id20">Ultraportabili (netbook)</a></li>
+
+ <li>
+ <a class="reference internal" href="#portatili" id=
+ "id21" name="id21">Portatili</a>
+
+ <ul>
+ <li><a class="reference internal" href=
+ "#trasportabili" id="id22" name=
+ "id22">Trasportabili</a></li>
+
+ <li><a class="reference internal" href=
+ "#ultraportatili" id="id23" name=
+ "id23">Ultraportatili</a></li>
+ </ul>
+ </li>
+
+ <li><a class="reference internal" href=
+ "#personal-computer" id="id24" name="id24">Personal
+ Computer</a></li>
+
+ <li><a class="reference internal" href="#work-station"
+ id="id25" name="id25">Work Station</a></li>
+
+ <li><a class="reference internal" href="#server" id=
+ "id26" name="id26">Server</a></li>
+
+ <li><a class="reference internal" href="#mainframe" id=
+ "id27" name="id27">Mainframe</a></li>
+
+ <li><a class="reference internal" href="#cluster" id=
+ "id28" name="id28">Cluster</a></li>
+
+ <li><a class="reference internal" href="#supercomputer"
+ id="id29" name="id29">Supercomputer</a></li>
+ </ul>
+ </li>
+
+ <li>
+ <a class="reference internal" href=
+ "#linguaggi-di-programmazione" id="id30" name=
+ "id30">Linguaggi di programmazione</a>
+
+ <ul>
+ <li><a class="reference internal" href="#compilatori"
+ id="id31" name="id31">Compilatori</a></li>
+
+ <li><a class="reference internal" href="#interpreti"
+ id="id32" name="id32">Interpreti</a></li>
+
+ <li><a class="reference internal" href=
+ "#java-e-similari" id="id33" name="id33">Java e
+ similari</a></li>
+ </ul>
+ </li>
+
+ <li><a class="reference internal" href="#licenze-software"
+ id="id34" name="id34">Licenze software</a></li>
+
+ <li>
+ <a class="reference internal" href="#tipi-di-licenze" id=
+ "id35" name="id35">Tipi di licenze</a>
+
+ <ul>
+ <li><a class="reference internal" href=
+ "#publico-dominio" id="id36" name="id36">Publico
+ dominio</a></li>
+
+ <li><a class="reference internal" href="#freeware" id=
+ "id37" name="id37">Freeware</a></li>
+
+ <li><a class="reference internal" href="#shareware" id=
+ "id38" name="id38">Shareware</a></li>
+ </ul>
+ </li>
+
+ <li>
+ <a class="reference internal" href=
+ "#licenze-per-software-liberi" id="id39" name=
+ "id39">Licenze per software liberi</a>
+
+ <ul>
+ <li><a class="reference internal" href=
+ "#copyleft-copyright" id="id40" name="id40">Copyleft !=
+ Copyright</a></li>
+
+ <li><a class="reference internal" href="#licenza-bsd"
+ id="id41" name="id41">Licenza BSD</a></li>
+
+ <li><a class="reference internal" href=
+ "#licenza-apache" id="id42" name="id42">Licenza
+ Apache</a></li>
+ </ul>
+ </li>
+
+ <li><a class="reference internal" href="#eula" id="id43"
+ name="id43">Eula</a></li>
+ </ul>
+ </div>
+
+ <p>Generato con: <a class="reference external" href=
+ "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
+
+ <div class="section" id="informatica">
+ <h1><a class="toc-backref" href=
+ "#id4">Informatica</a></h1><img alt="img/180px-Apple2.jpg"
+ src="img/180px-Apple2.jpg" />
+
+ <dl class="docutils">
+ <dt>Informatica:</dt>
+
+ <dd>L'informatica e' una scienza interdisciplinare che
+ riguarda tutti gli aspetti del trattamento
+ dell'informazione mediante procedure automatizzate.</dd>
+ </dl>
+
+ <p>L'oggetto della materia sono quindi i
+ <strong>dati</strong> e la <strong>manipolazione</strong> di
+ questi, da un lato la capacita' di <em>storare</em> i dati
+ (cosa non cosi' elementare quando il quantitativo diventa
+ enorme) per poterli poi <em>manipolare</em>. Buona parte del
+ lavoro del sistemista consistera' quindi nel garantire
+ l'<em>integrita'</em> e la <em>disponibilita'</em> (intesa
+ come <em>continuita'</em> del servizio) dei dati. Stara' poi
+ all'<em>amministratore di rete</em> preoccuparsi di renderli
+ disponibili (si pensi a un sito web che rende delle risorse
+ disponibili) agli <em>utilizzatori</em>.</p>
+
+ <p>Link sull'argomento: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Informatica">http://it.wikipedia.org/wiki/Informatica</a></p>
+
+ <div class="section" id="evoluzione-nella-societa">
+ <h2><a class="toc-backref" href="#id5">Evoluzione nella
+ societa'</a></h2>
+
+ <p>Per meglio percepire l'importanza dell'informatica si
+ rifletta sull'influenza che le seguenti invenzioni nel
+ campo del trattamento delle informazioni hanno avuto sulla
+ societa' umana:</p>
+
+ <blockquote>
+ <ul>
+ <li>
+ <dl class="first docutils">
+ <dt>Diffusione della scrittura:</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li><em>integrita'</em> dell'informazione: dati
+ come il costo di una merce cessano di essere
+ arbitrari, con conseguenze negli scambi
+ commerciali.</li>
+
+ <li>maggiore durata nel tempo delle
+ informazioni (seppur limitata da supporti
+ deperibili)</li>
+ </ul>
+ </dd>
+ </dl>
+ </li>
+
+ <li>
+ <dl class="first docutils">
+ <dt>Invenzione della stampa: <a class=
+ "reference external" href=
+ "%3CMergeConflict%3E">Gutenberg</a> 1448</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li>Maggiore diffusione delle informazioni
+ grazie all'abbattimento dei costi di
+ stampa.</li>
+
+ <li>Progressivo ampliamento della base di
+ utenza: sempre piu' persone possono almeno
+ imparare a leggere e quindi emanciparsi da una
+ <em>casta</em> ristretta che mantiene il
+ controllo sulla fruizione delle informazioni.
+ Seppure in misura minore aumenta anche la
+ possibilita' di produrre e diffondere
+ contenuti.</li>
+ </ul>
+ </dd>
+ </dl>
+ </li>
+
+ <li>
+ <dl class="first docutils">
+ <dt>Nascita dell'informatica/elettronica</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li>Superamento di parte dei problemi legati
+ alla deperibilita' dei supporti sui quali si
+ conservano le informazioni.</li>
+
+ <li>Enorme aumento del quantitativo di dati
+ gestibili e abbassamento del costo di gestione.
+ Supporti magnetici e ottici hanno radicalmento
+ cambiato il modo di archiviare le informazioni
+ rispetto ai depositi cartacei.</li>
+
+ <li>Maggiore rapidita' nella trattazione delle
+ informazioni, per es. la possibilita' di
+ censire la popolazione rapidamente e gestire un
+ apparato fiscale piu' efficiente.</li>
+
+ <li>Possibilita' di incrociare i dati,
+ ottenendo sostanzialmente nuovo valore da
+ informazioni preesistenti</li>
+ </ul>
+ </dd>
+ </dl>
+ </li>
+
+ <li>
+ <dl class="first docutils">
+ <dt>Diffusione della rete Internet</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li>Disponibilita' globale delle informazioni
+ (in formato elettronico) con costi nettamente
+ minori rispetto al passato</li>
+
+ <li>Abbattimento del costo della diffusione
+ delle informazioni</li>
+ </ul>
+ </dd>
+ </dl>
+ </li>
+ </ul>
+ </blockquote>
+
+ <p>L'importanza della gestione digitale delle informazioni
+ e' tale da accentuare il divario esistente tra chi puo'
+ accedere ai nuovi mezzi e chi ne e' escluso, problema
+ indicato generalmente con il termine <a class=
+ "reference external" href=
+ ":http://it.wikipedia.org/wiki/Digital_Divide#Descrizione">Digital
+ Divide</a>.</p>
+ </div>
+ </div>
+ <hr class="docutils" />
+
+ <div class="section" id="analogico-e-digitale">
+ <h1><a class="toc-backref" href="#id6">Analogico e
+ Digitale</a></h1>
+
+ <dl class="docutils">
+ <dt>Grandezze analogiche:</dt>
+
+ <dd>Sono grandezze <strong>continue</strong>: hanno
+ infiniti <em>stadi intermedi</em>. Si pensi al movimento
+ dell'ombra dell'asta di una meridiana in contrapposizione
+ alle posizioni finite di un orologio digitale, o alle
+ infinite posizioni che puo' assumere il potenziometro di un
+ amplificatore (ovviamente un amplificatore
+ <em>analogico</em>!). Tensione e corrente elettriche sono
+ grandezze analogiche perche' rappresentabili con funzioni
+ continue.</dd>
+
+ <dt>Grandezze digitali:</dt>
+
+ <dd>Sono <em>discrete</em>: assumono un numero
+ <em>finito</em> di stadi intermedi. Ad esempio
+ l'interruttore per accendere una lampada. Quando i valori
+ sono solo due si parla di valori <em>binari</em>, caso che
+ riscontriamo in tutte le tecnologie basate sul silicio come
+ i microprocessori o sui vecchi transistor. Si potrebbe
+ pensare ai componenti di un computer come ad enorme numero
+ di lampadine che possono essere solo accese o spente:
+ l'evoluzione tecnologica passando dai transistor ai
+ microporocessori ha raggiunto un livello di
+ miniaturizzazione dell'ordine dei ~30 nanometri.</dd>
+
+ <dt>La miniaturizzazione presenta i seguenti vantaggi:</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li>Minor costo di produzione ( rapporto tra il numero
+ di transistor e superfice del <em>wafer</em> sul quale
+ si stampano i microprocessori)</li>
+
+ <li>Minore distanza tra gli elementi = minore
+ <em>attrito</em> prodotto dal passaggio della corrente
+ = minore dispersione termica = minore calore. Questo si
+ traduce in un minore consumo elettrico, ulteriormente
+ accentuato dal corrispettivo risparmio sulle unita' di
+ raffreddamento.</li>
+ </ul>
+ </dd>
+ </dl>
+
+ <p>In informatica, con digitale ci si riferisce a tutto cio'
+ che viene rappresentato con numeri o che opera manipolando
+ numeri. Il termine deriva dall'inglese digit, che significa
+ cifra, che a sua volta deriva dal latino digitus, che
+ significa dito.</p><img alt="img/differ16.gif" src=
+ "img/differ16.gif" />
+
+ <dl class="docutils">
+ <dt>Una grandezza, tensione o corrente, si dice analogica
+ quando al variare del tempo puo' essere rappresentata
+ mediante una funzione continua,</dt>
+
+ <dd>senza punti di discontinuita'.</dd>
+ </dl>
+
+ <p>Una grandezza si dice digitale quando viene rappresentata
+ mediante un sistema binario costituito da valori 0 ed 1.</p>
+
+ <p>Links: <a class="reference external" href=
+ "http://www.culturadigitale.net/?p=4">http://www.culturadigitale.net/?p=4</a></p>
+
+ <p>In informatica quindi si pone costantemente il problema
+ della rappresentazione delle grandezze analogiche (tipiche
+ del mondo <em>reale</em>) in valori digitali (discreti, e
+ quindi approsimativi) <strong>A/D - D/A</strong></p>
+ </div>
+
+ <div class="section" id="sistema-binario">
+ <h1><a class="toc-backref" href="#id7">Sistema
+ Binario</a></h1>
+
+ <p>I <em>computer</em> lavorano solo con grandezze finite, e
+ si basano su sistemi cosidetti <em>binari</em>, dato che i
+ microprocessori sono transistor miniaturizzati, che a loro
+ volta possono essere visti come insiemi di lampadine che per
+ definizione possono essere solo <em>accese</em> o
+ <em>spente</em>.</p>
+
+ <p>Potremmo considerare quindi i due stati come:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Spento = 0</li>
+
+ <li>Acceso = 1</li>
+ </ul>
+ </blockquote>
+
+ <p>Entita' <em>discrete</em> come numeri interi o caratteri
+ possono essere espressi facilmente con la sola combinazione
+ dei valori 0 e 1, mentre valori <em>complessi</em>
+ riconducibili a numeri reali (pensiamo alle infinite
+ sfumature di un colore o ai suoni) tramite un'approssimazione
+ basata su un numero di bit arbitrario. Ad esempio Il
+ carattere <em>a</em> in formato <em>ASCII</em> si puo'
+ esprimere con: <tt class="docutils literal"><span class=
+ "pre">01100001</span></tt> , un'immagine puo' essere
+ rappresentata da una griglia di punti (pixel) piu' o meno
+ estesa (risoluzione) con una certa <em>profondita' di
+ colore</em> espressa in bit,</p>
+
+ <p>E cercare di comporre valori <em>complessi</em>
+ (approssimazione di numeri reali tramite un numero di bit
+ arbitrario), con la sola combinazione dei valori 0 e 1,
+ mentre entita' <em>discrete</em> Il carattere <em>a</em> in
+ formato <em>ASCII</em> si puo' esprimere con: <tt class=
+ "docutils literal"><span class="pre">01100001</span></tt>
+ .</p>
+
+ <p>Schema sulla trasformazione da binario a decimale:</p>
+ <pre class="literal-block">
+0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 decimali = 0
+0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 decimali = 1
+0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 decimali = 2
+0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 decimali = 3
+0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 decimali = 4
+0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 decimali = 5
+0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 decimali = 6
+....
+1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 decimali = 255
+</pre>
+
+ <dl class="docutils">
+ <dt>Si lavora in base 2 (cioe' si moltiplica sempre per 2),
+ quindi si ha a che fare con sequenze numeriche del
+ tipo:</dt>
+
+ <dd>
+ <p class="first"><tt class=
+ "docutils literal"><span class="pre">2</span>
+ <span class="pre">4</span> <span class="pre">8</span>
+ <span class="pre">16</span> <span class="pre">32</span>
+ <span class="pre">64</span> <span class="pre">128</span>
+ <span class="pre">256</span> <span class="pre">512</span>
+ <span class="pre">1024</span> <span class=
+ "pre">...</span></tt></p>
+
+ <p>C'e' una ripetizione di questi <em>patterns</em>
+ numerici dovuti alle <strong>parole</strong> usate dai
+ processori. Se l'unita' minima dell'informazione e' il
+ <em>bit</em>, l'unita' minima <em>funzionale</em> e' il
+ <strong>Byte</strong>: con 256 valori possibili possiamo
+ esprimere efficacemente caratteri, colori ed altre
+ informazioni percepibili dai nostri sensi.</p>
+
+ <p class="last">In informatica, word_(dall'inglese
+ parola) e' un termine che identifica la dimensione nativa
+ dei dati usati da un computer. Una word e' semplicemente
+ un gruppo di bit di una determinata dimensione che sono
+ gestiti come unita' da un microprocessore. La dimensione
+ (o lunghezza) della word e' un'importante caratteristica
+ dell'architettura di un computer.</p>
+ </dd>
+ </dl>
+
+ <dl class="docutils">
+ <dt>Links aggiuntivi:</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li><a class="reference external" href=
+ "http://www.culturadigitale.net/?p=8">http://www.culturadigitale.net/?p=8</a></li>
+
+ <li><a class="reference external" href=
+ "http://doc.studenti.it/appunti/introduzione-allinformatica/2/introduzione-informatica.html">
+ http://doc.studenti.it/appunti/introduzione-allinformatica/2/introduzione-informatica.html</a></li>
+ </ul>
+ </dd>
+ </dl>
+ </div>
+
+ <div class="section" id="unita-di-misura">
+ <h1><a class="toc-backref" href="#id8">Unita' di
+ misura</a></h1>
+
+ <p>Se diciamo che una singola <em>lampadina</em> sia un
+ <strong>bit</strong>, nel nostro lavoro ci troviamo a gestire
+ miliardi di lampadine. Cerchiamo di definire dei multipli del
+ bit per rendere la quotidianita' piu' semplice.</p>
+
+ <dl class="docutils">
+ <dt>bit</dt>
+
+ <dd>Una singola informazione, l'unita' minima. Si indica
+ con la <em>b</em> <strong>minuscola</strong>. E' l'unita'
+ di misura di riferimento per il <em>trasferimento</em> dei
+ dati su reti: una scheda di rete <em>10/100</em> sposta
+ circa 12MB (Bytes) al secondo.</dd>
+
+ <dt>Byte:</dt>
+
+ <dd>Un Byte e' formato da 8 bit. Si indica con la
+ <em>B</em> <strong>Maiuscola</strong> . La si puo'
+ considerare l'unita' <em>funzionale</em> minima
+ nell'informatica, dato che un numero minore di bit
+ difficilmente puo' rappresentare qualcosa di significativo.
+ E' l'unita' di misura di riferimento per lo storaggio dati:
+ le dimensioni dei files e dei supporti di storaggio si
+ esprimono in Bytes.</dd>
+ </dl>
+
+ <div class="section" id=
+ "multipli-del-bit-tabelle-di-conversione">
+ <h2><a class="toc-backref" href="#id9">Multipli del Bit
+ (TABELLE DI CONVERSIONE):</a></h2>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Bit</li>
+
+ <li>Byte (B): 8 bit</li>
+
+ <li>Kilobyte (KB): 1024 B</li>
+
+ <li>Megabyte (MB): 1024 KB, 1048576 B</li>
+
+ <li>Gigabyte (GB): 1024 MB, 1048576 KB, 1073741824
+ B</li>
+
+ <li>Terabyte (TB): 1024 GB, 1048576 MB, 1073741824 KB,
+ 1099511627776 B</li>
+ </ul>
+ </blockquote>
+
+ <p>Link disponibile: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Byte">http://it.wikipedia.org/wiki/Byte</a></p>
+
+ <dl class="docutils">
+ <dt>Nota:</dt>
+
+ <dd>Si tenga conto che i produttori di Hard Disk
+ generalmente indicano la capienza di detti supporti in
+ migliaia di megabyte e non 1024*: quindi per formattare 1
+ hd di 500 MB si considera 500/1000 (e non 500/1024).</dd>
+ </dl>
+ </div>
+
+ <div class="section" id="trasmissione-dati-su-reti">
+ <h2><a class="toc-backref" href="#id10">Trasmissione dati
+ su reti</a></h2>
+
+ <p>Il termine velocita' di trasmissione (o di
+ trasferimento) viene solitamente utilizzato a proposito di
+ scambi di informazioni tra computer o comunque dispositivi
+ elettronici. Siccome su questi dispositivi l'informazione
+ viene memorizzata e viaggia in forma digitale, ovvero e'
+ sostanzialmente una sequenza di bit, e' naturale che tale
+ velocita' venga misurata in bit per secondo (e da qui il
+ termine equivalente inglese bitrate).</p>
+
+ <p>Ad esempio, se in una linea ADSL abbiamo un
+ trasferimento dati di 4 Mb/s, cioe' 4.000.000 b/s, avremo
+ (4.000.000/8) B/s equivalenti a 500 kB/s.</p>
+
+ <p>Quindi per calcolare la velocita' di trasferimento di un
+ file le cui dimensioni sono espresse in BYTEs su una rete
+ bisogna <strong>dividere per 8</strong></p>
+
+ <p>Ad es:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>ADSL 20 Mb (<em>venti mega bit</em>) ha una
+ velocita' equivalente di circa ~1.8MB (<em>mega</em>
+ Bytes) per secondo</li>
+
+ <li>Rete etherent 10/100 Mb ha una velocita' di
+ trasferimento di circa ~12MB per secondo.</li>
+ </ul>
+ </blockquote>
+
+ <p>C'e' uno scarto tra la velocita' nominale di
+ trasferimento dati su una rete e l'effettivo trasferimento
+ dei dati tra i due punti. Tipicamente questo e' dovuto a
+ forme di interferenza del supporto trasmissivo (pensiamo a
+ una rete wifi su onde radio), a imprecisioni dell'hardware
+ di rete, conflitti tra pacchetti, problemi ambientali.</p>
+ </div>
+
+ <div class="section" id="velocita-di-clock">
+ <h2><a class="toc-backref" href="#id11">Velocita' di
+ clock</a></h2>
+
+ <p>Usiamo l'<a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Hertz">Hertz</a> come unita'
+ di misura per le frequenze quali quelle di clock della CPU
+ (es 2.0GHz numero di cicle del processore in un secondo) o
+ di un BUS di per il trasferimento dati (es 33Mhz). Un hertz
+ corrisponde alla distanza tra due creste di un onda.</p>
+
+ <p>In teoria, la <strong>velocita' o frequenza di
+ clock</strong> e' il numero di commutazioni (tra i due
+ livelli logici "0" e "1") che circuiti logici (interni ad
+ un'unita' di calcolo o di un microprocessore) sono in grado
+ di eseguire in un minuto secondo (preso come unita'di
+ tempo); essa espressa in cicli/secondo (Hertz) ed i suoi
+ multipli.</p>
+
+ <dl class="docutils">
+ <dt>Unita' di misura per le frequenze:</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li>1 hekt o hertz (simbolo hHz ) = 102 Hz = 100
+ Hz</li>
+
+ <li>1 kilohertz (simbolo kHz ) = 103 Hz = 1 000
+ Hz</li>
+
+ <li>1 megahertz (simbolo MHz ) = 106 Hz = 1 000 000
+ Hz</li>
+
+ <li>1 gigahertz (simbolo GHz ) = 109 Hz = 1 000 000
+ 000 Hz</li>
+ </ul>
+ </dd>
+ </dl>
+
+ <p>Ricordiamo che i prefissi 'kilo', 'mega', 'giga', 'tera'
+ derivano dal sistema numerico decimale (a base 10) e
+ servono per esprimere le quantita' in 'ordini di
+ grandezza':</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>1 KILO = mille = 10^3</li>
+
+ <li>1 MEGA = 1 milione = 10^6</li>
+
+ <li>1 GIGA = 1 miliardo = 10^9</li>
+
+ <li>1 TERA = mille miliardi = 10^12</li>
+ </ul>
+ </blockquote>
+
+ <p>La velocita' o frequenza di clock e' il numero di
+ commutazioni tra i due livelli logici "0" e "1" che
+ circuiti logici interni ad un'unita' di calcolo o di un
+ microprocessore sono in grado di eseguire nell'unita' di
+ tempo di un minuto secondo, ed e' espressa in cicli al
+ secondo, o hertz, e suoi multipli; normalmente per eseguire
+ un'istruzione o una semplice somma sono necessari piu'
+ cicli di clock.</p>
+
+ <p>In queste moderne CPU essendo la velocita' di clock
+ cosi' elevata, viene generata da un minuscolo oscillatore
+ al quarzo posto all'interno della stessa CPU, regolabile
+ tramite il BIOS. Gli informatici esperti sono in grado di
+ aumentare le prestazioni dei computer aumentando la
+ velocita' di clock nominale del processore, ma si tratta di
+ un'operazione rischiosa che puo' portare al
+ surriscaldamento della CPU. Vi sono comunque alcuni
+ processori di particolare efficienza e robustezza che sono
+ in grado di supportare bene velocita' di clock maggiori di
+ quella nominale, senza subire danni. Nel gergo informatico
+ questa operazione viene definita _overclocking, ed e'
+ utilizzata anche dall'industria per testare l'affidabilita'
+ delle CPU prodotte.</p>
+
+ <p>Tipicamente la velocita' di clock consigliata per una
+ cpu viene stabilita da un valore medio statistico ottenuto
+ considerando vari esemplari del wafer da cui proviene la
+ cpu, quindi e' possibile che la nostra CPU sia
+ <em>stabile</em> anche a una velocita' di clock
+ <strong>leggermente</strong> superiore a quella indicata.
+ All'opposto, quando un elaboratore non necessita della
+ velocita' massima della CPU e' possibile fare il
+ <em>downclock</em> della stessa, in modo da ridurne il
+ consumo e il riscaldamento, a vantaggio di una maggiore
+ stabilita' del sistema e minore usura del sistema di
+ raffreddamento.</p>
+
+ <p>Le CPU piu' moderne, in particolare quelle montate sui
+ sistemi portatili, possono variare dinamicamente la
+ frequenza di lavoro a seconda del carico di lavoro da
+ sostenere, in modo da ridurre il consumo medio e la
+ rumorosita' (causata dalle ventole di raffreddamento). Ne
+ e' un esempio la tecnologia <a class="reference external"
+ href="http://it.wikipedia.org/wiki/SpeedStep">SpeedStep</a>
+ di Intel, ed equivalenti di altri produttori.</p>
+ </div>
+ </div>
+
+ <div class="section" id="supporti-di-storaggio-dati">
+ <h1><a class="toc-backref" href="#id12">Supporti di storaggio
+ (dati)</a></h1>
+
+ <p>Supporti <strong>hardware</strong> adibiti a contenere le
+ informazioni che trattiamo. In ambito informatico con il
+ termine storage si identificano i dispositivi hardware, i
+ supporti per la memorizzazione, le infrastrutture ed i
+ software dedicati alla memorizzazione non volatile di grandi
+ quantita' di informazioni in formato elettronico.</p>
+
+ <p>Tipici esempi di supporto di storaggio sono:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Hard disks</li>
+
+ <li>CD rom</li>
+
+ <li>Unita' a nastro</li>
+
+ <li>...</li>
+ </ul>
+ </blockquote>
+
+ <dl class="docutils">
+ <dt>Supporti fisici per la memorizzazione non volatile:
+ <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Storage">http://it.wikipedia.org/wiki/Storage</a></dt>
+
+ <dd>In ambito informatico con il termine STORAGE
+ (STORAGGIO, contenitore che conserva info) si identifica
+ tutto l'hardware (dipositivi/supporti/infrastrutture)
+ dedicato alla memorizzazione non volatile di grandi
+ quantita' di informazioni in <em>formato elettronico</em>.
+ Tipici supporti storaggio sono: hard disks, CD-ROM, unita'
+ a nastro,floppy, chiavette USB.</dd>
+ </dl>
+
+ <p>Con il termine memorizzazione non volatile si intende la
+ possibilita' di immagazzinare delle informazioni in maniera
+ persistente con una ragionevole probabilita' che
+ l'informazione rimanga inalterata per un ragionevole lasso di
+ tempo.</p>
+
+ <dl class="docutils">
+ <dt>Con il termine memorizzazione NON VOLATILE si intende
+ la possibilita' di immagazzinare delle informazioni IN
+ MANIERA PERSISTENTE CON UNA RAGIONEVOLE PROBABILITA' CHE
+ L'INFORMAZIONE RIMANGA INALTERATA PER UN RAGIONEVOLE LASSO
+ DI TEMPO, e per farlo in formato digitale binario e'
+ necessaria avere un supporto fisico con le seguenti
+ caratteristiche:</dt>
+
+ <dd>
+ <p class="first">-sul supporto possono essere <em>scritte
+ almeno una volta</em> sequenze di bit;</p>
+
+ <p>-le sequenze di bit scritte rimangono <em>inalterate a
+ meno di una specifica operazione di modifica</em>;</p>
+
+ <p class="last">-le sequenze di bit possono essere
+ <em>lette un numero elevato di volte</em> senza
+ alterarle.</p>
+ </dd>
+ </dl>
+
+ <p>La memoria RAM di un computer e' la tipica memoria
+ volatile, infatti e' sufficiente che venga a mancare la
+ corrente elettrica perche' tutte le informazioni in essa
+ imagazzinate vadano perdute.</p>
+
+ <p>Esistono molti supporti fisici che rispondono a queste
+ caratteristiche, ma nella storia dell'informatica solo alcuni
+ si sono affermati e sono tuttora utilizzati:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Schede perforate (decisamente obsolete);</li>
+
+ <li>Nastri magnetici;</li>
+
+ <li>Dischi magnetici (hard disk e floppy disk);</li>
+
+ <li>Dischi ottici;</li>
+ </ul>
+ </blockquote>
+
+ <p>Supporti fisici per la memorizzazione non volatile:
+ <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Storage">http://it.wikipedia.org/wiki/Storage</a></p>
+
+ <div class="section" id="hard-disks">
+ <h2><a class="toc-backref" href="#id13">Hard Disks</a></h2>
+
+ <p>Link: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Hard_disk">http://it.wikipedia.org/wiki/Hard_disk</a></p>
+
+ <p>Il disco rigido o hard disk (anche chiamato disco fisso)
+ e' un dispositivo utilizzato per la memorizzazione a lungo
+ termine dei dati in un computer. Il disco rigido e' il
+ <strong>principale supporto di storaggio</strong> dei
+ computer per via della sua capienza (~300 GB) e della sua
+ velocita' di trasferimento dati ( ~25MB per secondo) .</p>
+ </div>
+
+ <div class="section" id="memorie-flash">
+ <h2><a class="toc-backref" href="#id14">Memorie
+ Flash</a></h2>
+
+ <p>I supporti di storaggio <em>USB</em> o comunque di tipo
+ <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Memoria_flash">NAND</a> o
+ <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Disco_a_stato_solido">SSD</a>
+ sono supporti removibili usati alla stregua dei vecchi
+ floppy disk. La caratteristica peculiare e' che non hanno
+ parti in movimento e sono quindi meno delicati rispetto ai
+ supporti magnetici con testine in movimento su dischi (come
+ gli hard disks ) o a quelli a nastro (come nei dispositivi
+ a cartucce quali DAT e similari ). Sono meno fragili dei
+ supporti ottici ( ala CD-Rom ) e meno sensibili
+ all'esposizione solare diretta, piu' compatti fino ad
+ essere tascabili nei tagli piu' piccoli.</p>
+
+ <p>Link: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Chiave_USB">http://it.wikipedia.org/wiki/Chiave_USB</a></p>
+ </div>
+
+ <div class="section" id="propieta-dei-supporti-di-storaggio">
+ <h2><a class="toc-backref" href="#id15">Propieta' dei
+ supporti di storaggio</a></h2>
+
+ <table border="1" class="docutils">
+ <colgroup>
+ <col width="31%" />
+ <col width="16%" />
+ <col width="13%" />
+ <col width="16%" />
+ <col width="24%" />
+ </colgroup>
+
+ <thead valign="bottom">
+ <tr>
+ <th class="head" colspan="5">Supporti di
+ Storaggio</th>
+ </tr>
+
+ <tr>
+ <th class="head">Tipo di dispositivo</th>
+
+ <th class="head">capienza</th>
+
+ <th class="head">lettura</th>
+
+ <th class="head">scrittura</th>
+
+ <th class="head">re-scrittura[1]</th>
+ </tr>
+ </thead>
+
+ <tbody valign="top">
+ <tr>
+ <td>Hard disk</td>
+
+ <td>~300GB</td>
+
+ <td>vero</td>
+
+ <td>vero</td>
+
+ <td>vero</td>
+ </tr>
+
+ <tr>
+ <td>Floppy disk</td>
+
+ <td>1.44MB</td>
+
+ <td>vero</td>
+
+ <td>dipende [2]</td>
+
+ <td>dipende</td>
+ </tr>
+
+ <tr>
+ <td>CD ROM</td>
+
+ <td>~640MB</td>
+
+ <td>vero</td>
+
+ <td>falso</td>
+
+ <td>falso</td>
+ </tr>
+
+ <tr>
+ <td>CD R</td>
+
+ <td>~640MB</td>
+
+ <td>vero</td>
+
+ <td>vero</td>
+
+ <td>falso</td>
+ </tr>
+
+ <tr>
+ <td>CD RW</td>
+
+ <td>~640MB</td>
+
+ <td>vero</td>
+
+ <td>vero</td>
+
+ <td>vero</td>
+ </tr>
+
+ <tr>
+ <td>DVD ROM</td>
+
+ <td>~4GB</td>
+
+ <td>vero</td>
+
+ <td>falso</td>
+
+ <td>falso</td>
+ </tr>
+
+ <tr>
+ <td>Blue Ray</td>
+
+ <td>~35GB</td>
+
+ <td>...</td>
+
+ <td>...</td>
+
+ <td>...</td>
+ </tr>
+
+ <tr>
+ <td>USB Key</td>
+
+ <td>~1/128GB</td>
+
+ <td>vero</td>
+
+ <td>vero</td>
+
+ <td>vero</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <dl class="docutils">
+ <dt>Nota:</dt>
+
+ <dd>per DVD e Blue RAY valgono gli stessi ragionamenti di
+ scrittura (R) e re-scrittura (RW) fatti per i CD, solo
+ con <em>tante sigle in piu'</em>.</dd>
+ </dl>
+
+ <table class="docutils footnote" frame="void" id="id2"
+ rules="none">
+ <colgroup>
+ <col class="label" />
+ <col />
+ </colgroup>
+
+ <tbody valign="top">
+ <tr>
+ <td class="label">[1]</td>
+
+ <td>Un floppy disk e' scrivibile se la targhetta e'
+ posizionata in modalita' di scrittura, e all'opposto
+ puo' diventare in sola lettura</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <table class="docutils footnote" frame="void" id="id3"
+ rules="none">
+ <colgroup>
+ <col class="label" />
+ <col />
+ </colgroup>
+
+ <tbody valign="top">
+ <tr>
+ <td class="label">[2]</td>
+
+ <td>Con <em>re-scrittura</em> si intende la
+ possibilita' di modificare un dato piu' di una volta.
+ Ad esempio su un supporto ottico <em>Recordable</em>
+ si puo' scrivere una sola volta ( <a class=
+ "reference external" href=
+ "http://it.wikipedia.org/wiki/WORM">WORM</a> ),
+ dopodiche i dati scritti non sono ulteriormente
+ modificabili (ma possono essere aggiunte sucessive
+ <em>sessioni</em> di scrittura se previsto). Questa
+ caratteristica li rende indicati come supporto di
+ back-up. Supporti <em>Rewritable</em> possono invece
+ essere scritti piu' volte (la posizione dei cristalli
+ pit/lane interni puo' essere modificata piu' volte,
+ quindi i dati possono essere modificati /
+ eliminati).</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <dl class="docutils">
+ <dt>Tutti supporti di storaggio hanno vita limitata
+ (aspettativa di vita), influenzata fortemente dalla
+ nostra modalita' di utilizzo e da fattori/accidenti
+ esterni; sono quindi soggetti ad alcune norme di
+ conservazione specifiche:</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li>HD: mantiene dati per 2-5 anni</li>
+
+ <li>SUPPORTI MAGNETICI: evitare l'esposizione a
+ rapide variazioni termiche e campi magnetici.</li>
+
+ <li>SUPPORTI OTTICI: tenerlo lontano da fonti calore,
+ non depositarlo senza la custodia dedicata, non
+ sottoporlo a nessun tipo di sollecitazione meccanica
+ (piegarlo, torcerlo ).</li>
+ </ul>
+ </dd>
+ </dl>
+
+ <div class="section" id="hard-disk">
+ <h3><a class="toc-backref" href="#id16">HARD
+ DISK</a></h3>
+
+ <p>Il disco rigido o hard disk (anche chiamato disco
+ fisso) e' un dispositivo utilizzato per la memorizzazione
+ a lungo termine dei dati in un computer. E' 1 supporto
+ magnetico con 1 testina che si sposta per leggere dati su
+ uno o piu' dischi.</p>
+
+ <p>Caratteristiche fondamentali: capiente (200-500 MB
+ fino TB) + Trasf.dati (I/O) + riscrivibile (R,W,RW).</p>
+
+ <p>E' quindi il <strong>principale supporto di
+ storaggio</strong> per via della sua capienza (~300 GB),
+ ma rappresenta un limite ('collo di bottiglia') per le
+ <em>prestazioni</em> dell'intero pc perche' e' molto
+ lento nel trasferire dati (25-30 MB/s) rispetto alla cpu
+ (< 3 GHZ). Negli ultimi anni le prestazioni della cpu
+ sono raddoppiate circa ogni 18 mesi (Legge di <a class=
+ "reference external" href=
+ "http://it.wikipedia.org/wiki/Legge_di_Moore">Moore</a>),
+ mentre i dischi rigidi sono rimasti relativamente statici
+ dal punto di vista delle prestazioni nello scambio
+ dati.</p>
+
+ <p>Link: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Hard_disk">http://it.wikipedia.org/wiki/Hard_disk</a></p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>I vari formati dei supporti ottici DVD: <a class=
+ "reference external" href=
+ "http://it.wikipedia.org/wiki/Dvd#Formati_DVD">http://it.wikipedia.org/wiki/Dvd#Formati_DVD</a></li>
+
+ <li>I vari formati dei supporti ottici Blue-Ray Disk:
+ <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Blu-ray_Disc">http://it.wikipedia.org/wiki/Blu-ray_Disc</a></li>
+ </ul>
+ </blockquote>
+ </div>
+ </div>
+ </div>
+
+ <div class="section" id="classi-di-elaboratori">
+ <h1><a class="toc-backref" href="#id17">Classi di
+ elaboratori</a></h1>
+
+ <p>Cerchiamo di distinguere gli elaboratori per
+ caratteristiche fisiche e funzionali, considerando la loro
+ architettura, ambiente di utilizzo, target di utenza a cui
+ sono rivolti.</p>
+
+ <p>Stabiliamo alcuni criteri per distinguere le varie
+ classi:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>dimensioni</li>
+
+ <li>mobilita'</li>
+
+ <li>input | output</li>
+
+ <li>capcita' di calcolo</li>
+
+ <li>numero di utenti</li>
+
+ <li>completezza dell'interfaccia utente</li>
+ </ul>
+ </blockquote>
+
+ <div class="section" id="calcolatori-tascabili">
+ <h2><a class="toc-backref" href="#id18">Calcolatori
+ tascabili</a></h2><img alt="img/calcs.jpg" src=
+ "img/calcs.jpg" />
+
+ <p>Sono le macchine piu' semplici, generalmente poco
+ flessibili, tendono ad essere piu' sofisticate nel caso
+ delle calcolatrici scientifiche. Queste ultime sono spesso
+ programmabili e hanno display comunque di dimensioni
+ ridotte. L'interfaccia utente e' quindi molto
+ semplificata.</p>
+ </div>
+
+ <div class="section" id="palmari-e-smart-phones">
+ <h2><a class="toc-backref" href="#id19">Palmari e smart
+ phones</a></h2><img alt="img/palm.gif" src=
+ "img/palm.gif" />
+
+ <p>Device caratterizzati dalle piccole dimensioni e dalla
+ portabilita' (dimensioni <em>tascabili</em> e autonomia
+ nell'ordine delle decine di ore), possono essere
+ relativamente potenti e flessibili, sopratutto quando
+ vengono equipaggiati con sistemi operativi analoghi a
+ quelli dei personal computers. Le loro prestazioni in
+ alcuni casi sono paragonabili a PC fissi di 4/5 anni
+ precedenti alla loro introduzione sul mercato.</p>
+
+ <p>La capacita' di storaggio e' in genere molto limitata,
+ ma e' possibile espanderla con schede di memoria. I modelli
+ piu' recenti possono appogiiarsi a file-system di rete.</p>
+
+ <p>Autonomia: da 4 a 25 ore. Capacita' di storaggio:
+ centinaia di MB</p>
+ </div>
+
+ <div class="section" id="ultraportabili-netbook">
+ <h2><a class="toc-backref" href="#id20">Ultraportabili
+ (netbook)</a></h2><img alt="img/eeepc.jpg" src=
+ "img/eeepc.jpg" />
+
+ <p>Sono sostanzialmente l'anello intermedio tra i palmari e
+ i portatili. Di prezzo intermedio tra i due, hanno in
+ genere una dotazione hardware semplificata e ridotte
+ capacita' di espansione rispetto a un portatile. Dotati di
+ monitor e tastiere <em>standard</em> possono far
+ <em>girare</em> gli stessi sistemi operativi dei computer
+ fissi e quasi tutti i software con essi compatibili senza
+ dover intervenire sulle interfacce utente.</p>
+
+ <p>Autonomia: da 1 a 8 ore. Capacita' di storaggio: da 4GB
+ (stato solido) a 80GB (hard disk magnetici)</p>
+ </div>
+
+ <div class="section" id="portatili">
+ <h2><a class="toc-backref" href=
+ "#id21">Portatili</a></h2><img alt="img/laptop.jpg" src=
+ "img/laptop.jpg" />
+
+ <p>Versioni portabili o per lo meno <em>trasportabili</em>
+ dei personal computers. Hanno generalmente una tastiera
+ completa ma di dimensioni ridotte, un display di ~ 15
+ pollici, processori ottimizzati al risparmio energetico,
+ capacita' di storaggio limitate. L'espandibilita' e' molto
+ limitata. I portabili hanno una batteria che ne consente
+ l'utilizzo senza accesso alla rete elettrica fissa per
+ alcune ore. I cosidetti <em>trasportabili</em> hanno
+ un'autonomia senza rete elettrica irrisoria. Visto il
+ progressivo abbassamento dei prezzi stanno raggiungendo i
+ computer fissi per diffusione.</p>
+
+ <p>Autonomia: da 2 a 10 ore. Capacita' di storaggio: da
+ 250Gb fino a 1TB (Anche in RAID! )</p>
+
+ <div class="section" id="trasportabili">
+ <h3><a class="toc-backref" href=
+ "#id22">Trasportabili</a></h3>
+
+ <p>I cosidetti <em>TRASPORTABILI</em> sono
+ sostanzialmente delle work-station che si possono
+ spostare da una lugo all'altro.Data l'autonomi irrisoria
+ della batteria (anche 30/45 minuti) sono praticamente
+ utilizzabili solo connessi alla rete elettrica.</p>
+
+ <p>Tipicamente sono piu' tozzi e pesanti dei portatili
+ veri e propri, ma sono in genere piu' economici. Ad
+ eccezione dei modelli particolarmente lussuori con
+ display da 17 o piu' pollici, tipicamente dedicati al
+ multimedia.</p>
+ </div>
+
+ <div class="section" id="ultraportatili">
+ <h3><a class="toc-backref" href=
+ "#id23">Ultraportatili</a></h3>
+
+ <p>Sacrificano le prestazioni per migliorare la
+ portabilita': molto leggeri, grande autonomia (6 o piu'
+ ore), display da 12 pollici o inferiore, tipicamente
+ molto costosi.</p>
+ </div>
+ </div>
+
+ <div class="section" id="personal-computer">
+ <h2><a class="toc-backref" href="#id24">Personal
+ Computer</a></h2><img alt="img/180px-Apple2.jpg" src=
+ "img/180px-Apple2.jpg" />
+
+ <p>Sono le normali macchine fisse usati dagli gli utenti
+ per gli usi piu' disparati. Sono le macchine piu'
+ <em>comuni</em>, utilizzate per lavori di office automation
+ e intrattenimento, dotate di processori che privilegiano le
+ prestazioni rispetto al consumo (e al costo), e sono
+ generalmente il risultato dell'assemblaggio di parti sfuse
+ (schede madri, processori, periferiche) la cui combinazione
+ puo' portare a risultati variegati. A differenza delle
+ classi precedentemente descritte sono aggiornabili (posto
+ che ci sia compatibilita' tra i singoli componenti).</p>
+ </div>
+
+ <div class="section" id="work-station">
+ <h2><a class="toc-backref" href="#id25">Work
+ Station</a></h2>
+
+ <p>Sono postazioni singole ad alte performance per gli usi
+ piu' impegnativi (grafica, calcolo). Fino ad alcuni anni fa
+ erano generalmente caratterizzate da architetture
+ multiprocessore, ma oggi si trovano <em>palmari</em> con
+ piu' di una CPU quindi questo elemento non e' piu'
+ determinante. Generalmente il costo e' di molte migliaia di
+ euro. Questo termine sta diventando pero' obsoleto, data la
+ difficolta' di caratterizzare queste macchine, per scopi
+ promozionali / commerciali viene ormai usato per quasi
+ tutti i sistemi in vendita...</p>
+ </div>
+
+ <div class="section" id="server">
+ <h2><a class="toc-backref" href=
+ "#id26">Server</a></h2><img alt="img/blade_server.jpg" src=
+ "img/blade_server.jpg" />
+
+ <p>Un server e' un elaboratore che tipicamente eroga
+ servizi a molti <em>utenti</em> (clients) e offre
+ continuita' del servizio: un server tipicamente resta
+ acceso 24/7 mentre una workstation otto ore al giorno.
+ L'hardware di un server (in particolare le parti in
+ movimento piu' soggette a usura: alimentatore, ventole,
+ hard disks) dovrebbero quindi essere in grado di funzionare
+ tutto il giorno tutti i giorni, dato che l'interruzione,
+ seppur temporanea, dell'erogazione dei servizi puo'
+ compromettere la produttivita' di molti <em>clients</em>.
+ Componenti come alimentatore o hard disk hanno comunque una
+ vita limitata (anche se di <em>buona</em> qualita') e in
+ previsione di un loro malfunzionamento e' possibile
+ implementare sistemi di <em>ridondanza</em> relativamente
+ economici come <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/RAID">RAID</a> e
+ alimentazione ridondante. Puo' essere possibile a seconda
+ del tipo di hardware sostituire <em>al volo</em> (hot swap)
+ i componenti guasti senza essere costretti a spegnere la
+ macchina per l'intervento di manutenzione.</p>
+
+ <p>I requisiti di capacita' di calcolo e memoria avranno da
+ calcolare in base ai requisiti dei servizi in esecuzione
+ sul server in relazione al numero dei client collegati e
+ effettivo utilizzo di questi. Non e' raro trovare server
+ con quantitativi di <em>RAM</em> o <em>CPU</em> ben piu'
+ limitati dei clients che servono quando i servizi sono poco
+ esosi di risorse o le richieste relativamente frequenti e
+ sopratutto senza picchi di utilizzo. Alcuni servizi
+ fondamentali come DNS, routing o firewall possono saturare
+ la banda disponibile del server ben prima delle altre
+ risorse di sistema. Capita ritrovare vecchie work-station
+ in disuso, ormai sostituite da macchine piu' recenti e
+ prestanti, svolgere decorosamente queste funzioni. Il che'
+ rappresenta un'interessante opzione di reciclo, per quanto
+ il consumo elettrico sia il piu' delle volte sproporzionato
+ al lavoro svolto (tenendo come riferimento macchine a
+ bassissiimo costo di derivazione embedded o NAS di
+ produzione recente, ma il discorso si farebbe
+ complicato...) .</p>
+
+ <p>Tipicamente i server hanno capacita' di
+ <em>collegamento</em> (hardware di rete) superiori ai
+ singoli client (in proporzione alle macchine che devono
+ servire), ma dato che <em>spesso</em> client e server
+ condividono la stessa architettura hardware non e' semplice
+ fare in modo che i server siano in grado di gestire
+ input/output in quantita' direttamente proporzionale al
+ numero dei clients. Si tenga conto che molti servizi non
+ prevedono un flusso costante di dati ma solo chiamate
+ sporadiche: questo permette di poter pianificare la
+ ampiezza di banda necessaria al server sul valore massimo
+ <em>stimato</em> di connessioni che si potrebbero
+ verificare in un singolo momento piuttosto che sul reale
+ numero di clients.</p>
+
+ <p>Spesso i server non hanno periferiche di input dedicate
+ (mouse e tastiera), e preferibilmente montano hardware a
+ basso consumo (anche per limitare di conseguenza l'usura
+ dei sistemi di raffreddamento, e per permettere la
+ concentrazione in singoli armadi o <em>server farm</em>
+ ).</p>
+ </div>
+
+ <div class="section" id="mainframe">
+ <h2><a class="toc-backref" href=
+ "#id27">Mainframe</a></h2><img alt="img/mainframe.jpg" src=
+ "img/mainframe.jpg" />
+
+ <p>Tipo di macchine "desuete" (a parte i casi in cui non se
+ ne puo' fare a meno, ma la tendenza iattuale e' di
+ sostituirle con uno o piu' server), i mainframe sono
+ fondamentalmente caratterizzate da una superiore capacita'
+ nella gestione dell'input/output, e nel garantire la
+ continuita' del servizio (molti mainframe permettono la
+ sostituzione a caldo anche dei processori).</p>
+
+ <p>I mainframe o Sistemi Centrali sono computer utilizzati
+ per applicazioni critiche soprattutto da grandi aziende e
+ istituzioni, tipicamente per elaborare con alte prestazioni
+ ed alta affidabilita' grandi moli di dati, come quelle in
+ gioco nelle transazioni finanziarie, nei censimenti, nelle
+ statistiche di industrie e clienti, nelle applicazioni
+ ERP(Enterprise Resource Planning), etc</p>
+ </div>
+
+ <div class="section" id="cluster">
+ <h2><a class="toc-backref" href=
+ "#id28">Cluster</a></h2><img alt="img/cluster.jpg" src=
+ "img/cluster.jpg" />
+
+ <p>soluzione <em>economica</em> per raggiungere alte
+ prestazioni utilizzando piu' macchine <em>semplici</em> in
+ parallelo per lo stesso scopo. Google ad esempio e' un
+ cluster costituito da macchine x86 facilmente reperibili
+ sul mercato. L'hardware e' quindi relativamente economico
+ come gli interventi su di esso, e data la possibilita' di
+ garantire il funzionamento del cluster a prescindere dal
+ <em>fallimento</em> di un singolo membro si puo' tollerare
+ hardware meno sofisticato.</p>
+ </div>
+
+ <div class="section" id="supercomputer">
+ <h2><a class="toc-backref" href=
+ "#id29">Supercomputer</a></h2><img alt=
+ "img/supercomputer.jpg" src="img/supercomputer.jpg" />
+
+ <p>I supercomputer sono macchine che raggiungono le massime
+ prestazioni possibili secondo la tecnologia disponibile per
+ singola unita'. La loro architettura e' altamente
+ specializzata e costruita su misura, sono generalmente
+ molto costosi e poco aggiornabili.</p>
+
+ <p>La tendenza attuale e' di sostituirli con clusters di
+ macchine piu' semplici da gestire: nelle _classifiche dei
+ "super computer" molti sistema sono clusters.</p>
+ </div>
+ </div>
+
+ <div class="section" id="linguaggi-di-programmazione">
+ <h1><a class="toc-backref" href="#id30">Linguaggi di
+ programmazione</a></h1>
+
+ <p>I computer, come detto in precedenza, registrano e
+ elaborano dei dati. Quest'ultima parte viene svolta con dei
+ programmi che sono sostanzialmente delle sequenze di
+ istruzioni, scritte in un linguaggio comprensibile
+ all'elaboratore, ripetute piu' volte.</p>
+
+ <p>links: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Linguaggio_di_programmazione">http://it.wikipedia.org/wiki/Linguaggio_di_programmazione</a></p>
+
+ <p>Sappiamo che i microporcessori elaborano sequenze binarie
+ formate dai valori <tt class="docutils literal"><span class=
+ "pre">1|0</span></tt>, ma sarebbe decisamente scomodo per gli
+ sviluppatori scrivere i programmi in questo formato. Si
+ <em>preferisce</em> scrivere i software in linguaggi formali
+ piu' simili alla lingua umana (inglese), che oltre a essere
+ piu' <em>significativi</em> per gli sviluppatori permettono
+ di scrivere sequenze di comandi che potranno poi essere
+ adattate automaticamente alle varie CPU.</p>
+
+ <p>La trasformazione del <em>codice sorgente</em> scritto dal
+ programmatore in un linguaggio di piu' <em>alto livello</em>
+ rispetto al <em>codice oggetto</em> direttamente eseguibile
+ dal microprocessore viene svolta da un compilatore o da un
+ interprete.</p>
+
+ <p>Esistono probabilmente centinaia di linguaggi di
+ programmazione, caratterizzabili in base a:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Distanza dall'hardware: linguaggi di basso livello
+ come l'<em>assebler</em> sono molto piu' a contatto con
+ le caratteristiche propie della CPU rispetto a linguaggi
+ di alto livello come <em>Python / Ruby / PHP</em>. La
+ possibilita' di interagire in modo piu' stretto con
+ l'hardware puo produrre codice piu' prestante.</li>
+
+ <li>Semplicita': linguaggi di <em>alto livello</em>,
+ sopratutto se interpretati, risultano molto piu' semplici
+ da scrivere e manutenere, abbassando di conseguenza costi
+ e tempi di sviluppo. Vista la attuale capacita' di
+ calcolo dei microprocessori l'efficena massima del codice
+ tende oggi a non essere prioritaria rispetto al tempo di
+ sviluppo (almeno in molti casi).</li>
+ </ul>
+ </blockquote>
+
+ <p><a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Linguaggio_di_programmazione#Linguaggi_compilati_e_linguaggi_interpretati">
+ http://it.wikipedia.org/wiki/Linguaggio_di_programmazione#Linguaggi_compilati_e_linguaggi_interpretati</a></p>
+
+ <div class="section" id="compilatori">
+ <h2><a class="toc-backref" href=
+ "#id31">Compilatori</a></h2>
+
+ <p>In informatica, un compilatore e' un programma che
+ traduce una serie di istruzioni scritte in un determinato
+ linguaggio di programmazione (codice sorgente) in
+ istruzioni di un altro linguaggio (codice oggetto). Questo
+ processo di traduzione si chiama compilazione.</p>
+
+ <p>Dal codice sorgente viene quindi generato un codice
+ oggetto direttamente eseguibile dalla CPU, senza bisogno
+ che al momento dell'esecuzione sia disponibile lo stesso
+ linguaggio o componenti dell'ambiente si sviluppo. Dato che
+ il compilatore ha la possibilita' di fare un'analisi
+ generale del codice prima di cominciare a convertirlo il
+ codice risultante e' in genere piu' ottimizzato rispetto al
+ codice eseguito da un interprete.</p>
+
+ <p>La compilazione richiede una certa quantita' di tempo,
+ ma questo accade <strong>solo in fase di
+ compilazione</strong>. Una volta creato il codice oggetto
+ questo sara' immediatamente eseguibile su tutte le macchine
+ compatibili, con un evidente vantaggio di prestazioni
+ rispetto ai linguaggi interpretati che devono procedere
+ alla <em>traduzione</em> a ogni esecuzione del
+ programma.</p>
+
+ <p>La necessita' di dover ricompilare ogni volta che si
+ introduce un cambiamento del codice viene pero' visto come
+ uno svantaggio rispetto ai linguaggi interpretati, dal
+ punto di vista dello sviluppatore.</p>
+
+ <p>Poiche' in informatica non esitono <em>proiettili_
+ d'argento</em> (silver bullets, una soluzione per tutti i
+ problemi) abbiamo a disposizione tanti linguaggi diversi,
+ per supportare approcci piu' o meno strutturati a
+ problematiche piu' o meno complesse: linguaggi piu' o meno
+ semplici, piu' o meno efficenti nelle prestazioni,
+ ottimizzati per fare specifiche compiti, etc. L'idea di
+ base sarebbe di cercare di elaborare soluzioni semplici con
+ gli strumenti piu' adeguati (i linguaggi di programmazione)
+ alla natura del problema.</p>
+
+ <p>Esempio di codice in linguaggio <strong>C</strong> :</p>
+
+ <p>links: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/C_(linguaggio">http://it.wikipedia.org/wiki/C_(linguaggio</a>)</p>
+
+ <div class="line-block">
+ <div class="line">
+ #include <stdio.h>
+ </div>
+
+ <div class="line">
+ <br />
+ </div>
+
+ <div class="line">
+ int main()
+ </div>
+
+ <div class="line">
+ {
+ </div>
+
+ <div class="line-block">
+ <div class="line">
+ printf("Hello, World!");
+ </div>
+
+ <div class="line">
+ return 0;
+ </div>
+ </div>
+
+ <div class="line">
+ }
+ </div>
+
+ <div class="line">
+ <br />
+ </div>
+ </div>
+
+ <p>Analisi codice: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/C_(linguaggio">http://it.wikipedia.org/wiki/C_(linguaggio</a>)#Hello_world.21</p>
+ </div>
+
+ <div class="section" id="interpreti">
+ <h2><a class="toc-backref" href="#id32">Interpreti</a></h2>
+
+ <p><a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Interprete_(informatica">http://it.wikipedia.org/wiki/Interprete_(informatica</a>)</p>
+
+ <p>Un linguaggio interpretato e' un linguaggio di
+ programmazione i cui programmi vengono eseguiti da un
+ interprete. Tale approccio si distingue da quello dei
+ linguaggi compilati: a differenza di un interprete, un
+ compilatore non esegue il programma che riceve in ingresso,
+ ma lo traduce in linguaggio macchina (memorizzando su file
+ il codice oggetto pronto per l'esecuzione diretta da parte
+ del processore).</p>
+
+ <p>L'approccio interpretato comporta una minore efficienza
+ a run-time; un programma interpretato, in esecuzione,
+ richiede piu' memoria ed e' meno veloce, a causa dello
+ overhead introdotto dall'interprete stesso. Durante
+ l'esecuzione, l'interprete deve infatti analizzare le
+ istruzioni a partire dal livello sintattico, identificare
+ le azioni da eseguire (eventualmente trasformando i nomi
+ simbolici delle variabili coinvolte nei corrispondenti
+ indirizzo di memoria), ed eseguirle; mentre le istruzioni
+ del codice compilato, gia' in linguaggio macchina, vengono
+ caricate e istantaneamente eseguite dal processore.</p>
+
+ <p>Esempio in python:</p>
+
+ <div class="line-block">
+ <div class="line">
+ print "hello world!"
+ </div>
+ </div>
+
+ <p>Analisi: scrive hello world a schermo !</p>
+ </div>
+
+ <div class="section" id="java-e-similari">
+ <h2><a class="toc-backref" href="#id33">Java e
+ similari</a></h2>
+
+ <p>link <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Macchina_virtuale_Java">http://it.wikipedia.org/wiki/Macchina_virtuale_Java</a></p>
+
+ <p>La macchina virtuale Java, detta anche Java Virtual
+ Machine o JVM, e' la macchina virtuale che esegue i
+ programmi in linguaggio Java bytecode, ovvero i prodotti
+ della compilazione dei sorgenti Java. La JVM e' formalmente
+ una specifica, mantenuta da Sun Microsystems. Qualsiasi
+ sistema che si comporti in modo coerente con tale specifica
+ sara' quindi da considerarsi una particolare
+ implementazione della JVM. Esistono implementazioni
+ software per praticamente tutti i sistemi operativi
+ moderni, sia gratuite che commerciali. Inoltre, esistono
+ implementazioni speciali per particolari ambienti
+ hardware/software (per esempio telefoni cellulari e
+ palmari), e persino implementazioni hardware.</p>
+
+ <p>La disponibilita' di implementazioni della macchina
+ virtuale Java per diversi ambienti operativi e' la chiave
+ della portabilita' di Java, proclamata nello slogan write
+ once, run everywhere ("scrivi una volta, esegui
+ dappertutto"). La macchina virtuale realizza infatti un
+ ambiente di esecuzione omogeneo, che nasconde al software
+ Java (e quindi al programmatore) qualsiasi specificita' del
+ sistema operativo sottostante:</p>
+
+ <div class="line-block">
+ <div class="line">
+ ================================
+ </div>
+
+ <div class="line">
+ | Software applicativo Java |
+ </div>
+
+ <div class="line">
+ ===============================
+ </div>
+
+ <div class="line-block">
+ <div class="line">
+ | Java Virtual Machine |
+ </div>
+
+ <div class="line-block">
+ <div class="line">
+ ==========================
+ </div>
+
+ <div class="line-block">
+ <div class="line">
+ | Sistema Operativo |
+ </div>
+
+ <div class="line-block">
+ <div class="line">
+ ======================
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <p>Sostanzialmente il codice Java viene scritto per essere
+ eseguito da una Java Virtual Machine (JVM), della quale
+ viene rilasciata una versione per ogni diverso sistema
+ operativo. In questo modo modo lo sviluppatore puo'
+ scrivere un codice che sia indipendente dal sistema in cui
+ verra' eseguito, dato che la JVM (Java Virtual Machine)
+ dovrebbe comportarsi allo stesso modo su qaulunque sistema
+ venga installato.</p>
+ </div>
+ </div>
+
+ <div class="section" id="licenze-software">
+ <h1><a class="toc-backref" href="#id34">Licenze
+ software</a></h1>
+
+ <p>La licenza in ambito informatico e' il contratto che puo'
+ accompagnare un prodotto software. Tale contratto specifica
+ le modalita' con cui l'utente puo' usare tale prodotto,
+ garantendo dei diritti ed imponendo obblighi.</p>
+
+ <p>La licenza e' imposta da chi detiene il copyright sul
+ prodotto software; la sua validita' dipende dalla presenza
+ del diritto d'autore, questo perche' solo chi detiene il
+ copyright ha il diritto di far rispettare in ogni sede la
+ licenza stessa.</p>
+
+ <p>In vari casi l'autore puo' rilasciare un prodotto software
+ sotto licenze differenti, lasciando all'utente la
+ possibilita' di scegliere quella preferita.</p>
+ </div>
+
+ <div class="section" id="tipi-di-licenze">
+ <h1><a class="toc-backref" href="#id35">Tipi di
+ licenze</a></h1>
+
+ <div class="section" id="publico-dominio">
+ <h2><a class="toc-backref" href="#id36">Publico
+ dominio</a></h2>
+
+ <p>Il pubblico dominio non e' propriamente una licenza, per
+ quanto sia determinante nei rapporti tra l'opera e i
+ fruitori. L'essenza sta proprio nel non sottoprre l'opera a
+ meccanismi di tutela della propieta' dell'opera. L'opera e'
+ patrimonio dell'umanita'. Tutte le opere delle quale il
+ copyright e' scaduto per termini di leggi (a seconda del
+ paese possono volerci fino a un centinaio di anni)
+ diventano di pubblico dominio e quindi liberamente
+ fruibili. Ad es. non dovete chiedere il permesso a nessuno
+ per stampare e diffondere l'Odissea di Omero, posto che non
+ contravveniate ad altre leggi vigenti nel farlo.</p>
+
+ <p>WWW, TCP/IP, <a class="reference external" href=
+ "http://www.sqlite.org/copyright.html">sqlite</a> sono
+ sotto pubblico domnio</p>
+
+ <p>Publico dominio = cessazione di tutti i diritti di
+ eslusiva: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Pubblico_dominio">http://it.wikipedia.org/wiki/Pubblico_dominio</a></p>
+ </div>
+
+ <div class="section" id="freeware">
+ <h2><a class="toc-backref" href="#id37">Freeware</a></h2>
+
+ <p><a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Freeware">http://it.wikipedia.org/wiki/Freeware</a></p>
+
+ <p>Software <em>a gratis</em>. Nel senso che non si paga
+ per utilizzarlo. Gratis come in "birra gratis per
+ tutti".</p>
+
+ <p>L'utente non pu' modificarlo in alcun modo, a meno che
+ non espressamente previsto.</p>
+
+ <p>Il termine freeware indica un software che viene
+ distribuito in modo gratuito.</p>
+
+ <p>Il freeware e' distribuito indifferentemente con o senza
+ codice sorgente, a totale discrezione dell'autore e senza
+ alcun obbligo al riguardo. È sottoposto
+ esplicitamente ad una licenza che ne permette la
+ redistribuzione gratuita. Il software freeware viene
+ concesso in uso senza alcun corrispettivo, ed e'
+ liberamente duplicabile e distribuibile, con pochissime
+ eccezioni.</p>
+ </div>
+
+ <div class="section" id="shareware">
+ <h2><a class="toc-backref" href="#id38">Shareware</a></h2>
+
+ <p>Shareware e' una tipologia di licenza software molto
+ popolare sin dai primi anni Novanta. Vengono distribuiti
+ sotto tale licenza in genere programmi facilmente
+ scaricabili via Internet o contenuti in CD e DVD quasi
+ sempre allegati alle riviste di Informatica in vendita in
+ edicola.</p>
+
+ <blockquote>
+ Il software sotto tale licenza puo' essere liberamente
+ ridistribuito, e puo' essere utilizzato per un periodo di
+ tempo di prova variabile (generalmente 30 giorni).
+ Scaduti questi termini, per continuare ad utilizzare il
+ software e' necessario registrarlo presso la casa
+ produttrice, pagandone l'importo. All'avvio
+ dell'applicazione shareware generalmente un Nag Screen
+ informa l'utente su come effettuare la registrazione e
+ sulle condizioni di utilizzo.
+ </blockquote>
+ </div>
+ </div>
+
+ <div class="section" id="licenze-per-software-liberi">
+ <h1><a class="toc-backref" href="#id39">Licenze per software
+ liberi</a></h1>
+
+ <p><a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Software_libero">http://it.wikipedia.org/wiki/Software_libero</a></p>
+
+ <p>Il Software libero e' una questione di liberta', non di
+ prezzo. Per capire il concetto, bisognerebbe pensare alla
+ liberta' di parola e non alla birra gratis [NdT: il termine
+ free in inglese significa sia gratuito che libero, in
+ italiano il problema non esiste].</p>
+
+ <p>Cosa sia, o meglio quanto debba essere libero un software
+ per poter essere definito tecnicamente <em>libero</em> e'
+ motivo di discussione sia tra sviluppatori che tra i non i
+ non addetti ai lavori, data l'applicazione del concetto di
+ copyleft ad altre discipline diverse dall'informatica.</p>
+
+ <p>Generalmente con software libero si intende quel codice
+ rilasciato sotto licenza GPL, per quanto altre licenze
+ vengano generalmente accettate come <em>libere</em>.
+ Stabiliti dei criteri, almeno per quanto riguarda il
+ software, si puo' procedere a una comparazione tra le varie
+ licenze alternative alla GPL:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li><a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Comparazione_di_licenze_libere">
+ http://it.wikipedia.org/wiki/Comparazione_di_licenze_libere</a></li>
+
+ <li><a class="reference external" href=
+ "http://www.gnu.org/philosophy/categories.it.html">http://www.gnu.org/philosophy/categories.it.html</a></li>
+ </ul>
+ </blockquote>
+
+ <p>Dal sito del progetto Gnu possiamo <em>copiare</em> la
+ seguente definizione:</p>
+
+ <p>Definizione di Software Libero</p>
+
+ <blockquote>
+ <p>Questa definizione ha lo scopo di chiarire quali sono i
+ requisiti che un certo programma deve soddisfare perche' lo
+ si possa considerare "software libero".</p>
+
+ <p>Il Software libero e' una questione di liberta', non di
+ prezzo. Per capire il concetto, bisognerebbe pensare alla
+ liberta' di parola e non alla birra gratis [NdT: il termine
+ free in inglese significa sia gratuito che libero, in
+ italiano il problema non esiste].</p>
+
+ <p>L'espressione "software libero" si riferisce alla
+ liberta' dell'utente di eseguire, copiare, distribuire,
+ studiare, cambiare e migliorare il software. Piu'
+ precisamente, esso si riferisce a quattro tipi di liberta'
+ per gli utenti del software: Liberta' di eseguire il
+ programma, per qualsiasi scopo (liberta' 0). Liberta' di
+ studiare come funziona il programma e adattarlo alle
+ proprie necessita' (liberta' 1). L'accesso al codice
+ sorgente ne e' un prerequisito. Liberta' di ridistribuire
+ copie in modo da aiutare il prossimo (liberta' 2). Liberta'
+ di migliorare il programma e distribuirne pubblicamente i
+ miglioramenti, in modo tale che tutta la comunita' ne
+ tragga beneficio (liberta' 3). L'accesso al codice sorgente
+ ne e' un prerequisito.</p>
+
+ <p>Un programma e' software libero se l'utente ha tutte
+ queste liberta'. In particolare, se e' libero di
+ ridistribuire copie, con o senza modifiche, gratis o
+ addebitando delle spese di distribuzione a chiunque ed
+ ovunque. Essere liberi di fare queste cose significa (tra
+ l'altro) che non bisogna chiedere o pagare nessun
+ permesso.</p>
+
+ <p>Bisogna anche avere la liberta' di fare modifiche e
+ usarle privatamente nel proprio lavoro o divertimento senza
+ doverlo dire a nessuno. Se si pubblicano le proprie
+ modifiche, non si deve essere tenuti a comunicarlo a
+ qualcuno in particolare o in qualche modo particolare.</p>
+
+ <p>La liberta' di usare un programma significa liberta' per
+ qualsiasi tipo di persona od organizzazione di utilizzarlo
+ su qualsiasi tipo di sistema informatico, per qualsiasi
+ tipo di attivita' e senza dover successivamente comunicare
+ con lo sviluppatore o con qualche altra entita' specifica.
+ Quello che conta per questa liberta' e' lo scopo
+ dell'utente, non dello sviluppatore; come utenti potete
+ eseguire il programma per i vostri scopi; se lo
+ ridistribuite a qualcun altro, egli e' libero di eseguirlo
+ per i propri scopi, ma non potete imporgli i vostri
+ scopi.</p>
+
+ <p>La liberta' di ridistribuire copie deve includere le
+ forme binarie o eseguibili del programma e anche il codice
+ sorgente, sia per le versioni modificate che non modificate
+ (distribuire programmi in formato eseguibile e' comodo per
+ avere sistemi operativi liberi facili da installare).
+ È legittimo anche se non c'e' alcun modo di
+ produrre una forma binaria o eseguibile (dal momento che
+ alcuni linguaggi non supportano questa caratteristica), ma
+ si deve avere la liberta' di ridistribuire tali forme nel
+ caso si trovi o si sviluppi un modo per farlo.</p>
+
+ <p>Affinche' le liberta' di fare modifiche e di pubblicare
+ versioni migliorate abbiano senso, si deve avere accesso al
+ codice sorgente del programma. Percio', l'accessibilita' al
+ codice sorgente e' una condizione necessaria per il
+ software libero.</p>
+
+ <p>Un importante modo di modificare un programma e' quello
+ di includervi funzioni e moduli liberi gia' esistenti. Se
+ la licenza del programma prevede che non si possano
+ includere moduli gia' esistenti, ad esempio se richiede che
+ voi possiate aggiungere solo codice di cui detenete il
+ copyright, allora la licenza e' troppo restrittiva per
+ essere considerata libera.</p>
+
+ <p>Queste liberta' per essere reali devono essere
+ irrevocabili fin tanto che non si fa qualcosa di sbagliato:
+ se lo sviluppatore del software ha il potere di revocare la
+ licenza anche senza che l'utente sia causa di tale revoca,
+ il software non e' libero.</p>
+
+ <p>Tuttavia, certi tipi di regole sul come distribuire il
+ software libero sono accettabili quando non entrano in
+ conflitto con le liberta' principali. Per esempio, il
+ copyleft, noto anche impropriamente come "permesso
+ d'autore", e' (detto poche parole) la regola per cui,
+ quando il programma e' ridistribuito, non e' possibile
+ aggiungere restrizioni per negare ad altre persone le
+ liberta' principali. Questa regola non entra in conflitto
+ con le liberta' principali, anzi le protegge.</p>
+
+ <p>Indipendentemente dal fatto che si siano ottenute copie
+ di software GNU a pagamento o gratuitamente, si ha sempre
+ la liberta' di copiare e cambiare il software, e anche di
+ venderne copie.</p>
+
+ <p>Software libero non vuol dire non-commerciale. Un
+ programma libero deve essere disponibile per uso
+ commerciale, sviluppo commerciale e distribuzione
+ commerciale. Lo sviluppo commerciale di software libero non
+ e' piu' inusuale: questo software commerciale libero e'
+ molto importante.</p>
+ </blockquote>
+ <hr class="docutils" />
+
+ <div class="section" id="copyleft-copyright">
+ <h2><a class="toc-backref" href="#id40">Copyleft !=
+ Copyright</a></h2>
+
+ <p>Il copyleft e' un metodo generico per rendere un
+ programma libero ed imporre che tutte le modifiche e
+ versioni estese del programma siano anch'esse software
+ libero.</p>
+
+ <p>L'espressione inglese copyleft, lett. "(diritto di)
+ copiatura (esclusiva) abbandonato" , e' gioco di parole su
+ copyright (lett. "diritto (esclusivo) di copiatura"), in
+ cui la seconda parola del composto, "right" e' scambiata
+ con "left" individua un modello alternativo di gestione dei
+ diritti d'autore basato su un sistema di licenze attraverso
+ le quali l'autore (in quanto detentore originario dei
+ diritti sull'opera) indica ai fruitori dell'opera che essa
+ puo' essere utilizzata, diffusa e spesso anche modificata
+ liberamente, pur nel rispetto di alcune condizioni
+ essenziali. Nella versione pura e originaria del copyleft
+ (cioe' quella riferita all'ambito informatico) la
+ condizione principale obbliga i fruitori dell'opera a
+ rilasciare eventuali modifiche apportate all'opera a loro
+ volta sotto lo stesso regime giuridico (e generalmente
+ sotto la stessa licenza). In questo modo, il regime di
+ copyleft e tutto l'insieme di liberta' da esso derivanti
+ sono sempre garantiti.</p>
+
+ <p>Il modo piu' semplice per rendere un programma, o altro
+ lavoro, libero e' dichiararlo di dominio pubblico, privo di
+ copyright. [NdT: in Italia questo concetto a rigore non
+ esiste, perche' l'autore non puo' rinunciare alla
+ paternita' dell'opera; effetti simili si possono ottenere
+ con l'uso di una licenza permissiva, come la licenza di X
+ del MIT]. Cio' permette a chiunque di condividere il
+ programma e i suoi miglioramenti. Tuttavia permette anche a
+ chi non vuol cooperare di convertire il programma in
+ software proprietario. Costoro possono infatti apportare
+ modifiche, che siano significative o meno, e distribuire il
+ risultato come prodotto proprietario. Chi riceve il
+ programma nella forma modificata non ha la liberta' data
+ dall'autore originario; l'intermediario l'avra'
+ rimossa.</p>
+
+ <p><em>Segue su:</em> <a class="reference external" href=
+ "http://www.gnu.org/copyleft/copyleft.it.html">http://www.gnu.org/copyleft/copyleft.it.html</a></p>
+
+ <p>Link alla Licenza GPL (e DSFG):</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li><a class="reference external" href=
+ "http://it.wikipedia.org/wiki/GNU_GPL">http://it.wikipedia.org/wiki/GNU_GPL</a></li>
+
+ <li><a class="reference external" href=
+ "http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a></li>
+
+ <li>FAQ sulla GPL: <a class="reference external" href=
+ "http://www.fsf.org/licensing/licenses/gpl.html">http://www.fsf.org/licensing/licenses/gpl.html</a></li>
+
+ <li>DSFG (Le Linee Guida Debian per il Software Libero
+ (Debian Free Software Guidelines - DFSG): <a class=
+ "reference external" href=
+ "http://www.debian.org/social_contract#guidelines">http://www.debian.org/social_contract#guidelines</a></li>
+ </ul>
+ </blockquote>
+
+ <p>Non dci dovrebbe essere nessuna differenza tecnica tra
+ "free software" e "open source".</p>
+ </div>
+
+ <div class="section" id="licenza-bsd">
+ <h2><a class="toc-backref" href="#id41">Licenza
+ BSD</a></h2>
+
+ <p>Le licenze BSD sono una famiglia di licenze permissive
+ per software. Molte sono considerate libere ed open source.
+ Il loro nome deriva dal fatto che la licenza BSD originale
+ (detta anche licenza BSD con 4 clausole) fu usata
+ originariamente per distribuire il sistema operativo Unix
+ Berkeley Software Distribution (BSD), una revisione libera
+ di UNIX sviluppata presso l'Universita' di Berkeley.</p>
+
+ <dl class="docutils">
+ <dt>Links:</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li><a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Licenze_BSD">http://it.wikipedia.org/wiki/Licenze_BSD</a></li>
+
+ <li><a class="reference external" href=
+ "http://www.opensource.org/licenses/bsd-license.php">http://www.opensource.org/licenses/bsd-license.php</a></li>
+ </ul>
+ </dd>
+ </dl>
+ </div>
+
+ <div class="section" id="licenza-apache">
+ <h2><a class="toc-backref" href="#id42">Licenza
+ Apache</a></h2>
+
+ <p>In ambito informatico, con Licenza Apache (ingl:Apache
+ License) si intende una precisa licenza, che similmente
+ alla licenza BSD, permette di utilizzare il codice dentro
+ progetti non open source e senza obbligo di rilascio dei
+ sorgenti modificati.</p>
+
+ <p>La Licenza Apache venne scritta dalla Apache Software
+ Foundation (ASF) per il piu' usato server web, Apache.
+ È una licenza per software libero, ma non
+ compatibile con la GNU GPL.</p>
+
+ <p>Questa licenza assume particolare inportanza in quanto
+ usata per molti altri software rilasciati dalla Apache
+ Software Foundation (<a class="reference external" href=
+ "http://it.wikipedia.org/wiki/Apache_Software_Foundation">ASF</a>)
+ e altri progetti,</p>
+
+ <p>Esistono le versioni 1.0, 1.1 e 2.0.</p>
+ </div>
+ </div>
+
+ <div class="section" id="eula">
+ <h1><a class="toc-backref" href="#id43">Eula</a></h1>
+
+ <p>EULA o End User License Agreement (accordo di licenza con
+ l'utente finale) e' il contratto tra il fornitore di un
+ programma software e l'utente finale. Tale contratto assegna
+ la licenza d'uso del programma all'utente nei termini
+ stabiliti dal contratto stesso.</p>
+
+ <p>Segue su: <a class="reference external" href=
+ "http://it.wikipedia.org/wiki/EULA">http://it.wikipedia.org/wiki/EULA</a></p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Multilicenze (enterprice)</li>
+
+ <li>Licenze singole</li>
+
+ <li>OEM : legate all'hardware, non possono essere
+ spostata su una macchina diversa</li>
+ </ul>
+ </blockquote>
+
+ <dl class="docutils">
+ <dt>Link alla licenza EULA di MS Windows XP:</dt>
+
+ <dd>
+ <ul class="first last simple">
+ <li><a class="reference external" href=
+ "http://alice.andreamanni.com/eula.txt">http://alice.andreamanni.com/eula.txt</a></li>
+
+ <li><a class="reference external" href=
+ "http://www.microsoft.com/windowsxp/eula/home.mspx">http://www.microsoft.com/windowsxp/eula/home.mspx</a></li>
+ </ul>
+ </dd>
+ </dl>
+ </div>
+ </div>
+</body>
+</html>