SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Sistemas de ficheros para
dispositivos embebidos
Raúl Fraile
Contenidos
• Memoria Flash
• Características, historia y uso.
• Limitaciones
• Tipos: NOR, NAND
• Wear leveling
• Sistemas de ficheros
• Conceptos básicos
• cramfs, squashfs, romfs, JFFS2 y YAFFS2
• Demo
Memoria Flash
Memoria flash
Características

•Sistema de almacenamiento no volátil.
•Evolución de EEPROM (electrically erasable
programmable read-only memory).

•EEPROM: Debe ser completamente borrada
para poder escribir de nuevo.

•Flash: Se reescribe en bloques/páginas/bytes.
•Hay dos tipos principales: NOR y NAND
Memoria flash
Historia

•Inventada por el Dr. Fujio Masuoka mientras
trabajaba en Toshiba en 1980.

•En 1988, Intel lanzó el primer chip de memoria
Flash (NOR).
Memoria flash
Uso
Memoria flash
Limitaciones

•La principal limitación de las memorias flash es el
número limitado de ciclos program-erase (P/E).

•Un sistema de ficheros que no tenga en cuenta esta
limitación puede agotar el número de ciclos
rápidamente.
Memoria flash
Tipos

NOR

NAND
Memoria flash
Tipo NOR

• Se llama NOR porque su funcionamiento se asemeja al de
una puerta lógica NOR.
• Lecturas rápidas (<80 ns), borrados/escrituras lentas (1 s/
sector, 9 μs/Word).
• Permite acceso aleatorio (random access, mapeado en
memoria).
• Entre 10.000 y 100.000 ciclos de P/E.
• Permite eXecute In Place (XIP).
• Alto coste por MB.
Memoria flash
Tipo NAND

Se llama NAND porque su
•asemeja al de una puerta funcionamiento se
lógica NAND.
Lecturas,
•ms/sector,borrados y escrituras rápidas (20 μs, 1
400 μs/page).
Permite acceso secuencial.
•necesidad de implementar Interfaz más compleja y
un sistema de detección
y corrección de errores (EDC/ECC).

•Entre 100.000 y 1.000.000 ciclos de P/E.
•Bajo coste por MB.
Memoria flash
Sistemas de ficheros

•Debido a las limitaciones en el número de ciclos de

P/E de las memorias Flash, es necesario utilizar un
controlador que realice wear leveling o un sistema
de ficheros diseñado específicamente para este tipo
de memoria.

•Los sistemas de archivos convencionales reescriben

sus estructuras de datos y metadatos
repetidamente en la misma área, haciendo que las
celdas contenidas en ese área alcancen el límite de
ciclos P/E.
Memoria flash
Wear leveling (I)

•Sin wear leveling, cada vez que se reescribe un

bloque previamente escrito, éste debe ser: leído,
borrado, modificado y reescrito en la misma
posición.

•Problema principal: algunos bloques muy usados
mientras que otros prácticamente sin usar.
Memoria flash
Wear leveling (II)

La técnica de wear leveling pretende distribuir
•ciclos de P/E proporcionalmente, para alargar los
la
vida de la memoria.

