Sunteți pe pagina 1din 40

Cursul 2

2
Sistemul de fiiere
13 Octombrie 2008

Motto

Linux is just a file system and a file manager. Steve Balmer

13.10.2008

Sisteme de operare

SO (abreviere) Colecie de programe destinate gestionrii resurselor hardware Pant ascendent de evoluie n ultimii 20 ani Piaa desktop
Windows (Microsoft) Mac OS X (Apple) GNU/Linux (comunitate FOSS)
13.10.2008 3

Sistemul de fiiere Componenta cea mai vizibil pus la dispoziie de SO utilizatorului Primele comenzi folosite de utilizator (ls, cd, pwd)
baz pentru alte comenzi

Dou perspective
SO
alocarea i organizarea datelor pe suportul fizic (hard disk, CD-ROM, floppy disk, flash)

utilizator
asigurarea unei structuri ierarhice de directoare i fiiere
13.10.2008 4

Jurnalizare

Se asigur integritatea datelor n cazul erorilor de funcionare a sistemului


se pstreaz un jurnal

Funcionarea jurnalului
nregistrarea operaiilor cu sistemului de fiiere se execut periodic nregistrrile din jurnal o nregistrare executat cu succes este tears n cazul unei cderi sunt refcute nregistrrile

13.10.2008

Tipuri de sisteme de fiiere

Sisteme de fiiere cu suport fizic


NTFS, FAT32, ext3, ReiserFS, HFS+ ISO9660, Joliet, UDF

Sisteme de fiiere virtuale


procfs, devfs, sisteme fiiere prin FUSE

Sisteme de fiiere pentru reea


NFS, SMB, GFS (distributed file system)

13.10.2008

Perspective
Perspectiva utilizatorului
cum este vzut un sistem de fiiere (de obicei ierarhie) ce este un fiier cum se realizeaz denumirea unui fiier ce operaii sunt permise asupra fiierului

Perspectiva SO
modul de stocare a informaiei pe disc folosirea unor algoritmi eficieni pentru alocarea blocurilor i sectoarelor de pe dispozitivul de stocare eficien n accesarea datelor
13.10.2008 7

Elementele sistemului de fiiere


Intrri n sistemul de fiiere Fiier
abstractizarea de baz cantitate de informaie stocat pe un suport fizic

Director
conine alte fiiere sau directoare

Link

13.10.2008

legtur ctre alt fiier/director orice intrare are un nume structura cea mai obinuit este structura ierarhic (arbore multici) n Linux exist fiiere speciale
8

Ierarhia de directoare Ierarhia de directoare Unix Unix

13.10.2008

Ierarhia de directoare Unix (cont.)


/ - directorul rdcin /bin - comenzi binare (executabile) importante /home - conine directoarele de baz ale utilizatorilor /usr - sistem de fiiere secundar (/usr/bin, /usr/lib) /var - date variabile (de obicei jurnale sau cache-uri) /boot - bootloader i informaii de booting /lib - biblioteci utilizate de sistem /dev - intrri n sistemul de fiiere pentru dispozitive hardware /root - home-ul superuser-ului (root) ~ - scurttur shell pentru directorul home al utilizatorului curent
~student - scurttur shell pentru directorul home al utilizatorului student

13.10.2008

10

Ierarhia de directoare Windows

13.10.2008

11

Ierarhia de directoare Windows


A:\ C:\ D:\

rdcinile pentru diferite sisteme de fiiere partiiile diferite se monteaz n rdcini diferite director ce conine programele de sistem pentru Windows director ce conine programele de aplicaie pentru Windows echivalent /home n lumea Windows un subdirector pentru fiecare utilizator
12

C:\Windows\

C:\Program Files\

C:\Documents and Settings\

13.10.2008

Comenzi Unix simple Afiarea coninutului unui director


razvan@anaconda:~/junk$ ls a.out fun.o icsDrone-1.5.0.tar.gz fun.c icsDrone test test.cpp

