Il File System UNIX (Linux).
Introduciamo alcuni concetti sui quali si basa il file sistem Unix rispetto al classico DOS.
- nello scrivere un percorso (path) si usa la slash ("/") [come quando scrivete un indirizzo internet] e non la back-slash ("\")
- sotto DOS i nomi dei file sono nella forma 8.3 ( PROVATES.TXT ); in Linux si possono usare nomi di file lunghi più di 255 caratteri e con più caratteri punto (".") all’interno del nome. Es: Questo_e.un.nome-di.file-molto_lungo
- caratteri maiuscoli e minuscoli rendono due file differenti anche se hanno lo stesso nome. Quindi NOMEFILE.tar.gz è nomefile.tar.gz sono differenti.
- i nomi dei file non sono collegati in alcun modo ad estensioni particolari. Ad esempio un file eseguibile non deve avere estensione .COM, .EXE o .BAT ma per essere eseguito deve avere solo le giuste "permission"(permessi). In Linux i file eseguiti sono marcati con un asterisco ("*") dai programmi che visualizzano l’elenco di una directory.
- sotto DOS i file di backup terminano con l’estensione .BAK, in Linux invece terminano con una tilde (‘~’).
- in Linux un nome di file che inizia con un punto (".") e considerato "hidden" (nascosto/invisibile)
- il passaggio dei parametri in DOS avviene mediante l’uso della slash ("/") mentre in linux si usa il segno meno ("-") singolo o doppio ("–"). E da notare che alcuni famosi programmi DOS (PKZIP e ARJ) usano già questa sintassi Unix.
Struttura delle directory
Il dos/windows automaticamente monta tutte le unità (floppy, hard-disk, cd-rom) usando le lettere dell’alfabeto c:, d:, ecc. In Linux il disco principale contenente il ‘ROOT FileSystem’ viene montato sotto la root directory, cioe ‘/’. Gli altri file system, come cdrom e connessioni di rete possono essere "montati" in qualsiasi parte dello stesso, anche se lo standard dice che dovrebbero stare in una sottocartella del percorso "/mnt".
Ubuntu monta i dispositivi sotto /media (es. /media/cdrom, /media/floppy, /media/hda1, /media/sdb2)
Guardando sotto "/" noterete una serie di cartelle di difficile interpretazione, tutto però ha una logica ben precisa. Linux è uno Unix ed è stato quindi creato come sistema multiutente. Le directory di primo livello /bin, /sbin, /root contengono i programmi necessari all avvio del sistema in modalita singola utente (solo amministratore). Le directory di secondo livello /usr/bin, /usr/sbin contengono tutti i programmi che possono essere eseguiti dagli utenti della macchina e non solo dall’amministratore. Gli utenti hanno una loro cartella personale sotto il percorso /home dove possono fare tutto quello che vogliono. Infatti l’utente "pluto" può compilare ed usare una sua versione dei programmi in /home/pluto/bin da /home/pluto/src. Infine /usr/local / è usata per preparare software da usare localmente.
Alcune delle cartelle più importanti:
- / è la directory radice (root)
- /bin contiene i programmi (detti anche binari) utilizzati durante il processo di avvio (boot)
- /sbin come sopra con la differenza di contenere programmi eseguibili solo da root
- /boot Kernel e i file di configurazione del boot manager (grub)
- /dev contiene i devices, cioè collegamenti ai vari dispositivi: tastiera,modem,dischi,ecc.
- /etc file di configurazione di sistema
- /home cartelle degli utenti (es. /home/vostronome)
- /initrd l’initial ram disk (usata nella procedura di boot)
- /lib librerie di sistema (modalità singolo utente)
- /lib/modules moduli del kernel
- /mnt o /media cartelle dove di solito sono montati i dispositivi di archiviazione (cdrom,dvd,HD,penne USB)
- /opt applicazioni aggiuntive (opzionali)
- /proc processi del kernel (filesistem virtuale)
- /root la "home" dell’utente root (amministratore)
- /tmp i file temporanei usati dalle applicazioni
- /usr comandi,librerie, pagine di manuale, giochi e altri files per utilizzo normale (modalità multiutente) replica la struttura di /
- /usr/bin tutti i programmi si trovano quì
- /usr/sbin programmi eseguibili solo da root
- /usr/include file "header" pe la compilazione
- /usr/lib librerie utili ai programmi
- /usr/local installazioni locali
- /usr/man,info,doc pagine di manuale
- /usr/games giochi
- /usr/src sorgenti per la compilazione
- /usr/share risorse condivise
- /usr/X11R6 file del server X
- /var contiene files che cambiano come mail, log di stampa e altri file temporanei
- /var/www la radice del server Apache




