ext3 |
NTFS |
VFS, a pod nim konkretny FS (ext3)
|
NTFS – „zintegrowany” system plików
|
Wyraźny podział na dane i metadane. |
Elegancka, abstrakcyjna koncepcja: wszystko jest plikiem. Nawet struktury z metadanymi są plikami. Jedynym wyjątkiem od tej reguły jest boot sektor. |
Plik = dane + metadane |
Plik jako zbiór atrybutów (nawet dane są traktowane jako atrybut – „data”). Przewidziane dodawanie nowych atrybutów przez niektóre aplikacje. Alternatywne strumienie danych (można w nich zapisywać np. metadane) – kolejne atrybuty, podobnie „data”. |
Możliwość zdefiniowania zestawu funkcji działających na plikach i i-węzłach. |
Reparse points – wprowadza podobne możliwości. |
Montowanie. |
Montowanie możliwe dzięki reparse points. |
Wsparcie dla małych plików - fragmentacja bloków (ext3). |
Wsparcie dla małych plików – małe pliki przechowywane w całości w MFT. |
Obsługa plików „pustych” – np. utworzonych przez lseek. Nie zajmują przestrzeni dyskowej. |
Obsługa plików rozrzedzonych od NTFS 5.0 („sparse files”) – zawierających dziury. Te dziury nie zajmują przestrzeni dyskowej. |
|
|
Quota jest - od dawna. |
Quota wprowadzona w NTFS 5.0 (ACL przechowywane w jednym z 16 specjalnych plików). |
Stała liczba i-węzłów = ograniczona liczba plików w systemie. Aby zwiększyć liczbę i-węzłów, należy przeinstalować system plików. |
MFT rośnie dynamicznie (B-drzewo i-węzłów, zwanych w NTFS „MFT entries”). |
Ext3 w standardzie nie obsługuje niskopoziomowej kompresji. Podobną funkcjonalność można uzyskać korzystając z odpowiednich nakładek. |
Obsługuje kompresję niskopoziomową (dla rozmiaru bloku do 4 kb – skąd takie ograniczenie?!?). Tylko co z tego – to jest niewydajne. W przyszłości będzie sprzętowa kompresja.
Kompresja poszczególnych plików, algorytm LZ77, jak w ZIP, od WinNT 3.51. |
Ext3 w standardzie nie obsługuje niskopoziomowej kompresji. Podobną funkcjonalność można uzyskać korzystając z odpowiednich nakładek. Nakładki na poziomie urządzeń blokowych. |
Obsługuje kodowanie niskopoziomowe (można o tym myśleć jako o innym rodzaju kompresji), algorytmy oparte o klucz publiczny i prywatny.
Kodowanie poszczególnych plików, algorytmy: DESX (Win2000 +), 3DES (WinXP +), AES (WinXP SP1, Win 2003 +) |
Kronikowanie w ext3 przy pomocy nakładki JBD (teoretycznie na dowolny system plików). 3 poziomy kronikowania: same metadane, albo metadane+dane (jedyny system umożliwiający kronikowanie danych). Dziennik jest zwykłym plikiem, ale można go umieścić na dowolnym urządzeniu blokowym. |
Kronikowanie tylko metadanych. Dane mogą zostać stracone. Dziennik jest plikiem – nie można go umieścić na innym dysku dla zwiększenia wydajności. |
Pliki: Jednostką danych są bloki. I-węzeł trzyma wskaźniki do pojedynczych bloków (bezpośrednie, pośrednie lub trójpośrednie). Nie zapobiega fragmentacji. |
Pliki: Jednostką danych są „data-runs” (jest to nazwa Windowsowa, w innych systemach zwane są „extents”), czyli łańcuchy kolejnych bloków. I-węzeł trzyma wskaźniki do „data-runs” w B-drzewie. Teoretycznie „data-runs” zapobiegają fragmentacji. Na marginesie: MFT jest zwykłym plikiem, którego w dodatku nie można zdefragmentować. |
Mapa bitowa zajętości bloków. Liniowy koszt wyszukiwania. |
Mapa bitowa zajętości bloków. Liniowy koszt wyszukiwania. |
Indeksowanie katalogów przy pomocy tablic haszujących. |
Indeksowanie katalogów przy pomocy B-drzew. |
Jest ACL (Access Control Lists) od wersji jądra 2.6.x. Dodatkowo ma oczywiście standardowe 9 bitowe uprawnienia. |
Jest ACL. Brak interfejsu dla POSIX-owych uprawnień, chociaż można je wszystkie wyrazić przy pomocy ACL. |
Nie ma wielu strumieni danych. |
Wsparcie dla wielu strumieni danych. Plusy: dodatkowe metadane mogą być przechowywane jako niewidoczne dla użytkownika i większości aplikacji. Minusy: mogą tam się chować wirusy, ryzyko utraty danych przy kopiowaniu do innych systemów plików. |
Nie ma w standardzie dziennika zmian plików. |
Dziennik zmian plików (dokładniej: zmian w metadanych). |
Inne: Bezpieczne usuwanie (przez zerowanie wskaźnika). |
Inne: Auto-przenoszenie danych ze złych klastrów. |
Tabela złych bloków. |
B-drzewo złych bloków. |
Ext3 jest obsługiwany przez praktycznie wszystkie Uniksowe systemy. Źródła oczywiście darmowe. |
NTFS jest obsługiwany przez Windows NT i jego następców: 2000, XP i Server 2003. Szczegóły implementacji objęte są tajemnicą handlową. |
Nie ma narzędzi do defragmentacji ext3, gdyż zakłada się, że fragmentacja nie jest znaczącym problemem dla ext3. |
Są, ale nie potrafią zdefragmentować MFT. |
Kompatybilny z popularnym ext2. Konwersja w obie strony bezbolesna. Pozwala na instalowanie ulepszeń bez konieczności kopiowania danych. |
Konwersja tylko z FAT do NTFS. Generalnie: nie współpracuje z systemami nie-Windowsowymi, nie współpracuje nawet ze starymi Windowsami (≤ Win98) |
Ani jeden ani drugi nie ma:
sum kontrolnych (bezp. danych)
opóźnionej alokacji (mniejsza fragmentacja, większa wydajność)
wsparcia dla jednoczesnego dostępu (!) (wydajność)
wielowątkowości (!)
Największa wada: oba ww. systemy plików są jednowątkowe. Mała wydajność dla DUŻYCH systemów plików.
NTFS ma kompresję – niepotrzebnie, gdyż zajmuje czas procesora. Poza tym, przewiduje się że w przyszłości kompresja danych będzie realizowana sprzętowo.
Maksymalny rozmiar dysku: w obu przypadkach wystarczająco duży, aby się nim nie przejmować.
Brak wsparcia dla jednoczesnego dostępu do systemu plików, jednowątkowość i obecność w różnych (co prawda nielicznych) miejscach tablic czy bitmap oraz stosowanie algorytmów liniowych czynią te systemy plików niepraktycznymi do zastosowań dla dużych systemów plików.
Dla komputerów domowych są w sam raz. :)
© Tomasz Socha