<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Be Linux, my system!</title>
	<atom:link href="http://belinux.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://belinux.wordpress.com</link>
	<description>Tutoriales, manuales, soluciones... para devolver a la comunidad Linux todo lo que me ha aportado</description>
	<lastBuildDate>Tue, 10 Jan 2012 22:27:22 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='belinux.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Be Linux, my system!</title>
		<link>http://belinux.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://belinux.wordpress.com/osd.xml" title="Be Linux, my system!" />
	<atom:link rel='hub' href='http://belinux.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Cómo arrancar Ubuntu en un iBook G4 (PowerPC) desde un USB (2ª parte)</title>
		<link>http://belinux.wordpress.com/2011/11/06/como-arrancar-ubuntu-en-un-ibook-g4-powerpc-desde-un-usb-2%c2%aa-parte/</link>
		<comments>http://belinux.wordpress.com/2011/11/06/como-arrancar-ubuntu-en-un-ibook-g4-powerpc-desde-un-usb-2%c2%aa-parte/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 00:02:14 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Configurando linux]]></category>
		<category><![CDATA[Distribuciones]]></category>
		<category><![CDATA[HowTO]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/?p=105</guid>
		<description><![CDATA[Tras la decepción inicial, y a pesar de que no todo se puede considerar tiempo perdido ya que algo he aprendido sobre el OpenFirmware y como arranca el Mac, he creido que era necesario no desistir y tratar de conseguir el objetivo: tener una distribución de Ubuntu instalada en un USB para reutilizar mi portátil y [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=105&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Tras la decepción inicial, y a pesar de que no todo se puede considerar tiempo perdido ya que algo he aprendido sobre el OpenFirmware y como arranca el Mac, he creido que era necesario no desistir y tratar de conseguir el objetivo: tener una distribución de Ubuntu instalada en un USB para reutilizar mi portátil y darle una segunda vida (pero sin eliminar de momento la instalación de OSX)</p>
<p style="text-align:justify;">Buscando, buscando, encuentro un foro donde indican que, en lugar de volcar la imagen en la primera partición se haga directamente en el dispositivo, es decir:</p>
<blockquote>
<pre style="text-align:justify;"><span style="color:#008000;"><strong>sudo dd if=fichero-imagen.iso of=/dev/disk2</strong></span>      
     # en lugar de /dev/disk2s1</pre>
</blockquote>
<p style="text-align:justify;">Una vez termina, vuelvo a probar y LA COSA CAMBIA!!! Empieza a cargar algo, la pantalla se vacia y un par de segundos después vuelvo a la consola de OpenFirmware pero con el siguiente mensaje:</p>
<blockquote>
<p style="text-align:justify;"><em><strong><span style="color:#0000ff;">Can&#8217;t OPEN: cd:\install\yaboot</span></strong></em></p>
</blockquote>
<p style="text-align:justify;">Algo es algo, parece que he dado un paso adelante&#8230; sólo falta llegar al yaboot <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:justify;"><span id="more-105"></span></p>
<p style="text-align:justify;">En todos los sitios donde he ido googleando y rebuscando para ver si encontraba alguien con el mismo problema en el que terminé, vi que no había sido el único en quedarme atascado en ese punto. Pero al fijarme, me dí cuenta de un detalle: busca el fichero de arranque en el &#8216;cd&#8217; !!! ¿porqué si yo le he indicado que arranque desde el disk1 del puerto usb? ¿se podrá configurar?</p>
<p style="text-align:justify;">Total, decido ver que hay dentro de la ISO que me he descargado e intento montarla (digo intento porque me da un error de &#8220;imagen de disco corrupta&#8221;, pero la monto igual, aunque en modo lectura) y editar el fichero /ppc/bootinfo.txt , aquí se indica que el fichero de arranque es</p>
<blockquote>
<pre style="text-align:justify;"><em><strong><span style="color:#0000ff;">&lt;boot-script&gt;boot &amp;device;:\install\yaboot&lt;boot-script&gt;</span></strong></em>
      # bingo!!  pero.. no puedo editarlo!! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </pre>
</blockquote>
<p style="text-align:justify;">Sigo buscando y encuentro un &#8220;how-to&#8221; de ubuntu que indica que hay que convertir la imagen antes de volcarla en el pendrive:</p>
<blockquote>
<pre style="text-align:justify;"><strong><span style="color:#008000;">hdiutil convert -format UDRW -o fichero-de-imagen-destino.img fichero-de-imagen-origen.iso</span></strong></pre>
</blockquote>
<p style="text-align:justify;">En mi caso no ha funcionado (y he bajado la 10.04, la 10.10, la 12.04 y la kubuntu-12.04 &#8230; dos veces!! para asegurarme que los ficheros son correctos) ya que la conversión finaliza con un &#8220;error 22&#8243; y elimina la imagen&#8230; otro callejón sin salida!!</p>
<p style="text-align:justify;">Sigo googleando y encuentro un hilo de depuración de ubuntu que dice que TODAS las imagenes de ubuntu para powerPC no son capaces de arrancar, y está confirmado (y corregido a partir de la 11.04)&#8230; pues no és, pq yo con la 12.04 tampoco he arrancado con el comando que busca \\:tbxi</p>
<p style="text-align:justify;">Y entonces se me ocurre&#8230; ¿y si le indico DIRECTAMENTE que vaya al yaboot? pruebo&#8230;</p>
<blockquote>
<pre style="text-align:justify;"><strong><span style="color:#008000;">dd if=imagen-ubuntu-12.04.iso of=/dev/disk2</span></strong>  
    # SIN indicar la particion</pre>
<p style="text-align:justify;">inicio OpenFirmware (comando-opcion-o-f)</p>
<pre style="text-align:justify;"><strong><span style="color:#008000;">boot usb1/disk@1:,\install\yaboot</span></strong></pre>
</blockquote>
<h2 style="text-align:center;"><em>######  FUNCIONA!!!  </em>######</h2>
<p style="text-align:justify;">Acabo de conseguir arrancar el liveCD (sin WiFi , en inglés y modo live&#8230; pero es un gran paso!!)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=105&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2011/11/06/como-arrancar-ubuntu-en-un-ibook-g4-powerpc-desde-un-usb-2%c2%aa-parte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>
	</item>
		<item>
		<title>Cómo arrancar Ubuntu en un iBook G4 (PowerPC) desde un USB</title>
		<link>http://belinux.wordpress.com/2011/11/05/como-arrancar-ubuntu-en-un-ibook-g4-powerpc-desde-un-usb/</link>
		<comments>http://belinux.wordpress.com/2011/11/05/como-arrancar-ubuntu-en-un-ibook-g4-powerpc-desde-un-usb/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 23:03:49 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Configurando linux]]></category>
		<category><![CDATA[Distribuciones]]></category>
		<category><![CDATA[HowTO]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/?p=95</guid>
		<description><![CDATA[He tratado de instalarme nuevos navegadores en mi iBook G4 (si, ya sé que es toda una reliquia, pero me funciona perfectamente para lo que lo necesito, o al menos hasta hace poco así era) para probar algunas de las novedades de HTML5 y CSS3, pero todo ha sido en valde&#8230; No puedo actualizar Opera [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=95&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">He tratado de instalarme nuevos navegadores en mi iBook G4 (si, ya sé que es toda una reliquia, pero me funciona perfectamente para lo que lo necesito, o al menos hasta hace poco así era) para probar algunas de las novedades de HTML5 y CSS3, pero todo ha sido en valde&#8230; No puedo actualizar Opera (necesito OSX 10.5), no puedo actualizar Firefox (ahora tengo la 3.6.15, me pide también OSX 10.5 para pasar a la siguiente), no puedo actualizar Safari (sigo con la 4.1 y el impedimento es el mismo), no puedo por supuesto instalarme un InternetExplorer (por razones evidentes) y no puedo instalarme ninguna versión de Chrome (también necesita la 10.5)</p>
<p style="text-align:justify;">Tampoco he podido en algunas ocasiones instalar otra aplicaciones de escritorio por el mismo motivo, aunque en realidad es porque en la versión 10.5 se incluye el JavaVM 1.6 (que no está disponible oficialmente para Tiger)</p>
<p style="text-align:justify;">Sin embargo, y viendo que el problema era la versión de Java pensé que tal vez había una esperanza&#8230; y buscando, buscando encontré un <a href="http://landonf.bikemonkey.org/static/soylatte/">port de Java para Tiger (soylatte)</a>, que incluso se puede compilar (porque la que ofrece el desarrollador es para intel). Y si! Se puede instalar y tengo el ejecutable de java, pero no el Framework (al menos no organizado al &#8220;estilo MacOS&#8221;) y por tanto las aplicaciones se siguen quejando de lo mismo (aunque en la consola me diga: java version &#8220;1.6.0_03-p3&#8243;)</p>
<p style="text-align:justify;">Ya casi me había rendido cuando se me ocurrió&#8230;. ¿¿¿ Y si me descargo un ubuntu en un pendrive y arranco desde el usb??? debería ser posible&#8230; pues manos a la obra!!</p>
<p style="text-align:justify;"><span id="more-95"></span></p>
<p style="text-align:justify;">Lo primero, por supuesto, googlear un poco&#8230; tras mirar en algunos blogs y foros, y ver las soluciones y problemas que tiene la gente, empiezo por el principio: descargar una imagen (probaré con la <a href="http://cdimage.ubuntu.com/ports/releases/10.10/release/ubuntu-10.10-desktop-powerpc.iso">Ubuntu 10.10 en versión PowerPC para Mac</a>) y una vez bajada hay que pasarla al pendrive para lo que veo que la solución parece ser esto:</p>
<blockquote>
<pre style="text-align:justify;"><span style="color:#008000;"><strong>sudo umount /dev/disk2s1</strong></span>          
# desmonto la unidad USB que tengo conectada
#(en mi caso es disk2s1, pero miralo antes con df -h)</pre>
<pre style="text-align:justify;"><strong><span style="color:#008000;">sudo dd if=/Volumes/Disco2/ubuntu-10.10-desktop-powerpc.iso of=/dev/disk2s1</span></strong>    
# la ruta es donde lo hayas descargado</pre>
</blockquote>
<p style="text-align:justify;">El comando &#8220;dd&#8221; tardará mucho y no muestra ningún progreso, si quieres ver que está haciendo prueba a ejecutar esto desde otra consola:</p>
<blockquote>
<pre style="text-align:justify;"><span style="color:#008000;"><strong>ps aux | grep " dd "</strong></span>      
# con esto podrás ver el PID del proceso</pre>
<pre style="text-align:justify;"><strong><span style="color:#008000;">sudo kill -INFO $PID_DD</span></strong>    
# esto le manda una señal que le hará volcar información
#de estado en la ventana donde esté ejecutando</pre>
</blockquote>
<p style="text-align:justify;">Una vez copiado, me lo llevo al iBook APAGADO, lo conecto y enciendo pulsando <strong>Comando+Opción+O+F</strong> para acceder a la interfaz de OpenFirmware, accederemos a una pantalla de fondo blanco con una interfaz de consola de comandos de texto negro, ahí tecleo lo siguiente:</p>
<blockquote>
<pre style="text-align:justify;"><span style="color:#008000;"><strong>dev usb0</strong></span></pre>
<pre style="text-align:justify;"><span style="color:#008000;"><strong>ls  </strong></span>#nada...</pre>
<pre style="text-align:justify;"><span style="color:#008000;"><strong>dev usb1</strong></span></pre>
<pre style="text-align:justify;"><span style="color:#008000;"><strong>ls</strong></span></pre>
<pre style="text-align:justify;"><em><span style="color:#0000ff;">ff9dc2c8: /disk@1      </span></em>#bingo!</pre>
</blockquote>
<p style="text-align:justify;">Pero tengo un problema&#8230; no puedo teclear la secuencia de arranque porque la disposición de teclado no tiene el símbolo &#8220;:&#8221;</p>
<p style="text-align:justify;">Por suerte buscando he encontrado la disposición del teclado por defecto:</p>
<p style="text-align:justify;"><img class="alignnone" src="http://www.planetamac.es/wp-content/uploads/2006/12/teclado.jpg" alt="Teclado-mac-default" width="450" height="175" /></p>
<p style="text-align:justify;">Ahora si, procedo a intentar el arranque:</p>
<blockquote>
<pre style="text-align:justify;"><strong><span style="color:#008000;">dev disk@1</span></strong></pre>
<pre style="text-align:justify;"><strong><span style="color:#008000;">pwd</span></strong> <em><span style="color:#0000ff;">/pci@f2000000/usb@1b/disk@1</span></em></pre>
<pre style="text-align:justify;"><strong><span style="color:#008000;">boot /pci@f2000000/usb@1b/disk@1:,\\:tbxi </span></strong></pre>
</blockquote>
<p style="text-align:justify;">Tras unos segundos cargando&#8230;</p>
<blockquote>
<pre style="text-align:justify;"><em><span style="color:#0000ff;">Warning: sector size mismatch! can't OPEN:  /pci@f2000000/usb@1b/disk@1:,\\:tbxi </span></em></pre>
<pre style="text-align:justify;"><em><span style="color:#0000ff;">Can't open device or file</span></em></pre>
</blockquote>
<p style="text-align:justify;">&#8230;.se acabará aquí todo??? por hoy al menos si, que ya es muy tarde y mañana hay que trabajar&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=95&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2011/11/05/como-arrancar-ubuntu-en-un-ibook-g4-powerpc-desde-un-usb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>

		<media:content url="http://www.planetamac.es/wp-content/uploads/2006/12/teclado.jpg" medium="image">
			<media:title type="html">Teclado-mac-default</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu también puede fallar!!</title>
		<link>http://belinux.wordpress.com/2011/03/31/ubuntu-tambien-puede-fallar/</link>
		<comments>http://belinux.wordpress.com/2011/03/31/ubuntu-tambien-puede-fallar/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 17:06:48 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Distribuciones]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/?p=86</guid>
		<description><![CDATA[¿¿¿Cómo recuperar el arranque de un PC con Ubuntu que, por apagarse mal, ha descolocado el GRUB y nos deja en una más que inútil consola sobre un initramfs??? RESCATUX es la solución más simple y efectiva!!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=86&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">La verdad es que últimamente no había posteado nada aquí porque desde que uso Ubuntu me va todo bastante bien. Pocos problemas de configuración, y pocas cosas reseñables fuera del entorno gráfico (últimamente uso la consola bastante poco, para acceder a servidores remotos y poco más).</p>
<p style="text-align:justify;">Aún así, nada en esta vida es perfecto, e incluso Ubuntu puede fallar si lo apagas de cualquier manera.</p>
<p style="text-align:justify;">La semana pasada, durante una presentación, y con el navegador a pantalla completa, se me quedó bloqueado el &#8220;maravilloso&#8221; firefox. Imposible recuperar su tamaño normal ni interactuar de ningún modo para cerrar la dichosa ventanita (también el hecho de tener en ese momento de un teclado reducido me impedía acceder a combinaciones de teclas que hubieran podido salvarme en ese momento). Pero de cualquier modo, y puesto que la situación necesitaba de una solución urgente, reinicié y arranqué un portátil que siempre está disponible para estos casos como solución auxiliar (y que por cierto, salvó el honor).</p>
<p style="text-align:justify;">En cualquier caso, al reiniciar, aparecía el &#8220;fantástico&#8221; menú del grub. Al seleccionar la primera opción y arrancar&#8230; nada! o peor: la consola de shell con un sistema initramfs montado!! Aparecía en el log de arranque (bastante atrás, me costó encontrarlo), una linea en la que decía que el disco principal no podía ser montado porque necesitaba un check del disco y no podía usarse. Muy bien, entonces escribo: <span style="color:#339966;"><strong>fsck /dev/sda </strong></span> &#8230;&#8230;     ¡¡PERO EN ESTA SHELL NO HAY COMANDOS DE CHECK DE DISCO!!! ¡¡¡PARA QUE NARICES ME SIRVE LA SHELL!!! La lista de comandos que muestra la ayuda es tan ridícula que con ella no se puede hacer nada. Se me ocurren dos cosas:</p>
<ol>
<li style="text-align:justify;">Indicar con un mensaje CLARO al final del log, justo antes de saltar a esa dichosa consola, PORQUÉ no arrancas. (esto es más que fácil, de hecho es la causa por la que para)</li>
<li>Incluir en esta imagen de memoria herramientas mínimas para poder corregir el problema (hay cantidad de distribuciones de Linux muy pequeñas, así que no será por espacio)</li>
</ol>
<p style="text-align:justify;">Pero en fin, visto que no podía arreglar el problema, me fui a internet (en otro pc, obviamente) y buscando y rebuscando (que tampoco entiendo que me costase tanto, porque este problema debe ser común) entre páginas de tíos que daban soluciones del estilo: <em></em></p>
<blockquote>
<p style="text-align:justify;"><em>&#8220;edita el menú de grub para cambiar el UUID del disco por algo del estilo /dev/sdXX, hazlo con el comando <span style="color:#008000;"><strong>sudo gedit /boot/grub/menu.lst</strong></span>&#8220;</em> (&#8230; sudo gedit??? en ese punto, cerraba esa página y a seguir buscando),</p>
</blockquote>
<p style="text-align:justify;">al final encontré un blog (del que ahora no recuerdo la dirección, así q no puedo enlazarlo, lo siento!) donde tras un discurso de desesperación parecido a este, hablaba de que había usado una distribución Live llamada <a href="http://www.supergrubdisk.org/rescatux/">RESCATUX</a> que esperaba que le arreglase el problema. Decidí probar, no tenía nada que perder antes de tener que reinstalar.</p>
<p style="text-align:justify;">Bajé la iso, la quemé en un CD, y arranqué con la esperanza de poder recuperar el pc &#8220;atascado&#8221;. Al iniciar, arrancó el escritorio (una Debian con Gnome&#8230; bien! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   ) con una aplicación abierta con 3 opciones:</p>
<ol>
<li style="text-align:justify;">recuperar el menú grub en el mbr</li>
<li>actualizar el grub</li>
<li>chequear el disco</li>
<li>salir a la shell</li>
</ol>
<p style="text-align:justify;">La última, evidentemente, no me servía. Probé a chequear el disco, me daba a elegir el disco /dev/sda y luego nada. Así que opté por la primera, que me pidió donde restaurarlo y una vez seleccionada detectó que esa partición estaba pendiente de chequeo. Inició el chequeo, instaló el grub en su sitio y volvió a esa pantalla. Pues&#8230; listo, no? Reinicio, saco el CD y&#8230; al arrancar de nuevo, TODO PERFECTO!!!</p>
<p>Fantástico!!! Tengo ese CD guardado como oro en paño <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Ubuntu es genial&#8230; para cuando falla, hay otras distribuciones que te pueden salvar la vida <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=86&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2011/03/31/ubuntu-tambien-puede-fallar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>
	</item>
		<item>
		<title>¿¿¿ Qué narices es eso de la consola ???</title>
		<link>http://belinux.wordpress.com/2011/02/13/%c2%bf%c2%bf%c2%bf-que-narices-es-eso-de-la-consola/</link>
		<comments>http://belinux.wordpress.com/2011/02/13/%c2%bf%c2%bf%c2%bf-que-narices-es-eso-de-la-consola/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 18:40:52 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Consola Linux]]></category>
		<category><![CDATA[HowTO]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/?p=80</guid>
		<description><![CDATA[Este post está dirigido a todos aquellos que, viniendo de mundos Windows o Mac, se sienten un poco perdidos a la hora de saber como usar los comandos que encuentran cuando buscan ayuda googleando y encuentran páginas o foros donde explican cómo hacerlo pero para ello indican extrañas líneas de instrucciones llenas de acrónimos y [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=80&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Este post está dirigido a todos aquellos que, viniendo de mundos Windows o Mac, se sienten un poco perdidos a la hora de saber como usar los comandos que encuentran cuando buscan ayuda googleando y encuentran páginas o foros donde explican cómo hacerlo pero para ello indican extrañas líneas de instrucciones llenas de acrónimos y símbolos que no se entienden si no sabes qué narices es eso.</p>
<p style="text-align:justify;">Generalmente, cuando alguien busca ayuda de como hacer esto o aquello en un entorno windows o mac, las instrucciones incluyen algún pantallazo (para ver la ventana que te sale) en la que se indica resaltado de algún modo el botón o check de opción que se debe marcar o pulsar. Y las instrucciones son del estilo de: pincha en &#8220;esto&#8221; y te saldrá esta ventana, pulsa en la pestaña &#8220;tal-y-cual&#8221;, y similares&#8230;</p>
<p style="text-align:justify;">En cualquier distribución Linux (y a partir de ahora, me voy a enfocar en Ubuntu que será la que más probablemente tenga un recién llegado), lo que se puede hacer gráficamente viene &#8220;limitado&#8221; por las herramientas gráficas de que disponga la distribución (vamos, los programas instalados más los disponibles en los servidores de Ubuntu y que podemos instalar desde el &#8220;Gestor de paquetes Synaptic&#8221;). Cada uno de los programas que vemos como ventanitas gráficas, en realidad se traducen en uno o más procesos sobre el sistema operativo, y corresponde a la ejecución de un fichero (la aplicación) cuya interacción con nosotros es gráfica para permitir un control más sencillo de utilizar. Pero no necesariamente todo fichero ejecutable tiene porque tener una respuesta gráfica o visual, puede ser que simplemente permita ser &#8220;llamado&#8221;, ejecute su proceso y muestre un resultado final.</p>
<p style="text-align:justify;">Pues bien, las aplicaciones ejecutables normalmente se abren con un doble-click sobre su icono desde el entorno gráfico. Esto en realidad no es más que una simplificación de lo que en realidad significa, que es llamar a ese fichero y ponerlo en ejecución. Y para eso no es imprescindible un entorno gráfico. Aquí es donde entra en juego la consola (o terminal) de comandos.</p>
<p style="text-align:justify;"><strong>La consola de comandos (o terminal) no es más que otra aplicación (en Ubuntu: Aplicaciones &gt; Accesorios &gt; Terminal) que abre una nueva sesión de nuestro mismo usuario (es decir, que estamos conectados 2 veces a nuestro ordenador) en la que, en lugar del navegador de ficheros, tenemos un intérprete de comandos que espera ordenes textuales. Aquí es donde podremos ejecutar nuestros comandos (o los que indiquen como instrucciones en la página de ayuda que hayamos encontrado).</strong></p>
<p style="text-align:justify;">Existen infinidad de comandos disponibles comunes a todas las distribuciones (comandos GNU) y algunos específicos de la distribución que usemos (hay un pequeño tutorial <a href="http://belinux.wordpress.com/comandos-basicos-de-consola/">en esta página del blog</a>) que permiten un control mucho más directo y amplio sobre la máquina de lo que permiten los programas gráficos. Todos tienen la misma estructura:</p>
<pre style="text-align:center;"><strong><span style="color:#008000;">&lt;comando&gt; &lt;opciones&gt;</span></strong></pre>
<p style="padding-left:30px;">El &#8220;comando&#8221; puede ser un comando interno del intérprete de comandos (hay una lista si escribís el comando &#8220;help&#8221;) o un fichero ejecutable (en este caso, puede ser sólo el nombre del fichero o la ubicación completa indicando los directorios donde está, algo así como: /usr/bin/lo_que_sea ).</p>
<p style="padding-left:30px;">Las &#8220;opciones&#8221; dependen totalmente del comando, cada uno tiene las suyas. Pero hay una serie de convenciones en todos los comandos GNU. De modo sencillo, las opciones se dividen en &#8220;modificadores&#8221; o &#8220;acciones&#8221; y &#8220;ficheros a los que aplica&#8221;. Los modificadores tienen la forma de un guión seguido de una letra (cuando hay varios, típicamente se agrupan en un sólo guión) o un doble guión seguido de un texto descriptivo de la acción. Generalmente suele existir la opción &#8220;-h&#8221; o &#8220;&#8211;help&#8221; para ver la sintaxis disponible del comando. Los ficheros pueden ser opcionales, dependerá de si la opción es aplicable a ficheros o no, pero de estar se debe indicar el nombre (o ubicación) del / los ficheros.</p>
<p>Si te fijas, verás que esto permite hacer muchísimo más que el entorno gráfico. Por ejemplo:</p>
<ul>
<li><span style="color:#008000;"><strong>rm  -Rf  /users  /home  /var</strong> </span> =&gt;    esto &#8220;borra&#8221; (rm) &#8220;recursivamente&#8221; (-R) y &#8220;forzadamente&#8221; (-f) las carpetas indicadas y su contenido (por lo de recursivo), las dos primeras suelen contener la carpeta del usuario (junto con el escritorio y la configuración gráfica) y la última contiene datos de trabajo de las aplicaciones (logs del sistema, cola de impresión, bases de datos, información de los paquetes instalados,  &#8230;). Vamos, que te cargas el sistema enterito.</li>
<li><strong><span style="color:#008000;">ren  jpeg  jpg  &#8211; /users/* </span></strong> =&gt; esto &#8220;renombra&#8221; (ren) cambiando el texto &#8220;jpeg&#8221; por el texto &#8220;jpg&#8221; en el nombre de todos los ficheros que hay en &#8220;/users&#8221; (hacer esto desde el entorno gráfico nos obligaria a cambiar una por una todas las imágenes)</li>
<li><span style="color:#008000;"><strong>ls  -l  /users  /home  /var </strong></span> =&gt; esto &#8220;lista&#8221; (ls) en formato &#8220;largo&#8221; (-l) el contenido de las carpetas indicadas (sí, las 3 a la vez, una después de otra)</li>
<li><strong><span style="color:#008000;">man  ls </span></strong> =&gt; muestra el &#8220;manual&#8221; (man) del comando &#8220;ls&#8221; (sí, afortunadamente hay un manual para prácticamente todos los comandos disponibles)</li>
<li>&#8230;.etc&#8230;</li>
</ul>
<p style="text-align:justify;">Sólo hay un par de cosas que se deben entender de este nuevo entorno:</p>
<ul>
<li style="text-align:justify;">siempre estamos ubicados en un directorio (=carpeta) concreto, y los comandos que ejecutemos lo harán sobre ese directorio a menos que se indique lo contrario. (podemos saber donde estamos con el comando &#8220;pwd&#8221;)</li>
<li>los comandos &#8220;sudo&#8221; y &#8220;su&#8221; permiten ejecutar lo que sea como si fueramos el superusuario (evidentemenete, nos pedirá la contraseña para verificar nuestra identidad), así que ojo con copiar y pegar aquí cualquier comando sacado de por ahí que empiece por ese prefijo</li>
</ul>
<p>Espero que esto le sirva de algo a alguien.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=80&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2011/02/13/%c2%bf%c2%bf%c2%bf-que-narices-es-eso-de-la-consola/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>
	</item>
		<item>
		<title>Anatomia de&#8230; el sistema de ficheros de Linux</title>
		<link>http://belinux.wordpress.com/2008/08/31/anatomia-de-el-sistema-de-ficheros-de-linux/</link>
		<comments>http://belinux.wordpress.com/2008/08/31/anatomia-de-el-sistema-de-ficheros-de-linux/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 19:07:33 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Sistemas de ficheros]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/?p=42</guid>
		<description><![CDATA[[Traducido del artículo original de M.Tim Jones del 30 de octubre de 2007 para IBM] Una revisión por capas basada en la estructura Cuando se trata de sistemas de ficheros, Linux® es la navaja suiza de los sistemas operativos. Linux soporta un gran número de sistemas de ficheros, desde sistemas con diario (journaling) a clustering [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=42&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>[Traducido del <a href="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/" target="_blank">artículo original</a> de M.Tim Jones del 30 de octubre de 2007 para IBM]</em></p>
<h2><em>Una revisión por capas basada en la estructura</em></h2>
<p><em> </em></p>
<p style="text-align:justify;padding-left:30px;"><em>Cuando se trata de sistemas de ficheros, Linux® es la navaja suiza de los sistemas operativos. Linux soporta un gran número de sistemas de ficheros, desde sistemas con diario (</em><em>journaling</em><em>) a clustering o criptográficos. Linux es una maravillosa plataforma para usar sistemas de ficheros estándar o los más exóticos, e incluso para el desarrollo de sistemas de ficheros. Este artículo explora el sistema de ficheros virtual (VFS por sus siglas en inglés) —algunas veces llamado el sistema de ficheros conmutador (</em><em>switch</em><em>) — en el kernel de Linux y después revisa algunas de las principales  estructuras que mantienen los sistemas de ficheros unidos.</em></p>
<p style="text-align:justify;padding-left:30px;"><span id="more-42"></span></p>
<h2>Arquitectura básica de un sistema de ficheros</h2>
<p style="text-align:justify;">La aquitectura de sistema de ficheros de Linux es un ejemplo interesante de complejidad de abstracción. Usando un conjunto común de funciones de interfaz (API), una gran variedad de sistemas de ficheros pueden ser soportados con una gran variedad de dispositivos de almacenamiento. Tomemos, por ejemplo, la llamada a la función &#8220;leer&#8221; (<em>read</em>), que permite que cierto número de bytes sean leídos de un descriptor de fichero dado. La función &#8220;leer&#8221; no sabe nada de los tipos de sistemas de ficheros, tales como EXT3 o NFS. Tampoco sabe nada de medios de almacenamiento particulares sobre los que el sistema de ficheros está montado, tales como discos de tipo <em>AT Attachment Packet Interface (ATAPI)</em>, discos <em>Serial-Attached SCSI (SAS)</em> o discos <em>Serial Advanced Technology Attachment (SATA)</em>. Aun así, cuando la función &#8220;leer&#8221; es llamada para un fichero abierto, los datos son devueltos tal como se esperaba. Este artículo explora como se hace esto e investiga las principales estructuras de la capa de sistema de ficheros de Linux.</p>
<h2>¿Qué es un sistema de ficheros?</h2>
<p style="text-align:justify;">Empezaré con una respuesta a la pregunta más básica, la definición de un sistema de ficheros. Un sistema de ficheros es una organización de datos y metadatos en un dispositivo de almacenamiento. Con una definición tan vaga como esa, ya se ve que el código requerido para soportarla será interesante. Como he dicho, hay muchos tipos de sistemas de ficheros y medios. Con todas estas variantes, cabe esperar que la interfaz de un sistema de ficheros Linux esté implementada como una arquitectura de capas, separando la capa de interfaz de usuario de la implementación del sistema de ficheros y de los controladores que manejan los dispositivos de almacenamiento.</p>
<blockquote><p>Los sistemas de ficheros como protocolos</p>
<p style="text-align:justify;">Otra manera de ver un sistema de ficheros es como un protocolo. Tal como los protocolos de red (p.ej., el protocolo IP) dar significado a las secuencias de datos atravesando la Internet, los sistemas de ficheros dan significado a los datos en un medio de almacenamiento particular.</p>
</blockquote>
<h3>Montaje</h3>
<p style="text-align:justify;">Asociar un dispositivo de almacenamiento a un sistema de ficheros en Linux es un proceso conocido como montaje (mounting). El comando &#8220;mount&#8221; es usado para adjuntar un sistema de ficheros a la actual jerarquía de sistema de ficheros (raíz, o root en inglés). Durante el montaje se debe indicar un tipo de sistema de ficheros, un dispositivo de almacenamiento que contenga un sistema de ficheros de ese tipo [Nota del traductor: en el texto original indica que debe ser un sistema de ficheros, pero eso no es exactamente así, por eso aquí está corregido] y un punto de montaje dentro de la jerarquía.</p>
<p style="text-align:justify;">Para ilustrar las posibilidades de la capa de sistema de ficheros de Linux ( y el uso del comando <em>mount</em> ), se puede crear un sistema de ficheros en un fichero dentro del propio sistema de ficheros. Esto se consigue creando primero un fichero de un tamaño determinado usando el comando <em>dd</em> (copia un fichero usando /dev/zero como origen) &#8212; en otras palabras, un fichero inicializado con ceros, tal como se muestra en el Listado 1:</p>
<pre style="padding-left:30px;">Listado 1. Creando un fichero inicializado a cero</pre>
<pre style="padding-left:30px;">$ dd if=/dev/zero of=file.img bs=1k count=10000</pre>
<pre style="padding-left:30px;">  10000+0 records in</pre>
<pre style="padding-left:30px;">  10000+0 records out
$</pre>
<p style="text-align:justify;">Ahora tenemos un fichero llamado &#8220;file.img&#8221; de 10MB de tamaño. A continuación, usaremos el comando &#8220;losetup&#8221; para asociar un dispositivo de bucle (loop) al fichero (para que funcione como un dispositivo de bloques en lugar de como un fichero normal dentro de un sistema de ficheros, es decir, lo convertimos en un dispositivo de almacenamiento):</p>
<pre style="padding-left:30px;">$ losetup /dev/loop0 file.img</pre>
<pre style="padding-left:30px;">$</pre>
<p style="text-align:justify;">Con el fichero ahora como un dispositivo de bloques (representado por /dev/loop0), creamos un sistema de fichero en él con el comando <em>mke2fs</em>. Este comando crea un nuevo sistema de ficheros de tipo EXT2 del tamaño especificado, tal como se indica en el Listado 2:</p>
<pre style="padding-left:30px;">Listado 2. Creando un sistema de ficheros EXT2 dentro de un dispositivo en bucle</pre>
<pre style="padding-left:30px;"> $ mke2fs -c /dev/loop0 10000</pre>
<pre style="padding-left:30px;"> mke2fs 1.35 (28-Feb-2004)</pre>
<pre style="padding-left:30px;"> max_blocks 1024000, rsv_groups = 1250, rsv_gdb = 39</pre>
<pre style="padding-left:30px;"> Filesystem label=</pre>
<pre style="padding-left:30px;"> OS type: Linux</pre>
<pre style="padding-left:30px;"> Block size=1024 (log=0)</pre>
<pre style="padding-left:30px;"> Fragment size=1024 (log=0)</pre>
<pre style="padding-left:30px;"> 2512 inodes, 10000 blocks</pre>
<pre style="padding-left:30px;"> 500 blocks (5.00%) reserved for the super user</pre>
<pre style="padding-left:30px;"> ...</pre>
<pre style="padding-left:30px;"> $</pre>
<p style="text-align:justify;">El fichero file.img, representado por el dispositivo de bucle (<em>/dev/loop0</em>), está ahora montado en el punto de montaje <em>/mnt/point1</em> usando el comando <em>mount</em>. Destacar la especificación del sistema de ficheros como de tipo EXT2. Cuando esté montado, se puede tratar este nuevo punto de montaje como un nuevo sistema de ficheros usando el comando <em>ls</em>, tal como muestra el Listado 3:</p>
<pre style="padding-left:30px;">Listado 3. Creando un punto de montaje y montando el sistema de ficheros a través de un dispositivo de bucle.</pre>
<pre style="padding-left:30px;"> $ mkdir /mnt/point1</pre>
<pre style="padding-left:30px;"> $ mount -t ext2 /dev/loop0 /mnt/point1</pre>
<pre style="padding-left:30px;"> $ ls /mnt/point1</pre>
<pre style="padding-left:30px;"> lost+found</pre>
<pre style="padding-left:30px;"> $</pre>
<p style="text-align:justify;">Como se muestra en el Listado 4, se puede continuar este proceso creando un nuevo fichero dentro del nuevo sistema de ficheros montado, asociando con un dispositivo de bucle, y creando otro sistema de fichero en él:</p>
<pre style="padding-left:30px;">Listado 4. Creando un nuevo sistema de ficheros de bucle dentro de un sistema de ficheros de bucle.</pre>
<pre style="padding-left:30px;"> $ dd if=/dev/zero of=/mnt/point1/file.img bs=1k count=1000</pre>
<pre style="padding-left:30px;"> 1000+0 records in</pre>
<pre style="padding-left:30px;"> 1000+0 records out</pre>
<pre style="padding-left:30px;"> $ losetup /dev/loop1 /mnt/point1/file.img</pre>
<pre style="padding-left:30px;"> $ mke2fs -c /dev/loop1 1000</pre>
<pre style="padding-left:30px;"> mke2fs 1.35 (28-Feb-2004)</pre>
<pre style="padding-left:30px;"> max_blocks 1024000, rsv_groups = 125, rsv_gdb = 3</pre>
<pre style="padding-left:30px;"> Filesystem label=</pre>
<pre style="padding-left:30px;"> ...</pre>
<pre style="padding-left:30px;"> $ mkdir /mnt/point2</pre>
<pre style="padding-left:30px;"> $ mount -t ext2 /dev/loop1 /mnt/point2</pre>
<pre style="padding-left:30px;"> $ ls /mnt/point2</pre>
<pre style="padding-left:30px;"> lost+found</pre>
<pre style="padding-left:30px;"> $ ls /mnt/point1</pre>
<pre style="padding-left:30px;"> file.img lost+found</pre>
<pre style="padding-left:30px;"> $</pre>
<p style="text-align:justify;">A partir de esta simple demostración, es fácil ver lo poderoso que puede ser el sistema de ficheros de Linux (y el dispositivo de bucle). Puede usarse la misma aproximación para crear sistemas de ficheros encriptados con el dispositivo de bucle en un fichero. Esto es extremadamente útil para proteger tus datos mediante el montaje transitorio del fichero usando el dispositivo de bucle cuando sea necesario.</p>
<h2>Arquitectura de sistema de ficheros</h2>
<p style="text-align:justify;">Ahora que hemos visto la construcción de un sistema de ficheros en acción, vuelvo a la arquitectura de la capa de sistema de ficheros de Linux. Este artículo muestra el sistema de ficheros de Linux desde dos perspectivas. La primera perspectiva es la de una arquitectura de alto nivel. La segunda excarva un poco más hondo y explora la capa de sistema de ficheros a partir de las estructuras principales que la implementan.</p>
<h3>Arquitectura de alto nivel</h3>
<p style="text-align:justify;">Mientras que la mayoria del código de un sistema de ficheros existe en el nucleo (kernel en inglés) &#8212; excepto en el caso de los sistemas de ficheros del espacio de usuario, de los que hablaremos más tarde &#8211;, la arquitectura mostrada en la Figura 1 muestra las relaciones entre los principales componentes de un sistema de ficheros tanto en el espacio de usuario como en el núcleo.</p>
<div class="wp-caption aligncenter" style="width: 512px"><img src="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure1.gif" alt="Figura 1. Arquitectura de los componentes de un sistema de ficheros" width="502" height="366" /><p class="wp-caption-text">Figura 1. Arquitectura de los componentes de un sistema de ficheros</p></div>
<p style="text-align:justify;">El espacio de usuario <em>(user space)</em> contiene las aplicaciones (por ejempo, el usuario del sistema de ficheros) y las librerias GNU de C (glibc), que proveen la interfaz de usuario para las llamadas al sistema de ficheros (open, read, write, close). La interfaz de llamadas a sistema actua como un conmutador, concentrando las llamadas a sistema desde el espacio de usuario hacia los puntos de entrada apropiados dentro del espacio del núcleo <em>(kernel space)</em>.</p>
<p style="text-align:justify;">El VFS es el interfaz primario de los sistemas de ficheros subyacentes. Este componente exporta un conjunto de interfaces y después las abstrae para los sistemas de ficheros individuales, que pueden comportarse de maneras muy diferentes unos de otros. Existen dos cachés para los objetos del sistema de ficheros (inodos y entradas de directorio), que definiré brevemente. Cada una proveé un contenedor de objetos usados recientemente por el sistema de ficheros.</p>
<p style="text-align:justify;">Cada implementación particular de un sistema de ficheros, tales como EXT2, JFS, etc., exporta un conjunto común de interfaces que son usadas (y esperadas) por el VFS. El <em>buffer caché</em> almacena peticiones entre el sistema de ficheros y los dispositivos de bloques que manipula. Por ejemplo, peticiones de lectura y escritura al dispositivo subyacente son pasadas a través del <em>buffer caché</em>. Esto permite que las peticiones sean cacheadas ahí para un acceso más rápido (en lugar de salir directamente hacia el dispositivo físico). El <em>buffer caché</em> es manejado como un conjunto de las listas menos usadas recientemente (LRU, por sus siglas en inglés). Es importante fijarse que se puede usar el comando <em>sync</em> para liberar todo el <em>buffer caché</em> hacia el medio de almacenamiento (para forzar la salida de todos los datos no escritos hacia los controladores de dispositivo, y a continuación hacia el dispositivo de almacenamiento).</p>
<p style="text-align:justify;">Esta es la vista aérea de un VFS y de los componentes de un sistema de ficheros. Ahora echemos un vistazo a las principales estructuras que implementan este subsystema.</p>
<blockquote>
<p style="text-align:justify;">¿Qué es un dispositivo de bloques?</p>
<p style="text-align:justify;">Un dispositivo de bloques es aquel en el que los datos que envia y recibe se mueven en bloques (tales como sectores de discos) y soporta atributos tales como <em>buffering </em>y acceso aleatorio (no es necesario que lea bloques secuencialmente, pero si que pueda acceder cualquier bloque en cualquier momento). Los dispositivos de bloques incluyen discos duros, CD-ROMs, y discos RAM. En contraste con los dispositivos de caracteres, de los que difieren en que ellos no tienen un medio fisicamente direccionable.  Los dispositivos de caracteres incluyen puertos serie y dispositivos de cinta, en los que los datos son secuenciados caracter a caracter.</p>
</blockquote>
<h2>Principales estructuras</h2>
<p style="text-align:justify;">Linux ve todos los sistemas de ficheros desde la perspectiva de un conjunto común de objetos. Estos objetos son el superbloque, el inodo, las entradas-D (dentry), y el fichero. En la raíz de cada sistema de ficheros está el superbloque, que describe y mantiene el estado del sistema de ficheros. Cada objeto que es gestionado dentro de un sistema de ficheros (fichero o directorio) está representado en Linux como un inodo. El inodo contiene todos los metadatos para gestionar objetos en el sistema de ficheros (incluyendo las operaciones que son posibles sobre él). Otro conjunto de estructuras, llamadas entradas-D (dentries), son usadas para hacer la traducción entre nombres e inodos, para los que existe una caché de directorios que mantiene los más recientemente usados. La entrada-D también mantiene las relaciones entre directorios y ficheros a través del sistema de ficheros. Finalmente, un fichero VFS representa un fichero abierto (mantiene un estado para el fichero abierto tal como el desplazamiento de lectura, y demás).</p>
<h3>Capa del sistema de ficheros virtual (VFS)</h3>
<p style="text-align:justify;">El VFS actua como el nivel raíz de la interfaz de sistema de ficheros. El VFS mantiene registro de los sistemas de ficheros actualmente soportados, así como de aquellos sistemas de ficheros que están actualmente montados.</p>
<p style="text-align:justify;">Los sistemas de ficheros pueden ser añadidos o eliminados de Linux dinámicamente usando un conjunto de funciones de registro. El núcle guarda una lista de los sistemas de ficheros actualmente soportados, que puede ser vista desde el espacio de usuario a través del sistema de ficheros <em>/proc</em>. Este fichero virtual también muestra los dispositivos actualmente asociados con algún sistema de ficheros. Para añadir un nuevo sistema de ficheros a Linux, se llama a la función register_filesystem. Ésta toma un único argumento que define la referencia a una estructura de sistema de ficheros (<em>file_system_type</em>), que define el nombre de un sistema de ficheros, un conjunto de atributos, y dos funciones de superbloque. Un sistema de ficheros también puede ser des-registrado.</p>
<p style="text-align:justify;">Al registrar un nuevo sistema de ficheros, se ubica éste y la información pertinente sobre la lista <em>file_systems</em> (ver Figura 2 y linux/include/linux/mount.h). Esta lista define los sistemas de ficheros que pueden ser soportados. Se puede ver esta lista tecleando <em>cat /proc/filesystems</em> en la linea de comandos.</p>
<div class="wp-caption aligncenter" style="width: 462px"><img src="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure2.jpg" alt="Figura 2. Sistemas de ficheros registros con el núcleo" width="452" height="357" /><p class="wp-caption-text">Figura 2. Sistemas de ficheros registros con el núcleo</p></div>
<p>Otra estructura mantenida en el VFS son los sistemas de ficheros montados (ver Figura 3). Esto proveé los sistemas de ficheros que actualmente están montados (ver linux/include/linux/fs.h). Esto enlaza con la estructura de superbloque, que exploraré a continuación.</p>
<div class="wp-caption aligncenter" style="width: 534px"><img src="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure3.jpg" alt="Lista de sistemas de ficheros montados" width="524" height="257" /><p class="wp-caption-text">Figura 3. Lista de sistemas de ficheros montados</p></div>
<h3>Superbloque</h3>
<p style="text-align:justify;">El superbloque es una estructura que representa un sistema de ficheros. Incluye la información necesaria para manejar el sistema de ficheros durante las operaciones. Incluye el nombre del sistema de ficheros (tal como EXT2), el tamaño del sistema de ficheros y su estado, una referencia al dispositivo de bloques, e información de metadatos (tal como listas libres y demás). El superbloque es típicamente almacenado en el medio de almacenamiento pero puede ser creado en tiempo real si no existe uno. Se puede ver la estructura de superbloque (Figura 4) en linux/include/linux/fs.h.</p>
<p style="text-align:justify;">
<div class="wp-caption aligncenter" style="width: 527px"><img src="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure4.jpg" alt="Figura 4. Estructura de superbloque y operaciones de inodo" width="517" height="330" /><p class="wp-caption-text">Figura 4. Estructura de superbloque y operaciones de inodo</p></div>
<p style="text-align:justify;">
<p style="text-align:justify;">Un elemento importante del superbloque es la definición de las operaciones del superbloque. Esta estructura define un conjunto de funciones para manejo de inodos dentro del sistema de ficheros. Por ejemplos, los inodos pueden ser asignados con <em>alloc_inode</em> o eliminado con <em>destroy_inode</em>. Puedes leer y escribir inodos con read_inode and <em>write_inode</em> o sincronizar el sistema de ficheros con <em>sync_fs</em>. Se pueden encontrar la estructura de las <em>super_operations</em> (operaciones de superbloque) en /linux/include/linux/fs.h. Cada sistema de ficheros proveé sus propios métodos de inodos, que implementan las operaciones y proveén la abstracción común de la capa VFS.</p>
<h3>inodo y entrada-d</h3>
<p style="text-align:justify;">El inodo representa un objeto en el sistema de ficheros con un identificador único. Cada sistema de ficheros particular proveé métodos para convertir un nombre de fichero en un identificador único de inodo y despues a una referencia a un inodo. Una porción de la estructura de un inodo se muestra en la Figura 5 junto con algunas de las estructuras relacionadas. Cabe notar en particular las estructuras inode_operations (operaciones sobre un inodo) y file_operations (operaciones sobre ficheros). Cada una de esas estructuras se refiere a las operaciones individuales que pueden ser ejecutadas sobre un inodo concreto. Por ejemplo, inode_operations define aquellas operaciones que operan directamente sobre un inodo, mientras que file_operations se refiere a aquellos émtodos relacionados con ficheros y directorios (las llamadas a sistema estándar).</p>
<p style="text-align:justify;">
<div class="wp-caption aligncenter" style="width: 570px"><img src="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure5.jpg" alt="Figura 5. La estructura de un inodo y las estructuras relacionadas" width="560" height="303" /><p class="wp-caption-text">Figura 5. La estructura de un inodo y las operaciones asociadas</p></div>
<p>Los inodos y entradas-d más recientemente usados son guardados en la caché de inodos y directorios respectivamente. Cabe destacar que para cada inodo en la caché de inodos hay una entrada-d correspondiente en la caché de directorios. Pueden encontrarse las estructuras de inodo y entrada-d definidas en ./linux/include/linux/fs.h</p>
<h3>El caché de bloques (buffer caché)</h3>
<p style="text-align:justify;">Excepto en las implementaciones particulares de cada sistema de ficheros (que puede ser encontrada en ./linux/fs), la parte baja de la capa de sistema de ficheros es el buffer caché. Este elemento mantiene un registro de las peticiones de lecturas y escrituras de cada implementacion particular del sistema de ficheros y de los dispositivos físicos (a través de los controladores de dispositivos). Por cuestiones de eficiencia, Linux mantiene una caché de las peticiones para evitar tener que volver a ir al dispositivo físico para cada petición. En su lugar, los bloques (páginas) más recientemente usados son cacheados aquí para ser rápidamente devueltos al sistema de ficheros particular.</p>
<h2>Sistemas de ficheros interesantes</h2>
<p style="text-align:justify;">Este artículo no va a extenderse explorando los sistemas de ficheros particulares que están disponibles para Linux, pero es importante hablar de ellos, aunque sea de pasada. Linux soporta un amplio abanico de sistemas de ficheros diferentes, desde los antiguos sistemas de ficheros tales como MINIX, MS-DOS, y ext2, hasta los nuevos sistemas de ficheros con bitácora (journaling) tales como ext3, JFS y ReiserFS. Adicionalmente, Linux soporta sistemas de ficheros criptográficos tales como CFS, y sistemas de ficheros virtuales tales como /proc.</p>
<p style="text-align:justify;">Por último, un sistema de ficheros digno de mención es el sistema de ficheros dentro del espacio de usuario, o FUSE (por sus siglas en inglés). Este es un interesante proyecto que permite al usuario dirigir las peticiones al sistema de ficheros a través del VFS de vuelta hacia el espacio de usuario. De modo que si alguna vez has jugado con la idea de crear tu propio sistema de ficheros, este es un gran punto de inicio.</p>
<h2>Conclusiones</h2>
<p style="text-align:justify;">Mientras que la implementación de un sistema de ficheros es cualquier cosa menos trivial, este es un gran ejemplo de una arquitectura escalable y extensible. La arquitectura de sistema de ficheros ha evolucionado a través de los años pero ha soportado exitósamente muchos tipos diferentes de sistemas de ficheros y muchos tipos de dispositivos de almacenamiento objetivo. Usando una arquitectura basada en conectores (plug-ins) con varios niveles de funciones indirectas, será interesante ver la evolución del sistema de ficheros de Linux en el futuro cercano.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belinux.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belinux.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=42&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2008/08/31/anatomia-de-el-sistema-de-ficheros-de-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>

		<media:content url="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure1.gif" medium="image">
			<media:title type="html">Figura 1. Arquitectura de los componentes de un sistema de ficheros</media:title>
		</media:content>

		<media:content url="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure2.jpg" medium="image">
			<media:title type="html">Figura 2. Sistemas de ficheros registros con el núcleo</media:title>
		</media:content>

		<media:content url="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure3.jpg" medium="image">
			<media:title type="html">Lista de sistemas de ficheros montados</media:title>
		</media:content>

		<media:content url="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure4.jpg" medium="image">
			<media:title type="html">Figura 4. Estructura de superbloque y operaciones de inodo</media:title>
		</media:content>

		<media:content url="http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/figure5.jpg" medium="image">
			<media:title type="html">Figura 5. La estructura de un inodo y las estructuras relacionadas</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu y las impresoras</title>
		<link>http://belinux.wordpress.com/2008/07/31/ubuntu-y-las-impresoras/</link>
		<comments>http://belinux.wordpress.com/2008/07/31/ubuntu-y-las-impresoras/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 07:41:58 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Configurando linux]]></category>
		<category><![CDATA[Scripts]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/?p=33</guid>
		<description><![CDATA[Haca tiempo que no escribía nada, ya que últimamente estoy trabajando bastante con equipos que usan Ubuntu y la verdad es que los problemas son mínimos y la gente que los usa estan encantados de la vida. Sin embargo, todavía hay algunas cosas que no funcionan tan simple como deberian, me estoy refiriendo por supuesto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=33&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Haca tiempo que no escribía nada, ya que últimamente estoy trabajando bastante con equipos que usan Ubuntu y la verdad es que los problemas son mínimos y la gente que los usa estan encantados de la vida. Sin embargo, todavía hay algunas cosas que no funcionan tan simple como deberian, me estoy refiriendo por supuesto a ese gran &#8220;enemigo&#8221; de las distribuciones linux de escritorio: las impresoras.</p>
<p style="text-align:justify;">Le pese a quien le pese, y lo diga quien lo diga, linux todavia no es un gran sistema de escritorio como lo pueden ser windows o mac, en ese sentido siguen ganando estos dos, ya que la sensación que tiene el usuario de poder controlar completamente su equipo y los recursos auxiliares de una manera relativamente sencilla es muy grande&#8230;</p>
<p><span id="more-33"></span></p>
<ul>
<li>Cualquier usuario de windows o mac sabe que si se compra una impresora nueva basta con instalarle una cosa llamada drivers y que permiten usarla (en algunos casos ni siquiera sera necesario), y una vez hecho eso ya la impresora funciona siempre correctamente.</li>
<li>Cualquier usuario de windows o mac sabe que si se compra una cámara de fotos o cualquier otro aparato que lleve USB, bastará con instalarle previamente los drivers y luego el sistema ya conoce al aparatejo y podrá usarlo de una manera similar a como usa un disco externo o similar&#8230;</li>
<li>Cualquier usuario de windows o mac sabe como instalar un programa, que le haces doble-clic al instalador, te aparecera un asistente que te dará instrucciones y que siguiendo las instrucciones al final tendrás instalado el software y podras usarlo sin haber tenido que hacer cosas extrañas (lease compilar, tocar registros o similares, ejecutar algo desde la consola, &#8230;)</li>
</ul>
<p style="text-align:justify;">Esto desde mi punto de vista son los 3 grandes caballos de batalla con los que aún tiene que lidiar cualquier distribución Linux (que no quiere decir que sean sus únicos handicaps, pero por lo que veo estos son los más importantes), y es cierto que últimamente ha mejorado muchísimo la cosa y se ha simplificado todo una barbaridad en cuanto a la impresión (en parte gracias al sistema CUPS de la gente de Apple), pero aún determinadas  impresoras no se reconocen de manera sencilla.</p>
<p style="text-align:justify;">Hace poco tuve que instalar una impresora HP1018 en un PC con Ubuntu 8.04, pues bien, al buscar las impresoras me detectaba la impresora, de hecho el driver &#8220;se supone&#8221; que lo incluye la distribucion, pero la impresora no respondia a las paginas de prueba&#8230;.</p>
<p style="text-align:justify;">Googleando encontre <a href="http://belinux.files.wordpress.com/2008/07/hp1000-1005-1018-1020_install.pdf">una &#8220;joya&#8221; de script</a> que instala un paquete extra y configura un par de cosas para permitir que el driver haga lo que toca: drivear <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />    Funciona (comprobado!!) para la HP1018, y según el autor para la HP1000, HP1005 y HP1020 (estas no lo he podido comprobar). Copiais y pegais el código en un fichero .sh para bash, le dais permisos de ejecución y lo ejecutais como usuario  (os pedirá la contraseña para hacer sudo), después ya podeis configurar la impresora normalmente y tras reiniciar tanto el PC como la impresora todo irá como la seda <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:justify;">Suerte!!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belinux.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belinux.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=33&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2008/07/31/ubuntu-y-las-impresoras/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>
	</item>
		<item>
		<title>Que bonito es compartir, DAVid !! (1ª parte)</title>
		<link>http://belinux.wordpress.com/2008/03/12/que-bonito-es-compartir-david-1%c2%aa-parte/</link>
		<comments>http://belinux.wordpress.com/2008/03/12/que-bonito-es-compartir-david-1%c2%aa-parte/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 19:51:06 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Configurando linux]]></category>
		<category><![CDATA[HowTO]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[compartir]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[configuracion]]></category>
		<category><![CDATA[ficheros]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/?p=25</guid>
		<description><![CDATA[   Bueno, con este título seguramente no queda muy claro de que va esto, pero seguro que estás de acuerdo conmigo en lo bonito que es compartir, es algo que de pequeñitos nos enseñan que es mucho mejor que ser egoista y querer las cosas sólo para uno mismo. Y esa idea la hemos llevado [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=25&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div align="justify">   Bueno, con este título seguramente no queda muy claro de que va esto, pero seguro que estás de acuerdo conmigo en lo bonito que es compartir, es algo que de pequeñitos nos enseñan que es mucho mejor que ser egoista y querer las cosas sólo para uno mismo. Y esa idea la hemos llevado al mundo interconectado de hoy en dia donde un ordenador no tiene sentido por si solo, si no tienes acceso al mundo exterior o a recursos compartidos con los demás, de que sirve. Pues de eso va todo esto, de como compartir teniendo en cuenta que todos somos diferentes pero no por ello deben tener unos preferencia sobre los otros.</div>
<div align="justify"></div>
<div align="justify"></div>
<div align="justify">   No estoy filosofando sobre la naturaleza humana aunque lo pueda parecer, sino sobre los diferentes sistemas operativos y protocolos de compartición de ficheros que existen hoy en dia y de como cada uno tiene sus propias preferencias por uno u otro protocolo a la hora de definir lo que es un recurso compartido (curiosamente cada uno considera que la forma &#8220;natural&#8221; de compartir es el protocolo propio de su plataforma). Lo ideal sería que, independientemente del sistema operativo que usemos, podamos tener acceso a los recursos de forma totalmente transparente y que luego se presenten en cada sitio adaptados a las condiciones especiales de cada uno. Ésta es la idea detrás del protocolo HTTP, pensado e ideado para compartir información en forma de documentos de texto facilmente accesibles desde cualquier navegador sobre cualquier plataforma: un documento en particular debería poder accederse y obtener el mismo resultado independientemente de la presentación final, pero en esencia el contenido será siempre el mismo.</div>
<div align="justify"></div>
<div align="justify"></div>
<div align="justify">   Si esto es algo natural para los documentos, ¿porqué no lo es para los ficheros?</div>
<p><span id="more-25"></span></p>
<div align="justify">   En los sistemas windows usan NetBIOS para compartir ficheros, en Linux y familiares disponemos de NFS (de forma nativa) y de Samba (como clon de NetBIOS), en Mac hay preferencia por iMac o por carpetas AppleShared (que se basan también en SMB). Adicionalmente podemos acceder a recursos remotos por otro tipo de conexiones : ftp, sftp, &#8230;  y en cada caso hace falta un cliente particular para realizar la conexión y que no es, en principio, compatible 100% con el resto (permisos, juegos de caracteres, &#8230;)</div>
<div align="justify"></div>
<div align="justify"></div>
<div align="justify">   Buscando, buscando&#8230; nos hacia falta algún sistema multiplataforma que sea compatible 100% con todos los sistemas siendo el mismo en todos para que no sea necesario un servidor de samba, uno de nfs, otro de iMac, otro de ftp, otro de &#8230;  con la consiguiente configuración de cada uno y con la más que probable redundancia de ficheros. Y cuando por fin lo encontramos, resulta que requiere de algunos ajustes en cada plataforma para hacerlo funcionar correctamente: hablo de WebDAV, un protocolo HTTP ampliado que permite acceder por este sistema (con todas las ventajas que conlleva) a ficheros y carpetas de manera transparente y pudiendo distribuirlo sin que por ello deje de ser accesible tanto en redes locales como a través de internet.</div>
<div align="justify"></div>
<div align="justify"></div>
<div align="justify">   Seguramente no os descubro nada nuevo al hablaros de este protocolo (para los que así sea, agradeceré cualquier corrección o mejora al artículo), pero si es algo nuevo para vosotros estas son algunas de sus características y/o (des)ventajas:</div>
<div align="justify">
<ul>
<li>La configuración es única y sencilla, basta con tener un servidor Apache (o cualquier otro servidor web).</li>
<li>Todas las plataformas pueden acceder a este protocolo por ser de red y ampliamente conocido, y todos tienen clientes nativos.</li>
<li>Si bien, algunos cliente nativos son bastante malos:
<ul>
<li>en windows no permite la modificación parcial de un fichero, i.e., no se puede editar un fichero directamente desde la carpeta montad (si únicamente conectamos a la carpeta, ni siquiera permite la escritura)</li>
<li>en linux (al menos en ubuntu y mandriva), los navegadores de ficheros no admiten acceder a los volúmenes de red (algo increible para mi!!) al querer guardar o examinar ficheros desde ciertas aplicaciones (office, navegador, &#8230;) y es necesario montarlo como carpetas locales (objetivo final de este artículo)</li>
<li>en mac, salvo algunos problemillas con la caché si la conexión no es buena, funciona como uno esperaría.</li>
</ul>
</li>
<li>Por ser un protocolo netamente de red y mapeable dentro de un espacio de direcciones URL, no quedamos restringidos a recursos compartidos en la red local</li>
<li>Puede estar distribuido a través de proxys</li>
<li>Permite todos los tipos de identificación que soporte el servidor web (via LDAP, BDD, fichero local, &#8230;), asi como cualquier característica que soporte el servidor y que pueda ser aplicable a un fichero (compresión de salida, caché si los contenidos no cambia, &#8230;)</li>
<li>Usando cualquier navegador podremos, como mínimo, acceder en modo lectura y por tanto integrarlo en cualquier aplicación.</li>
<li>Lamentablemente, supone una carga adicional importante para el servidor web que se encargue de su gestión, por lo que convendría aislarlo en uno propio o en un host virtual diferente.</li>
<li>Incluso en las últimas versiones, es posible configurar un servidor SVN bajo las carpetas para mantener versionado de los ficheros. Claro que esto implica un servidor adicional y que no todos los clientes soportan DAV/DeltaV (la variante necesaria para gestionar los cambios en los ficheros), por no decir casi ninguno.</li>
<li>[...]</li>
</ul>
</div>
<div align="justify">   Seguramente me dejo alguna más, si se os ocurre alguna otra estaré encantado de incluirla. Y de momento, hasta aquí la introducción del porqué de todo esto, y a partir de aquí decir que en el siguiente post continuaremos con éste tema y la configuración de un servidor Apache y de un proxy para acceder a las carpetas DAV, así como un segundo post en el que detallaremos como instalar y configurar el acceso a éste tipo de comparticiones desde las tres plataformas mayoritarias para tener acceso total a todas las características de éste sistema.</div>
<div align="justify"></div>
<div align="justify"></div>
<div align="justify">      Espero que pueda servir de referencia a alguien.</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belinux.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belinux.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=25&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2008/03/12/que-bonito-es-compartir-david-1%c2%aa-parte/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>
	</item>
		<item>
		<title>Anatomía de&#8230; el asignador de losas de Linux</title>
		<link>http://belinux.wordpress.com/2007/11/22/anatomia-de-el-asignador-de-losas-de-linux/</link>
		<comments>http://belinux.wordpress.com/2007/11/22/anatomia-de-el-asignador-de-losas-de-linux/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 18:31:00 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/2007/11/22/anatomia-de-el-asignador-de-losas-de-linux/</guid>
		<description><![CDATA[Empiezo con éste una serie de artículos, traducidos de los originales de M.Tim Jones (mtj@mtjones.com) y que se pueden encontrar en el servicio de documentación técnica de IBM. Algunos de ellos ya tienen algunos meses de antigüedad, lamentablemente los he descubierto recientemente a partir del último publicado, pero los voy a ir traduciendo en el [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=23&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Empiezo con éste una serie de artículos, traducidos de los originales de M.Tim Jones (<a href="mailto:mtj@mtjones.com?subject=Anatomy%20of%20the%20Linux%20slab%20allocator&amp;cc=tomyoung@us.ibm.com">mtj@mtjones.com</a>) y que se pueden encontrar en el <a href="http://www.ibm.com/developerworks/views/linux/libraryview.jsp?topic_by=All+topics+and+related+products&amp;sort_order=asc&amp;lcl_sort_order=desc&amp;search_by=anatomy&amp;search_flag=true&amp;type_by=Articles&amp;show_abstract=true&amp;start_no=1&amp;sort_by=Date&amp;end_no=100&amp;show_all=false&amp;S_TACT=105AGX59&amp;S_CMP=GR" target="_blank">servicio de documentación técnica de IBM</a>. Algunos de ellos ya tienen algunos meses de antigüedad, lamentablemente los he descubierto recientemente a partir del último publicado, pero los voy a ir traduciendo en el orden cronológico de publicación intentando traducir uno cada semana.</p>
<p align="justify">Puesto que muchas veces la designación técnica de algunos elementos y algoritmos descritos en estos artículos suele ser la inglesa, sin que exista una traducción válida, adjuntaré a cada traducción literal que haga de estos conceptos el nombre original en inglés.</p>
<p align="justify">Y una vez expuestos estos dos puntos, empiezo con el cuerpo del artículo original.</p>
<p align="justify">&nbsp;</p>
<h2>Anatomía del asignador de losas (<em>slab allocator</em>) de Linux</h2>
<p><a href="http://www.ibm.com/developerworks/linux/library/l-linux-slab-allocator/index.html?S_TACT=105AGX59&amp;S_CMP=GR" target="_blank">[artículo original]</a></p>
<p align="justify">Un buen rendimiento del sistema operativo depende en parte de la habilidad del propio sistema para gestionar eficientemente los recursos. En los viejos tiempos, los gestores de pila <em>(heap memory managers)</em> eran la norma, pero el rendimiento se veia afectado por la fragmentación y la necesidad de reasignar memoria. Hoy, el núcleo de Linux® usa un método que fue originado en Solaris pero que ha sido usado en sistemas empotrados durante algún tiempo ya, asignando memoria como objetos basándose en su tamaño. Éste artículo explora las ideas tras el asignador de losas <em>(slab allocator)</em> y examina sus interfaces y sus usos.</p>
<h3><span id="more-23"></span></h3>
<h3>Gestión de memoria dinámica</h3>
<p align="justify">&nbsp;</p>
<p align="justify">El objetivo de la gestión de memoria es proveer de un método por el cual la memoria pueda ser compartida de manera dinámica entre una variedad de usuarios para una variedad de propósitos. El método de gestión de memoria usado debería cumplir las dos siguientes premisas:</p>
<ul>
<li>Minimizar la cantidad de tiempo requerido para gestionar la memoria</li>
<li>Maximizar la memoria disponible para uso general (minimizando la sobrecarga de gestión)</li>
</ul>
<p align="justify">La gestión de memoria es, en última instancia, una suma nula de compensaciones. Se puede desarrollar un algortimo que use poca memoria para la gestión, pero al que le lleve mucho tiempo gestionar la memoria disponible. También se puede desarrollar un algoritmo que gestione la memoria muy eficientemente pero que use un poco más de memoria. Finalmente, los requisitos de una aplicación particular nos llevan al balance de compensaciones.</p>
<p align="justify">Los primeros gestores de memoria usaban una estrategia de asignación basada en pila. En éste método, un bloque grande de memoria (llamado pila) es usado para proveer memoria a los fines de cada usuario. Cuando los usuarios necesitan un bloque de memoria, hacen una petición de una determinada cantidad. El gestor de la pila mira en la memoria disponible (usando algún algoritmo particular) y devuelve el bloque. Algunos de los algoritmos usados en esta búsqueda son del tipo <strong>primer-ajuste</strong> <em>(first-fit)</em>, en los que el bloque devuelto es el primero que se encuentre y que satisface la petición, o bien del tipo <strong>mejor-ajuste</strong> <em>(best-fit)</em>, en los que el bloque devuelto es el que mejor se ajuste a la petición. Cuando los usuarios han terminado con la memoria, devuelven el bloque a la pila.</p>
<p align="justify">El problema principal con esta estrategia de asignación basada en pila es la fragmentación. A medida que se van asignando bloques de memoria, son devueltos en diferente orden y en diferentes instantes. Esto tiende a dejar agujeros en la pila haciendo necesario más tiempo para gestionar eficientemente la memoria libre. Éste algoritmo tiende a ser eficiente en consumo de memoria (ya que asigna exactamente lo que es necesario), pero requiere más tiempo para gestionar la pila.</p>
<p align="justify">Otra aproximación, llamada <strong>asignación de memoria del amigo</strong> <em>(buddy memory allocation)</em>, es una técnica de memoria rápida que divide la memoria en un número de particiones potencia-de-2 y trata de asignar las peticiones de memoria usando una aproximación del tipo mejor-ajuste. Cuando la memoria es liberada por el usuario, el bloque amigo es chequeado para ver si alguno de sus vecinos colindantes han sido también liberados. Si es asi, los bloques son combinados para minimizar la fragmenteación. Éste algoritmo tiende a ser un poco más eficiente en tiempo pero puede desperdiciar memoria debido a la aproximación de mejor-ajuste.</p>
<p>Éste artículo se centra en la gestión de memoria del núcleo de Linux y, en particular, en los mecanismo provistos gracias a la asignación de losas <em>(slab allocation)</em>.</p>
<blockquote>
<h4><a title="N1008C" name="N1008C"></a><span class="smalltitle">La caché de losas <em>(slab cache)</em></span></h4>
</blockquote>
<p align="justify">El asignador de losas usado en Linux se basa en un algoritmo originalmente creado por Jeff Bonwick para el sistema operativo SunOS. El asignador de Jeff  gira en torno al cacheado de objetos. Dentro de un núcleo, una considerable cantidad de memoria es asignada para un conjunto finito de objetos tales como descriptores de ficheros y otras estructuras comunes. Jeff         vió que la cantidad de tiempo requerido para inicializar un objeto ordinario en el núcleo excedía la cantidad de tiempo requerido para asignarlo y liberarlo. Su conclusión fue que, en lugar de retornar la memoria de vuelta al contenedor global, él hizo que la memoria siguiera inicializada para el propósito previsto. Por ejemplo, si la memoria había sido asignada para un exclusor mútuo <em>(mutex)</em>, la función de inicialización         (<code>mutex_init</code>) sólo necesita ser ejecutada una vez cuando la memoria es asignada por primera vez al exclusor mútuo. Subsiguientes asignaciones de la memoria no necesitarian ejecutar la inicialización porque ya se encontraria en el estado deseado desde la liberación previa y la llamada al destructor.</p>
<p align="justify">El asignador de losas de Linux usa estas ideas y otras para construir un asignador de memoria que es eficiente tanto en espacio como en tiempo.</p>
<p align="justify">La figura 1 ilustra el alto nivel de organización de las estructuras de losas. En el nivel más alto está la cadena de caché ( <code>cache_chain</code>), que es una lista enlazada de las cachés de losas. Esto es útil para los algoritmos de mejor-ajuste que buscan una caché que mejor se ajuste al tamaño de la asignación deseada (iterado sobre la lista). Cada elemento de la  <code>cache_chain</code> es un puntero a una estructura         <code>kmem_cache</code> (lo que llamamos una <strong>caché</strong>). Esto define un contenedor de objetos de un tamaño fijo para gestionar.</p>
<h5 align="center"><strong>Figura 1. Las principales estructuras del asignador de losas </strong></h5>
<p align="center"><img src="http://belinux.files.wordpress.com/2007/11/figure1.gif?w=510" alt="Las principales estructuras del asignador de losas" /></p>
<p align="justify">Cada caché contiene una lista de <strong>losas</strong> <em>(slabs)</em>, que son bloques de memoria contiguos (típicamente páginas). Existen 3tres tipos de losas:</p>
<dl>
<dt><strong>                     <code>slabs_full</code>                 </strong></dt>
<dd>Losas que son asignadas completamente.</dd>
<dt><strong>                     <code>slabs_partial</code>                 </strong></dt>
<dd>Losas que son parcialmente asignadas.</dd>
<dt><strong>                     <code>slabs_empty</code>                 </strong></dt>
<dd>Losas que están vacías, o que son objetos no asignados.</dd>
</dl>
<p align="justify">Evidentemente las losas en la lista <code>slabs_empty</code> son los primeros candidatos para la <strong>recolecta</strong> <em>(reaping)</em>. Este es el proceso por el cual la memoria usada por las losas es devuelta al sistema operativo para otros usos.</p>
<p align="justify">Cada losa en su lista es un bloque de memoria contiguo (una o más páginas contiguas) que es dividido en objetos. Estos objetos son los elementos fundamentales que se asignan y liberan de una caché en particular. Fijese en que la losa es la minima asignación posible del asignador de losas, así que si necesita crecer, ésta es la cantidad mínima en que crecerá. Típicamente, múltiples objetos son asignados en cada losa.</p>
<p align="left">&nbsp;</p>
<p>A medida que los objetos son asignados y liberados de una losa, la losa individual se puede mover entre las listas de losas. Por ejemplo, cuando todos los objetos son consumidos dentro de una losa, se mueve de la lista <code>slabs_partial</code> hacia la lista         <code>slabs_full</code>. Cuando una losa está llena y un objeto es liberado, se mueve de la lista <code>slabs_full</code> hacia la lista         <code>slabs_partial</code>. Cuando todos los objetos son liberados, se mueve desde la lista <code>slabs_partial</code> hasta la lista <code>slabs_empty</code>.</p>
<blockquote>
<h4>Motivación a favor de las losas<a title="N1010C" name="N1010C"></a><span class="smalltitle"><br />
</span></h4>
</blockquote>
<p align="justify">El asignador de caché de losas proveé una serie de beneficios sobre los esquemas tradicionales de gestión de memoria. Primero, los núcleos normalmente esperan múltiples asignaciones de los mismos pequeños objetos a lo largo del tiempo de vida del sistema. El asignador de caché de losas dispone de esto gracias al cacheado de objetos de tamaños similares, evitando de este modo el problema de la fragmentación que suele ocurrir. El asignador de losas también soporta la inicialización de objetos comunes, evitando así la necesidad de inicializar repetidamente un objeto para un mismo propósito. Finalmente, el asignador de losas soporta alineación y coloreado de caché por hardware, lo que permite a objetos en diferentes cachés ocupar las mismas lineas de caché para un incremento del uso de la caché y un mejor rendimiento.</p>
<p align="justify">&nbsp;</p>
<p align="justify">&nbsp;</p>
<blockquote><address><font color="#ff9900"><strong>Nota del traductor.</strong> A partir de éste punto, el artículo incluye código fuente y ejemplos prácticos sobre el código del slab caché allocator, lo que hace complicada y algo inútil su traducción. Teniendo en cuenta que la teoría ya ha sido expuesta y que lo importante para entender el concepto ya ha sido traducido, entiendo que si a alguien le interesa el resto sobre el código fuente, por favor se remita al <a href="http://www.ibm.com/developerworks/linux/library/l-linux-slab-allocator/index.html?S_TACT=105AGX59&amp;S_CMP=GR#N10115" target="_blank">artículo original</a>, ya que la diferencia entre ese y como lo pueda yo traducir aquí será mínima y por tanto un esfuerzo inútil para mí. Espero de todas maneras que esta traducción le sirva a alguien para entender y tener claro el concepto del gestor de memoria usado por Linux.</font> </address>
</blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belinux.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belinux.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=23&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2007/11/22/anatomia-de-el-asignador-de-losas-de-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>

		<media:content url="http://belinux.files.wordpress.com/2007/11/figure1.gif" medium="image">
			<media:title type="html">Las principales estructuras del asignador de losas</media:title>
		</media:content>
	</item>
		<item>
		<title>Actualización automática de repositorios RPM</title>
		<link>http://belinux.wordpress.com/2007/07/30/actualizacion-automatica-de-repositorios-rpm/</link>
		<comments>http://belinux.wordpress.com/2007/07/30/actualizacion-automatica-de-repositorios-rpm/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 12:25:25 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Configurando linux]]></category>
		<category><![CDATA[Distribuciones]]></category>
		<category><![CDATA[HowTO]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/2007/07/30/actualizacion-automatica-de-repositorios-rpm/</guid>
		<description><![CDATA[Probablemente una de las causas por las que el usuario medio ha encontrado Ubuntu como una distribución atractiva frente a otras más clásicas es, además de por una buena selección de aplicaciones sencillas, el sistema Debian de actualización de software: apt-get. Para los que, como yo, venimos del mundo RedHat y funcionamos con sistemas que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=22&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Probablemente una de las causas por las que el usuario medio ha encontrado Ubuntu como una distribución atractiva frente a otras más clásicas es, además de por una buena selección de aplicaciones sencillas, el sistema Debian de actualización de software: apt-get.</p>
<p align="justify">Para los que, como yo, venimos del mundo RedHat y funcionamos con sistemas que han heredado su gestión de paquetes RPM, quizá nos parece algo incontrolable el hecho como apt-get gestiona las descargas, ya que simplemente te instala todas las dependencias que te hagan falta y la última versión de todo. Esto en una instalación de usuario típica es fantástico, porque de una manera sencilla configuras las actualizaciones automáticas y siempre estás al día sin preocuparte de que necesitas y si tienes que quitar este o aquel paquete para poder poner el nuevo. Pero en un sistema de servidor no es tan trivial: cambiar la versión de una determinada libreria o aplicación puede hacer que otra, que depende exactamente de aquella, deje de funcionar sin razón aparente.</p>
<p align="justify">En ese sentido, el sistema RPM es mucho más selectivo y te permite un mayor control de lo que tienes instalado, y te permite incluso definir desde donde lo quieres instalar (del DVD original, de internet, de un disco en otro ordenador&#8230;). Esta es la gran ventaja, a mi modo de ver, del sistema RPM: no necesitas una conexión a internet en cada PC, y esto en una red local de una empresa puede ser el escenario.</p>
<p align="justify">De cualquier modo, y teniendo en cuenta la posibilidad que tiene RPM de usar repositorios definidos en algún sitio, podemos emular el funcionamiento de actualización automática de apt-get.</p>
<p><span id="more-22"></span></p>
<p align="center"><font color="#ff6600"><em>[Nota: el HOWTO que viene a continuación se deberá ejecutar desde consola y como usuario root]</em> </font></p>
<p align="justify">Lo primero que deberemos hacer es asegurarnos que nuestra BDD de paquetes esté correcta y no presente incoherencias debido a un mal uso o posibles bugs en las aplicaciones que la manejen. Para esto tenemos el comando:</p>
<blockquote>
<h5><font color="#808000">rpm &#8211;rebuilddb</font></h5>
</blockquote>
<p align="justify">Si todo está bien, no devolverá ninguna salida, pero si hubiera algún error mostrará los mensajes de lo que ha corregido. En ese caso, vuelve a ejecutar las veces que haga falta hasta que no produzca ninguna salida.  En casos extremos en que el mensaje sea que no se puede reparar la BDD, tendremos que reiniciarla:</p>
<blockquote>
<h5><font color="#808000">cd /var/lib/rpm</font></h5>
<h5><font color="#808000">rm -rf ??db.00*</font></h5>
<h5><font color="#808000">rpm &#8211;rebuilddb</font></h5>
</blockquote>
<p align="justify">Una  vez que tengamos limpia y coherente nuestra BDD de RPMs, deberemos descargarnos la lista de repositorios de paquetes a los que posteriormente accederemos para actualizarnos. Primero eliminaremos todos los posibles repositorios (seguramente tendremos el DVD de instalación) que podamos tener:</p>
<blockquote>
<h5><font color="#808000">urpmi.removemedia -a</font></h5>
</blockquote>
<p align="justify">Después, accedemos a la web <a href="http://easyurpmi.zarb.org/index.php" target="_blank">EasyURPMI</a> para obtener las direcciones de los repositorios adecuados a nuestra instalación y arquitectura. Son tres pasos, en el tercero obtendremos una lista de comandos que deberemos copiar y ejecutar en la consola para añadir los repositorios a nuestra lista (os recomiendo seleccionar la opción de índices comprimidos, así las descargas serán de unos cientos de K&#8217;s en lugar de unas decenas de M&#8217;s).</p>
<p align="justify">Una vez tengamos los repositorios descargados, deberemos proceder a la actualización de nuestro sistema. En adelante, y una vez hecho todo lo anterior, sólo deberemos lanzar este comando periódicamente si queremos mantener nuestro sistema actualizado:</p>
<blockquote>
<h5><font color="#808000">urpmi &#8211;auto-select &#8211;force &#8211;auto</font></h5>
</blockquote>
<p align="justify">Podemos añadir algunas opciones más, como por ejemplo &#8211;no-install (para evitar la instalación, sólo se harán las descargas) o &#8211;keep (para mantener las versiones actualmente instaladas siempre que sea posible y no vaya en contra de las dependencias).</p>
<p align="justify">Espero que os sea de utilidad.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belinux.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belinux.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=22&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2007/07/30/actualizacion-automatica-de-repositorios-rpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>
	</item>
		<item>
		<title>Breve manual de comandos básicos de consola</title>
		<link>http://belinux.wordpress.com/2007/07/18/breve-manual-de-comandos-basicos-de-consola/</link>
		<comments>http://belinux.wordpress.com/2007/07/18/breve-manual-de-comandos-basicos-de-consola/#comments</comments>
		<pubDate>Wed, 18 Jul 2007 19:24:57 +0000</pubDate>
		<dc:creator>makj</dc:creator>
				<category><![CDATA[Consola Linux]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://belinux.wordpress.com/2007/07/18/breve-manual-de-comandos-basicos-de-consola/</guid>
		<description><![CDATA[Existen una enorme cantidad de comandos de consola en el mundo *NIX, esto proporciona a éste entorno una potencia y flexibilidad increíbles pudiendo hacer absolutamente de todo y teniendo control absoluto sobre los procesos que lanzamos en nuestro sistema y sobre los ficheros que manejamos, así como sobre su contenido. Pero esta flexibilidad no es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=21&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Existen una enorme cantidad de comandos de consola en el mundo *NIX, esto proporciona a éste entorno una potencia y flexibilidad increíbles pudiendo hacer absolutamente de todo y teniendo control absoluto sobre los procesos que lanzamos en nuestro sistema y sobre los ficheros que manejamos, así como sobre su contenido. Pero esta flexibilidad no es fácil de asimilar ni de controlar, y de hecho uno de los primeros problemas que se encuentra con el novato en el mundo Llinux suele ser un entorno hostil y extraño en el que debe dejar a un lado el ratón y tener en la memoria los comandos, ya que no hay iconos ni ayudas visuales, sólo una línea de comandos que espera pacientemente que se le diga qué debe hacer.</p>
<p align="justify">Se echa en falta en esos momentos un manual sencillo, no-completo (ya que una lista completa de todos los comandos GNU y de la shell que usemos es tan extensa que no sabríamos por donde empezar), y sobre todo centrada en lo esencial para poder empezar a movernos.</p>
<p align="justify">En <a href="http://belinux.wordpress.com/comandos-basicos-de-consola/">ésta página</a> voy a intentar formar una lista de comandos que puedan servir a cualquiera para empezar a moverse por la consola, evidentemente hay muchísimos más y seguramente me dejo alguno que alguien pueda pensar que es esencial. Pero creo que con éste listado se pueden realizar todas las funciones básicas del sistema, y aprender el resto sobre la marcha usando los manuales y la ayuda del sistema será sólo cuestión de tiempo y práctica, cosa que por otra parte resulta vital para moverse en éste entorno en el que debemos tener siempre buena memoria para recordar comandos, ubicaciones de ficheros, &#8230;</p>
<p align="justify">Se admiten todo tipo de correcciones y/o añadidos, que en todo caso podrían ir a parar a un listado de comandos avanzados. Espero que ésto pueda ser de utilidad a alguien.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belinux.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belinux.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belinux.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belinux.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belinux.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belinux.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belinux.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belinux.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belinux.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belinux.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belinux.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belinux.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belinux.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belinux.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belinux.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belinux.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belinux.wordpress.com&amp;blog=857121&amp;post=21&amp;subd=belinux&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belinux.wordpress.com/2007/07/18/breve-manual-de-comandos-basicos-de-consola/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/835677ebae322dfcb383ac2b840668f2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">makj</media:title>
		</media:content>
	</item>
	</channel>
</rss>