Afiarea coninutului unui fiier


razvan@anaconda:~/junk$ cat hello.c #include <stdio.h> int main (void) { printf ("Hello, World!\n"); return 0; } razvan@anaconda:~/junk$
13.10.2008 13

Comenzi Unix simple (cont.)


Afiarea directorului curent
stefanb@anaconda:~$ pwd /home/stefanb

Schimbarea directorului curent


stefanb@anaconda:~/svn$ cd hooks/ stefanb@anaconda:~/svn/hooks$

Crearea unui fiier, director


stefanb@anaconda:~/testing$ touch testfile.txt stefanb@anaconda:~/testing$ mkdir testdir

Stergerea unui fiier, director


stefanb@anaconda:~/testing$ rm testfile.txt stefanb@anaconda:~/testing$ rmdir testdir
13.10.2008 14

Comenzi Unix simple (cont.)

Mutare, copiere
stefanb@anaconda:~/testing$ touch demutat.txt stefanb@anaconda:~/testing$ touch decopiat.txt stefanb@anaconda:~/testing$ mv demutat.txt mutat.txt stefanb@anaconda:~/testing$ cp decopiat.txt copiat.txt stefanb@anaconda:~/testing$ ls copiat.txt decopiat.txt mutat.txt

13.10.2008

15

Comenzi Windows
Command Prompt (CLI) interfa asemntoare shell-ului Unix
Start > Run > cmd.exe

Crearea i listarea coninutului unui director:


D:\uso\curs D:\uso\curs 06.10.2007 06.10.2007 06.10.2007 06.10.2007 USO\test> mkdir curs2 USO\test> dir 18:52 <DIR> . 18:52 <DIR> .. 19:04 0 info.txt 18:52 <DIR> curs2

Copierea unui fiier


D:\uso\curs USO\test> copy info.txt director 1 file(s) copied.

Power Shell
13.10.2008 16

Comenzi Windows (cont.)

Redenumirea i mutarea unui fiier


D:\uso\curs D:\uso\curs D:\uso\curs 06.10.2007 06.10.2007 06.10.2007 06.10.2007 USO\test> move info.txt info2.txt USO\test> move info.txt director USO\test> dir 18:52 <DIR> . 18:52 <DIR> .. 19:04 0 info2.txt 18:52 <DIR> curs2

13.10.2008

17

Fiiere
Secvene de octei (byte stream) cu informaie Tipuri de fiiere
binare (executabile i de date)
un fiier executabil este denumit program

text
Un fiier text conine caractere ASCII (human readable)

Drepturi de access
razvan@anaconda:~/junk$ ls -l total 68 -rwxr-xr-x 1 razvan razvan -rw-r--r-1 razvan razvan -rw-r--r-1 razvan razvan -rw-r--r-1 razvan razvan drwxr-xr-x 2 razvan razvan -rw-r--r-1 razvan razvan drwxr-xr-x 2 razvan razvan -rw-r--r-1 razvan razvan -rw-r--r-1 razvan razvan
13.10.2008

13564 61 659 81 4096 23520 4096 259 60

Jul Jul Jul Oct Jul Jul Oct Jul Oct

9 6 6 6 6 6 6 9 3

20:49 23:00 22:55 21:35 20:36 13:26 20:54 20:49 21:26

a.out fun.c fun.o hello.c icsDrone icsDrone-1.5.0.tar.gz test test.cpp test.txt


18

Tipul unui fiier


Extensii
.txt fiier text (ASCII) .exe fiier executabil .c, .h, .cpp, .java, .py fiier cod surs .o (.obj) fiier obiect (binar) .avi, .mpeg, .rm fisier video .bmp, .jpeg, .png, .gif fiier imagine .wav, .midi, .mp3 fiier audio