Utiliza un
Addresses)
•relacionar mapa (Logical Blocken el SO conpara
los bloques lógicos
los

físicos de la flash. Cada vez que se reescribe un
bloque, se hace en una nueva dirección, y se
marca en el mapa el anterior bloque como invalid
data.

El static
leveling, además, va rotando
•bloques wearno cambian frecuentemente. los
que
Memoria flash
Wear leveling (III)

Static

Dynamic

Tiempo de vida

Mayor

Menor

Rendimiento

Más lento

Más rápido

Complejidad

Alta

Baja

Uso típico

SSD

Memorias USB
Sistemas de ficheros
Filesystems

Linux. Conceptos básicos

•El kernel y el RFS (Root File System) son

independientes, aunque el kernel necesita de un
RFS al iniciarse.

•initrd/initramfs se utilizan para crear un sistema

de ficheros temporal en memoria antes de que el
sistema real pueda ser montado.

•Está diseñado para poder utilizar cualquier sistema
de ficheros que pueda comunicarse con el virtual
file system (VFS).
Filesystems
Virtual File System

•VFS es una capa de abstracción que proporciona un
interfaz común. Permite que distintos sistemas de
ficheros interaccionen con el sistema de
almacenamiento de la misma manera.

•Filesystem in Userspace (FUSE) permite crear

sistemas de ficheros que se ejecutan en modo
usuario. Por ejemplo, utilizando la API de Amazon
S3 es posible crear un filesystem para acceder
“localmente” de forma transparente.
Filesystems
Dispositivos embebidos

•Los sistemas de ficheros para dispositivos

embebidos deben cumplir algunas características:

•Eficiencia (mínimo consumo de energía).
•Optimización del espacio ocupado.
•Si se trata de memoria flash, y hay operaciones

de lectura y escritura, deben proveer un sistema
de wear leveling.
Filesystems
cramfs (I)

•cramfs (compressed ROM file system) es un sistema
de ficheros de solo lectura, normalmente usado en
sistemas embebidos o con recursos muy limitados.

•Los archivos se comprimen usando zlib.
•Los metadatos no se comprimen, pero se almacena
menos información y de forma más eficiente.

•Ha sido usado para imágenes de initrd e
instalaciones.
Filesystems
cramfs (II)

•Limitaciones:
•Sistema de ficheros hasta 256 MB.
•Archivos de hasta 16 MB.
•Máximo 2 archivos.
•Todos los archivos pertenecen a root.
No se
•epoch,almacenan timestamps (por defecto
1970 GMT).
16
Filesystems
SquashFS (I)

•Sistema de ficheros de solo lectura, con algunas
mejoras respecto a cramfs.

•La versión original utilizaba gzip para la

compresión de archivos, directorios e inodes. En la
versión 2.6.34 del kernel se añadió soporte para
LZMA y LZO, mientras que 2.6.38 lo hizo para
LZMA2 (usado por xz).

•Soporte para Extended file attributes desde la
versión 2.6.35 del kernel.
Filesystems
SquashFS (II)

•Consigue una mayor compresión con tamaños
de bloque ajustables (máximo 1 MB, 128 KB
por defecto) y reduciendo el tamaño de los
metadatos (8 bytes de media).

•Usado en live CDs en las principales

distribuciones, así como recientemente en el
dispositivo Chromecast (media player de
Google).
Filesystems
SquashFS (III)

•Limitaciones:
•Sistema de ficheros hasta 2 GB.
•Archivos de hasta 2 TB.
•Máximo 2 archivos.
•Todos los archivos pertenecen a root
32

32
Filesystems
romfs

•Sistema de ficheros de solo lectura

extremadamente simple. Utilizado principalmente
para initrd o instalaciones.

•El principal objetivo de romfs es tener un kernel

muy pequeño, con el sistema de ficheros enlazado
y poder cargar cualquier módulo a continuación.
Filesystem temporal.

•No utiliza ninguna técnica de compresión de
datos.
Filesystems
JFFS2 (I)

•JFFS2 (Journalling Flash File System version 2).

Sistema de ficheros de lectura y escritura diseñado
específicamente para almacenamiento flash.

•Es un sistema de ficheros log-structured. Los datos y
metadatos se escriben en un buffer circular (log).

•No reduce la cantidad de metadatos que

almacena. Cumple con POSIX metadata. Usuario,
grupo, timestamps... son almacenados.
Filesystems
JFFS2 (II)

•JFFS2 añadió soporte para memorias NAND, no
disponible en JFFS.

•Utiliza compresión de datos. Los algoritmos
disponibles son zlib, rubin, rtime y lzo.

•Dispone de un garbage collector que marca

bloques dirty, como free. También se usa para
wear leveling, marcando ocasionalmente como
free bloques clean.
Filesystems
JFFS2 (III)

•Limitaciones:
•Sistema de ficheros hasta 2 GB.
•Máximo 2 archivos.
•Montaje lento, ya que tiene que leer todos los
32

32

nodos antes de montarse.
Filesystems
YAFFS2 (I)

•YAFFS2 (Yet Another Flash File System) funciona de
forma similar a JFFS2, aunque está diseñado
específicamente para memorias NAND.

•A diferencia de JFFS2, no utiliza compresión de
datos.

•Compatible con POSIX metadata.
•Utilizado en Android hasta la versión 2.2.
Filesystems
YAFFS2 (II)

•Limitaciones:
•Sistema de ficheros hasta 2 GB.
•Máximo 2 archivos.
•Aunque ha sido utilizado en memorias NOR, no
32

32

funciona del todo bien.
Demo
• Dos directorios:
• test:1.txt, 1.html (113 bytes)
• test2: 1.txt, 1.html, jquery.js y logo.png (324 kb)
• Crear y montar un filesystem con cramfs
• mkcramfs -n testfs test cramfs.test
• hexdump -C cramfs.test
• mkcramfs -n testfs2 test2 cramfs.test2
• Comparar con ls -h el tamaño de ambos filesystems
• sudo mount cramfs.test2 /mnt/cramfs -t cramfs -o loop
• Utilizar el filesystem (ls, cat...). Escritura no permite (touch)
nombre

carpeta

archivo de salida

loopback dev (acceso por bloques)
• Crear y montar un filesystem con SquashFS
• mksquashfs ./test squashfs.test -noappend -comp lzo -info
• hexdump -C squashfs.test
• Crear test2 con los 3 tipos de compresión y comparar:
• mksquashfs ./test2 squashfs.test2.lzo -noappend -comp lzo info
carpeta

archivo de salida

no añadir a existente

comp. (lzo, gzip, xz)

archivos y % comp.

• mksquashfs ./test2 squashfs.test2.gzip -noappend -comp
gzip -info
• mksquashfs ./test2 squashfs.test2.xz -noappend -comp xz info
• sudo mount squashfs.test2.xz /mnt/squashfs -t squashfs -o loop
• Utilizar el filesystem (ls, cat...). Escritura no permite (touch)
• Comparar scramfs y SquashFS
• Crear y montar un filesystem con romfs
• genromfs -f romfs.test -d ./test
que
• Comprobar de 1el tamaño es 1 kb, esto es debidoaa1quesidebe
ser múltiple
kb, por lo que hace un padding
kb es
menor.

• hexdump -C romfs.test (no hay compresión de datos)
• sudo mount romfs.test /mnt/romfs -t romfs -o loop
• Utilizar el filesystem (ls, cat...). Escritura no permite (touch)
• Crear filesystem de test2 y comparar tamaño con cramfs y
SquashFS:
• genromfs -f romfs.test2 -d ./test2
¿Preguntas?
Raúl Fraile
@raulfraile

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Manejo de Memoria FreeBSD
Manejo de Memoria FreeBSDManejo de Memoria FreeBSD
Manejo de Memoria FreeBSD
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Ext4
Ext4Ext4
Ext4
 
El sistema de archivos ms dos
El sistema de archivos ms dosEl sistema de archivos ms dos
El sistema de archivos ms dos
 
Presentacion ram
Presentacion ramPresentacion ram
Presentacion ram
 
Memoria caché
Memoria cachéMemoria caché
Memoria caché
 
Módulos de memoria RAM
Módulos de memoria RAMMódulos de memoria RAM
Módulos de memoria RAM
 
Gestion memoria windows
Gestion memoria windowsGestion memoria windows
Gestion memoria windows
 
Teoria de sistema 1 memoria ram
Teoria de sistema 1 memoria ramTeoria de sistema 1 memoria ram
Teoria de sistema 1 memoria ram
 
Hfs
HfsHfs
Hfs
 
Tipos de Memoria
Tipos de MemoriaTipos de Memoria
Tipos de Memoria
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 
El sistema de ficheros
El sistema de ficherosEl sistema de ficheros
El sistema de ficheros
 
Gestion de memoria en windows
Gestion de memoria en windowsGestion de memoria en windows
Gestion de memoria en windows
 
Latencia en la memoria ram
Latencia en la memoria ramLatencia en la memoria ram
Latencia en la memoria ram
 
Linea de tiempo de la memoria RAM
Linea de tiempo de la memoria RAMLinea de tiempo de la memoria RAM
Linea de tiempo de la memoria RAM
 
Memoria 3
Memoria 3Memoria 3
Memoria 3
 
Practica 9 Memorias USB y memorias RAM
Practica 9 Memorias USB y memorias RAMPractica 9 Memorias USB y memorias RAM
Practica 9 Memorias USB y memorias RAM
 
1
11
1
 
Informatica grupo n. 2
Informatica grupo n. 2Informatica grupo n. 2
Informatica grupo n. 2
 

Andere mochten auch

Capabilities Presentation Kendall Final
Capabilities Presentation Kendall FinalCapabilities Presentation Kendall Final
Capabilities Presentation Kendall Finalmaize12
 
AUTOGESTION DE LA SALUD: APRENDIENDO A COMER SANAMENTE
AUTOGESTION DE LA SALUD: APRENDIENDO A COMER SANAMENTEAUTOGESTION DE LA SALUD: APRENDIENDO A COMER SANAMENTE
AUTOGESTION DE LA SALUD: APRENDIENDO A COMER SANAMENTEJosé Vitelio Pineda Monge
 
Christian carter - do you need a social media policy - feature article
Christian carter - do you need a social media policy - feature articleChristian carter - do you need a social media policy - feature article
Christian carter - do you need a social media policy - feature articlejbo27712
 
Presentacion SAIR-OEA
Presentacion SAIR-OEAPresentacion SAIR-OEA
Presentacion SAIR-OEAFundacion CD
 
Presentació del llibre "Herbari. Viure amb les plantes". FNAC Alacant 130919
Presentació del llibre "Herbari. Viure amb les plantes". FNAC Alacant 130919Presentació del llibre "Herbari. Viure amb les plantes". FNAC Alacant 130919
Presentació del llibre "Herbari. Viure amb les plantes". FNAC Alacant 130919Daniel Climent Giner
 
Segunda Empregável - Edição 20
Segunda Empregável - Edição 20Segunda Empregável - Edição 20
Segunda Empregável - Edição 20Fernando Anselmo
 
Buena Publicidad GráFica...
Buena Publicidad GráFica...Buena Publicidad GráFica...
Buena Publicidad GráFica...perdices
 
2013 deel8-rotterdam-bewustzijn
2013 deel8-rotterdam-bewustzijn2013 deel8-rotterdam-bewustzijn
2013 deel8-rotterdam-bewustzijnChris Noordam
 
Ethos interactive services_rev6
Ethos interactive services_rev6Ethos interactive services_rev6
Ethos interactive services_rev6Ethos Interact
 
Seminário stab 2013 agrícola - 03. congresso atacori - costa rica - setembr...
Seminário stab 2013   agrícola - 03. congresso atacori - costa rica - setembr...Seminário stab 2013   agrícola - 03. congresso atacori - costa rica - setembr...
Seminário stab 2013 agrícola - 03. congresso atacori - costa rica - setembr...STAB Setentrional
 
V-TAS Pro alarm receiving software
V-TAS Pro alarm receiving softwareV-TAS Pro alarm receiving software
V-TAS Pro alarm receiving softwarei-comply
 
Informatica installation guide
Informatica installation guideInformatica installation guide
Informatica installation guidecbosepandian
 
Acta de integracion de comite de bibliotecas
Acta de integracion de comite de bibliotecasActa de integracion de comite de bibliotecas
Acta de integracion de comite de bibliotecasxalpantzingo
 
Oregon blue book DAS Leadership 2015 - Julie Bozzi Oregon
Oregon blue book DAS Leadership 2015 - Julie Bozzi OregonOregon blue book DAS Leadership 2015 - Julie Bozzi Oregon
Oregon blue book DAS Leadership 2015 - Julie Bozzi OregonJulie Bozzi, PfPM, PMP
 

Andere mochten auch (20)

Capabilities Presentation Kendall Final
Capabilities Presentation Kendall FinalCapabilities Presentation Kendall Final
Capabilities Presentation Kendall Final
 
Nalon
NalonNalon
Nalon
 
AUTOGESTION DE LA SALUD: APRENDIENDO A COMER SANAMENTE
AUTOGESTION DE LA SALUD: APRENDIENDO A COMER SANAMENTEAUTOGESTION DE LA SALUD: APRENDIENDO A COMER SANAMENTE
AUTOGESTION DE LA SALUD: APRENDIENDO A COMER SANAMENTE
 
Christian carter - do you need a social media policy - feature article
Christian carter - do you need a social media policy - feature articleChristian carter - do you need a social media policy - feature article
Christian carter - do you need a social media policy - feature article
 
Presentacion SAIR-OEA
Presentacion SAIR-OEAPresentacion SAIR-OEA
Presentacion SAIR-OEA
 
Presentació del llibre "Herbari. Viure amb les plantes". FNAC Alacant 130919
Presentació del llibre "Herbari. Viure amb les plantes". FNAC Alacant 130919Presentació del llibre "Herbari. Viure amb les plantes". FNAC Alacant 130919
Presentació del llibre "Herbari. Viure amb les plantes". FNAC Alacant 130919
 
Personal marketing through e-mail
Personal marketing through e-mailPersonal marketing through e-mail
Personal marketing through e-mail
 
Segunda Empregável - Edição 20
Segunda Empregável - Edição 20Segunda Empregável - Edição 20
Segunda Empregável - Edição 20
 
Imagebroschüre Rheingau
Imagebroschüre RheingauImagebroschüre Rheingau
Imagebroschüre Rheingau
 
Buena Publicidad GráFica...
Buena Publicidad GráFica...Buena Publicidad GráFica...
Buena Publicidad GráFica...
 
2013 deel8-rotterdam-bewustzijn
2013 deel8-rotterdam-bewustzijn2013 deel8-rotterdam-bewustzijn
2013 deel8-rotterdam-bewustzijn
 
Noticias TEL may
Noticias TEL mayNoticias TEL may
Noticias TEL may
 
Ethos interactive services_rev6
Ethos interactive services_rev6Ethos interactive services_rev6
Ethos interactive services_rev6
 
Perfiles panelistas
Perfiles panelistasPerfiles panelistas
Perfiles panelistas
 
Seminário stab 2013 agrícola - 03. congresso atacori - costa rica - setembr...
Seminário stab 2013   agrícola - 03. congresso atacori - costa rica - setembr...Seminário stab 2013   agrícola - 03. congresso atacori - costa rica - setembr...
Seminário stab 2013 agrícola - 03. congresso atacori - costa rica - setembr...
 
V-TAS Pro alarm receiving software
V-TAS Pro alarm receiving softwareV-TAS Pro alarm receiving software
V-TAS Pro alarm receiving software
 
Informatica installation guide
Informatica installation guideInformatica installation guide
Informatica installation guide
 
Acta de integracion de comite de bibliotecas
Acta de integracion de comite de bibliotecasActa de integracion de comite de bibliotecas
Acta de integracion de comite de bibliotecas
 
Oregon blue book DAS Leadership 2015 - Julie Bozzi Oregon
Oregon blue book DAS Leadership 2015 - Julie Bozzi OregonOregon blue book DAS Leadership 2015 - Julie Bozzi Oregon
Oregon blue book DAS Leadership 2015 - Julie Bozzi Oregon
 
Terminología médica
Terminología médica Terminología médica
Terminología médica
 

Ähnlich wie Sistemas de ficheros para dispositivos embebidos

Memoria ram
Memoria ramMemoria ram
Memoria ramStarionT
 
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosSO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosFranklin Parrales Bravo
 
Almacenamiento y backup open source de rango empresarial - WhiteBearSolutions...
Almacenamiento y backup open source de rango empresarial - WhiteBearSolutions...Almacenamiento y backup open source de rango empresarial - WhiteBearSolutions...
Almacenamiento y backup open source de rango empresarial - WhiteBearSolutions...OpenExpoES
 
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07Alexander Calderón
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasLenin Hernandez
 
Presentacin1 170301214724mm-170313222255-1loperaza
Presentacin1 170301214724mm-170313222255-1loperazaPresentacin1 170301214724mm-170313222255-1loperaza
Presentacin1 170301214724mm-170313222255-1loperazaAdriana Rodriguez
 
Curso Infraestructura Hosting y cloud Computing
Curso Infraestructura Hosting y cloud Computing Curso Infraestructura Hosting y cloud Computing
Curso Infraestructura Hosting y cloud Computing Abserver
 
Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)JaderValdivia
 

