[Lugro-mesh] Lo que tiene le bicho dentro

Gustavo Lindberg lugro-mesh@lugro.org.ar
Thu, 28 Jun 2007 19:50:52 -0300


------=_Part_68095_20293844.1183071052604
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Voy a tratar de aclarar como trabajan gralmente los sistemas embebidos en
flash.
En la flash debe existir al principio o al final ( segun el tipo de flash,
boot top o boot bottom ) un bootloader.
Cuando el sistema arranca ejecuta el bootloader, este a su ves carga el
kernel de linux, que es un binario comprimido, lzma da la mejor relacion de
compresion y permite ocupar menos flash. El kernel de linux reside en una
particion de la flash, pero no en un sistema de archivos, porque el unico
que la entiende es el bootloader. El bootloader sabe donde buscar esta
particion porque guarda la configuracion de booteo en un sector de la flash
( 64 kb gralmente ) que esta usualmente en el final de la flash.
Una ves que el bootloader descomprime en memoria el kernel y este se
ejecuta, el mismo toma contacto con el hardware e identifica el tipo de
flash, ejecutando el driver monolitico correspondiente.
Cuando la flash esta accesible al kernel, este detecta las particiones que
contenga y procede a montarlas segun su tipo. Aqui tenemos dos opciones,
particiones de solo lectura y alta compresion de datos como la squashfs o
particiones rw como la jffs.
Si la particion es squashfs y como usualmente se usa, ocupa todo el espacio
libre de la flash y contiene el rootfs, se necesita ademas montar un tmpfs
para poder tener espacio rw a expensas de la memoria ram disponible. Queda
entonces un linux cuyo root esta montado en una particion ro y algunos link=
s
simbolicos apuntan al tmpfs donde los logs y demas yerbas puedan escribir.
Ventajas: El elevado nivel de compresion hace que el root pueda ser grande =
y
pueda contener muchos binarios. Desventajas, al ser rw solamente el tmpfs,
todos los cambios de configuracion se pierden al rebootear. Solucion: Usar
una pequenia particion rw de configuracion donde una serie de parametros
limitados se pueden cambiar sin perderlos al reiniciar. Desventajas: la
flexibilidad de este sistema es muy limitada y se queda encasillado en los
parametros definidos previamente. Asi trabaja el firmware original del bich=
o
y asi trabajaba el viejo Openwrt.
Si en cambio uso particiones jffs, el rootfs queda dentro de la flash
exclusivamente y se puede escribir como un hd normal, pero muuuy lento
porque las flash usualmente son seriales. Asi toda la memoria ram esta
disponible para ejecucion de binarios y los cambios efectuados a la
configuracion son permanentes y es exactamente igual a trabajar con un linu=
x
en un hd. La desventaja es que la relacion de compresion del jffs no es tan
buena como la del squashfs.
Un tema a tener en cuenta en sistemas de archivos para memorias flash, es
que una flash tiene un numero finito de ciclos de escritura por sector. Es
un numero grande, de 100000 a 1 millon de ciclos, pero se pueden consumir
bastante rapido en ciertas operaciones. El jffs2 es un sistema de archivos
que no reutiliza sectores de la flash hasta que todos los sectores hayan
sido escritos y por lo tanto el numero de escrituras totales es el producto
del numero de sectores por el numero de operaciones permitidas por cada
sector. Se transforma de hecho en un sistema rw sin limitaciones practicas,
se habla de anios de uso....
Kamikaze Openwrt usa jffs2 ( squash opcional ) y asi lo tengo reflasheado a=
l
mio. Tambien tengo un tmpfs para dejar ahi los logs para tener velocidad de
escritura, pero consumiendo muy poca memoria ram.

Eso es to.. toto... totodo amigos !
Gus.


