22
Republia Srbija Visoka škola primenjenih strukovnih studija Vranje Seminarski rad iz Primene računara Tema: Rad sa fajlovima u Windows-u Vranje , 2011.

Rad Sa Fajlovima

Embed Size (px)

Citation preview

Page 1: Rad Sa Fajlovima

Republia SrbijaVisoka škola primenjenih strukovnih studija

Vranje

Seminarski rad

iz

Primene računara

Tema: Rad sa fajlovima u Windows-u

Predmetni nastavnik : Student:

Prof. dr Stanoje D. Cvetković

Vranje , 2011.

Page 2: Rad Sa Fajlovima

Sadrzaj

Uvod..........................................................................................................................2

FAJL SISTEM OPERATIVNOG SISTEMA WINDOWS......................................3

Osobine i implementacija Windows 2000 fajl sistema.............................................4

Struktura fajl sistema..............................................................................................4

Kompresija fajlova u Windows 2000.....................................................................6

Pronalaženje putanje i otvaranje fajlova................................................................6

Enkripcija fajlova...................................................................................................7

Šta je fajl ekstenzija.................................................................................................10

Kako videti ekstenziju fajla?................................................................................10

Zakljucak.................................................................................................................13

Literatura.................................................................................................................14

1

Page 3: Rad Sa Fajlovima

Uvod

Fajlovi mogu biti obicni fajlovi, direktorijumi i specijalni fajlovi.

Obični fajl je niz bajtova. Velicina fajla je jednaka ukupnom broju znakova koje fajl sadrzi. Fajlu se može pristupiti (čitati ili pisati) počev od bilo kog bajta. Podaci unutar fajla nemaju nikakvu strukturu osim one koju sam korisnik definiše. U samom fajlu se ne nalaze nikakve informacije o tom fajlu, već su one u fajl sistemu.

Fajl sistem čuva sledeće informacije o fajlovima: ime fajla, jedinstven broj fajla nazvan inode, velicinu u bajtovima, vreme kreiranja, vreme poslednje izmene, vreme poslednjeg pristupa, pristupne dozvole, vlasnika fajla i grupu kojoj pripada vlasnik fajla.

Specijalni fajlovi se nalaze u /dev direktorijumu i predstavljaju hardverske uredjaje.

Fajl sistem UNIX operativnog sistema je hijerarhijski struktuiran u vidu stabla. Na vrhu stabla je direktorijum koji se naziva korenom (root) i označava se kosom crtom (/).

Procesi identifikuju fajlove po njihovoj putanji i imenu. Putanja(put) je niz imena direktorijuma na čijem se kraju nalazi ime ciljnog direktorijuma ili fajla. Sva imena u putanji su razdvojena kosom crtom. Ako putanja počinje kosom crtom znači da je formirana od korena, to jest od root direktorijuma, i tada se naziva potpunim ili apsolutnim putanjom. Putanja se takodje može kreirati relativno u odnosu na radni (working)-tekući direktorijum i tada se naziva relativna putanja i ne počinje kosom crtom. Svi direktorijumi i fajlovi, osim root direktorijuma, imaju neposrednog prethodnika (parent directorijum) koji je označen sa "..", dok je radni direktorijum označen sa ".".

Iako postoji više fajl sistema, svi su smešteni pod root fajl sistemom. Root fajl sistem je uvek prisutan, dok se fajl sistemi sa drugih uredjaja (diskova, cdrom-ova) montiraju pod neki direktorijum na root fajl sistemu. Montiranje se obavlja eksplicitno, bilo pri startovanju sistema, bilo na korisnikov zahtev.

2

Page 4: Rad Sa Fajlovima

FAJL SISTEM OPERATIVNOG SISTEMAWINDOWS

