Articulo de referencia

extensión 4

\n{{mono|EBD0A0A2- B9E5- 4433- 87C0- 68B6B72699C7}}: [[GUID Partition Table|GPT]] Windows [[Basic Data Partition|BDP]]. Previously, Linux used the same GUID for the data partiti...

ext4 ( cuarto sistema de archivos extendido ) es un sistema de archivos con registro de transacciones para Linux , desarrollado como sucesor de ext3 .

ext4 fue inicialmente una serie de extensiones retrocompatibles con ext3, muchas de ellas desarrolladas originalmente por Cluster File Systems para el sistema de archivos Lustre entre 2003 y 2006, destinadas a ampliar los límites de almacenamiento y añadir otras mejoras de rendimiento. [ 4 ] Sin embargo, otros desarrolladores del kernel de Linux se opusieron a aceptar extensiones para ext3 por razones de estabilidad, [ 5 ] y propusieron bifurcar el código fuente de ext3, renombrarlo como ext4 y realizar todo el desarrollo allí, sin afectar a los usuarios existentes de ext3. Esta propuesta fue aceptada y, el 28 de junio de 2006, Theodore Ts'o , el mantenedor de ext3, anunció el nuevo plan de desarrollo para ext4. [ 6 ]

Una versión de desarrollo preliminar de ext4 se incluyó en la versión 2.6.19 [ 7 ] del kernel de Linux. El 11 de octubre de 2008, los parches que marcan a ext4 como código estable se fusionaron en los repositorios de código fuente de Linux 2.6.28, [ 8 ] lo que indica el final de la fase de desarrollo y recomienda la adopción de ext4. El kernel 2.6.28, que contiene el sistema de archivos ext4, se lanzó finalmente el 25 de diciembre de 2008. [ 9 ] El 15 de enero de 2010, Google anunció que actualizaría su infraestructura de almacenamiento de ext2 a ext4. [ 10 ] El 14 de diciembre de 2010, Google también anunció que usaría ext4, en lugar de YAFFS , en Android 2.3 . [ 11 ]

Sus mejoras con respecto a ext3 incluyen un rango de fechas que termina en el año 2446 en lugar de 2038 , una precisión de marca de tiempo de un nanosegundo en lugar de un segundo y límites de tamaño más altos. [ 12 ] [ 13 ]

Adopción

ext4 es el sistema de archivos predeterminado para muchas distribuciones de Linux, incluidas Debian y Ubuntu . [ 14 ]

Características

