]> git.piffa.net Git - doc/.git/blobdiff - source/informatica_base.txt
Servizi: aggiunta gestione delle shell per server ftp
[doc/.git] / source / informatica_base.txt
index 230ba35fa7e60b0e1b623c1d813399b1fec0b23c..7aa2ea3a7c2e48d32206b1d65a46d1627faea50e 100644 (file)
@@ -421,11 +421,11 @@ Server
 .. image:: img/blade_server.jpg
 
 Un server e' un elaboratore che tipicamente eroga servizi a molti *utenti* (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 *clients*. 
-Componenti come alimentatore o hard disk hanno comunque una vita limitata (anche se di *buona* qualita') e in previsione di un loro malfunzionamento e' possibile implementare sistemi di *ridondanza* relativamente economici come RAID_  e alimentazione ridondante. Puo' essere possibile a seconda del tipo di hardware sostituire *al volo* (hot swap) i componenti guasti senza essere costretti a spegnere la macchina per l'intervento di manutenzione.
+Componenti come alimentatore o hard disk hanno comunque una vita limitata (anche se di *buona* qualita') e in previsione di un loro malfunzionamento e' possibile implementare sistemi di *ridondanza* relativamente economici come RAID_  e alimentazione ridondante. Puo' essere possibile a seconda del tipo di hardware sostituire *al volo* (hot swap) i componenti guasti senza essere costretti a spegnere la macchina durante l'intervento di manutenzione.
 
 .. _RAID: http://it.wikipedia.org/wiki/RAID
 
-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 *RAM* o *CPU* 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...) . 
+I requisiti di capacita' di calcolo e memoria saranno 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 *RAM* o *CPU* 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...) . 
 
 Tipicamente i server hanno capacita' di *collegamento* (hardware di rete) superiori ai singoli client (in proporzione alle macchine che devono servire), ma dato che *spesso* 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 *stimato* di connessioni che si potrebbero verificare in un singolo momento piuttosto che sul reale numero di clients.
 
@@ -494,18 +494,19 @@ Poiche' in informatica non esitono *proiettili_ d'argento* (silver bullets, una
 
 .. _proiettili: http://en.wikipedia.org/wiki/Silver_bullet
 
-Esempio di codice in linguaggio **C** :
+Esempio di codice in linguaggio **C** ::
 
-links: http://it.wikipedia.org/wiki/C_(linguaggio)
 
-|                #include <stdio.h>
-|
-|                int main()
-|                {
-|                    printf("Hello, World!");
-|                    return 0;
-|                }
-|
+               #include <stdio.h>
+
+               int main()
+               {
+                   printf("Hello, World!");
+                   return 0;
+               }
+
+
+links: http://it.wikipedia.org/wiki/C_(linguaggio)
 
 
 
@@ -523,7 +524,7 @@ L'approccio interpretato comporta una minore efficienza a run-time; un programma
 
 Esempio in python:
 
-|    print "hello world!"
+    ``print "hello world!"``
 
 Analisi: scrive hello world a schermo !
 
@@ -535,15 +536,15 @@ link  http://it.wikipedia.org/wiki/Macchina_virtuale_Java
 
 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.
 
-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:
+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::
 
-|     ================================
-|     |  Software applicativo Java   |
-|     ===============================
-|       |  Java Virtual Machine    |
-|        ========================== 
-|         |   Sistema Operativo  |
-|          ======================
+     ================================
+     |  Software applicativo Java   |
+     ===============================
+       |  Java Virtual Machine    |
+        ========================== 
+         |   Sistema Operativo  |
+          ======================
 
 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.