Windows podržava: NTFS (New Technology File System), podržava FAT32 (File Alocation Table) i FAT16 particionisane diskove. FAT16 je MS-DOS fajl sistem i omogućava korišćenje disk particija do 2 GB. FAT32 bolje organizuje disk prostor i particije mogu biti veličine do 2 TB. NTFS je novija vrsta fajl sistema koju koriste Windows NT 4.0 i Windows 2000. Ovaj fajl sistem koristi 64 bit-ne adrese i teoretski radi sa particijama do 26464 bajta. Korišćenje NTFS tehnologije znači veću sigurnost, tj. zaštitu i veću toleranciju (i korekciju) greški. Kada govorimo o zaštiti, ovdje mislimo na EFS sistem enkripcje fajlova. Tolerancija greške se odnosi na činjenicu da NTFS fajl sistem automatski otklanja greške ne prikazujući pri tome poruke o greškama. On lokalizuje loše klustere i vrši tzv. Cluster Remapping što znači da onemogućava ponovno korišćenje tih losih klustera. Proces otkrivanja ovih greški se ovdje radi tako što prije upisa podataka na disk, Windows 2000 pravi kopiju podataka koje će privremeno držati u memoriji. Dalje, on pokušava da podatke smjesti na disk i odmah poslije toga upoređuje te podatke sa podacima u memoriji. Ako ovi podaci u ovom trenutku nijesu identični, znači da se radi o greški na disku pa se radi Cluster Remapping i traži se drugo mjesto na disku za smještanje ovih podataka sa privremene memorije.

Kada se prave particije, postavlja se pitanje koje su optimalne veličine tih particija? Veće particije s jedne strane dovode do sporijeg pristupa disku jer se mnogo toga može odjednom pisati na tom disku. S druge strane, kod multimedijalnih zapisa, velikih baza podataka i slicno, potrebne su veće paritcije. Optimalno riješenje je napraviti particije određene namjene tako da svaka od njih ne bude veća od veličine koja je neophodna za određenu namjenu.

Ono što korisnik može u radu sa fajlovima NTFS sistema primjetiti, je da imena fajlova mogu imati maksimalno 255 karaktera, da su putanje (engl. paths) limitirane na 32767 karaktera, da su imena fajlova Unicode što znači da je dozvoljeno koristiti npr. grčko pismo ili neko drugo nelatinsko pismo, da su imena

3

Page 5: Rad Sa Fajlovima

fajlova Case Sensitive što znači da pravi razliku malih i velikih slova u imenu fajla (ali rijetko se može primjeniti zbog toga što su većina programa pravljeni isključivo za FAT32 koji inače nije Case Sensitive), itd. NTFS fajl sistem omogućava automatsko prepoznavanje prečica u slučaju da se izvorno mjesto fajla dislocira.

Pozivi Win32 API su slični kao kod UNIX-a sa razlikama u sistemu sigurnosti i u broju parametara. Npr. otvaranje fajlova vraća handle koji služi za čitanje/pisanje nad fajlom. Interesantnije API funkcije za fajlove su: CreateFile, DeleteFile, CloseHandle, GetFileAtributes, itd. Za foldere, važnije funkcije su: CreateDirectory, RemoveDirectory, FindFirstFile, itd.

Osobine i implementacija Windows 2000 fajl sistema

Glavne osobine NTFS sistema se mogu opisati uspomoć sljedećih kategorija: strukture fajlova, pronalaženja putanje do fajla, kompresije fajla i enkripcije.

Struktura fajl sistema

Kao što je poznato, disk drajv može da ima više particija. Svaka particija predstavlja linearni niz blokova koji, po memorijskoj veličini, mogu biti od 512 bajta do 64 KB. Najčešće su ovi blokovi veličine 4KB i njima se pristupa preko 64-bitno adresiranog ofseta. Način pristupa je takav da se daje početni blok i ofset koji ukazuje broj narednih blokova kojima treba pristupiti.

