giovedì 10 marzo 2011

Installazione di un sistema Linux

LE PARTIZIONI

Un singolo hard disk può essere diviso in diverse partizioni, ciascuna delle quali funziona come se fosse un disco separato. L'idea è che se avete un hard disk e ad esempio volete avere due sistemi operativi, potete suddividere il disco in due partizioni; ciascun sistema operativo userà la sua partizione come vuole e non toccherà quella dell'altro. In questo modo i due sistemi possono coesistere in pace sullo stesso hard disk, mentre senza le partizioni ci sarebbe voluto un disco per ciascun sistema operativo.

Partizioni primarie ed estese :


Un disco fisso può avere un massimo di quattro partizioni primarie, numerate da uno a quattro e precedute dal nome del disco cui appartengono. Per esempio, su un disco fisso PATA riconosciuto come sda possono essere presenti le partizioni primarie sda1, sda2, sda3, sda4. All'interno di un disco, le partizioni primarie vengono descritte nell'MBR, cioè i primi 512Byte del disco. Una delle quattro partizioni primarie disponibili su un disco può essere usata come partizione estesa, non adatta a contenere file ma che contiene piuttosto le cosiddette partizioni logiche.

Partizioni logiche:
Le partizioni logiche vengono usate come le partizioni primarie, dalle quali differiscono per il fatto che sono contenute tutte dentro una partizione primaria estesa e le loro descrizioni non si trovano nell'MBR. Le partizioni logiche vengono sempre numerate da 5 in su.

Linux gia dall'installazione ci permette di personalizzare, possiamo far fare tutto in automatico oppure in manuale decidendo la struttura del disco: una struttura comune nell'installazione è una partizione (primaria) di swap, una (primaria) per la home e una (primaria) per la root.
Il ridimensionamento del disco per il partizionamento è soggettivo e varia in funzione dell'Hardware e dell'utilizzo:
- lo spazio di swap è il supporto alla memoria RAM dove la regola empirica richiede il doppio della memoria installata fino ad un massimo di 2 GB.
- Lo spazio per la root o directory del filesystem1 è consigliabile non sia inferiore di 5 GB.
- Per la home dove depositiamo i file e le personalizzazioni concediamo a nostra discrezione lo spazio che vogliamo, spazio minimo consigliato 1 GB.
- Nel caso volessimo condividere una parte del disco tra Linux e Windows allora partizioneremo quella parte in FAT32

1IL FILESYSTEM

In informatica, un file system è, informalmente, un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un disco rigido o un CD-ROM.
Esempi di file system:
  • Ext - Extended file system, il primo file system appositamente progettato per GNU/Linux
  • Ext2 - Extended File System 2, diffuso su sistemi GNU/Linux
  • Ext3 - Extended File System 3, diffuso su sistemi GNU/Linux (ext2+journaling)
  • Ext4 - Extended File System 4, rilasciato come stabile dal kernel Linux 2.6.28 (già presente dalla versione 2.6.19 come ext4dev)
  • FAT - Usato su DOS, Microsoft Windows e su molti dispositivi dedicati, dispone di tabelle a 12 e 16 bit
  • FAT32 - versione con tabelle a 32 bit di FAT
  • NTFS - NT File System. Usato su sistemi basati su Windows NT
  • ISO 9660 - Usato su dischi CD-ROM e DVD-ROM
In GNU/Linux, come in tutti i sistemi operativi Unix-like, il filesystem è strutturato in maniera gerarchica ad albero, in cui ogni nodo può essere una directory o un file. Una directory è un contenitore che può contenere file e directory. Un file è l’unità (logica) per la memorizzazione di un insieme di informazioni. La relazione tra i nodi è quella di discendenza: un nodo è in relazione con un altro detto padre se esso è un discendente diretto o figlio (ogni nodo figlio ha un unico padre).
I file system possono essere rappresentati sia testualmente che graficamente tramite browser di file e shell. Nella rappresentazione grafica (GUI) è generalmente utilizzata la metafora delle cartelle che contengono documenti (i file) ed altre cartelle.





Struttura tipica del filesystem di un sistema GNU/Linux.


