Sistema Unix-Like, scritto da Linus Benedict Torvalds, studente al secondo anno di informatica all università di Helsinki.



Documenti analoghi
Organizzazione di Sistemi Operativi e Reti

Terza lezione: Directory e File system di Linux

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Installazione LINUX 10.0

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sequenza di avvio di Linux:

Il Sistema Operativo (1)

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Il Software. Il software del PC. Il BIOS

Il web server Apache Lezione n. 3. Introduzione

Il sistema operativo: interazione con l utente

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

Procedura di installazione di Xubuntu 8.10 su un PC

Uso del Computer e Gestione dei File. Uso del Computer e Gestione dei File. Federica Ricca

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Il Sistema Operativo Linux

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Corso di Alfabetizzazione Informatica

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Corso base GNU/Linux Latina Linux Group. Sito web: Mailing list:

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

CdL in Medicina Veterinaria - STPA AA

MODULO 02. Iniziamo a usare il computer

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Benvenuti/e.

LaCie Ethernet Disk mini Domande frequenti (FAQ)

Corso ForTIC C2 LEZIONE n. 3

HORIZON SQL MENU' FILE

Corso di Informatica

IRSplit. Istruzioni d uso 07/10-01 PC

Manuale di programmazione BerMar_Drive_Software

Il software del PC. Il BIOS

Utilizzo Base del Sistema Operativo Ubuntu GNU/Linux

Prima Esercitazione. Unix e GNU/Linux. GNU/Linux e linguaggio C. Stefano Monti smonti@deis.unibo.it

GUIDA UTENTE PRIMA NOTA SEMPLICE

Sistemi operativi. Esempi di sistemi operativi

Manuale NetSupport v Liceo G. Cotta Marco Bolzon

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Virtualizzazione VirtualBox su Host Windows

Schema Tipologia a Stella

Il computer: primi elementi

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

MANUALE UTENTE Fiscali Free

Impostare il browser per navigare in sicurezza Opzioni di protezione

MANUALE PARCELLA FACILE PLUS INDICE

Crotone, maggio Windows. Ing. Luigi Labonia

Database 1 biblioteca universitaria. Testo del quesito

Procedure di ripristino del sistema.

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

FPf per Windows 3.1. Guida all uso

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Laboratorio di Informatica

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Acronis License Server. Manuale utente

PORTALE CLIENTI Manuale utente

FRANCESCO MARINO - TELECOMUNICAZIONI

1. opzione 1, ubuntu accanto a windows

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA

Manuale di KSystemLog. Nicolas Ternisien

On-line Corsi d Informatica sul web

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Ca ra tteristiche dei sistem i GN U/L inux. Struttura di un sistema GNU/Linux Il filesystem La shell

Corso base GNU/Linux Latina Linux Group. Sito web: Mailing list:

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

MANUALE UTENTE. Computer Palmare WORKABOUT PRO

Procedure di ripristino del sistema.

MANUALE EDICOLA 04.05

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Breve guida a Linux Mint

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Le Proprietà della Barra delle applicazioni e Menu Start di Giovanni DI CECCA -

NOZIONI BASE PER ESERCITAZIONI

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Laboratorio di Programmazione

Il Web Server e il protocollo HTTP

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

Procedure di ripristino del sistema.

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Struttura del sistema operativo GNU/Linux

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

Puppy Linux (Precise) Live da CD o da USB (Si può usare su PC con 256 MB di RAM)

Applicazioni di Ubuntu

progecad NLM Guida all uso Rel. 10.2

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Esercitazione su Windows. Introduzione al calcolatore Introduzione a Windows

GateManager. 1 Indice. tecnico@gate-manager.it

Creazione e installazione di un NAS utilizzando FreeNAS

System Center Virtual Machine Manager Library Management

Corsi di Formazione "Open Source & Scuola" Provincia di Pescara gennaio 2005 aprile 2005

Apache 2, PHP5, MySQL 5

GUIDA UTENTE WEB PROFILES

UTILIZZO DEL SOFTWARE MONITOR

Guida all uso di base di Izarc

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Transcript:

