Sunteți pe pagina 1din 40

Universitatea Politehnica Bucureti

Utilizarea sistemelor
de operare
Cursul 2: Sistemul de fiiere
08.10.2007

1. Introducere
Un sistem de operare reprezint o colecie de
programe destinate s administreze resursele
hardware ale unui sistem de calcul
Evoluia sistemelor de operare a cunoscut o
pant ascendent n ultimii 10 ani, ritmul
schimbrilor fiind din ce n ce mai alert
Pe piaa sistemelor de operare destinate staiilor
de lucru exist doua familii de produse:
Windows, produs de Microsoft, i Linux, aflat sub
licen GPL
2

Sistemul de fiiere
Componenta cea mai vizibil pus la dispoziie
de SO utilizatorului
Comenzile pentru interaciunea cu sistemul de
fiiere sunt primele nvate de utilizator;
eseniale pentru folosirea celorlalte comenzi
Dou componente:
componenta fizic se ocup cu alocarea i
organizarea datelor pe suportul fizic (hard disk, CDROM, floppy disk, flash)
componenta logic se ocup cu asigurarea unei
structuri ierarhice de directoare i fiiere

Sisteme de fiiere privire de ansamblu


De ce este nevoie de sisteme de fiiere?
necesitatea stocarii unui volum mare de date
informaia trebuie s fie persistent
informaia poate fi accesat concurent

Unitatea fundamental de stocare a informatiei este


fiierul
Un sistem de fiiere este o metod de stocare i
organizare a fiierelor pentru un acces rapid i eficient
Sistemele de fiiere necesit un dispozitiv de stocare
(hard disk, CD-ROM, floppy disk, RAM)

Faciliti ale sistemelor de fiiere


Sistemele de fiiere moderne folosesc un jurnal pentru a
asigura integritatea datelor n cazul cderilor sistemului
funcionalitatea se numete jurnalizare
Modul de funcionare a jurnalului:
Operaia asupra sistemului de fiiere este nregistrat ntr-un
jurnal
Driver-ul sistemului de fiiere execut periodic nregistrrile
din jurnal
Doar daca o nregistrare a fost executat cu succes ea este
tears din jurnal.
n cazul n care apare o cdere, la repornirea sistemului sunt
executate toate nregistrrile din jurnal
5

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)

Sisteme de fiiere - componente


Un sistem de fiiere poate fi privit n dou moduri:
din perspectiva utilizitorului logical file system
din perspectiva sistemului de operare

Important pentru utilizator este cum i apare un sistem


de fiiere, ce este un fiier, cum se realizeaz denumirea
unui fiier, ce operaii sunt permise asupra fiierului, etc.
Pentru sistemul de operare este important modul de
stocare a informaiei pe disc, folosirea unor algoritmi
eficieni pentru acoperirea blocurilor i sectoarelor de
pe dispozitivul de stocare

Elementele sistemului de fiiere


Fiier abstracia fundamental; un
fiier este o cantitate de informaie
stocat pe un suport fizic
Director element ce conine alte
fiiere sau directoare
Link (shortcut): legtur ctre un alt
fiier/director
Se mai numesc intrri n sistemul de
file
fiiere
Orice intrare n structura de directoare
are un nume
Structura cea mai obinuit este
structura ierarhic (arbore multici)
n Linux exist cteva tipuri de fiiere
speciale

folder

sub-folder

file

file

Ierarhia de directoare Unix

Ierarhia de directoare Unix (2)

/ - directorul rdcin
/bin comenzi binare (executabile) esentiale
/home conine directoarele de baz ale utilizatorilor
/usr conine binare suplimentare
/var date variabile (de obicei log-uri)
/boot boot loader 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 de baz (home) al
utilizatorului curent; ~student : scurttur shell pentru
directorul de baz al utilizatorului student
10

Ierarhia de directoare Windows

11

Ierarhia de directoare Windows (2)


A:\ C:\ D:\ - rdcinile pentru diferite sisteme de fiiere;
partiiile diferite se monteaz n rdcini diferite
C:\Windows\ - director coninnd programele de sistem
pentru Windows
C:\Program Files\ - director ce conine programele de
aplicaie pentru Windows
C:\Documents and Settings\ - echivalent /home n
lumea Windows; aici exist un subdirector pentru fiecare
utilizator unde acesta i poate stoca informaiile proprii

12

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

Comenzi Unix simple


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

14

Comenzi Unix simple (2)


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

15

