<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Gulli - Nozioni Basiche su Linux - 01</title>
        <meta http-equiv="Content-Language" content="it">
        <meta http-equiv="Content-Type" content="text/html; CHARSET=UTF-8">
        <meta name="Subject" content="Nozioni Basiche su Linux">
        <meta name="Summary" content="appunti dell'incontro sulle nozioni basiche di Linux">
        <meta name="keywords" content="">
        <meta name="author" content="roatta">
        <meta name="date" content="08 OCT 2005">
        <meta name="modified" content="08 OCT 2005">
</head>
<body marginheight="20" marginwidth="20" style="text-align: justify; font-family: verdana, sans-serif;
    font-size: 14px;">
<hr>
<table bgcolor="#cccccc" width="100%">
  <tbody>
    <tr>
      <td>&nbsp;<a href="../index.html">indice principale</a></td>
      <td style="text-align: right;"><a href="./index.html">indice locale</a>&nbsp;</td>
    </tr>
  </tbody>
</table>
<hr>




<p>
</p><h3>Nozioni Basiche su Linux</h3>
<font color="red">
<h2>Parte Prima: orientamento sul Desktop</h2>
</font>
<hr>





<p>
<b>Premessa: </b>Sono di seguito presentate le nozioni affrontate nel corso del primo incontro per neofiti Linux, tenuto dal Gulli nella serata del Gioved&igrave; 6 Ottobre 2005.
<br>
L'elenco degli argomenti trattati è il seguente: 
<p><ol>


<p><li><b>
Il PC: un approccio a strati
</b><p>

Il calcolatore dove operiamo &egrave; caratterizzato da una <u>architettura</u> particolare, a seconda del processore intorno al quale &egrave; costruito: si avranno cos&igrave; sistemi x86 (tipo i tradizionali PC), PowerPC (come gli ultimi Apple), ARM (tipico dei <a href="#PDA">PDA</a>), etc.
<br>
Altre caratteristiche hardware sono, ad esempio, tutte le periferiche che permettono la gestione dei dati: scheda grafica, seriali, etc.
<br>
Sarebbe impossibile, per chi produce programmi applicativi (es: un browser web, come Mozilla), personalizzare il prodotto per ogni modello possibile di computer; molto meglio costruire un applicativo unico, che riesca ad inviare ordini standard ed a ricevere informazioni standard, appoggiandosi su una interfaccia "universale", a prescindere dall'hardware che &egrave; disponibile sulla macchina.
<br>
Tale interfaccia &egrave; il <u>sistema operativo</u>
<center><table border=1 width=200>
  <tr bgcolor="green"><td align=center>pacchetto<br>applicativo<br>1</td>
  <td bgcolor="yellow" align=center>pacchetto<br>applicativo<br>2</td>
  <td bgcolor="white" align=center>pacchetto<br>applicativo<br>3</td></tr>
  <tr bgcolor="red"><td colspan=3 align=center>&nbsp; sistema operativo &nbsp;</td></tr>
  <tr bgcolor="blue"><td colspan=3 align=center>&nbsp; hardware &nbsp;</td></tr>
  <caption><i>modello a strati del calcolatore</i><p></caption>
</table></center>

<p>
Il singolo pacchetto applicativo sar&agrave; quindi funzionante perch&egrave; il sistema operativo a cui si rivolge si prender&agrave; cura di fornirgli l'ambiente di lavoro atteso. Se il pacchetto viene per&ograve; spostato su un altro sistema operativo, a meno di trucchi tecnici particolari (tipo: emulazioni), il funzionamento non &egrave; pi&ugrave; garantito. Si veda, ad esempio, il problema di migrare sotto Linux delle <u>applicazioni</u> costruite invece per altre piattaforme commerciali (cfr. Photoshop). Meglio disporre allora di programmi che siano forniti in diverse versioni, per i diversi sistemi operativi (cfr. Mozilla, OpenOffice.org, Gimp, etc.).
<br>
Diverso invece il caso dei <u>dati</u>: sono indipendenti dal sistema operativo, perch&egrave; vengono elaborati dagli applicativi, direttamente. Possono quindi essere anche portati con successo su differenti piattaforme, e se la loro codifica (<u>formato</u>) &egrave; conosciuta, possono anche essere compresi e modificati da altri applicativi, oltre quelli originari. E' il caso, ad esempio, del formato XML aperto, che si sta imponendo nei documenti: lo useranno la suite d'ufficio OpenOffice.org, Kword, Wordperfect ed altri.


