A maioria dos sistemas comuns de Linux (e Unix, em geral) usam uma abstração de armazenamento chamada dispositivos de bloco. Um dispositivo de bloco é uma seqüência de blocos (setores). Blocos individuais podem ser lidos ou escritos. Há uma suposição de que a leitura ou a escrita de blocos sequenciais será mais rápida do que a leitura e a escrita e uma suposição de que não há problema em escrever no mesmo local repetidamente.
Esse é um ótimo modelo para unidades de disco. Não é um bom modelo para memória flash.
A memória flash deve ser apagada antes de poder ser reescrita. O circuito de apagamento é relativamente complexo, portanto, os blocos de apagamento (especialmente no flash NAND) são geralmente substancialmente maiores que os blocos de gravação. Cada bloco de apagamento só pode ser apagado um número limitado de vezes antes de falhar. Portanto, para maximizar a vida útil, é necessário um mecanismo para uniformizar o desgaste no dispositivo.
Existem duas abordagens. Uma abordagem é criar um controlador que apresente uma interface de dispositivo de bloco padrão e lide com o nivelamento de desgaste ao remapear blocos lógicos para diferentes físicos e, em alguns casos, mover dados "frios" (raramente modificados) de blocos de baixo desgaste para de alto desgaste. Isso significa que qualquer sistema de arquivos normal pode ser usado, mas o sistema de remapeamento é difícil de implementar corretamente. Em particular, a manipulação de falhas de energia é muito difícil. Essa é a abordagem usada pelos SSDs, pen drives, cartões SD, etc.
A outra abordagem não é tentar e fingir que o flash é uma unidade de disco, mas criar um novo tipo de dispositivo que represente diretamente um chip flash. O sistema de arquivos (ou, no caso de ubifs, a camada ubi) assume a responsabilidade pelo nivelamento de desgaste. O Linux chama esses dispositivos de dispositivos mtd. Como nos discos rígidos, cada dispositivo pode ser dividido em várias partições (embora as partições do IIRC sejam geralmente definidas pelo firmware do sistema, e não por uma tabela de partição no dispositivo flash em questão). Essa abordagem é vista com frequência em dispositivos incorporados, smartphones e tablets semelhantes a smartphones.