NTFS

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

New Technology File System (NTFS) es un sistema de archivos de diario patentado desarrollado por Microsoft. A partir de Windows NT 3.1, es el sistema de archivos predeterminado de la familia Windows NT. Reemplazó a la Tabla de asignación de archivos (FAT) como el sistema de archivos preferido en Windows y también es compatible con Linux y BSD. El soporte de lectura y escritura de NTFS se proporciona utilizando una implementación de kernel gratuita y de código abierto conocida como NTFS3 en Linux y el controlador NTFS-3G en BSD. Al usar el comando de conversión, Windows puede convertir FAT32/16/12 en NTFS sin necesidad de volver a escribir todos los archivos. NTFS utiliza varios archivos normalmente ocultos para el usuario para almacenar metadatos sobre otros archivos almacenados en la unidad, lo que puede ayudar a mejorar la velocidad y el rendimiento al leer datos. A diferencia de FAT y el sistema de archivos de alto rendimiento (HPFS), NTFS admite listas de control de acceso (ACL), cifrado de sistemas de archivos, compresión transparente, archivos dispersos y registro en diario del sistema de archivos. NTFS también admite instantáneas para permitir copias de seguridad de un sistema mientras se está ejecutando, pero la funcionalidad de las instantáneas varía entre las diferentes versiones de Windows.

Historia

A mediados de la década de 1980, Microsoft e IBM formaron un proyecto conjunto para crear la próxima generación de sistemas operativos gráficos; el resultado fue OS/2 y HPFS. Debido a que Microsoft no estuvo de acuerdo con IBM en muchos temas importantes, finalmente se separaron; OS/2 siguió siendo un proyecto de IBM y Microsoft trabajó para desarrollar Windows NT y NTFS.

El sistema de archivos HPFS para OS/2 contenía varias características nuevas importantes. Cuando Microsoft creó su nuevo sistema operativo, "tomó prestado" muchos de estos conceptos para NTFS. Los desarrolladores originales de NTFS fueron Tom Miller, Gary Kimura, Brian Andrew y David Goebel.

Probablemente como resultado de esta ascendencia común, HPFS y NTFS usan el mismo código de tipo de identificación de partición de disco (07). Usar el mismo número de registro de ID de partición es muy inusual, ya que había docenas de números de código sin usar disponibles y otros sistemas de archivos importantes tienen sus propios códigos. Por ejemplo, FAT tiene más de nueve (una para FAT12, FAT16, FAT32, etc.). Los algoritmos que identifican el sistema de archivos en una partición tipo 07 deben realizar comprobaciones adicionales para distinguir entre HPFS y NTFS.

Versiones

Microsoft ha lanzado cinco versiones de NTFS:

Número de versión NTFS Primer sistema operativo Fecha de lanzamiento Nuevas características Observaciones
1.0 Windows NT 3.1 1993 Versión inicial NTFS 1.0 es incompatible con 1.1 y más reciente: los volúmenes escritos por Windows NT 3.5x no pueden ser leídos por Windows NT 3.1 hasta que se instale una actualización (disponible en los medios de instalación NT 3.5x).
1.1 Windows NT 3.51 1995 Archivos comprimidos, llamadas secuencias y listas de control de acceso
1.2 Windows NT 4.0 1996 Descriptores de seguridad comúnmente llamado NTFS 4.0 después de la liberación del sistema operativo
3.0 Windows 2000 2000 Disk cuotas, cifrado de nivel de archivo en forma de Encrypting File System, archivos de escaso, puntos de reprensión, número de secuencia de actualización (USN), seguimiento de enlaces distribuidos, el $Extend carpeta y sus archivos La compatibilidad también fue disponible para Windows NT 4.0 con la actualización Service Pack 4. Comúnmente llamado NTFS 5.0 después de la liberación del sistema operativo.
3.1 Windows XP Octubre de 2001 Ampliación de las entradas de Master File Table (MFT) con número de registro MFT redundante (útil para recuperar archivos MFT dañados) Comúnmente llamado NTFS 5.1 después de la liberación del sistema operativo. La versión 1.1 de LFS fue reemplazada por la versión 2.0 en Windows 8 para mejorar el rendimiento.

El número de versión de NTFS.sys (por ejemplo, v5.0 en Windows 2000) se basa en la versión del sistema operativo; no debe confundirse con el número de versión de NTFS (v3.1 desde Windows XP).

Aunque las versiones posteriores de Windows agregaron nuevas características relacionadas con el sistema de archivos, no cambiaron NTFS en sí. Por ejemplo, Windows Vista implementó enlaces simbólicos NTFS, NTFS transaccional, reducción de particiones y autorreparación. Los enlaces simbólicos NTFS son una característica nueva en el sistema de archivos; todas las demás son funciones nuevas del sistema operativo que hacen uso de funciones NTFS ya existentes.

Escalabilidad

NTFS está optimizado para clústeres de 4 KB, pero admite un tamaño máximo de clúster de 2 MB. (Implementaciones anteriores admiten hasta 64 KB) El tamaño máximo de volumen NTFS que puede admitir la especificación es 264 − 1 clústeres, pero no todas las implementaciones alcanzan este máximo teórico, como se explica a continuación.

El tamaño máximo del volumen NTFS implementado en Windows XP Professional es 232 − 1 clústeres, en parte debido a las limitaciones de la tabla de particiones. Por ejemplo, si usa clústeres de 64 KB, el tamaño máximo del volumen NTFS de Windows XP es 256 TB menos 64 KB. Usando el tamaño de clúster predeterminado de 4 KB, el tamaño máximo del volumen NTFS es 16 TB menos 4 KB. Ambos son muy superiores al límite de 128 GB de Windows XP SP1. Debido a que las tablas de particiones en discos de registro de arranque maestro (MBR) solo admiten tamaños de partición de hasta 2 TB, se deben combinarse para crear un único volumen NTFS de más de 2 TB. Arrancar desde un volumen GPT a un entorno Windows de forma compatible con Microsoft requiere un sistema con interfaz de firmware extensible unificada (UEFI) y compatibilidad con 64 bits.

El límite teórico máximo de NTFS en el tamaño de archivos individuales es 16 EB (16 × 10246< /span> o 264 bytes) menos 1 KB, lo que da un total de 18 446 744 073 709 550 592 bytes. Con Windows 10 versión 1709 y Windows Server 2019, el tamaño máximo de archivo implementado es 8 PB menos 2 MB o 9.007.199.252.643.840 bytes.

Interoperabilidad

Ventanas

Si bien las diferentes versiones de NTFS son en su mayoría totalmente compatibles con versiones anteriores y posteriores, existen consideraciones técnicas para montar volúmenes NTFS más nuevos en versiones anteriores de Microsoft Windows. Esto afecta a los discos duros portátiles externos y de arranque dual. Por ejemplo, intentar usar una partición NTFS con "Versiones anteriores" (Volume Shadow Copy) en un sistema operativo que no lo admita, se perderán los contenidos de esas versiones anteriores. Una utilidad de línea de comandos de Windows llamada convert.exe puede convertir sistemas de archivos compatibles a NTFS, incluidos HPFS (solo en Windows NT 3.1, 3.5 y 3.51), FAT16 y FAT32 (en Windows 2000 y versiones posteriores).

