Linux: il filesystem
Linux come ogni sistema operativo Unix Like
(derivato di Unix) che si rispetti ha un filesystem
gerarchico, cioe' diviso in directory (non dite cartelle vi
prego son allergico :-)) ) e sottodirectory.
Ci sono molte differenze tra il filesystem di windows (e dos
ovviamente) e quello del nostro Linux, la piu' importante, e
visibile, e' questa: Windows assegna ad ogni partizione o
periferica di memorizzazione (floppy e cdrom) una unita'
separata (quindi un filesystem a se), Linux invece ha una sola
unita' (la /) dove verranno montate tutte le partizioni e le
periferiche di memorizzazione.
Questo approccio porta il vantaggio di una maggiore velocita'
di navigazione (del filesystem ovviamente) grazie alla
centralizzazione (non piu' a:, c:, d: e:, ma solo /, /mnt/cdrom,
/mnt/floppy, ecc).
Vediamo di enunciare velocemente il contenuto delle directory
principali.
La directory /
E' la directory radice ed oltre a contenere tutte le altre
directory puo' contenere anche l'immagine del kernel (non
sempre alcune volte la troviamo in /boot)
/boot
Questa directory contiene tutti i file necessari all'avvio del
sistema, come i file del boot manager (lilo o grub),
l'immagine del kernel (se non presente in /), ecc.
/bin
Assieme a /sbin e' la directory basilare di ogni sistema Linux
poiche' contiene le utility di base per funzionamento del
sistema. In Linux Redhat 6.2 troviamo:
arch* consolechars* ed*
hostname*
mknod* pwd* sleep*
usleep*
ash* cp* egrep*
igawk*
mktemp* red@ sort*
vi*
ash.static* cpio* ex@
ipcalc*
more* remadmin* stty*
view@
aumix-minimal* csh@ false*
kill*
mount* rm* su*
vimtutor*
awk@ date* fgrep*
linuxconf*
mt* rmdir* sync*
xconf@
basename* dd* fsconf@
ln*
mv* rpm* tar*
ypdomainname@
bash* df* gawk*
loadkeys*
netconf@ rvi@ tcsh*
zcat*
bsh@ dmesg* gawk-3.0.4*
login*
netstat* rview@ touch*
cat* dnsdomainname@ grep*
lpdconf@
nice* sed* true*
chgrp* doexec* gtar@
ls*
nisdomainname@ setserial* umount*
chmod* domainname@ gunzip*
mail*
ping* sfxload* uname*
/dev
Contiene tutti i dispositivi, file speciali che sono associati
alle periferiche (cioe' ai loro indirizzi di I/O, IRQ e DMA)
dal kernel.
Facciamo alcuni esempi:
/dev/fd0: primo disco floppy;
/dev/hda: master sul canale ide primario
/dev/hdb: slave sul canale ide primario;
/dev/hdc: master sul canale ide secondario;
/dev/hdd: slave sul canale ide secondario;
/dev/sc*: dispositivi scsi;
/dev/ttyS0: porta COM1 (prima seriale);
/dev/ttyS1: porta COM2 (seconda seriale);
/dev/lp0: porta LPT1 (prima parallela);
/dev/lp1: porta LPT2 (seconda parallela, di solito una scheda
aggiuntiva);
/dev/eth0: prima scheda di rete;
/dev/dsp: Scheda audio.
/etc
Contiene tutti i file di configurazione (in semplice formato
ASCII, quindi modificabili con un semplice editor di testo, e
comprensibili da tutti, come il registo di Windows :-) )
Nella directory rc.d troviamo i file di init indispensabili
per il corretto boot della macchina Linux.
Su Linux Redhat abbiamo:
CORBA/ csh.login hosts.deny
lynx.cfg
paper.config sendmail.cf
DIR_COLORS default/ identd.conf
mail/
passwd sendmail.cw
HOSTNAME dosemu.conf im_palette-small.pal
mail.rc
passwd- sendmail.mc
Muttrc dosemu.users im_palette-tiny.pal
mailcap
passwd.OLD services
TextConfig dumpdates im_palette.pal
mailcap.vga
pcmcia/ shadow
X11/ esd.conf imrc
man.config
pine.conf shadow-
adjtime exports inetd.conf
mc.global*
pine.conf.fixed shells
aliases fdprm info-dir
mgetty+sendfax/
ppp/ skel/
aliases.db fnrc initlog.conf
midi/
printcap smrsh/
at.deny fstab inittab
mime-magic
profile sound/
bashrc gettydefs inputrc
mime-magic.dat
profile.d/ sysconfig/
cdrecord.conf gpm-root.conf ioctl.save
mime.types
protocols syslog.conf
charsets/ group isapnp.gone
minicom.users
pwdb.conf termcap
conf.linuxconf group- issue
motd
rc.d/ up2date.conf
conf.modules group.lock issue.net
mtab
redhat-release uucp/
conf.modules.bak gshadow ld.so.cache
mtools.conf
resolv.conf vga/
cron.d/ gshadow- ld.so.conf
networks
rmt@ wgetrc
cron.daily/ gshadow.lock lilo.conf
nmh/
rpc yp.conf
cron.hourly/ gtk/ localtime
nsswitch.conf
rpmfind.conf*
cron.monthly/ host.conf login.defs
nwserv.conf
screenrc
cron.weekly/ hosts logrotate.conf
nwserv.stations
securetty
crontab hosts.allow logrotate.d/
pam.d/
security/
/home
Contiene le home directory di tutti gli utenti del sistema
(escluso root).
/lib
Contiene le librerie condivise usate dai programmi durante la
loro esecuzione.
/lost+found
Contiene file persi o corrotti dopo il loro recupero (una
directory molto simile mamolto diversa dalla recicled di
windows)
/mnt
Directory utilizzata di solito come punto di mount delle
periferiche di memorizzazione.
/opt
Contiene applicazioni particolari (di solito KDE, GNOME e
similari).
/proc
E' una directory virtuale creata dal sistema operativo e
contiene dati relativi ai processi in corso e alle
caratteristiche della macchina. In Linux RedHat troviamo:
arp* fsck* insmod* ldconfig*
mkswap* quotaon* service*
askrunlevel@ fsck.ext2* insmod.static* lilo*
modinfo* raid0run@ setpci*
badblocks* fsck.minix* install-info* loglevel*
modprobe* raidhotadd@ setsysfont*
cardctl* fsck.msdos* installkernel* losetup*
mount.ncp* raidhotremove@ sfdisk*
cardmgr* ftl_check* ipchains* lsmod*
mount.ncpfs@ raidstart* shapecfg*
cbq* ftl_format* ipchains-restore* lspci*
netreport* raidstop@ shutdown*
cfdisk* fuser* ipchains-save* mailconf@
pam_filter/ rarp* slattach*
chkconfig* genksyms* ipfwadm* mgetty*
pam_tally* rdump@ sln*
clock@ getkey* ipfwadm-wrapper@ mingetty*
pcinitrd* reboot@ stinit*
ctrlaltdel* getty* ipmaddr* minilogd*
pidof@ restore* sulogin*
debugfs* halt* iptunnel* mkbootdisk*
plipconfig* rmmod* swapoff@
depmod* hdparm* ipx_configure* mkdosfs@
pnpdump* rmmod.static* swapon*
dnsconf@ hwclock* ipx_interface* mke2fs*
portmap* rmt* sysctl*
dosfsck* ifconfig* ipx_internal_net* mkfs*
poweroff@ route* syslogd*
dump* ifdown* isapnp* mkfs.ext2*
ppp-watch* rpc.lockd* telinit@
dumpe2fs* ifport* kbdrate* mkfs.minix*
probe* rpc.statd* tune2fs*
e2fsck* ifup* kerneld* mkfs.msdos*
pump* rrestore@ unix_chkpwd*
e2label* ifuser* killall5* mkinitrd*
pwdb_chkpwd* runlevel* update*
fdisk* init* klogd* mkpv*
quotacheck* sash* uugetty*
fixperm@ initlog* ksyms* mkraid*
quotaoff@ scsi_info* ypbind*
/tmp
Contiene tutti i file temporanei necessari alle diverse
applicazioni durante la loro esecuzione. Questa cartella puo'
essere svuotata in ogni momento (un po di spazio in piu' non
guasta mai).
/usr
Contiene tutte le applicazioni non basilari per l'utente
normale (/usr/bin), per l'amministratore (/usr/sbin), e le
librerie (/usr/lib). In /usr/local troviamo (per default)
tutte le applicazioni inserite dopo la l'installazione.
In /usr/src troviamo tutti i sorgenti delle applicazioni
compresi quelli del kernel (/usr/src/linux).
/var
Contiene i dati variabili come posta elettronica, code di
stampa, log, ecc. In Linux RedHat troviamo:
arpwatch/ catman/ gdm/ local/ log/
nis/ run/ state/ yp/
cache/ db/ lib/ lock/
mars_nwe/ preserve/ spool/ tmp/
La nostra veloce rassegna e' finita, spero di
esservi stato di aiuto per capire meglio il funzionamento del
sistema Linux.
Scritta da di Fabrizio Paolini "Kenshemo"