Professional Documents
Culture Documents
Menu
Home
Revista
Edies anteriores
Edies especiais
Community Edition
Entrevistas
Artigos Online
Sees
Entrevistas
Corporate
Anlise
Tutorial
SysAdmin
Programao
Linux User
Comunidade
Editorial
Colunas
Redes
Segurana
Insegurana
Assine
Linux Magazine
Admin Redes & Segurana
Loja virtual
Anuncie
Frum
Blogs
Blog do Maddog
Blog do Ricardo Olonca
Blog do Elias Praciano
Blog da Flvia Jobs
Whitepapers
Minha LM
Artigo
Os elegantes tablets e smartphones da atual gerao digital abrigam memria Flash, que
economiza espao e energia. Neste artigo, explicamos suas caractersticas e sugerimos
sistemas apropriados para o Linux.
Computadores mais antigos com discos e ventoinhas cada vez mais tm sido escondidos em centros de dados,
blindados pela nuvem. Desta forma, os usurios no notam quanto calor produzem ou quanto barulho eles
fazem. E novos computadores como smartphones e tablets permeiam muitas reas da vida atualmente: anal,
so dispositivos mveis, silenciosos e ecientes em termos de energia.
Uma razo pela qual so mais ecientes vem do fato de que sistemas de armazenamento embarcado utilizam
chips em vez de discos rotativos. Memria Flash em estado slido no possui partes mveis e , portanto,
muito robusta por no possuir estresse mecnico. Alm disso, a memria sem disco acessa os dados
desejados mais rapidamente por no exigir um cabeote em movimento.
1 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Um dispositivo sem disco tambm produz menos calor, tornando desnecessrio o barulho provocado pela
vetoinha. Neste artigo, descreveremos alguns sistemas de arquivos Linux e ferramentas que operam com uma
enorme variedade de dispositivos de armazenamento Flash suportados pelo Linux.
Armazenamento Flash
O armazenamento Flash, tambm chamado de estado slido (solid state), possui muitas vantagens em
relao ao armazenamento rotativo (rotating storage). Em primeiro lugar, a ausncia de peas mecnicas e
em movimento elimina o rudo, aumenta a resistncia e segurana a choques e vibraes, e reduz a
dissipao de calor e consumo de energia. Segundo, o acesso aleatrio a dados muito mais rpido, pois j
no preciso mover um cabeote de disco para o local correto no dispositivo, o que pode levar alguns
milissegundos.
Figura 1 O bloco grande no meio do computador de placa nica BeagleBoard um sistema OMAP-on-a-chip
da Texas Instruments, sob o qual o Flash NAND montado.
O Flash tambm tem suas decincias. Primeiro, pelo mesmo preo, temos apenas um dcimo da capacidade
de armazenamento. Segundo, escrever armazenamento Flash possui restries especiais; no podemos
escrever para o mesmo local de um bloco Flash vrias vezes sem apagar todo o bloco, chamado de bloco de
apagar (erase block). Esta restrio tambm pode fazer com que a velocidade de escrita seja muito menor
que a de leitura. Terceiro, os blocos Flash podem suportar apenas um nmero limitado de erases de alguns
milhares de chips NAND mais densos a um milho, no mximo. Hardware e software, portanto, precisam
espalhar as operaes de escrita em um processo conhecido como nivelamento de desgaste (wear leveling).
NAND/NOR
2 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
A memria Flash NOR (Not OR), que nomeia as portas usadas no chip, foi o primeiro tipo de armazenamento
Flash inventado. O NOR conveniente pois a CPU pode acessar qualquer byte diretamente e em ordem
aleatria. Deste modo, o processador pode executar o cdigo diretamente da NOR, permitindo que seja
utilizado em bootloaders, e no necessita ser copiado para a RAM antes de ser executado.
O tipo mais popular de armazenamento a memria Flash NAND (Not AND) (gura 1), que oferece maior
capacidade de armazenamento ao menor preo. A desvantagem que, como um dispositivo externo, o
armazenamento NAND est conectado via controlador, atravs do qual possvel acessar os dados. A CPU
no pode executar cdigo da NAND sem copiar o cdigo para a memria RAM primeiro. Outra restrio que
os dispositivos Flash NAND podem possuir blocos defeituosos (bad blocks) fora da caixa, exigindo solues de
hardware ou software que funcionam em torno desta limitao durante a operao.
Dois tipos de armazenamento Flash NAND esto disponveis hoje. O primeiro tipo emula um bloco padro de
interface e contm um hardware Flash Translation Layer (camada de traduo Flash) que cuida de apagar
blocos e implementar nivelamento de desgaste, assim como o gerenciamento de blocos defeituosos.
Dispositivos deste tipo incluem drives USB Flash, cartes de mdia, cartes multimdia embutidos (eMMCs), e
discos de estado slido (da sigla SSDs, de solid state disks). O sistema operacional no tem controle sobre a
forma como so geridos os setores Flash pois s considera um dispositivo emulado de bloco.
Embora esta abordagem reduza a complexidade do software do lado do sistema operacional, os fabricantes
de hardware costumam manter em segredo os algoritmos da camada de traduo Flash, deixando os
desenvolvedores de sistemas sem alternativas para vericar e ajustar estes algoritmos ou corrigir
implementaes pobres.
O segundo tipo de memria NAND a raw Flash. O sistema operacional tem acesso ao controlador de Flash e
pode gerenciar diretamente seus blocos. O raw Flash pode usar um block erase count para determinar com
qual frequncia um bloco tem sido sobrescrito. O kernel Linux implementa um subsistema Memory
Technology Device (MTD) que permite o acesso e controle de vrios tipos de dispositivos Flash com uma
interface comum (gura 2).
Parties
Acesso bruto (raw access) signica que nenhum sistema de arquivo necessrio, a menos que o usurio
3 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
deseje armazenar muitos arquivos; um nico e grande arquivo binrio suciente para alguns aplicativos.
Dispositivos MTD geralmente so particionados para denir reas com ns especcos, como o gerenciador
de inicializao (bootloader) ou o sistema de arquivos raiz. Acessar as parties e o armazenamento raw ash
algo semelhante a acessar dispositivos brutos do bloco (raw block devices) atravs de arquivos de
dispositivos (por exemplo, todo o dispositivo com /dev/sda ou parties com /dev/sda1, /dev/sda2, etc.
Declarar parties somente leitura (da sigla RO, de read-only) pode proteger o sistema contra erros e
tentativas de modicao no autorizadas. Observe tambm que as parties no podem ser ignoradas,
acessando todo o dispositivo como compensao, uma vez que o Linux no possui nenhum arquivo de
dispositivo para este tipo de acesso.
A gura 3 mostra um esquema de particionamento tpico. Em contraste com os discos rgidos, a tabela de
partio no salva no ambiente MTD um local inseguro por conta dos blocos potencialmente ruins. Em vez
disso, uma estrutura de dados no kernel Linux dene as parties.
Logo que o nome do dispositivo conhecido, o parmetro de boot mtdparts passa no particionamento com
(tudo em uma nica linha):
mtdparts=omap2nand.0:128k(XLoader)ro,256k(UBoot)ro,128k(Environment),4m(Kernel)ro,32m(RootFS)ro,(Data)
Primeiro estgio do bootloader (128KB, RO) Bootloader U-Boot (256KB, RO) Variveis de ambiente
U-Boot (128KB) Kernel Linux (4MB, RO) Sistema de arquivos raiz (16MB, RO) Dados (espao de
armazenamento restante)
O tamanho da partio deve ser um mltiplo do tamanho do erase block, que pode ser encontrado no sistema
de destino em /sys/class/mtd/mtdx/erasesize. Os tamanhos das parties recm-criadas, que o usurio
pode ver em /proc/mtd esto em hexadecimal (listagem 3).
Nomes de arquivos para parties de dispositivo de bloco se referem ao nome completo do dispositivo (por
exemplo, /dev/sda1 para a primeira partio /dev/sda), mas note que as parties MTD so mostradas como
dispositivos MTD independentes; portanto, o mtd1 poderia ser a segunda partio do primeiro dispositivo
Flash ou a primeira partio do segundo dispositivo Flash. No possvel perceber a diferena de nomes dos
dispositivos.
4 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Os dispositivos MTD podem ser endereados atravs de duas interfaces. A primeira utiliza o identicador
(letra) do dispositivo dev/mtd//N// (onde N o nmero do dispositivo MTD) e o driver mtdchar. Em
particular, este identicador fornece os comandos ioctl, que so geralmente utilizados por mtd-utils para
manipular e apagar blocos de um dispositivo MTD. A segunda interface fornece o dispositivo de bloco
dev/mtdblock//N// e o driver mtdblock. Este dispositivo usado principalmente para montar sistemas de
arquivos MTD, como JFFS2 e YAFFS2, pois o comando mount s funciona com dispositivos de bloco.
Embora possamos ser tentados a usar este dispositivo para gravar no MTD, o driver correspondente no
sosticado o suciente para uso em produo por no suportar nivelamento de desgaste; uma srie de
gravaes para a mesma parte do dispositivo de bloco poderia danicar muito rapidamente os
correspondentes erase blocks. Pior, se copiarmos uma imagem de sistema de arquivos para /dev/mtdblock
//N//, o sistema de arquivos poderia ser corrompido pois os blocos danicados no so levados em conta.
Portanto, a maneira ideal de manipular dispositivos MTD atravs do identicador de interface (character
interface) e mtd-utils [2].
mtdinfo: informaes detalhadas sobre um dispositivo MTD flash_eraseall: apaga por completo um
dado dispositivo MTD flashcp: escreve para Flash NOR nandwrite: escreva para Flash NAND
Utilitrios UBI (veja o tpico UBI e UIFS) mkfs.jffs2, mkfs.ubifs: ferramentas de criao de imagem de
sistema de arquivo Flash
Estes comandos esto disponveis atravs do pacote mtdutils em distribuies GNU/Linux e tambm podem
ser compilados de forma cruzada (cross-compiled) a partir da fonte por sistemas embarcados Linux, tais como
o BuildRoot [3] e o OpenEmbedded [4]. Simples implementaes dos comandos mais comuns tambm esto
disponveis no BusyBox [5], tornando muito mais fcil de fazer a compilao cruzada em sistemas embarcados
menos complexos.
JFFS2
O Journaling Flash File System verso 2 (JFFS2) [6], que foi adicionado ao kernel Linux em 2001, um
sistema de arquivos muito popular para o armazenamento Flash. Como esperado para um sistema de
arquivos Flash, ele implementa a deteco e gesto do bloco danicado, bem como o nivelamento de
desgaste. Tambm projetado para car em um estado consistente aps falhas abruptas de energia e
quebras do sistema. Por ltimo, mas no menos importante, o JFFS2 tambm armazena dados compactados.
Diversos esquemas de compresso esto disponveis de acordo com o que mais importante: desempenho
para ler/escrever ou taxa de compresso. Por exemplo, o zlib comprime melhor que o lzo, mas tambm
muito mais lento.
A implementao de arquivos de sistemas em Flash possui restries especiais. Para modicar um arquivo
existente, no podemos simplesmente copiar os blocos correspondentes para a RAM, apag-los e piscar
(ash) os blocos com a nova verso. Primeiro, uma falha de energia durante este procedimento poderia
causar perda de dados irrecuperveis. Segundo, podemos rapidamente desgastar blocos especcos, fazendo
vrias atualizaes para o mesmo arquivo.
Uma alternativa seria escrever os novos dados para um novo bloco e atualizar os indicadores (pointers) para
os dados antigos. Contudo, isto implicaria outra escrita, que poderia provocar outras modicaes at que a
referncia root fosse alcanada.
O JFFS2 resolve estes problemas com uma abordagem de log estruturado [7]. Cada arquivo mapeado para
5 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
um n com dados e metadados, e cada n tem um nmero de verso associado. Em vez de fazer alteraes
locais, a ideia escrever uma verso mais recente do n em outra parte do erase block com espao livre. Isto
simplica as operaes de escrita, mas complica as operaes de leitura, pois o sistema de arquivos precisa
localizar o n mais recente.
Para otimizar o desempenho, o JFFS2 mantm um mapa de memria dos ns mais recentes para cada
arquivo; no momento da montagem, digitaliza os ns, cria e armazena o mapa. Uma vez que o tempo de
montagem do JFFS2 proporcional ao nmero de ns, sistemas embarcados utilizando JFFS2 em grandes
parties Flash podero incorrer em enormes sanes no momento de inicializao. Felizmente, foi
adicionada uma opo do kernel CONFIG_JFFS2_SUMMARY que confere ao Linux o armazenamento do mapa
entre as aes de montagem no dispositivo Flash, reduzindo drasticamente o tempo de montagem. No
entanto, esta opo no ativada por padro.
Ns mais velhos devem ser recuperados em algum ponto para manter o espao livre para novas escritas. Um
n criado como vlido e considerado obsoleto quando uma nova verso criada. O JFFS2 gerencia
trs tipos de blocos Flash:
Blocos limpos, que contm apenas ns vlidos Blocos sujos, que contm pelo menos um n obsoleto
Blocos livres, que no contm nenhum n
O JFFS2 executa um coletor de lixo em segundo plano, que recicla blocos sujos transformando-os em blocos
livres. Faz isso atravs do recolhimento de todos os ns vlidos em um bloco sujo e os copia para um bloco
limpo (com o espao que restar) ou para um bloco livre. O antigo bloco sujo ento apagado e marcado como
livre. Para fazer todos os erase blocks participarem do nivelamento de desgaste, o coletor de lixo
ocasionalmente tambm consome blocos limpos.
H duas maneiras de criar uma partio JFFS2. A primeira apagar a partio, format-la para JFFS2, e
depois mont-la:
flash_eraseall j /dev/mtd2
o flash_eraseall e o -j apagam a partio do Flash e os formata para JFFS2. A segunda opo geralmente
uma melhor combinao para o uxo integrado de trabalho do desenvolvedor pois cria a imagem JFFS2 no
6 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
computador desktop e escreve a imagem na partio. Para criar a imagem, use o comando mkfs.jffs2
fornecido pelo mtd-utils, mas no se confunda com seu nome: ao contrrio de alguns outros comandos mkfs,
ele no cria um sistema de arquivos, mas uma imagem de sistema de arquivos.
O comando seguinte cria um arquivo de imagem com o nome rootfs.jffs2. Para este exemplo, vamos
assumir que o tamanho do erase block de 256MB.
O parmetro -d indica o diretrio com o contedo desejado para o sistema de arquivos e o --pad cria uma
imagem que de tamanho mltiplo ao do erase block; o nocleanmarkers s deve ser utilizado para o
Flash NAND. Para formatar a partio alvo e escrever a imagem, utilize:
flash_eraseall /dev/mtd2
Se a imagem menor que a partio, o JFFS2 ainda pode utilizar todo o espao posteriormente, fornecido
pela partio que foi completamente apagada anteriormente. Para preparar dispositivos de produo, muito
mais conveniente escrever as parties MTD do bootloader, utlizando um comando que pode lidar com os
blocos danicados sem inicializar o Linux. Desta forma, utilitrios de desenvolvimento como o
flash_eraseall no precisam estar na raiz do sistema de arquivos Linux, que outra razo pela qual as
imagens do sistema de arquivos so teis.
Normalmente, baixamos a imagem do sistema de arquivos para a memria RAM e copiamos a imagem para o
Flash. Quando fazemos isso, apenas temos que nos certicar de haver copiado o tamanho exato da imagem.
Com as imagens JFFS2, se copiarmos mais bytes da RAM para o Flash, acabaremos escrevendo bytes
aleatrios no nal da imagem, o que ir corromper o sistema de arquivos.
YAFFS2
Uma alternativa ao JFFS2 o YAFFS2 [8] (sigla para Yet Another Flash Filesystem) encontrado em
smartphones com as primeiras verses do Android. O YAFFS2 no usa compresso, mas apresenta tempos de
montagem muito mais rpidos, bem como melhor desempenho de escrita e leitura. O cdigo duplamente
licenciado, sob o GPL e uma licena proprietria (ou seja, GPL para uso no kernel Linux e a licena para
sistemas operacionais proprietrios). A receita da licena proprietria tem nanciado seu desenvolvimento.
O YAFFS2 menos popular que o JFFS2, provavelmente por no fazer parte do planejamento do kernel Linux.
Em vez disso, est disponvel como um patch externo com um conjunto de scripts auxiliares. Um esforo foi
feito para t-lo na linha de frente cerca de um ano atrs, mas esta tentativa falhou pois as alteraes
solicitadas pelos mantenedores do kernel teriam quebrado a portabilidade para outros sistemas operacionais.
Depois de fazer o patch do kernel, o usurio pode criar um novo sistema de arquivos YAFFS2 com o comando:
flash_eraseall /dev/mtd2
7 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Outra opo consiste em utilizar a ferramenta mkyaffs, dos utilitrios YAFFS2 [9].
UBI e UBIFS
O UBI uma camada acima do MTD que gerencia erase blocks e bad blocks e implementa o nivelamento de
desgaste, tirando estas tarefas dos ombros do sistema de arquivos. O UBI tambm suporta parties ou
volumes exveis, que podem ser criados e redimensionados dinamicamente, parecido com o que o Logical
Volume Manager opera para dispositivos de bloco.
O UBI implementa o Logical Erase Blocks (LEBs), que o mapeia para o Physical Erase Blocks (PEBs) (gura
4). Camadas superiores, tais como sistemas de arquivos, apenas visualizam os LEBs. Se uma LEB visualiza
muita ao, o UBI pode trocar os ponteiros, substituindo o PEB quente por um frio. Este mecanismo
requer alguns PEBs livres para trabalhar de forma eciente, e a sobrecarga faz a UBI menos apropriada para
dispositivos menores com apenas alguns megabytes de espao.
Um sistema de arquivos para UBI, chamado UBIFS, foi criado pelo projeto MTD Linux como sucessor do
JFFS2. O UBIFS suporta a compresso e apresenta desempenhos de mount, escrita e leitura muito melhores.
No Linux, o UBI e o UBIFS so iniciados com alguns comandos. Primeiro, o root precisa montar o diretrio do
dispositivo como um pseudo sistema de arquivos devtmpfs. O comando
ubiformat /dev/mtd1
exclui uma partio Flash sem precisar reiniciar a contagem erase (erase count). Para habilitar o UBI na
partio MTD, digite:
ubiattach /dev/ubi_ctrl m 1
Isto cria uma nova identidade (letra) para o dispositivo, /dev/ubi0. Agora podemos criar um ou vrios
volumes sobre o dispositivo,
onde o -m o tamanho mximo disponvel. Para montar um sistema de arquivos UBIFS vazio no novo volume
de teste, insira
8 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
e para popular o sistema de arquivos com os arquivos. Uma abordagem alternativa primeiro criar uma
imagem do sistema de arquivos UBIFS com o comando mkfs.ubifs e copiar a imagem com ubiupdatevol.
Outra abordagem criar uma imagem de todo o espao UBI, que pode ser escrito do bootloader com o
comando que pode lidar com blocos danicados (bad blocks). Para fazer isso, primeiro crie um arquivo
ubi.ini descrevendo o espao UBI, seus volumes e seus contedos. Um exemplo mostrado na listagem 4.
Este arquivo descreve quais volumes devem ser criados, juntamente com seus tamanhos. A imagem UBI
criada com o comando
que tambm especica erase blocks fsicos 128KB e um tamanho mnimo de I/O de 4096 bytes. Para
transferir a imagem, use uma ferramenta bootloader que possa lidar com os bad blocks. Alm disso, a linha
de comando do kernel precisa da opo ubi.mtd=1 (equivalente ao ubiattach).
rootfstype=ubifs root=ubi0:rootfs
ao comando boot.
LogFS
O LogFS [10] outro sistema de arquivos estruturado em log para a memria Flash que possui um design
inovador e tem sido parte principal do kernel Linux desde a verso 2.6.34. O inovador sistema de arquivos
poderia ter inuncia sobre o UBIFS mas, infelizmente, mostrou-se instvel, causando problemas no kernel
no momento de desmontagem, quando testado pela Free Electrons. Graas integrao com o kernel Linux
ocial, h boas chances de que o desenvolvedor venha a resolver estes problemas.
SquashFS
Parties somente leitura podem usar o sistema de arquivos de blocos SquashFS em dispositivos MTD. Copiar
uma imagem SquashFS diretamente para o dispositivo /dev/mtdblock//N// funciona bem anal, no temos
que nos preocupar com o nivelamento de desgaste at encontrar bad blocks no dispositivo. Mais uma vez, o
driver mtdblock no pode lidar com bad blocks, ento outra soluo se faz necessria.
Figura 4 O UBI gerencia volumes lgicos da mesma forma que o Logical Volume Manager, garantindo
9 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Uma possibilidade consiste em utilizar o driver gluebi, que emula um dispositivo MTD em cima de um
volume UBI. Como o UBI descarta bad blocks, o mdtblock pode agora ser usado com segurana.
Uma segunda possibilidade usar o driver ubiblk, que implementa um dispositivo de bloco somente leitura
diretamente acima da UBI. A Free Electrons apresentou o ubiblk Linux Kernel Mailing List [11], mas ainda
no foi considerado (mainlined). Os benchmarks mostram que o ubiblk uma soluo eciente, por no
precisar emular um dispositivo intermedirio MTD.
Benchmarks
Com nanciamento da Linux Foundation, a Free Electrons testou o desempenho de vrios sistemas de
arquivos Flash em diferentes verses do kernel. Os resultados (gura 5) esto descritos online [12]. Em
resumo, o JFFS2 teve o pior desempenho e deve ser compilado com CONFIG_SUMMARY para um tempo de
inicializao aceitvel. No entanto, o JFFS2 ainda a melhor promessa para dispositivos com parties Flash
pequenas que necessitam de compresso e onde o UBI teria muita sobrecarga. Esta a razo pela qual o
JFFS2 ainda est em uso no OpenWRT, uma distribuio focada principalmente em dispositivos embarcados,
como gateways residenciais e roteadores, geralmente com 4MB a 16MB de armazenamento Flash.
Graas a melhorias nos ltimos anos, o YAFFS2 apresenta desempenho muito bom, seno o melhor, em
muitos cenrios de teste. No entanto, a falta de compresso continua sendo uma desvantagem, assim como
sua ausncia no kernel Linux. O YAFFS2 tambm mostra problemas de desempenho incomuns na gesto de
diretrios. O UBIFS agora a melhor soluo em termos de desempenho e espao. A necessidade de espao
adicional ser um problema somente em parties muito pequenas. A implementao tambm requer um
pouco mais de trabalho do que os outros candidatos.
No momento da publicao deste artigo, o LogFS ainda muito experimental para ser usado em sistemas de
produo, embora possamos esperar que seus bugs sejam corrigidos com o tempo. O SquashFS exibe boa
compresso e tempo de mount, assim como desempenho de leitura no Flash MTD em sistemas com parties
somente leitura. A necessidade de parear o SquashFS com o UBI, no entanto, compromete o desempenho do
tempo de mount. Em sistemas de arquivos de bloco, o SquashFS exibe o melhor tempo de mount, mas perde
muito tempo com a UBI, o que leva a uma quantidade substancial de tempo para inicializar (a operao
ubiattach).
A boa notcia que muito barato mudar sistemas de arquivos. Os aplicativos nem sequer notaro a
diferena. Como os benchmarks mostram, podemos obter resultados de desempenho notvel, dependendo do
tamanho e nmero das parties e arquivos, da leitura e escrita padres do sistema, e da necessidade de
compresso. Tudo o que o usurio precisa fazer tentar vrios sistemas de arquivos, executar seus
aplicativos e testes de sistema, e manter a soluo que maximiza o desempenho do seu sistema particular.
Sovinas
A memria Flash em seu estado natural (raw) oferece aos desenvolvedores de sistemas embarcados muitas
oportunidades de otimizao. A tendncia entre os fabricantes de hardware, no entanto, est longe da
memria exvel NAND incorporada ao MMC. Estas superfcies montadas de cartes de memria usam uma
interface mais parecida com a de uma placa externa. Elas escondem os detalhes dos blocos ruins e de
nivelamento de desgaste do sistema operacional. Por serem muito acessveis, provavelmente iro derrubar o
Flash mais caro.
10 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Figura 5Tempo de CPU necessrio para montar sistemas de arquivos. As longas barras vermelhas mostram
o demorado processo de mount no JFFS2.
Felizmente, o eMMC no totalmente opaco. Arnd Bergmann, desenvolvedor do kernel, escreveu uma
ferramenta chamada Flashbench [13] que permite determinar experimentalmente as caractersticas da mdia
de armazenamento, tais como o tamanho dos blocos de apagar. Com a ajuda destes resultados, podemos
tambm otimizar os parmetros do sistema de arquivos que estivermos utilizando. Bergmann descreve seu
trabalho em um artigo online [14].
Conselhos nais
Algumas simples regras de ouro so necessrias para trabalhar com memria Flash, incluindo no criar uma
partio swap em Flash. Sempre que possvel, devemos montar parties somente leitura. Dados volteis, tais
como arquivos de log, podem ser mantidos na memria RAM, usando o pseudo sistema de arquivos tmpfs.
Mais informaes
11 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Listagem 3: /proc/mtd
12 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Listagem 4: ubi.ini
01 [RFSvolume]
02 mode=ubi
03 image=rootfs.ubifs
04 vol_id=1
05 vol_size=30MiB
06 vol_type=dynamic
07 vol_name=rootfs
08 vol_ags=autoresize
09 vol_alignment=1
Notcias
Novo evento sobre Software Livre ser realizado no Instituto de Estudos Superiores da Amaznia (IESAM).
A Soluti Certicao Digital est em busca de um prossional para atuar como especialista Linux em
Goinia.
Renomada empresa de servios de consultoria em TI, est em busca de um analista de TI para trabalhar em
projetos de implementao de solues ECM/GED, BPM e BI usando os sistemas Alfresco, Activiti, Bonita,
Camunda e SpagoBI.
Nova verso do Scalix Groupware oferece suporte completo a IBM Power & IBM Mainframes
A nova verso d liberdade de escolha s empresas para usar as tecnologias mais modernas oferecidas pelo
mercado como base para sua soluo de e-mail e colaborao
Os argumentos apresentados neste artigo so todos aspectos econmicos, e no aspectos polticos. Decises
baseadas em poltica (e no em economia) devem ser lembradas pelos eleitores nas prximas eleies.
13 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Mais notcias
lanamento!
Impressa esgotada
R$ 10,90 Digital
Busca
+ lidas
+ procuradas
1. Lanado o phpBB 3
Publicado em 13/12/2007 s 18:42 | 156045 leituras
1. HTML5 ainda no est pronto para uso amplo na web, admite W3C
14 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
whitepapers
Comparativo entre
SQL Server 2012 e
MySQL
Oracle Database
11g
Case: AntiSpam
denitivo no mundo
do Concreto
Oracle Exalogic
Elastic Cloud: Viso
geral do sistema
Backup e
recuperao de
bancos de dados
Oracle com o
recurso de Snapshot
Estudo de Caso -
Spam? Esse no
mais um problema
na Viavale Telecom!
mais whitepapers
15 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
Especiais
Edies Especiais
Community Edition
Edies Anteriores
Livros
Shopping
Guia de TI
Revista C't
Siga-nos
Facebook
Twitter
RSS
Blogs
Blog da Redao
Blog do Maddog
Blog do Ricardo Olonca
Blog do Elias Praciano
Blog da Flvia Jobs
Contedo
Matrias Online
Contedo exclusivo para assinantes
A Revista
Edio do ms
Assine
Poltica de Privacidade
RSS
Expediente
Contato
Sites relacionados
Admin Magazine
Cloud Conf
/sys/dev
Loja virtual Linux Magazine
Sites parceiros
Dicas-l
Viva o Linux
BR-Linux
Esprito Livre
Under Linux
iMasters
16 of 17 29-04-2017 20:38
Linux Magazine Online http://www.linuxmag.com.br/lm/article_online/e...
ALEMANHA:
Linux Magazin
Linux User
Easy Linux
Linux-Community
OpenBytes
EUROPA:
EasyLinux Polnia
Linux Magazine Polnia
Darmowe Programy
Linux Magazine Espanha
INTERNACIONAL:
Linux Magazine International
Admin Redes & Segurana International
BRASIL:
Linux Magazine Brasil
Admin Redes & Segurana Brasil
CloudConf LatAm
17 of 17 29-04-2017 20:38