Veoma važnu ulogu u objasnjavanju fajl sistema Windowsa 2000, ima tzv. Master File Table (MFT). MFT je linearni niz zapisa od po 1 KB od kojih svaki opisuje po jedan fajl. Oni sadrže atribute fajlova kao i adrese blokova na disku gdje su ti fajlovi memorisani. MFT je u stvari jedan fajl koji može da se povećava teoretski sve do 24848 zapisa. Svaki MFT zapis (1KB) sadrži zaglavlje zapisa poslije kojeg dolaze dvije vrijednosti: zaglavlje atributa i vrijednost atributa. Dalje se niz nastavlja na zaglavlje drugog atributa i na vrijednost drugog atributa, itd. Zaglavlje atributa identifikuje određeni atribut. Obično poslije njega dolazi

4

Page 6: Rad Sa Fajlovima

vrijednost atributa ali to ne mora biti pravilo. Naime, postoje fajlovi ili direktorijumi ciji su atributi veliki pa se moraju podijeliti na dva ili više bloka na disku. Takvi atributi se nazivaju nerezidentnim atributima. Zaglavlja atributa za rezidentne atribute su veličine 24 bajta dok su za nerezidentne veća jer oni sadrže i informacije o tome kako naći atribut na disku. NTFS definiše 13 atributa koji se mogu pojaviti na MFT zapisima. Važna kategorija zapisa su tzv. metadata fajlovi koji su u stvari prvih 16 zapisa MFT. Svaki od ovih zapisa je običan MFT podatak koji sadrži atribute za fajlove na disku, s’tim što ovo nijesu obični fajlovi vec fajlovi koji ukazuju ja informacije o samom fajl sistemu. Tako, npr. ako pravimo novi direktorijum ili brišemo neki direktorijum, ova se radnja loguje u drugom zapisu MFT fajla ($LogFile). Inače, svi metadata zapisi počinju znakom $.

Od atributa, najinteresantniji je atribut data koji predstavlja mjesto na disku (blokove) gdje je određeni fajl fizicki memorisan. Ako je neki fajl mali (reda nekoliko stotina bajtova), on se može smjestiti citav u MFT zapis i takav fajl se naziva direktnim (engl. immediate) fajlom. Obično je, ipak, atribut data, nerezidentan atribut. U ovim slučajevima potrebno je “skakati” sa jednog bloka na drugi, unutar disk prostora. Ovdje se kao argumenti daju početni blokovi na koje se “skace” i dužina hoda, tj. broj blokova u nizu počevsi od navedenog početnog bloka (engl. run length). Primjer fajla koji je zadržan u 9 blokova i koji ima 3 “skoka” (engl. run) je dat na sl.8.

slika 8Ovdje npr. imamo prvi run koji ukazuje na blokove 20, 21, 22 i 23, itd. Svi

ovi Run-ovi su upisani u MFT kao podaci. Koliko ce biti Run-ova zavisi od efikasnosti Disk Block Alocator-a u trenutku kreiranja fajlova kada se njegova efikasnost mjeri sposobnošću da broj Run-ova što više reducira, tj. da ih smjesti što blize jedno drugom. Parovi adresa-broj blokova, rekli smo da se sastoje od 64-bitnih brojeva, što znači da zauzimaju 2x8 bajtova ili 16 bajtova. Kompresijom se danas u praksi veličina ovih parova svodi na 4 bajta.

NTFS particije se mogu kreirati na dva načina: direktan način (odmah poslije formatizacije diska) i pretvaranjem sa FAT sistema. Pokazuje se da je

5

Page 7: Rad Sa Fajlovima

mnogo efikasniji način direktnog stvaranja NTFS particije jer se u tom slučaju MFT kreira na početku diska (gdje bi izvorno i trebalo da postoji) dok se u drugom slučaju smješta bilo bilo gdje na disku gdje ima slobodnog prostora što često završava sa lošom fragmentacijom.

Kompresija fajlova u Windows 2000