Ähnlich wie Sistemas de ficheros para dispositivos embebidos (20)

Aii 09-mm.ppt
Aii 09-mm.pptAii 09-mm.ppt
Aii 09-mm.ppt
 
Memoria ram
Memoria ramMemoria ram
Memoria ram
 
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosSO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
 
Administracion_de_archivos.pptx
Administracion_de_archivos.pptxAdministracion_de_archivos.pptx
Administracion_de_archivos.pptx
 
Disco duro
Disco duroDisco duro
Disco duro
 
Disco duro
Disco duroDisco duro
Disco duro
 
Almacenamiento y backup open source de rango empresarial - WhiteBearSolutions...
Almacenamiento y backup open source de rango empresarial - WhiteBearSolutions...Almacenamiento y backup open source de rango empresarial - WhiteBearSolutions...
Almacenamiento y backup open source de rango empresarial - WhiteBearSolutions...
 
Memoria virtual
Memoria  virtualMemoria  virtual
Memoria virtual
 
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
Estructura de Almacenamiento en Oracle. TableSpaceZ052 07
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
 
Piramide memorias
Piramide memoriasPiramide memorias
Piramide memorias
 
Memorias
MemoriasMemorias
Memorias
 
Presentacin1 170301214724mm-170313222255-1loperaza
Presentacin1 170301214724mm-170313222255-1loperazaPresentacin1 170301214724mm-170313222255-1loperaza
Presentacin1 170301214724mm-170313222255-1loperaza
 