BSD gratuito

FreeBSD 3.2 lanzado en mayo de 1999 incluía compatibilidad con NTFS de solo lectura escrito por Semen Ustimenko. Esta implementación fue portada a NetBSD por Christos Zoulas y Jaromir Dolecek y lanzada con NetBSD 1.5 en diciembre de 2000. La implementación FreeBSD de NTFS también fue portada a OpenBSD por Julien Bordet y ofrece compatibilidad nativa con NTFS de solo lectura de forma predeterminada en las plataformas i386 y amd64 como de la versión 4.9 lanzada el 1 de mayo de 2011.

Linux

Las versiones del kernel de Linux 2.1.74 y posteriores incluyen un controlador escrito por Martin von Löwis que tiene la capacidad de leer particiones NTFS; Las versiones del kernel 2.5.11 y posteriores contienen un nuevo controlador escrito por Anton Altaparmakov (Universidad de Cambridge) y Richard Russon que admite la lectura de archivos. La capacidad de escribir en archivos se introdujo con la versión 2.6.15 del kernel en 2006, que permite a los usuarios escribir en archivos existentes pero no permite la creación de nuevos. El controlador NTFS de Paragon (ver a continuación) se fusionó con la versión 5.15 del kernel y admite la lectura/escritura en archivos normales, comprimidos y dispersos, así como la reproducción del diario.

NTFS-3G es una implementación gratuita de NTFS de FUSE con licencia GPL que Szabolcs Szakacsits desarrolló inicialmente como un controlador de kernel de Linux. Fue reescrito como un programa FUSE para trabajar en otros sistemas compatibles con FUSE, como macOS, FreeBSD, NetBSD, OpenBSD, Solaris, QNX y Haiku, y permite leer y escribir en particiones NTFS. Una versión comercial de rendimiento mejorado de NTFS-3G, denominada "Tuxera NTFS para Mac", también está disponible a través de los desarrolladores de NTFS-3G.

NTFS cautivo, un 'envoltorio' controlador que usa Windows' controlador propio ntfs.sys, existe para Linux. Fue construido como un programa Filesystem in Userspace (FUSE) y lanzado bajo la GPL, pero el trabajo en Captive NTFS cesó en 2006.

Las versiones del kernel de Linux 5.15 en adelante llevan NTFS3, un controlador de lectura y escritura NTFS totalmente funcional que funciona en versiones NTFS hasta 3.1 y es mantenido principalmente por Paragon Software Group con el código fuente que se encuentra aquí.

Mac OS

Mac OS X 10.3 incluía la implementación de solo lectura de Ustimenko de NTFS de FreeBSD. Luego, en 2006, Apple contrató a Anton Altaparmakov para escribir una nueva implementación de NTFS para Mac OS X 10.6. El soporte nativo de escritura NTFS está incluido en 10.6 y versiones posteriores, pero no está activado de forma predeterminada, aunque existen soluciones alternativas para habilitar la funcionalidad. Sin embargo, los informes de los usuarios indican que la funcionalidad es inestable y tiende a causar pánico en el kernel.

Paragon Software Group vende un controlador de lectura y escritura llamado NTFS para Mac OS X, que también se incluye en algunos modelos de discos duros de Seagate.

OS/2

El paquete NetDrive para OS/2 (y derivados como eComStation y ArcaOS) admite un complemento que permite acceso de lectura y escritura a volúmenes NTFS.

DOS

Existe un controlador de lectura/escritura gratuito para uso personal para MS-DOS de Avira llamado "NTFS4DOS".

Ahead Software desarrolló un "NTFSREAD" controlador (versión 1.200) para DR-DOS 7.0x entre 2002 y 2004. Era parte de su software Nero Burning ROM.

Seguridad

NTFS usa listas de control de acceso y encriptación a nivel de usuario para ayudar a proteger los datos del usuario.

Listas de control de acceso (ACL)

permisos del sistema de archivos NTFS en un sistema Windows moderno

En NTFS, a cada archivo o carpeta se le asigna un descriptor de seguridad que define a su propietario y contiene dos listas de control de acceso (ACL). La primera ACL, llamada lista de control de acceso discrecional (DACL), define exactamente qué tipo de interacciones (por ejemplo, lectura, escritura, ejecución o eliminación) están permitidas o prohibidas por qué usuario o grupos de usuarios. Por ejemplo, archivos en C:Program Files La carpeta puede ser leída y ejecutada por todos los usuarios, pero solo puede ser modificada por un usuario que tenga privilegios administrativos. Windows Vista agrega información de control de acceso obligatoria a las DACL. Las DACL son el enfoque principal del Control de cuentas de usuario en Windows Vista y versiones posteriores.

La segunda ACL, llamada lista de control de acceso al sistema (SACL), define qué interacciones con el archivo o la carpeta deben auditarse y si deben registrarse cuando la actividad es exitosa, fallida o ambas. Por ejemplo, se puede habilitar la auditoría en archivos confidenciales de una empresa, para que sus gerentes sepan cuándo alguien intenta eliminarlos o hacer una copia de ellos, y si lo logra.

Cifrado

El sistema de cifrado de archivos (EFS) proporciona un cifrado transparente para el usuario de cualquier archivo o carpeta en un volumen NTFS. EFS funciona junto con el servicio EFS, la CryptoAPI de Microsoft y la biblioteca en tiempo de ejecución del sistema de archivos EFS (FSRTL). EFS funciona cifrando un archivo con una clave simétrica masiva (también conocida como clave de cifrado de archivos o FEK), que se utiliza porque se necesita una cantidad de tiempo relativamente pequeña para cifrar y descifrar grandes cantidades de datos que si se utiliza un cifrado de clave asimétrica. se usa La clave simétrica que se usa para encriptar el archivo luego se encripta con una clave pública que está asociada con el usuario que encriptó el archivo, y estos datos encriptados se almacenan en un flujo de datos alternativo del archivo encriptado. Para descifrar el archivo, el sistema de archivos utiliza la clave privada del usuario para descifrar la clave simétrica que se almacena en el flujo de datos. Luego usa la clave simétrica para descifrar el archivo. Debido a que esto se hace a nivel del sistema de archivos, es transparente para el usuario. Además, en caso de que un usuario pierda el acceso a su clave, se ha incorporado soporte para claves de descifrado adicionales en el sistema EFS, de modo que un agente de recuperación aún pueda acceder a los archivos si es necesario. El cifrado proporcionado por NTFS y la compresión proporcionada por NTFS se excluyen mutuamente; sin embargo, se puede usar NTFS para uno y una herramienta de terceros para el otro.

La compatibilidad con EFS no está disponible en las versiones Basic, Home y MediaCenter de Windows, y debe activarse después de la instalación de las versiones Professional, Ultimate y Server de Windows o mediante el uso de herramientas de implementación empresarial dentro de los dominios de Windows.

Características

Diario

