``GNU/Linux è un sistema multitasking a memoria protetta e multiutente''
Il programma init viene avviato dal kernel all'avvio del computer. Si occupa ti gestire tutti processi necessari allo svolgimento delle operazioni comuni. Il modello SysV Init è diventato lo standard in ambiente GNU/Linux perché è molto più semplice e flessibile da utilizzare del tradizionale BSD Init.
Le configurazioni sono posizionate nella directory etc/ dove
potrete trovare le seguenti directory di riferimento:
init.d
rc.boot
rcS.d
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
Le directory rc#.d con # un numero intero da 1 a 6 rappresentano i processi da eseguire per ogni tipo di runlevel e può divergere tra le varie distribuzioni; al momento, lo schema presentato è lo standard de facto.
La directory init.d contiene un numero cospicuo di file che vengono eseguiti
per eseguire i principali comandi e processi di sistema. Se volessimo lanciare
un processo successivamente alla fase di Avvio è possibile farlo digitando:
# /etc/init.d/lpd start
Il demone di stampa viene lanciato mentre per fermarlo:
# /etc/init.d/lpd stop
Esiste anche la possibilità di riavviare il processo con:
# /etc/init.d/lpd restart
Nella fase di avvio la sequenza di esecuzione seguita da init.d è la seguente:
Esistono 7 runlevel e i relativi file di configurazione sono divisi nelle directory precedentemente viste in /etc/rc.d/ nella forma rc#.d. I runlevel determinano particolari stati del vostro sistema:
id::initdefault:
Se è nelle vostre intenzioni avviare il vostro sistema direttamente con l'interfaccia
X Window basterà sostituire il valore con , quello
del runlevel specifico. Il vostro file /etc/inittab potrà risultare come segue:
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown-f -h +2 `¨Power Failure; System Shutting Down`
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c `¨Power Restored; Shutdown Cancelled`
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
Gli utenti SuSE hanno una differente organizzazione dei runlevel ed
è possibile capire le differenze con un semplice
$ cat /etc/inittab
Un file system è il metodo e la struttura dei dati che un sistema operativo utilizza per gestire i file disposti sulle unità fisiche presenti (disco fisso, floppy, cd-rom). La parola viene spesso utilizzata per indicare una partizione o un disco dedicato ad una particolare funzione. Dicendo ``ho due file system'' intendo indicare che ho due partizioni sul mio disco fisso con due differenti metodi di gestione dei file; è il caso comune per la maggior parte delle persone che tengono su una partizione GNU/Linux e un altro sistema operativo sull'altra (es. Windows).
Con l'affermazione creare il file system si vuol intendere l'inizializzazione di una partizione o un disco, spesso nota come ``formattazione'', utilizzando il metodo di gestione dei file scelto. Ogni sistema operativo utilizza un file system in maniera nativa, di base, e ne supporta ulteriori per determinate esigenze. Questo è il caso di GNU/Linux che adotta il file system ext2 in forma nativa ma supporta una ampia e variegata serie di file system esistenti: minix, xia, ext, msdos, umsdos, iso9660 (il file system standard per i cd-rom), nfs (network file system), hpfs (os/2), sysv (systemV/386, Coherent e Xenix), xfs (Silicon Graphics), vfat (Windows 95/98), ntfs (Windows NT) ed altri ancora.
Esiste uno standard denominato FHS (Filesystem Hierarchy Standard) che descrive la disposizione dei file e delle directory su sistemi di tipo Unix-compatibili. Le distribuzioni GNU/Linux più diffuse si attengono anche loro a queste specifiche ed organizzano il proprio file system nella struttura ad albero successivamente descritta.
Un sistema multiutente necessita di una soluzione per la protezione dei file e per garantire la sicurezza delle attività degli utenti come quella del sistema stesso. In sistemi operativi Unix everything is a file, ogni cosa è un file con annesse le informazioni necessarie per la gestione.
Analizziamo le informazioni di alcuni file:
$ ls -l
-rw-r-r- 2 utente gruppo 0 Nov 23 01:54 fileuno
lrwxrwxrwx 1 utente gruppo 4 Nov 23 01:55 link -> file
drwxr-xr-x 2 utente gruppo 1024 Nov 23 01:57 Directory
Utilizzando il comando ls come indicato visualizziamo i file nella directory mostrando i permessi relativi espressi dalle prime 10 combinazioni di lettere visualizzate. La prima lettera può variare come segue:
|
Se desideriamo cambiare i permessi sul file ''fileuno''
dovremo digitare una combinazione di numeri nella forma seguente:
$ chmod 700 fileuno
Un modo alternativo per la medesima azione è il seguente:
$ chmod u+rxw fileuno
Nel modo illustrato sono stati decretati sul file in esame i diritti di lettura,
scrittura ed esecuzione per il solo proprietario. La seconda forma può risultare
più semplice da apprendere perchè indica quali dei tree soggetti vengono considerati
e quali diritti questi possono avere. In forma estesa:
$ chmod ugo+rxw fileuno
Dove ''u'' è user (utente proprietario), ''g''
è group (il gruppo di appartenenza), ''o'' è other
(tutti quelli che non sono il proprietario o non sono presenti nel gruppo di
riferimento). Visualizziamo il cambiamento avvenuto:
$ ls -l fileuno
-rwxrwxrwx 1 darshan darshan 0 lug 15 18:06 fileuno
Per togliere il permesso di eseguibilità la forma si discosta di poco:
$ chmod ugo-x fileuno
E' possibile assegnare ad un file un dato permesso per essere eseguito con ID
dell'utente ``root''. Tale operazione risulta utile se
si desidera assegnare agli utenti del sistema la possibilità di eseguire comandi
strettamente vincolati all'identificativo dell'amministratore di sistema. Di
seguito un esempio pratico:
# chmod 4755 /sbin/shutdown
Notate il numero ``4'' in aggiunta alla canonica terzina ``755'' di permessi già analizzati. Tramite questa aggiunta tutti gli utenti del sistema saranno in grado di lanciare il comando ``/sbin/shutdown'' che tradotto in pratica permetterà il riavvio o lo spegnimento della macchina.
La necessità dell'uomo di dialogare con la macchina ha portato lo sviluppo di uno strumento capace di mediare tra essi e rendere flessibile e minima la distanza tra ``quello che vogliamo fare'' e l'effettiva esecuzione: la shell.
La shell è un interprete che legge ed esegue dei comandi imposti dagli utenti.
A differenza di particolari sistemi operativi dove si è vincolati ad una sola
ed unica shell, nei sistemi operativi Unix / Linux, è possibile scegliere quale
shell si desidera utilizzare a seconda delle propria esperienza e delle proprie
necessità. Per importanza storica e per diffusione le shell che meritano di
essere citate sono la shell Korn, Bourne, Bash (pagina
) e
la shell C. In ambito del sistema operativo GNU/Linux viene adottata la shell
Bash, strumento flessibile che risponde alle esigenze più particolareggiate
di gestione del sistema.
Nel corso dell'evoluzione dei sistemi operativi, sono stati creati strati superiori
all'interfaccia a caratteri per permettere un approccio maggiormente istintivo
e comodo con il computer. In ambienti di tipo Unix l'interfaccia di questo tipo
è rappresentata da una combinazione software tra il sistema X Window (X Window System è un
marchio registrato di The Open Group)
e un'ampia serie di windows manager e ambienti desktop.
A pagina
troverete adeguati riferimenti.
Linux Facile - ver.4.0 - http://www.linuxfacile.org
autore: Daniele Medri <madrid@linux.it>