Comanda file
$ file ~/public_html/index.html /home/razvan/public_html/index.html: HTML document text $ file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), for GNU/Linux 2.4.1, stripped $ file /bin/ls /bin/ls: MS-DOS executable PE for MS Windows (console) Intel 80386 32-bit
13.10.2008 19

Directoare
Folder, directory Cale, path
o succesiune de intrri n sistemul de fiiere desprite prin separator separator
/ (slash) pe Unix
/home/student/cursuri/uso2_curs.ppt

\ (backslash) pe Windows
C:\Documents and Settings\Student\Cursuri\uso2_curs.ppt

Orice ierarhie de directoare are un director rdcin


directorul rdcin pe Unix este /, indiferent de numrul de partiii Directorul rdcin pe Windows este c:\, d:\ etc.
13.10.2008 20

Directoare (cont.)
Dou intrri dedicate:
. (punct) directorul curent .. (punct punct) directorul printe
razvan@anaconda:~/junk/hello$ ls -a . .. hello hello.c

Doua tipuri de ci:


absolute:

relative (n raport cu directorul curent)


./svn/db/transactions

/home/stefanb/svn/db/transactions

Cum se execut un fiier executabil n Unix?


razvan@anaconda:~/junk/hello$ ./hello Hello, World!
13.10.2008 21

Link-uri

Legturi ctre alte intrri din sistemul de fiiere n Linux/Unix exist dou tipuri de linkuri
linkuri hard linkuri soft (simlink-uri)
link

stefanb@anaconda:~/testing$ touch file.txt stefanb@anaconda:~/testing$ ln -s file.txt linktofile.txt stefanb@anaconda:~/testing$ ls -l total 0 -rw-r--r-- 1 stefanb stefanb 0 2007-10-06 17:44 file.txt lrwxrwxrwx 1 stefanb stefanb 8 2007-10-06 17:45 linktofile.txt -> file.txt

13.10.2008

22

Tipuri speciale de fiiere


n Windows toate fiierele au suport fizic pe disc n Linux exist tipuri speciale de fiiere
Legturi simbolice Device files (localizate n /dev) dispozitivele hardware Named pipes & sockei Unix folosite pentru comunicarea ntre programe
razvan@anaconda:~$ ls -l /dev/hda1 brw-rw---- 1 root disk 3, 1 Oct 10 16:15 /dev/hda1 razvan@anaconda:~$ ls -l /var/run/mysqld/mysqld.sock srwxrwxrwx 1 mysql mysql 0 Oct 10 13:16 /var/run/mysqld/mysqld.sock
13.10.2008 23

Discuri i partiii
De ce se folosesc partiii?
pentru o mai bun organizare a datelor
partiie pentru sistemul de operare Windows/Linux partiie pentru date (home directory) partiie pentru swap etc.

Tipuri de partiii:
primare (maxim 4) extins - poate nlocui una dintre partiiile primare logice - se regsesc n interiorul partiiei extinse
13.10.2008 24

Perspectiva SO
Sectorul 0 al unui disc conine MBR (Master Boot Record)
MBR conine tabela de partiii

Fiecare partiie poate susine un sistem de fiiere Din punct de vedere structural, sistemul de fiiere conine

13.10.2008

superbloc bloc de control al spaiului liber directorul radcin fiiere i directoarele


25

Partiionare i formatare

Partiionare
procesul de mprire a unui disc n partiii utilitarul de baz Unix este fdisk

Formatare
procesul de creare a unui sistem de fiiere n cadrul unei partiii sistemele Linux folosesc familia de comenzi mkfs: mkfs.ext3, mkfs.vfat etc.

13.10.2008

26

Partiionare i formatare (cont.)

tabela de parti ii MBR parti ia 1 parti ia 2 parti ia 3 nealocat

bloc de spa iu liber pt super bloc boot managemnt

inodes

directoare rdcin

fiiere i directoare

Structura unui sistem de fiiere pe disc

13.10.2008

27

Montarea unui sistem de fiiere