In generale un sistema GNU/Linux ha l’albero delle directory riportato nella figura con le caratteristiche seguenti:
  • /bin contiene dei file eseguibili necessari per l’utilizzo del sistema ed usufruibili da tutti gli utenti (ls, cp, mv, rm, ...) - Informazioni statiche, non condivisibili;
  • /boot contiene i file necessari all’avvio del sistema (procedura di boot), come il boot loader ed il kernel - Informazioni statiche, non condivisibili;
  • /dev contiene i file relativi ai dispositivi (devices), a partire dalle partizioni degli hard disk (/dev/hda1, /dev/hda2, ..., /dev/sda1, /dev/sda2, ...), ai CD ROM (/dev/cdrom), ai floppy disk (/dev/fd0), alla scheda audio (/dev/dsp), alle porte seriali (/dev/ttyS0 e /dev/ttyS1) - Informazioni statiche, non condivisibili;
  • /etc contiene i file relativi alla configurazione del sistema e dei programmi, che generalmente hanno estensione conf o cfg. All’interno di questa directory si trovano, tra le altre, la directory X11, contenente i file di configurazione del server grafico , e la directory rc.d, che contiene i file per l’avvio del sistema - Informazioni statiche, non condivisibili;
  • /home contiene i file relativi agli utenti. Ad ogni utente è assegnata una home directory, che in genere è una directory che ha lo stesso nome dello username dell’utente, che si trova all’interno della directory /home. Alla home directory può essere fatto riferimento con il simbolo ‘~’.Per esempio l’utente con username pippo avrà come home directory /home/pippo e per tale utente, la directory ‘~’ rappresenta appunto la directory /home/pippo. Tale directory sarà utilizzata per salvare i file di configurazione a livello utente di vari applicativi - Informazioni variabili, condivisibili;
  • /lib contiene le librerie (library) di sistema utilizzate per il funzionamento delle applicazioni e i moduli utilizzati dal kernel (/lib/modules) - Informazioni statiche, non condivisibili;
  • /lost+found contiene gli eventuali file “corrotti” (danneggiati) trovati dopo un riavvio successivo ad un arresto non “adeguato” del sistema - Informazioni variabili, non condivisibili;
  • /mnt è utilizzata come directory contenente i mount point delle periferiche che contegono dei filesystem (partizione di hard disk, floppy disk, CD, ...): es. /mnt/floppy è generalmente il nome della directory che funge da mount point per il floppy disk, /mnt/cdrom quella che funge da mount point per il CD, ... - Informazioni variabili, non condivisibili;
  • /opt contiene i file di applicazioni non fornite dal sistema. È un retaggio dei primi Unix e si tende a non utilizzarla;
  • /proc è un filesystem virtuale che contiene informazioni relative ai processi in esecuzione sul sistema (non utilizza spazio fisico su disco);
  • /root è la home directory dell’utente superuser che rappresenta l’amministratore del sistema (tale utente è di solito identificato dallo username root) - Informazioni variabili, non condivisibili.
  • /sbin contiene dei file eseguibili necessari al funzionamento del sistema utilizzabili soltanto dall’utente superuser - Informazioni statiche, non condivisibili;
  • /tmp contiene file temporanei che possono essere creati da alcuni processi. In alcuni sistemi il conenuto di tale directory può essere cancellato automaticamente allo spegnimento o all’avvio del sistema - Informazioni variabili, non condivisibili;
  • /usr contiene i file relativi alle applicazioni installate nel sistema. Al suo interno sono contenute varie directory tra cui bin e sbin, contenenti i comandi non essenziali del sistema, X11R6, che contiene i programmi per il funzionamento dell’interfaccia grafica del sistema, share, in cui dovrebbero essere riposti i file contenenti i dati (indipendenti dall’architettura) relativi ai programmi presenti in /usr/bin e /usr/sbin, nonché i file relativi alla documentazione contenuti in /usr/share/doc e /usr/share/man - Informazioni statiche, condivisibili;
  • /var contiene file di sistema che variano con frequenza elevata (i log di sistema /var/log, le caselle di posta elettronica /var/spool/mail, i file di stampa temporanei /var/spool/lpd, la http root directory /var/www/html, ...) - Informazioni variabili condivisibili o meno (dipendentemente dalle sottodirectory).