Kompresija fajlova se u Windowsu radi (od strane NTFS sistema) automatski. Sistem automatski po kreiranju fajla, pri pisanju na disk, “pokušava” da komprimira određeni fajl. Prilikom čitanja, fajl se automatski dekomprimuje. NTFS radi kompresiju fajlova tako što prvo ispituje prvih 16 logičkih blokova fajla i njih pokušava da komprimuje. Ako je rezultat komprimiranja 15 blokova ili manje, to znači da je kompresija uspjela i ti se blokovi upisuju na disk u komprimovanoj formi, po mogućnosti u jednom Run-u. Ako je rezultat i dalje 16 blokova, taj se niz blokova upisuje u nekomprimovanoj formi na disku. Dalje se na isti način ispituju sljedećih 16 logičkih blokova fajla, itd. Niz od 16 blokova je uzet kao kompromisno optimalno riješenje. Manji setovi bi umanjili efikasnost kompresije a veći bi otežali način pristupa komprimovanim setovima. Kada kopiramo ili premještamo fajl ili direktorijum sa jednog mjesta na drugo, sistem dekomprimuje komprimovani fajl ili direktorijum i ponovo ga komprimuje na novom mjestu. Važno je istaći da komprimovani fajlovi uspomoć NTFS sistema ne povećavaju efikasnost slanja preko mreže jer se fajl, na isti način kao i kod kopiranja i premještanja, prije putovanja preko mrežnog fizičkog medijuma, dekomprimuje. Pošto je kompresija procesorski zahtjevan posao, na velikim serverima i u slučaju baza podataka sa čestim upisima, poželjno je programu onemogućiti kompresiju.

Pronalaženje putanje i otvaranje fajlova

NTFS u traženju i pridruživanju putanje koristi tzv. B + tree strukturu umjesto pretraživanja fajlova linearno. Recimo da se otvara fajl “prezime” koji se nalazi na lokaciji “C:\ime”.

Kada korisnički program želi otvoriti neki fajl, on obično napravi CreateFile poziv koji sada ide na korisnički dll, konkretno kernel32.dll gdje imamo \?? objekat koji sadrži sva imena uređaja u MS-DOS stilu kao A:, C: itd. Ova imena su su stvari simbolični linkovi na direktorijum \Device gdje objekti ovih device-a postoje. Sada link dalje pokazuje na prvu particiju prvog diska a time i na MFT. Traženje fajla se nastavlja preko root direktorijuma čiji se blokovi nalaze (po

6

Page 8: Rad Sa Fajlovima

definiciji) na petom zapisu MFT fajla ($ - Root Directory). U root direktorijumu se sada traži string ime i kada se nađe, dobije se pokazivac na MFT zapis gdje se direktorijum “ime” nalazi. Sada se pretražuje ovaj zapis da bi se našao string prezime. Kada se ovaj string nađe, object manager odmah kreira novi objekat. Ovaj objekat je sada neimenovan i handle ovoga objekta se sada vraća procesu koji ga je pozvao da bi on manipulisao tim objektom. Šematski je ovaj proces prikazan na sl.9.

slika 9

Enkripcija fajlova

Enkripcija fajlova predstavlja proces šifrovanja fajlova tako da oni ne mogu biti upotrebljivi za neautorizovana lica. Osnova, tj. fajl koji se enkriptuje, se naziva plaintext dok je enkriptovani fajl ciphertext. Da bi se neki fajl enkriptovao, koriste se određeni algoritmi. Oni obično koriste takozvane ključeve (engl. keys). U opštem slučaju, ako sa P označimo plaintext, sa Ke ključ enkripcije, sa C ciphertext i sa E algoritam enkripcije, možemo napisati da je C = E (P,Ke). Analogno, ako sa D i Kd označimo algoritam dekripcije i ključ dekripcije respektivno, dekripcija bi se mogla opisati u opštem obliku: P = D(C, Kd). Postoje dvije vrste kriptografije: simetrična (kriptografija tajnog ključa) koja faktički koristi sirjektivno preslikavanje tako da su enkripcija i dekripcija podjednaki po složenosti, i nesimetrična (kriptografija javnog ključa) kod koje su proces enkripcije i dekripcije matematicki nesimetrični a samim tim i po složenosti. Nesimetrična kriptografija je mnogo sporija od simetrične ali je i