Sistema de archivos grande
El sistema de archivos ext4 puede admitir volúmenes con tamaños en teoría de hasta 64 ZiB y archivos individuales con tamaños de hasta 16 TiB con el tamaño de bloque estándar de 4 KiB , y volúmenes con tamaños de hasta 1 YiB con clústeres de 64 KiB , aunque una limitación en el formato de extensión hace que 1 EiB sea el límite práctico. [ 15 ] Los límites de tamaño máximo de archivos, directorios y sistemas de archivos crecen al menos proporcionalmente con el tamaño de bloque del sistema de archivos hasta el tamaño de bloque máximo de 64 KiB disponible en las CPU ARM y PowerPC / Power ISA .       
Extensión
Las extensiones reemplazan el esquema de mapeo de bloques tradicional utilizado por ext2 y ext3. Una extensión es un rango de bloques físicos contiguos, lo que mejora el rendimiento de archivos grandes y reduce la fragmentación. Una sola extensión en ext4 puede mapear hasta 128 MiB de espacio contiguo con un tamaño de bloque de 4 KiB. [ 4 ] Se pueden almacenar cuatro extensiones directamente en el inodo . Cuando un archivo tiene más de cuatro extensiones, el resto se indexan en un árbol . [ 16 ]  
Compatibilidad con versiones anteriores
ext4 es retrocompatible con ext3 y ext2 , lo que permite montar ext3 y ext2 como ext4. Esto mejorará ligeramente el rendimiento, ya que ciertas características nuevas de la implementación de ext4 también se pueden usar con ext3 y ext2, como el nuevo algoritmo de asignación de bloques, sin afectar el formato en disco. [ 17 ]
ext3 es parcialmente compatible con ext4. En la práctica, ext4 no se montará como un sistema de archivos ext3 de forma predeterminada, a menos que se deshabiliten ciertas características nuevas al crearlo, como ^extent, ^flex_bg, ^huge_file, ^uninit_bg, ^dir_nlink, y ^extra_isize. [ 18 ]
Preasignación persistente
ext4 puede preasignar espacio en disco para un archivo. En la mayoría de los sistemas de archivos, esto implica escribir ceros en el archivo al crearlo. En ext4 (y otros sistemas de archivos como XFS ) fallocate(), se puede utilizar una nueva llamada al sistema en el kernel de Linux. El espacio asignado estaría garantizado y probablemente sería contiguo. Esta situación tiene aplicaciones en la transmisión de contenido multimedia y las bases de datos.
Asignación retrasada
ext4 utiliza una técnica de rendimiento denominada asignación al vaciar el disco , también conocida como asignación diferida . Es decir, ext4 retrasa la asignación de bloques hasta que los datos se escriben en el disco; en cambio, algunos sistemas de archivos asignan bloques inmediatamente, incluso cuando los datos se almacenan en una caché de escritura. La asignación diferida mejora el rendimiento y reduce la fragmentación al asignar de forma efectiva mayores cantidades de datos a la vez. [ 19 ]
Número ilimitado de subdirectorios
ext4 no limita el número de subdirectorios en un solo directorio, excepto por el límite de tamaño inherente del propio directorio. (En ext3 un directorio puede tener como máximo 32.000 subdirectorios). [ 20 ] Para permitir directorios más grandes y un rendimiento continuo, ext4 en Linux 2.6.23 y posteriores activa los índices HTree (una versión especializada de un árbol B ) de forma predeterminada, lo que permite que los directorios de hasta aproximadamente 10-12 millones de entradas se almacenen en el índice HTree de 2 niveles y un límite de tamaño de directorio de 2 GB para un tamaño de bloque de 4 KiB, dependiendo de la longitud del nombre de archivo. En Linux 4.12 y posteriores la característica habilitó un HTree de 3 niveles y tamaños de directorio de más de 2 GB, permitiendo aproximadamente 6 mil millones de entradas en un solo directorio.  large_dir 
sumas de verificación de los asientos contables
ext4 utiliza sumas de verificación [ 21 ] en el registro para mejorar la fiabilidad, ya que el registro es uno de los archivos más utilizados del disco. Esta característica tiene una ventaja adicional: puede evitar de forma segura una espera de E/S del disco durante el registro, mejorando ligeramente el rendimiento. La suma de verificación del registro se inspiró en un artículo de investigación de la Universidad de Wisconsin , titulado IRON File Systems , [ 22 ] con modificaciones en la implementación de transacciones compuestas realizadas por el sistema de archivos IRON (propuesto originalmente por Sam Naghshineh en la cumbre de Red Hat).
Verificación de suma de metadatos
Se agregó soporte para sumas de verificación de metadatos en la versión 3.5 del kernel de Linux, publicada en 2012. [ 23 ] [ 24 ] Muchas estructuras de datos se modificaron para agregar sumas de verificación CRC-32C, pero algunas solo almacenan los 16 bits inferiores de la suma de verificación de 32 bits, ya que no hay suficiente espacio reservado previamente para almacenar los 4 bytes completos. La conversión in situ se puede realizar utilizando tune2fs -O metadata_csum. [ 25 ]
Comprobación del sistema de archivos más rápida
En ext4, los grupos de bloques y secciones no asignados de la tabla de inodos se marcan como tales. Esto permite que e2fsck los omita por completo y reduce considerablemente el tiempo necesario para comprobar el sistema de archivos. Linux 2.6.24 implementa esta función.
Asignador multibloque
Cuando ext3 añade datos a un archivo, llama al asignador de bloques una vez por cada bloque. Por consiguiente, si hay varios procesos escribiendo simultáneamente, los archivos pueden fragmentarse fácilmente en el disco. Sin embargo, ext4 utiliza la asignación diferida, lo que le permite almacenar datos en búfer y asignar grupos de bloques. En consecuencia, el asignador de multibloques puede tomar mejores decisiones sobre la asignación contigua de archivos en el disco. El asignador de multibloques también se puede utilizar cuando los archivos se abren en modo O_DIRECT. Esta función no afecta al formato del disco.
Marcas de tiempo mejoradas
A medida que los ordenadores se vuelven más rápidos en general, y a medida que Linux se utiliza más para aplicaciones de misión crítica , la granularidad de las marcas de tiempo basadas en segundos resulta insuficiente. Para solucionar esto, ext4 proporciona marcas de tiempo medidas en nanosegundos . Además,  se añaden 2 bits del campo de marca de tiempo expandido a los bits más significativos del campo de segundos de las marcas de tiempo para posponer el problema del año 2038 durante 408 años adicionales. [ 3 ]
ext4 también añade soporte para marcas de tiempo de creación. Pero, como señala Theodore Ts'o , si bien es fácil añadir un campo de fecha de creación adicional en el inodo (habilitando así técnicamente el soporte para estas marcas de tiempo en ext4), es más difícil modificar o añadir las llamadas al sistema necesarias , como stat() (que probablemente requeriría una nueva versión) y las diversas bibliotecas que dependen de ellas (como glibc ). Estos cambios requerirán la coordinación de muchos proyectos. [ 26 ] Por lo tanto, la fecha de creación almacenada por ext4 actualmente solo está disponible para programas de usuario en Linux a través de la statx()API. [ 27 ]
cuotas del proyecto
El soporte para cuotas de proyecto se agregó en el kernel de Linux 4.4 el 8 de enero de 2016. Esta función permite asignar límites de cuota de disco a un ID de proyecto específico. El ID de proyecto de un archivo es un número de 32 bits almacenado en cada archivo y es heredado por todos los archivos y subdirectorios creados bajo un directorio padre con un ID de proyecto asignado. Esto permite asignar límites de cuota a un árbol de subdirectorios específico independientemente de los permisos de acceso al archivo, como las cuotas de usuario y de proyecto que dependen del UID y el GID. Si bien esto es similar a una cuota de directorio, la principal diferencia es que el mismo ID de proyecto se puede asignar a varios directorios de nivel superior y no es estrictamente jerárquico. [ 28 ]
Cifrado transparente
El soporte para el cifrado transparente se agregó en el kernel de Linux 4.1 en junio de 2015. [ 29 ]
Inicialización perezosa
La función lazyinit permite limpiar las tablas de inodos en segundo plano, acelerando la inicialización al crear un nuevo sistema de archivos ext4. [ 30 ] Está disponible desde 2010 en la versión 2.6.37 del kernel de Linux. [ 31 ]
Escribir barreras
ext4 habilita las barreras de escritura de forma predeterminada. Esto garantiza que los metadatos del sistema de archivos se escriban y ordenen correctamente en el disco, incluso cuando las cachés de escritura pierden energía. Esto conlleva una pérdida de rendimiento, especialmente para aplicaciones que utilizan fsync intensivamente o que crean y eliminan muchos archivos pequeños. Para discos con una caché de escritura con respaldo de batería, deshabilitar las barreras (opción 'barrier=0') puede mejorar el rendimiento de forma segura. [ 32 ]

