Historia ntfs id 203639 Nieznany

background image

Historia

Pod koniec lat osiemdziesiątych powstał Windows NT. Wraz z jego rozwojem okazało się,

że wykorzystywane przez niego systemy plików takie jak FAT czy HPFS miały zbyt duże

ograniczenia. Microsoft był zmuszony na początku lat dziewięćdziesiątych opracować nowy

system plików dla Windows NT, aby móc z nim wejść na rynek zastosowań biznesowych

i wymagający bezpieczeństwa oraz integralności przechowywanych danych, a także

zaawansowanych funkcji organizacji i dostępu do danych. W tym celu wykorzystano

doświadczenia z pracy nad HPFS i OS/2. Nowy system plików był stosowany wewnątrz

firmy podczas normalnej pracy, dzięki czemu jego twórcy mogli go od razu dobrze

przetestować. Tak powstał NTFS.

Wprowadzono w nim m.in. obsługę dużych partycji, macierzy dyskowych, uprawnień

do plików, zwiększono odporność na błędy, zmieniono sposób zapisu nazw plików

z 8-bitowego na 16-bitowy Unicode. Pierwsza wersja (1.0) ujrzała światło dzienne wraz

z Windows NT 3.1. Systemy Windows NT 3.51 i 4.0 obsługują NTFS 1.2 (niektóre źródła

podają numer 1.1, wersja ta jest też znana jako NTFS 4.0 od numeru wersji Windows). Wraz

z Windows 2000 pojawił się NTFS 5.0 (nazywany też 3.0), dodano m.in. możliwość

szyfrowania plików, przydziały przestrzeni dyskowej (quota) oraz ewentualność montowania

woluminów do katalogów. Windows XP i 2003 używają NTFS 5.1 (3.1), więc różnice

w stosunku do 5.0 są niewielkie.

Przesunięto też niektóre struktury danych na szybsze miejsca na dysku, co jak podaje

Resource Kit, zwiększa wydajność o 5 – 8 procent. Dodano nowe i ulepszono istniejące

narzędzia dyskowe, m.in. do konwersji z FAT. Zmiany, choć niewielkie, sprawiają jednak

kłopoty starszym narzędziom dyskowym. Ponadto Windows XP przy pierwszym montowaniu

woluminu sformatowanego jako NTFS 5.0 automatycznie konwertuje go do 5.1, co może

spowodować problemy z odczytem dysku pod Win2k. Obsługę NTFS 5.1 w Windows 2000

wprowadzono w SP1, a w NT 4 w SP4.

background image

Wolumin NTFS składa się z czterech obszarów:

• bootsectora (sektora startowego), który zawiera podstawowe informacje

o woluminie oraz posiada kod uruchamiający Windows NT,

• głównej tablicy plików (Master File Table, MFT), składającej się z plików

systemowych przechowujących, m.in. dane o położeniu plików i katalogów,

ich atrybuty, plik dziennika, informacje o uszkodzonych sektorach itp,

• danych plików i katalogów,
• kopii zapasowej MFT.

Bootsector

To pierwszy sektor partycji tworzony podczas formatowania woluminu. Na początku znajduje

się trzybajtowa instrukcja skoku, będąca rozkazem w języku maszynowym procesora x86.

Jest ona potrzebna, gdyż po niej znajdują się dane i procesor musi przejść do części

bootsectora zawierającej kod startowy uruchamiający system operacyjny. Te dane to OEM

ID, BPB i rozszerzone BPB (Extended BPB). OEM ID jest ciągiem znaków identyfikujących

nazwę i wersję systemu operacyjnego. Systemy Windows NT wpisują tam ciąg „NTFS”

(w systemie plików FAT też znajdował się OEM ID), Windows 95 wpisywał w tym miejscu

„MSWIN4.0”, natomiast Windows 95 OSR 2 i późniejsze z linii 9x umieszczały

„MSWIN4.0”. Po OEMID znajduje się BPB (BIOS parameter block, blok parametrów BIOS-

u), zawierajacy m.in. informacje o geometrii dysku, pozwalające kodowi wykonywalnemu

zawartemu w bootsectorze na odnalezienie pliku ntldr i uruchomienie Windows.

ExtendedBPB pozwala na odnalezienie MFT. Jeśli zdarzy się uszkodzenie klastrów w obrębie

MFT, można je przenieść w inne miejsce dysku. Trzeba tylko zmienić zapis w Extended BPB.

W przypadku uszkodzenia rozszerzonego BPB, główna tablica plików nie może zostać