NTFS es un sistema de archivos de diario y utiliza el registro NTFS ($LogFile) para registrar los cambios de metadatos en el volumen. Es una función que FAT no proporciona y es crítica para que NTFS garantice que sus complejas estructuras internas de datos se mantendrán consistentes en caso de fallas del sistema o movimientos de datos realizados por la API de desfragmentación, y permite revertir fácilmente los cambios no confirmados en estas estructuras de datos críticas. cuando se vuelve a montar el volumen. Las estructuras notablemente afectadas son el mapa de bits de asignación de volumen, las modificaciones a los registros MFT, como movimientos de algunos atributos de longitud variable almacenados en registros MFT y listas de atributos, e índices para directorios y descriptores de seguridad.

El formato ($LogFile) ha evolucionado a través de varias versiones:

Versión de Windows $LogFile versión formato
Windows NT 4.0 1.1
Windows 2000
Windows XP
Windows Vista
Windows 7
Windows 8 2.0
Windows 8.1
Windows 10

La incompatibilidad de las versiones de $LogFile implementadas por Windows 8, Windows 10 y Windows 11 impide que Windows 7 (y versiones anteriores de Windows) reconozcan la versión 2.0 de $LogFile. La compatibilidad con versiones anteriores se proporciona degradando $LogFile a la versión 1.1 cuando un volumen NTFS se desmonta limpiamente. Se actualiza nuevamente a la versión 2.0 cuando se monta en una versión compatible de Windows. Sin embargo, al hibernar en el disco en el estado de cierre de sesión (también conocido como Arranque híbrido o Arranque rápido, que está habilitado de forma predeterminada), los sistemas de archivos montados no se desmontan y, por lo tanto, los $LogFiles de los sistemas de archivos activos no se degradan a la versión 1.1. La incapacidad de procesar la versión 2.0 de $LogFile por parte de versiones de Windows anteriores a la 8.0 da como resultado una invocación innecesaria de la utilidad de reparación de disco CHKDSK. Esto es particularmente preocupante en un escenario de arranque múltiple que involucra versiones anteriores y posteriores a la 8.0 de Windows, o cuando se mueve con frecuencia un dispositivo de almacenamiento entre versiones anteriores y nuevas. Existe una configuración del Registro de Windows para evitar la actualización automática de $LogFile a la versión más nueva. El problema también se puede solucionar desactivando el arranque híbrido.

El Diario USN (Diario de número de secuencia de actualización) es una función de administración del sistema que registra (en $Extend$UsnJrnl) cambios en archivos, flujos y directorios en el volumen, así como sus diversos atributos y configuraciones de seguridad. El diario está disponible para que las aplicaciones realicen un seguimiento de los cambios en el volumen. Este diario se puede habilitar o deshabilitar en volúmenes que no sean del sistema.

Enlaces duros

La función de enlace fijo permite que diferentes nombres de archivo se refieran directamente al mismo contenido de archivo. Los enlaces duros pueden vincular solo a archivos en el mismo volumen, porque cada volumen tiene su propia MFT. Los enlaces duros se incluyeron originalmente para admitir el subsistema POSIX en Windows NT.

Aunque los enlaces físicos usan el mismo registro MFT (inodo) que registra los metadatos del archivo, como el tamaño del archivo, la fecha de modificación y los atributos, NTFS también almacena en caché estos datos en la entrada del directorio como una mejora del rendimiento. Esto significa que al enumerar el contenido de un directorio utilizando la familia de API FindFirstFile/FindNextFile (equivalente a las API opendir/readdir de POSIX), también recibirá esta información almacenada en caché, además del nombre y el inodo. Sin embargo, es posible que no vea información actualizada, ya que solo se garantiza que esta información se actualizará cuando se cierre un archivo, y solo para el directorio desde el que se abrió el archivo. Esto significa que cuando un archivo tiene varios nombres a través de enlaces físicos, la actualización de un archivo a través de un nombre no actualiza los datos almacenados en caché asociados con el otro nombre. Siempre puede obtener datos actualizados utilizando GetFileInformationByHandle (que es el verdadero equivalente de la función estadística POSIX). Esto se puede hacer usando un identificador que no tiene acceso al archivo en sí (pasando cero a CreateFile para dwDesiredAccess), y cerrar este identificador tiene el efecto incidental de actualizar la información almacenada en caché.

Windows usa enlaces duros para admitir nombres de archivo cortos (8.3) en NTFS. Se necesita compatibilidad con el sistema operativo porque hay aplicaciones heredadas que solo pueden funcionar con nombres de archivo 8.3, pero la compatibilidad se puede desactivar. En este caso, se agrega un registro de nombre de archivo adicional y una entrada de directorio, pero tanto el 8.3 como el nombre de archivo largo se vinculan y actualizan juntos, a diferencia de un vínculo fijo normal.

El sistema de archivos NTFS tiene un límite de 1024 enlaces físicos en un archivo.

Flujo de datos alternativo (ADS)

Los flujos de datos alternativos permiten asociar más de un flujo de datos con un nombre de archivo (una bifurcación), utilizando el formato "nombre de archivo:nombre de flujo" (por ejemplo, "text.txt:extrastream").

Los flujos NTFS se introdujeron en Windows NT 3.1 para habilitar Servicios para Macintosh (SFM) para almacenar bifurcaciones de recursos. Aunque las versiones actuales de Windows Server ya no incluyen SFM, los productos Apple Filing Protocol (AFP) de terceros (como ExtremeZ-IP de GroupLogic) aún usan esta característica del sistema de archivos. Internet Explorer y recientemente otros navegadores agregan ADS muy pequeños (denominados "Zone.Identifier") para marcar los archivos descargados de sitios externos como posiblemente no seguros para ejecutar; el shell local requeriría entonces la confirmación del usuario antes de abrirlos. Cuando el usuario indica que ya no desea este diálogo de confirmación, este ADS se elimina.

Las secuencias alternativas no aparecen en el Explorador de Windows y su tamaño no está incluido en el tamaño del archivo. Cuando el archivo se copia o se mueve a otro sistema de archivos sin compatibilidad con ADS, se advierte al usuario que no se pueden conservar flujos de datos alternativos. Por lo general, no se proporciona dicha advertencia si el archivo se adjunta a un correo electrónico o se carga en un sitio web. Por lo tanto, el uso de flujos alternativos para datos críticos puede causar problemas. Microsoft proporciona una herramienta llamada Streams para ver transmisiones en un volumen seleccionado. A partir de Windows PowerShell 3.0, es posible administrar ADS de forma nativa con seis cmdlets: Add-Content, Clear-Content, Get-Content, Get-Item, Remove-Item, Set-Content.

El malware ha utilizado flujos de datos alternativos para ocultar el código. Como resultado, los escáneres de malware y otras herramientas especiales ahora buscan flujos de datos alternativos.

Compresión de archivos

La compresión se habilita por carpeta o por archivo configurando la opción 'comprimida' atributo. Cuando la compresión está habilitada en una carpeta, todos los archivos que se muevan o guarden en esa carpeta se comprimirán automáticamente mediante el algoritmo LZNT1 (una variante de LZ77). El algoritmo de compresión está diseñado para admitir tamaños de clúster de hasta 4 KB; cuando el tamaño del clúster es superior a 4 KB en un volumen NTFS, la compresión NTFS no está disponible. Los datos se comprimen en fragmentos de 16 clústeres (hasta 64 KB de tamaño); si la compresión reduce 64 KB de datos a 60 KB o menos, NTFS trata los 4 Las páginas de KB son como grupos de archivos dispersos vacíos: no se escriben. Esto permite tiempos razonables de acceso aleatorio, ya que el sistema operativo simplemente tiene que seguir la cadena de fragmentos.