7

Page 9: Rad Sa Fajlovima

sigurnija. Windows 2000 koristi kombinaciju ovih dviju vrsta enkripcije. Enkripcija je potrebna kod fajlova visoke važnosti zbog toga što postoje

razni načini za zaobilaženje Windowsovog sistema zaštite. Tako npr. sistem se može startovati koristeći MS DOS start-up disketu čime se sistemska zaštita logovanja preskače. Ova zaštita se preskače i u slučaju da se disk stavi kao slave paralelno sa nekim drugim diskom koji ima neki operativni sistem bez zaštite (npr. Windows 98). Obično se nad nekim folderom vrši enkriptovanje tako da se svi fajlovi visoke tajnosti mogu smjestiti u tom folderu čime su oni automatski enkriptovani.

Da bi se izvršila enkripcija, Windows koristi drajver EFS (Encrypting File System), koji se nalazi izmedju NTFS sistema i korisničkog procesa. Kada neki fajl treba da bude enkriptovan, generiše se prvo 128 bit-ni ključ K preko funkcije generatora slučajnih brojeva kojim se kriptuje fajl blok po blok. Ovdje se koristi simetrični način enkriptovanja koji u stvari predstavlja neku varijantu DES (Data Encryption Standard) standarda iako će novije verzije EFS-a podržavati nove algoritme kriptovanja. Za svaki fajl se generiše drugačiji ključ što predstavlja prednost u odbrani od pokušaja neautorizovanog pristupa fajlu. Sada imamo kriptovani fajl ali moramo sačuvati i ključ da bi se kasnije fajl mogao dekriptovati. Nelogično je da se taj ključ u izvornoj formi (plaintext) čuva na disku zajedno sa fajlom jer bi u tom slučaju dekripcija bila vrlo jednostavna a samim tim gotovo da se ne bi moglo govoriti o sistemu zaštite. Zbog ovoga se sada ovaj ključ ponovo kriptuje ali sada nesimetričnim (Public key) algoritmom i kao takav se smješta na disk. Kriptovanje se radi uspomoć javnog korisničkog ključa (eng. user’s public key). Informacija o mjestu gdje je javni korisnički ključ smjesten, nalazi se u registrima ali ova informacija ne može pomoći neautorizovanij osobi da dekriptuje fajl jer se za dekripciju mora koristiti tzv. privatni ključ. Prvi put kada se radi enkripcija fajla uspomoć EFS - a, Windows 2000 generiše par (privatni ključ, javni ključ). Privatni ključ je u stvari podatak enkriptovan uspomoć simetričnog algoritma i smješten na disk. U ovoj enkripciji se koristi pasvord koji korisnik unosi prilikom logovanja ili unos sa smartcard-a (ako je to omogućeno) zbog čega se i naziva privatni ključ. Prilikom logovanja, EFS automatski dekriptuje privatni ključ i zadržava ga u vitrualnom adresnom prostoru tako da se za dekriptovanje K ključa ne mora pristupati disku. Kada se sistem ugasi, privatni ključ se briše sa virtualnog adresnog prostora tako da neautorizovano lice, u slučaju pokušaja pristupa fajlu a ne znajući log-on informacije, ne dobija dekriptovani privatni ključ što mu onemogućava dekriptovanje fajlova. Proces enkripcije i dekripcije se šematski može predstaviti kao na sl. 10.

8

Page 10: Rad Sa Fajlovima

slika 10Kao što vidimo, Windows 2000 u enkriptovanju fajlova koristi oba načina

enkripcije: simetrični i nesimetrični. Za enkriptovanje samih podataka fajla se koristi simetrični algoritam a za enkriptovanje ključeva (koji su inače manji), koristi se nesimetrični algoritam. Razlog korišćenja ove kombinacije lezi u kompromisu zahtjeva veće sigurnosti i brzine kriptovanja/dekriptovanja.