odnaleziona i Windows uznaje partycję za niesformatowaną.

background image

MFT

Główna tablica plików zawiera wszelkie informacje o sobie i wszystkich innych plikach

na dysku, jest bardzo dobrą bazą danych zawierającą co najmniej jeden rekord dla każdego

pliku lub katalogu. Kolumnami w tej bazie są atrybuty plików. Rekordy posiadają też

nagłówki zawierające sumę kontrolną, wskaźnik do pierwszego atrybutu w rekordzie,

wskaźnik do pierwszego wolnego bajtu oraz numer bazowego rekordu MFT dla pliku,

którego dotyczy wpis. Jeśli dane opisujące plik nie mieszczą się w jednym rekordzie,

to posiada on ich kilka. Sytuacja taka może wystąpić np. przy dużym sfragmentowaniu pliku,

wtedy pierwszy jego rekord to rekord bazowy, zawierający informacje o pozostałych. Małe

pliki lub katalogi mogą być umieszczane w rekordach w całości, a nie tylko same

ich atrybuty. Maksymalny rozmiar pliku/katalogu takiego pliku zależy naturalnie od rozmiaru

rekordu. Rekord może mieć różną wielkość zależnie od wielkości klastra oraz wersji NTFS-a,

który zwykle oscyluje wokół 1 kilobajta. Główna tablica plików jest w rzeczywistości plikiem

o nazwie $Mft, posiadającym częściową kopię zapasową w pliku o nazwie $MftMirr. Dane

na temat tego jak duża część MFT znajduje się w kopii zapasowej, są dość rozbieżne.

W Technecie, w opisach Windows 2000 i 2003 widnieje informacja o czterech sektorach,

a w przypadku Windows XP – w zależności odwielkości, cztery rekordy lub pierwszy klaster.

W opisach NTFS4 spotkać można również wartość 16 lub 3 rekordów. Plik $MftMirr

położony jest na końcu woluminu (w Windows NT 3.51 i temu podobnych systemach

znajdował się pośrodku przestrzeni woluminu), natomiast $Mft i $MftMirr to tzw. metapliki.

Na dysku znajduje się więcej takich plików, a wszystkie z nich mają nazwy zaczynające się

od znaku $, nie można ich także normalnie zobaczyć. W starszych Windows NT były

widoczne za pomocą polecenia dir /ah wydanego w katalogu głównym. Dla metaplików

zarezerwowane jest 16 pierwszych rekordów w MFT (ok. 1 megabajta). Spis metaplików i ich

funkcje można znaleźć w tabeli 3.

Ponieważ fragmentacja MFT mogłaby spowodować znaczny spadek wydajności systemu,

NTFS rezerwuje domyślnie 12,5% miejsc na dysku na MFT. Ten obszar nazywany jest strefą

MFT (MFT zone). Nie powoduje to jednak niewykorzystania miejsca na dysku, jeśli dostępne

miejsce się skończy, pliki są zapisywane w strefie MFT. Jeżeli na woluminie zostanie

utworzonych bardzo dużo małych plików, może zajść sytuacja odwrotna – rekordy tych

plików nie zmieszczą się w strefie MFT i zostanie ona wtedy powiększona. Systemowe

funkcje zwracające ilość wolnego miejsca uwzględniają też wolne miejsce w MFT zone,

background image

użytkownik nie jest więc świadom jej rozmiaru i wszystko odbywa się dla niego w sposób

właściwy.

Atrybuty plików

Każdy zaalokowany sektor na woluminie NTFS należy do pliku. Wszystkie pliki i katalogi są

traktowane jako zestawy atrybutów, do których należą m.in. nazwa, informacje

o zabezpieczeniach, a także same dane przechowywane w pliku. Każdy atrybut jest

identyfikowany przez kod, a opcjonalnie także przez nazwę. Atrybuty, które są zapisane

w rekordzie pliku w MFT, są nazywane atrybutami rezydującymi, a te, które się nie mieszczą,

zapisywane są poza MFT, w przestrzeni dyskowej i noszą nazwę nierezydujących.

W atrybutach rezydujących zostaje utworzona lista atrybutów (która także jest atrybutem)

zawierająca wskazania na położenie atrybutów nierezydujących w celu odnalezienia

wszystkich atrybutów pliku. Nazwa pliku oraz znaczniki czasu są zawsze rezydujące.

Rekordy katalogów zawierają informacje indeksujące i podobnie jak w przypadku plików,

