System plików
System plików Określa to, jak informacje są zapisywane i odczytywane. System plików definiuje także wielkość klastrów, możliwe do użycia atrybuty plików oraz schemat poprawnych nazw plików i katalogów - ich długość (por. 8.3, długie nazwy plików) i dopuszczalne znaki w nazwach. Najpopularniejsze systemy plików to FAT16 (stosowany w MS-DOS, Windows 9x i Windows NT), FAT32 (Windows 95 OSR2 i Windows 98) oraz NTFS (Windows NT). Jedynym wspólnym systemem plików wszystkich wersji Windows i MS-DOS jest FAT16. Inne popularne systemy plików to: HPFS, CDFS i VFAT.
FAT FAT (akronim z ang. File Allocation Table) – system plików powstały pod koniec lat 70-tych, zastosowany w systemach operacyjnych, m.in. DOS i Windows. Podobnie jak sam DOS wywodzi się z systemów CP/M. Określa on rozmieszczenie plików, katalogów i wolnej przestrzeni na takich nośnikach danych jak dyskietki i twarde dyski. Najważniejszym elementem systemu jest tablica informująca o rozmieszczeniu plików na partycji (FAT) od nazwy tej tablicy pochodzi nazwa systemu. Dysk twardy podzielony jest na niewielkie fragmenty, zwane jednostkami alokacji lub klastrami. Ponieważ jednostka alokacji jest wartością logiczną, a nie fizyczną (nie znajduje się ona fizycznie na dysku), jej rozmiar można różnie zdefiniować w zakresie od 512 bajtów do 64 kilobajtów
(Windows NT pozwala tworzyć nietypowe klastry o wielkości 256 kB) (Windows NT pozwala tworzyć nietypowe klastry o wielkości 256 kB). Każdy znajdujący się na dysku twardym plik zajmuje jeden bądź więcej klastrów, ale w jednym klastrze może znajdować się tylko jeden plik (lub jego część). Gdy rozmiar pliku jest mniejszy niż rozmiar klastra, niewykorzystane miejsce marnuje się, zatem dlatego im mniejsze jednostki alokacji, tym bardziej ekonomicznie wykorzystane jest miejsce na dysku. Maksymalna liczba jednostek alokacji na dysku jest jednak ograniczona przez system plików. FAT (File Allocation Table – tablica alokacji plików) jest to tablica opisująca, w których klastrach dysku twardego lub dyskietki magnetycznej system operacyjny ma szukać każdego z zapisanych na nim plików. FAT jest tworzony podczas formatowania nośnika danych. Podczas zapisu pliku informacje o nim są automatycznie zachowywane w tablicy FAT. Potocznie przez FAT rozumie się FAT16 lub FAT32.
FAT16 FAT16 jest odmianą systemu plików FAT, z którego może korzystać MS-DOS i Windows. Pierwsze pecety pracujące pod systemem DOS miały architekturę 16-bitową. Oznaczało to, że ich system plików mógł opisać tylko 216, czyli 65 535 klastrów. Początkowo klastry były rozmiarowo równe fizycznym sektorom dysku twardego (512 bajtów), ale szybko okazało się, że w ten sposób można opisać pojemność tylko 32 MB. Większy dysk twardy trzeba było dzielić na partycje. W związku z tym postanowiono zwiększyć rozmiary jednostek alokacji. Problem zaczął się, gdy dyski przekroczyły rozmiar gigabajta, a jednostki alokacji rozrosły się aż do 32 kilobajtów. Przy tak dużej jednostce alokacji notatka o wielkości dwóch kilobajtów zmarnuje 30 kilobajtów miejsca. Plików tej wielkości na dysku może być tysiące, co prowadzi do dużych strat pojemności. FAT16 miał jeszcze jedno poważne ograniczenie – obsługiwał partycje tylko do wielkości 2,1 gigabajta.
Podstawową wadą jest ograniczenie wielkości partycji do 2 GB Podstawową wadą jest ograniczenie wielkości partycji do 2 GB. Zatem aby w tym systemie wykorzystać całą powierzchnię 30-gigabajtowego dysku trzeba by na nim utworzyć aż 15 partycji. Po drugie - im większa partycja, tym większe są na niej klastery – od 2 KB dla dysku 16 MB po 32 KB dla dysku o maksymalnej wielkości 2 GB. Tworzenie "dużych" partycji wiąże się zatem z marnowaniem dostępnego miejsca. Konieczne stało się opracowanie nowego, lepszego systemu plików – i tak powstał FAT32.
Zalety systemu FAT16 Do zalet systemu FAT16 zaliczają się: Możliwość korzystania z FAT16 przez systemy operacyjne MS-DOS, Windows 95, Windows 98, Windows NT, Windows 2000 i niektóre systemy typu UNIX. Istnienie wielu narzędzi programowych, służących do rozwiązywania problemów i odzyskiwania danych w woluminach FAT16. W przypadku awarii systemu operacyjnego uniemożliwiającej uruchomienie komputera, można go uruchomić przy użyciu dysku startowego MS-DOS, po czym rozwiązać problem. FAT16 jest efektywny pod względem prędkości i magazynowania danych w woluminach mniejszych od 256 MB.
Wady systemu FAT16 Do wad systemu FAT16 zaliczają się: Katalog główny woluminu może zawierać maksymalnie 512 wpisów. Wykorzystanie długich nazw plików (LFN) może w znaczący sposób ograniczyć ilość dostępnych wpisów. System FAT16 posiada ograniczenie do 65.536 klastrów, z których część jest zarezerwowana. Daje to praktyczne ograniczenie do 65.524 klastrów. Największy wolumin FAT16 w systemie Windows 2000 może mieć rozmiar 4 GB i korzysta z klastrów o rozmiarze 64 KB. W celu zachowania zgodności z systemami MS-DOS, Windows 95 i Windows 98 nie powinno się tworzyć woluminów większych niż 2 GB.
FAT16 jest nieefektywny w przypadku dużych woluminów, ponieważ rozmiar klastra szybko się zwiększa. Miejsce na dysku alokowane dla każdego pliku zależy od ziarnistości klastrów, a nie od rozmiaru pliku. Na przykład 10-kilobajtowy plik zapisany na woluminie o rozmiarze 1,2 GB (używającym klastrów o rozmiarze 32 KB) marnuje 22 KB przestrzeni dyskowej. Sektor rozruchowy nie jest zabezpieczany za pomocą kopii bezpieczeństwa. W systemie FAT16 nie istnieje żaden wbudowany schemat zabezpieczeń lub kompresji.
FAT32 FAT32 (wersja 32 bitowa) pojawiła się wraz z wersją OSR2 Windows 95. Poprawiony system plików, nazywany FAT32, jest już bardziej wydajny od poprzednika. Dla porównania, partycja 2 GB ma klastery o wielkości 4 KB, co znacznie zwiększa efektywność zapisu informacji. Przy dzisiejszych wielkościach dysków twardych FAT32 ujawnia jednak swoje niedogodności. Do granicy 8 GB tworzone są partycje z klasterami po 4 KB, ale już przy 32 GB pojawiają się 32-kilobajtowe. To jest właśnie podstawowy powód, dla którego warto dzielić duży dysk na mniejsze dyski logiczne. Spójrzmy na to bardziej praktycznie. Klastery to odcinki danych o identycznych wielkościach na partycji. Jeden plik może być, i zazwyczaj jest, przechowywany w kilku lub więcej klasterach, natomiast jeden klaster może przechowywać tylko jeden plik. Z tego powodu plik o wielkości 33 KB na partycji 32 GB będzie zajmował 64 KB bo potrzebuje 2 klastery po 32 KB każdy.
Ten sam plik zająłby jednak tylko 36 KB na partycji 8 GB w systemie FAT32, gdzie wielkość pojedynczego klastera wynosi 4 KB. Pomniejszając wielkość partycji można zaoszczędzić nawet do 40% miejsca. Jeśli tego nie zrobimy nasz dysk o wielkości 40 GB pomieści faktycznie tylko 30 GB i sami sobie będziemy winni. FAT32 używany jest przez Windows 95 OSR2, Windows 98 i ME. Windows NT i 2000 rozpoznają i używają również tego systemu, chociaż mają swój własny. Na partycji FAT32 można też zainstalować Windows XP. FAT32 może rozpoznać 232 (czyli 4 294 967 296) adresów jednostek alokacji, dzięki czemu obsługuje dyski twarde do wielkości dwóch terabajtów (dwóch tysięcy gigabajtów). FAT32 wymaga partycji o minimalnych rozmiarach 512 MB.
Zalety systemu FAT32 System FAT32 posiada następujące usprawnienia: Katalog główny woluminu FAT32 jest zwykłym łańcuchem klastrów i może być umieszczony w dowolnym miejscu woluminu. Dzięki temu system FAT32 nie ogranicza ilości wpisów w katalogu głównym. FAT32 korzysta z mniejszych klastrów (4 KB w przypadku woluminów o rozmiarze do 8 GB), dzięki czemu wydajniej niż FAT16 alokuje przestrzeń dyskową. W zależności od rozmiaru używanych plików, w dużych woluminach FAT32 zachowuje potencjalnie dziesiątki lub nawet setki megabajtów wolnej przestrzeni dyskowej, traconej w systemie FAT16. FAT32 może automatycznie skorzystać z zapasowej kopii tablicy alokacji plików (w systemie FAT16 jedynie narzędzia takie jak Chkdsk mogły przeprowadzić odtworzenie kopii zapasowej).
Sektor rozruchowy jest automatycznie zabezpieczany w określonej lokalizacji woluminu, dzięki czemu woluminy FAT32 są mniej narażone na awarie niż woluminy FAT16. Wady systemu FAT32 Do wad systemu FAT32 zaliczają się: Największy wolumin FAT32, który może zostać sformatowany przez system Windows 2000, ma rozmiar 32 GB. Woluminy FAT32 są bezpośrednio dostępne tylko z systemów operacyjnych Windows 95 OSR2 lub Windows 98. W przypadku awarii uniemożliwiającej uruchomienie systemu operacyjnego, nie można uruchomić komputera za pomocą dyskietki sformatowanej w systemie MS-DOS lub Windows 95 (wyłączając wersję OSR2 i późniejsze). W systemie FAT32 nie istnieje żaden wbudowany schemat zabezpieczeń lub kompresji.
NTFS NTFS zaprojektowano specjalnie na potrzeby Windows NT. Skrót oznacza System Plików Nowej Generacji (ang. New Technology File System). Budowa wewnętrzna: podstawową jednostką systemu NTFS jest wolumin. Wolumin jest tworzony przez program administrowania dyskiem systemu NT; u jego podstaw leży logiczny podział dysku. Wolumin może zajmować część dysku lub cały dysk, może też rozciągać się na kilka dysków. System NTFS nie ma do czynienia z poszczególnymi sektorami dysku. Zamiast nich używa klastrów. System NTFS używa w charakterze adresów dyskowych logicznych numerów klastrów (LCN). Przypisuje je poprzez ponumerowanie klastrów od począdku dysku do jego końca. Za pomocą tego schematu system może wyliczyć fizyczną odległość na dysku (w bajtach), mnożąc numer LCN przez wielkość klastra. Plik w systemie NTFS nie jest zwyczajnym strumieniem bajtów, lecz jest obiektem strukturalnym złożonym z atrybutów.
Każdy atrybut jest niezależnym strumieniem bajtów, który podlega tworzeniu , usuwaniu, itp.. Niektóre atrybuty są standardowe dla wszystkich plików, wliczając w to nazwę pliku, czas jego utworzenia, itp. Większość tradycyjnych plików danych ma beznazwowy atrybut danych, mieszczący wszystkie dane pliku. Każdy plik w systemie NTFS jest opisany przez jeden lub więcej rekordów przechowywanych w specjalnym pliku o nazwie główna tablica plików (master file table - MFT). Rozmiar rekordu jest określony podczas tworzenia systemu plików i waha się w granicach od 1 do 4 KB. Małe atrybuty przechowuje się w samym rekordzie MFT i nazywa rezydentnymi. Wielkie atrybuty, takie jak nienazwana masa danych - określone mianem nierezydentnych - są przechowywane w jednym lub większej liczbie ciągłych rozszerzeń na dysku, do których wskaźniki przechowuje się w rekordzie MFT. W przypadku małych plików w rekordzie MFT może się zmieścić nawet atrybut danych.
Jeżeli plik ma wiele atrybutów lub jeśli jest on mocno pofragmentowany i wymaga zapamiętania wielu wskaźników pokazujących wszystkie jej części, to jeden rekord w tablicy MFT może okazać się za mały. W tym przypadku plik jest opisany przez rekord o nazwie: podstawowy rekord pliku (base file record), który zawiera wskaźniki do rekordów nadmiarowych, przechowujących pozostałe wskaźniki i atrybuty. Każdy plik w woluminie systemu NTFS ma niepowtarzalny identyfikator zwany odsyłaczem do pliku. Odsyłacz do pliku jest wielkością 64-bitową, składającą się z 48-bitowego numeru pliku i 16-bitowego numeru kolejnego. Numer pliku jest numerem rekordu w strukturze MFT opisującej plik. Numer kolejny jest zwiększany za każdym razem, gdy następuje powtórne użycie w tablicy MFT. Zwiększenie to umożliwia systemowi NTFS wykonywanie wewnętrznej kontroli spójności - na przykład wyłapywanie nieaktualnych odwołań do usuniętego pliku po użyciu wpisu MFT na nowy plik.
Każdy katalog stosuje strukturę danych zwaną B+-drzewem, w którym zapamiętuje indeks swoich nazw plików. Każdy wpis w katalogu zawiera nazwę pliku i odsyłacz do niego oraz kopię znacznika czasu uaktualnienia i rozmiaru pliku – pobranej z atrybutów pliku rezydujących w tablicy MFT. Kopie tych informacji są przechowywane w katalogu, co przyspiesza wyprowadzanie jego zawartości - nazwy wszystkich plików, i ich rozmiary i czasy uaktualnień są obecne w samym katalogu, więc nie potrzeba ich zbierać na podstawie wpisów w tablicy MFT każdego z plików. Wszystkie metadane woluminu systemu NTFS są przechowywane w plikach. Pierwszym z takich plików jest jest tablica MFT. Drugi plik, używany do działań naprawczych w przypadku uszkodzenia tablicy MFT, zawiera kopię pierwszych szesnastu pozycji tablicy MFT. Oprócz tego istnieje jeszcze kilka innych specjalnych plików.
Zalety NTFS Odzyskiwanie systemu plików. Użytkownik rzadko jest zmuszony do uruchamiania programu naprawczego. NTFS gwarantuje spójność woluminu używając standardowych technik rejestrowania transakcji i odzyskiwania danych. W przypadku awarii systemu NTFS korzysta ze swojego rejestru w celu automatycznego przywrócenia spójności systemu plików. Kompresja woluminów, folderów i plików. Pliki, które są kompresowane w woluminie NTFS, mogą być odczytywane i zapisywane przez dowolną aplikację systemu Windows bez uprzedniej dekompresji za pomocą oddzielnego programu – dekompresja następuje automatycznie podczas otwierania pliku. Plik jest ponownie kompresowany po zamknięciu lub zapisaniu. Dostępność wszystkich funkcji systemu Windows 2000 związanych z systemami plików. Brak ograniczeń ilości wpisów w katalogu głównym.
System Windows 2000 może formatować woluminy NTFS o rozmiarze do 2 terabajtów. Efektywniejsze zarządzanie przestrzenią dyskową niż w systemie FAT, dzięki użyciu klastrów o mniejszym rozmiarze (4 KB dla woluminów o rozmiarze do 2 terabajtów). Kopiowanie sektora rozruchowego do sektora na końcu woluminu. Minimalizacja ilości dostępów do dysku, wymaganych do odnalezienia pliku. Przydzielanie uprawnień do udziałów, folderów i plików. Określają one, jakie grupy i użytkownicy mają dostęp do tych obiektów oraz w jakim stopniu. Uprawnienia plików i folderów w systemie NTFS są stosowane dla użytkowników pracujących lokalnie na komputerze oraz korzystających z niego przez sieć. Można także określić uprawnienia udziałów, stosowane podczas pracy w sieci w kombinacji z uprawnieniami plików i folderów.
Rodzimy dla NTFS system szyfrowania, EFS, korzystający z kluczy symetrycznych w połączeniu z technologią kluczy publicznych. Umożliwia to zabezpieczenie zawartości plików przed niepowołanym dostępem. Punkty specjalne, umożliwiające stosowanie nowych technologii, takich jak punkty instalacji woluminów. Przydziały dyskowe, które mogą być używane do ograniczania ilości przestrzeni dyskowej wykorzystywanej przez użytkowników. Dziennik zmian, umożliwiający śledzenie zmian dokonywanych w systemie plików. Śledzenie łączy, zapewniające integralność skrótów oraz łączy OLE. Obsługa plików rozrzedzonych, dzięki której bardzo duże pliki mogą być zapisywane przy wykorzystaniu jedynie niewielkiej przestrzeni dyskowej.
Wady NTFS Mimo że NTFS jest zalecany dla większości użytkowników Windows 2000, to w niektórych sytuacjach nie jest odpowiednim systemem plików. Do wad systemu NTFS zaliczają się: Woluminy NTFS nie są dostępne z poziomu systemów MS-DOS, Windows 95 i Windows 98. Zaawansowane funkcje NTFS wprowadzone w systemie Windows 2000 nie są dostępne w systemie Windows NT. W przypadku bardzo małych woluminów, zawierających w większości małe pliki, zarządzanie
Wielkości klastrów w różnych systemach plików Rozmiar partycji FAT16 FAT32 NTFS 0 - 32 MB 0,5 kB - 33 - 64 1 kB 65 - 127 2 kB 128 - 255 4 kB 256 - 511 8 kB 512 - 1023 16 kB 1 - 2 GB 32 kB 2 - 4 64 kB 4 - 8 8 - 16 16 - 32 pow 32
HPFS System plików HPFS został po raz pierwszy wprowadzony w systemie OS/2 1.2 w celu zapewnienia lepszego dostępu do większych dysków twardych, które zaczęły się pojawiać na rynku. Nowy system plików był także potrzebny, aby rozszerzyć system nazewnictwa, organizację i zabezpieczenia w związku z rosnącymi wymaganiami rynku serwerów sieciowych. W systemie plików HPFS utrzymano organizację katalogu systemu FAT oraz dodano funkcję automatycznego sortowania katalogu na podstawie nazw plików. Maksymalną długość nazw plików rozszerzono do 254 znaków dwubajtowych. Ponadto w systemie plików HPFS plik może składać się z „danych” i specjalnych atrybutów, co zapewnia większą elastyczność, jeśli chodzi o obsługę innych konwencji nazewnictwa i zabezpieczenia.
Jednostki alokacji zmieniono z klastrów na sektory fizyczne (512 bajtów), co zmniejsza utratę miejsca na dysku. W systemie plików HPFS wpisy katalogowe zawierają więcej informacji niż w systemie plików FAT. Oprócz atrybutu pliku obejmują one takie dane, jak data i godzina modyfikacji i utworzenia pliku oraz uzyskania do niego dostępu. Zamiast pierwszego klastra pliku wpisy katalogowe w systemie plików HPFS wskazują węzeł FNODE. Węzeł FNODE może zawierać dane pliku albo wskaźniki, które mogą określać dane pliku lub inne struktury wskazujące dane pliku. System plików HPFS próbuje alokować możliwie największą część pliku w ciągłych sektorach. Ma to na celu przyspieszenie sekwencyjnego przetwarzania pliku.
HPFS System plików HPFS organizuje dysk w serię pasm o wielkości 8 MB. Jeżeli tylko jest to możliwe, plik jest zawarty w jednym z pasm. Między każdym z pasm znajdują się mapy bitowe alokacji o rozmiarze 2 K śledzące, które sektory w paśmie są już przydzielone, a które nie. Podział na pasma zwiększa wydajność, ponieważ w celu sprawdzenia, gdzie jest przechowywany plik, głowica dysku nie musi powracać do logicznego początku (czyli zazwyczaj do cylindra 0) dysku, ale do najbliższej mapy bitowej alokacji pasma.
CDFS System plików w Windows. Jest on uaktywniany w trybie chronionym; umożliwia odnajdowanie i czytanie zawartości plików znajdujących się na płycie CD-ROM.
VFAT Poza standardowymi systemami plików jest również wykorzystywany wirtualny system plików działający w systemach Windows 9x oraz w Windows NT. W jego określeniu używana jest nazwa wirtualny, ponieważ VFAT jest tylko rozszerzeniem systemu plików FAT (Virtual FAT – wirtualny FAT). Jego dodatkowe możliwości to: obsługa długich nazw plików, wykorzystywanie VCACHE i lepsza wydajność (szybkość).