Sistemas de archivo
Sistemas de archivoSistemas de archivo
Sistemas de archivo
 
Unidad IV
Unidad IVUnidad IV
Unidad IV
 
PC tipos de memorias RAM
 PC tipos de memorias RAM PC tipos de memorias RAM
PC tipos de memorias RAM
 
Memoria cache
Memoria cacheMemoria cache
Memoria cache
 
Curso Infraestructura Hosting y cloud Computing
Curso Infraestructura Hosting y cloud Computing Curso Infraestructura Hosting y cloud Computing
Curso Infraestructura Hosting y cloud Computing
 
Tipos de memoria
Tipos de  memoriaTipos de  memoria
Tipos de memoria
 
Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)
 

Mehr von Raul Fraile

Aplicaciones CLI profesionales con Symfony
Aplicaciones CLI profesionales con SymfonyAplicaciones CLI profesionales con Symfony
Aplicaciones CLI profesionales con SymfonyRaul Fraile
 
Steganography: Hiding your secrets with PHP
Steganography: Hiding your secrets with PHPSteganography: Hiding your secrets with PHP
Steganography: Hiding your secrets with PHPRaul Fraile
 
How GZIP compression works - JS Conf EU 2014
How GZIP compression works - JS Conf EU 2014How GZIP compression works - JS Conf EU 2014
How GZIP compression works - JS Conf EU 2014Raul Fraile
 