La compresión funciona mejor con archivos que tienen contenido repetitivo, rara vez se escriben, generalmente se accede a ellos secuencialmente y no están comprimidos. Los sistemas de un solo usuario con espacio limitado en el disco duro pueden beneficiarse de la compresión NTFS para archivos pequeños, desde 4 KB hasta 64 KB o más., dependiendo de la compresibilidad. Los archivos de menos de 900 bytes aproximadamente se almacenan en la entrada del directorio de la MFT.

Ventajas

Los usuarios de procesadores multinúcleo rápidos encontrarán mejoras en la velocidad de las aplicaciones al comprimir sus aplicaciones y datos, así como una reducción en el espacio utilizado. Incluso cuando los controladores SSD ya comprimen datos, todavía hay una reducción en las E/S ya que se transfieren menos datos.

Según una investigación realizada por el equipo de desarrollo de NTFS de Microsoft, 50–60 GB es un tamaño máximo razonable para un archivo comprimido en un volumen NTFS con 4 KB (predeterminado) de tamaño de clúster (bloque). Este tamaño máximo razonable disminuye drásticamente para volúmenes con tamaños de clúster más pequeños.

Desventajas

Los archivos comprimibles grandes se fragmentan mucho, ya que cada fragmento de menos de 64 KB se convierte en un fragmento. La memoria flash, como las unidades SSD, no tiene los retrasos en el movimiento de la cabeza ni el tiempo de acceso elevado de las unidades de disco duro mecánicas, por lo que la fragmentación solo tiene una penalización menor.

Si los archivos del sistema que se necesitan en el momento del arranque (como controladores, NTLDR, winload.exe o BOOTMGR) están comprimidos, es posible que el sistema no arranque correctamente porque los filtros de descompresión aún no están cargados. Las ediciones posteriores de Windows no permiten comprimir archivos importantes del sistema.

Compresión del sistema

Desde Windows 10, Microsoft ha introducido un nuevo esquema de compresión de archivos basado en el algoritmo XPRESS con un tamaño de bloque de 4K/8K/16K y el algoritmo LZX; ambas son variantes de LZ77 actualizadas con codificación de entropía Huffman y codificación de rango, de las que carecía LZNT1. Estos algoritmos de compresión se tomaron del formato de imágenes de Windows (archivo WIM).

El nuevo esquema de compresión es utilizado por la función CompactOS, que reduce el uso del disco al comprimir los archivos del sistema de Windows. CompactOS no es una extensión de la compresión de archivos NTFS y no utiliza la función 'comprimida' atributo; en su lugar, establece un punto de análisis en cada archivo comprimido con una etiqueta WOF (Filtro de superposición de Windows), pero los datos reales se almacenan en un flujo de datos alternativo denominado "WofCompressedData", que se descomprime sobre la marcha. por un controlador de filtro de sistema de archivos WOF, y el archivo principal es un archivo disperso vacío. Este diseño está diseñado únicamente para acceso de solo lectura, por lo que cualquier escritura en archivos comprimidos da como resultado una descompresión automática.

La compresión de CompactOS está destinada a OEM que preparan imágenes de SO con /compact de la herramienta DISM en Windows ADK, pero también se puede activar manualmente por archivo con /exe del compacto. El algoritmo CompactOS evita la fragmentación de archivos al escribir datos comprimidos en fragmentos asignados contiguamente, a diferencia de la compresión NTFS central.

La compresión de archivos de CompactOS es una versión mejorada de la función WIMBoot introducida en Windows 8.1. WIMBoot reduce el uso del disco de Windows al mantener los archivos del sistema en una imagen WIM comprimida en una partición de disco oculta separada. De manera similar a CompactOS, los directorios del sistema de Windows solo contienen archivos dispersos marcados por un punto de análisis con una etiqueta WOF, y el controlador de filtro de superposición de Windows descomprime el contenido de los archivos sobre la marcha desde la imagen WIM. Sin embargo, WIMBoot es menos efectivo que CompactOS, ya que las nuevas versiones actualizadas de los archivos del sistema deben escribirse en la partición del sistema, lo que consume espacio en el disco.

Archivos dispersos

Un archivo escaso: Los bytes vacíos no necesitan ser salvados, por lo que pueden ser representados por metadatos.
Un petabyte (1,125,899,906,842,624 bytes) de archivos escasos, 0 bytes en disco.

Los archivos dispersos son archivos intercalados con segmentos vacíos para los que no se utiliza espacio de almacenamiento real. Para las aplicaciones, el archivo parece un archivo ordinario con regiones vacías vistas como regiones llenas de ceros; el sistema de archivos mantiene una lista interna de dichas regiones para cada archivo disperso. Un archivo disperso no incluye necesariamente áreas de ceros dispersos; el "archivo disperso" El atributo solo significa que el archivo puede tenerlos.

Las aplicaciones de bases de datos, por ejemplo, pueden usar archivos dispersos. Al igual que con los archivos comprimidos, los tamaños reales de los archivos dispersos no se tienen en cuenta al determinar los límites de cuota.

Copia de sombra de volumen

El Servicio de instantáneas de volumen (VSS) conserva versiones históricas de archivos y carpetas en volúmenes NTFS mediante la copia de datos antiguos recién sobrescritos en instantáneas mediante la técnica de copia en escritura. El usuario puede solicitar posteriormente que se recupere una versión anterior. Esto también permite que los programas de copia de seguridad de datos almacenen archivos actualmente en uso por el sistema de archivos.

Windows Vista también introdujo instantáneas persistentes para usar con las características de Restaurar sistema y Versiones anteriores. Sin embargo, las instantáneas persistentes se eliminan cuando un sistema operativo anterior monta ese volumen NTFS. Esto sucede porque el sistema operativo anterior no comprende el formato más nuevo de instantáneas persistentes.

Transacciones

A partir de Windows Vista, las aplicaciones pueden usar NTFS transaccional (TxF) para agrupar varios cambios en archivos en una sola transacción. La transacción garantizará que se produzcan todos los cambios o ninguno, y que ninguna aplicación fuera de la transacción verá los cambios hasta que se confirmen.

Utiliza técnicas similares a las que se utilizan para las instantáneas de volumen (es decir, copia en escritura) para garantizar que los datos sobrescritos se puedan revertir de forma segura, y un registro CLFS para marcar las transacciones que aún no se han confirmado, o aquellas que se han confirmado pero aún no se han aplicado por completo (en caso de que el sistema se bloquee durante una confirmación por parte de uno de los participantes).

