logo linux

¿Debe desaparecer el controlador para EXT3 del kernel?

El debate ha comenzado a raíz de la petición de un desarrollador del kernel. EXT3 ha sido un sistema de archivos que ha estado disponible desde 2001 y que hoy, debido a EXT4, apenas se usa.

Hace unos días apareció Linux 4.2 y, como viene siendo habitual, ha comenzado el trabajo para la siguiente versión que saldrá de aquí a un mes y medio aproximadamente.

En la lista de correo del kernel se ha abierto un debate acerca de continuar incluyendo el controlador para EXT3 ya que el controlador para EXT4 es capaz de manejar el sistema de archivos antecesor.

Todo comenzó el lunes con este correo de Jan Kára:

Hola Linus,

¿Podrías incluir el siguiente parche, por favor?

El cambio más significativo es la eliminación del controlador del sistema de archivos ext3 (se han eliminado 28000 lineas). El controlador para Ext4 es un sustituto que incluye todas las características hoy en día y tanto RH como SUSE llevan usándolo años sin problemas. […]

A este correo responde Linus unas horas después con lo siguiente:

En realidad no estoy preparado para quitar ext3 sin más sin buenos argumentos. Podría haber gente que use ext3 como ext3 y no quiera actualizar. Para quitarlo quiero algo más racional que «ext4 puede leer el viejo sistema de archivos ext3».

Un rato después, Raymond Jennings, otro desarrollador del kernel, le responde a Linus:

En realidad estaría de acuerdo en que tener dos controladores para el mismo sistema de archivos supone una duplicación del código redundante e innecesaria.

Dicho eso, no me importaría que al controlador ext4 se le hicieran pruebas rigurosas para asegurarse de que en realidad puede manejar viejos sistemas ext3 tan bien como lo hace el controlador ext3.

Acabar con todo un controlador sólo porque otro controlador puede manejarlo, sólo tiene sentido si nada puede ir mal y el potencial de provocar regresiones es bastante obvio.

Además creo que deberíamos quitar el controlador ext2 antes de eliminar el controlador ext3.

Es mi granito de arena.

Sobre la propuesta de hacer una prueba a fondo a ext4 para comprobar que no da fallos con ext3, Linus responde:

Esa no es mi única preocupación. Pensar como «puedes volver a sólo ext3» también es un problema. No creo que sea una gran prioridad para ext4 y si hay quien todavía se resiste y sigue usando ext3, podría querer tener la posibilidad de volver a kernels antiguos.

Así que no es solo una cuestión de «en su lugar puedes usar ext4». ¿Puedes hacerlo sin forzarlo a actualizar una partición para siempre? No estoy seguro de que la gente de ext4 estén incluso dispuestos a garantizar ese tipo de compatibilidad hacia atrás.

Estaría de acuerdo en quitar ext3 en teoría, pero no he visto demasiadas razones para ello y no sé si todavía hay usuarios que podrían tener buenas razones para continuar con ext3. […]

A ese correo le responden varias personas, pero la respuesta más interesante viene de Theodore Ts’o, desarrollador del sistema de archivos EXT4:

Sí, puedes volver a sólo ext3. De hecho, no actualizamos el sistema de archivos para que se usen características específicas de ext4 de forma automática.

En realidad la garantizamos [la compatibilidad hacia atrás]. Se considera una forma pobre de cambiar automáticamente el superbloque para añadir nuevas funciones del sistema de archivos de una forma que podría acabar con la posibilidad para el usuario de volver a kenels más antiguos. Eso no solo se hace con cambios de ext3 a ext4 sino que también para nuevas características de ext4 como la comprobación de los metadatos. El usuario tiene que habilitar explícitamente la función usando «tune2fs -O new_feature /dev/sdXX».

Un sistema de archivos con sólo características de ext3 forma parte de las pruebas de regresiones.[…]

En el mismo correo, le responde sobre dar argumentos racionales:

La principal razón es que dos bases de código son más difíciles de mantener que una. Cuando se soluciona un fallo en ext4, no tiene por qué propagarse a ext3 a no ser que se haga por un proceso manual donde Jan se da cuenta de que el fallo corregido en ext4 también afecta a ext3 y porta manualmente el parche.

[…]

Dado que las principales distribuciones están usando ext4 para dar soporte a ext3, dar compatibilidad hacia atrás para ext3 es algo a lo que damos soporte hoy y seguiremos dando soporte independientemente de si ext3 se elimina o no del kernel.

Un saludo.

Ese correo todavía no ha recibido respuesta, por lo que todavía no se sabe si se eliminará el controlador para EXT3 del kernel en Linux 4.3. En cualquier caso, expuestos los argumentos parece que no hay grandes razones para seguir manteniendo el antiguo controlador ya que EXT4 es capaz de ofrecer todas las funciones tanto de compatibilidad con EXT3 como de compatibilidad con antiguos kernels.

La discusión se puede seguir en las listas de correo del kernel.