Comenzi Windows
Windows ofer un CLI prin care se poate interaciona cu
sistemul de operare similar cu shell-ul de Linux.
Pentru a putea accesa CLI-ul, accesai 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 fisier


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

16

Comenzi Windows (2)


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

Afiarea proceselor din sistem:


D:\uso\curs USO\test> TaskList /SVC
Image Name
PID Services
firefox.exe
5044 N/A
------output omis-----------------------

Terminarea unui proces:


D:\uso\curs USO\test> TSKill 5044

17

Fiiere
Pot fi binare (fiiere de date, fiiere executabile) sau
fiiere text
Un fiier executabil execut un program
Un fiier text conine caractere ASCII (human readable)
Fiierele, ca i directoarele, au asociate un set de
drepturi
stefanb@anaconda:~/svn$ ls -l
total 28
drwxr-sr-x 2 stefanb stefanb 4096
drwxr-sr-x 2 stefanb stefanb 4096
drwxr-sr-x 5 stefanb stefanb 4096
-rw-r--r-- 1 stefanb stefanb
2
drwxr-sr-x 2 stefanb stefanb 4096
drwxr-sr-x 2 stefanb stefanb 4096
-rw-r--r-- 1 stefanb stefanb 229

2007-10-03
2007-10-03
2007-10-03
2007-10-03
2007-10-03
2007-10-03
2007-10-03

19:55
19:55
19:55
19:55
19:55
19:55
19:55

conf
dav
db
format
hooks
locks
README.txt

18

Fisiere (2)
Fiierele pot avea o extensie; formatul este
nume.extensie (file.txt, main.c, arhive.zip,
program.exe)
De obicei extensia precizeaz tipul fiierului, ns
Linux se folosete i de coninutul lui pentru a
determina tipul.
razvan@anaconda:~/junk$ file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1
(SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared
libs), not stripped
razvan@anaconda:~/junk$ file icsDrone-1.5.0.tar.gz
icsDrone-1.5.0.tar.gz: gzip compressed data, from Unix
razvan@anaconda:~/junk$ file test.cpp
test.cpp: ASCII C program text
razvan@anaconda:~/junk$ file fun.o
fun.o: ELF 32-bit LSB relocatable, Intel 80386, version 1
(SYSV), not stripped
razvan@anaconda:~/junk$ file test.txt
test.txt: ASCII text
19

Fiiere (3)
Extensii comune:

.txt fiiere text


.exe fisier executabil
.c, .h, .cpp, .java, .py fiier cod surs
.o (.obj) fiier obiect (binar)
.lib, .dll, .so biblioteci
.exe fiier executabil (Windows)
.sh script shell (Unix)
.bat batch script (Windows)
.zip, .rar, .tar, .tgz, .tar.bz2 fiier arhiv
.doc, .xls, .ppt fiier Office Kit
.avi, .mpeg, .rm fisier video
.bmp, .jpeg, .png, .gif fiier imagine
.wav, .midi, .mp3 fiier audio
20

Directoare
Folder/directory
O cale (path) n sistemul de fiiere este o succesiune de
directoare i, eventual, un fiier; separatorul este / pe
Unix i \ pe Windows
/home/student/cursuri/uso2_curs.ppt
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; pe Windows este c:\, d:\ etc.

21

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

Doua tipuri de ci:

Relative (n raport cu directorul curent):


./svn/db/transactions

Absolute:

/home/stefanb/svn/db/transactions

Cum se execut un fiier executabil n Unix?


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

Link-uri
Legturi (shortcuts) ctre alte intrri din sistemul de fiiere
n Linux exist dou tipuri de linkuri:
linkuri hard
linkuri soft (simlink-uri)
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

link

23

Tipuri speciale de fiiere


Sistemul de fiiere n Linux are funcii mai vaste
dect n Windows.
n Windows, toate fiierele au suport fizic pe disc.
n Linux, exist cteva tipuri speciale de fiiere, prin
intermediul crora se comunic cu anumite resurse
din sistem:
Legturile simbolice
Device files (localizate n /dev) dispozitivele hardware
Named pipes folosite pentru comunicarea ntre
programe
Sockets pentru comunicarea prin reea
24

Discuri i partiii
Pentru o mai bun organizare a datelor, pe discuri exist
partiii exemple de utilizare a partiiilor:
Partiie pentru sistemul de operare Windows/Linux
Partiie pentru date (home directory)
Partiie pentru swap etc.

Tipuri de partiii:
Primare (maxim 4)
Extinsa (poate nlocui una dintre partiiile primare)
Logice: se regsesc n interiorul partiiei extinse