atrybuty katalogów mogą się nie zmieścić w jednym rekordzie.

Duże katalogi są wtedy organizowane w postaci posortowanego drzewa zrównoważonego

(balanced tree, B-tree) i posiadają rekordy ze wskaźnikami do zewnętrznych klastrów

(buforów indeksowych, index buffers), zawierających wpisy w folderze, które nie mieszczą

się w MFT. Przeszukiwanie drzewa zrównoważonego jest dużo szybsze niż listy, szczególnie

przy dużej ilości elementów. W przypadku drzewa obszar poszukiwań za każdym razem

zmniejsza się kilkukrotnie, zależnie od ilości elementów w węźle. W systemie plików FAT,

gdzie stosowana była lista, wpisy w katalogu przeszukiwane były po kolei, dopóki nie został

odnaleziony poszukiwany plik/katalog. Co prawda w nowszych systemach korzystających

z FAT, takich jak Windows 98, wprowadzono podobne optymalizowanie przeszukiwania,

jednak nadal stosowane było liniowe ułożenie wpisów.

background image

Kompresja

Kompresja jest natywnie obsługiwana przez NTFS i Windows NT, dzięki czemu nie trzeba

korzystać z żadnych zewnętrznych programów. Posługiwanie się skompresowanymi plikami

wygląda tak samo jak praca ze zwykłymi plikami, jedyną odczuwalną różnicą może być

wolniejszy dostęp. Skompresowanie pliku czy katalogu jest bardzo proste i wymaga

zaznaczenia atrybutu kompresji w okienku właściwości pliku/katalogu. Pliki skompresowane

nie mogą być zaszyfrowane, ponadto kompresja nie jest dostępna w Windows XP Home

Edition.

Kompresji podlegają bloki składające się z 16 klastrów, które są kompresowane oddzielnie

i dzięki temu np. część pliku może zostać skompresowana, a część nie. Podczas kompresji

dane z 16 klastrów są zapisywane w mniejszej ilości miejsca. Pozostałe klastry stają się tzw.

klastrami wirtualnymi i znajdują się za „prawdziwymi”. Podczas dekompresji wirtualne

klastry zostają zapełnione danymi na podstawie danych zapisanych w pozostałych klastrach

i w ten sposób odtwarzana jest pierwotna postać pliku. Wszystko odbywa się w sposób

automatyczny i przezroczysty dla aplikacji. Kompresję można włączyć lub wyłączyć poprzez

ustawienie lub wyłączenie odpowiedniego atrybutu pliku. Włączanie następuje poprzez

przesłanie

parametru

FSCTL_SET_COMPRESSION

do

funkcji

DeviceIoControl,

a plik/katalog otrzymuje flagę FILE_ATTRIBUTE_COMPRESSED. Ponieważ dekompresja

następuje w pamięci, spadek wydajności nie jest zbyt duży. Kompresja nie może zostać

zastosowana na woluminach, które zostały sformatowane z wielkością klastra ponad 4 kB.

Z tego też względu wprowadzono wraz z systemem Windows 2000 ograniczenie domyślnej

wielkości klastra podczas formatowania właśnie do 4 kB.

Uprawnienia do dostępu do danych

W NTFS-ie wprowadzono to, czego bardzo brakowało w systemie plików FAT, a było

od dawna dostępne w systemach uniksowych – uprawnienia do plików i katalogów. Nie są

to jednak proste zestawy uprawnień do odczytu, zapisu i wykonania dla użytkownika, grupy

użytkowników i pozostałych użytkowników. W NTFS 4.0 było 6 uprawnień, w NTFS 5.1 jest

ich już 13, co pozwala na bardzo dokładne określanie, kto może wykonać jakie akcje na pliku.

background image

Nie trzeba ustawiać każdego prawa oddzielnie, ponieważ istnieją predefiniowane zestawy

uprawnień. Dzięki dziedziczeniu wprowadzonemu w NTFS 5.0 można wygodnie zmieniać

prawa wielu plików i katalogów jednocześnie, ale z zachowaniem wyjątków. Uprawnienia

można nadawać dowolnym użytkownikom i grupom, a właścicielem pliku może być

użytkownik lub grupa.

Nazwy plików

Nazwy plików, podobnie jak w FAT32 mogą mieć długość 255 znaków. Znaki występujące

w ścieżce nie są jednak zapisywane jako 8-bitowe znaki ASCII, ale zakodowane

w standardzie Unicode do postaci 16-bitowej, więc dzięki temu użytkownicy mogą bez

