NTFS or New Technology File System is the standard file system of Windows NT and its descendants: Windows 2000, Windows XP, Windows Server 2003 and Windows Vista.
NTFS replaced Microsoft's previous FAT file system, used in MS-DOS and early versions of Windows. NTFS has several improvements over FAT such as improved support for metadata and the use of advanced data structures to improve performance, reliability and disk space utilization plus additional extensions such as security access control lists and file system journaling. The exact specification is a trade secret of Microsoft.
NTFS has five versions: v1.0, v1.1 and v1.2 found in NT 3.51 and NT 4, v3.0 found in Windows 2000 and v3.1 found in Windows XP, Windows Server 2003, and in current pre-release versions of Windows Vista. These versions are sometimes referred to as v4.0, v5.0 and v5.1, after the version of Windows they ship with. Newer versions added extra features. For example, Windows 2000 introduced quotas.
In NTFS, everything that has anything to do with a file (file name, creation date, access permissions and even contents) is stored as metadata. This abstract approach allowed easy addition of filesystem features during the course of Windows NT's development — an interesting example is the addition of fields for indexing used by the Active Directory software.
NTFS allows any sequence of short values for file encoding. This means UTF-16 codepoints are supported, but the filesystem does not check whether the sequence is valid UTF-16 (it allows any sequence of short values, not restricted to those in the Unicode standard).
Internally, NTFS uses B+ trees to index file system data. Although complex to implement, this allows faster access times in some cases. A file system journal is used in order to guarantee the integrity of the file system itself (but not of each individual file). Systems using NTFS are known to have improved reliability compared to FAT file systems. [citation needed]
The Master File Table (MFT) essentially contains metadata about every file and directory on an NTFS file system. It includes parameters such as location, size, and permissions. It is used to aid in minimizing disk fragmentation.
Interoperability
Details on the implementation's internals are closed, so third-party vendors have a difficult time providing tools to handle NTFS.
NTFS partitions can be read by Linux since Version 2.2.0. Linux 2.6 contains a new driver written by Anton Altaparmakov (Cambridge University) and Richard Russon. It offers limited write support. At this time (January 2006) it allows only rewriting and some cases of file resize. More write support is available using ntfsmount[2], new userspace driver written by Yura Pakhuchiy in which files and directories can be created, overwritten, renamed, deleted, truncated, and expanded with limited success. Due to the complexity of the internal NTFS structures, both the built-in 2.6.14 kernel driver and the FUSE driver will stop writing to the volume when it detects too many changes to be safe, thus it should not corrupt the volume. Full write support is available using Paragon[3]'s NTFS for Linux 3 driver, although criticised for leaving many errors on the volume when mounted read-write. Alternatively the Windows driver ntfs.sys can be used with Captive NTFS. Recently, a new beta GPL opensource driver ntfs-3g[4] driver has been developed and is being tested by the linux-ntfs team. This driver is based on ntfsmount with extended support of directory index operations and at the moment offers "unlimited file creation and deletion", but it is not yet tested in the field. According to the developer, this userspace driver is twice as fast as the kernel ext3 driver (which is the native linux filesystem) and is 10 times faster than the commercial Paragon Software driver. As of October 31st, ntfs-3g has created its own project and is no longer a part of the linux-ntfs project.
FreeBSD, and Mac OS X versions 10.3 and later, offer read-only NTFS support.
eComStation offers read-only NTFS support.
Free third-party tools [1] for BeOS allow full read and write support, and the OS itself includes read-only NTFS support.
Compatibility with FAT
Microsoft currently provides a tool (convert.exe) to convert HPFS (only on Windows NT 3), FAT16 and, on Windows 2000 and higher, FAT32 to NTFS, but not the other way around [2]. PartitionMagic by Symantec, PartitionExpert by Acronis and the open source NTFSResize utility are all capable of safely resizing NTFS partitions. Microsoft added the ability to expand the size of NTFS partitions in Windows Server 2003 using the Diskpart command line tool, and shrinking a partition was introduced with Windows Vista.
For historical reasons, the versions of Windows that do not support NTFS all keep time internally as local zone time, and therefore so do all file systems other than NTFS that are supported by current versions of Windows. However, Windows NT and its descendants keep internal timestamps as GMT/UTC and make the appropriate conversions for display purposes. Therefore, NTFS timestamps are in GMT/UTC. This means that when files are copied or moved between NTFS and non-NTFS partitions, the OS needs to convert timestamps on the fly. But if some files are moved when summer or "daylight saving" local time is in effect, and other files are moved when winter or "standard" local time is in effect, there can be some ambiguities in the conversions. As a result, especially shortly after one of the days on which local zone time changes, users may observe that some files have timestamps that are incorrect by one hour. Due to the differences in implementation of Daylight Saving between the Northern and Southern hemispheres, this can result in a potential timestamp error of up to 4 hours in any given 12 months.[5]
DC :)