Limitaciones

En 2008, el desarrollador principal de los sistemas de archivos ext3 y ext4, Theodore Ts'o , afirmó que, si bien ext4 presentaba mejoras con respecto a ext3, no representaba un avance significativo, ya que se basaba en tecnología más antigua. Ts'o comentó entonces que Btrfs podría ser una mejor opción, dado que "ofrecía mejoras en escalabilidad, fiabilidad y facilidad de gestión". [ 33 ] Btrfs también compartía "varias ideas de diseño con reiser3 / 4 ", lo que lo hacía atractivo en aquel momento. [ 34 ] Sin embargo, Ts'o y numerosos colaboradores de IBM , Google , SuSE , Huawei y otras empresas han continuado manteniendo y mejorando ext4 con nuevas características como el cifrado de archivos, las sumas de comprobación de metadatos y los nombres de archivo que no distinguen entre mayúsculas y minúsculas.

El sistema de archivos ext4 no respeta el atributo de archivo "eliminación segura" , que debería sobrescribir los archivos al eliminarlos. En 2011 se propuso un parche para implementar la eliminación segura, pero no resolvió el problema de que los datos confidenciales terminaran en el registro del sistema de archivos. [ 35 ]

Retraso en la asignación y posible pérdida de datos.

Debido a que la asignación diferida modifica el comportamiento en el que los programadores confiaban con ext3, esta característica conlleva un riesgo adicional de pérdida de datos en caso de que el sistema falle o se apague antes de que todos los datos se hayan escrito en el disco. Por este motivo, ext4, en las versiones del kernel 2.6.30 y posteriores, gestiona automáticamente estos casos, al igual que ext3.

