Systemy plików.

Transkrypt

Systemy plików.
Systemy plików.
Plik (ang. file), jest to nazwany ciąg danych (inaczej zbiór danych), o skończonej długości,
posiadający szereg atrybutów i stanowiący dla systemu operacyjnego całość.
Pliki dzieli się na kilka typów:
● katalogi (stosuje się też nazwy foldery lub kartoteki) - (ang. directory), pliki zawierające
spis odwołań do innych plików (w tym także do katalogów),
● dowiązania symboliczne - (ang. symbolic link) odwołanie do innego pliku; większość
operacji na tego typu plikach będzie w rzeczywistości wywoływane na plikach, na które one
wskazują (skróty do plików :-)).
● kolejki FIFO (ang. First In, First Out, w skrócie FIFO), gniazda (ang. sockets), strumienie
danych itd. - realizujące bardziej złożone zadania, występują nie w każdym systemie
● pliki „zwykłe” - pliki zwierające dane jako ciąg bajtów zależenie od typu dane te mogą być
rożnie interpretowane np.:
● pliki wykonywalne (ang. executable files), skrypty (ang. scripts), pliki wsadowe
(ang. batch files) - zawierające program do wykonania lub polecenia dla interpretera
(często powłoki)
Ponadto system DOS (a później i Windows) rozróżnia pliki:
● tekstowe - dane zapisane w formie kodów ASCII łącznie z kodami sterującymi
urządzeniami (np. drukarka, terminal, ekran) do których mają być wysłane,
● binarne - pozostałe pliki.
W systemach uniksowych pliki binarne i tekstowe są tożsame.
System plików – metoda przechowywania plików, zarządzania plikami, informacjami o tych
plikach, tak by dostęp do plików i danych w nich zgromadzonych był łatwy dla użytkownika
i systemu
Systemy plików stosuje się dla różnych nośników danych, takich jak dyski, dyskietki, a także
w sieciach komputerowych, pamięciach. We współczesnych systemach operacyjnych bezpośrednie
operowanie na danych w plikach zarezerwowane jest tylko dla systemu operacyjnego, aplikacje
mają dostęp tylko do operacji na plikach i mają zabroniony bezpośredni dostęp do nośnika danych.
Większość systemów operacyjnych posiada własny (macierzysty) system plików, rozwijany
równolegle z nim (np. FAT w DOS-ie, NTFS w Microsoft Windows NT lub ext/ext2/ext3/ext4
i ReiserFS/Reiser4 w Linuksie), ze względu na pewne specyficzne właściwości nadawane plikom
(np. atrybut wykonywalności pliku), podobnie jak niektóre nośniki danych (np. ISO 9660 na CDROM i UDF na DVD), jednak sam system plików jest niezależny od nich. Same systemy
operacyjne potrafią obsługiwać wiele systemów plików.
Organizacja danych
Nośniki danych, takie jak dyski twarde, dyskietki posiadają blokową strukturę danych, znaczy to, że
dane są w nich przechowywane w postaci bloków, a blok musi być w całości zapisywany
i odczytywany, bloki te nazywane są sektorami). W przypadku dysków i dyskietek mają taką samą
wielkość (przeważnie 512 bajtów).
Bloki tworzą strukturę liniową:
Blok 0 Blok 1 Blok 2 Blok 3 … Blok n
Systemy operacyjne łączą bloki w klastry. Klaster składa się z kilku bloków.
Dyskowy system plików część pamięci wykorzystuje na tzw. sektor rozruchowy (boot sector), który
nie stanowi zasadniczej części systemu plików i jest używany do rozruchu systemu. Ponadto
systemy plików przechowują listy wszystkich klastrów (oraz informacje do których plików one
należą) w tzw. tablicach alokacji.
Jeżeli program chce wykonać jakąś operację na pliku robi to poprzez system plików.
Rodzaje systemów plików
●
Dyskowy system plików - "normalny" system plików pozwalający na zarządzanie danymi
na stacjonarnych nośnikach danych, takich jak twarde dyski. Każdy system posiada swój
własny system plików (np. Linux - ext2, Windows NT - NTFS Windows 95,98,ME,XP,Vista
- FAT,FAT32 itd.).
●
Systemy dziennikujące (lub księgujące, ang. journaling) - systemy z mechanizmem
księgującym, zwiększającym bezpieczeństwo danych i umożliwiającym szybkie
przywrócenie sprawności systemu po awarii. Mechanizm taki posiadają nowsze
systemy plików (np. NTFS, HFS+ lub ext3).
●
Sieciowy system plików - w zasadzie jest to protokół umożliwiający przesyłanie poleceń do
serwera przez sieć oraz wykonywanie operacji na odległość. Informacje są z powrotem
przekazywane z serwera do klienta. Dzięki takiemu rozwiązaniu użytkownik nie widzi
żadnej różnicy między pracą na sieciowym systemie plików a pracą na lokalnym systemie
plików. Najbardziej znane to NFS, Coda, AFS, SMB (Otocznie sieciowe pod Windows) oraz
NCP (Novella).
●
Specjalne systemy plików (Wirtualne systemy plików) - nie umożliwiają zarządzania
danymi, np. system /proc (w Linuksie) dostarcza interfejsu, który umożliwia dostęp do
niektórych struktur jądra.
●
Systemy oparte na bazie danych - systemy plików, w których pliki są identyfikowane na
podstawie swojej charakterystyki (np. autora, typu czy tematu, którego dotyczą) - jak
w bazach danych.
Hierarchiczność systemu plików
Prymitywne systemy plikowe posiadały jedną listę plików wchodzących w skład systemu plików.
W miarę postępu systemy plików zostały unowocześnione i współczesne systemy plików oprócz
głównej listy (katalogu głównego) zawierają także podlisty (podkatalogi) które również mogą
zawierać dalsze podlisty (podkatalogi). W ten sposób rozwinęło się pojęcie katalogów nadrzędnych
oraz katalogów podrzędnych.
Katalog, w którym znajduje się plik jest nadrzędny (bezpośrednio) względem tego pliku.
Katalog jest podrzędny (bezpośrednio) względem innego katalogu w którym się znajduje.
W ten sposób powstało pojęcie drzewiastej hierarchii systemu plików, w której każdy
katalog może zawierać podkatalogi, które mogą zawierać dalsze podkatalogi. Powstaje w ten
sposób struktura, która wygląda jak "odwrócone drzewo".
Systemy, które mają taką strukturę nazywają się hierarchicznymi systemami plików. W
takich systemach plik identyfikowany jest nie tylko na postawie unikalnej nazwy ale również
ścieżki dostępu.
Dysk twardy – jeden z typów urządzeń pamięci masowej, wykorzystujących nośnik magnetyczny
do przechowywania danych. Nazwa "dysk twardy" (hard disk drive) powstała w celu odróżnienia
tego typu urządzeń od tzw. "dysków miękkich", czyli dyskietek (floppy disk), w których nośnik
magnetyczny naniesiono na elastyczne podłoże, a nie jak w dysku twardym na sztywne.
Pierwowzorem twardego dysku jest pamięć bębnowa. Pierwsze dyski twarde takie, jak dzisiaj
znamy, wyprodukowała w 1980 r. firma Seagate. Pierwszy dysk przeznaczony do
mikrokomputerów miał pojemność 5 MB.
Procedura uruchamiania systemu z dysku twardego czyli po co nam MBR ;-).
Po przeprowadzeniu procedury testowej (POST) przez BIOS, sterowanie jest przekazywane do
pierwszego urządzenia z listy startowej (boot order) które ma prawidłowo zapisany MBR:
MBR (ang. Master Boot Record) – główny rekord startowy, czyli umowna struktura zapisana
w pierwszym sektorze dysku twardego. Zawiera on program rozruchowy oraz główną tablicę
partycji (w przypadku dysku twardego – dyskietki zwykle nie posiadają tablicy partycji). MBR
znajduje się na zerowej ścieżce, zerowym cylindrze, w pierwszym sektorze dysku (CHS 0,0,1).
MBR ma 512 bajtów długości, z czego pierwsze 446 bajtów zajmuje program rozruchowy
(bootstrap). Druga część MBR – tablica partycji – zawiera 4 struktury opisujące poszczególne
partycje podstawowe, każda po 16 bajtów. MBR kończą 2 bajty sygnatury – szesnastkowo 0x55
0xAA, co daje 446 + (4 · 16) + 2 = 512.
512 bajtów
446 bajtów
bootstrap
64 bajty (4 x 16)
partycja 1
partycja 2
partycja 3
2 bajty
partycja 4
0x55
0xAA
Każda partycja posiada sektor rozruchowy, natomiast cały dysk posiada a Główny Sektor
Rozruchowy (MBR). Sektor rozruchowy partycji może posiadać własny program rozruchowy, co
wykorzystuje program NT OS Loader służący do uruchamiania systemów operacyjnych z rodziny
Windows NT, z wyjątkiem Windows Vista. Program rozruchowy zawarty w sektorze rozruchowym
partycji może zostać wykonany tylko po przekazaniu mu sterowania przez program rozruchowy
zawarty w MBR-ze, ponieważ BIOS umie uruchamiać program rozruchowy (boot loader) tylko
z MBR-u.
Program rozruchowy (ang. boot loader). W komputerach PC nagłówek (segment startowy)
umieszczony w pierwszym, 446-bajtowym fragmencie sektora MBR dysku twardego. W systemach
DOS/Win32 jest tam zapisany program, który ładuje kolejny program rozruchowy z partycji
oznaczonej jako aktywna. W systemach uniksowych pliki dodatkowe programu rozruchowego
znajdują się zazwyczaj w katalogu lub partycji montowanej w katalogu /boot. Program rozruchowy
oraz cały system operacyjny może być pobierany także z innych urządzeń takich jak stacja
dyskietek, napęd CDROM, dyski USB a nawet spoza komputera, z serwera w sieci lokalnej.
Partycja - logiczny, wydzielony obszar dysku twardego, który może być sformatowany przez
system operacyjny w odpowiednim systemie plików. Rozmaici producenci systemów operacyjnych
i oprogramowania stosują różną terminologię, (np. Microsoft nazywa ją dyskiem lokalnym a
systemy BSD zamiast określenia partycja używa się określenia slice). Każda partycja (lub dysk
logiczny) jest opisana w MBR lub w partycji rozszerzonej w następujący sposób:
Opis
flaga
aktywności
startowy CHS
typ partycji
końcowy CHS
sektor
początkowy
liczba sektorów
partycji
Numer bajtu:
1
2-4
5
6-8
9-12
13-16
Partycja rozszerzona - rodzaj partycji, który można tworzyć tylko na podstawowych dyskach
MBR (ang. master boot record). Partycje rozszerzone są użyteczne, gdy trzeba utworzyć więcej niż
cztery woluminy na podstawowym dysku MBR. W przeciwieństwie do partycji podstawowych.
Zamiast tego w ramach jednej partycji rozszerzonej można utworzyć jedną lub więcej partycji
logicznych, który po utworzeniu można sformatować.
Partycje logiczne przypominają partycje podstawowe, chociaż liczba partycji logicznych, jaką
można utworzyć na jednym dysku fizycznym, jest nieograniczona, a liczba partycji podstawowych
wynosi maksymalnie cztery.
Powody partycjonowania:
Partycjonowanie umożliwia posiadanie kilku systemów plików na jednym dysku twardym.
Powodem partycjonowania mogą być:
●
ograniczenia techniczne (np. stare wersje FAT mają ograniczenia co do wielkości partycji,
stare biosy nie mogą zaadresować obszaru poza 1024 cylindrem, więc partycja startowa
musi znajdować się przed tą granicą)
●
uszkodzenie danych na jednej partycji nie ma wpływu na inne partycje
●
często systemy operacyjne nie mogą być zainstalowane na jednej partycji lub używają
innego systemu plików. Wtedy instaluje się je na oddzielnych partycjach.
●
by zapobiec zapełnieniu dysku przez określoną usługę, można jej dane umieścić na
oddzielnej partycji (np. logi systemowe).
●
każda partycja może być dostosowana do konkretnych wymagań. Np. Szybkość zapisu
i odczytu małych plików.
Zależnie od potrzeb możemy na dysku utworzyć partycje/dyski logiczne w wielu różnych
systemach plików.

Podobne dokumenty