<p><li><b>
L'Hard Disk ed il suo <i>affettamento</i>
</b><p>

Se intendiamo sistemare più sistemi operativi su un hard disk, sar&agrave; normalmente necessario separarli in diversi aree separate del disco, perch&egrave; non &egrave; facile la "coabitazione". Tali aree si chiamano <u>partizioni</u> e, agli albori dell'era del PC, potevano essere <i>al massimo quattro</i> su uno stesso disco (partizioni <u>primarie</u>).
<br>
Con il progredire della tecnica, gli hard disk passano dai pochi megabyte alle centinaia di gigabyte di oggi (un fattore 100'000 in vent'anni!). L'esigenza di disporre di pi&ugrave; partizioni, mantenendo comunque l'impostazione originaria per non perdere la compatibilit&agrave; hardware tra le macchine, ha comportato la definizioni di "sottopartizioni" (dette <u>logiche</u>) all'interno di una "partizione primaria madre" (chiamata <u>estesa</u>).

<p>
In sintesi, ora si pu&ograve; definire, sull'hard disk:
<ul>
  <li>fino ad un massimo di quattro partizioni vere e proprie (primarie)
  <li>se servono altre partizioni, una delle primarie pu&ograve; essere sottopartizionata (estesa)
  <li>le successive sottopartizioni (logiche) vengono poste all'interno dell'estesa
</ul>

<p>
Per studiare la tabella di partizioni di un hard disk dovremo utilizzare dei "comandi riservati" che il normale utente non pu&ograve; impiegare, dei comandi che sono a disposizione del solo amministratore (<tt>root</tt>). Sar&agrave; quindi utile assumere l'identità dell'utente root, digitando su <a href="#consolle">consolle</a> il comando <u>su</u> e fornendo, appena richiesta, la password dell'amministratore. Con la nuova identit&agrave;, appena acquisita, potremo allora sfruttare completamente il comando <b>fdisk</b>.
<br>
Proviamo da una <u>consolle</u> a richiedere il comando, specificando come argomento il <i>device</i> (periferica) a cui applicarlo:

<p><center>
<table bgcolor=gray border=1 cellspacing=0 cellpadding=10>
<td>
        <font color=white>root@localhost # </font>fdisk /dev/hda
        <br>
        <font color=white>root@localhost # 
<pre>
Disk /dev/hda: 40.0 GB, 40007761920 bytes
240 heads, 63 sectors/track, 5168 cylinders
Units = cilindri of 15120 * 512 = 7741440 bytes

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1248     9434848+   7  HPFS/NTFS
/dev/hda2            4552        5168     4664520   12  Diagnostica Compaq
/dev/hda3            1249        1329      612360   82  Linux swap / Solaris
/dev/hda4            1330        4551    24358320    f  W95 Ext'd (LBA)
/dev/hda5            1330        1349      151168+  83  Linux
/dev/hda6            1350        2125     5866528+  83  Linux
/dev/hda7            2126        2384     1958008+  83  Linux
/dev/hda8            2385        2966     4399888+  83  Linux
/dev/hda9            2967        3032      498928+  83  Linux
/dev/hda10           3033        3614     4399888+  83  Linux
/dev/hda11           3615        3680      498928+   c  W95 FAT32 (LBA)
/dev/hda12           3681        4551     6584728+  83  Linux
</pre>

</td>
</table></center>

