SYSTEMY PLIKOW, Technik Informatyk - materiały, SO I SK


SYSTEMY PLIKÓW

  1. System plików

  2. Organizacja danych

  3. Podstawowe operacje

  4. Hierarchia systemu plików

  5. Rodzaje systemów plików

  6. Popularne systemy plików

  7. Sieciowe systemy plików

  8. Księgowanie lub kronikowanie (ang. journalling)

 

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 systemu. Systemy plików stosuje się dla różnych nośników danych, takich jak dyski, dyskietki, a także w strumieniach danych, 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.

Z formalnego punktu widzenia system plików to reguły umieszczania na nośniku danych abstrakcyjnych, danych oraz informacji umożliwiających przechowywanie tych danych, łatwy i szybki dostęp do informacji o danych oraz do tych danych, manipulowania nimi, a także sposobach usuwania ich.

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 i ReiserFS/Reiser4 w Linuksie). 
ze względu na pewne specyficzne właściwości nadawane plikom (np. atrybut wykonywalności pliku lub atrybut "tylko do odczytu" jak w niektórych systemach plików używanych na nośnikach danych np. ISO 9660 na CD-ROM i UDF na DVD), sam system plików jest niezależny od nich. 
Same systemy operacyjne (w szczególności Unix i jego pochodne) potrafią obsługiwać wiele systemów plików.

 [do góry]

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).

[do góry]

Sektor - najmniejsza adresowalna jednostka zapisu danych na dyskach twardych, dyskietkach i innych nośnikach danych. Wielkość sektora jest potęgą liczby 2 i z reguły wynosi 512 bajtów.
Sektor jest częścią ścieżki (track) dysku.