I PACCHETTI

Quando si parla di pacchetti si intende un archivio di file contenente del software (compilato o in forma di sorgenti2), pronto per essere installato sulla macchina in maniera, solitamente, quasi del tutto automatica. Se di base all'interno di un pacchetto la parte predominante sia l'archivio contenente i file necessari al programma, non si può dire che sia tutto qui! Un pacchetto contiene molte informazioni in più del semplice archivio: ad esempio, è presente in ogni pacchetto la descrizione del programma, la lista delle dipendenze3 che devono essere soddisfatte per la corretta installazione del software, le directory nelle quali devono essere copiati i file del programma e via dicendo.
Un pacchetto, quindi, può essere visto come un archivio (contenente il software) accompagnato da una serie di informazioni per l'installazione (ma non solo: anche per la rimozione, per l'interrogazione ecc) del software stesso.
Le installazioni di software deve essere sempre effettuata dal superuser o comunque da un utente che ha i diritti di amministrazione del sistema, poiché in fase di installazione è necessario avere i diritti di scrivere ovunque nel filesystem.
Il metodo predefinito per l'installazione dei programmi nelle distro più “popolari”è svolto attraverso l'utilizzo dei gestori di pacchetti: RPM, Synaptic, Ubuntu Software Centre... ecc. Comunque, benché gli archivi dei pacchetti siano molto grandi, può essere necessario installare un pacchetto non disponibile negli archivi. Se ciò fosse necessario, è possibile scaricare e installare file da internet.
2Il sorgente è il testo di un programma, scritto in linguaggio di programmazione. Il sorgente deve essere opportunamente elaborato per arrivare a un programma eseguibile; esso si pone quindi come punto di partenza ("sorgente") del processo che porta all'esecuzione del programma.
3 Con dipendenza si intende il grado con cui ciascuna componente di un programma fa affidamento ad un'altra; un basso grado di dipendenza è spesso sinonimo di un pacchetto ben strutturato e ben progettato.

UTENTI: USER E SUPERUSER