NTFS transaccional no restringe las transacciones solo al volumen NTFS local, sino que también incluye otros datos transaccionales u operaciones en otras ubicaciones, como datos almacenados en volúmenes separados, el registro local o bases de datos SQL, o los estados actuales de los servicios del sistema o servicios remotos. Estas transacciones se coordinan en toda la red con todos los participantes que utilizan un servicio específico, el DTC, para garantizar que todos los participantes reciban el mismo estado de compromiso y para transportar los cambios que han sido validados por cualquier participante (para que los demás puedan invalidar su local). cachés para datos antiguos o deshacer sus cambios en curso no confirmados). NTFS transaccional permite, por ejemplo, la creación de sistemas de archivos distribuidos consistentes en toda la red, incluso con sus cachés locales en vivo o fuera de línea.

Microsoft ahora desaconseja el uso de TxF: "Microsoft recomienda encarecidamente a los desarrolladores que utilicen medios alternativos" ya que "TxF puede no estar disponible en futuras versiones de Microsoft Windows".

Cuotas

Las cuotas de disco se introdujeron en NTFS v3. Permiten que el administrador de una computadora que ejecuta una versión de Windows compatible con NTFS establezca un umbral de espacio en disco que los usuarios pueden usar. También permite a los administradores realizar un seguimiento de la cantidad de espacio en disco que utiliza cada usuario. Un administrador puede especificar un cierto nivel de espacio en disco que un usuario puede usar antes de recibir una advertencia y luego denegar el acceso al usuario una vez que alcance su límite superior de espacio. Las cuotas de disco no tienen en cuenta la compresión de archivos transparente de NTFS, en caso de que esté habilitada. Las aplicaciones que consultan la cantidad de espacio libre también verán la cantidad de espacio libre que le queda al usuario al que se le aplicó una cuota.

Puntos de análisis

Introducidos en NTFS v3, los puntos de análisis de NTFS se utilizan asociando una etiqueta de análisis en el atributo de espacio de usuario de un archivo o directorio. Microsoft incluye varias etiquetas predeterminadas, incluidos enlaces simbólicos, puntos de unión de directorios y puntos de montaje de volúmenes. Cuando el Administrador de objetos analiza una búsqueda de nombre de sistema de archivos y encuentra un atributo de análisis, reanalizará la búsqueda de nombre, pasando los datos de análisis controlados por el usuario a cada controlador de filtro de sistema de archivos que se carga en Windows. Cada controlador de filtro examina los datos de análisis para ver si están asociados con ese punto de análisis y, si ese controlador de filtro determina una coincidencia, intercepta la solicitud del sistema de archivos y realiza su función especial.

Limitaciones

Redimensionamiento

A partir de Windows Vista, Microsoft agregó la capacidad integrada de reducir o expandir una partición. Sin embargo, esta capacidad no reubica fragmentos de archivos de página o archivos que se han marcado como inamovibles, por lo que reducir un volumen a menudo requerirá reubicar o deshabilitar cualquier archivo de página, el índice de Windows Search y cualquier instantánea utilizada por Restaurar sistema. Varias herramientas de terceros son capaces de cambiar el tamaño de las particiones NTFS.

OneDrive

Desde 2017, Microsoft exige que la estructura de archivos de OneDrive resida en un disco NTFS. Esto se debe a que la característica OneDrive Files On-Demand usa puntos de análisis NTFS para vincular archivos y carpetas que están almacenados en OneDrive al sistema de archivos local, lo que hace que el archivo o la carpeta no se pueda usar con ninguna versión anterior de Windows, con cualquier otro controlador del sistema de archivos NTFS o cualquier sistema de archivos y utilidades de copia de seguridad no actualizados para admitirlo.

Estructura

NTFS se compone de varios componentes, entre ellos: un sector de arranque de partición (PBS) que contiene información de arranque; la tabla maestra de archivos que almacena un registro de todos los archivos y carpetas en el sistema de archivos; una serie de metaarchivos que ayudan a estructurar los metadatos de manera más eficiente; flujos de datos y mecanismos de bloqueo.

Internamente, NTFS usa árboles B para indexar los datos del sistema de archivos. Se utiliza un diario del sistema de archivos para garantizar la integridad de los metadatos del sistema de archivos, pero no de los archivos individuales. contenido. Se sabe que los sistemas que utilizan NTFS tienen una confiabilidad mejorada en comparación con los sistemas de archivos FAT.

NTFS permite cualquier secuencia de valores de 16 bits para la codificación de nombres (por ejemplo, nombres de archivos, nombres de secuencias o nombres de índices) excepto 0x0000. Esto significa que se admiten unidades de código UTF-16, pero el sistema de archivos no comprueba si una secuencia es UTF-16 válida (permite cualquier secuencia de valores cortos, no restringida a los del estándar Unicode). En el espacio de nombres Win32, cualquier unidad de código UTF-16 no distingue entre mayúsculas y minúsculas, mientras que en el espacio de nombres POSIX distingue entre mayúsculas y minúsculas. Los nombres de archivo están limitados a 255 unidades de código UTF-16. Ciertos nombres están reservados en el directorio raíz del volumen y no se pueden usar para archivos. Estos son $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef, . (punto), $Bitmap, $Boot, $BadClus, $Secure< /código>, $UpCase y $Extender. . (punto) y $Extend son directorios; los otros son archivos. El kernel de NT limita las rutas completas a 32 767 unidades de código UTF-16. Hay algunas restricciones adicionales sobre los puntos de código y los nombres de archivo.

Sector de arranque de partición (PBS)

Contenido del sector de arranque NTFS (Todos los valores excepto las cadenas se almacenan en un pequeño orden endiano.)
offset Longitud del campo Valor típico Nombre del campo Propósito
0x00 3 bytes 0xEB5290 instrucciones x86 JMP y NOP Causa que la ejecución continúe después de las estructuras de datos en este sector de arranque.
0x03 8 bytes "NTFS    "
Palabra "NTFS" seguido por cuatro espacios de seguimiento (0x20)
OEM ID Este es el número mágico que indica que es un sistema de archivos NTFS.
0x0B 2 bytes 0x0200 BPB Bytes per sector El número de bytes en un sector de disco.
0x0D 1 byte 0x08 Sectores por grupo El número de sectores en un grupo. Si el valor es mayor que 0x80, la cantidad de sectores es 2 al poder del valor absoluto de considerar que este campo es negativo.
0x0E 2 bytes 0x0000 Sectores reservados, no utilizados
0x10 3 bytes 0x000000 No utilizados Este campo es siempre 0
0x13 2 bytes 0x0000 Unused by NTFS Este campo es siempre 0
0x15 1 byte 0xF8 Media Descriptor El tipo de unidad. 0xF8 se utiliza para denotar un disco duro (en contraste con los varios tamaños de floppy).
0x16 2 bytes 0x0000 No utilizados Este campo es siempre 0
0x18 2 bytes 0x003F Sectores por pista El número de sectores de disco en una pista de tracción.
0x1A 2 bytes 0x00FF Número de cabezas El número de cabezas en la unidad.
0x1C 4 bytes 0x0000003F Sectores ocultos El número de sectores que preceden a la partición.
0x20 4 bytes 0x00000 No utilizados No utilizado por NTFS
0x24 4 bytes 0x00800080 EBPB No utilizados No utilizado por NTFS
0x28 8 bytes 0x00000007FF54A Total sectores El tamaño de la partición en sectores.
0x30 8 bytes 0x0000000000000004 Número de grupos temáticos El clúster que contiene la Tabla de Archivo Maestro
0x38 8 bytes 0x000000007FF54 $MFT Número de racimo de Mirr El clúster que contiene una copia de seguridad de la Tabla de Archivo Maestro
0x40 1 byte 0xF6 Bytes o Clusters Por Registro de Archivo Segmento Un valor positivo denota el número de grupos en un segmento de registro de archivos. Un valor negativo denota la cantidad de bytes en un segmento de registro de archivos, en cuyo caso el tamaño es 2 al poder del valor absoluto. (0xF6 = -10 → 210 = 1024).
0x41 3 bytes 0x000000 No utilizados Este campo no es utilizado por NTFS
0x44 1 byte 0x01 Bytes or Clusters Por Index Buffer Un valor positivo indica el número de clusters en un Buffer de Índice. Un valor negativo denota la cantidad de bytes y utiliza el mismo algoritmo para números negativos como el "Bytes o Clusters Por Segmento de Registro de Archivo."
0x45 3 bytes 0x000000 No utilizados Este campo no es utilizado por NTFS
0x48 8 bytes 0x1C741BC9741BA514 Número de serie de volumen Un número aleatorio único asignado a esta partición, para mantener las cosas organizadas.
0x50 4 bytes 0x00000 Checksum, no utilizado Supuestamente un chequesum.
0x54 426 bytes Bootstrap Code El código que carga el resto del sistema operativo. Esto se señala por los primeros 3 bytes de este sector.
0x01FE 2 bytes 0xAA55 Fin del sector Marker Esta bandera indica que es un sector de arranque válido.