El escenario típico en el que esto podría ocurrir es un programa que reemplaza el contenido de un archivo sin forzar una escritura en el disco con fsync . Hay dos formas comunes de reemplazar el contenido de un archivo en sistemas Unix: [ 36 ]

  • fd=open("file", O_TRUNC); write(fd, data); close(fd);
En este caso, un archivo existente se trunca al abrirlo (debido a O_TRUNCun indicador), y luego se escriben los nuevos datos. Dado que la escritura puede tardar un tiempo, existe la posibilidad de perder contenido incluso con ext3, aunque suele ser muy baja. Sin embargo, como ext4 puede retrasar la escritura de datos de archivos durante un tiempo prolongado, esta posibilidad es mucho mayor.
Pueden surgir varios problemas:
  1. Si la escritura no se realiza correctamente (lo que puede deberse a errores en el programa de escritura o a condiciones externas, como un disco lleno), se perderán tanto la versión original como la nueva del archivo, y este podría resultar dañado, ya que solo se habrá escrito una parte del mismo.
  2. Si otros procesos acceden al archivo mientras se está escribiendo, verán una versión corrupta.
  3. Si otros procesos tienen el archivo abierto y no esperan que su contenido cambie, dichos procesos podrían fallar. Un ejemplo notable es un archivo de biblioteca compartida que se asigna a programas en ejecución.
Debido a estos problemas, a menudo se prefiere la siguiente expresión idiomática a la anterior:
  • fd=open("file.new"); write(fd, data); close(fd); rename("file.new", "file");
Se crea un nuevo archivo temporal ("archivo.nuevo") que inicialmente contiene el nuevo contenido. A continuación, se renombra el archivo antiguo. El reemplazo de archivos mediante esta rename()llamada garantiza la atómica según los estándares POSIX ; es decir, o bien el archivo antiguo permanece o se sobrescribe con el nuevo. Dado que el modo de registro "ordenado" predeterminado de ext3 garantiza que los datos del archivo se escriban en el disco antes que los metadatos, esta técnica garantiza que el contenido del archivo, ya sea el antiguo o el nuevo, persista en el disco. La asignación diferida de ext4 rompe esta expectativa, ya que la escritura del archivo puede retrasarse durante mucho tiempo y el cambio de nombre generalmente se realiza antes de que el nuevo contenido del archivo llegue al disco.

El uso fsync()más frecuente para reducir el riesgo de ext4 podría generar penalizaciones de rendimiento en sistemas de archivos ext3 montados con la data=orderedbandera (el valor predeterminado en la mayoría de las distribuciones de Linux). Dado que ambos sistemas de archivos se utilizarán durante algún tiempo, esto complica las cosas para los desarrolladores de aplicaciones de usuario final. En respuesta, ext4 en los kernels de Linux 2.6.30 y posteriores detecta la ocurrencia de estos casos comunes y fuerza la asignación inmediata de los archivos. Con un pequeño coste en el rendimiento, esto proporciona una semántica similar al modo ordenado de ext3 y aumenta la probabilidad de que cualquiera de las versiones del archivo sobreviva al fallo. Este nuevo comportamiento está habilitado por defecto, pero se puede deshabilitar con la opción de montaje "noauto_da_alloc". [ 36 ]