LA STORIA DI LINUX IL SISTEMA OPERATIVO GNU / LINUX Sistema Unix-Like, scritto da Linus Benedict Torvalds, studente al secondo anno di informatica all università di Helsinki. Nasce come evoluzione di Minix, creato dal professore olandese Andrew S. Tanenbaum, primo sistema di cui era disponibile il codice sorgente a pagamento per scopi didattici. Il 25 agosto 1991 Torvalds annuncia sul newsgroup com.os.minix di aver iniziato a lavorare ad un nuovo sistema operativo per 386/486, in quanto scontento delle prestazioni di Minix. LA STORIA DI LINUX GNU/ GPL Il 17 settembre 1991 esce la versione 0.01 di Linux. La disponibilità gratuita dei sorgenti viene vista di buon occhio dagli appassionati e programmatori, che contribuiscono allo sviluppo del sistema. 16 gennaio 1992: Linux viene rilasciato per la prima volta sotto licenza GNU GPL (General Public License) 14 Marzo 1994: esce la versione 1.0 di Linux. La licenza GNU GPL è stata scritta da Richard Stallman e Eben Moglen nel 1989, per distribuire i programmi creati dal Progetto GNU. Essa va a contrapporsi alle licenze per software proprietario (leggi sul copyright). La GNU GPL permette all'utente libertà di utilizzo, copia, modifica e distribuzione del software al quale viene allegata. La licenza GNU/GPL sancisce che coloro che accettano le sue condizioni hanno la possibilità di modificare il software, di copiarlo e ridistribuirlo con o senza modifiche, sia gratuitamente sia a pagamento. Se l'utente distribuisce copie del software, deve rendere disponibile il codice sorgente a ogni acquirente, incluse tutte le modifiche eventualmente effettuate (questa caratteristica è detta copyleft). GNU/ GPL L OPEN SOURCE È possibile creare versioni private di un software sotto GNU GPL, a patto che tale versione non venga distribuita a qualun'altro. Questo accade quando l'utente crea delle modifiche private al software ma non lo distribuisce: in questo caso non è tenuto a rendere pubbliche le modifiche. Dato che il software è protetto da copyright, l'utente non ha altro diritto di modifica o ridistribuzione al di fuori dalle condizioni di copyleft. In ogni caso, l'utente deve accettare i termini della GNU GPL solo se desidera esercitare diritti come la ridistribuzione (normalmente non contemplati dalla legge sul copyright ). Se qualcuno distribuisce un software (in particolare, versioni m odificate) senza rendere disponibile il codice sorgente o violando in altro modo la licenza, può essere denunciato dall'autore originale secondo le stesse leggi sul copyright. Il testo ufficiale della licenza è disponibile all'url http://www.gnu.org/licenses/gpl.html, mentre all'url http://www.softwarelibero.it/gnudoc /gpl.it.txt è disponibile la traduzione non ufficiale in italiano. Il termine "open source" venne coniato agli inizi del 1998 da Bruce Perens, Linus Torvald e altri sviluppatori della comunità FreeSoftware. L'obiettivo principale era quello di rendere l'idea del software libero più accettabile dall'ambiente commerciale, rispetto alla GNU GPL di Stallman. La licenza open source permette a chiunque di mettere mano al codice sorgente e contemporaneamente permette a chiunque di ridistribuirlo, il tutto senza che alcuno possa pretendere anche il minimo compenso, però senza impedire di chiedere un compenso a chi è disposto a pagarlo.

L OPEN SOURCE LE DISTRIBUZIONI Ridistribuzione libera. Chiunque deve poter fare tutte le copie del software che vuole, venderle o cederle, e non deve pagare nessuno per pot er fare ciò. Codice sorgente. Il programma deve includere il codice sorgente. Questo in quanto il codice sorgente è necessario per modificare o riparare un programma. Integrità del codice sorgente dell'autore. La licenza può proibire che il codice sorgente originale venga modificato e distribuito solo se l autore promette la distribuzione di "patch file (di toppe) con il codice sorgente allo scopo di modificare il programma nel momento in cui vengano trovati bug. Nessuna discriminazione contro persone o gruppi.la licenza deve essere applicabile per tutti, senza alcuna discriminazione. Ad e sempio non si può negare la licenza d'uso neanche a forze di polizia di regimi dit tatoriali. Nessuna discriminazione di settori. Analogamente alla condizione precedente, questa impedisce che si possa negare la licenza d'us o in determinati settori. Non si può dunque impedire l'uso di tale software per e sempio per la produzione di armi chimiche o altri strumenti di distruzione di massa. Linux è solo il kernel, il cuore del sistema. L intero SO, formato dal kernel e dalle varie applicazioni di interfaccia con l utente, viene in genere chiamato GNU/Linux. GNU/Linux si presenta sottoforma di varie distribuzioni, che si differenziano tra loro per le applicazioni fornite e per i tools di configurazione creati dagli stessi realizzatori della distribuzione. Esistono vari tipi di distribuzioni: alcune più semplici, altre più complesse, quindi più leggere e sicure, altre Live, che permettono di avviare il SO direttamente da CD-ROM, senza bisogno di installarlo sulla macchina. LE DISTRIBUZIONI LE DISTRIBUZIONI RedHat: una delle distro più popolari, adattabile a diversi usi (server, desktop, laptop, ecc.). Ricca di tools di configurazione e update, che rendono il SO più user-friendly. Ha introdotto il sistema di pacchetti.rpm, che facilità l installazione e aggiornamento di software. Slackware: una delle prime distribuzioni di linux. Può risultare ostica per gli utenti inesperti per via della sua inclinazione purista, carente di tools di configurazione grafici. Utilizza un proprio sistema di pacchetti.tgz Debian: Risulta meno user-friendly e più stabile delle altre distro, e introduce un proprio sistema di pacchettizzazione (.DEB) basato sugli RPM. SUSE: Distribuzione RPM compatibile e user-friendly. Utilizza un software di gestione e configurazione chiamato YAST completo e piuttosto semplice. Mandrake: distro più adeguata ad un uso desktop, molto userfriendly e RPM compatibile. Gentoo: distro relativamente recente e rivoluzionaria. E' fatta per essere compilata direttamente sul PC di installazione in ogni sua parte. E decisamente per esperti, e la sua installazione può essere particolarmente lunga e complicata. LE DISTRIBUZIONI Knoppix: Una delle più famose distribuzioni Live, composta da più di 900 pacchetti, basata su Debian. Esistono centinaia di altre distribuzioni Linux utilizzate per scopi più o meno specifici. Esistono distro completamente in italiano, altre distro live compresse in modo da stare su un singolo floppy o su un pendrive USB, ecc Esistono anche altri SO Unix-Like gratuiti, come la BSD, un vero e proprio Unix. Questi sistemi (NetBSD, FreeBSD, OpenBSD, Solaris, ecc.) non hanno avuto la stessa diffusione (per via della maggior complessità del sistema), e compatibilità hardware di linux, ma sono molto più stabili e sicuri. COMPONENTI DI UN SISTEMA GNU/LINUX

