NTFS

Az NTFS vagy New Technology File System (új technológiájú fájlrendszer) a Microsoft Windows NT és utódainak (Windows 2000, Windows XP, Windows 7 stb.) szabványos fájlrendszere. A korábbi Windows 95, 98(98SE),  és ME nem képesek natív módon olvasni az NTFS fájlrendszert, bár léteznek programok erre a célra is.

Az NTFS a Microsoft korábbi FAT fájlrendszereit váltotta le, melyet az MS-DOS és a korábbi Windows verziók esetén használtak. Az NTFS több újdonsággal rendelkezik a FAT fájlrendszerrel szemben, mint például a metaadatok támogatása, fejlettebb adatstruktúrák támogatása a sebesség, a megbízhatóság és lemezterület-felhasználás érdekében, valamint már rendelkezik hozzáférésvédelmi listával és megtalálható benne a naplózás is. Sokáig nagy hátrányaként említették a korlátozott támogatottságát a nem-Microsoft operációs rendszerek oldaláról.

Az NTFS-nek három verziója létezik:
 v1.2 – NT 3.51, NT 4
 v3.0 – Windows 2000
 v3.1 – Windows XP-től kezdve
Ezekre a verziókra gyakran v4.0-ként, v5.0-ként és v5.1-ként is szoktak hivatkozni a Windows verziója alapján. Az újabb verziók újabb funkciókat vezettek be. Például a Windows 2000-ben jelent meg a kvóta támogatás.

Belső működés 
Az NTFS B+-fákat használ a fájlrendszeradat tárolására. Bár bonyolult megvalósítani, rövidebb hozzáférési időt biztosít bizonyos esetekben. Egy fájlrendszernaplót használnak magának a fájlrendszer integritásának (de nem az egyes fájloknak) a biztosítására. Az NTFS-t használó rendszerek biztonságosabbak, ami egy kiemelten fontos követelmény a Windows NT-k korábbi verzióinak instabil mivolta miatt.

Metaadat fileok 

Az NTFS-en belül minden fájlokkal kapcsolatos információt (fájlnév, létrehozás dátuma, hozzáférési jogok, tartalom) metaadatként tárolnak. Ez az elegáns, bár absztrakt megközelítés lehetővé tette újabb fájlrendszerfunkciók létrehozását a Windows NT fejlesztése során – egy érdekes példa az Active Directory által használt indexelő mezők hozzáadása. A fájlnevek Unicode (UTF-16) formátumban vannak tárolva, azzal a változtatással, hogy a fájlrendszer nem ellenőrzi az UTF-16 szerinti szabványosságot.

Együttműködés 
A Microsoft elkészített egy eszközt, amellyel NTFS kötetté alakíthatók a FAT és FAT32 kötetek (convert.exe), azonban egyéb eszközt – amely segítené a más rendszerekkel való együttműködést – nem tett közzé.

Több kereskedelmi és szabad szoftver is képes biztonságosan átméretezni NTFS köteteket. Az átméretezést a Microsoft lehetővé teszi a Windows Vistától kezdődően.

A 2.6.22-es Linux kernel már NTFS írási képességgel is rendelkezik, ha a Windows szabályosan lett leállítva (azaz a fájlrendszer „tiszta”).

A Captive NTFS projekt hozzáférést biztosít az NTFS fájlrendszerhez, felületet biztosítva az operációs rendszer és az ntfs.sys között, ami szinte minden Windows telepítésen létezik. Azonban ez csak nagyon lassú írás/olvasási lehetőséget biztosít, vannak adatvesztéssel járó esetek és korlátozza az írható fájlméretet is.

Linux, OS X, FreeBSD, NetBSD és Haiku alatt Szerédi Miklós és Szakacsits Szabolcs révén a FUSE és az NTFS-3G technológiák segítségével stabil és teljes támogatottságú az NTFS fájlrendszer elérése.

A Mac OS X 10.3-as verzió felett képes olvasni NTFS köteteket.