How GZIP works... in 10 minutes
How GZIP works... in 10 minutesHow GZIP works... in 10 minutes
How GZIP works... in 10 minutesRaul Fraile
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Raul Fraile
 
$kernel->infect(): Creating a cryptovirus for Symfony2 apps
$kernel->infect(): Creating a cryptovirus for Symfony2 apps$kernel->infect(): Creating a cryptovirus for Symfony2 apps
$kernel->infect(): Creating a cryptovirus for Symfony2 appsRaul Fraile
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2Raul Fraile
 
Refactoring PHP/Symfony2 apps
Refactoring PHP/Symfony2 appsRefactoring PHP/Symfony2 apps
Refactoring PHP/Symfony2 appsRaul Fraile
 
Refactorización de aplicaciones PHP/Symfony2
Refactorización de aplicaciones PHP/Symfony2Refactorización de aplicaciones PHP/Symfony2
Refactorización de aplicaciones PHP/Symfony2Raul Fraile
 
MidwestPHP Symfony2 Internals
MidwestPHP Symfony2 InternalsMidwestPHP Symfony2 Internals
MidwestPHP Symfony2 InternalsRaul Fraile
 
Symfony internals [english]
Symfony internals [english]Symfony internals [english]
Symfony internals [english]Raul Fraile
 