przeszkód używać swoich znaków narodowych.

Szyfrowanie

Także obsługa szyfrowania została wbudowana w NTFS. Dzięki niej osoba mająca fizyczny

dostęp do dysku, a nie posiadająca odpowiedniego klucza prywatnego nie może odczytać

z niego danych. Szyfrowaniu podlegają pojedyncze pliki, a zaznaczenie szyfrowania dla

katalogu oznacza, że szyfrowane będą nowe pliki tworzone w tym katalogu. Plików

z atrybutami systemowy i tylko do odczytu nie można szyfrować.

Przydziały (Quota)

NTFS w Windows NT nie dawał możliwości kontrolowania ilości miejsca na dysku zajętej

przez użytkowników. Można to było osiągnąć stosując oprogramowanie firm trzecich, jednak

już wtedy w strukturze NTFS-a było przewidziane miejsce na quotę, którą wprowadzono

w Windows 2000 wraz z NTFS 5. W Win2k danemu użytkownikowi przydziela się miejsce

na danym woluminie. Nie ustala się więc np. maksymalnej wielkości katalogu tylko

maksymalną sumę rozmiarów plików na danym woluminie. Przy zapisie na dysk sprawdzane

jest miejsce wykorzystywane przez użytkownika. Jeśli limit zostaje przekroczony, to zależnie

od ustawień, użytkownik może stracić możliwość dalszego zapisu na dysk i/lub może zostać

zapisane zdarzenie w dzienniku zdarzeń. Oprócz górnego limitu objętości plików

administrator może też określić próg, którego przekroczenie powoduje wygenerowanie

ostrzeżenia o zbliżaniu się do granicy objętości plików. W przypadku plików

background image

skompresowanych liczony jest ich rozmiar po rozpakowaniu, a w pomocy Windows XP

znajduje się informacja, że w przypadku folderów skompresowanych brana pod uwagę jest

ich wielkość na dysku. Nie chodzi jednak tu o foldery z włączonym atrybutem kompresji,

a o pliki ZIP, których obsługa została wbudowana w XP i są one nazywane folderami

skompresowanymi.

Ochrona przed uszkodzeniem systemu plików

Jednym z wymogów stawianych systemom plików jest odporność na uszkodzenia. System

FAT nie posiadał takiej odporności, a zawieszenie się systemu czy błąd aplikacji

niejednokrotnie powodowały powstawanie błędów na dysku. W NTFS-ie wprowadzono m.in.

mechanizm transakcji znany z systemów bazodanowych. Każda operacja na dysku jest

traktowana jako transakcja składająca się z kilku czynności. Jeśli powiodą się wszystkie

składniki transakcji jest ona uznawana za wykonaną poprawnie, natomiast w przeciwnym

wypadku składniki transakcji są wycofywane i transakcja kończy się błędem. Podczas

odzyskiwania danych wykonywane są ponownie wszystkie transakcje oznaczone jako udane.

Następnie wyszukiwane są nieukończone transakcje, a podoperacje które wchodzą w ich

skład są wycofywane – gwarantuje to, że na dysku nie znajdą się nieukończone transakcje.

Nie uchroni to oczywiście przed utratą danych spowodowaną np. powstaniem uszkodzonych

sektorów po zapisie do nich danych. NTFS posiada funkcję zwaną przemieszczaniem

klastrów (Cluster Remapping), polegającą na automatycznym zaalokowaniu nowego,

w momencie gdy podczas odczytu lub zapisu zostanie napotkany uszkodzony sektor.


Wyszukiwarka

Podobne podstrony:
Historia Kosmetykow id 203286 Nieznany
historia polski id 203720 Nieznany
Historia Pa id 203657 Nieznany
Historia robotyki, id 204124 Nieznany
historia reklamy id 204122 Nieznany
AK 0 historia, koncepcje id 53 Nieznany (2)
Historia WspolnotW2 id 204406 Nieznany
Historia Amigi id 202706 Nieznany
HISTORIA CZEKOLADY id 202812 Nieznany
HISTORIA KOSCIOLA id 203226 Nieznany
NTFS NTFS id 789050 Nieznany
historia wypociny id 204508 Nieznany
historia wojen id 204738 Nieznany
historia literatury id 203381 Nieznany
Historia piwa id 203699 Nieznany
historia gospodarcza (1) id 203 Nieznany
Historia mediow id 203442 Nieznany
O historii fryzur id 325997 Nieznany
Historia PaPP id 203690 Nieznany

więcej podobnych podstron