Képességek 
Az NTFS 5.0 a harmadik NTFS-verzió volt, amit a Microsoft közzétett. Több új lehetőséget tartalmazott: kvóta, sparse fájl-támogatás (ami lehetővé teszi, hogy egy nagy fájl üres részei ne foglaljanak helyet), elosztott link követés és titkosítás (Encrypting File System, EFS).

 Alternatív adatfolyam (ADS – alternative data stream)
 Az alternatív adatfolyamok (ADS) lehetővé teszik egy fájl csatolását több adatfolyamhoz. Például a szöveg.txt nevű fájl tartalmazhat egy ADS-t szöveg.txt:titok.txt néven (fájlnév:ads formátumban), amit csak az ADS név ismeretében vagy speciális fájlkezelő programokkal lehet elérni. Az alternatív adatfolyamok nem fedezhetőek fel a fájl méretének vizsgálatával, de elvesznek az eredeti fájl törlésével, illetve mikor a fájlt ADS-t nem támogató meghajtóra másolják (például egy FAT partícióra, floppy lemezre, hálózati megosztásra). Bár az ADS hasznos szolgáltatás, észrevétlenül csökkentheti a szabad területet.
 Kvóta
 A fájlrendszer kvótákat az NTFS 5-ben vezették be. Lehetővé teszik az adminisztrátorok számára, hogy korlátozzák az egyes felhasználók által lefoglalható tárterületet. Lehetővé teszi az adminisztrátor számára azt is, hogy lekérdezze az egyes felhasználók által lefoglalt terület méretét. Beállítható, hogy a felhasználó mikor kapjon figyelmeztetést, majd mikor tiltsa le a lemezfoglalást a rendszer. Az alkalmazások, melyek lekérik a szabad tárterületet, a kvótának megfelelő szabad területet fogják visszakapni.
 Encrypting File System (EFS)
 Erős, és a felhasználó számára átlátszó, fájl és könyvtár titkosítást biztosít az NTFS köteteken. Az EFS együttműködik az EFS szolgáltatással, a Microsoft CryptoAPIjával és az EFS File System Run-Time Library-vel (FSRTL).
 Az EFS szimmetrikus kulccsal (File Encryption Key, FEK) titkosít, mivel azzal nagyobb teljesítmény érhető el, mint egy aszimmetrikus kulcsú megoldással. A szimmetrikus kulcsot egy, a titkosítást igénybe vevő felhasználó publikus kulcsával titkosítják, és ezt a titkosított adatot a titkosított fájl alternatív adatfolyamába mentik. A visszafejtéshez a felhasználó privát kulcsával visszafejtik a szimmetrikus kulcsot, majd a szimmetrikus kulccsal visszafejtik a titkosított fájlt. Mivel ez a folyamat rendszer szinten történik, a felhasználó számára láthatatlan. Arra az esetre, ha a felhasználó elvesztené a privát kulcsát (például adatvesztés történt), helyreállító ügynökök visszafejthetik a fájlt.
Ezért is függ a titkosítás erőssége a felhasználók által használt jelszavaktól, ami sebezhetővé teszi az eljárást helyi támadásokkal szemben.
 Fájltömörítés
 Az NTFS képes a fájlok tömörítésére az LZ77 algoritmus (melyet a ZIP fájl formátumban is használnak) használatával (CompactOS). Bár a tömörített fájlok írása és olvasása transzparens módon történik, a Microsoft ajánlása szerint a tömörítés használata kerülendő szerverrendszereken és profilokat tároló hálózati megosztásokon, mert jelentős processzorterhelést idéz elő.
 Kötetcsatolási pont
 Hasonló a Unix csatolási pontokhoz, ahol egy másik fájlrendszer gyökerét csatolják egy könyvtárba. Az NTFS esetén ez lehetővé teszi fájlrendszerek csatolását külön meghajtóbetűjel (például C:) használata nélkül.
 Könyvtárcsatlakozások (junction)
 Hasonló a kötetcsatolási ponthoz, de kötetek helyett könyvtárakra hivatkozik. Például ha a C:\A könyvtár a C:\B könyvtárra hivatkozik, akkor megnyitása esetén a C:\B könyvtár tartalmához fog hozzáférni. A könyvtárcsomópont megegyezik a Unix szimbolikus hivatkozásaival, bár a Unix szimbolikus linkek fájlokra és könyvtárakra is alkalmazhatóak.
 Hard link (kemény kötés)
 A hard link hasonlít a könyvtárcsomópontokhoz, de fájlokra, és nem könyvtárakra érvényes. A hard link csak az azonos köteten elhelyezkedő fájlokon használható, mivel egy Master File Table (MFT) record jelzi a hivatkozást.
 Ritka állományok

 Átméretezés

Korlátozások 
Bár a fájlrendszer legfeljebb 32 000 Unicode karakter hosszúságú útvonalakat támogat, melyek minden komponense (könyvtár vagy fájlnév) legfeljebb 255 karakter hosszúságú lehet, bizonyos neveket a rendszer fenntart saját használatra. Ennek oka, hogy az NTFS-metaadatok szabályos (bár rejtett, és általában nem hozzáférhető) fájlokban tárolódnak, ezért a felhasználói adatállományok nem használhatják fel ezeket a neveket. Ezek a rendszerfájlok mindig a kötet gyökerében tárolódnak (és kizárólag a gyökérkönyvtárban vannak fenntartva). A fájlnevek: $Mft, $MftMirr, $LogFile, $Volume, $AttrDef, . (pont), $Bitmap, $Boot, $BadClus, $Secure, $Upcase és $Extend; a . és az $Extend mindkettő könyvtár, a többiek fájlok.

 Maximális fájlméret
 Elméleti határ: 16 EiB – 1 KiB ( bájt – 1 KiB).
 Megvalósítás: 16 TiB – 64 KiB ( bájt – 64 KiB).
 Maximális kötetméret
 Elméletben a maximális NTFS kötetméret  klaszter (foglalási egység). Ennek ellenére a maximális NTFS-kötetméret a Windows XP Professional megvalósításának megfelelően  klaszter.
 Például 64 KiB-os klaszterméret használata esetén a maximális NTFS-kötetméret 256 TiB – 64 KiB. Az alapértelmezett 4 KiB klaszterméretet használva a maximális kötetméret 16 TiB – 4 KiB. Mivel a partíciós táblák a master boot recordot (MBR) tároló lemezeken legfeljebb 2 TiB méretű partíciókat támogatnak, dinamikus köteteket kell használni 2 TiB fölötti kötetek létrehozására. De mégjobb megoldás a GUID partíciós tábla használata.

Források

További információk 
 NTFS.com – dokumentációk és egyéb anyagok az NTFS-hez kapcsolódva
 NTFS technikai referencia
 NTFS-3G
 Captive-NTFS
 Linux-NTFS.org

Fájlrendszerek