El d=EDa 28/06/07, Julio Cesar Puigpinos <jcpuigpinos@gmail.com> escribi=F3=
:
>
> El 27/06/07, Sebastian Dominguez escribi=F3:
> > Sebasti=E1n D. Criado escribi=F3:
> > > El Mi=E9rcoles 27 Junio 2007 21:19, Julio Cesar Puigpinos escribi=F3:
> > > [...]
> > >
> > >> Espero que de metido no me equivoque :P
> > >> La memoria flash es en donde guardas el linux embebido, que puede
> > >> estar como un archivo .bin o el otro formato que no me acuerdo cual
> > >> es. Y la RAM es en donde se carga el kernel linux, se crea y monta e=
l
> > >> root fileystem con la implementacion elegida (initramfs, etc) y sigu=
e
> > >> el proceso de carga. Por lo que la RAM quedaria particionada y se
> > >> podria usar como un HD, no?.
> > >> A eso te referias Seba (Dominguez)?
> > >>
> > >
> > >
> > > as=ED es, seg=FAn me mostro Gustavo, tiene varias particiones, inclus=
o
> algunas que
> > > no son writeables .
> > > Saludos.-
> > >
> > >>                                                         Saludos,
> Julio
> > >>
> > Estamos mezclando tipos de memoria. La flash puede quedar como read onl=
y
> > o RW. esa era mi pregunta.
> OK.
>
> >
> > La que se particiona es la flash. Actualmente posee un pedacito chiquit=
o
> > RW donde se guarda la configuracion.
> Exacto. Pero la RAM tambien se puede particionar, al menos eso tengo
> entendido.
>
> >La RAM no la podriamos usar como
> > disco rigido porque cuando reinicias o se te corta la luz.. cua cua cua
> > cuaaa.. te quedaste sin datos.
> La comparacion con el HD era por el particionado, lo que se hace con
> la RAM es crear un RAMDISK y montar ahi el root filesystem. Es como un
> booteo normal, pero sin el pivot_root o switch_root a otra particion
> (en un HD, CD-Rom, etc). El viernes podemos seguir sobre este tema en
> particular.
>
> > Estoy hasta als bolas con el tiempo. Nos vemos. El viernes arreglamos s=
i
> > el sabado le pegamos otra paliza.
> Nos vemos el viernes.
>
>                                     Saludos, Julio
>
> --
> www.kwort.org      Kwort Linux Distribution
> www.lugro.org.ar   GNU/Linux User Group Rosario, Argentina
> Registered GNU/Linux User #358886
> "Say No to Trolls with no Balls!"
> "Netiquette o Tablas!!!"
>
> _______________________________________________
> Lugro-mesh mailing list
> Lugro-mesh@lugro.org.ar
> http://www.lugro.org.ar/mailman/listinfo/lugro-mesh
>

------=_Part_68095_20293844.1183071052604
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Voy a tratar de aclarar como trabajan gralmente los sistemas embebidos en f=
lash. <br>En la flash debe existir al principio o al final ( segun el tipo =
de flash, boot top o boot bottom ) un bootloader.<br>Cuando el sistema arra=
nca ejecuta el bootloader, este a su ves carga el kernel de linux, que es u=
n binario comprimido, lzma da la mejor relacion de compresion y permite ocu=
par menos flash. El kernel de linux reside en una particion de la flash, pe=
ro no en un sistema de archivos, porque el unico que la entiende es el boot=
loader. El bootloader sabe donde buscar esta particion porque guarda la con=
figuracion de booteo en un sector de la flash ( 64 kb gralmente ) que esta =
usualmente en el final de la flash.
<br>Una ves que el bootloader descomprime en memoria el kernel y este se ej=
ecuta, el mismo toma contacto con el hardware e identifica el tipo de flash=
, ejecutando el driver monolitico correspondiente.<br>Cuando la flash esta =
accesible al kernel, este detecta las particiones que contenga y procede a =
montarlas segun su tipo. Aqui tenemos dos opciones, particiones de solo lec=
tura y alta compresion de datos como la squashfs o particiones rw como la j=
ffs.
<br>Si la particion es squashfs y como usualmente se usa, ocupa todo el esp=
acio libre de la flash y contiene el rootfs, se necesita ademas montar un t=
mpfs para poder tener espacio rw a expensas de la memoria ram disponible. Q=
ueda entonces un linux cuyo root esta montado en una particion ro y algunos=
 links simbolicos apuntan al tmpfs donde los logs y demas yerbas puedan esc=
ribir. Ventajas: El elevado nivel de compresion hace que el root pueda ser =
grande y pueda contener muchos binarios. Desventajas, al ser rw solamente e=
l tmpfs, todos los cambios de configuracion se pierden al rebootear. Soluci=
on: Usar una pequenia particion rw de configuracion donde una serie de para=
metros limitados se pueden cambiar sin perderlos al reiniciar. Desventajas:=
 la flexibilidad de este sistema es muy limitada y se queda encasillado en =
los parametros definidos previamente. Asi trabaja el firmware original del =
bicho y asi trabajaba el viejo Openwrt.
<br>Si en cambio uso particiones jffs, el rootfs queda dentro de la flash e=
xclusivamente y se puede escribir como un hd normal, pero muuuy lento porqu=
e las flash usualmente son seriales. Asi toda la memoria ram esta disponibl=
e para ejecucion de binarios y los cambios efectuados a la configuracion so=
n permanentes y es exactamente igual a trabajar con un linux en un hd. La d=
esventaja es que la relacion de compresion del jffs no es tan buena como la=
 del squashfs.
<br>Un tema a tener en cuenta en sistemas de archivos para memorias flash, =
es que una flash tiene un numero finito de ciclos de escritura por sector. =
Es un numero grande, de 100000 a 1 millon de ciclos, pero se pueden consumi=
r bastante rapido en ciertas operaciones. El jffs2 es un sistema de archivo=
s que no reutiliza sectores de la flash hasta que todos los sectores hayan =
sido escritos y por lo tanto el numero de escrituras totales es el producto=
 del numero de sectores por el numero de operaciones permitidas por cada se=