DeSymfony 2012: Symfony internals
DeSymfony 2012: Symfony internalsDeSymfony 2012: Symfony internals
DeSymfony 2012: Symfony internalsRaul Fraile
 
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Raul Fraile
 
Symfony2: Optimización y rendimiento
Symfony2: Optimización y rendimientoSymfony2: Optimización y rendimiento
Symfony2: Optimización y rendimientoRaul Fraile
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
Presentacion Symfony2
Presentacion Symfony2Presentacion Symfony2
Presentacion Symfony2Raul Fraile
 

Mehr von Raul Fraile (17)

Aplicaciones CLI profesionales con Symfony
Aplicaciones CLI profesionales con SymfonyAplicaciones CLI profesionales con Symfony
Aplicaciones CLI profesionales con Symfony
 
Steganography: Hiding your secrets with PHP
Steganography: Hiding your secrets with PHPSteganography: Hiding your secrets with PHP
Steganography: Hiding your secrets with PHP
 
How GZIP compression works - JS Conf EU 2014
How GZIP compression works - JS Conf EU 2014How GZIP compression works - JS Conf EU 2014
How GZIP compression works - JS Conf EU 2014
 
How GZIP works... in 10 minutes
How GZIP works... in 10 minutesHow GZIP works... in 10 minutes
How GZIP works... in 10 minutes
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
 
$kernel->infect(): Creating a cryptovirus for Symfony2 apps
$kernel->infect(): Creating a cryptovirus for Symfony2 apps$kernel->infect(): Creating a cryptovirus for Symfony2 apps
$kernel->infect(): Creating a cryptovirus for Symfony2 apps
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2
 
Refactoring PHP/Symfony2 apps
Refactoring PHP/Symfony2 appsRefactoring PHP/Symfony2 apps
Refactoring PHP/Symfony2 apps
 
Refactorización de aplicaciones PHP/Symfony2
Refactorización de aplicaciones PHP/Symfony2Refactorización de aplicaciones PHP/Symfony2
Refactorización de aplicaciones PHP/Symfony2
 
MidwestPHP Symfony2 Internals
MidwestPHP Symfony2 InternalsMidwestPHP Symfony2 Internals
MidwestPHP Symfony2 Internals
 
Symfony internals [english]
Symfony internals [english]Symfony internals [english]
Symfony internals [english]
 
DeSymfony 2012: Symfony internals
DeSymfony 2012: Symfony internalsDeSymfony 2012: Symfony internals
DeSymfony 2012: Symfony internals
 
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
 
Symfony2: Optimización y rendimiento
Symfony2: Optimización y rendimientoSymfony2: Optimización y rendimiento
Symfony2: Optimización y rendimiento
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
Presentacion Symfony2
Presentacion Symfony2Presentacion Symfony2
Presentacion Symfony2
 

Kürzlich hochgeladen

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 

Kürzlich hochgeladen (16)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 