<p>
Noteremo le seguenti particolarit&agrave;:
<ul>
<li>nella prima colonna: il <u>device</u> (periferica), rappresentata da una partizione;
<li>nella colonna <tt>Start</tt> e <tt>End</tt> i cilindi che limitano ciascuna partizione;
<li>nella colonna <tt>Blocks</tt> la dimensione di ogni partizioni, espressa in KB;
<li>nella colonna <tt>System</tt>, il <a href="#filesystem">file system</a> impiegato.
</ul>

<p>
Si noti come, in particolare, la partizione estesa sia la <tt>/dev/hda4</tt>; lo si verifica anche dagli estremi Start-End, che comprendono tutte le partizioni logiche successive. Su Linux, le partizioni primarie sono caratterizzate da un numero inferiore a 5; le partizioni logiche, da un numero maggiore di 4.

<p>
Come ultima osservazione sulle partizioni, si rimarca come gli hard disk EIDE (quelli comuni sui PC) siano caratterizzati dalla sigla <tt>hd</tt>, seguita quindi da una lettera che indica il particolare HD, ed un numero crescente che identifica, sul particolare HD Eide, la partizione: <tt>dev/hda4</tt> &egrave; quindi la 4^ partizione sul primo hard disk eide.
<br>
In modo analogo, un dispositivo SCSI avrebbe avuto, come prime due lettere, un <tt>sc</tt>; la periferica <tt>/dev/scb3</tt> &egrave; la partizione nr. 3 del secondo dispositivo scsi.



<p><li><b>
L'Albero delle Directory
</b><p>

Dopo aver esaminato la parte hardware, passiamo all'organizzazione logica dei file nel nostro sistema Linux. Ponendoci sulla <u>directory radice</u> (rappresentata con "/"), verifichiamo alcune delle pi&ugrave; importanti directory di primo livello:

<center><table border=1>
        <tr><th valign=top rowspan=12> / </th><td colspan=2>&nbsp;</td></tr>
        <tr><th> /bin </th><td>file eseguibili (<i>BINaries</i>) </td></tr>
        <tr><th> /boot </th><td> zona con i kernel per il boot</td></tr>
        <tr><th> /dev </th><td> driver per le periferiche (<i>DEVice drivers</i> =  periferica) </td></tr>
        <tr><th> /etc </th><td> file di configurazione </td></tr>
        <tr><th> /home </th><td> area degli utenti, con i loro dati (<i>HOME</i>) </td></tr>
        <tr><th> /mnt </th><td> area per il "montaggio" di periferiche (<i>MouNTing area</i>) </td></tr>
        <tr><th> /opt </th><td> programmi applicativi, extra s.o. (<i>OPTional programs</i>) </td></tr>
        <tr><th> /sbin </th><td> file eseguibili da root (<i>Superuser BINaries</i>) </td></tr>
        <tr><th> /tmp </th><td> file temporanei (<i>TeMPorary</i>) </td></tr>
        <tr><th> /usr </th><td> programmi applicativi, extra s.o. (<i>USeR programs</i>) </td></tr>
        <tr><th> /var </th><td> file di sistema con contenuto variabile, quali i log (<i>VARiable</i>) </td></tr>


</table></center>

<p>
Il normale utente <tt>pippo</tt> sar&agrave; vincolato a mantenere i propri dati nella propria directory posta a sua volta all'interno di <tt>home</tt>, tipicamente nella cartella <tt>/home/pippo</tt>.


<p><li><b>
Associazione tra Periferiche hw e Directory sw
</b><p>

Ci sono periferiche che devono essere "aggregate" in modo dinamico all'albero delle directory, affinchè il loro contenuto venga reso disponibile in una cartella. Si pensi, ad esempio, ad una chiavetta USB che, inserita nel PC, deve offrire il proprio contenuto, fintantoch&egrave; non venga riestratta.
<br>
Tale operazione di aggregamento si chiama <u>montaggio</u>, ed &egrave; effettuata con il comando <b><tt>mount</tt></b> (cos&igrave; come, lo smontaggio, sfrutta <tt>umount</tt>).
<br>
Nel comando <tt>mount</tt> occorrer&agrave; specificare due argomenti: la periferica hardware, ed il punto dell'albero in cui esibirne il contenuto (<i>mounting point</i>). Per un Floppy, il cui <tt>device driver</tt> &egrave; <tt>/dev/fd0</tt>, possiamo ad esempio scegliere il montaggio sotto la directory <tt>/media/floppy</tt>; daremo allora il comando:
<pre>
                              <b>mount -v -o ro /dev/fd0 /media/floppy</b>