Klaster dyskowy - (ang. cluster, allocation unit) - jeden lub więcej sektorów na wymiennym lub stałym nośniku danych komputerowych, zarezerwowany dla danego systemu operacyjnego jako podstawowa jednostka przechowywania plików. W obszarze jednego klastra można zapisać tylko jeden plik, nawet jeśli będzie on wypełniał klaster tylko w niewielkim procencie. Większe pliki zajmują oczywiście większą liczbę klastrów.
Klastry wymyślono, aby zmniejszyć wielkość przestrzeni adresowej dla systemu plików, a przez to zmniejszyć na nią zapotrzebowanie pamięci komputera i przyśpieszyć jego działanie (liczba klastrów jest wielokrotnie mniejsza od liczby sektorów). W nowoczesnych systemach operacyjnych istnieje możliwość definiowania klastrów o zróżnicowanej wielkości, przewidując procentowy udział plików małych i dużych. Takie rozwiązanie umożliwia większą efektywność wykorzystania powierzchni nośnika.

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 (w nowszych systemach może to być 8 lub więcej 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.

Przykład alokacji w linuksowym systemie plików ext2:

Blok rozr.

grupa bloków 0

grupa bloków 1

grupa bloków 2

grupa bloków 3

grupa bloków n

 

Struktura grupy bloków (n - liczba bloków):

...

grupa bloków 1

Superblok (1)

Deskryptory grupy (n)

Mapa bitowa bloków z danymi (1)

Mapa bitowa i-węzłów (1)

Tablica i-węzłów (n)

Bloki z danymi (n)

grupa bloków 3

...

 

[do góry]

PODSTAWOWE OPERACJE

Jeżeli program chce wykonać jakąś operację na pliku robi to poprzez system plików. W systemie Unix oraz jego pochodnych takie operacje realizowane są za pomocą wywołań systemowych. Wywołania te są przychwytywane przez wirtualny system plików (VFS), odpowiednio przetwarzane i kierowane do zasadniczego systemu plików. Zastosowanie wirtualnego systemu plików powoduje, że program stosuje te same wywołania systemowe niezależnie od systemu plików.

Do najbardziej podstawowych wywołań systemowych należą:

 

[do góry]

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ść.

Atrybuty plików
Atrybutami mogą być:

Atrybuty zależą od systemu operacyjnego, a dokładniej od jego systemu plików.

Typy plików.
 Pliki dzielimy na kilka typów:

Ponadto system DOS rozróżnia pliki binarne i tekstowe (ASCII). W systemach uniksowych pliki binarne i tekstowe są tożsame.

 

HIERARCHIA SYSTEMU PLIKÓW

Prymitywne systemy plikowe posiadały jedną listę plików wchodzących w skład sytemu 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:

Windows 2000/XP: Unix / Linux:

[Dysk C:] [Katalog główny]

+- boot.ini +- [boot]

| +- [etc]

+- [Documents and Settings] +- [home]

| +- [ciapek] | +- [ciapek]

| +- [moje dokumenty] | +- [filmy]

| +- [filmy] | | +- twierdza.avi

| | +- twierdza.avi | |

| | | +- [dokumenty]

| +- [teksty] | +- Dokument1.txt

| +- Dokument1.txt | +- Dokument2.txt

| +- Dokument2.txt |

| +- [usr]

| +- [var]

+- [Programy]

Format podanej ścieżki zależy od systemu operacyjnego. W większości systemów (Unix, Linux, Mac OS) katalog jest reprezentowany przez ukośnik (ang. slash "/"), pełna ścieżka do pliku twierdza.avi (przykład powyżej) wygląda następująco:

/home/ciapek/filmy/twierdza.avi

W przypadku systemów Windows oraz DOS katalog jest reprezentowany przez lewy ukośnik (ang. backslash "\"), a pełna ścieżka do pliku twierdza.avi w tym systemie wygląda następująco:

C:\Documents and Settings\ciapek\moje dokumenty\filmy\twierdza.avi

Dla systemu GNU/Linux powstały dwa formalne standardy określające układ katalogów w głównym systemie plików: FSSTND i FHS.

 [do góry]

RODZAJE SYSTEMÓW PLIKÓW

 [do góry]

POPULARNE SYSTEMY PLIKÓW

Unix/Linux

 

DOS

 

Windows

 

Amiga

 

Apple/Macintosh

 

OS/2

 

BeOS

 

CD-ROM/DVD

 

Inne

 [do góry]

SIECIOWE SYSTEMY PLIKÓW

Sieciowy system plików (w przeciwieństwie do "normalnego" systemu plików) nie sankcjonuje i nie determinuje fizycznego zapisu danych na dysku, lecz umożliwia współdzielenie danych przez sieć. Właściwie należałoby nazywać go protokołem, a nie systemem plików.

Sieciowe systemy plików:

[do góry]

Andrew File System - rozproszony sieciowy system plików, stworzony w Carnegie Mellon University jako część projektu Andrew. Nazwa pochodzi od Andrew Carnegie'go i Andrew Mellona.
AFS ma przewagę nad tradycyjnymi sieciowymi systemami plików, głównie w kwestiach bezpieczeństwa i skalowalności. Produkcyjne instalacje AFS nierzadko przekraczają 50000 klientów. AFS stosuje uwierzytelnianie protokółem Kerberos i listy kontroli dostępu na katalogach dla użytkowników i grup. Buforowanie po stronie klienta zwiększa wydajność systemu i pozwala na ograniczony dostęp w przypadku awarii serwera lub sieci.
Znaczącą cechą AFS jest wolumin, czyli drzewo plików i podkatalogów. Woluminy tworzone są przez administratorów i podłączane do poszczególnych ścieżek w komórce AFS. W stworzonym woluminie użytkownicy systemu plików mogą tworzyć katalogi i pliki w zwykły sposób, nie zajmując się jego fizyczną lokalizacją. W razie potrzeby administrator może przenieść wolumin na inny serwer lub dysk bez potrzeby informowania o tym użytkowników: operacja może przebiegać w czasie, kiedy wolumin jest używany.
Woluminy mogą być też zreplikowane do jedenastu kopii do odczytu. Kiedy aplikacja kliencka korzysta z plików tylko do odczytu, dane pobiera się z jednej z tych kopii. Jeśli w jakimś momencie przestanie być dostępna, aplikacja poszuka innej. Analogicznie, użytkownicy tych danych nie muszą się zajmować fizyczną lokalizacją tych kopii, a administratorzy mogą je tworzyć i przemieszczać w razie potrzeby. Zestaw poleceń AFS gwarantuje, że woluminy do odczytu zawierają dokładną kopię oryginalnego woluminu typu odczyt-zapis.
Przestrzeń nazw na stacji roboczej używającej AFS jest podzielona na wspólną (ang. shared) i lokalną (ang. local). Wspólna przestrzeń nazw jest identyczna na wszystkich stacjach, zaś lokalne są różne i zawierają pliki tymczasowe potrzebne podczas uruchamiania. Obie przestrzenie nazw mają strukturę hierachiczną. Każde poddrzewo w przestrzeni wspólnej jest przypisane do jednego serwera zwanego nadzorcą. Pliki z przestrzeni wspólnej są na żądanie buforowane na stacji lokalnej. Polecenia odczytu i zapisu pliki są wykonywane na lokalnej kopii. Jeśli buforowany plik został zmodyfikowany, jest kopiowany do nadzorcy po zamknięciu. Spójność bufora jest utrzymywana przez mechanizm odwołań (ang. callback). Kiedy plik jest buforowany nadzorca odnotowuje to i informuje klienta, kiedy jest on modyfikowany przez kogoś innego.
Andrew File System miał duży wpływ na wersję 4 popularnego systemu NFS. Trzy główne implementacje AFS to: Transarc(IBM), OpenAFS i Arla. Jest on również poprzednikiem systemu plików Coda.

[do góry]

Coda to rozproszony, sieciowy system plików, wywodzący się z AFS2 (Andrew FS). Testowy serwer Cody ma adres testserver.coda.cs.cmu.edu. Na jej bazie powstał między innymi eksperymentalny system uruchamiania oprogramowania dla Linuksa, Konvalo, którego serwer znajduje się pod adresem konvalo.org.

[do góry]

Network File System (NFS) to oparty o UDP (ang. User Datagram Protocol - Datagramowy Protokół Użytkownika to jeden z podstawowych protokołów internetowych. Umieszcza się go w warstwie czwartej (transportu) modelu OSI.) protokół zdalnego udostępniania systemu plików. NFS jest de facto standardowym sieciowym systemem plików na Uniksach. Inne protokoły udostępniające taką usługę, jak np. Coda, nie zyskały dużej popularności. NFS został opracowany przez Sun Microsystems. Z NFS wiąże się wiele problemów - przede wszystkim bardzo trudno zapewnić, że dana operacja została wykonana. Scenariusz prawidłowego działania to:

Niestety jeśli nastąpi krach po odebraniu żądania, a przed wysłaniem potwierdzenia to klient nie może się w żaden sposób dowiedzieć czy operacja została wykonana. Istnieją serwery NFS zarówno w przestrzeni użytkownika jak i w przestrzeni jądra (np. w nowych Linuksach).

[do góry]

Server Message Block (SMB) to protokół służący udostępnianiu zasobów komputerowych, m.in. drukarek czy plików. SMB jest protokołem typu klient-serwer, a więc opiera się na systemie zapytań generowanych przez klienta i odpowiedzi od serwera. Wyjątkiem od tej zasady jest mechanizm tzw. oplocków (opportunistic lock), w którym to serwer może wygenerować "nieproszony" przez klienta sygnał informujący o zerwaniu wcześniej założonego oplocka (blokady). Niemniej jednak, chociaż sam protokół ma charakter klient-serwer, to z racji tego, że najczęściej maszyny klienckie dysponują także funkcjami serwerowymi (udostępnianie plików) to sieci SMB nabierają charakteru sieci peer-to-peer.
Początki protokołu sięgają połowy lat 80., kiedy to w firmie IBM opracowano jego wczesną wersję (IBM PC Network SMB Protocol). W kolejnych latach protokół był nadal rozwijany, głównie przez firmę Microsoft. W późniejszych latach SMB stał się podstawą Otoczenia sieciowego w systemach Windows.
Protokół SMB wykorzystuje do działania dwa protokoły niższych rzędów - protokół warstwy sesji NetBIOS (który sam wykorzystuje jako warstwę transportu TCP/IP albo DECnet albo IPX/SPX) lub protokół nierutowalny NetBEUI będący protokołem warstw sieci, transportu i sesji. Systemy Microsoft Windows potrafią korzystać z SMB, a co za tym idzie NetBIOS, zarówno poprzez TCP/IP (obecnie najpopularniejsza metoda) jak i poprzez IPX/SPX) NetBEUI (stosowany tylko w małych sieciach). Samba instalowana na systemach Unix, korzysta tylko z SMB poprzez TCP/IP.
Identyfikacja komputerów w sieciach SMB odbywa się za pomocą ich nazw NetBIOS (nazwą jest ciąg znaków, nie dłuższy niż 15 znaków) lub za pomocą mechanizmów protokołów "podległych" SMB, np. poprzez adres IP czy nazw DNS, gdy SMB wykorzystuje protokół TCP do transportu danych.

Pierwotna wersja protokołu - Core Protocol - użyta w pierwszej implementacji PC NETWORK PROGRAM 1.0 umożliwiała podstawowe operacje takie jak:

Z czasem powstawały kolejne: Core Plus Protocol, Lan Manager 1.0 (LANMAN 1.0), LANMAN 2.0, LANMAN 2.1 (Windows for Workgroups), CIFS 1.0/ NT Lan Manager 1.0.
Najczęściej z implementacją protokołu SMB spotykamy się przy okazji styczności z systemem Microsoft Windows. Każda wersja począwszy od Windows 3.11 for Workgroups zawiera implementację SMB. Jednak nie są to jedyne implementacje. Wśród innych należy wymienić: Samba (dla systemów Unix, open source) oraz produkty komercyjne dla systemów SCO UNIXware, SCO OpenServer, Solaris, HP-UX, OS/2 i innych.
SMB oferuje dwa modele bezpieczeństwa:

Inną kwestią dotyczącą bezpieczeństwa jest podział na grupy robocze oraz domeny.
Grupa robocza to zespół komputerów, w którym każdy komputer trzyma "u siebie" swoje poufne dane, zaś proces logowania, autoryzacji i uwierzytelnienia przebiega lokalnie. Rozwiązanie preferowane w sieciach domowych i w małych firmowych.
Domena natomiast prezentuje podejście scentralizowane do kwestii przechowywania poufnych danych - w każdej domenie funkcjonuje kontroler domeny (jeden główny oraz ewentualnie kilka zapasowych), który je przechowuje. Procesy autoryzacji, autentykacji przeprowadzane są więc centralnie. Rozwiązanie preferowane w większych sieciach firmowych i korporacyjnych

[do góry]

Księgowanie lub kronikowanie (ang. journalling) to w informatyce termin związany z konstrukcją baz danych oraz systemów plików. Przy użyciu księgowania dane nie są od razu zapisywane na dysk, tylko zapisywane w swoistym dzienniku/kronice (ang. journal). Dzięki takiemu mechanizmowi działania zmniejsza się prawdopodobieństwo utraty danych: jeśli utrata zasilania nastąpiła w trakcie zapisu - zapis zostanie dokończony po przywróceniu zasilania, jeśli przed - stracimy tylko ostatnio naniesione poprawki, a oryginalny plik pozostanie nietknięty.
Systemami plików z księgowaniem są:



Wyszukiwarka