Este formato de partición de arranque se basa aproximadamente en el sistema de archivos FAT anterior, pero los campos están en diferentes ubicaciones. Algunos de estos campos, especialmente los "sectores por pista", "número de cabezas" y "sectores ocultos" los campos pueden contener valores ficticios en unidades donde no tienen sentido o no se pueden determinar.

El sistema operativo primero busca los 8 bytes en 0x30 para encontrar el número de clúster de $MFT, luego multiplica ese número por el número de sectores por clúster (1 byte encontrado en 0x0D). Este valor es la compensación del sector (LBA) al $MFT, que se describe a continuación.

Tabla maestra de archivos

En NTFS, todos los datos de archivos, directorios y metarchivos (nombre de archivo, fecha de creación, permisos de acceso (mediante el uso de listas de control de acceso) y tamaño) se almacenan como metadatos en la tabla maestra de archivos (MFT). Este enfoque abstracto permitió agregar fácilmente características del sistema de archivos durante el desarrollo de Windows NT; un ejemplo es la adición de campos para indexación utilizados por Active Directory y Windows Search. Esto también permite que el software de búsqueda rápida de archivos localice archivos y carpetas locales con nombre incluidos en la MFT muy rápidamente, sin necesidad de ningún otro índice.

La estructura MFT admite algoritmos que minimizan la fragmentación del disco. Una entrada de directorio consta de un nombre de archivo y un "ID de archivo" (análogo al número de inodo), que es el número de registro que representa el archivo en la tabla maestra de archivos. El ID de archivo también contiene un recuento de reutilización para detectar referencias obsoletas. Si bien esto se parece mucho al W_FID de Files-11, otras estructuras NTFS difieren radicalmente.

Se almacena una copia parcial de la MFT, llamada réplica de la MFT, para usarla en caso de corrupción. Si el primer registro de la MFT está dañado, NTFS lee el segundo registro para encontrar el archivo espejo de la MFT. Las ubicaciones de ambos archivos se almacenan en el sector de arranque.


Metarchivos

NTFS contiene varios archivos que definen y organizan el sistema de archivos. En todos los aspectos, la mayoría de estos archivos están estructurados como cualquier otro archivo de usuario (siendo Volumen el más peculiar), pero no son de interés directo para los clientes del sistema de archivos. Estos metarchivos definen archivos, realizan copias de seguridad de datos críticos del sistema de archivos, almacenan en búfer cambios en el sistema de archivos, administran la asignación de espacio libre, satisfacen las expectativas del BIOS, rastrean unidades de asignación incorrectas y almacenan información de seguridad y uso de espacio en disco. Todo el contenido está en un flujo de datos sin nombre, a menos que se indique lo contrario.

MFT (las entradas 0–26 son los metafiles NTFS)
Número de segmento Nombre del archivo Propósito
0 $MFTDescribe todos los archivos en el volumen, incluyendo nombres de archivos, timetamps, nombres de flujo, y listas de números de racimo donde los flujos de datos residen, índices, identificadores de seguridad, y atributos de archivos como "read only", "compressed", "encrypted", etc.
1 $MFTMirrDuplicado de las primeras entradas vitales $MFT, generalmente 4 entradas (4 kilobytes).
2 $LogFileContiene cambios en el registro de transacciones de metadatos del sistema de archivos.
3 $VolumeContiene información sobre el volumen, a saber, el identificador de objetos de volumen, la etiqueta de volumen, la versión del sistema de archivos y las banderas de volumen (montado, chkdsk solicitado, solicitado $LogFile tamaño, montado en NT 4, actualización de número de serie de volumen, solicitud de actualización de estructura). Estos datos no se almacenan en una secuencia de datos, sino en atributos MFT especiales: Si está presente, se almacena un ID de objeto de volumen en un $OBJECT_ID registro; la etiqueta de volumen se almacena en VOLUME_NAME y los datos de volumen restantes están en $VOLUME_INFORMATION registro. Nota: el número de serie de volumen se almacena en el archivo Boot (bajo).
4 $AttrDefUna tabla de atributos MFT que asocia identificadores numéricos con nombres.
5 .Directorio Root. Los datos del directorio se almacenan en $INDEX_ROOT y $INDEX_ALLOCATION atributos ambos nombrados $I30.
6 $BitmapUna serie de entradas de bits: cada bit indica si su grupo correspondiente se utiliza (alocado) o libre (disponible para la asignación).
7 $BootRegistro de arranque de volumen (VBR). Este archivo se encuentra siempre en los primeros racimos del volumen. Contiene código de arranque (ver NTLDR/BOOTMGR) y un bloque de parámetro BIOS que incluye un número de serie de volumen y números de racimo $MFT y $MFTMirr.
8 $BadClusUn archivo que contiene todos los grupos marcados como tener sectores malos. Este archivo simplifica la gestión de grupos por parte de la utilidad chkdsk, tanto como un lugar para poner sectores mal descubiertos recientemente, y para identificar grupos no referenciados. Este archivo contiene dos flujos de datos, incluso en volúmenes sin sectores malos: un flujo sin nombre contiene sectores malos — es la longitud cero para volúmenes perfectos; el segundo flujo se llama $Bad y contiene todos los racimos en el volumen no en la primera secuencia.
9 $SecureBase de datos de la lista de control de acceso que reduce la sobrecarga teniendo muchos ACL idénticos almacenados con cada archivo, almacenando estos ACLs únicamente en esta base de datos (contiene dos índices: SII (Standard_Information ID) y $SDH (Descriptor de seguridad Hash), que índice el flujo llamado SAD que contiene la tabla ACL real).
10 $UpCaseUna tabla de caracteres de mayúsculas unicode para garantizar la insensibilidad de caso en Win32 y DOS namespaces.
11 $ExtendUn directorio de sistema de archivos que contiene varias extensiones opcionales, como $Quota, $ObjId, $Reparse o $UsnJrnl.
12 a 23 Reservado $MFT entradas de extensión. Las entradas de extensión son registros MFT adicionales que contienen atributos adicionales que no encajan en el registro primario. Esto podría ocurrir si el archivo está suficientemente fragmentado, tiene muchas corrientes, nombres de archivo largos, seguridad compleja, u otras situaciones raras.
24 $Extend$QuotaMantiene información de cuota de disco. Contiene dos raíces índice, llamadas $O y $Q.
25 $Extend$ObjIdMantiene información de seguimiento de enlaces. Contiene una raíz de índice y una asignación nombrada $O.
26 $Extend$ReparseMantiene datos de puntos gruesos (como enlaces simbólicos). Contiene una raíz de índice y una asignación nombrada $R.
27 – Inicio de las entradas regulares de archivos.