Sistemele de fiiere se pot plasa doar n partiiile


primare i cele logice, pe suprafaa unui hard-disk
25

Sisteme de fiiere perspectiva SO


Sectorul 0 al unui disc conine MBR (Master Boot
Record); spre sfritul acestuia se afl tabela de partiii
Fiecare partiie conine un sector de boot propriu i un
sistem de fiiere
Din punct de vedere structural, sistemul de fiiere
conine:

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

26

Partiionare i formatare
Procesul de mprire a unui disc n partiii se
numete partiionare utilitarul Linux pentru
acest lucru se numete fdisk
Procesul de creare a unui sistem de fiiere ntr-o
partiie se numete formatare - sistemele Linux
folosesc familia de comenzi mkfs pentru acest
lucru: mkfs.ext3, mkfs.vfat etc.
Aceste activiti pot fi realizate i n mediu grafic:
GParted, QParted (Linux), sau Partition Magic
(Windows)
27

Sisteme de fiiere aspecte generale (cont.)

Tabela
de partitii
MBR

partitia 1

bloc de
spatiu liber pt
super bloc
boot
managemnt

partitia 2

inodes

partitia 3

directoare
radacina

nealocat

fisiere si
directoare

Structura unui sistem de fisiere pe disc

28

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 se realizeaz
ntr-un anumit punct din ierarhia curent de
directoare

29

Montarea unui sistem de fiiere (2)


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

30

Best Practice denumirea intrrilor n sistemul de


fiiere 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 caracterul . (punct)


$ ls
simple.c
$ ls a
.
..

.hidden.txt

simple.c

Denumirea unor directoare poate s se termine n .d (dir.d,


/etc/init.d)
Fisierele pot sa nu aib extensie; n general, executabilele nu au
extensie
31

Best Practice afiarea extensiei unui fiier n


Windows Explorer
Tools -> Folder Options

View -> Hide extensions for known file types

32

Sisteme de fiiere: 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 (i-node); ext a fost bazat pe
sistemul de fiiere Minix
fsck (file system check) utilitarul pentru verificarea
consistenei unui sistem de fiiere tip Unix
33

Inode
mod
proprietar (2)
etichete de timp (3)
bloc dimensiune
count

blocuri directe

date
date
date
date
date

indirectare simpla

date
date

indirectare dubla

date

indirectare tripla
date
34

Sisteme de fiiere: Reiser


sistem de fiiere general-purpose
primul sistem de fiiere cu jurnalizare inclus n kernel-ul
Linux
sistemul de fiiere implicit pe multe distribuii Linux
(Slackware, Xandros, Linspire)
jurnalizare, online resizing, tail packing (schem de
reducere a fragmentrii)
pentru fiiere mai mici de 4K, este mai rapid decat ext3
de 10-15 ori
Reiser4 este versiunea actual de dezvoltare (nu a fost
inclusa inca in kernel-ul Linux)
aduce mbunatiri pentru lucrul cu fiiere cu format
specific
35

Sisteme de fisiere: FAT


Folosit in MS-DOS, Windows '95, Windows '98
conine:

sectorul de boot
FAT region
Root Directory Region
Data Region

o tabel FAT este o list de intrri care se mapeaz pe


fiecare cluster i contine:

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
36

FAT
intrare director
fis1
nume

0
..

73813
bloc de
start
73813

8199

24811

EOF

8199

24811

-1

37

Sisteme de fiiere: NTFS


Windows 2000, Windows XP, Windows 2003
nlocuire pentru FAT
s-au adugat liste de control a accesului (drepturi de
acces) i jurnalizare
mbuntiri:
volume mount points (specificarea unei locaii de montare, n
locul crerii unui nou drive C:, D:)
file compression
encrypting file system
cote (quotas)

ntfs-3g este un driver recent pentru Linux,


stabil i performant
38

Link-uri utile
Sisteme de fiiere:
http://en.wikipedia.org/wiki/List_of_file_systems
http://en.wikipedia.org/wiki/Comparison_of_file_syst
ems

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

39

Cuvinte cheie

sistem de fiiere
fiier binar
fiier text
extensie
path (cale)
director
legturi (linkuri)
hard-disk
partiie primar
partiie extended
partiie logic
sector de boot

MBR
montare (mount)
inode
sector de boot
root (director radacin)
jurnalizare
EXT3
ReiserFS3
FAT32
NTFS
UDF
HFS+
40

S-ar putea să vă placă și