La pornirea SO, se ncarc de pe disc sistemul de fiiere rdcin Ulterior, se pot monta (mount) alte sisteme de fiiere Montarea unui nou sistem de fiiere
adugarea sistemului de fiiere ntr-un anumit punct din ierarhia curent de directoare

13.10.2008

28

Montarea unui sistem de fiiere (cont.)

Pe Windows orice sistem de fiiere se monteaz automat ntr-o rdcin separat (C:\, D:\, etc.) Pe Unix exist un singur director rdcin
montarea se face, de obicei neautomat, ntr-un punct din ierarhie
# mount /dev/hda7 /mnt/disk

13.10.2008

29

Montarea unui sistem de fiiere (cont.)

13.10.2008

30

Denumirea intrrilor n Unix


Unix philosophy: Keep It Simple! Nume scurte, descriptive:
DA: main.c, config.txt, bash.rc NU: MainProgramFile.c, Configuration File For A Process.txt, BourneAgainShellResourceFile Se prefer /usr/share/doc n loc de C:\Program Files\Program Name\Documentation

Folosirea caracterului spaiu (blank) i a caracterelor speciale shell ($, [, {, *, etc.) este descurajat Fiierele, directoarele ascunse ncep cu . (punct)
$ ls simple.c $ ls a . .. .hidden.txt simple.c

Fisierele pot sa nu aib extensie; n general, executabilele nu au extensie


13.10.2008 31

Afiarea extensiei n Windows Explorer


Tools -> Folder Options

View -> Hide extensions for known file types

13.10.2008

32

ext
Extended File System Sistemul nativ Linux ext, ext2, ext3 ext3
folosit actualmente de multe din distribuiile Linux ext2 + faciliti de jurnalizare

Planuri pentru ext4 Sistem cu alocare indexat (inode) fsck (file system check)
verificarea consistenei unui sistem de fiiere tip Unix
13.10.2008 33

Inode
mod proprietar (2) etichete de timp (3) bloc dimensiune count date date date date date indirectare simpl indirectare dubl indirectare tripl
13.10.2008

blocuri directe

date

date date date


34

FAT
Folosit n MS-DOS, Windows '95, Windows '98 Conine:

13.10.2008

sectorul de boot FAT region Root Directory Region Data Region adresa urmtorului cluster un indicator special End Of File un caracter special pentru marcarea bad blocks un caracter special care s indice un cluster rezervat zero ca s indice un cluster neutilizat
35

O tabel FAT - list de intrri mapat peste clustere

Structur FAT
intrare director fis1 nume .. 73813 bloc de start 73813 8199 0

24811 8199

EOF 24811

-1

13.10.2008

36

NTFS
Windows 2000, Windows XP, Windows 2003 nlocuitor pentru FAT mbunt iri
liste de control al accesului (drepturi de acces) jurnalizare volume mount points (specificarea unei loca ii de montare, n locul crerii unui nou drive C:, D:) file compression encrypting file system cote (quotas)

ntfs-3g - driver recent pentru Linux, stabil i performant


13.10.2008 37

Cuvinte cheie
sistem de fiiere fiier binar fiier text (ASCII) extensie path (cale) separator director legturi (linkuri) hard-disk partiie primar partiie extins partiie logic sector de boot MBR montare (mount) inode sector de boot root (director rdcin) jurnalizare EXT3 FAT32 NTFS
38

13.10.2008

Link-uri utile Sisteme de fiiere


http://en.wikipedia.org/wiki/List_of_file_systems http://en.wikipedia.org/wiki/Comparison_of_file_systems http://opensolaris.org/os/community/zfs/

Tipuri de fiiere
http://filext.com/ http://en.wikipedia.org/wiki/Unix_file_types

Partiii
http://en.wikipedia.org/wiki/Disk_partitioning http://www.ranish.com/part/primer.htm
13.10.2008 39

The End

13.10.2008

40