de codigo para eliminar o corrompimento causado por aplicacoes ou pelo proprio kernel. No entanto, eliminar o corrompimento de dados em arquivos causados, por exemplo, pela queda de energia ou pelo desligamento incorreto por parte do usuario, sempre foi uma tarefa praticamente impossivel. Quando o sistema e desligado incorretamente o bit do cabecalho do sistema de arquivos nao e ajustado. A solucao foi fazer com que, no proximo processo de carregamento do Linux, seja verificado se o cabecalho esta com o bit de cabecalho setado para indicar que o sistema de arquivos esta consistente e nao manipulavel. Caso nao esteja, a ferrramenta "fsck" verifica o sistema na busca de erros.JournalingO fsck consegue prover resultados satisfatorios, mas a correcao de erros pode levar muito tempo, algo inaceitavel em aplicacoes criticas. Alem disso, se o desligamento incorreto do computador ocorreu quando dados estavam sendo gravados no disco, o fsck nao conseguira completar esses processos, ocasionando a perda das informacoes que estavam sendo gravadas.Diante desses problemas, foi apresentada uma solucao viavel: a utilizacao de sistemas de arquivos com a tecnologia "Journaling", que possuem a capacidade de acompanhar as mudancas que serao feitas no sistema de arquivos (por exemplo, gravacoes/atualizacoes de dados) antes que realmente sejam feitas. Essas informacoes que o Journaling captura sao entao armazenadas em uma parte separada do sistema de arquivos, denominada "Journal" (mas tambem conhecida por "registros de log"). Quando as informacoes sao armazenadas no Journal, o sistema de arquivos aplica as mudancas registradas nele e entao, remove as informacoes do Journal.Agora, entenda o porque do Journaling ser uma solucao eficiente para os problemas de erro. Os registros de log sao escritos antes que as mudancas efetivamente ocorram no sistema de arquivos e esses registros somente sao eliminados quando as mudancas sao feitas. Assim, se o computador e indevidamente desligado, o processo de montagem no proximo startup verificara se ha mudancas gravadas no Journal "marcadas" como nao feitas. Se houver, tais mudancas sao entao aplicadas ao sistema de arquivos. Isso faz com que os riscos de perda de dados sejam reduzidos drasticamente.Sistema de arquivos ext3Existem varios sistemas de arquivos disponiveis com a tecnologia Journaling, como o XFS, desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado com codigo aberto, o ReiserFS, desenvolvido especialmente para Linux, JFS, desenvolvido originalmente pela IBM mas tambem liberado com codigo aberto, e o mais conhecido deles: o ext3, desenvolvido pelo Dr. Stephen Tweedie juntamente com outros colaboradores, na Red Hat, e que veremos agora.O sistema de arquivos ext3 e basicamente o sistema de arquivos ext2 com recursos de Journaling. Talvez, essa seja a razao de seu uso amplo: ele e totalmente compativel com ext2 (que foi um sistema de arquivos muito usado), o que nenhum outro sistema de arquivos baseado em Journaling e.O ext3 passou a ser efetivamente suportado pelo kernel do Linux a partir da versao 2.4. Consequentemente, todas as distribuicoes Linux lancadas com esse kernel ou superior, tem suporte padrao para ext3.No ext3, o codigo de Journaling usa uma camada chamada "Journaling Block Device" (JBD). A JBD foi criada com o proposito de implementar Journal em