Estos metarchivos son tratados especialmente por Windows, manejados directamente por el controlador NTFS.SYS y son difíciles de ver directamente: se necesitan herramientas especialmente diseñadas. A partir de Windows 7, el controlador NTFS prohíbe por completo el acceso del usuario, lo que genera una BSoD cada vez que se intenta ejecutar un archivo de metadatos. Una de estas herramientas es nfi.exe ("Utilidad de información del sector de archivos NTFS") que se distribuye gratuitamente como parte de las "Herramientas de soporte OEM" de Microsoft. Por ejemplo, para obtener información sobre el segmento de la tabla de archivos maestros "$MFT", se usa el siguiente comando: nfi.exe c:$MFT Otra forma de eludir la restricción es para usar el administrador de archivos de 7-Zip y vaya a la ruta NTFS de bajo nivel \.X: (donde X: se parece a cualquier unidad/ dividir). Aquí aparecerán 3 carpetas nuevas: $EXTEND, [DELETED] (una pseudocarpeta que 7-Zip usa para adjuntar archivos eliminados del sistema de archivos para verlos), y [SYSTEM] (otra pseudocarpeta que contiene todos los archivos de metadatos NTFS). Este truco se puede usar desde dispositivos extraíbles (unidades flash USB, discos duros externos, tarjetas SD, etc.) dentro de Windows, pero hacerlo en la partición activa requiere acceso sin conexión (a saber, WinRE).

Listas de atributos, atributos y flujos

Para cada archivo (o directorio) descrito en el registro MFT, existe un depósito lineal de descriptores de flujo (también denominados atributos), empaquetados en uno o más registros MFT (que contienen los llamada lista de atributos), con relleno adicional para llenar el tamaño fijo de 1 KB de cada registro MFT, y que describe completamente las secuencias efectivas asociadas con ese archivo.

Cada atributo tiene un tipo de atributo (un entero de tamaño fijo asignado a una definición de atributo en el archivo $AttrDef), un nombre de atributo opcional (por ejemplo, utilizado como el nombre para un flujo de datos alternativo) y un valor, representado en una secuencia de bytes. Para NTFS, los datos estándar de los archivos, los flujos de datos alternativos o los datos de índice de los directorios se almacenan como atributos.

Según $AttrDef, algunos atributos pueden ser residentes o no residentes. El atributo $DATA, que contiene datos de archivo, es un ejemplo de ello. Cuando el atributo es residente (lo que se representa mediante una bandera), su valor se almacena directamente en el registro de la MFT. De lo contrario, se asignan clústeres para los datos y la información de ubicación del clúster se almacena como ejecuciones de datos en el atributo.

  • Para cada archivo en el MFT, los atributos identificados por atributo tipo, nombre de atributo debe ser único. Además, NTFS tiene algunas limitaciones de orden para estos atributos.
  • Hay un tipo de atributo nulo predefinido, utilizado para indicar el final de la lista de atributos en un registro MFT. Debe estar presente como el último atributo en el registro (todo el otro espacio de almacenamiento disponible después de que será ignorado y sólo consiste en padding bytes para que coincida con el tamaño de registro en el MFT).
  • Algunos tipos de atributos son necesarios y deben estar presentes en cada registro MFT, excepto los registros no utilizados que son indicados por tipos de atributos nulos.
    • Este es el caso para el $STANDARD_INFORMATION atributo que se almacena como un registro de tamaño fijo y contiene los timetamps y otros atributos básicos de un solo bit (compatible con los administrados por FAT en DOS o Windows 9x).
  • Algunos tipos de atributos no pueden tener un nombre y deben permanecer anónimos.
    • Este es el caso de los atributos estándar, o del tipo de atributo "nombre de archivo" preferido de NTFS, o el tipo de atributo "nombre de archivo corto", cuando también está presente (para compatibilidad con aplicaciones similares a DOS, véase abajo). También es posible que un archivo contenga sólo un nombre de archivo corto, en cuyo caso será el preferido, como aparece en el Explorador de Windows.
    • Los atributos de nombre de archivo almacenados en la lista de atributos no hacen que el archivo sea accesible inmediatamente a través del sistema de archivos jerárquicos. De hecho, todos los nombres de archivo deben ser indexados por separado en al menos otro directorio en el mismo volumen. Allí debe tener su propio registro MFT y sus propios descriptores y atributos de seguridad que hacen referencia al número de registro MFT para este archivo. Esto permite que el mismo archivo o directorio sea "hardlinked" varias veces desde varios contenedores en el mismo volumen, posiblemente con nombres de archivo distintos.
  • El flujo de datos predeterminado de un archivo regular es un flujo de tipo $DATA pero con un nombre anónimo, y los ADS son similares pero deben ser nombrados.
  • Por otro lado, el flujo de datos predeterminado de directorios tiene un tipo distinto, pero no son anónimos: tienen un nombre de atributo ("$I30" en NTFS 3+) que refleja su formato de indexación.

Todos los atributos de un archivo determinado se pueden mostrar mediante el uso de nfi.exe ("Utilidad de información del sector de archivos NTFS") que se distribuye gratuitamente como parte de las "Herramientas de soporte OEM" de Microsoft;.

Las llamadas al sistema de Windows pueden manejar flujos de datos alternativos. Según el sistema operativo, la utilidad y el sistema de archivos remoto, una transferencia de archivos puede eliminar silenciosamente los flujos de datos. Una forma segura de copiar o mover archivos es usar las llamadas al sistema BackupRead y BackupWrite, que permiten que los programas enumeren secuencias, para verificar si cada secuencia debe escribirse en el volumen de destino y omitir deliberadamente las secuencias no deseadas.

Atributos de residente frente a no residente