Los nuevos parches se han incorporado al kernel principal 2.6.30, pero varias distribuciones optaron por adaptarlos a las versiones 2.6.28 o 2.6.29. [ 37 ]

Estos parches no evitan por completo la posible pérdida de datos ni ayudan en absoluto con los archivos nuevos. La única forma de estar seguro es escribir y usar software que lo haga fsync()cuando sea necesario. Los problemas de rendimiento se pueden minimizar limitando las escrituras de disco cruciales que deben fsync()ocurrir con menos frecuencia. [ 38 ]

Implementación

Estructura simplificada del núcleo de Linux: ext4 se implementa entre el sistema de archivos virtual del núcleo de Linux y la capa de bloques genérica.

El sistema de archivos virtual del kernel de Linux es un subsistema o capa dentro del kernel de Linux. Es el resultado de un intento por integrar múltiples sistemas de archivos en una única estructura ordenada. La idea clave, que se remonta al trabajo pionero realizado por empleados de Sun Microsystems en 1986, [ 39 ] consiste en abstraer la parte del sistema de archivos que es común a todos los sistemas de archivos y colocar ese código en una capa separada que llama a los sistemas de archivos concretos subyacentes para administrar los datos.

Todas las llamadas al sistema relacionadas con archivos (o pseudoarchivos) se dirigen al sistema de archivos virtual del kernel de Linux para su procesamiento inicial. Estas llamadas, provenientes de procesos de usuario, son las llamadas POSIX estándar, como open, read, write, lseek, etc.

Interoperabilidad

Aunque fue diseñado para Linux y se utiliza principalmente con él, se puede acceder al sistema de archivos ext4 desde otros sistemas operativos mediante herramientas de interoperabilidad.

Windows proporciona acceso a través de su tecnología Subsistema de Windows para Linux (WSL). Específicamente, la segunda versión principal, WSL 2, es la primera versión con soporte para ext4. Se lanzó por primera vez en Windows 10 Insider Preview Build 20211. [ 40 ] [ 41 ] [ 42 ] [ 43 ] WSL 2 requiere Windows 10 versión 1903 o superior, con compilación 18362 o superior, para sistemas x64, y versión 2004 o superior, con compilación 19041 o superior, para sistemas ARM64. [ 44 ]

Paragon Software ofrece productos comerciales que proporcionan acceso completo de lectura/escritura para ext2/3/4 Sistemas de archivos Linux para Windows [ 45 ] y extFS para Mac . [ 46 ]

El software gratuito ext4fuse ofrece soporte limitado (solo lectura).

Arquitectura general

El sistema de archivos ext4 divide la partición en la que reside en fragmentos más pequeños llamados bloques (un grupo de sectores, generalmente entre 1  KiB y 64  KiB). Por defecto, el tamaño del bloque es igual al de la página (4  KiB), pero se puede configurar con mkfs durante la creación del sistema de archivos. Los bloques se agrupan en fragmentos más grandes llamados grupos de bloques.

Superbloque

Este es el núcleo del sistema de archivos; reside en un único bloque del disco. [ 47 ] Generalmente es el primer elemento de un grupo de bloques, excepto en el grupo 0, donde los primeros bytes están reservados para el sector de arranque . El superbloque es vital para el sistema de archivos; por ello, se escriben copias de seguridad en particiones al crear el sistema de archivos, de modo que pueda recuperarse en caso de corrupción.

Tabla descriptiva del grupo