</pre>
Dove, prima dei due argomenti citati, avremo sistemato le opzioni che, in Linux, si contraddistinguono con il <u>tek</u> (quando espresse sinteticamente) od il doppio-tek (quando espresse con parole estese). 
<br>
L'opzione "-v" indica che si desidera avere un feedback <i>verbousely</i>, ovvero prolisso, mentre l'opzione "-o" specifica dettagli facoltativi, come nel nostro caso la sola lettura (<tt>ro</tt> significa <i>read-only</i>).

<p>
Prima di disinserire il floppy, dovremo smontarlo con il comando <tt>umount</tt> che, dovendo sciogliere un'aggregazione tra un <i>device driver</i> ed un <i>mounting point</i>, potr&agrave; ricevere uno solo dei due parametri, indifferentemente, non avendo ambiguit&agrave;.



</ol>








<hr><p>

<p><center>
<table width=80% cellpadding=8 cellspacing=0 valign=top border=1>
<caption><b>Glossario</b></caption>
  <tr><th>nome</th><th>sigla</th><th>significato</th></tr>

  <tr>
    <td><a name="s.o.">sistema operativo</a></td>
    <td>s.o.</td>
    <td>strato software che, posto tra hardware e programmi applicativi, consente di presentare verso questi un'interfaccia standard, a prescindere dalla particolare struttura fisica della macchina</td>
  </tr>

  <tr>
    <td><a name="PDA">Portable Digital Assistant</a></td>
    <td>PDA</td>
    <td>computerino tascabile, tipicamente provvisto di grande schermo e "matita" per inserire i dati scrivendoci. Cfr i Palm</td>
  <tr>

  <tr>
    <td><a name="consolle">consolle</a></td>
    <td>&nbsp;</td>
    <td>chiamata anche <i>shell</i>, &egrave; la "linea di comando" sulla quale digitare da tastiera i comandi linux. Sotto KDE, si pu&ograve; richiamare dal men&ugrave; o, tramite ALT-F2, con il comando <tt>konsole</tt></td>
  <tr>

  <tr>
    <td><a name="KDE">Desktop Environment</a></td>
    <td>&nbsp;</td>
    <td>L'<i>Ambiente Desktop</i> &egrave; lo "strato grafico" che viene offerto all'utente che, tra icone e men&ugrave; trova un ambiente di lavoro pi&ugrave; intuitivo della potente <a href="#consolle">consolle</a>. Tra gli A.D., importante in Europa &egrave; KDE, mentre Gnome &egrave; pi&ugrave; diffuso negli SUA</td>
  <tr>

  <tr>
    <td><a name="filesystem">File System</a></td>
    <td>&nbsp;</td>
    <td>metodo di organizzazione dello spazio di una memoria di massa (es: partizione HD), dove si costruisce una struttura per accogliere i file in modo ordinato e reperibile; un Floppy di 2MB di spazio grezzo, formattato con il File System del DOS, manterr&agrave; 1.4 MB di spazio libero, a fronte di 600 KB impiegati per "strutturarlo"</td>
  <tr>

<!--
  <tr>
    <td><a name=""></a></td>
    <td></td>
    <td></td>
  <tr>
-->

</table></center>



<p>



<hr>
<table bgcolor="#cccccc" width="100%">
  <tbody>
    <tr>
      <td>&nbsp;<a href="../index.html">indice principale</a></td>
      <td style="text-align: right;"><a href="./index.html">indice locale</a>&nbsp;</td>
    </tr>
  </tbody>
</table>
<hr>
</body></html>