IL KERNEL IL KERNEL Il kernel, come suggerisce il nome, è il nocciolo del sistema operativo. I programmi utilizzano il kernel per le loro attività, e in questa maniera sono sollevati dall'agire direttamente con la CPU. Di solito, è costituito da un file unico, il cui nome potrebbe essere vmlinuz (oppure zimage, bzimage e altri), ma può comprendere anche moduli aggiuntivi, per la gestione di componenti hardware specifici che devono poter essere attivati e disattivati durante il funzionamento del sistema. Esistono fondamentalemente due tipi di kernel : monolitico e microkernel. Le differenze tra i due tipi sono enormi e spesso sono nate anche delle forme ibride. Un kernel monolitico ha il vantaggio essere strutturato in un unico file, risultando quindi piu veloce, semplice e lineare. Un microkernel invece ha una struttura piu complessa e articolata: è basato su un unico nucleo che si occupa soltanto di gestire il passaggio di messaggi alle altri componenti che sono staccate dal kernel. Questo tipo di kernel deve preoccuparsi solo di gestire questi messaggi e di amministrare le risorse delegando quest ultimo compito a dei processi esterni (server). Ciò permette di aver un kernel molto snello a scapito (seppur di poco) delle prestazioni. IL KERNEL IL FILESYSTEM Linux è un kernel di tipo monolitico particolare, in quanto si differenzia dalla maggior parte dei kernel monolitici per una interessante caratteristica: pur essendo basato su un nucleo compatto ha la possibilità di "collegare" a questo nucleo dei moduli, in modo da alleggerire il kernel e aggiungere alcuni supporti solo se ce ne è l effettiva necessità. Questo tipo di approccio si differenzia notevolmente da quello dei microkernel (dove i moduli comunicano per mezzo di messaggi, e non vengono "agganciati" al nucleo principale facendone parte), ma permette di alleggerire notevolmente il kernel. Linux si basa sulla filosofia per cui "ogni cosa è un file" ("everything is a file"), per questo tutto si descrive attraverso opportuni file contenuti in determinate directory (sono anch'esse dei file, seppur speciali). Certi dispositivi come gli hard disk sono inseriti nella gerarchia delle directory al momento del boot, altri invece possono essere inseriti (mounted) solo quando necessario, utilizzando opportuni comandi (mount e fstab). Il concetto di MOUNT rende differente Linux da Windows. In Linux esiste UNA sola directory alla quale poi vanno montate le altre, ad esempio i dischetti ed i Cd -rom. Ad esempio, riferendoci al CD ROM non digiteremo "D:" (come in DOS) ma /mnt/cdrom. FSTAB FSTAB In questo file (/etc/fstab) vengono configurate le informazioni sui vari file system (da montare al boot o no) preimpostati sul sistema, vengono definiti i mount point, il tipo di file system ed altre informazioni. Il suo formato prevede per ogni riga le seguenti informazioni: 1- Dispositivo da montare (es: /dev/hda1 o anche host:dir ) 2- Mount point sul file system principale 3- File System Type da utilizzare (es: ext2, ext3, iso9660, ntfs...) 4- Opzioni specifiche per il mount 5- Indica se il file system deve essere backuppato con il comando dump. Uno 0 indica NO. 6- Indica che deve essere fatto un filesystem check al boot. Uno 0 indica NESSUN CHECK. # # /etc/fstab # # <device> <mountpoint> <filesystemtype><options> <dump> <fsckorder> /dev/hdb5 / ext2 defaults 1 1 /dev/hdb2 /home ext2 defaults 1 2 /dev/hdc /mnt/cdrom iso9660 noauto,ro,user 0 0 /dev/hda1 /mnt/dos/c msdos defaults 0 0 /dev/hdb1 /mnt/dos/d msdos defaults 0 0 /dev/fd0 /mnt/floppy ext2 noauto,user 0 0 /dev/hdb3 none swap sw