Para optimizar el almacenamiento y reducir la sobrecarga de E/S para el caso muy común de atributos con un valor asociado muy pequeño, NTFS prefiere colocar el valor dentro del propio atributo (si el tamaño del atributo no excede el valor máximo). tamaño de un registro de MFT), en lugar de usar el espacio de registro de MFT para enumerar los grupos que contienen los datos; en ese caso, el atributo no almacenará los datos directamente, sino que solo almacenará un mapa de asignación (en forma de ejecuciones de datos) que apunta a los datos reales almacenados en otra parte del volumen. Cuando se puede acceder al valor directamente desde el atributo, se denomina "datos residentes" (por trabajadores de informática forense). La cantidad de datos que caben depende en gran medida de las características del archivo, pero entre 700 y 800 bytes es común en archivos de flujo único con nombres de archivo cortos y sin ACL.

  • Algunos atributos (como el nombre de archivo preferido, los atributos básicos del archivo) no se pueden hacer no residentes. Para los atributos no residentes, su mapa de asignación debe encajar en los registros MFT.
  • No se pueden hacer residentes en los flujos de datos cifrados por la NNTFS, los flujos de datos escasos o los flujos de datos comprimidos.
  • El formato del mapa de asignación para atributos no residentes depende de su capacidad de soporte de almacenamiento de datos escasos. En la aplicación actual de la NTFS, una vez que se ha marcado y convertido un flujo de datos no confidenciales como escaso, no puede cambiarse de nuevo a datos no separados, por lo que no puede volver a residir, a menos que estos datos estén completamente truncados, descartando completamente el escaso mapa de asignación.
  • Cuando un atributo no residente está tan fragmentado, que su mapa de asignación eficaz no puede encajar completamente dentro de un registro MFT, NTFS almacena el atributo en múltiples registros. El primero entre ellos se llama el registro base, mientras que los otros se llaman registros de extensión. NTFS crea un atributo especial $ATTRIBUTE_LIST para almacenar información mapeando diferentes partes del atributo largo a los registros MFT, lo que significa que el mapa de asignación puede dividirse en múltiples registros. El $ATTRIBUTE_LIST también puede ser no residente, pero su propio mapa de asignación debe encajar dentro de un registro MFT.
  • Cuando hay demasiados atributos para un archivo (incluyendo los atributos ADS, atributos extendidos o descriptores de seguridad), de modo que no puedan encajar todos dentro del registro MFT, los registros de extensiones también pueden utilizarse para almacenar los otros atributos, utilizando el mismo formato que el utilizado en el registro base MFT, pero sin las limitaciones de espacio de un registro MFT.

El mapa de asignación se almacena en forma de ejecuciones de datos con codificación comprimida. Cada ejecución de datos representa un grupo contiguo de clústeres que almacenan el valor del atributo. Para archivos en un volumen de varios GB, cada entrada se puede codificar como de 5 a 7 bytes, lo que significa un 1 KB El registro MFT puede almacenar alrededor de 100 ejecuciones de datos de este tipo. Sin embargo, como $ATTRIBUTE_LIST también tiene un límite de tamaño, es peligroso tener más de 1 millón de fragmentos de un solo archivo en un volumen NTFS, lo que también implica que está en en general, no es una buena idea usar la compresión NTFS en un archivo de más de 10 GB.

El controlador del sistema de archivos NTFS a veces intentará reubicar los datos de algunos de los atributos que se pueden convertir en no residentes en los clústeres y también intentará reubicar los datos almacenados en los clústeres en el atributo dentro del registro MFT., en función de las reglas de ordenación preferidas y de prioridad, y las restricciones de tamaño.

Dado que los archivos residentes no ocupan clústeres directamente ("unidades de asignación"), es posible que un volumen NTFS contenga más archivos en un volumen que clústeres. Por ejemplo, una partición 74,5 GB formatea NTFS con 19 543 064 clústeres de 4 KB. Restar los archivos del sistema (un archivo de registro de 64 MB, un archivo de mapa de bits de 2 442 888 bytes y unos 25 clústeres de gastos generales fijos) deja 19 526 158 clústeres libres para archivos e índices. Dado que hay cuatro registros MFT por grupo, este volumen teóricamente podría contener casi 4 × 19 526 158 = 78 104 632 archivos residentes.

Bloqueos oportunistas

Los bloqueos de archivos oportunistas (oplocks) permiten a los clientes modificar su estrategia de almacenamiento en búfer para un archivo o flujo determinado a fin de aumentar el rendimiento y reducir el uso de la red. Los bloqueos operativos se aplican a la secuencia abierta dada de un archivo y no afectan los bloqueos operativos en una secuencia diferente.

Los bloqueos operativos se pueden utilizar para acceder de forma transparente a los archivos en segundo plano. Un cliente de red puede evitar escribir información en un archivo en un servidor remoto si ningún otro proceso está accediendo a los datos, o puede almacenar datos de lectura anticipada en el búfer si ningún otro proceso está escribiendo datos.

Windows admite cuatro tipos diferentes de bloqueos operativos:

  • Nivel 2 (o compartido) oplock: múltiples lectores, no escritores (es decir, caché de lectura).
  • Nivel 1 (o exclusivo) oplock: acceso exclusivo con amortiguación arbitraria (es decir, lectura y escritura de caché).
  • Batch oplock (también exclusivo): se abre un flujo en el servidor, pero se cierra en la máquina cliente (es decir, leer, escribir y manejar caching).
  • Filtro oplock (también exclusivo): aplicaciones y filtros de sistema de archivos pueden "regresar" cuando otros tratan de acceder al mismo flujo (es decir, leer y escribir caching) (desde Windows 2000)

Los bloqueos oportunistas se mejoraron en Windows 7 y Windows Server 2008 R2 con claves de bloqueo de operación por cliente.

Tiempo

Windows NT y sus descendientes mantienen marcas de tiempo internas como UTC y realizan las conversiones apropiadas para fines de visualización; todas las marcas de tiempo NTFS están en UTC.

Por razones históricas, todas las versiones de Windows que no son compatibles con NTFS mantienen la hora internamente como la hora de la zona local y, por lo tanto, también lo hacen todos los sistemas de archivos, excepto NTFS, que son compatibles con las versiones actuales de Windows. Esto significa que cuando los archivos se copian o mueven entre particiones NTFS y no NTFS, el sistema operativo necesita convertir las marcas de tiempo sobre la marcha. Pero si algunos archivos se mueven cuando está en vigor el horario de verano (DST) y otros archivos se mueven cuando está en vigor el horario estándar, puede haber algunas ambigüedades en las conversiones. Como resultado, especialmente poco después de uno de los días en que cambia la hora de la zona local, los usuarios pueden observar que algunos archivos tienen marcas de tiempo incorrectas en una hora. Debido a las diferencias en la implementación del horario de verano en diferentes jurisdicciones, esto puede generar un posible error de marca de tiempo de hasta 4 horas en cualquier 12 meses.

Contenido relacionado

Proyecto Xanadú

Project Xanadu fue el primer proyecto de hipertexto, fundado en 1960 por Ted Nelson. Los administradores del Proyecto Xanadú lo han declarado superior a la...

Iván Sutherland

Ivan Edward Sutherland es un informático estadounidense y pionero de Internet, ampliamente considerado como un pionero de los gráficos por computadora. Sus...

Máquina de código P

Aunque el concepto se implementó por primera vez alrededor de 1966, como código O para el lenguaje de programación combinado básico y código P para el...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save