EFS se nalazi u Windows 2000 kernelu. On podržava i enkripciju/dekripciju and fajlovima memorisanim na udaljenim serverima. Za enkripciju podataka preko mreže, Windows 2000 obezbjeđuje SSL i IPSEC protokole.

Šta je fajl ekstenzija

9

Page 11: Rad Sa Fajlovima

Ekstenzija fajla predstavlja sufiks odnosno dodatak na ime fajla koji omogućava operativnom sistemu da prepozna  kog je formata određen fajl. Na osnovu formata zaključujemo i koji program treba koristiti za otvaranje fajla.

U Windows operativnom sistemu ekstenzija fajla ima tri slova, na primer: .doc ili .pdf za dokumenta, .mp3 za muziku, .avi za video fajlove, .jpg za slike i slično.

Svaki program koji instalirate na kompjuteru može otvarati jedan ili više fajl formata.  U slučaju da imate instaliranih više programa koji otvaraju istu

ekstenziju, defoltni program (default program) će otvoriti  fajl.

Kako videti ekstenziju fajla?

U Windowsu  operativnom sistemu su po pravilu  ekstenzije skrivene. To znači da u imenu fajla, na primer neke slike  ne vidimo slika.jpg nego samo slika.  Ako želimo da u Windows operativnom sistemu podesimo da nam sve ekstenzije fajla budu vidljive pratimo sledeće korake:

1. Start dugme - Control Panel - Appearance and Personalization – pa kliknemo na Folder Option ili,

2. Otvorimo Windows Explorer i izaberemo Opcije u Folderu kao na slici:

10

Page 12: Rad Sa Fajlovima

Nakon toga izaberemo View i ako želimo da vidimo fajl ekstenzije otštikliramo polje: Hide extensions for known file types.

11

Page 13: Rad Sa Fajlovima

Ekstenziju fajla nije preporučljivo menjati jer u tom slučaju operativni sistem neće prepoznati o kom se formatu radi i neće moći da otvori fajl. Ako želite da fajl određenog formata prevedete u drugi format morate upotrebiti određeni fajl konvertor, na primer konvertor .jpg u .txt format kako bi sliku preveli u tekst. Obično menjanje ekstenzije neće biti ni od kakve pomoći.

U izuzetnim slučajevima možemo menjati fajl ekstenziju kada znamo da Windows može da prepozna fajl format, na primer, kada menjamo .txt u .htm, iz tekst formata u HTML format. To radimo veoma jednostavno. Prvo treba da obezbedimo da ekstenzije budu vidljive što smo uradili u prethodnom koraku, zatim samo desnim klikom kliknemo na fajl, izaberemo Rename ( ili pritisnemo F2). Nakon toga u imenu fajla izbrišemo .txt, zamenimo ga sa .htm i sačuvamo promene.

12

Page 14: Rad Sa Fajlovima

Zakljucak

Bez fajl sistema programi neće moći da pristupe podacima po imenu fajla ili direktorijuma i da će morati da budu u mogućnosti da direktno pristupite podacima regiona na uređaj za skladištenje.Fajl sistemi se koriste na uređaji za skladištenje podataka kao što su hard diskovi , diskete , optičke diskove ili flash memorije uređaja za skladištenje da se održi fizičku lokaciju računarske datoteke . Oni mogu da obezbede pristup podacima na serveru datoteka delujući kao klijenti za mrežni protokol (na primer, NFS-om , mala i srednja preduzeća , ili 9P klijentima), ili mogu biti virtuelne i postoje samo kao metode pristupa virtuelnim podataka (npr. procfs ). Ovo se razlikuje od usluge direktorijuma i registra .

Literatura

13

Page 15: Rad Sa Fajlovima

www.internet

www.vikipedia

Primena racunara prof. Dr Stanoje D. Cvetkovic

14

Page 16: Rad Sa Fajlovima

64

48