IL FILESYSTEM IL FILESYSTEM / /bin /root /home /usr /mnt /home/utente1 /home/utente2 /usr/local /mnt/cdrom /mnt /floppy /home/utente1/docs Mount point CDROM /mnt/cdrom/img /mnt/cdrom/docs Il filesystem di Linux ha una singola directory principale: la directory root (/) Le sottocartelle principali di / sono: /bin: Cartella contenente tutti gli eseguibili che è possibile richiamare da shell. /boot: Qui sono presenti i kernel alternativi ed altri file utilizzati da LILO. /dev: In questa directory sono contenuti i file di device, ossia i file necessari per l'utilizzo dei vari dispositivi (monitor, stampanti, dischi etc). I vari dispositivi sono visti da Linux come dei file e possono essere letti e scritti come normalissimi file. IL FILESYSTEM IL FILESYSTEM /etc: Qui sono presenti tutti i file di configurazione del sistema. /home: E' la directory che contiene tutte le directory personali degli utenti. Quando un utente si collega al sistema (effettua cioe' il login) potra' accedere unicamente alla propria directory. Corrisponde alla cartella Documents and Settings delle più recenti versioni di Windows. /lib : Contiene tutte le librerie condivise del sistema. /lost+found: E' in questa directory che vengono raccolte le parti di file recuperate dal controllo dei dischi in caso di chiusura improvvisa del sistema. /mnt: E' la directory di mount. Per collegare un'unita' di memorizzazione dati al sistema (disco, CD-Rom, nastro etc) occorre effettuare una operazione di mount, che collega il file di device alla cartella dove deve essere contenuto il filesystem del device stesso. Generalmente le varie unita' vengono montate all'interno di questa directory (anche se e' possibile montarle in directory different i). /proc : Questa directory contiene un filesystem virtuale. Al suo interno sono contenute le informazioni relative al sistema (cpu, porte seriali e parallele, kernel, ecc.). /opt: Contiene applicazioni particolari (di solito KDE, GNOME ed altre). /root: E' la directory home dell'amministratore del sistema (In Windows questa è contenuta in Documents and Settings come quelle degli altri utenti). /sbin: Contiene programmi di sistema eseguibili solo dall'amministratore del sistema come ad esempio fdisk o fsck. /tmp : Contiene dei file temporanei. Corrisponde alla cartella C:\windows\ temp di Windows. /usr: In questa directory sono contenute tutte le applicazioni ed i file che non servono per la gestione del sistema. Qui vengono inoltre installati i vari pacchetti software. /var: E' la directory dei file variabili, cioe' quei file che non hanno una lunghezza predefinita e variano nel tempo. Qui sono presenti ad esempio i file di spool (i file di stampa in coda), i fax, i messaggi da inviare, i file di log etc. IL FILESYSTEM IL FILESYSTEM I filesystem disponibili per linux sono: ext2 (filesystem nativo) ext3 (estensione dell ext2 con l aggiunta del journaling), ReiserFS (filesystem journaled più recente) Oltre a molti altri FS meno conosciuti. Il journaling è un sistema che permette di tenere traccia delle modifiche apportate al filesystem, in modo che, in caso di spegnimento improvviso della macchina, possano essere controllati solo i settori modificati del disco, e non l intero disco come accade ad esempio in Windows. In Linux anche le directory sono viste come file, contenente una tabella che elenca tutti i file contenuti nella directory stessa. Ogni file è collegato ad un inode, cioè ad un file particolare progettato per essere letto solo dal kernel. Questi file specificano permessi, proprietario, data di creazione e ultima modifica e la posizione fisica del file. Ogni inode è caratterizzato da un numero univoco, ed il file relativo è collegato ad esso tramite questo numero.

IL BOOTLOADER AVVIO DI UN SISTEMA GNU/LINUX Il bootloader è un piccolo programma utilizzato, come suggerisce il nome stesso, per il boot del sistema. Questo programma ci permette di scegliere quale OS dovrà essere caricato I bootloader più utilizzati sono: Lilo Grub LILO LILO COME INSTALLARE LILO LILO viene installato al momento dell installazione di Linux. DOVE INSTALLARE LILO LILO può essere installato nel MBR oppure nella partizione root dell'installazione Linux, o ancora su una periferica di memorizzazione esterna. Se il proprio disco contiene un altro sistema operativo oltre a Linux, conviene installare Lilo sulla partizione root invece che sul Master Boot Record. In questo caso occorre marcare la partizione come bootable (usando il fdisk) COME DISINSTALLARE LILO Quando si desidera rimuovere Linux bisogna anche rimuovere LILO Se LILO è stato installato sulla partizione di root non si presenta nessun problema a rimuoverlo, basterà rimuovere le partizioni di Linux con fdisk. Se LILO invece è stato installato sul MBR occorre semplicemente rimettere al suo posto il settore di boot originale. dd if=/boot/boot.xxyy of=/dev/hda bs=446 count=1 dove XXYY sono due numeri che rappresentano la periferica visualizzabili con: ls l /dev/device RUNLEVEL INIT I runlevel sono astrazioni software per indicare diversi stati della macchina in cui possono girare diversi programmi. In genere Linux utilizza i seguenti runlevel: Runlevel 0 : Avvia la sequenza di arresto del sistema (shutdown) Runlevel 1: Rappresenta la modalità singolo utente, nessun altro utente può collegarsi, il servizio di rete è disabilitato. Runlevel 2: Rappresenta lo stato multiutente, il servizio rete è attivo ma è disabilitato il file sharing. Runlevel 3: In genere è quello predefinito quando si opera in modalità testuale, tutti i servizi sono attivi. Runlevel 4: Inutilizzato. Può essere dedicato ad usi personali Runlevel 5: E' il runlevel predefinito quando si vuole avviare Linux in modalità grafica Runlevel 6: Avvia la sequenza di reboot. Init è il padre di tutti i processi. Il suo compito è quello di lanciare tutti i programmi da eseguire all avvio del sistema. Le operazioni che init deve eseguire in fase di caricamento del sistema sono specificate nel file di configurazione /etc/inittab. Nell Inittab vengono specificate le directory contenenti gli script di avvio per i diversi runlevels (stati del sistema), e altri script e comandi generici.

INIT I DAEMONS Tutti gli script di inizializzazione si trovano all interno di una subdirectory di /etc chiamata rc.d Lo script principale che viene lanciato per primo da Init è rc.sysinit, Questo script ha diversi compiti, tra cui abilitare la memoria virtuale, montare il filesystem, pulire alcune directory di log, inizializzare le periferiche plug&play, caricare i moduli del kernel. Infine invoca gli altri script presenti in rc.d Le subdirectory presenti in rc.d sono: init.d, rc0.d, rc1.d,, rc6.d. La directory init.d contiene gli script utilizzati da Init, mentre le directory rcx.d (dove X sarà il numero del runlevel) contengono gli script relativi al runlevel corrispondente. Il nome daemon significa letteralmente demone, e nei sistemi Unix-Like indica un applicazione che gira in background, cioè un applicazione che in genere continua a girare sulla macchina finché questa non viene spenta, e resta in ascolto per soddisfare particolari richieste dell utente. Questi demoni si occupano di gestire particolari servizi del sistema operativo come, ad esempio, i processi di stampa, una rete locale, i log del sistema, ecc. La maggior parte di essi viene avviata durante la fase di boot dall init. I DAEMONS I DAEMONS Un demone, normalmente, è un programma che resta in attesa su una porta del sistema aspettando che qualcuno o qualcosa richieda una connessione. Lo stato in cui normalmente questo programma si trova è detto sleep, e in questa fase le risorse occupate dal demone risultano minime. Per modificare le impostazioni di un demone (per esempio il numero della porta sulla quale rimane in ascolto ) bisogna in genere agire direttamente sul file di configurazione del demone. In genere per convenzione i demoni hanno nomi che terminano con la lettera d (cupsd, httpd, crond, ecc.) Alcuni esempi di demoni: cupsd: principale gestore di stampanti e delle code di stampa. La sua configurazione è raggiungibile anche utilizzando un browser puntando all indirizzo http://localhost:631 httpd: demone del web server Apache. Se attivato permette di trasformare la propria macchina in un server accessibile anche da remoto mysql: demone del server di database potente e versatile samba (smbd & nmbd): demoni del servizio Samba, che permette di mettere in rete locale un sistema Linux con uno differente (Windows ad esempio). Syslogd: permette di registrare e leggere i log di sistema presenti in /var/log UTENTI E GRUPPI UTENTI, PERMESSI E SHELL In un sistema Linux esistono due tipi di utente: Il root L user Il root è l amministratore del sistema, e può fare qualsiasi cosa. L user invece è un utente normale, a cui vengono negati diversi permessi, come la cancellazione o la modifica di determinati file e cartelle. Tutti gli utenti del sistema sono registrati nei file /etc/passwd e /etc/shadow, che contengono le loro informazioni e password criptate.

UTENTI E GRUPPI UTENTI E GRUPPI Ad ogni utente del sistema viene assegnato un UID (User IDentification ), ovvero un numero che permette di identificarlo L UID del root è 0, mentre quello degli utenti può variare Per aggiungere un utente si usa il comando useradd (ovviamente deve essere eseguito da root). Dando il comando useradd verranno richieste le informazioni per la creazione dell utente, tra cui la sua password. I diversi utenti del sistema possono appartenere a diversi gruppi L appartenenza ad un gruppo può permettere all utente di acceder e a diversi file che altrimenti gli sarebbero negati. I gruppi sono contenuti nel file /etc/group Ad ogni gruppo viene assegnato un GID (Group IDentification), cioè un numero che identifica il gruppo. Il GID 0 appartiene a root. Per creare un nuovo gruppo si usa il comando groupadd (ovviamente deve essere eseguito da root). Successivamente verranno richieste le informazioni del gruppo. Se vogliamo aggiungere un utente ad un gruppo useremo il comando: adduser <utente> <gruppo> I PERMESSI I PERMESSI I Permessi non sono altro che delle regole per l accesso ai file /directory Un utente possiede principalmente 3 permessi: r (lettura) w (scrittura) x (esecuzione) Questi permessi possono essere anche espressi mediante numeri: r = 4 w = 2 x = 1 I permessi possono essere modificati solo da proprietario del file. Ogni file possiede tre terne di permessi: rwx rwx rwx La prima terna indica i permessi riguardanti il proprietario del file La seconda terna indica i permessi riguardanti il gruppo al quale appartiene il proprietario La terza terna indica i permessi riguardanti tutti gli altri utenti che non appartengono al gruppo del proprietario La shell è un programma che gestisce la comunicazione fra utente e sistema operativo, interpretando ed eseguendo i comandi dell utente. Ogni comando è formato da una parola chiave, seguita da una lista di argomenti preceduti dal segno (meno), oppure da nomi di file o altre opzioni e argomenti. Esistono molteplici shell, ognuna delle quali presenta caratteristiche e peculiarità proprie. Le shell sono contenute in /bin Per passare da una shell all altra basta digitare il suo nome. sh: Bourne Shell, disponibile su qualsiasi ambiente UNIX. E quindi la più utilizzata per creare script shell compatibili e cross-platform. Csh: C shell, prende il nome dal linguaggio di programmazione. Ovviamente le funzionalità di tale shell derivano in modo diretto da C. bash: Bourne Again Shell, una delle ultime nate. Offre le stesse capacità della C shell, con l aggiunta di alcune funzionalità come l history dei comandi e la TABcompletion Ksh: Korn Shell, largamente diffusa. E compatibile con la sh sulla parte di scripting ed ha le funzionalità di interazione della csh tcsh: E un evoluzione della csh.

I COMANDI PRINCIPALI DI UNA SHELL BASH man ls cd mkdir rm mv cp ln find chmod - chown cat mount - umount top startx halt - reboot MAN Ci permette di vedere il manuale di un comando che spiega l utilizzo di questo comando. man <comando> CD Ci permette di cambiare la directory cd <directory> se directory viene omessa cd ci porterà automaticamente nella directory home dell utente. LS Ci permette di vedere i file presenti in una directory, corrisponde al dir del dos. ls [-switch] [directory] switch principali: -l permette di vedere i file sotto forma di lista -a permette di vedere tutti i file, anche quelli nascosti se directory viene omessa verrà visualizzato il contenuto della cartella corrente. esempio: reizier@deathmachine:/$ ls -l total 74 drwxr-xr-x 2 root root 2048 Sep 19 19:38 bin drwxr-xr-x 2 root root 1024 Sep 19 19:43 boot drwxr-xr-x 2 root root 1024 Apr 8 2004 cdrom drwxr-xr-x 14 root root 22528 Dec 13 10:29 dev drwxr-xr-x 101 root root 6144 Dec 13 10:30 etc [ permessi - proprietario - gruppo -dimensione - data - nome file ] possibili permessi: d=directory l=link r=read w=write x=eseguibile 1 carattere: esprime di che tipo di file si tratta. 2-3-4 carattere: esprimono i permessi per il proprietario. 5-6-7 carattere: esprimono i permessi per il gruppo. 8-9-10 carattere: esprimono i permessi per tutti gli altri utenti. I permessi negati per un file vengono indicati con un (meno) al posto della lettera corrispondente al permesso MKDIR Ci permette di creare una nuova directory. mkdir <nome_dir> RM Ci permette di cancellare un file/directory switch principali: rm [ switch] <nomefile/nomedir> -r serve per rimuovere cartelle non vuote.

MV Ci permette di muovere o di rinominare un file mv <nomefile> <nuovonome/path> CP Ci permette di copiare dei file. cp <fileorigine> <pathdest> LN Ci permette di creare dei link I link possono essere di tipo hard oppure soft (symbolic link) I link di tipo hard puntano all inode di un file, i link simbolici invece puntano al nome del file. ln [-s] <nomefile > <nomelink> Il -s serve per creare link simbolici. ID Questo comando mostra l UID, il GID e altre informazioni a riguardo del nostro utente id FIND Ci permette di visualizzare tutti i file presenti in una directo ry e nelle sue sottodirectory e di trovare dei file. Espressioni principali: -name nome -gid n -uid n find <path> <expression > permette di cercare un file chiamato nome file che appartengono ad un determinato gruppo avente come gid n file che appartengono ad un determinato user avente come uid n CHMOD CHOWN Servono rispettivamente a cambiare permessi e proprietario di un file chmod <permessi> <file> chown <proprietario> <.gruppo> <file> Permessi: 1 Permesso in esecuzione (--x) 2 Permesso in scrittura (-w-) 4 Permesso in lettura (r--) Esempi: chmod 777./ciao chown daniele.users./ciao CAT Serve per far stampare a video il contenuto di un file cat <nomefile> TOP Serve per vedere i processi attivi ed eventualmente terminarli top Una volta eseguito, per terminare un processo bisogna schiacciare k e poi scrivere il pid del processo da terminare. Per uscire basta premere q. MOUNT - UMOUNT Servono rispettivamente per montare/smontare una periferica esempio: mount<mountpoint> umount <mountpoint> mount /mnt/cdrom Questa forma del comando mount ha effetto solo se la periferica è elencata nel file fstab, altrimenti bisogna usare la sintassi: mount t <filesystem> <periferica> <mounpoint>

STARTX Serve per avviare la parte grafica. startx HALT - REBOOT Servono rispettivamente per spegnere/riavviare il computer halt reboot L INTERFACCIA GRAFICA SU Questo comando ci permette di cambiare utente continuando a tene re attivo quello che si sta utilizzando. Verrà chiesta in seguito la password dell utente scelto su <utente> X WINDOW SYSTEM X WINDOW SYSTEM Linux, come ogni Unix, oltre ad offrire la possibilità di interagire con il sistema via linea di comando offre un ambiente grafico a finestre che è sicuramente più familiare per chi è abituato a Windows. Questo ambiente viene comunemente chiamato X (X Window System) che nel tempo è diventato lo standard GUI (graphic user interface) di Unix. A differenza di Microsoft Windows in cui l'interfaccia a finestre è parte integrante del kernel, in Unix è un normale processo e viene trattato come tale, con i vantaggi (maggiore stabilità del sistema nel momento in cui si dovesse bloccare) e gli svantaggi (prestazioni penalizzate) del caso. L X Window System si compone principalmente dei seguenti componenti: Xserver: si occupa principalmente della gestione hardware (scheda video, mouse, tastiera, ecc.) ed è a stretto contatto con il kernel. Window Manager: si occupa della gestione delle finestre: apertura, chiusura, spostamento e di tutte le altre funzioni che le riguardano. In ambiente Unix esistono svariati Window Manager. XClient Sono tutti i programmi eseguiti sotto X, con cui l'utente interagisce (ad esempio un browser, un word processor ecc.). Xlib: libreria di funzioni utilizzata da tutti i programmi che utilizzano l ambiente grafico Protocollo X: protocollo di comunicazione tra i programmi che utilizzano l ambiente grafico. XSERVER WINDOW MANAGER Gli Xserver più diffusi in ambiente Linux sono Xfree86 e Xorg. Il file di configurazione dell XServer si trova in genere in /etc/x11 e si chiama XF86Config (in caso di server XFree86) o xorg.conf (in caso di server xorg). In genere le distribuzioni creano un file di configurazione dell XServer in automatico al primo avvio dell interfaccia grafica. Se la configurazione di default non dovesse funzionare oppure si vuole apportare qualche modifica, bisogna agire sul file di configurazione direttamente, oppure utilizzando i tools di configurazione messi a disposizione (XF86Setup o xorgconfig). Questi tools presenteranno una serie di domande sul proprio sistema, alle quali bisognerà rispondere per ottenere un file di configurazione adatto alla propria macchina. Un Window Manager si occupa prevalentemente di gestire l apertura, la chiusura, la massimizzazione, l iconizzazione, il ridimensionamento e il focus delle finestre. Oltre a questo, un Window Manager offre un menu, in genere visualizzabile cliccando con il tasto destro del mouse sul desktop, per velocizzare l esecuzione di operazioni da parte dell utente. I Window Manager più diffusi in ambiente Linux sono: WindowMaker: Look ben curato, con un menu visualizzabile cliccando sul desktop con il tasto destro del mouse. Enlightenment: Uno dei più sofisticati gestori di finestre per Unix (prima dell avvento dei Desktop Environment). Offre la possibilità di personalizzare l intero ambiente, ma è leggermente più esigente in termini di risorse degli altri WM.

WINDOW MANAGER DESKTOP ENVIRONMENT IceWM: il suo scopo è quello di offrire un WM veloce e leggero, ma che sia il più possibile vicino all interfaccia di Windows. Presenta, proprio come in Windows, una barra nella parte bassa dello schermo con un pulsante sulla sinistra per visualizzare il menu delle applicazioni. BlackBox & FluxBox: Due WM molto simili tra loro, sviluppati con l unico scopo di rendere il WM più leggero e veloce possibile. Offrono all utente un interfaccia veloce, seppur minimale. Dispongono di un menu richiamabile con il tasto destro del mouse, lasciando tutto il resto alla console. Fvwm: Uno dei primi WM, piuttosto minimale, che tenta un avvicinamento all interfaccia stile windows. Un Desktop Environment è il risultato dell unione di più componenti, il cui fine è rendere più agevole, pratico e veloce l utilizzo del computer: Un Desktop Environment è costituito dalle seguenti parti: un insieme di librerie atte a rendere disponibili servizi e un aspetto uniforme alle applicazioni un Window Manager Un pannello di controllo che permette di gestire velocemente il sistema e gli utenti. Un insieme di applicazioni di base (file manager, tools di configurazione del sistema, ecc.) Uno o più protocolli di comunicazione tra applicazioni I due desktop environment più diffusi in ambiente Linux sono KDE e Gnome, anche se sta avendo ultimamente una certa diffusione anche Xfce KDE KDE (K Destop Environment) è un Desktop Environment basato sulle librerie Qt, fornito di un proprio Window Manager dallo stile veramente molto simile a Windows. KDE mette a disposizione dell utente un ottimo pannello di controllo, e molte valide applicazioni tra cui la più importante è sicuramente il pacchetto KOffice, composto da un wordprocessor (KWord), un foglio di calcolo elettronico (KSpread), un applicazione per creare presentazioni (KPresenter) e molto altro ancora. Maggiori informazioni su KDE possono essere trovate all indirizzo http://www.kde.org GNOME Gnome è un Desktop Environment alternativo a KDE, basato sulle potenti e versatili librerie Gtk+ (più diffuse delle Qt in ambiente Unix), che offre una maggiore libertà di personalizzazione. Gnome non è fornito di un proprio Window Manager, ma utilizza in genere Metacity, Sawfish o Enlightenment. Il sito di riferimento per Gnome è: http://www.gnome.org

INSTALLAZIONE DI UNA DISTRIBUZIONE GNU/LINUX INSTALLAZIONE Ogni distribuzione mette a disposizione dell utente un proprio tool di installazione, che può essere più o meno complicato, a seconda del tipo di distribuzione usato. I passi comuni ad ogni installazione di un sistema GNU/Linux sono prevalentemente i seguenti: Partizionamento Installazione dei pacchetti software Configurazione del sistema PARTIZIONAMENTO PARTIZIONAMENTO Partizionare l hard disk significa suddividere la memoria del disco rigido in più parti. Linux prevede la creazione di almeno 2 partizioni per essere installato: una partizione di swap e una principale. La partizione di swap ha lo scopo di riservare spazio che verrà utilizzato dal sistema quando la memoria RAM viene esaurita. In genere è consigliato creare una partizione swap di dimensioni doppie rispetto a quelle della RAM presente sul sistema. Il sistema operativo vero e proprio può essere installato su una o più partizioni. Infatti ogni sottocartella della root directory può essere installata in una partizione specifica. Ad esempio la cartella /home può essere installata in una partizione a parte per poter conservare i dati degli utenti anche se si vuole disinstallare il sistema operativo. Non sempre la procedura di partizionamento è inclusa nella procedura di installazione. In alcuni casi è necessario utilizzare un programma esterno. I software più utilizzati per partizionare il disco rigido, inclusi in qualsiasi disco di installazione, sono fdisk e cfdisk. Fdisk fornisce un interfaccia testuale a comandi, più complessa da utilizzare, mentre cfdisk offre un interfaccia pseudografica più immediata. CFDISK

SCELTA DEI PACCHETTI CONFIGURAZIONE In genere i tools di installazione della distribuzione permettono all utente di scegliere quali pacchetti software installare sul proprio sistema. Una volta terminata l installazione di pacchetti bisogna procedere con la configurazione del sistema. La scelta dei pacchetti può avvenire in modi diversi: selezionando pacchetto per pacchetto cosa installare, selezionando i gruppi di pacchetti da installare (ad es. networking, ufficio, giochi, ecc.), oppure lasciando al sistema la scelta dei pacchetti più comuni. La configurazione prevede diverse operazioni come la scelta della lingua, la configurazione del bootloader, la creazione dell utente root e la configurazione di alcune periferiche come mouse e tastiera, la configurazione della network INSTALLARE APPLICAZIONI IN UN SISTEMA GNU/LINUX INSTALLARE APPLICAZIONI Le applicazioni per sistemi GNU/Linux sono distribuite in diversi formati: sorgenti, pacchetti, 0 con installatore. I sorgenti sono in genere compressi in archivi.tar.gz o.tar.bz2 e devono essere compilati prima di poter essere installati. Il vantaggio dei sorgenti è che non dipendono dal sistema sul quale vengono insta llati, mentre presentano come svantaggio la difficoltà di gestione e il tempo di compilazione necessario. I pacchetti sono formati già compilati per una specifica distribuzione. Ogni distribuzione ha un suo sistema di package, anche se il più diffuso sta ormai diventanto il.rpm L installatore invece è un programma, in genere con estensione.bin, molto simile all installer di Windows, che prevede cioè un interfaccia a finestre che presenta all utente diverse opzioni. INSTALLAZIONE DA SORGENTI INSTALLAZIONE DA SORGENTI L installazione da sorgenti prevede l esecuzione delle seguenti istruzioni da console: tar xzvf nomefile.tar.gz (o tar xjvf nomefile.tar.bz2): scompatta i file archiviati creando una cartella di nome nomefile. cd nomefile: entra nella cartella appena creata./configure: configura l installazione del software in base alla distribuzione e alla versione dei programmi installati sul proprio sistema, verifica le dipendenze (librerie e software necessario per installare il programma), e crea il Makefile necessario per la compilazione e installazione del software. E possibile fare seg uire il comando dal parametro --PREFIX=<URL> per scegliere la directory dove dovrà essere installato il programma make: compila i sorgenti in base alle informazioni fornite dal Makefile make install: installa il software sulla macchina L elenco dei programmi installati da sorgenti non è gestito in alcun modo dal sistema. Questo può quindi creare problemi nel caso si voglia disinstallare o aggiornare il software in questione. Solo il alcuni casi è prevista la disinstallazione del software in modo automatico, utilizzando il comando make uninstall. Questo però presuppone che si siano conservati i file prodotti dal comando./configure. Se così non fosse bisogna riscaricare la stessa versione dei sorgenti e ripetere il comando./configure con gli stessi parametri usati la prima volta

I PACKAGE L INSTALLATORE Per rimediare ai problemi che i sorgenti possono dare, molti software sono distribuiti tramite pacchetti precompilati (package). Purtroppo non esiste uno standard di pacchettizzazione, per questo ogni distro usa un sistema suo. Questo significa che non sempre è possibile trovare il pacchetto adatto alla propria distribuzione. I pacchetti attualmente disponibili sono i.rpm (RedHat, Mandrake, Fedora, ecc.), i.tgz (Slackware), e i.deb (Debian). I package hanno il vantaggio di poter essere gestiti più facilmente, tramite i tools messi a disposizione da ogni distribuzione, e possono quindi essere disinstallati e aggiornati con facilità. Di contro però non sempre si riesce a trovare il pacchetto adatto alla propria distribuzione. E un metodo di installazione che sta prendendo piede in ambiente Linux solo negli ultimi anni, quindi non è molto diffuso. Per installare il programma bisogna eseguire il file con estensione.bin (./nomefile.bin) L installer presenterà all utente un interfaccia a finestre simile all installer di Windows mediante la quale si potrà scegliere la directory di installazione, il tipo di installazione (ad es. completa, personalizzata, ecc..), ecc.