GDT ocupa el segundo lugar después del superbloque. GDT almacena descriptores de grupos de bloques para cada grupo de bloques en el sistema de archivos. Reside en más de un bloque del disco. Cada GDT tiene un tamaño de 64 bytes. Esta estructura también es vital para el sistema de archivos; por lo tanto, se almacenan copias de seguridad redundantes en todo el sistema de archivos.

Mapa de bits de bloque

El mapa de bits de bloques registra el estado de uso de todos los bloques de un grupo de bloques. Cada bit del mapa de bits representa un bloque. Si un bloque está en uso, su bit correspondiente estará activado; de lo contrario, estará desactivado. La ubicación del mapa de bits de bloques no es fija, por lo que su posición se almacena en los descriptores de los grupos de bloques correspondientes.

Mapa de bits del inodo

Al igual que el mapa de bits de bloques, la ubicación del mapa de bits de inodos tampoco es fija; por lo tanto, el descriptor de grupo apunta a la ubicación del mapa de bits de inodos. El mapa de bits de inodos registra el uso de los inodos. Cada bit en el mapa de bits representa un inodo. Si un inodo está en uso, su bit correspondiente en el mapa de bits de inodos estará activado; de lo contrario, estará desactivado.

Descriptores de grupos de bloques

Cada grupo de bloques está representado por su descriptor. Este descriptor contiene información vital para el grupo de bloques, como los inodos libres , los bloques libres y la ubicación del mapa de bits de inodos, el mapa de bits de bloques y la tabla de inodos de ese grupo de bloques en particular.

Grupos de bloques flexibles

Ext4 introdujo grupos de bloques flexibles. En flex_bg , varios grupos de bloques se agrupan en un único grupo de bloques lógico. El mapa de bits del bloque y el mapa de bits del inodo del primer grupo de bloques se expanden para incluir el mapa de bits y la tabla de inodos de los demás grupos de bloques.

Véase también