ctor. Se transforma de hecho en un sistema rw sin limitaciones practicas, s=
e habla de anios de uso....
<br>Kamikaze Openwrt usa jffs2 ( squash opcional ) y asi lo tengo reflashea=
do al mio. Tambien tengo un tmpfs para dejar ahi los logs para tener veloci=
dad de escritura, pero consumiendo muy poca memoria ram.<br><br>Eso es to..=
 toto... totodo amigos !
<br>Gus.<br><br><br><div><span class=3D"gmail_quote">El d=EDa 28/06/07, <b =
class=3D"gmail_sendername">Julio Cesar Puigpinos</b> &lt;<a href=3D"mailto:=
jcpuigpinos@gmail.com">jcpuigpinos@gmail.com</a>&gt; escribi=F3:</span><blo=
ckquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, 204,=
 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
El 27/06/07, Sebastian Dominguez escribi=F3:<br>&gt; Sebasti=E1n D. Criado =
escribi=F3:<br>&gt; &gt; El Mi=E9rcoles 27 Junio 2007 21:19, Julio Cesar Pu=
igpinos escribi=F3:<br>&gt; &gt; [...]<br>&gt; &gt;<br>&gt; &gt;&gt; Espero=
 que de metido no me equivoque :P
<br>&gt; &gt;&gt; La memoria flash es en donde guardas el linux embebido, q=
ue puede<br>&gt; &gt;&gt; estar como un archivo .bin o el otro formato que =
no me acuerdo cual<br>&gt; &gt;&gt; es. Y la RAM es en donde se carga el ke=
rnel linux, se crea y monta el
<br>&gt; &gt;&gt; root fileystem con la implementacion elegida (initramfs, =
etc) y sigue<br>&gt; &gt;&gt; el proceso de carga. Por lo que la RAM quedar=
ia particionada y se<br>&gt; &gt;&gt; podria usar como un HD, no?.<br>&gt; =
&gt;&gt; A eso te referias Seba (Dominguez)?
<br>&gt; &gt;&gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; as=ED es, seg=FAn =
me mostro Gustavo, tiene varias particiones, incluso algunas que<br>&gt; &g=
t; no son writeables .<br>&gt; &gt; Saludos.-<br>&gt; &gt;<br>&gt; &gt;&gt;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Saludos, Julio
<br>&gt; &gt;&gt;<br>&gt; Estamos mezclando tipos de memoria. La flash pued=
e quedar como read only<br>&gt; o RW. esa era mi pregunta.<br>OK.<br><br>&g=
t;<br>&gt; La que se particiona es la flash. Actualmente posee un pedacito =
chiquito
<br>&gt; RW donde se guarda la configuracion.<br>Exacto. Pero la RAM tambie=
n se puede particionar, al menos eso tengo entendido.<br><br>&gt;La RAM no =
la podriamos usar como<br>&gt; disco rigido porque cuando reinicias o se te=
 corta la luz.. cua cua cua
<br>&gt; cuaaa.. te quedaste sin datos.<br>La comparacion con el HD era por=
 el particionado, lo que se hace con<br>la RAM es crear un RAMDISK y montar=
 ahi el root filesystem. Es como un<br>booteo normal, pero sin el pivot_roo=
t o switch_root a otra particion
<br>(en un HD, CD-Rom, etc). El viernes podemos seguir sobre este tema en<b=
r>particular.<br><br>&gt; Estoy hasta als bolas con el tiempo. Nos vemos. E=
l viernes arreglamos si<br>&gt; el sabado le pegamos otra paliza.<br>Nos ve=
mos el viernes.
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S=
aludos, Julio<br><br>--<br><a href=3D"http://www.kwort.org">www.kwort.org</=
a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kwort Linux Distribution<br><a href=
=3D"http://www.lugro.org.ar">www.lugro.org.ar</a>&nbsp;&nbsp; GNU/Linux Use=
r Group Rosario, Argentina
<br>Registered GNU/Linux User #358886<br>&quot;Say No to Trolls with no Bal=
ls!&quot;<br>&quot;Netiquette o Tablas!!!&quot;<br><br>____________________=
___________________________<br>Lugro-mesh mailing list<br><a href=3D"mailto=
:Lugro-mesh@lugro.org.ar">
Lugro-mesh@lugro.org.ar</a><br><a href=3D"http://www.lugro.org.ar/mailman/l=
istinfo/lugro-mesh">http://www.lugro.org.ar/mailman/listinfo/lugro-mesh</a>=
<br></blockquote></div><br>

------=_Part_68095_20293844.1183071052604--