Sistemas de ficheros para dispositivos embebidos

  • 1. Sistemas de ficheros para dispositivos embebidos Raúl Fraile
  • 2. Contenidos • Memoria Flash • Características, historia y uso. • Limitaciones • Tipos: NOR, NAND • Wear leveling • Sistemas de ficheros • Conceptos básicos • cramfs, squashfs, romfs, JFFS2 y YAFFS2 • Demo
  • 4. Memoria flash Características •Sistema de almacenamiento no volátil. •Evolución de EEPROM (electrically erasable programmable read-only memory). •EEPROM: Debe ser completamente borrada para poder escribir de nuevo. •Flash: Se reescribe en bloques/páginas/bytes. •Hay dos tipos principales: NOR y NAND
  • 5. Memoria flash Historia •Inventada por el Dr. Fujio Masuoka mientras trabajaba en Toshiba en 1980. •En 1988, Intel lanzó el primer chip de memoria Flash (NOR).
  • 7. Memoria flash Limitaciones •La principal limitación de las memorias flash es el número limitado de ciclos program-erase (P/E). •Un sistema de ficheros que no tenga en cuenta esta limitación puede agotar el número de ciclos rápidamente.
  • 9. Memoria flash Tipo NOR • Se llama NOR porque su funcionamiento se asemeja al de una puerta lógica NOR. • Lecturas rápidas (<80 ns), borrados/escrituras lentas (1 s/ sector, 9 μs/Word). • Permite acceso aleatorio (random access, mapeado en memoria). • Entre 10.000 y 100.000 ciclos de P/E. • Permite eXecute In Place (XIP). • Alto coste por MB.
  • 10. Memoria flash Tipo NAND Se llama NAND porque su •asemeja al de una puerta funcionamiento se lógica NAND. Lecturas, •ms/sector,borrados y escrituras rápidas (20 μs, 1 400 μs/page). Permite acceso secuencial. •necesidad de implementar Interfaz más compleja y un sistema de detección y corrección de errores (EDC/ECC). •Entre 100.000 y 1.000.000 ciclos de P/E. •Bajo coste por MB.
  • 11. Memoria flash Sistemas de ficheros •Debido a las limitaciones en el número de ciclos de P/E de las memorias Flash, es necesario utilizar un controlador que realice wear leveling o un sistema de ficheros diseñado específicamente para este tipo de memoria. •Los sistemas de archivos convencionales reescriben sus estructuras de datos y metadatos repetidamente en la misma área, haciendo que las celdas contenidas en ese área alcancen el límite de ciclos P/E.
  • 12. Memoria flash Wear leveling (I) •Sin wear leveling, cada vez que se reescribe un bloque previamente escrito, éste debe ser: leído, borrado, modificado y reescrito en la misma posición. •Problema principal: algunos bloques muy usados mientras que otros prácticamente sin usar.
  • 13. Memoria flash Wear leveling (II) La técnica de wear leveling pretende distribuir •ciclos de P/E proporcionalmente, para alargar los la vida de la memoria. Utiliza un Addresses) •relacionar mapa (Logical Blocken el SO conpara los bloques lógicos los físicos de la flash. Cada vez que se reescribe un bloque, se hace en una nueva dirección, y se marca en el mapa el anterior bloque como invalid data. El static leveling, además, va rotando •bloques wearno cambian frecuentemente. los que
  • 14. Memoria flash Wear leveling (III) Static Dynamic Tiempo de vida Mayor Menor Rendimiento Más lento Más rápido Complejidad Alta Baja Uso típico SSD Memorias USB
  • 16. Filesystems Linux. Conceptos básicos •El kernel y el RFS (Root File System) son independientes, aunque el kernel necesita de un RFS al iniciarse. •initrd/initramfs se utilizan para crear un sistema de ficheros temporal en memoria antes de que el sistema real pueda ser montado. •Está diseñado para poder utilizar cualquier sistema de ficheros que pueda comunicarse con el virtual file system (VFS).
  • 17. Filesystems Virtual File System •VFS es una capa de abstracción que proporciona un interfaz común. Permite que distintos sistemas de ficheros interaccionen con el sistema de almacenamiento de la misma manera. •Filesystem in Userspace (FUSE) permite crear sistemas de ficheros que se ejecutan en modo usuario. Por ejemplo, utilizando la API de Amazon S3 es posible crear un filesystem para acceder “localmente” de forma transparente.
  • 18.
  • 19. Filesystems Dispositivos embebidos •Los sistemas de ficheros para dispositivos embebidos deben cumplir algunas características: •Eficiencia (mínimo consumo de energía). •Optimización del espacio ocupado. •Si se trata de memoria flash, y hay operaciones de lectura y escritura, deben proveer un sistema de wear leveling.
  • 20. Filesystems cramfs (I) •cramfs (compressed ROM file system) es un sistema de ficheros de solo lectura, normalmente usado en sistemas embebidos o con recursos muy limitados. •Los archivos se comprimen usando zlib. •Los metadatos no se comprimen, pero se almacena menos información y de forma más eficiente. •Ha sido usado para imágenes de initrd e instalaciones.
  • 21. Filesystems cramfs (II) •Limitaciones: •Sistema de ficheros hasta 256 MB. •Archivos de hasta 16 MB. •Máximo 2 archivos. •Todos los archivos pertenecen a root. No se •epoch,almacenan timestamps (por defecto 1970 GMT). 16
  • 22. Filesystems SquashFS (I) •Sistema de ficheros de solo lectura, con algunas mejoras respecto a cramfs. •La versión original utilizaba gzip para la compresión de archivos, directorios e inodes. En la versión 2.6.34 del kernel se añadió soporte para LZMA y LZO, mientras que 2.6.38 lo hizo para LZMA2 (usado por xz). •Soporte para Extended file attributes desde la versión 2.6.35 del kernel.
  • 23. Filesystems SquashFS (II) •Consigue una mayor compresión con tamaños de bloque ajustables (máximo 1 MB, 128 KB por defecto) y reduciendo el tamaño de los metadatos (8 bytes de media). •Usado en live CDs en las principales distribuciones, así como recientemente en el dispositivo Chromecast (media player de Google).
  • 24. Filesystems SquashFS (III) •Limitaciones: •Sistema de ficheros hasta 2 GB. •Archivos de hasta 2 TB. •Máximo 2 archivos. •Todos los archivos pertenecen a root 32 32
  • 25. Filesystems romfs •Sistema de ficheros de solo lectura extremadamente simple. Utilizado principalmente para initrd o instalaciones. •El principal objetivo de romfs es tener un kernel muy pequeño, con el sistema de ficheros enlazado y poder cargar cualquier módulo a continuación. Filesystem temporal. •No utiliza ninguna técnica de compresión de datos.
  • 26. Filesystems JFFS2 (I) •JFFS2 (Journalling Flash File System version 2). Sistema de ficheros de lectura y escritura diseñado específicamente para almacenamiento flash. •Es un sistema de ficheros log-structured. Los datos y metadatos se escriben en un buffer circular (log). •No reduce la cantidad de metadatos que almacena. Cumple con POSIX metadata. Usuario, grupo, timestamps... son almacenados.
  • 27. Filesystems JFFS2 (II) •JFFS2 añadió soporte para memorias NAND, no disponible en JFFS. •Utiliza compresión de datos. Los algoritmos disponibles son zlib, rubin, rtime y lzo. •Dispone de un garbage collector que marca bloques dirty, como free. También se usa para wear leveling, marcando ocasionalmente como free bloques clean.
  • 28. Filesystems JFFS2 (III) •Limitaciones: •Sistema de ficheros hasta 2 GB. •Máximo 2 archivos. •Montaje lento, ya que tiene que leer todos los 32 32 nodos antes de montarse.
  • 29. Filesystems YAFFS2 (I) •YAFFS2 (Yet Another Flash File System) funciona de forma similar a JFFS2, aunque está diseñado específicamente para memorias NAND. •A diferencia de JFFS2, no utiliza compresión de datos. •Compatible con POSIX metadata. •Utilizado en Android hasta la versión 2.2.
  • 30. Filesystems YAFFS2 (II) •Limitaciones: •Sistema de ficheros hasta 2 GB. •Máximo 2 archivos. •Aunque ha sido utilizado en memorias NOR, no 32 32 funciona del todo bien.
  • 31. Demo
  • 32. • Dos directorios: • test:1.txt, 1.html (113 bytes) • test2: 1.txt, 1.html, jquery.js y logo.png (324 kb) • Crear y montar un filesystem con cramfs • mkcramfs -n testfs test cramfs.test • hexdump -C cramfs.test • mkcramfs -n testfs2 test2 cramfs.test2 • Comparar con ls -h el tamaño de ambos filesystems • sudo mount cramfs.test2 /mnt/cramfs -t cramfs -o loop • Utilizar el filesystem (ls, cat...). Escritura no permite (touch) nombre carpeta archivo de salida loopback dev (acceso por bloques)
  • 33. • Crear y montar un filesystem con SquashFS • mksquashfs ./test squashfs.test -noappend -comp lzo -info • hexdump -C squashfs.test • Crear test2 con los 3 tipos de compresión y comparar: • mksquashfs ./test2 squashfs.test2.lzo -noappend -comp lzo info carpeta archivo de salida no añadir a existente comp. (lzo, gzip, xz) archivos y % comp. • mksquashfs ./test2 squashfs.test2.gzip -noappend -comp gzip -info • mksquashfs ./test2 squashfs.test2.xz -noappend -comp xz info • sudo mount squashfs.test2.xz /mnt/squashfs -t squashfs -o loop • Utilizar el filesystem (ls, cat...). Escritura no permite (touch) • Comparar scramfs y SquashFS
  • 34. • Crear y montar un filesystem con romfs • genromfs -f romfs.test -d ./test que • Comprobar de 1el tamaño es 1 kb, esto es debidoaa1quesidebe ser múltiple kb, por lo que hace un padding kb es menor. • hexdump -C romfs.test (no hay compresión de datos) • sudo mount romfs.test /mnt/romfs -t romfs -o loop • Utilizar el filesystem (ls, cat...). Escritura no permite (touch) • Crear filesystem de test2 y comparar tamaño con cramfs y SquashFS: • genromfs -f romfs.test2 -d ./test2