Referencias

  1. 1 2 Anteriormente, Linux utilizaba el mismo GUID para las particiones de datos que Windows (Partición de datos básica: EBD0A0A2- B9E5- 4433- 87C0- 68B6B72699C7 ). Linux nunca tuvo un GUID de tipo de partición único y separado definido para sus particiones de datos. Esto generó problemas al arrancar Linux y Windows en una configuración UEFI-GPT. El nuevo GUID (Datos del sistema de archivos de Linux: 0FC63DAF- 8483- 4772- 8E79- 3D69D8477DE4 ) fue definido conjuntamente por los desarrolladores de GPT fdisk y GNU Parted. Se identifica como el código de tipo 0x8300 en GPT fdisk. (Consulte las definiciones en parttypes.cc de gdisk ).
  2. "DiscoverablePartitionsSpec" . freedesktop.org . Consultado el 7 de abril de 2018 .
  3. 1 2 "ext4: Corrige el manejo de tv_sec extendido" . Árbol del kernel Linux-stable . Recuperado el 14 de febrero de 2017 .
  4. 1 2 Mathur, Avantika; Cao, MingMing; Bhattacharya, Suparna ; Dilger, Andreas; Zhuravlev (Tomas), Alex; Vivier, Laurent (2007). "El nuevo sistema de archivos ext4: estado actual y planes futuros" (PDF) . Actas del Simposio Linux . Ottawa, ON, CA: Red Hat. Archivado del original (PDF) el 6 de julio de 2010. Recuperado el 15 de enero de 2008 .
  5. Torvalds, Linus (9 de junio de 2006). "extensiones y ext3 de 48 bits" . Lista de correo del kernel de Linux .
  6. Ts'o, Theodore (28 de junio de 2006). "Propuesta y plan para el trabajo de desarrollo futuro de ext2/3" . Lista de correo del kernel de Linux .
  7. Leemhuis, Thorsten (23 de diciembre de 2008). "Más alto y más lejos: Las innovaciones de Linux 2.6.28 (página 2)" . Heise Online. Archivado del original el 3 de enero de 2009. Recuperado el 9 de enero de 2010 .
  8. "ext4: Cambiar el nombre de ext4dev a ext4" . Árbol del kernel de Linus . Consultado el 20 de octubre de 2008 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  9. Leemhuis, Thorsten (23 de diciembre de 2008). "Más alto y más lejos: las innovaciones de Linux 2.6.28" . Heise Online.
  10. Paul, Ryan (15 de enero de 2010). "Google actualiza a Ext4 y contrata al ex CTO de la Linux Foundation" . Ars Technica .
  11. "Android 2.3 Gingerbread utilizará el sistema de archivos Ext4" . The H Open . 14 de diciembre de 2010.
  12. ext4: Corrección del manejo de tv_sec extendido - kernel/git/stable/linux.git - Árbol estable del kernel de Linux
  13. "Información general sobre ext4: la documentación del kernel de Linux" . Consultado el 17 de agosto de 2025 .
  14. "Sistema de archivos en Debian" . 14 de septiembre de 2019.
  15. "ext4 – Diseño de alto nivel" . kernel.org . Consultado el 8 de diciembre de 2023 .
  16. Pomeranz, Hal (28 de marzo de 2011). "Entendiendo EXT4 (Parte 3): Árboles de extensión" . Blog de SANS sobre análisis forense digital y respuesta a incidentes . Archivado del original el 18 de agosto de 2019.
  17. "Anatomía de ext4" . IMB Developer . Consultado el 27 de mayo de 2024 .
  18. "El montaje de ext4 (creado sin extensiones) como ext3 falla en RH6.2" . www.linuxquestions.org . Archivado del original el 5 de agosto de 2023. Consultado el 8 de diciembre de 2023 .
  19. "2. Diseño de alto nivel: la documentación del kernel de Linux" . docs.kernel.org . Consultado el 9 de enero de 2025 .
  20. "Ext4 – Linux Kernel Newbies" . kernelnewbies.org .
  21. "Nuevas características de ext4 – Ext4" . ext4.wiki.kernel.org . Archivado del original el 23 de septiembre de 2023. Consultado el 8 de diciembre de 2023 .
  22. Prabhakaran, Vijayan; Bairavasundaram, Lakshmi N.; Agrawal, Nitin; Gunawi, Haryadi S.; Arpaci-Dusseau, Andrea C.; Arpaci-Dusseau, Remzi H. (octubre de 2005). Sistemas de archivos IRON (PDF) . Simposio sobre principios de sistemas operativos (SOSP '05) . Brighton, Reino Unido: CS Dept, Universidad de Wisconsin. Sección 6.1, párrafo 5 "Sumas de verificación transaccionales" . Recuperado el 8 de diciembre de 2023 .
  23. "Sumas de verificación de metadatos Ext4 – Ext4" . ext4.wiki.kernel.org . Archivado del original el 6 de noviembre de 2023. Consultado el 8 de diciembre de 2023 .
  24. "Linux_3.5 – Linux Kernel Newbies" . kernelnewbies.org .
  25. "2. Diseño de alto nivel" . Documentación del núcleo de Linux . Consultado el 3 de abril de 2025 .
  26. Ts'o, Theodore (5 de octubre de 2006). "Re: marcas de tiempo de creación para ext4 ?" . 
  27. Edge, Jake (31 de marzo de 2017). "Extendiendo statx()" . Archivado del original el 20 de septiembre de 2023. Recuperado el 8 de diciembre de 2023 .
  28. Li, Xi (12 de enero de 2016). "ext4: agregar soporte para cuotas de proyecto" (Lista de correo). Archivado del original el 20 de septiembre de 2023. Recuperado el 8 de diciembre de 2023 .
  29. Ts'o, Theodore (8 de abril de 2015). "Cifrado Ext4" . Archivado del original el 12 de octubre de 2023. Recuperado el 8 de diciembre de 2023 .
  30. "Sistema de archivos Ext4" . Thomas-Krenn-Wiki . Archivado del original el 14 de febrero de 2022. Consultado el 8 de diciembre de 2023 .
  31. "kernel/git/torvalds/linux.git – Árbol de código fuente del kernel de Linux" . git.kernel.org .
  32. "Ext4 –" . ArchWiki .
  33. Paul, Ryan (14 de abril de 2009). "Los panelistas reflexionan sobre el núcleo en la Cumbre de Colaboración de Linux" . Ars Technica . Consultado el 22 de agosto de 2009 .
  34. Theodore Ts'o (1 de agosto de 2008). "Re: reiser4 para 2.6.27-rc1" . linux-kernel (Lista de correo) . Consultado el 31 de diciembre de 2010 .
  35. Corbet, Jonathan (11 de octubre de 2011). "Eliminación segura de archivos de sistemas de archivos ext4" .
  36. 1 2 "Documentación de ext4 en el código fuente del kernel de Linux" . 28 de marzo de 2009.
  37. Error de Ubuntu #317781 Larga discusión entre los desarrolladores de Ubuntu y Theodore Ts'o sobre la posible pérdida de datos
  38. Reflexiones de Ted, entrada del blog, 12 de marzo de 2009. Publicación de Theodore Ts'o en su blog sobre el tema.
  39. Kleiman
  40. Brandon LeBlanc (10 de septiembre de 2020). "Anuncio de la compilación 20211 de Windows 10 Insider Preview" . Blogs de Windows . Consultado el 25 de mayo de 2021 .
  41. Pierre Boulay (10 de septiembre de 2020). "Acceso a sistemas de archivos Linux en Windows y WSL 2" . Windows Command Line . Consultado el 25 de mayo de 2021 .
  42. "Primeros pasos para montar un disco Linux en WSL 2" . Microsoft Docs . Consultado el 25 de mayo de 2021 .
  43. Craig Loewen (12 de junio de 2019). "WSL 2 ya está disponible en Windows Insiders" . Windows Command Line . Consultado el 25 de mayo de 2021 .
  44. "Guía de instalación del Subsistema de Windows para Linux para Windows 10" . Documentación de Windows . Consultado el 25 de mayo de 2021 .
  45. "Sistemas de archivos Linux para Windows" . Paragon Software . Consultado el 25 de mayo de 2021 .
  46. "extFS para Mac" . Paragon Software . Consultado el 25 de mayo de 2021 .
  47. "2. Diseño de alto nivel: la documentación del kernel de Linux" .
  • Documentación de ext4 en el código fuente del kernel de Linux.
  • Discusión de Theodore Ts'o en ext4 , 29 de junio de 2006
  • "Desfragmentación en línea de ext4" Archivado el 30 de diciembre de 2019 en Wayback Machine (materiales del Simposio Linux de Ottawa de 2007)
  • "El nuevo sistema de archivos ext4: estado actual y planes futuros" (materiales del Simposio Linux de Ottawa 2007)
  • Registro del kernel: Ext4 completa la fase de desarrollo como paso intermedio hacia btrfs , 17 de octubre de 2008
  • "Mejoras en el asignador de bloques e inodos de Ext4" Archivado el 31 de marzo de 2010 en Wayback Machine (materiales del Simposio Linux de Ottawa de 2008).
  • "Ext4: La próxima generación del sistema de archivos Ext2/3"
  • Wiki de Ext4 (y Ext2/Ext3)
  • Wiki de Ext4 en kernelnewbies.org
  • Puerto nativo de Windows de Ext4 y otros sistemas de archivos en CROSSMETA
  • Ext2read es una aplicación para Windows que permite leer y copiar archivos ext2, ext3 y ext4, con soporte para extensiones y LVM2.
  • Ext2Fsd Controlador de código abierto para sistemas de archivos ext2/ext3/ext4 para Windows, compatible con lectura y escritura. ext4 es compatible a partir de la versión 0.50.
  • Ext4fuse Controlador ext4 de solo lectura de código abierto para FUSE . (Compatible con Mac OS X 10.5 y versiones posteriores, mediante MacFuse )
  • Publicación de Oracle: Comprensión de la distribución del disco ext4
Obtenido de " https://en.wikipedia.org/w/index.php?title=Ext4&oldid=1360284189 "