NTFS: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
(Slightly reognanised introduction and fixed some spelling errors)
(Cleaned up article.)
Line 1: Line 1:
{{Filesystems}}
{{Filesystems}}


'''NTFS''' is the native filesystem of Windows NT. It is based on [[HPFS]] but also supports security features such as access control in the filesystem. Since Windows NT is entirely unicode, NTFS is a unicode filesystem, with each "character" being 16bits wide.
NTFS ('''New Technology File System''') is the Windows NT's native file system. It is not only based on [[HPFS]], but also supports security features such as access control. Since Windows NT is entirely unicode, NTFS is a unicode filesystem, with each character (e.g. in names) being 16-bits instead of 8-bits.


== About NTFS (New Technology Filesystem) ==
== About ==
NTFS doesn't only add security features to [[HPFS]]. In NTFS, there is a lot more built-in redundancy. For example: in [[HPFS]], wiping out a sector in the wrong place can render the entire volume inaccessible. Support for multiple hard-links to a file (before NTFS, the only easy access was through the POSIX subsystem, but Windows 2000 (NT 5) added this to Win32 as well) was also added.


NTFS supports an arbitrary number of file forks (much like Mac OS, except Mac OS always has exactly 2 forks for each file).
NTFS adds quite a bit more to [[HPFS]] than just security features, though. First, it adds quite a bit of builtin redundancy -- with HPFS, wiping out one sector in the wrong place can render an entire volume inaccessible. Second, it adds support for multiple hard-links to a file (up 'til now, the only easy access has been via the POSIX subsystem, but NT 5/Win2K adds this to Win32 as well). Third, it supports an arbitrary number of file forks a la MacOS (except MacOS always has exactly 2 forks per file). Fourth, [[HPFS]] decrees that a cluster is always 512 bytes, and a cluster is always one sector. For the sake of performance and compatibility with some (especially Japanese) machines, NTFS allows sectors of other sizes. It also supports clusters of more than one sector, which tends to help performance a little.


[[HPFS]] decrees that a cluster is always 512 bytes long and a cluster is always one sector. For the sake of performance and compatibility with some (especially Japanese) machines, NTFS allows sectors of different sizes. It also supports clusters of more than one sector, which can be beneficial on performance.
NTFS is probably one of the most difficult file system to deal with, especially because of the lack of hacking experience and reliable documents about it. A read-only stable driver is in Linux source code base since kernel 2.4, while an experimental read-write driver is coming with linux 2.6.


In short, NTFS' most significant changes:
The NTFS-3G project apparently has a Read/Write implementation for Linux/FreeBSD/BeOS that is currently in BETA development status.
* Better and more security.
* Multiple hard-links to one file.
* An arbitrary number of forks.
* Variable cluster and sectors sizes (usually resulting in better performance).


== Links ==
== Implementation ==
NTFS is probably one of the most difficult file system to deal with, especially because of the lack of hacking experience and reliable documents. A read-only stable driver can be found in the Linux source code base since kernel 2.4, while an experimental read-write driver is coming with linux 2.6.


The NTFS-3G project apparently has a read/write implementation for Linux/FreeBSD/BeOS that is currently in '''beta''' development status.

== Links ==
* [http://www.linux-ntfs.org/ The Linux NTFS project.]
* [http://www.linux-ntfs.org/ The Linux NTFS project.]
* [http://www.ntfs-3g.org/ NTFS-3G Read/Write Drivers For Linux/FreeBSD/BeOS]
* [http://www.ntfs-3g.org/ NTFS-3G Read/Write Drivers For Linux/FreeBSD/BeOS]

Revision as of 11:00, 21 December 2009

Filesystems
Virtual Filesystems

VFS

Disk Filesystems
CD/DVD Filesystems
Network Filesystems
Flash Filesystems

NTFS (New Technology File System) is the Windows NT's native file system. It is not only based on HPFS, but also supports security features such as access control. Since Windows NT is entirely unicode, NTFS is a unicode filesystem, with each character (e.g. in names) being 16-bits instead of 8-bits.

About

NTFS doesn't only add security features to HPFS. In NTFS, there is a lot more built-in redundancy. For example: in HPFS, wiping out a sector in the wrong place can render the entire volume inaccessible. Support for multiple hard-links to a file (before NTFS, the only easy access was through the POSIX subsystem, but Windows 2000 (NT 5) added this to Win32 as well) was also added.

NTFS supports an arbitrary number of file forks (much like Mac OS, except Mac OS always has exactly 2 forks for each file).

HPFS decrees that a cluster is always 512 bytes long and a cluster is always one sector. For the sake of performance and compatibility with some (especially Japanese) machines, NTFS allows sectors of different sizes. It also supports clusters of more than one sector, which can be beneficial on performance.

In short, NTFS' most significant changes:

  • Better and more security.
  • Multiple hard-links to one file.
  • An arbitrary number of forks.
  • Variable cluster and sectors sizes (usually resulting in better performance).

Implementation

NTFS is probably one of the most difficult file system to deal with, especially because of the lack of hacking experience and reliable documents. A read-only stable driver can be found in the Linux source code base since kernel 2.4, while an experimental read-write driver is coming with linux 2.6.

The NTFS-3G project apparently has a read/write implementation for Linux/FreeBSD/BeOS that is currently in beta development status.

Links