Quanto tive os meus primeiros contatos com as distribuições GNU/Linux no final dos anos 90, o sistema de arquivos padrão na época era o Extend 2 (ex2). Ele veio para substituir o Extended original para rivalizar com o “moderno” FAT32, superando as limitações referentes ao armazenamento de dados (clusters, arquivos, partições, qt. de objetos, etc). Apesar da falta de recursos modernos e da incapacidade para lidar com as inconsistências causadas por desligamento abrupto do sistema, ele até que “dava conta do recado”! Alguns anos depois, o ext3 chegou e junto com ele, veio o suporte para o journal…
“The ext2 filesystem has been marked as DEPRECATED in the soon-to-be-released Linux kernel version 6.9, which is anticipated to arrive around mid-May due to a significant limitation: its inability to support dates beyond January 19, 2038. This decision is based on the filesystem’s design, which does not accommodate inode timestamps extending beyond this “Year 2038″ threshold. The Year 2038 problem, similar to the much-discussed Y2K issue, arises from the storage of time values as 32-bit integers. These integers will overflow early that year, leading to potential data inaccuracies and system failures.”
— by Linuxiac.
Apesar de ainda ser útil (especialmente nas mídias removíveis baseadas em memória flash NAND, em vista do número reduzido de escritas por causa da falta do journal), ele já possui o seu fim decretado: a partir do kernel 6.9, ele foi demarcado como DEPRECATED (obsoleto e defasado), com o objetivo de alertar os usuários sobre as limitações impostas em vista da falta de atualizações para a sua base de código. A recomendação é utilizar o atual e moderno ext4, que por sua vez é mantido oficialmente pelos desenvolvedores do kernel Linux e oferece a compatibilidade retroativa tanto com o ext2 quanto o ext3.
Na prática, tanto o ext2 quanto o ext3 já possuem o seu fim decretado, porém a partir de uma data mais longínqua: 19 de janeiro de 2038! Isto se dá, em vista da limitação do sistema de armazenamento de datas impostas por estes sistemas de arquivos, limitados a valores de até 32 bits (situação bem similar a que ocorreu na virada do milênio, para sistemas que ainda utilizam 2 dígitos para armazenar o ano). O ext4 está livre deste problema, uma vez que utiliza inodes (blocos) com suporte de pelo menos 256 bytes e assim, tem espaço de sobra para datas!
O ext4 foi lançado em 2008 e diferente das edições anteriores, ele deu um salto considerável em termos de evolução tecnológica! Inicialmente, foi desenvolvida uma série de extensões para serem compatíveis com o ext3, mas em vista de alguns problemas relacionados a estabilidade, a base de código do ext3 foi bifurcada (fork) para dar início ao desenvolvimento do ext4, que por sua vez incorporou as extensões em questão. Por se tratar de um sistema de arquivos dotado de mudanças radicais, a sua adoção foi bem mais demorada em comparação ao do ext3.
Para aqueles linuxers nostálgicos (como eu), este será mais um marco importante na história do Linux & Software Livre! Lembro-me dos problemas causados pela falta de suporte ao journal, que obrigava o sistema a rodar os utilitários designados para realizar a checagem da integridade de sistemas de arquivos, além de marcar os blocos defeituosos do disco para não serem mais utilizados. Tempos depois, não só surgiu o ext3 com suporte ao journal, assim como também foi lançado o Windows XP com suporte para o sistema de arquivos NTFS (que também provê suporte ao journal), acabando de vez com essa terrível do de cabeça!
Sem contar que foi nesta época, que migrei definitivamente para o Tux… &;-D