<?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/"
	>

<channel>
	<title>tail -f &#124; sysadmin &#187; Sistemas operativos</title>
	<atom:link href="http://www.tail-f.com.ar/category/sistemas-operativos/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tail-f.com.ar</link>
	<description>Noticias y recursos para sysadmins Unix</description>
	<lastBuildDate>Mon, 28 Nov 2011 21:44:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Resolver problema con la resolución de un monitor ViewSonic con nVidia en Linux</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/resolver-problema-con-la-resolucion-de-un-monitor-viewsonic-con-nvidia-en-linux.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/resolver-problema-con-la-resolucion-de-un-monitor-viewsonic-con-nvidia-en-linux.html#comments</comments>
		<pubDate>Mon, 28 Nov 2011 21:26:01 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Placa de video]]></category>
		<category><![CDATA[EDID]]></category>
		<category><![CDATA[HorizSync]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[nVidia]]></category>
		<category><![CDATA[VertRefresh]]></category>
		<category><![CDATA[ViewSonic]]></category>
		<category><![CDATA[Xorg]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=464</guid>
		<description><![CDATA[Resumen Un monitor ViewSonic VG2021wm y una placa de video nVidia GeForce 6500 dejan de entenderse espontáneamente en Linux Mint y el Xorg pasa a funcionar sólo en modo 640&#215;480. ¿La solución? Deshabilitar el uso de EDID y configurar manualmente los datos del monitor en el xorg.conf. Desarrollo Ayer me sucedió algo muy raro. Hace [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_472" class="wp-caption alignright" style="width: 210px"><a href="http://www.tail-f.com.ar/wp-content/uploads/xorg.jpg"><img class="size-full wp-image-472" title="X.Org" src="http://www.tail-f.com.ar/wp-content/uploads/xorg.jpg" alt="X.Org" width="200" height="131" /></a><p class="wp-caption-text">X.Org</p></div>
<p><strong>Resumen</strong></p>
<p>Un monitor ViewSonic VG2021wm y una placa de video nVidia GeForce 6500 dejan de entenderse espontáneamente en Linux Mint y el Xorg pasa a funcionar sólo en modo 640&#215;480. ¿La solución? Deshabilitar el uso de EDID y configurar manualmente los datos del monitor en el xorg.conf.</p>
<p><strong>Desarrollo</strong></p>
<p>Ayer me sucedió algo muy raro. Hace varios meses vengo usando <a href="http://www.linuxmint.com/">Linux Mint</a> sin mayores inconvenientes en mi máqunia. Cuando ayer fui a encender la máquina (sin que mediara ningún cambio extraño, ningún update de los drivers de la placa de video ni ninguna instalación de software), el X iniciaba sesión solamente en resolución 640&#215;480. Teniendo un monitor de 20&#8243;, cuya resolución óptima es de 1680&#215;1050, se darán cuenta que la imagen era espantosa: no entraba nada en la pantalla.</p>
<p>Después de varias horas sin entender bien cuál era el problema, postear en el foro de Linux Mint sin respuesta, y buscar en Internet, me puse a revisar los logs del X y encontré que mencionaba errores para leer el EDID. Por ejemplo:</p>
<pre>Unable to get display device CRT-0's EDID; cannot compute DPI</pre>
<p>¿Qué es el EDID? <a href="http://en.wikipedia.org/wiki/Extended_display_identification_data">Extended display identification data</a>, es una estructura de datos que ofrecen los dispositivos de visualización (ej.: los monitores) y que permiten, por ejemplo, a una placa de video conocer sus cualidades. De esta manera, la operatoria normal habría sido que mi placa de video obtuviera los datos del monitor de su EDID y conforme a ello me diera las opciones adecuadas para configurar mi pantalla. Más concretamente, el Xorg lo que hace es obtener a través de la placa de video, entre otros datos, la frecuencia horizontal (HorizSync) y la tasa de refresco vertical (VertRefresh) (para más información sobre qué es cada una de estas variables, pueden consultar <a href="http://en.tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/basic.html">esta página</a>).</p>
<p>La cuestión es que de buenas a primeras, el Xorg dejó de poder leer el EDID de mi monitor y por eso levantaba con los datos default para un monitor CRT (por cierto, entre las cosas que aprendí ayer, el driver de nVidia le pone de nombre &#8220;CRT&#8221; a cualquier dispositivo que se conecte al puerto VGA, no tiene nada que ver con lo que efectivamente esté conectado). Eso quiere decir que tomaba un HorizSync y un VertRefresh que solamente eran compatibles con una resolución de 640&#215;480@50 Hz.</p>
<p>¿Por qué pasa esto? La verdad, no lo sé a ciencia cierta. Encontré a <a href="http://ubuntuforums.org/archive/index.php/t-1213003.html">este usuario</a> que le pasó lo mismo, y levantando de un Live CD se dio cuenta que no era un problema de configuración, entonces lo resolvió cambiando su cable DVI por un cable VGA con un adaptador. Yo comprobé lo mismo, el problema no estaba en la configuración de mi Xorg, pero como yo sólo tenía cable VGA, probé cambiandolo por otro cable VGA, pero no hizo diferencia. Entonces seguí buscando y llegué a <a href="http://ubuntuforums.org/archive/index.php/t-1470168.html">este otro post</a> donde alguien lo resolvió sencillamente cambiando los HorizSync y VertRefresh en el xorg.conf.</p>
<p>Me bajé el manual de mi monitor (ViewSonic VG2021wm) y busqué los datos correspondientes (HorizSync y VertRefresh), y los puse en el xorg.conf. Este tipo de configuración manual del Xorg es lo que viene a evitar el EDID. El tema es que al reinicar el X, el Xorg seguía intentando leer el EDID y como no podía, seguía dando el mismo problema.</p>
<p>Finalmente, y casi por casualidad, me di cuenta que el nvidia-xconfig tenía unos parámetros para que configurara el xorg.conf indicándole al Xorg ignorar el EDID. Entonces ejecuté el siguiente comando:</p>
<pre>sudo nvidia-xconfig --no-use-edid --no-use-edid-dpi --no-use-edid-freqs --mode=1680x1050</pre>
<p>Y con eso me quedó generado el siguiente xorg.conf</p>
<pre># nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 280.13  (pbuilder@cake)  Mon Aug  8 15:37:15 UTC 2011

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"

    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "LCD-1"
    <strong>HorizSync 24.0 - 82.0</strong>
    <strong>VertRefresh 50.0 - 85.0</strong>
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    <strong>Option "UseEdidFreqs" "False"</strong>
    <strong>Option "UseEdid" "False"</strong>
    <strong>Option "UseEdidDpi" "False"</strong>
    SubSection     "Display"
        Depth       24
        Modes      "1680x1050" "1680x1050_60.00"
    EndSubSection
EndSection</pre>
<p>Si ven los parámetros resaltados, en la sección Monitor defino el HorizSync y el VertRefresh. Y luego en la sección Screen, los parámetros que evitan que se use el EDID (anteriormente existía una opción IgnoreEDID que fue deprecada, ver los comentarios de <a href="http://baudizm.blogsome.com/2005/09/27/ignoring-edid-to-impose-higher-resolution/">este artículo</a>).</p>
<p>Una vez modificado el xorg.conf solamente tuve que reiniciar el X y volvió a la normalidad. Después tuve que pelearme un rato con GDM para volver a configurar la resolución adecuada (1680&#215;1050@60 Hz) utilizando nvidia-settings. Pero esto puede tener que ver con todas las vueltas que dí antes de encontrar la solución.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/resolver-problema-con-la-resolucion-de-un-monitor-viewsonic-con-nvidia-en-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enrutamiento Avanzado y Control de Tráfico en Linux</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/enrutamiento-avanzado-y-control-de-trafico-en-linux.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/enrutamiento-avanzado-y-control-de-trafico-en-linux.html#comments</comments>
		<pubDate>Sun, 07 Mar 2010 22:42:14 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Control de Tráfico]]></category>
		<category><![CDATA[Enrutamiento]]></category>
		<category><![CDATA[Libros]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=339</guid>
		<description><![CDATA[Leyendo El CóDiGo K me entero sobre la existencia de este manual de Enrutamiento Avanzado y Control de Tráfico en Linux. Anoche lo bajé y lo estuve hojeando un poco. La verdad que es muy interesante y vale realmente la pena. Dejo la explicación de Daniel que me pareció muy clara. Uno de los documentos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tail-f.com.ar/wp-content/uploads/networking.jpg"><img class="alignright size-full wp-image-340" title="networking" src="http://www.tail-f.com.ar/wp-content/uploads/networking.jpg" alt="" width="278" height="270" /></a>Leyendo <a href="http://www.elcodigok.com.ar/2010/03/enrutamiento-avanzado-y-control-de-trafico-en-linux/">El CóDiGo K</a> me entero sobre la existencia de este manual de Enrutamiento Avanzado y Control de Tráfico en Linux. Anoche lo bajé y lo estuve hojeando un poco. La verdad que es muy interesante y vale realmente la pena. Dejo la explicación de Daniel que me pareció muy clara.</p>
<p>Uno de los documentos más completos y más leídos por los Administradores de Redes cuando se habla de Calidad de Servicio (<em>QoS</em>) en los sistemas conectados.</p>
<p>Este interesante documento pretende descubrir a fondo herramientas que perteneces a la poderosa infraestructura <strong>iproute2</strong>, sustituyendo antiguos comandos tales como <strong>route</strong> e <strong>ifconfig</strong>.</p>
<p>Actualmente el documento “Enrutamiento Avanzado y Control de Tráfico en Linux” se encuentra en 8 idiomas totalmente traducidos, con diversos ejemplos para dominar por completo la administración de recursos de los sistemas.</p>
<p><strong>Enlaces</strong></p>
<ul>
<li>Sitio web de <a href="http://lartc.org/">Linux Advanced Routing &amp; Traffic Control (LARTC)</a></li>
<li><a href="http://lartc.org/lartc.pdf">Última versión del libro en inglés (PDF)</a></li>
<li><a href="http://www.gulic.org/comos/LARTC">Versión en español (PDF)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/enrutamiento-avanzado-y-control-de-trafico-en-linux.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu Netbook Remix en Eee PC 1101ha</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/ubuntu-netbook-remix-en-eee-pc-1101ha.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/ubuntu-netbook-remix-en-eee-pc-1101ha.html#comments</comments>
		<pubDate>Mon, 07 Dec 2009 02:17:11 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Eee PC]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Ubuntu Netbook Remix]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=283</guid>
		<description><![CDATA[Lo logré!!! Con esta sensación de satisfacción por lograr lo anhelado, me dispongo a escribir este pequeño post. Después varios meses dandole vueltas al tema (soy muy indeciso), buscando alternativas, precios, ahorrando, etc. me compré una netbook. Como habrán adivinado por el título, es una Eee PC 1101ha con procesador Intel Atom z520, 2 GB [...]]]></description>
			<content:encoded><![CDATA[<p>Lo logré!!!</p>
<p>Con esta sensación de satisfacción por lograr lo anhelado, me dispongo a escribir este pequeño post.<img class="alignright size-medium wp-image-284" title="1101-screen" src="http://www.tail-f.com.ar/wp-content/uploads/1101-screen-300x172.jpg" alt="1101-screen" width="300" height="172" /></p>
<p>Después varios meses dandole vueltas al tema (soy muy indeciso), buscando alternativas, precios, ahorrando, etc. me compré una netbook. Como habrán adivinado por el título, es una <a href="http://eeepc.asus.com/global/product1101ha.html">Eee PC 1101ha</a> con procesador Intel Atom z520, 2 GB de RAM, disco de 160 GB, webcam de 1.3 MPx, y pantalla de 11.6&#8221;. El temita es que venía con Win XP y eso de entrada me parecía un pecado. Luego de jugar un poquito (inicialmente tenía la idea de aprovechar para terminar de desarrollar una pequeña aplicacioncita que estaba haciendo en Python para Windows, pero luego desistí), me decidí a instalarle Linux.</p>
<p>Sin averiguar demasiado me mandé a instalar distros para netbooks, probé varias más de una vez: Ubuntu Netbook Remix, Eeebuntu, EasyPeasy (ex Ubuntu-eee). Fue un proceso tortuoso en el cual aprendí algunas cositas de lo que estaba haciendo, pero no lograba darme cuenta de por qué me andaba TAN LENTO!. No podía creer que Win XP anduviera más rápido! Después de estar un rato largo (más de un día) me fui dando cuenta que el problema no era que el procesador o la RAM no dieran (me llamaba la atención todo lo que cy)onsumía el netbook-launcher en UNR y EasyPeasy), sino en la placa de video, porque no tenía los drivers correspondientes. Luego de dar muchas vueltas por internet encontré dos posts en dos blogs que me ayudaron a sacarla andando:</p>
<p><a href="http://www.jfwhome.com/2009/08/06/perfect-ubuntu-jaunty-on-the-asus-eeepc-1005ha-and-1008ha/">Perfect Ubuntu Jaunty on the Asus eeePC 1005HA (and 1008HA)</a></p>
<p><a href="http://otroblogmas.com/configurar-en-ubuntu-9-10-la-tarjeta-grafica-intel-gma500-y-compiz/">Configurar en Ubuntu 9.10 la tarjeta gráfica Intel GMA500 y Compiz</a></p>
<p>Con esos dos posts logré sacarla andando, haciendo algunas modificaciones menores. Así que pongo el procedimiento que hice para instalar Ubuntu Netbook Remix, con el Desktop tradicional de Ubuntu (no el netbook-laucher) y los drivers para la placa Intel GMA 500.</p>
<p><strong>Instalar Ubuntu</strong></p>
<p>Lo primero fue <a href="http://www.ubuntu.com/GetUbuntu/download-netbook">descargar Ubuntu Netbook Remix</a> y <a href="https://help.ubuntu.com/community/Installation/FromImgFiles">crear el USB para bootear</a>. Luego F2 para entrar al BIOS de la Eee, configurar para que levante del USB, y ahí mismo levantó la interfaz de instalación de Ubuntu que todos conocemos. No me voy a extender sobre ésto porque hay miles de guías en internet al respecto, además de que la instalación es bastante intuitiva.</p>
<p>El particionamiento del disco elegí hacerlo manualmente, y tomé el recaudo que señalaba el primer artículo citado de dejar una pequeña partición sin formatear de 16 MB para poder configurar el boot booster.</p>
<p>Afortunadamente, la última versión de UNR me levantó sin problemas la placa de red inalámbrica (la ethernet no la probé en realidad), así que no me tuve que preocupar por eso.</p>
<p><strong>Quitar la interfaz para netbooks</strong></p>
<p>El siguiente paso fue quitar la interfaz para netbooks, que consumía bastante. Ahí lo que me enteré fue que a partir de Karmic, el Desktop Switcher ya no viene más en Ubuntu Netbook Remix. Por lo tanto, lo que tuve que hacer fue deshabilitar el Netbook Launcher y Maximus Window Management en System -&gt; Preferences -&gt; Startup Applications (y de paso aproveché para deshabilitar otras que no necesitaba). Con ello, cuando reinicié, acomodé los paneles para que quedaran como en Ubuntu y listo.</p>
<p><strong>Instalar EeePC Tray</strong></p>
<p><strong><br />
</strong></p>
<p>Luego, siguiendo la guía, instalé eeepc-tray. Para ello agregué los repositorios de statux.org siguiendo <a href="http://www.statux.org/content?page=repo">esta guía</a>. Luego ejecuté:</p>
<pre># sudo apt-get update
# sudo apt-get install eeepc-tray</pre>
<p>En la guía original decía que había que instalar eeepc-laptop-dkms. El tema es que cuando lo intenté, pinchaba al intentar compilar contra el kernel de Karmic. Luego de googlear un poco me enteré de que no era necesario instalar ese paquete en Karmic.</p>
<p><strong>Habilitar boot booster</strong></p>
<p>Por último, el último item de la guía que ejecuté fue el de formatear la unidad de 16 MB que había dejado libre al particionar.</p>
<pre>sudo sfdisk --change-id /dev/sda 3 ef</pre>
<p>Donde 3 es el número de la partición correspondiente (en este caso, /dev/sda3). Con eso al entrar el BIOS se puede habilitar el boot booster.</p>
<p><strong>Configurar placa de video</strong></p>
<p>Para configurar la placa de video seguí íntegramente la guía de <a href="http://otroblogmas.com/configurar-en-ubuntu-9-10-la-tarjeta-grafica-intel-gma500-y-compiz/">Otro Blog Más</a>. Con ella pude instalar poulsbo como driver para la placa de video Intel GMA500. Una vez seguidos esos pasos, al reiniciar no lo podía creer. Una imagen increíble y los efectos 3d andando aceptablemente bien. Ahora tengo compiz andando, con los efectos que más me gustan.</p>
<p><strong>Pimp my Ubuntu</strong></p>
<p>Finalmente, si quieren configurar algunas cositas que quizás falten, la <a href="http://ubuntulife.wordpress.com/2009/11/06/cosas-a-hacer-despues-de-instalar-ubuntu-9-10-kamic-koala/">guía de Ubuntu Life sobre cosas para hacer luego de instalar Ubuntu 9.10</a> es genial.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 716px; width: 1px; height: 1px;">
<pre class="bash" style="font-family: monospace;">poulsbo</pre>
</div>
<p><strong>Editado: 07/12/2009</strong></p>
<p>Esta mañana cometí el error de aceptar sin mirar las actualizaciones automáticas de Ubuntu. 108 MB de actualizaciones de todo el SO, incluyendo kernel, xorg y otras cosas heavies. Cuando se reinició, los drivers PSB no funcionaban más. Luego de dar vueltas por internet encontré la solución:</p>
<pre>
# sudo apt-get remove psb-kernel-source
# sudo dpkg -i psb-kernel-source_4.41.2-0ubuntu1~910um1_all.deb
</pre>
<p>Importante: el archivo .deb es el mismo que había bajado ayer de <a href="http://otroblogmas.com/configurar-en-ubuntu-9-10-la-tarjeta-grafica-intel-gma500-y-compiz/">Otro Blog Más</a>. </p>
<p>A partir de ahora voy a ser más cuidadoso antes de aceptar las actualizaciones automáticas de Ubuntu ^^.</p>
<p><strong>Editado 11/12/2009:</strong> Corregí el link de Ubuntu Life que estaba mal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/ubuntu-netbook-remix-en-eee-pc-1101ha.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Un poco más de swap&#8230;</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/un-poco-mas-de-swap.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/un-poco-mas-de-swap.html#comments</comments>
		<pubDate>Fri, 27 Mar 2009 13:39:52 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[mkswap]]></category>
		<category><![CDATA[swap]]></category>
		<category><![CDATA[swapboost]]></category>
		<category><![CDATA[swapon]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=260</guid>
		<description><![CDATA[Antes que nada debo pedirles disculpas por la poca regularidad de mis posts últimamente. Luego de rendir el examen más largo de mi carrera, que me tomó todo el verano preparar, me quedaron muchas tareas pendientes y estoy tratando de ponerme al día. Espero que sepan disculpar. Hoy les traigo algunos tips para darle un [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-262" title="exhausted4" src="http://www.tail-f.com.ar/wp-content/uploads/exhausted4-300x199.jpg" alt="exhausted4" width="300" height="199" />Antes que nada debo pedirles disculpas por la poca regularidad de mis posts últimamente. Luego de rendir el examen más largo de mi carrera, que me tomó todo el verano preparar, me quedaron muchas tareas pendientes y estoy tratando de ponerme al día. Espero que sepan disculpar.</p>
<p>Hoy les traigo algunos tips para darle un &#8220;respiro&#8221; a nuestras máquinas cuando tienen un consumo excesivo de RAM, aumentando un poco la <a href="http://es.wikipedia.org/wiki/Paginaci%C3%B3n_de_memoria">swap</a> de Linux. Esto no va a solucionar todos nuestros problemas (la swap es en definitiva memoria en el disco, cuya lectura es mucho más lenta que la RAM), pero puede darnos una pequeña ayudita para superar un momento de mucho uso.</p>
<p>Concretamente vamos a ver dos casos: crear y montar un archivo swap, y hacer lo propio con un pendrive usando swapboost.</p>
<p><strong>Crear un archivo swap</strong></p>
<p>Comenzaremos por este ejemplo que es el más sencillo y el más explicativo. Lo primero que debemos hacer es crear un archivo del tamaño que vamos a reservar para la swap con <a href="http://linux.die.net/man/1/dd">dd</a>. Por ejemplo, para crear uno de 512 MB haremos:</p>
<pre>dd if=/dev/zero of=/tmp/swapfile bs=1M count=512</pre>
<p>Luego debemos crear un swapfile vacío con <a href="http://linux.die.net/man/8/mkswap">mkswap</a>.</p>
<pre>mkswap /tmp/swapfile</pre>
<p>Por último montamos el archivo con <a href="http://linux.die.net/man/2/swapon">swapon</a>.</p>
<pre>swapon /tmp/swapfile</pre>
<p>Ahora podemos ver el archivo montado:</p>
<pre>swapon -s
Filename                                Type            Size    Used    Priority
/dev/sdb6                               partition       497972  84032   -1
/tmp/swapfile                           file            524280  0       -2</pre>
<p>Vemos en la última línea el archivo con 512 MB de swap y una prioridad secundaria respecto a nuestra partición swap.</p>
<p><strong>Swapboost: crear swap en un flashdrive USB</strong></p>
<p><a href="http://ubuntu-tutorials.com/2007/07/02/swapboost-v01alpha-early-testers-wanted/">Swapboost</a> es un sencillo script en BASH que nos permite montar el espacio disponible de un dispositivo de almacenamiento USB como swap en forma sencilla. El procedimiento es sencillo.</p>
<p>Descargamos el script y le damos permisos de ejecución.</p>
<pre>wget http://zelut.org/projects/misc/swapboost.sh
chmod +x swapboost.sh</pre>
<p>Insertamos el pendrive y lo montamos (esto puede hacerse con mount o si estamos en un entorno gráfico como gnome o KDE, permitiéndo que éstos lo monten automáticamente), y ejecutamos:</p>
<pre>./swapboost.sh -n</pre>
<p>para crear una nueva swap en el espacio libre del USB. Ahora podemos revisar su uso con:</p>
<pre>swapon -s</pre>
<p>Por último, para borrar la swap creada y desmontar el USB ponemos:</p>
<pre>./swapboost.sh -d</pre>
<p>Más información en <a href="http://ubuntu-tutorials.com/2007/07/02/swapboost-v01alpha-early-testers-wanted/">Ubuntu Tutorials [en inglés]</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/un-poco-mas-de-swap.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PAE (Physical Address Extension) en Linux</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/pae-physical-address-extension-en-linux.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/pae-physical-address-extension-en-linux.html#comments</comments>
		<pubDate>Fri, 30 Jan 2009 12:49:40 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[32 bits]]></category>
		<category><![CDATA[64 bits]]></category>
		<category><![CDATA[PAE]]></category>
		<category><![CDATA[RAM]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=215</guid>
		<description><![CDATA[Como sucede a menudo, una situación inesperada me hizo toparme con algo nuevo para aprender, que creo bueno compartir. Hace algún tiempo vendimos un servidor dedicado con un CPU Xeon X3210 (quad-core), para el cual solicitamos una instalación estándar de CentOS 5 con Directadmin. Ayer necesitamos agregarle un poco más de RAM (llegando a 4GB) [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_162" class="wp-caption alignright" style="width: 160px"><a href="http://www.tail-f.com.ar/wp-content/uploads/big-tux.png"><img class="size-thumbnail wp-image-162" title="big-tux" src="http://www.tail-f.com.ar/wp-content/uploads/big-tux-150x150.png" alt="GNU/Linux" width="150" height="150" /></a><p class="wp-caption-text">GNU/Linux</p></div>
<p>Como sucede a menudo, una situación inesperada me hizo toparme con algo nuevo para aprender, que creo bueno compartir. Hace algún tiempo vendimos un servidor dedicado con un CPU Xeon X3210 (quad-core), para el cual solicitamos una instalación estándar de CentOS 5 con Directadmin. Ayer necesitamos agregarle un poco más de RAM (llegando a 4GB) y nos enteramos que el sistema operativo instalado era de 32 bits.</p>
<p>Personalmente creo que a esta altura ya no se justifica instalar un SO de 32 bits sobre un servidor con arquitectura de 64 bits porque implica un desperdicio de los recursos del sistema y porque la mayoría de las aplicaciones que uno puede llegar a utilizar en máquinas con esta función, trabajan correctamente sobre 64 bits. Es más discutible para una máquina de escritorio, pero últimamente incluso en este caso ya no es tan relevante (sobre todo desde los lanzamientos de Wine o el plugin de Flash para 64 bits en Linux). De hecho yo hace unos dos años que utilizo Linux de 64 bits en mi máquina de escritorio y siempre pude sobrellevar los problemas que ello implicó. Al respecto es interesante <a href="http://forums.amd.com/devblog/blogpost.cfm?threadid=93648&amp;catid=317">este artículo de AMD</a>.</p>
<p>Por si no llegaron a la conclusión, el problema en este caso de tener un sistema operativo de 32 bits es que no permite la asignación de más de 4 GB de memoria física. De hecho, en la práctica el límite suele ser inferior (alrededor de 3.5 GB) por la memoria que de por sí necesita el sistema operativo para algunos dispositivos (<a href="http://www.codinghorror.com/blog/archives/000811.html">acá hay un interesante artículo de Coding Horror sobre este tema en Windows</a>).</p>
<p>Pero existe una solución que se llama PAE: <a href="http://en.wikipedia.org/wiki/Physical_Address_Extension">Physical Address Extension</a> (<a href="http://es.wikipedia.org/wiki/Extensi%C3%B3n_de_direcci%C3%B3n_f%C3%ADsica">Extensión de dirección física</a>). Se trata de una funcionalidad incluida en los procesadores x86 y x86-64 que permite asignar más de 4 GB de memoria física (hasta 64 GB). El tema es que para hacer uso de esta funcionalidad es necesario que el kernel de nuestro sistema operativo sepa cómo hacerlo. En Windows esto se llama <a href="http://en.wikipedia.org/wiki/Address_Windowing_Extensions">AWE</a> y por supuesto Linux tiene el correspondiente soporte si se lo compila con el flag adecuado.</p>
<p>En el caso de mi problema, como no podía reinstalar el servidor porque hubiera sido riesgoso (está en Estados Unidos y ni sé quién lo hubiera hecho) y perdería bastante tiempo de uptime, esta funcionalidad me resultó indispensable para poder hacer uso de los recursos del servidor. La opción más linda para los que nos gusta experimentar hubiera sido recompilar el kernel por mi mismo, pero las circunstancias para ello no eran las mejores, así que siendo CentOS tuve que recurrir a la basura de yum. Y el procedimiento es tan sencillo como:</p>
<pre># yum install kernel-PAE</pre>
<p><strong>Importante:</strong> La instrucción la vi en <a href="http://www.cyberciti.biz/tips/redhat-enterprise-linux-4gb-plus-ram-support.html">este post</a>, pero no mencionaba un detalle. Lógicamente este procedimiento descarga e instala un nuevo kernel (con el flag activado). Pero, al menos en mi caso, no hizo el cambio adecuado en el GRUB. Por lo cual edité el archivo /etc/grub.conf:</p>
<pre># grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.1.22.el5PAE)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.22.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-92.1.22.el5PAE.img
title CentOS (2.6.18-92.1.13.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.13.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-92.1.13.el5.img
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-92.el5.img</pre>
<p>Donde tuve que cambiar la línea que dice &#8220;default=1&#8243; por &#8220;default=0&#8243;, para que inicie con el kernel que tiene el soporte para PAE activado. Luego corremos &#8220;grub&#8221; de nuevo y reiniciamos.</p>
<pre># grub
# reboot</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/pae-physical-address-extension-en-linux.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Novedades en el Kernel Linux 2.6.29</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/novedades-en-el-kernel-linux-2629.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/novedades-en-el-kernel-linux-2629.html#comments</comments>
		<pubDate>Tue, 13 Jan 2009 20:38:53 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kernel 2.6.29]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=201</guid>
		<description><![CDATA[La publicación de la versión 2.6.29-rc1 del kernel el pasado sábado marca el fin de la etapa de incorporación de cambios en el núcleo de GNU/Linux, y como indican en Heise a partir de ahora simplemente queda esperar la revisión de esos cambios y la corrección de errores para la publicación final de uno de [...]]]></description>
			<content:encoded><![CDATA[<div class="entry">
<div id="attachment_162" class="wp-caption alignright" style="width: 267px"><a href="http://www.tail-f.com.ar/wp-content/uploads/big-tux.png"><img class="size-medium wp-image-162" title="big-tux" src="http://www.tail-f.com.ar/wp-content/uploads/big-tux-257x300.png" alt="GNU/Linux" width="257" height="300" /></a><p class="wp-caption-text">GNU/Linux</p></div>
<p>La publicación de la versión 2.6.29-rc1 del kernel el pasado sábado marca el fin de la etapa de incorporación de cambios en el núcleo de GNU/Linux, y como indican en Heise a partir de ahora simplemente queda esperar la revisión de esos cambios y la corrección de errores para la publicación final de uno de los núcleos más importantes de los últimos tiempos.</p>
<p style="text-align: left;">Si como todo parece el kernel aparece en las próximas semanas es muy probable que la hornada de distribuciones primaverales lo incluyan, de modo que Ubuntu 9.04, Fedora 11, openSUSE 11.2 y el resto de contendientes se beneficiarían de las mejoras en el kernel, de las cuales destacan cinco muy especialmente.</p>
<p style="text-align: left;">Si queréis descubrirlas, seguid leyendo…</p>
<p>Como decíamos, cinco son las grandes sorpresas que nos deparará el kernel 2.6.29, y todas ellas son importantes:</p>
<div class="entry">
<p><strong>1. Controladores WiFi</strong>: varias tarjetas de conectividad inalámbrica serán soportadas ya de serie por este nuevo núcleo de formanativa gracias a la inclusión de controladores como los rt2860 o los rt2870.</p>
<p><strong>2. Punto de acceso</strong>: gracias al uso de <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fbf189273926d83d71c4c321f1215162569506ac" target="_blank">hostapd </a>será posible convertir nuestro equipo con conectividad WiFi en un punto de acceso al que otros equipos puedan conectarse. Algo teóricamente muy interesante para, por ejemplo, compartir nuestra conexión 3G con otros equipos con conectividad inalámbrica.</p>
<p><strong>3. WiMAX</strong>: esta eterna aspirante a convertirse en la gran forma de acceder a conexiones de banda ancha sin importar nuestra localización sigue tratando de triunfar en el mercado. El Linux WiMAX Project (principalmente desarrollado por ingenieros de Intel) está ya en un estado estable y Greg Kroah-Hartman, el mantenedor del subsistema USB, <a href="http://www.heise-online.co.uk/news/Kernel-Log-What-s-new-in-2-6-29-Part-2-WiMAX--/112393" target="_blank">lo ha incluido en la rama principal de desarrollo del núcleo</a>. Eso supone el soporte para el chip WiMAX Connection 2400 que está integrado en las tarjetas WiMAX/WiFi Link 5150 y 5350, que se comienza a poder encontrar en algunos portátiles basados en la plataforma Centrino 2.</p>
<p><strong>4. Btrfs y Squashfs</strong>: los nuevos sistemas de ficheros que parecen ser el futuro de las distribuciones GNU/Linux <a href="http://www.heise-online.co.uk/news/Btrfs-and-Squashfs-merged-into-Linux-kernel--/112389" target="_blank">también tienen ya soporte</a> (al menos inicial) en el kernel 2.6.29, lo que marca un importante punto de referencia para el futuro de estas dos alternativas. Squashfs está orientado a sistemas embebidos, mientras que btrfs es, como ya hemos comentado, el sustituto natural de EXT3… con el permiso de EXT4.</p>
<p><strong>5. Controladores ATI</strong>: gracias a la publicación de la versión 6.10 del paquete xf86-video-ati-driver los usuarios de ciertos modelos de gráficas de este fabricante ya pueden disfrutar de controladores abiertos con soporte 3D (aunque no sé cuál será el rendimiento real de esos controladores). Las GPUs soportadas son la RV710 (Radeon HD 4300 y HD 4500) y la RV730 (que está integrada en las ATI Radeon HD 4600). La cosa progresa de forma prometedora para estos usuarios, sin duda.</p>
<p>Tomado de <a href="http://www.maty1206linuxeando.com/?p=2474">Linuxeando</a></p>
<p>A esto hay que agregar el cambio más importante agregado en la versión 2.6.28 que es el <a href="http://www.tail-f.com.ar/2009/01/03/sistemas-operativos/gnu-linux/kernel-2628.html">soporte para ext4</a>, que según <a href="http://www.vivalinux.com.ar/distros/ext4-en-ubuntu-9.04.html">VivaLinux</a> aparecería ya en Ubuntu 9.04 aunque no como default.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/novedades-en-el-kernel-linux-2629.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FreeBSD 7.1 ya disponible</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/freebsd/freebsd-71-ya-disponible.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/freebsd/freebsd-71-ya-disponible.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 22:52:44 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[FreeBSD 7.1]]></category>
		<category><![CDATA[releases]]></category>
		<category><![CDATA[scheduler]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=182</guid>
		<description><![CDATA[Me entero en Slashdot que ya está disponible la versión 7.1 estable de FreeBSD. De acuerdo con el anuncio oficial, entre los cambios se incluye: El planificador (scheduler) ULE es el nuevo default en los kernels GENERIC para arquitecturas amd64 e i386. Este scheduler incrementa significativamente la performance en sistemas multi-core. Se importó de OpenSolaris [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_183" class="wp-caption alignright" style="width: 188px"><a href="http://www.tail-f.com.ar/wp-content/uploads/beastie.png"><img class="size-full wp-image-183" title="beastie" src="http://www.tail-f.com.ar/wp-content/uploads/beastie.png" alt="FreeBSD" width="178" height="196" /></a><p class="wp-caption-text">FreeBSD</p></div>
<p>Me entero en <a href="http://bsd.slashdot.org/article.pl?sid=09%2F01%2F06%2F1422224&amp;from=rss">Slashdot</a> que ya está disponible la versión 7.1 estable de FreeBSD. De acuerdo con el <a href="http://www.freebsd.org/releases/7.1R/announce.html">anuncio oficial</a>, entre los cambios se incluye:</p>
<ul>
<li>El planificador (scheduler) ULE es el nuevo default en los kernels GENERIC para arquitecturas amd64 e i386. Este scheduler incrementa significativamente la performance en sistemas multi-core.</li>
<li>Se importó de OpenSolaris el soporte para usar DTrace dentro del kernel.</li>
<li>Un nuevo y significativamente mejorado cliente de NSF Lock Manager (NLM).</li>
<li>Cambios en el boot loader que permiten, entre otras cosas, bootear de dispositivos USB o de <a href="http://en.wikipedia.org/wiki/GUID_Partition_Table">dispositivos GPT</a>.</li>
<li>Se agregaron la system call cpuset(2) y el comando cpuset(1), proveyendo una API para bindear threads con CPUs para agrupar y asignar recursos de CPU.</li>
<li>Actualización de KDE a 3.5.10 y GNOME a 2.22.3.</li>
<li>Medios tamaño DVD para las arquitecturas amd64 e i386.</li>
</ul>
<p>Más información sobre bugs corregidos y nuevos features en:</p>
<ul>
<li><a href="http://www.freebsd.org/releases/7.1R/relnotes.html">http://www.FreeBSD.org/releases/7.1R/relnotes.html</a></li>
<li><a href="http://www.freebsd.org/releases/7.1R/errata.html">http://www.FreeBSD.org/releases/7.1R/errata.html</a></li>
</ul>
<p>Pido perdón por la traducción un tanto tarzanesca y si cometí algún error, por favor, hacérmelo saber.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/freebsd/freebsd-71-ya-disponible.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernel 2.6.28</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/kernel-2628.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/kernel-2628.html#comments</comments>
		<pubDate>Sat, 03 Jan 2009 14:41:05 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Ext3]]></category>
		<category><![CDATA[Ext4]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kernel 2.6.28]]></category>
		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=179</guid>
		<description><![CDATA[Una de las noticias importantes del mes pasado, que la que no le habíamos dedicado espacio en este blog aún, fue la publicación del Kernel de Linux 2.6.28 para la noche buena del 2008 (2008-12-24 23:45 UTC, que para Linus, si estaba en Helsinki, debían ser la 01:45 del 25). Lo interesante de esta nueva [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las noticias importantes del mes pasado, que la que no le habíamos dedicado espacio en este blog aún, fue la publicación del <a href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.28">Kernel de Linux 2.6.28</a> para la noche buena del 2008 (2008-12-24 23:45 UTC, que para Linus, si estaba en Helsinki, debían ser la 01:45 del 25).</p>
<div id="attachment_162" class="wp-caption alignright" style="width: 190px"><a href="http://www.tail-f.com.ar/wp-content/uploads/big-tux.png"><img class="size-medium wp-image-162" title="big-tux" src="http://www.tail-f.com.ar/wp-content/uploads/big-tux-257x300.png" alt="GNU/Linux" width="180" height="210" /></a><p class="wp-caption-text">GNU/Linux</p></div>
<p>Lo interesante de esta nueva versión es que incluye soporte para el <a href="http://kernelnewbies.org/Ext4">sistema de archivos Ext4</a>, que hasta el momento estaba marcado como en estado &#8220;experimental&#8221;. Según <a href="http://linuxhispano.net/portal/noticia/kernel-2628-ahora-soporte-ext4">Linux Hispano</a>, el paso entre Ext3 y Ext4 es más significativo que el experimentado entre Ext2 y Ext3. En aquel último pasaje, la característica fundamental que se incorporó fue el <em><a href="http://es.wikipedia.org/wiki/Journaling">journaling</a> </em>o transacciones, capaces de restaurar la información en caso de que ocurra un error durante una de ellas. Ext4, en cambio, implica una modificación importante en la estructura de datos orientada a mejorar la performance y la estabilidad del filesystem. Además, Ext3 soportaba un tamaño máximo del sistema de archivos de 16 TB (<a href="http://es.wikipedia.org/wiki/Terabyte" target="_blank">Terabytes</a>) con un tamaño máximo por archivo de 2 TB. Ext4 eleva esos límites a <strong>1 EB</strong> (<a href="http://es.wikipedia.org/wiki/Exabyte" target="_blank">Exabyte</a>) para todo el filesystem y <strong>16 TB</strong> para los archivos. También, la cantidad de subdirectorios dentro de cada uno es ahora <em>ilimitada</em> (antes era de 32.000 con Ext3).</p>
<p>Para mayor información sobre Ext4, hay otro artículo interesante en Linux Hispano: <a href="http://linuxhispano.net/portal/noticia/ext4">Ext4</a>. Y, por supuesto, su versión original en inglés en <a href="http://kernelnewbies.org/Ext4">Kernelnewbies.org</a></p>
<p>Personalmente, aunque me parecen muy interesantes estas características, aún tengo ganas de probar <a href="http://www.tail-f.com.ar/2008/12/07/sistemas-operativos/solaris/introduccion-a-zfs.html">ZFS</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/kernel-2628.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Estándar de jerarquía del sistema de archivos en Unix (FHS)</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/estandar-de-jerarquia-del-sistema-de-archivos-en-unix-fhs.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/estandar-de-jerarquia-del-sistema-de-archivos-en-unix-fhs.html#comments</comments>
		<pubDate>Thu, 01 Jan 2009 05:08:03 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[FHS]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[filesystem herarchy standard]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=157</guid>
		<description><![CDATA[Para cualquiera de nosotros que empezamos a aprender computación cuando Microsoft ya dominaba el mercado y que conocimos las maravillas de Unix de grandes, la jerarquía del sistema de archivos puede resultar bastante confusa al principio. Además, los usuarios de Linux sabemos que, por lo general, cada distribución (o por lo menos cada familia de [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_162" class="wp-caption alignright" style="width: 267px"><a href="http://www.tail-f.com.ar/wp-content/uploads/big-tux.png"><img class="size-medium wp-image-162" title="big-tux" src="http://www.tail-f.com.ar/wp-content/uploads/big-tux-257x300.png" alt="GNU/Linux" width="257" height="300" /></a><p class="wp-caption-text">GNU/Linux</p></div>
<p>Para cualquiera de nosotros que empezamos a aprender computación cuando Microsoft ya dominaba el mercado y que conocimos las maravillas de Unix de grandes, la jerarquía del sistema de archivos puede resultar bastante confusa al principio. Además, los usuarios de Linux sabemos que, por lo general, cada distribución (o por lo menos cada familia de distribuciones), mete las cosas donde más le gusta.</p>
<p>Es interesante darle una mirada al <a href="http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard">FHS (Filesystem Hierarchy Standard)</a>, un estándar desarrollado por iniciativa de Linux, el cual otros SOs Unix suelen ignorar, pero que intenta una definición de los distintos directorios principales de un filesystem. Dejo el siguiente cuadro tomado de <a href="http://es.wikipedia.org/wiki/Filesystem_Hierarchy_Standard">la versión en español del mismo artículo</a>.</p>
<table style="border: 1px solid #eeeeee; margin: 30px auto; background: #111111 none repeat scroll 0% 0%; vertical-align: top; width: 100%;" border="0">
<tbody>
<tr>
<th>Directorio</th>
<th>Descripción Simple</th>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/</strong></span></td>
<td><span style="color: #0066ff;"><em>Jerarquía primaria</em></span>, la raíz o <em>root</em>, y <a title="Directorio raíz" href="http://es.wikipedia.org/wiki/Directorio_ra%C3%ADz">directorio raíz</a> del sistema de jerarquía completo.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/bin/</strong></span></td>
<td>Comandos y programas <a title="Ejecutable" href="http://es.wikipedia.org/wiki/Ejecutable">binarios</a> esenciales necesarios para que estén disponibles para una sesión de <em>usuario único</em>, o para todos los usuarios (<a title="Multiusuario" href="http://es.wikipedia.org/wiki/Multiusuario">multiusuario</a>), por ejemplo, <a title="Cat (Unix)" href="http://es.wikipedia.org/wiki/Cat_%28Unix%29">cat</a>, <a title="Ls" href="http://es.wikipedia.org/wiki/Ls">ls</a>, <a class="mw-redirect" title="Cp (Unix)" href="http://es.wikipedia.org/wiki/Cp_%28Unix%29">cp</a>, <a class="mw-redirect" title="Rm (Unix)" href="http://es.wikipedia.org/wiki/Rm_%28Unix%29">rm</a>, <a class="new" title="Mk (Unix) (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Mk_%28Unix%29&amp;action=edit&amp;redlink=1">mk</a>, etc.).</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/boot/</strong></span></td>
<td>Archivos cargadores de <a title="Arranque" href="http://es.wikipedia.org/wiki/Arranque">arranque</a> (por ejemplo, los <a title="Núcleo (informática)" href="http://es.wikipedia.org/wiki/N%C3%BAcleo_%28inform%C3%A1tica%29">núcleos</a>, el <a title="Initrd" href="http://es.wikipedia.org/wiki/Initrd">initrd</a>). <em>A menudo en una partición separada</em>.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/dev/</strong></span></td>
<td>Contiene los <a title="Dispositivo" href="http://es.wikipedia.org/wiki/Dispositivo">Dispositivos</a> esenciales (por ejemplo, <a title="/dev/null" href="http://es.wikipedia.org/wiki//dev/null">/dev/null</a>), incluso los que no se les ha asignado (montado) un directorio. Contiene también <a title="Dispositivo" href="http://es.wikipedia.org/wiki/Dispositivo">dispositivos</a> que no sirven de almacenamiento (p.e. terminales de sonido y vídeo, micrófonos, impresoras, etc).</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/etc/</strong></span></td>
<td>Contiene archivos de configuración del sistema específicos del <em><a title="Host" href="http://es.wikipedia.org/wiki/Host">Host</a></em> de todo el sistema. El nombre proviene de <em>&#8220;etcétera&#8221;</em>).</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #0066ff;"><em>/etc/opt/</em></span></dd>
</dl>
</td>
<td>Archivos de configuración para los programas alojados dentro del directorio <code>/opt</code>.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #0066ff;"><em>/etc/X11/</em></span></dd>
</dl>
</td>
<td>Archivos de configuración para el <a title="X Window System" href="http://es.wikipedia.org/wiki/X_Window_System">X Window System</a>, versión 11.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #0066ff;"><em>/etc/sgml/</em></span></dd>
</dl>
</td>
<td>Archivos de configuración para <a title="SGML" href="http://es.wikipedia.org/wiki/SGML">SGML</a>.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #0066ff;"><em>/etc/xml/</em></span></dd>
</dl>
</td>
<td>Archivos de configuración para <a title="XML" href="http://es.wikipedia.org/wiki/XML">XML</a>.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/home/</strong></span></td>
<td>Contiene los directorios de los usuarios, <em>home</em> de los usuarios, excepto del <a class="mw-redirect" title="Superusuario" href="http://es.wikipedia.org/wiki/Superusuario">superusuario</a> administrador (root); contiene archivos guardados, ajustes personales, etc. Ofrece. <em>A menudo en una partición separada</em>.Si existe más de un usuario de un <a class="mw-redirect" title="Computador" href="http://es.wikipedia.org/wiki/Computador">computador</a>/<a class="mw-redirect" title="Ordenador" href="http://es.wikipedia.org/wiki/Ordenador">ordenador</a> o <a title="Servidor" href="http://es.wikipedia.org/wiki/Servidor">servidor</a>, por ejemplo los usuarios <em>usuario1</em> y <em>usuario2</em>, estos poseerían los directorios <code>/home/usuario1</code> y <code>/home/usuario2</code>, respectivamente.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/lib/</strong></span></td>
<td>Contiene todas las <a title="Biblioteca (programación)" href="http://es.wikipedia.org/wiki/Biblioteca_%28programaci%C3%B3n%29">bibliotecas</a> (mal traducidas como <em>librerías</em>) esenciales compartidas de los programas alojados, es decir, para los <a title="Ejecutable" href="http://es.wikipedia.org/wiki/Ejecutable">binarios</a> en <code><em>/bin/</em></code> y <code><em>/sbin/</em></code>. Contiene también las bibliotecas para el núcleo.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/media/</strong></span></td>
<td>Contiene los <em>puntos de montaje</em> de los medio removibles de almacenamiento, tales como lectores de <a title="CD-ROM" href="http://es.wikipedia.org/wiki/CD-ROM">CD-ROM</a> (aparecido en la versión 2.3 de <em>FHS</em>), <a class="mw-redirect" title="Pendrive" href="http://es.wikipedia.org/wiki/Pendrive">Pendrives</a> (<a title="Memoria USB" href="http://es.wikipedia.org/wiki/Memoria_USB">memoria USB</a>), e incluso sirve para <em>montar</em> otras particiones del mismo <a title="Disco duro" href="http://es.wikipedia.org/wiki/Disco_duro">disco duro</a>, por ejemplo alguna partición desde otro <a title="Sistema operativo" href="http://es.wikipedia.org/wiki/Sistema_operativo">sistema operativo</a>.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/mnt/</strong></span></td>
<td><a title="Sistema de archivos" href="http://es.wikipedia.org/wiki/Sistema_de_archivos">Sistema de archivos</a> <a title="Montar (informática)" href="http://es.wikipedia.org/wiki/Montar_%28inform%C3%A1tica%29">montados</a> temporalmente. Es una directorio semejante a <code>/media</code>, pero es usada mayormente por los usuarios. Sirve para <em>montar</em> <a title="Disco duro" href="http://es.wikipedia.org/wiki/Disco_duro">discos duros</a> y particiones de forma temporal en el sistema.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/opt/</strong></span></td>
<td>Contiene <a title="Paquete de software" href="http://es.wikipedia.org/wiki/Paquete_de_software">Paquetes de programas</a> opcionales de aplicaciones estáticas, es decir, que pueden ser compartidas por los usuarios. Estas aplicaciones, utilizan el directorio de usuario para guardas sus configuraciones, y de esta forma, cada usuario puede tener una configuración diferente, de la misma aplicación.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/proc/</strong></span></td>
<td>Contiene principalmente archivos de texto, <a title="Sistema de archivos" href="http://es.wikipedia.org/wiki/Sistema_de_archivos">sistema de archivos</a> virtuales que documentan al <a title="Núcleo (informática)" href="http://es.wikipedia.org/wiki/N%C3%BAcleo_%28inform%C3%A1tica%29">núcleo</a> y el estado de los <a class="mw-redirect" title="Procesos" href="http://es.wikipedia.org/wiki/Procesos">procesos</a> como <a title="Archivo de texto" href="http://es.wikipedia.org/wiki/Archivo_de_texto">archivos de texto</a> (por ejemplo, <code><em>uptime</em>, <em>network</em></code>).</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/root/</strong></span></td>
<td><a title="Directorio raíz" href="http://es.wikipedia.org/wiki/Directorio_ra%C3%ADz">Directorio raíz</a> del usuario <a title="Root" href="http://es.wikipedia.org/wiki/Root">root</a>.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/sbin/</strong></span></td>
<td>Sistema de <a title="Ejecutable" href="http://es.wikipedia.org/wiki/Ejecutable">binarios</a> esencial, comandos y programas exclusivos del <a class="mw-redirect" title="Superusuario" href="http://es.wikipedia.org/wiki/Superusuario">superusuario</a> (root), por ejemplo, <em><a title="Init" href="http://es.wikipedia.org/wiki/Init">init</a></em>, <em><a title="Route" href="http://es.wikipedia.org/wiki/Route">route</a></em>, <em><a title="Ifup" href="http://es.wikipedia.org/wiki/Ifup">ifup</a></em>).</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/srv/</strong></span></td>
<td>Lugar específico de datos, los cuales son servidos por el sistema.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/tmp/</strong></span></td>
<td>Archivos temporales (véase también <em>/var/tmp</em>).</td>
</tr>
<tr>
<td><span style="color: #009900;"><strong>/usr/</strong></span></td>
<td><span style="color: #009900;"><em>jerarquía secundaria</em></span> de los datos de usuario; contiene la mayoría de las utilidades y aplicaciones <a title="Multiusuario" href="http://es.wikipedia.org/wiki/Multiusuario">multiusuario</a>. En otras palabras, contiene los archivos compartidos de <em>solo lectura</em>. Este directorio puede incluso se compartido con otras <a title="Computadora" href="http://es.wikipedia.org/wiki/Computadora">computadoras</a>.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #009900;">/usr/bin/</span></dd>
</dl>
</td>
<td><a title="Comando" href="http://es.wikipedia.org/wiki/Comando">Comandos</a> <a title="Ejecutable" href="http://es.wikipedia.org/wiki/Ejecutable">binarios</a> no esenciales (no necesarios en el modo de <em>usuario único</em>); para todos los usuarios.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #009900;">/usr/include/</span></dd>
</dl>
</td>
<td><a class="new" title="Archivos de cabecera (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Archivos_de_cabecera&amp;action=edit&amp;redlink=1">Archivos de cabecera</a> (<a class="new" title="Header files (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Header_files&amp;action=edit&amp;redlink=1">Header files</a> o <a class="new" title="Include files (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Include_files&amp;action=edit&amp;redlink=1">Include files</a>), es decir, archivos de inclusión estándar</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #009900;">/usr/lib/</span></dd>
</dl>
</td>
<td><a title="Biblioteca (programación)" href="http://es.wikipedia.org/wiki/Biblioteca_%28programaci%C3%B3n%29">bibliotecas</a> compartidas de los <a title="Ejecutable" href="http://es.wikipedia.org/wiki/Ejecutable">binarios</a> en <code>/usr/bin/</code> y <code>/usr/sbin/</code>.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #009900;">/usr/sbin/</span></dd>
</dl>
</td>
<td>Sistema de <a class="new" title="Ejectubale (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Ejectubale&amp;action=edit&amp;redlink=1">binarios</a> no esencial (por ejemplo <a title="Demonio (informática)" href="http://es.wikipedia.org/wiki/Demonio_%28inform%C3%A1tica%29">demonios</a> para varios servicios de red.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #009900;">/usr/share/</span></dd>
</dl>
</td>
<td>Arquitectura independiende, compartida de datos. En otras palabras, contiene los datos compartidos que no dependen de la arquitectura del sistema. Esto puede incluir imágenes, sonidos, etc., para la disponibilidad en el <a title="Sistema operativo" href="http://es.wikipedia.org/wiki/Sistema_operativo">sistema</a>.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #009900;">/usr/src/</span></dd>
</dl>
</td>
<td><a title="Código fuente" href="http://es.wikipedia.org/wiki/C%C3%B3digo_fuente">Códigos fuente</a>, por ejemplo, el <a title="Código fuente" href="http://es.wikipedia.org/wiki/C%C3%B3digo_fuente">código fuente</a> (es decir, programas y bibliotecas sin <a class="mw-redirect" title="Compilación" href="http://es.wikipedia.org/wiki/Compilaci%C3%B3n">compilar</a>) del <a title="Núcleo (informática)" href="http://es.wikipedia.org/wiki/N%C3%BAcleo_%28inform%C3%A1tica%29">núcleo</a> con sus <a class="new" title="Archivos de cabecera (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Archivos_de_cabecera&amp;action=edit&amp;redlink=1">archivos de cabecera</a>, (<a class="new" title="Header files (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Header_files&amp;action=edit&amp;redlink=1">Header files</a> o <a class="new" title="Include files (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Include_files&amp;action=edit&amp;redlink=1">Include files</a>).</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #009900;">/usr/X11R6/</span></dd>
</dl>
</td>
<td>Sistema <a title="X Window System" href="http://es.wikipedia.org/wiki/X_Window_System">X Window System</a>, Versión 11, Release 6.</td>
</tr>
<tr>
<td>
<dl>
<dd><span style="color: #ff9900;">/usr/local/</span></dd>
</dl>
</td>
<td><span style="color: #ff9900;"><em>Jerarquía terciaria</em></span> para los datos locales, específicos a este <a title="Host" href="http://es.wikipedia.org/wiki/Host">host</a>. Usualmente tiene subdirectorios, por ejemplo <code>bin/</code>, <code>lib/</code>, <code>share/</code>, de datos compartidos de <em>sólo lectura</em> específicos del <a class="mw-redirect" title="Ordenador" href="http://es.wikipedia.org/wiki/Ordenador">ordenador</a> o <a title="Servidor" href="http://es.wikipedia.org/wiki/Servidor">servidor</a> que los comparte.</td>
</tr>
<tr>
<td><span style="color: #0066ff;"><strong>/var/</strong></span></td>
<td>Archivos variables, tales como <em>logs</em>, archivos <em><a title="Spooling" href="http://es.wikipedia.org/wiki/Spooling">spool</a></em>, <a class="mw-redirect" title="Bases de datos" href="http://es.wikipedia.org/wiki/Bases_de_datos">bases de datos</a>, archivos de <a class="mw-redirect" title="E-mail" href="http://es.wikipedia.org/wiki/E-mail">e-mail</a> temporales, y archivos temporales en general.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/cache/</dd>
</dl>
</td>
<td><a class="mw-redirect" title="Cache" href="http://es.wikipedia.org/wiki/Cache">Cache</a> de las aplicaciones.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/crash/</dd>
</dl>
</td>
<td>Se depositan datos e información, referentes a las caídas o errores del <a title="Sistema operativo" href="http://es.wikipedia.org/wiki/Sistema_operativo">sistema operativo</a>.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/games/</dd>
</dl>
</td>
<td>Datos variables de los juegos del sistema. Este directorio no es imprescindible.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/lock/</dd>
</dl>
</td>
<td>Archivos <em>Lock</em>. Archivos que hacen el seguimiento de los recursos que se utilizan actualmente.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/log/</dd>
</dl>
</td>
<td>Archivos de registro, <em>Log</em>. Varios registros, <em>logs</em>.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/mail/</dd>
</dl>
</td>
<td>Buzón correos o mensajes de los usuarios.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/opt/</dd>
</dl>
</td>
<td>Posee los datos variables de /opt.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/run/</dd>
</dl>
</td>
<td>Información acerca del funcionamiento del sistema desde el último <a title="Arranque" href="http://es.wikipedia.org/wiki/Arranque">arranque</a>. Por ejemplo, los usuarios actualmente registrados o logueados, que han ingresado; y los <a title="Demonio (informática)" href="http://es.wikipedia.org/wiki/Demonio_%28inform%C3%A1tica%29">demonios</a> que están corriendo.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/spool/</dd>
</dl>
</td>
<td>Bobinas o carretes (<a title="Spooling" href="http://es.wikipedia.org/wiki/Spooling">Spool</a>), de tareas a la espera de ser procesados (por ejemplo, colas de impresión y correo no leído).</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/spool/mail/</dd>
</dl>
</td>
<td>Ubicación de los correos de usuario desaprobados.</td>
</tr>
<tr>
<td>
<dl>
<dd>/var/tmp/</dd>
</dl>
</td>
<td>Archivos temporales que, a diferencia de /tmp, no se borran entre sesiones o reinicios del sistema.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/estandar-de-jerarquia-del-sistema-de-archivos-en-unix-fhs.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Instalar bind en Linux</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/instalar-bind-en-linux.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/instalar-bind-en-linux.html#comments</comments>
		<pubDate>Tue, 23 Dec 2008 14:25:50 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[dns]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[BIND]]></category>
		<category><![CDATA[Guías]]></category>
		<category><![CDATA[named]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=132</guid>
		<description><![CDATA[Siempre me parecieron un excelente recurso a publicar las guías de instalación y configuración de distintos servicios. Sobre todo porque cada uno tiene su forma particular de configurar algunas cosas, y además cada guía suele surgir con una versión en particular del software, y creo que nunca están de más. Además sirve de ayuda-memoria personal, [...]]]></description>
			<content:encoded><![CDATA[<p>Siempre me parecieron un excelente recurso a publicar las guías de instalación y configuración de distintos servicios. Sobre todo porque cada uno tiene su forma particular de configurar algunas cosas, y además cada guía suele surgir con una versión en particular del software, y creo que nunca están de más. Además sirve de ayuda-memoria personal, para tenerlo a mano para distintas instalaciones.</p>
<div id="attachment_141" class="wp-caption alignright" style="width: 310px"><a href="http://www.tail-f.com.ar/wp-content/uploads/bind.jpg"><img class="size-medium wp-image-141" title="bind" src="http://www.tail-f.com.ar/wp-content/uploads/bind-300x250.jpg" alt="BIND DNS" width="300" height="250" /></a><p class="wp-caption-text">BIND DNS</p></div>
<p>Recientemente tuve que instalar bind y, como ahora tengo un blog donde hacerlo, escribo esta pequeña guía con los pasos que seguí. La idea será ir completándola luego con configuraciones más específicas, pero por lo pronto empecemos con lo básico.</p>
<p><strong>¿Qué es un DNS?</strong></p>
<p>Antes de instalar un servicio es muy importante saber de qué se trata y cuanto más sepamos al respecto, más vamos a entender lo que estamos haciendo y cómo hacerlo mejor. Hace algunos meses publiqué en el <a href="http://www.webandbeer.com.ar/2008/10/introduccion-a-dns/">blog del Web &amp; Beer</a> un link a un artículo sobre DNS: <a href="http://blog.smaldone.com.ar/2006/12/05/como-funciona-el-dns/">¿Cómo funciona el DNS?</a> de Javier Smaldone.</p>
<p><strong>Instalación de bind</strong></p>
<p>Sin lugar a dudas bind es el servidor DNS más difundido, por ello esta guía se dedica a él. Particularmente yo trabajé sobre CentOS, pero como no quería instalarlo con yum (me encanta compilar mis servidores), lo hice directamente desde los fuentes. Partí de <a href="http://linux-sxs.org/internet_serving/bind9.html">esta guía bastante clara</a>, pero fui haciendo algunas modificaciones de acuerdo a las necesidades de la última versión de producción de bind. Adicionalmente, para darle mayor seguridad (y complicarla un poco más, porque me encanta), lo configuré para que corra en un <a href="http://es.wikipedia.org/wiki/Chroot">chroot</a>.</p>
<p>Antes de empezar, posiblemente sea necesario quitar versiones anteriores de bind que estén instaladas. Muchas distribuciones de Linux vienen con versiones de bind instaladas, pero si son tan obsesivos como yo, querrán quitarlas e instalar la propia. En CentOS podemos verificar esto con yum y con rpm.</p>
<pre># yum remove bind
# rpm -q bind
# rpm -e --nodeps bind-9.3.4-6.0.2.P1.el5_2</pre>
<p>Para empezar, lógicamente, descargamos los fuentes de la página de <a href="https://www.isc.org/downloadables/11">descargas de ISC</a>, descomprimimos, configuramos, compilamos e instalamos. Asumismos que, previamente, fueron instaladas las librerías necesarias que generalmente vienen en cualquier Linux. Entre ellas es importante destacar <a href="http://www.openssl.org/">OpenSSL</a>.</p>
<pre># cd /usr/src
# wget http://ftp.isc.org/isc/bind9/9.4.3/bind-9.4.3.tar.gz
# tar zxvf bind-9.4.3.tar.gz
# cd bind-9.4.3/
# ./configure --prefix=/usr \
                  --sysconfdir=/etc \
                  --enable-threads \
                  --localstatedir=/var/state \
                  --with-libtool \
                  --with-openssl=/usr/lib
# make &amp;&amp; make install</pre>
<p><strong>Configurar el entorno</strong></p>
<p>Si había una versión anterior de bind instalada, posiblemente todo esto ya esté hecho, pero no está de más revisarlo. Lo que haremos en este punto es crear un usuario y grupo llamados &#8220;named&#8221;, y configurar los permisos de las carpetas que vamos a utilizar. Téngase en cuenta que en este caso correremos el proceso en un chroot.</p>
<pre># groupadd named
# useradd -d /var/named -g named -G daemon -s /bin/false named
# mkdir -p /var/named/chroot/etc \
               /var/named/chroot/var/named \
               /var/named/chroot/var/run \
               /var/named/chroot/dev
# mknod /var/named/chroot/dev/null c 1 3
# mknod /var/named/chroot/dev/random c 1 8
# chmod 666 /var/named/chroot/dev/null
# chmod 666 /var/named/chroot/dev/random
# chown -R named:named /var/named
# cp /etc/localtime /var/chroot/etc/
# echo "nameserver 127.0.0.1" &gt;  /etc/resolv.conf</pre>
<p><strong>Configurar bind</strong></p>
<p>Ahora vamos a tener que definir los distintos archivos de configuración de bind. Con éstos vamos a definir el comportamiento general del servidor de DNS (en named.conf), definir las claves para utilizar <a href="http://linux.die.net/man/5/rndc.conf">rndc</a> para controlar el demonio, y por último y fundamental, definir las zonas de nuestro DNS. Hay que tener en cuenta que este DNS que configuré yo es público, es decir que va a ser consultado por clientes de redes externas para obtener las IPs de mis dominios. La <a href="http://linux-sxs.org/internet_serving/bind9.html">guía previamente citada</a>, sirve para configurar un DNS de una red local que resuelve dominios externos para clientes de la LAN.</p>
<p>Repasemos los archivos sobre los que vamos a trabajar:</p>
<ul>
<li>/var/chroot/etc/named.conf: configuración básica de bind.</li>
<li>/var/chroot/etc/rndc.conf: configuración de rndc</li>
<li>/var/chroot/etc/rndc.key: clave de rndc</li>
<li>/var/chroot/named: en este directorio guardaremos las distintas zonas de nuestro DNS.</li>
</ul>
<p>Antes que nada, debemos generar la clave para rndc. Siguiendo el ejemplo citado usaremos como clave la palabra &#8220;hush&#8221;. Para generar el hash debemos usar el comando mmencode.</p>
<pre># mmencode
hush # nuestro password
aHVz # esto es lo que devuelve mmencode
^C # salimos con Ctrl+C</pre>
<p>Esa clave es la que vamos a utilizar en nuestros archivos de configuración.<br />
En el rndc.conf ponemos:</p>
<pre>// this file is used by the rndc utility
        options {
        // what host should rndc attempt to control by default
            default-server localhost;
        // and what key should it use to communicate with named
            default-key "rndc-key";
        };

        server localhost {
        // always use this key with this host
            key "rndc-key";
        };

        key "rndc-key" {
        // how was the key encoded
            algorithm hmac-md5;
        // what's the password
            secret "aHVz";
        };

        // secret was generated by running mmencode on command line
        // and then entering a secret phrase</pre>
<p>Luego, en nuestro rndc.key ponemos:</p>
<pre>key "rndc-key" {
	algorithm	hmac-md5;
	secret		"aHVz";
};</pre>
<p>Notesé que en ambos casos estamos utilizando el hash que generamos, pero para mayor seguridad sería conveniente generar un hash más largo.</p>
<p>Editado 25/12/2008 13:12: Un detalle importante es que los archivos rndc.conf y rndc.key hay que copiarlos a /etc para que cuando nuestro script del init.d llame a rndc, éste encuentre sus archivos de configuración.</p>
<pre>
# cp /var/named/chroot/etc/rndc.* /etc/
</pre>
<p>Luego el named.conf</p>
<pre>// This is a configuration file for named (from BIND 9.0 or later).
        // It would normally be installed as /etc/named.conf.
        //
        // Changed to match secure example from LASG 5/17/00
        // Changed to match Linux Journal example 9/17/00
        // Added new "view' sections to stop fingerprinting of Bind 9.x per
        // Bugtraq 1/31/00
        // Added rndc key stuff per DNS &amp; Bind (Rev. 4) Chapter 11
        // added use-id-pool and more comments based on above chapter

             options {
            // Directory where bind should create files if
            // not explicitly stated
            directory "/var/named";

            // whom do we allow to do zone tranfers
            allow-transfer { 192.168.1.0/24; };

            // tell Bind to check the names in zone files
            // since it no longer does this by default
            // (unimplemented 9.3.0+)
            check-names master warn;

            // sets the size of something or other to 20Mb
            datasize 20M;

            // sets the size of the journal to 5Mb
            max-journal-size 5M;

            // where should Bind put a dump of its cache
            // if told to dump it
            dump-file "named_dump.db";

            // how often should bind check for new
            // interfaces toi listen on. we turn
            // this off by setting it to 0
            interface-interval 0;

            // specify what interfaces/ips to listen on
            // as the default is all of them
            listen-on { 1.2.3.4; 2.3.4.5; 127.0.0.1; };

            // define a mximum size of cached records
            // new in Bind 9.x
            max-cache-size 20M;

            // where to right stats of memory usage
            // Bind 9.x doesn't recognize this yet
            memstatistics-file "named.memstats";

            // where to put out pid file
            // absolute path since we don't want
            // it in /var/named
            pid-file "/var/run/named.pid";

            // force Bind to use port 53 for its
            // network operation to other DNS
            // servers (Bind 9 uses high ports
            // by default). Makes firewalling easier
            // query-source address * port 53;
            // transfer-source * port 53;
            // notify-source * port 53;

            // where to dump Bind server stats
            statistics-file "named.stats";

            // force Bind to be "more" random in assiging
            // message ids
            // use-id-pool yes;

            // If the chaos view below doesn't work
            // for some reason, still give out a bogus
            // answer for Bind version requests
            version "This is not the port you're looking for.";

            // keep stats on a zone basis
            zone-statistics yes;
             };

             controls {
            // this allows rndc to be used from the localhost
            // to talk to bind on the loopback interface
            // using the key defined as 'rndc-key'
            inet 127.0.0.1 allow { localhost; } keys { rndc-key; };
             };

             // the rest of the key configuration is in
             // /etc/rndc.conf and the key itself is in
             // /etc/rndc.key
             key "rndc-key" {
            // how was key encoded
            algorithm hmac-md5;
            // what is the pass-phrase for the key
            secret "aHVz" ;
             };

             logging {
            channel named_info {
                // log to syslog instead of a file
                syslog;
                // include the category of the event in the log
                print-category yes;
                // include the severity of the event in the log
                print-severity yes;
                // include the time of the event in the log
                print-time yes;
            };

            // Processing of client requests
            category client { named_info; };

            // named.conf parsing and processing
            category config { named_info; };

            // Messages relating to internal memory structures
            category database { named_info; };

            // This is the default for any category not specifically defined
            category default { named_info; };

            // The catch-all. Anything without a category of its own
            category general { named_info; };

            // Uncomment if you dont want to know about lame server.
            // Leave commented and it defaults to the
            // value of default above
            // category lame-servers { null; };

            // The NOTIFY protocol
            category notify { named_info; };

            // Network operations
            category network { named_info; };

            // DNS resolution like recursive lookups, etc..
            category resolver { named_info; };

            // Approval and denial of requests
            category security { named_info; };

            // Dynamic updates
            category update { named_info; };

            // Queries. Duh.
            category queries { named_info; };

            // Zone transfers received
            category xfer-in { named_info; };

            // Zone transfers sent
            category xfer-out { named_info; };
            };

	zone "." IN {
		type hint;
		file "named.ca";
	};

	zone "localhost" IN {
		type master;
		file "localhost.zone";
		allow-update { none; };
	};

	zone "0.0.127.in-addr.arpa" IN {
		type master;
		file "named.local";
		allow-update { none; };
	};

	include "/var/named/zones.list";</pre>
<p>Estos archivos los tomé del ejemplo original pero tuve que hacer algunas modificaciones. Una importante a notar es que comenté la parte donde se forzaba el puerto del bind. Esto es un error de seguridad importante que se descubrió hace relativamente poco y a partir del cual bind (en la versión 9) empezó a utilizar puertos aleatorios mayores al 1024 para consultar otros DNS. Esto es para contrarrestar ataques de <a href="http://www.novell.com/linux/security/advisories/2008_33_bind.html">DNS Cache Poisoning</a>.<br />
Luego cambié la línea de listen-on, para definir que escuche en todas mis interfaces de red públicas. Yo puse IPs 1.2.3.4 y 2.3.4.5, pero allí deberían ir las IPs en las que ustedes quieran que su DNS escuche.<br />
Por último, cambié la definición de vistas que no me hacía falta por una mera declaración de las zonas principales y agregué al final un include de un archivo /var/named/zones.list.<br />
En ese archivo es donde definiré la lista de archivos con las zonas para cada uno de mis dominios.</p>
<p>Por ejemplo:</p>
<pre>[root@tail-f]# cat var/named/zones.list
zone "domain.com.ar" { type master; file "/var/named/zones/domain.com.ar.db"; };</pre>
<p>Y luego, en el archivo /var/named/zones/domain.com.ar.db defino la zona en sí.</p>
<pre>[root@tail-f# cat var/named/zones/domain.com.ar.db
$TTL 14400
@       IN      SOA     ns1.domain.com.ar.      root.domain.com.ar. (
                                                2008120300
                                                14400
                                                3600
                                                1209600
                                                86400 )

domain.com.ar.        14400   IN      NS      ns1.domain.com.ar.
domain.com.ar.        14400   IN      NS      ns2.domain.com.ar.

domain.com.ar.        14400   IN      A       1.2.3.4
ftp     14400   IN      A       1.2.3.4
localhost       14400   IN      A       127.0.0.1
mail    14400   IN      A       1.2.3.4
pop     14400   IN      A       1.2.3.4
smtp    14400   IN      A       1.2.3.4
www     14400   IN      A       1.2.3.4

domain.com.ar.        14400   IN      MX      10 mail

domain.com.ar.        14400   IN      TXT     "v=spf1 a mx ip4:1.2.3.4 ?all"
domain.com.ar.        14400   IN      SPF     "v=spf1 a mx ip4:1.2.3.4 ?all"</pre>
<p>Editado 23/12/2008 13:32: Por sugerencia de Walruz incluyo el registro SPF. Como bien dice él, a partir de la versión 9.4, bind acepta la definición de registros del <a href="http://www.openspf.org/">Sender Policy Framework</a>, un estandar de IETF (<a href="http://www.zytrax.com/books/dns/apd/rfc4408.txt">RFC 4408</a>) para la verificación del remitente del email. Para mayor información, <a href="http://www.zytrax.com/books/dns/ch9/spf.html">este artículo</a> (en inglés) es bastate completo.</p>
<p><strong>Configurar el init.d</strong></p>
<p>Por último, queda instalar el script en el init.d para arrancar nuestro servicio y configurarlo de manera que corra en un chroot. Esto es muy sencillo, pero la versión que voy a dar es específica para Red Hat/CentOS. En otras distribuciones posiblemente cambie la forma de implementación.</p>
<p>Básicamente lo que vamos a necesitar es el script de init.d que levante el servicio con el siguiente comando:</p>
<pre>named -u -t /var/named/chroot/</pre>
<p>Para ello, en CentOs tendremos nuestro script del init.d y la definición de los parámetros en /etc/sysconfig/named. De esta forma:</p>
<pre>[root@tail-f]# cat /etc/sysconfig/named
# This option will run named in a chroot environment.
ROOTDIR="/var/named/chroot/"
# These additional options will be passed to named at startup.
# Don't add .t here, use ROOTDIR instead.
#OPTIONS=""</pre>
<p>Cuando nuestro script inicie el servicio, cargará las variables de /etc/sysconfig/named y verificará si definimos un directorio ROOTDIR para levantar el servicio con ese directorio como chroot.</p>
<p>Luego copiamos nuestro script al init.d y ejecutamos chkconfig.</p>
<pre># cp named /etc/init.d/
# chmod 700 /etc/init.d/named
# chkconfig --add named
# chkconfig named on</pre>
<p><strong>Descargas</strong></p>
<p>Los archivos a descargar son varios, así que hice un tar con los archivos de ejemplo que utilicé yo, incluyendo también las zonas por default para dominios locales y el named.ca que tiene las IPs de los root DNS.</p>
<p>Descargar: <a href="/files/bind.conf.tar.gz">bind.conf.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/instalar-bind-en-linux.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