In ambienti Unix e quindi anche su Linux esistono differenze fra i vari utenti, definite dai permessi e dall'acceso ai file e comandi che un'utente può lanciare.
E' convenzione che i semplici utenti possono scrivere, leggere e modificare file solo all'interno del loro ambiente (home) e lanciare semplici comandi che non influiscono sulla configurazione del sistema.
Per poter accedere completamente alle risorse del sistema bisogna accedere al sistema come superuser ovvero impersonificando l'utente root.
In fase di installazione di una macchina Linux si consiglia di scegliere una password di root piuttosto complicata (ma ricordabile!) e di creare immediatamente un normale utente con il quale eseguire le proprie funzioni più comuni.
L'utente root può fare tutto ciò che si desidera sul sistema: questo può essere sia un vantaggio che uno svantaggio nello stesso momento, poiché viene universalmente ritenuto pericoloso compiere le normali sessioni di lavoro in qualità di root. Infatti un programma lanciato in esecuzione da root ha potenzialmente la possibilità di effettuare qualunque operazione sulla macchina sulla quale viene eseguito. Se lo stesso programma viene lanciato in esecuzione da un utente con privilegi non amministrativi, non potrà effettuare operazioni pericolose come cancellare file essenziali per il sistema operativo.
L'utente root ha poteri assoluti sul sistema:
- Aggiungere, Eliminare e modificare account (altri utenti)
- Installare e configurare servizi
- Accesso completo (lettura e scrittura) di tutti i file presenti nel filesystem
- Aggiungere e Modificare il Filesystem
- Distruggere tutto con un solo comando (e tante altre brutte cose, il potere di root sul sistema è assoluto

CENNI DI CONFIGURAZIONE DI RETE

Generalmente viene riconosciuta la configurazione in automatico, chiedendo solo la chiave WEP (se usata) in fase di connessione wireless, se così non fosse e il computer ha una connessione permanente alla rete (cioè una connessione Ethernet ) si devono conoscere o chiedere all'amministratore di sistema le seguenti informazioni:
  • Il proprio hostname (forse lo si può decidere da soli).
  • Il proprio nome di dominio.
  • L'indirizzo IP dell'elaboratore.
  • La netmask da usare con la propria rete.
  • L'indirizzo IP del gateway su cui effettuare l'instradamento predefinito, se la propria rete ne ha uno.
  • Il sistema della propria rete da usare come server DNS (Domain Name Service).
D'altra parte se il proprio amministratore comunica che è possibile usare un server DHCP le informazioni precedenti sono inutili poiché il server DHCP le fornisce direttamente al proprio computer durante il processo d'installazione.
Se si usa una rete wireless si deve anche conoscere:
  • L'ESSID della propria rete wireless.
  • La chiave WEP (se usata).

PRIMO IMPATTO CON IL DESKTOP

Il Desktop Environment (termine mutuato dall'inglese che tradotto letteralmente significa "ambiente della scrivania"), anche chiamato ambiente desktop o semplicemente desktop o scrivania, è l'interfaccia grafica che permette di usare un computer tramite l'interazione con oggetti grafici come le icone e le finestre. Nei sistemi basati sull'X Window System (sono solitamente sistemi unix), il DE consiste di un window manager, di alcune skin personalizzabili, di programmi e librerie che gestiscono il desktop. Tutti questi moduli tendono ad essere intercambiabili, modificabili e configurabili individualmente, al fine di ottenere una combinazione unica.
Esempi di ambienti desktop tra i più diffusi, tipici di sistemi unix:
  • GNOME
  • KDE
  • Xfce
  • LXDE

GNOME (GNU Network Object Model Environment) è un desktop environment creato inizialmente da nell'agosto del 1997, con l'obiettivo di fornire un ambiente di sviluppo e desktop libero per il sistema operativo GNU/Linux. Grazie a questo e ai risultati raggiunti, è presto stato riconosciuto come il desktop environment ufficiale del progetto GNU.
Requisiti minimi consigliati:
  • Processore 700 MHz x86;
  • 384 MiB di RAM;
  • 8 GiB di spazio libero su disco;
  • scheda grafica con una risoluzione minima pari a 1024x768;
  • scheda audio;
  • connessione Internet.
KDE (al contrario di GNOME) viene concepito come un Desktop Environment orientato prevalentemente agli utenti medio-avanzati, per via della vasta configurabilità dell'ambiente e dei suoi programmi. Tuttavia, grazie alla sua sostanziale facilità d'uso e alla sua ottima usabilità, questo ambiente viene installato di default da numerose distribuzioni Linux, soprattutto da quelle orientate all'utenza desktop, come ad esempio Mandriva, SUSE o Kubuntu.
Requisiti minimi consigliati:
  • Processore 1 GHz x86
  • 1 GiB di RAM
  • 15 GiB di spazio libero su disco
  • Scheda grafica con risoluzione minima pari a 1024x768
Xfce è un ambiente desktop per vari sistemi Unix-like (come GNU/Linux o FreeBSD) che richiede meno risorse dei più blasonati GNOME e KDE, risultando così un ottimo compromesso tra leggerezza e funzionalità.
Requisiti minimi consigliati:
  • Processore 300 MHz
  • 256 MiB di RAM
  • 8 GiB di spazio libero su disco
  • Scheda grafica con risoluzione minima pari a 800x600
LXDE (Lightweight X11 Desktop Environment) è un ambiente desktop libero per il sistema operativo GNU/Linux, creato con l'obiettivo di essere estremamente leggero e reattivo (anche su macchine obsolete) seppure completo e funzionale.
Requisiti minimi consigliati:
  • Processore PII 266 MHz
  • 192 MiB di RAM
  • 8 GiB di spazio libero su disco
  • Scheda grafica con risoluzione minima pari a 800x600

1 commento:

  1. Articolo molto utile. Attualmente sto frequentando tutti su Linux convertire e devo fare affidamento su tali informazioni. La ringrazio per questo.

    RispondiElimina