<?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>Bitácora de abordo de federico</title>
	<atom:link href="http://federicosayd.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://federicosayd.wordpress.com</link>
	<description>Documentando la vida...</description>
	<lastBuildDate>Wed, 25 Jan 2012 11:19:38 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='federicosayd.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Bitácora de abordo de federico</title>
		<link>http://federicosayd.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://federicosayd.wordpress.com/osd.xml" title="Bitácora de abordo de federico" />
	<atom:link rel='hub' href='http://federicosayd.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Trece sistemas operativos NO Unix para saber más</title>
		<link>http://federicosayd.wordpress.com/2008/05/22/trece-sistemas-operativos-no-unix-para-saber-mas/</link>
		<comments>http://federicosayd.wordpress.com/2008/05/22/trece-sistemas-operativos-no-unix-para-saber-mas/#comments</comments>
		<pubDate>Thu, 22 May 2008 16:46:01 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/?p=19</guid>
		<description><![CDATA[Soy un tanto fanático de los sistemas operativos. Y si algo me ha llamado la atención desde que uso Linux y algún que otro Unix, son los sistemas operativos que no son descendientes de Unix. Parecieran haber mil variantes de Unix: Linux, los BSD, Solaris, Irix, MacOSX, HP-UX, etc. Pero sistemas operativos no Unix aparte [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=19&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://federicosayd.files.wordpress.com/2008/05/no-unix.png"><img class="alignnone size-medium wp-image-20 aligncenter" src="http://federicosayd.files.wordpress.com/2008/05/no-unix.png?w=176&#038;h=176" alt="" width="176" height="176" /></a></p>
<p>Soy un tanto fanático de los sistemas operativos. Y si algo me ha llamado la atención desde que uso Linux y algún que otro Unix, son los sistemas operativos que <em>no</em> son descendientes de Unix. Parecieran haber mil variantes de Unix: Linux, los BSD, Solaris, Irix, MacOSX, HP-UX, etc. Pero sistemas operativos no Unix aparte de nuestro bien (o mal) conocido Windows parecieran no existir. Sin embargo no es así y una investigación del tema nos deja ver que han habido muchos intentos de reescribir la historia de los sistemas operativos no Unix. Les dejo acá una lista con algunos de ellos aunque no están todos. He dejado a Windows al final para no aburrirlos, aunque su historia es bastante interesante. Aquí la lista, por si no conocían a alguno:</p>
<p><span id="more-19"></span></p>
<h3>BeOS</h3>
<p>BeOS Fue desarrollado en la década del 90, por una empresa francesa, y era un SO orientado al escritorio. Por ello, el sistema era monousuario y estaba optimizado para trabajar con audio video y 3D. La interfáz gráfica estaba construida en el mismo sistema operativo, y era muy sencilla, limpia y amigable. El kernel de BeOS (un micokernel) hacía un uso intensivo del los multithreads (multihilos), mucho más que otros sistemas operativos. BeOS tenía la particularidad de bootear en unos segundos.</p>
<p>Lamentablemente BeOS fue una más de las víctimas de Microsoft. Cuando la empresa que comercializaba este sistema operativo quiso distribuirlo preinstalado en ordenadores nuevos, recibió una amplia negativa de los vendedores de pc&#8217;s ya que que la mayoría de estas empresas tenían un acuerdo con Microsoft para distribuir solamente Windows con los equipos nuevos. Aunque BeOS ganó el juicio contra Microsoft por prácticas monopólicas, la empresa cayó en bancarrota y en 2001 la propiedad intelectual de BeOS fue vendida a Palm que nunca demostró darle algún uso.</p>
<p>Luego de que BeOS cayera en desgracia muchos de sus seguidores trataron de resucitar el sistema. Alguna empresas siguieron desarrollandolo tomando como base la última release del sistema operativo, luego de obtener una licencia de Palm. Otras como OpenBeOS, luego llamado <a title="Sistema operativo Haiku" href="//www.haiku-os.org/">Haiku</a>, se propusieron reescribir todo el código de BeOS bajo una licencia open source.</p>
<h3>AmigaOS y AROS</h3>
<p><a href="http://os4.hyperion-entertainment.biz/">AmigaOS</a> no es un sistema operativo para la plataforma x86, pero se hizo muy popular por ser el sistema operativo de las consolas Amiga, desarrolladas por Commodore en los años 80 y 90. Aunque estas microcomputadoras estaban pensadas como consolas de juego, luego se agregaron funciones a su sistema operativo que permitieron que el usuario utilizara la consola con un completo sistema gráfico de escritorio.</p>
<p>El sistema operativo de las primeras consolas residía en parte en una memoria ROM, desde la cual se podía iniciar el sistema y luego cargar juegos desde un diskete. Aún así era posible cargar un disco en el que se terminaban de cargar todas las funciones del sistema operativo y una interfaz de escritorio que en los sistemas Amiga se llama Workbench.</p>
<p>Una de las particularidades que destaca a AmigaOS es su excelente soporte para multiarea. El núcleo de AmigaOS es del tipo microkernel y todo el sistema operativo ocupa menos de 1 Megabyte, por lo cual se puede decir que es un sistema excelentemente optimizado ya que pese a su tamaño no deja de ser potente.</p>
<p>Aunque las consolas amigas ya no se producen más, el desarrollo del sistema operativo ha seguido adelante. La última versión de AmigaOS, la 4.0, se produce hoy para computadores con procesaores ppc de IBM (a diferencia de los procesadores motorola de las consolas originales), e incluye un completo escritorio (o Workbench) con muchas capacidades.</p>
<p>Un sistema operativo de investigación, llamado AROS, ha sido desarrollado como un clon de AmigaOS. Aunque AROS no tiene compatibilidad a nivel binaria con las aplicaciones de AmigaOS, sí soporta la api de dicho sistema operativo y a nivel de código fuente los programas de AmigaOS son bastante compatibles con AROS. Las versiones actuales de AROS están disponibles para la plataforma x86 y para ppc. Algo que destaca de AROS es que su desarrollo es open source.</p>
<h3>Plan 9</h3>
<p><a href="http://plan9.bell-labs.com/plan9/">Plan9</a> es un sistema operativo desarrolado por Bell Labs de AT&amp;T (hoy Alcatel-Lucent), los mismos desarrolladores de Unix y de los lenguajes de programación C y C++. Plan9 fue ideado como el sucesor de Unix, e incluye conceptos bastante innovadores, pero aún así no ha conseguido sobrepasar en popularidad  a su antecesor.</p>
<p>Plan9 es un sistema operativo distribuido y se divide en tres componentes principales: los terminales desde donde trabajan los usuarios, los servidores de archivo que almacenan los datos y los servidores que realizan el procesamiento de los datos y las tareas de autenticación y funciones de red. Plan9 presenta varias ideas innovadoras, por ejemplo, todos los objetos del sistema operativo son considerados y tratados como archivos que pueden existir de forma remota o local. Esta última característica hace que el acceso a la red en Plan9 sea totalmente transparente. Por ejemplo si se abre una conexión a un servidor FTP, los archivos remotos se presentan al sistema operativo como si fueran locales.</p>
<p>Es interesante que el concepto del directorio /proc, que representa los procesos y la información manejada por el kernel como archivos, fue desarrollado para Plan9, aunque luego se incorporó la idea en sistemas Unix como Linux. Así mismo el sistema de archivos Union, que permite ver dos sistemas de archivos como si fueran uno, también fue ideado por los desarrolladores de este sistema operativo. Otra notable contribución de los desarrolladores de Plan9 es la codificación UTF-8, que hoy se ha hecho tan popular.</p>
<p>Aunque las primeras releases de Plan9 no eran libres, a partir de su cuarta versión se liberó bajo una licencia open source. Desde la página del proyecto es posible descargar un live cd desde el que también es posible instalar el sistema operativo.</p>
<h3>MenuetOS</h3>
<p><a href="http://www.menuetos.net/">MenuetOS</a> es un sistema operativo para 32 y 64 bits para la arquitectura x86 escrito enteramente en lenguaje ensamblador. El sistema en sí es bastante sencillo y ha sido desarrollado tratando de eliminar los elementos que hacen que la programación de un SO sea complicada y proclive a contener bugs.</p>
<p>El sistema entero cabe en un diskette, aun así, posee una interfaz gráfica que soporta una resloución de 1280&#215;1024 y  16 millones de colores. MenuetOS tiene una completa pila TCP/IP y viene además con un IDE para ensamblador y clientes para e-mail, ftp y http. La versión para 32 bits puede obtenerse bajo una licencia open source, a diferencia de la versión de 64 bits que tiene licencia propietaria.</p>
<h3>SkyOS</h3>
<p><a href="http://skyos.org/">SkyOS</a> es un sistema operativo orientado al desktop para la platarforma x86. Soporta procesamiento simétrico, multitrheading y es multitarea. La interfaz de usuario es sencilla y elegante y está directamente construida sobre el kernel, de manera que el sistema operativo es totalmente gráfico. Varias aplicaciones libres como Mozilla Firefox y otras han sido portadas a este sistema operativo.</p>
<p>Este sistema operativo es propietario, y está en fase beta; a la fecha, su desarrollo no parece muy activo. Es posible descargarlo y probarlo como beta tester luego de pagar una licencia.</p>
<h3>GNU/Hurd</h3>
<p><a href="http://www.gnu.org/software/hurd/hurd.es.html">Hurd</a> es el kernel desarrollado por la Free Software Fundation con el fin de reemplazar el kernel Unix. Hurd implementa varios servicios alrededor de un microkernel (Actualmente Mach) que realizan de forma separada todos los procesos que haría un kernel monolítico como el de Unix. Cada uno de estos servicios proveen entre otras cosas acceso al filesystem, manejo de la red, control de procesos, etc.</p>
<p>Aunque se esperaba que Hurd supliera el kernel para correr las aplicaciones GNU, esto no sucedió. El desarrollo de Hurd ha tomado mucho tiempo y todavía no está completo ni es recomendable para su uso en producción. Quizás el desinterés en Hurd se deba a que el kernel de Linux llegó a ser un muy buen reemplazo del kernel de Unix para el entorno GNU.</p>
<p>Algunas distribuciones de Linux como Debian y Gentoo proveen algo de soporte para el kernel Hurd, pero este soporte como el sistema operativo mismo, es bastante experimental. Debian ofrece incluso algunos cd&#8217;s instalables con un sistema GNU/Hurd.</p>
<h3>AtheOS y Syllable</h3>
<p><a href="http://www.atheos.cx/">AtheOS</a> es un sistema operativo iniciado por un programador noruego, Kurt Skauen. AtheOS fue escrito desde cero como un clon del sistema operativo AmigaOS aunque luego este objetivo fue descartado en favor de hacer de AtheOS un sistema operativo compatible con la arquitectura x86. Este sistema operativo soporta multithreading (hace uso muy intensivo de él) y procesamiento simétrico (smp, o multiples procesadores).</p>
<p>AtheOS está orientado al escritorio, funciona solo en modo gráfico, y cuenta con algunas aplicaciones gráficas como un emulador de terminal, un gestor de archivos y un navegador basado en el motor de KHTML (el mismo de Konqueror) llamado ABrowse; así como un cliente de correo electrónico. La interfaz gráfica está construida dentro del mismo sistema operativo y está escrita en C++ lo que la hace totalmente orientada a objetos. A su vez, esta interfaz es nativa y no utiliza el sistema X11, aunque mantiene un esquema de funcionamiento del tipo cliente-servidor como X11 pero sobre un protocolo de comunicación más agil que no es tcp/ip. El sistema maneja su propio tipo de filesystem AFS (AtheOS Filesystem), que no debe confundirse con el Andrew Filesystem. AtheOS fue liberado bajo la GPL y varias personas han contribuido a su desarrollo, también se han portado varias aplicaciones libres a este sitema operativo como Apache, Bind y varias librerías importantes.</p>
<p>Luego de un tiempo,  el desarrollador de AtheOS abandonó el proyecto y descontinuó el desarrollo. Sin embargo los seguidores de este sistema operativo tomaron la posta y crearon un fork del mismo originando el sistema <a href="http://www.atheos.cx/">Syllabe</a>, basdo en AtheOS. Según sus desarrolladores, su meta es crear un sistema operativo open source, estable, fácil de usar, intuitivo y potente para usuarios finales y de oficina. Además afirman que Syllable es muy liviano y bootea en apenas unos segundos. De hecho algunos usuarios afirman que es más el tiempo que tarda la BIOS en realizar el POST que el que tarda Syllable en bootear.</p>
<p>Aunque Syllable está aún en desarrollo, y le falta mucho trabajo para llegar a ser un sistema completo; su desarrollo es muy activo y muchas aplicaciones están siendo portadas a este sistema. Además se han desarrollado drivers para varios dispositivos de hardware de uso común como tarjetas de video, sonido y red.</p>
<h3>Morphos</h3>
<p><a href="http://www.morphosppc.com/">MorphOS</a> es un sistema operativo desarrollado para ser compatible con el hardware de los sistemas Amiga basados en procesadores power pc de IBM. La empresa que lo patrocina, Genesi, fabrica los sistema Pegasos que son computadoras con procesadores ppc, así como las placas efika, que son pequeñas placas madres (muy similares a las famosas Via Epia) también con procesador ppc y que incluyen varios dispositivos como sonido, red, usb y audio integrados.</p>
<p>MorphOS está construido sobre el microkernel Quark y permite correr aplicaciones antiguas para los sistemas Amiga a través de un emulador. Además corre nativamente las aplicaciones más nuevas de AmigaOS a través de una implementación de la api de de este sistema operativo. Aunque MorphOS en sí es un sistema propietario, partes del sistema como el escritorio (llamdo Ambient), y varias bibliotecas de funciones han sido liberados bajo la licencia GPL.</p>
<p>La interfaz gráfica de MorphOS es muy limpia y amigable y es compatible con el Workbench de AmigaOS. Un navegador web basado en KHTML, llamado Sputnik está siendo desarrollado, además la pila TCP/IP del sistema, llamada MOSNET es también un proyecto open source. Otros programas bajo licencia libre han sido portados y varios programas freeware y shareware están disponibles para esta plataforma.</p>
<p>MorphOS está disponible solo para los propietarios de hardware de Amiga, o compatibles como Pegaos o Efika, que deben registrarse para poder bajar el sistema e instalarlo.</p>
<h3>OS/2</h3>
<p><a href="http://www-306.ibm.com/software/os/warp/">OS/2</a> es un sistema operativo desarrollado en un principio por Microsoft e IBM. Luego de algunas desavenencias, el acuerdo entre Microsoft e IBM se rompió e IBM siguió el desarrollo de OS/2 por su cuenta, mientras que Microsoft se enfocó en su sistema Windows 3.0. OS/2 fue gestado como el sucesor de DOS, aunque nunca logró este objetivo, ya que Windows 3.0, 3.1 y 95 en adelante se convirtieron en los entornos gráficos de facto de la mayoría de las pc&#8217;s de escritorio. Aún así el desarrollo de OS/2 se mantuvo activo por varios años y llegó a ser un sistema operativo excelente, que para muchos usuarios siempre superó con creces a los sitemas Windows, ya que se destacó por su muy buena estabilidad.</p>
<p>OS/2 implementó la multitarea mucho antes que los sitemas Windows.  Además  en su versión  2.0 se agregó una potente interfaz gráfica y la posibilidad de ejecutar aplicaciones para DOS y Windows. OS/2 soporta tanto el sistema de ficheros FAT de DOS así como un sistema nativo, el HPFS (High Performance File System). La primera versión de OS/2 fue liberada en 1987, y de ahí en más se lanzaron nuevas versiones con más funcionalidades. Entre ellas, una de las que más se destacaba era el soporte para redes TCP/IP que IBM introdujo de forma temprana en su sistema operativo de escritorio. La última versión de OS/2 liberada fue la version Warp 4.0 que apareció para el año 1996, más o menos para el mismo tiempo que Windows 95. Esta fue la última versión de este sistema operativo, aunque luego se lanzaron packs de actualizaciones, pero no nuevas versiones.</p>
<p>IBM no ha mostrado ya más interés en OS/2 desde la version Warp 4.0. Para el años 2005 IBM dejó de vender OS/2 y el soporte oficial finalizó en diciembre de 2006. Aún así una empresa llamado Serenity Systems obtuvo una licencia de IBM para seguir desarrollando OS/2 y venderlo bajo el nombre de eComStation, sistema que sigue vendiendo hasta hoy día. Muchos usuarios y fanáticos este sistema operativo han pedido en reiteradas ocasiones a IBM que libere el código fuente de OS/2 ya que lo consideran una especie de abandonware. Recientemente IBM comunicó que no está interesado en liberar el código fuente de este sistema operativo.</p>
<h3>ReactOS</h3>
<p><a href="http://www.reactos.org/">ReactOS</a> es un sistema operativo clon de Windows NT y recientemente de Windows XP. Es una implementación libre de la arquitectura de estos sistemas operativos cerrados de manera que ReactOS trata de ser compatible binariamente con los programas y drivers de Windows NT y XP. ReactOS está en estado Alpha y por lo tanto, no se recomienda para uso en producción. Sus desarrolladores recomiendan ReactOS como un sistema operativo de investigación para estudiar la arquitectura de los sistemas Windows pero enfocandose en una implementación libre.<br />
Los desarrolladores de este sistema operativo trabajan conjuntamente con los desarrolladores de Wine, el software que emula programas de Windows en Linux y Mac.</p>
<p>El proyecto manteiene una base de datos de compatibilidad de software y drivers para Windows. Cualquier voluntario puede testear alguna aplicación o driver en particular y ver si se ejecuta bien en ReactOS y si no lo hace, remitir la información para que se trabaje al respecto en el sistema operativo de forma que se aumente la compatibilidad.</p>
<p>Aunque la meta de este sistema es ser completamente compatible con Windows, una vez que alcancen este objetivo su equipo de desarrollo quiere añadirle características que Windows no posee como compatiblidad completa con POSIX.</p>
<h3>Netware</h3>
<p>Netware es un sistema operativo de Red. Lo que hace diferente a Netware de otros sistemas operativos es que no está orientado al usuario final o el escritorio, sino que solo cumple funciones de servidor. Netware fue desarrollado por Novell a principios de los 80 y fue toda una innovación para su tiempo porque corría sobre los procesadores 8086 de Intel. Novell pensaba además hacer su sistema operativo para que funcionara en red, en contraposición a los grandes mainframes de aquel tiempo donde los terminales se conectaban por puertos seriales al servidor central pero no usaban la red o lan. Para lograr este fin Novell se aprovechó plenamente de la tecnología Ethernet que era bastante reciente para su época y desarrolló un protocolo de comunicación que funcionaba sobre Etherntet, el IPX/SPX, que con el  tiempo fue suplantado por TCP/IP.</p>
<p>Entre los servicios que brinda Netware a los terminales de la red local estan principalmente los de servidor de ficheros, impresión, directorio y autenticación. Varios productos de Novell como servidores de correo y groupware corren sobre Netware.</p>
<p>A finales de los 90, la popularidad de Netware fue decayendo  Microsoft y sus productos como Windows NT y Windows 2000 que competía directamente con los servicios de directorio de Netware al introducir Active Directory. Con el tiempo las ventas de Netware decayeron pero aún así son muchas las empresa que todavía utilizan este sistema operativo que se destaca por ser eficiente y confiable.<br />
Aunque Novell ha descontinuado el desarrollo de Netware, y se ha centrado en soluciones Linux, planea dar soporte a este sistema hasta el año 2015.</p>
<h3>MacOS</h3>
<p>MacOS/X es el sistema operativo que utilizan las computadoras de la empresa Apple, llamadas en un principo Macintosh, de ahí el prefijo &#8220;MAC&#8221;. Aunque actualemente todo el mundo conoce MacOSX, nos referimos aquí a MacOS (sin la X), ya que este último está basado en un kernel Unix y estamos hablando de sistemas operativos no Unix.</p>
<p>MacOS fue diseñado en un principo como un sistema operativo diferente; en contraste con Unix y DOS, MacOS era un sistema totalmente gráfico y carecía de línea de comandos. La intención de Apple era hacer que cualquier usuario pudiera usar una computadora y no tuviera necesariamente que aprender una gran cantidad de comandos técnicos. Los desarrolladores de este sistema se inspiraron en un desarrollo de la empresa Xerox que había creado la primera computadora personal con una interfaz gráfica que se manejaba con un ratón. Aún así Apple innovó con su sistema operativo en el campo de las interfaces gráficas al crear conceptos como el de arrastar y soltar y otros más que todavía se siguen usando en la computación gráfica y que otros sistemas operativos  han imitado con el tiempo.</p>
<p>Los primeros sitemas MacOS corrían una parte en ROM y la demás se cargaba desde un diskete, ya que las primear macintosh carecían de disco rígido. Las primeras versiones de MacOS corrían en los procesadores 68000 de Motorola, pero luego se adaptó para correr sobre la plataforma ppc de IBM cuando Apple cambió a esta arquitectura.</p>
<p>Apple desarrolló también un protocolo de comunicaciones en red para MacOS, el AppleTalk, así como un sistema de ficheros particular, el HFS, que es bastante diferente de los utilizados en Windows o Unix.</p>
<p>Luego de la versión 9 de MacOS el sistema fue reescrito para correr sobre un kernel Unix tipo BSD, alrededor del cual está construida toda la interfaz gráfica que sigue teniendo las características principales de MacOS.</p>
<h3>CP/M, QDOS, MS-DOS, Windows y un largo etc.</h3>
<p>Windows parece no merecer introducción, es el rey de los sistemas operativos no Unix. Aún así la historia de Windows que está ligada a la de Microsoft es muy interesante. Los orígenes de lo que hoy se ha transformado en Windows se remontan a 1974 cuando Gary Kildall programó un sistema operativo llamado CPM/DOS que con el tiempo se hizo muy popular entre las computadoras personales de la época. Resultó ser que IBM estaba buscando un sistema operativo para vender con sus primeras computadoras personales y desde luego CPM/DOS parecía la mejor opción. Sin embargo las negociaciones entre IBM y Digital Research, la empresa de Gary Kildall, fracasaron e IBM decidió buscar otra opción. Esa otra opción fue precisamente Microsoft y quien estaba detrás de él, Bill Gates. Microsoft hizo un acuerdo para proporcionar el sistema operativo que acompañaría a las pc&#8217;s de IBM, aunque Microsoft ni siquiera tenía el sistema operativo que estaba vendiendo a IBM. Pero si se trata de negocios para Gates y Microsoft nada es imposible; de manera que Microsoft salío a comprar un clon de CMP/DOS llamado QDOS (Quick and Dirty Operating System, literalmente &#8220;Sistema Operativo Rápido y Sucio&#8221;) y lo rebautizó como MS-DOS. Desde luego el QDOS o MS-DOS era muy inferior a CPM/DOS, pero esto no impidió que las ventas de las computadoras de IBM dispararan la fama de Microsoft y MS-DOS de manera que CPM/DOS cayó en el olvido y nació él imperio de software y sistemas operativos más grande de la historia.</p>
<p>Para 1985 Microsoft decidió lanzar la versión 1.0 de su sistema Windows, que en realidad no era un sistema operativo, sino un sistema gráfico o GUI. Windows trataba de imitar el sistema gráfico de Apple, sin embargo tanto esta primera versión como la 2.0 no representaban ninguna ventaja para el usuario y no tuvieron éxito. Ahora bien la versión que sí marcó el éxito de Microsoft en el terreno de las intefaces gráficas. fue Windows 3, y 3.1, su sucesor. Estas versiones seguían siendo aplicaciones que corrían sobre DOS y no un sistema operativo real aunque trataban de emularlo.    El primer intento de Microsoft de desligarse de DOS para traer un SO totalmente gráfico fue Windows 95, que sin embargo seguía dependiendo mucho de DOS y más bien parecía un híbrido entre una interfaz gráfica como Windows 3.1 y DOS. Windows 98 se alejó un poco más de MS DOS pero finalmente Windows Millenium fue el primer Windows que prescindia de MS DOS, sin embargo como es sabido Windows Me fue un tremendo fracaso. Tanto es así que Microsoft tuvo que apresurarse a sacar Windows XP, basado en su producto Windows NT para servidores. De ahí en más el desarrollo de XP y su actual sucesor Vista, es bastante conocido.</p>
<p>Lo que muchos no saben son las idas y vueltas que Microsoft ha hecho para posicionar sus sistemas operativos. Por ejemplo más de una vez Microsoft compró un producto de software o una empresa para cambiarle el nombre a algo &#8220;MS&#8221; y venderlo con su sistema operativo. Incluso uno de los desarrolladores principales de Windows NT estuvo trabajando mucho tiempo para DEC, tanto es así que cuando Microsoft lo contrató DEC entabló una demanda alegando que Microsoft se estaba llevando con sus ex empleado información importante de su sistema operativo OpenVMS para incluirlo en el código de NT.</p>
<p>Bien, esa es la lista con la reseña de los SO que he podido investigar hasta la fecha. Alguna información puede estar ligeramente desactualizada, (este mega-post llevaba archivado bastante tiempo). Sin embargo la lista nos muestra que el mundo de los SO es muy diverso y que pueden haber distintos enfoques para su desarrollo. Lo que también vemos es que el área de los SO es muy sensible tanto así que unos pocos sistemas operativos dominan el mercado. Sin embargo todo esto no deja de hacer que el tema sea fasciannte.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=19&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2008/05/22/trece-sistemas-operativos-no-unix-para-saber-mas/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>

		<media:content url="http://federicosayd.files.wordpress.com/2008/05/no-unix.png?w=176" medium="image" />
	</item>
		<item>
		<title>Tip rápido: Ver los logs del sistema en colores</title>
		<link>http://federicosayd.wordpress.com/2008/05/21/tip-rapido-ver-los-logs-del-sistema-en-colores/</link>
		<comments>http://federicosayd.wordpress.com/2008/05/21/tip-rapido-ver-los-logs-del-sistema-en-colores/#comments</comments>
		<pubDate>Wed, 21 May 2008 16:23:53 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/?p=17</guid>
		<description><![CDATA[Esta es una pequeña entrada que explica como ver los logs en colores, algo que al parecer no es una prioridad en Linux, pero cuando estamos cansados de ver logs, especialmente el mail.log puede ser un tanto práctico además de que queda muy bonito y esa es la razón de más peso para publicarlo. Lo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=17&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esta es una pequeña entrada que explica como ver los logs en colores, algo que al parecer no es una prioridad en Linux, pero cuando estamos cansados de ver logs, especialmente el mail.log puede ser un tanto práctico además de que queda muy bonito y esa es la razón de más peso para publicarlo. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Lo primero que debemos instalar es un programita encargado de colorear los logs, se llama ccze</p>
<pre># aptitude install ccze</pre>
<p>luego nos editamos el .bashrc en nuestro home y creamos la siguiente función:</p>
<pre>logview()

{

ccze -A &lt; $1 | less -R

}</pre>
<p>Lo que hace la función es ejecutar ccze para que colorize el el archivo de log que le pasamos como argumento. La opción -A indica que la salida sea en modo raw que es la que acepta el paginador less, ya que ccze solo colorea pero no muestra los resultados. Luego mediante una tubería se lo pasamos less para que lo muestre y para que interprete los colores le pasamos la opción -R.</p>
<p>Solo basta recargar nuestro archivo .bashrc</p>
<pre># . .bashrc</pre>
<p>o</p>
<pre># source .bashrc</pre>
<p>y listo ya podemos usar la función creada como un comando para ver los logs a color.</p>
<pre># logview /var/log/mail.log</pre>
<p>ccze tiene soporte para varios logs entre ellos syslog, messages, maillog y dmesg.</p>
<p>A continuación, una captura de cómo se ve el log de dmes con este pequeño truco</p>
<p><a href="http://federicosayd.files.wordpress.com/2008/05/logview.png"><img class="alignnone size-medium wp-image-18" style="vertical-align:middle;" src="http://federicosayd.files.wordpress.com/2008/05/logview.png?w=544&#038;h=366" alt="" width="544" height="366" /></a></p>
<p>Links sobre el tema:</p>
<p><a href="http://linux-attitude.fr/post/Bashrc-collaboratif" target="_blank">Pagina en francés que provee la función para colorear los logs</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=17&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2008/05/21/tip-rapido-ver-los-logs-del-sistema-en-colores/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>

		<media:content url="http://federicosayd.files.wordpress.com/2008/05/logview.png?w=300" medium="image" />
	</item>
		<item>
		<title>Instalando Debian dentro de Debian</title>
		<link>http://federicosayd.wordpress.com/2008/01/16/instalando-debian-dentro-de-debian/</link>
		<comments>http://federicosayd.wordpress.com/2008/01/16/instalando-debian-dentro-de-debian/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 14:49:51 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[chroot]]></category>
		<category><![CDATA[instalacion]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/2008/01/16/instalando-debian-dentro-de-debian/</guid>
		<description><![CDATA[Esta semana tenía que hacer una instalación de Debian para un servidor, pero vaya problema, tenía el disco donde instalar pero no la máquina dónde hacerlo. La idea era instalar en una máquina y luego pasar el disco con la instalación al nuevo servidor que alguien estaba gestionando su compra. El tema era ganar tiempo, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=15&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><img src="http://federicosayd.files.wordpress.com/2008/01/deb-in-deb.jpg?w=450" alt="Debian en Debian" /></div>
<p>Esta semana tenía que hacer una instalación de Debian para un servidor, pero vaya problema, tenía el disco donde instalar pero no la máquina dónde hacerlo. La idea era instalar en una máquina y luego  pasar el disco con la instalación al nuevo servidor que alguien estaba gestionando su compra. El tema era ganar tiempo, así que recordé que Debian se puede instalar en un sistema ya funcionando. Sencillo, se conecta el disco a una máquina con un Debian o cualquier Linux andando, se particiona el disco, se montan las particiones y se instala desde el sistema que está corriendo. Para no dar más vueltas les explico paso a paso cómo.</p>
<p><span id="more-15"></span></p>
<h3>Creación de las particiones</h3>
<p>En primer lugar debemos conectar el disco donde vamos a hacer la instalación en nuestra máquina en donde tenemos fucionado nuestro Debian o cualquier otra distribución de Linux.</p>
<p>Una vez hecho esto tenemos que particionar el disco a nuestro gusto teniendo en cuenta las particiones que tendrá nuestra nueva instalación. Para ello usamos <code>fdisk</code>, nos aseguramos de por lo menos crear una partición para el sistema y otra para la swap, aunque podemos crear las que nos parezcan necesarias.</p>
<p>No nos olvidamos de formatear las partciones y activar la swap.</p>
<pre># mk2fs -j /dev/sda1</pre>
<pre># mkswap /dev/sda2</pre>
<pre># swapon /dev/sda2</pre>
<p>Ahora debemos crear un punto de montaje para nuestra partición raíz desde la cual trabajaremos.</p>
<pre># mkdir /mnt/instalacion</pre>
<p>Y montamos allí nuestra partición raíz</p>
<pre># mount /dev/sda1 /mnt/instalacion</pre>
<p>Si hubieramos creado varias partciones, por ejemplo para /home, /var, o /usr, entonces tendríamos que montarlas también. Una vez montada la partición raíz creamos en ella los directorios correspondientes y montamos en ellos las particiones que creamos previemante.  Por ejemplo:</p>
<pre># cd /mnt/instalacion</pre>
<pre># mkdir /home</pre>
<pre># mount /dev/sda2 home/</pre>
<h3>Instalación de Debootstrap</h3>
<p>El siguiente paso es obtener un sistema Debian muy básico. Debian provee un paquete que provee esta instalción básica, el paquete es debootstrap. Si nuestro sistema es un Debian no tenemos más que instalarlo con aptitude:</p>
<pre># aptitude install debootstrap</pre>
<p>Ahora bien si nuestra instalación de Linux no es Debian lo mismo podemos conseguir instalar el paquete.</p>
<p>Creamos un directorio donde bajaremos el paquete y lo descompactaremos:</p>
<pre># mkdir /tmp/debootstrap</pre>
<pre># cd /tmp/deboostrap</pre>
<p>y obtenemos el paquete desde alguno de los repositorios de Debian:</p>
<pre># wget http://ftp.es.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.3.2etch1_all.deb</pre>
<p>En el ejemplo el sistema base que obtenemos es el correspondiente a un Debian version Etch.</p>
<p>Para descomprimir el paquete necesitaremos el programa ar. Si no lo tenemos lo, instalamos:</p>
<pre># apt-get install ar</pre>
<p>y luego descomprimimos nuestro paquete recién bajado:</p>
<pre># ar -x debootstrap_0.3.3.2etch1_all.deb</pre>
<p>luego hacemos</p>
<pre># cd /</pre>
<pre># zcat /tmp/debootstrap/data.tar.gz |  tar xv</pre>
<p>Con lo cual habremos instalado el contenido del paquete .deb en nuestro sistema. Ahora podemos usar el programa debootstrap aunque no estemos en un sistema Debian.</p>
<p>No nos queda nada más que ejecutarlo:</p>
<pre># /usr/bin/debootstrap --arch i386 etch /mnt/instalacion http://ftp.es.debian.org/debian</pre>
<p>Como vemos tenemos que indicarle a debootstrap, la arquitectura (i386, en nuestro caso), la versión de Debian,  el directorio donde está montada la partición raíz y un repositorio de dónde traer los paquetes. Y listo, ya tenemos nuestro sistema Debian base.</p>
<h3> Creación de los archivos de configuración del sistema</h3>
<p>Ahora tenemos que retocar el sistema, para eso vamos a hacer un chroot y &#8220;entrar&#8221; a nuestra nueva instalación:</p>
<pre># LANG=C chroot /mnt/instalacion /bin/bash</pre>
<p>Si no se quieren perder, si tienen más de una terminal abierta y no confundir su sistema con el que está en el chroot, pueden modificar el prompt para saber dónde están:</p>
<pre># export PS1="[chroot]$PS1"</pre>
<p>De esta forma el prompt reflejará que están trabajando bajo la raíz del nuevo sistema, dentro del chroot.</p>
<p>Lo primero que hacemos es crear el fichero /etc/fstab y montar las particiones que no hayamos montado si así lo decidimos en el particionado.</p>
<p>Un fstab base puede ser el siguiente. Desde luego debemos modificarlo según nuestras necesidades.</p>
<pre># /etc/fstab: static file system information.#

# file system    mount point   type    options                  dump pass

/dev/XXX         /             ext3    defaults                 0    1

/dev/XXX         /boot         ext3    ro,nosuid,nodev          0    2/dev/XXX         none          swap    sw                       0    0

proc             /proc         proc    defaults                 0    0

/dev/fd0         /media/floppy auto    noauto,rw,sync,user,exec 0    0

/dev/cdrom       /media/cdrom  iso9660 noauto,ro,user,exec      0    0

/dev/XXX         /tmp          ext3    rw,nosuid,nodev          0    2

/dev/XXX         /var          ext3    rw,nosuid,nodev          0    2

/dev/XXX         /usr          ext3    rw,nodev                 0    2

/dev/XXX         /home         ext3    rw,nosuid,nodev          0    2</pre>
<pre></pre>
<p>Si ejecutamos mount -a, se montará cualquier partición que no estuviera montada.</p>
<p>Es necesario que el directorio /proc esté montado para seguir adelante. Si no se montó bien con mount -a, lo podemos hacer a mano (lo mismo para cualquier particion):</p>
<pre># mount -t proc /proc</pre>
<p>Además creamos enlaces simbólicos a los dispositivos removibles, como por ejemplo el cdrom:</p>
<pre># cd /media# mkdir cdrom0

# ln -s cdrom0 cdrom

# cd /

# ln -s media/cdrom</pre>
<p>Luego configuramos la zona horaria.</p>
<p>Editamos /etc/default/rcS según nuestras preferencias y luego corremos tzconfig</p>
<pre># tzconfig</pre>
<p>y elegimos nuestra zona horaria.</p>
<p>Lo siguiente es configurar la red. Para ello necesitmos crear el archivo /etc/network/interfaces. Un archivo de ejemplo puede ser el siguiente:</p>
<pre># Configuramos la intefaz del loopback</pre>
<pre>auto loiface lo inet loopback# Si usamos dhcp

# auto eth0

# iface eth0 inet dhcp

# Si usamos una ip estática, este es un ejemplo:</pre>
<pre>
# auto eth0# iface eth0 inet static

#     address 192.168.1.2</pre>
<pre>#     network 192.168.1.0#     netmask 255.255.255.0

#     broadcast 192.168.1.255

#     gateway 192.168.1.1</pre>
<p>Si usamos dhcp, descomentamos la primera opción o si no la segunda parte y ponemos nuestra configuración de red.</p>
<p>En /etc/resolv.conf agregamos la dirección ip de nuestro servidor de nombres y el dominio por defecto.</p>
<pre>search mi.dominio.com  nameserver 192.168.1.1</pre>
<p>Además le ponemos nombre a nuestro nuevo sistema de la siguiente forma:</p>
<pre># echo "elservidor" &gt; /etc/hostname</pre>
<p>Creamos además el archivo /etc/hosts, y agregamos el nombre de nuestro servidor:</p>
<pre>127.0.0.1 localhost elservidor # Si usamos ipv6 agregamos estas entradas::1     ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

ff02::3 ip6-allhosts</pre>
<p>Como vamos a seguir instalando software en nuestro sistema, debemos agregar los repositorios que nos convengan. Por lo menos el repositorio principal y las actualizaciones de seguridad en /etc/apt/sources.list</p>
<pre>deb http://ftp.es.debian.org/debian etch main deb http://security.debian.org/ etch/updates main</pre>
<p>Para actualizar:</p>
<pre># apt-get update</pre>
<p>El siguiente paso es instalar los locales, lo que nos permitirá tener un sistema en nuestro idioma</p>
<pre># aptitude install locales</pre>
<pre># dpkg-reconfigure locales</pre>
<p>Y en la pantalla que aparece, elegimos los locales que correspondan a nuestro idioma, en español hay que elegir es_ES, para que los caractéres salgan bien en pantalla.</p>
<p>Y para que nuestro teclado también esté en español instalamos el paquete console-data:</p>
<pre># aptitude install console-data</pre>
<pre># dpkg-reconfigure console-data</pre>
<h3>Instalación del kernel</h3>
<p>Todo muy bien hasta aquí, pero un pequeño detalle es que todavía nuestro sistema no tiene un kerenel instalado, algo un tanto importante, por lo tanto vamos a instalarlo.</p>
<p>Antes que nada instalamos el programa del gestor de arranque, ya que cuando se instala el kernel se corre este programa. Vamos a usar grub:</p>
<pre># aptitude install grub</pre>
<p>Y creamos el archivo /etc/kernel-img.conf, que indica una serie de pasos que se deben seguir cuando se instala el paquete del kernel, como crear links al archivo del núcleo, actualizar grub, e instalar el initrd. El contenido es el siguiente:</p>
<pre># Kernel image management overrides# See kernel-img.conf(5) for details

do_symlinks = yes

relative_links = yes

do_bootloader = yes

do_bootfloppy = no

do_initrd = yes

link_in_boot = no</pre>
<p>Como hay más de un kernel para elegir e instalar, podemos ver las opciones:</p>
<pre># apt-cache search linux-image</pre>
<pre></pre>
<p>Elegimos el que más se adapte a nuestro sistema e instalamos:</p>
<pre># aptitude install linux-image-<i><code>2.6.18-4-i386</code></i></pre>
<pre></pre>
<p>Aunque la instalación del kernel crea los archivos de configuración de grub, el programa en sí no está instalado en el MBR, por lo tanto debemos instalarlo</p>
<pre># grub-install --root-directory /dev/sda1 --recheck /dev/sda</pre>
<pre># update-grub</pre>
<p>Debemos pasarle la opción &#8211;root-directory para que grub sepa en qué partición se encuentra el directorio /boot/grub y su archivo de configuración menu.lst</p>
<p>&#8211;recheck es para que chequee de nuevo los dispositivos, por si hemos particionado y grub no está al tanto de las nuevas particiones.</p>
<p>Y por útlimo le decimos que instale el cargador de arranque en el disco de la nueva instalación. Debemos tener cuidado y no instalarlo en el MBR de nuestro sistema que ya está andando.</p>
<p>Por último para que cuando instalemos nuevos kernels grub se actualice sin problemas volvemos a cambiar algunos parámetros en /etc/kernel-img.conf</p>
<p>Ponemos</p>
<pre>do_bootloader  = No</pre>
<p>y agregamos:</p>
<pre>postinst_hook = update-grubpostrm_hook   = update-grub</pre>
<h3>Últimos retoques</h3>
<p>Como último paso podemos retocar nuestra instalación para que no sea tan básica, de manera que se instalen los programas que más comunmente usamos:</p>
<pre># tasksel install standard</pre>
<pre>#aptitude clean</pre>
<pre></pre>
<p>Y eso es todo. Si todo fue bien, entonces deberíamos tener un sistema Debian instalado y listo para correr. No queda más que reiniciar la máquina, configuar el equipo para que bootee desde el disco o la partición en que instalamos y ya podemos entrar a nuestro sistema. Usuario root y contraseña &lt;enter&gt; y ya podemos empezar a usarlo.</p>
<p><b>Links sobre este tema:</b></p>
<p><a href="http://www.debian.org/releases/stable/i386/apds03.html.es">Instalar Debian GNU/Linux desde un sistema Unix/Linux &#8211; Howto oficial de Debian</a></p>
<pre></pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=15&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2008/01/16/instalando-debian-dentro-de-debian/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>

		<media:content url="http://federicosayd.files.wordpress.com/2008/01/deb-in-deb.jpg" medium="image">
			<media:title type="html">Debian en Debian</media:title>
		</media:content>
	</item>
		<item>
		<title>Personalizando Solaris</title>
		<link>http://federicosayd.wordpress.com/2007/11/20/personalizando-solaris/</link>
		<comments>http://federicosayd.wordpress.com/2007/11/20/personalizando-solaris/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 20:51:49 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[entorno]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/2007/11/20/personalizando-solaris/</guid>
		<description><![CDATA[Hace poco estube estuve ensuciándome las manos con otro sistema operativo que no es nuestro bienquerido Linux. Se trata de Solaris 10; la tarea era pasar de la versión 8 a la 10. La instalación fue bastante limpia y nos dejó un sistema nuevecito para empezar a jugar. Ahora bien el entorno de la línea [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=14&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><title></title> 	 	 	 	 	 	 	 	 	Hace poco <strike>estube</strike> estuve ensuciándome las manos con otro sistema operativo que no es nuestro bienquerido Linux. Se trata de Solaris 10; la tarea era pasar de la versión 8 a la 10. La instalación fue bastante limpia y nos dejó un sistema nuevecito para empezar a jugar. Ahora bien el entorno de la línea de comando en Solaris es bastante duro. La shell por defecto no soporte autocompletado y vi es inusable (por lo menos para mí). Por eso la tarea era hacer el entorno de Solaris lo más parecido a un entorno Linux. Para eso hubo que seguir algunos pasos.</p>
<p><span id="more-14"></span></p>
<h3>Instalación de pkg-get</h3>
<p>Primero que nada vamos a necesitar agregar software a nuestro Solaris que no viene en el DVD de serie. El software para Solaris se puede obtener ya compilado en formato de paquetes.</p>
<p>La herramienta para instalar paquetes en este sistema es pkgadd, que vendría a ser como el dpkg de Debian o el rpm de otras distros de Linux. Pero como usamos Debian y amamos apt-get queremos una solución un poco más cómoda e inteligente. La respuesta es pkg-get, que es el equivalente a apt-get pero para Solaris. <code>pkg-get</code> resuelve las dependencias automáticamente y descarga e instala los paquetes directo desde un repositorio por la red.</p>
<p>Para instalarlo obviamente vamos a necesitar de pkgadd</p>
<p><code># pkgadd -d <a href="http://www.blastwave.org/pkg_get.pkg">http://www.blastwave.org/pkg_get.pkg</a></code></p>
<p>Luego de aceptar todas las preguntas que nos hace pkgadd, tenemos que definir los repositorios desde los cuales vamos a descargar el software.</p>
<p>La opción más recomendable son los repositorios de <a href="http://www.blastwave.org/">www.blastwave.org</a>, que contiene mas de 1700 paquetes de software en su mayoría open source. Todo el software de este repositorio se instala bajo /opt/csw. Por lo tanto modificamos el fichero de configuración de pkg-get:</p>
<p><code>#nano /opt/csw/etc/pkg-get.conf</code></p>
<p>Usamos nano, no porque nos guste, sino porque el vi que viene por defecto en Solaris es a mi gusto inusable. Luego lo arreglaremos.</p>
<p>Buscamos en <a href="http://www.blastwave.org/mirrors.php">www.blastwave.org/mirrors.php</a> un mirror que este cerca o que sea rápido y lo definimos como sigue:</p>
<p><code>url=http://mirrors.sunsite.dk/csw/stable</code></p>
<p>Podemos usar la rama stable y la unstable, dependiendo de para qué vayamos a usar el equipo. Solo es necesario agregar una línea más con unstable o stable al final de la url.</p>
<p>Si estamos detrás de un proxy, lo configuramos:<br />
<code><br />
http_proxy=http://proxy.mi.red.com:8080<br />
export http_proxy ftp_proxy</code></p>
<p>Por último, podemos deshabilitar el chequeo de firmas y sumas md5, si nos sentimos confiados. Aunque nunca nadie sabe&#8230;</p>
<p><code>use_gpg=false<br />
use_md5=false</code></p>
<h3>Instalación de Vi mejorado</h3>
<p>Ahora que tenemos pkg-get configuado lo podemos usar para instalar software. Lo primero que hacemos es instalar vi-enhanced, o vim.</p>
<p><code># pkg-get install vim</code></p>
<p>Ahora bien si corremos vim nos daremos cuenta de que funciona igual que el vi que trae por defecto Solaris. Entre otras cosas la tecla backspace no funciona bien y las teclas de dirección (las de las flechas) no nos permiten movernos por el texto sino que imprimen caracteres en la pantalla. Para solucionarlo debemos crear un archivo de configuración para vim en el directorio personal de nuestro usuario. Si el usuario es root, entonces el directorio de usuario es &#8220;/&#8221; (Sí, &#8220;/&#8221;, Solaris no pone un &#8220;/root&#8221; para el superusuario).<br />
<code><br />
# cd<br />
# nano .vimrc</code></p>
<p>Y en <code>.vimrc</code> ponemos las siguientes líneas que solucionan los problemas anteriores del vim. Además activamos el coloreado de la sintaxis que es muy útil:</p>
<p><code>set nocp<br />
set backspace=2<br />
syntax on</code></p>
<p>Y listo, ya podemos usar vim como en Linux.</p>
<h3>Cambiar la shell de root</h3>
<p>Una de las cosas más molestas de Solaris cuando recién se instala es la shell. Por defecto Solaris no trae una shell moderna como bash sino la típica shell de Bourne o sencillamente &#8220;sh&#8221;. Esta shell no tiene ni histórico ni autocompletado y es bastante dura de usar.</p>
<p>¿Por qué viene por defecto? La razón es que es un ejecutable pequeño que no está enlazado dinámicamente con ninguna librería. De forma que si el sistema se vuelve inestable y no se puede montar alguna partición donde se alojan las librerías, lo mismo tendríamos una shell para acceder al sistema.</p>
<p>Nosotros vamos a hacer que se cargue bash como shell por defecto de root, siempre y cuando esté disponible, de manera que el sistema seguirá siendo a prueba de fallos. No tendremos que cambiar la shell en <code>/etc/passwd</code>, el valor lo dejaremos como está.</p>
<p>Para hacer el cambio, dentro del directorio del usuario editamos el archivo <code>.profile</code>, que es el archivo que lee la shell sh cuando se ejecuta. Será esta shell la que cargue bash de forma automática. Creamos el archivo con este contenido:</p>
<p><code>if [ -x /usr/bin/bash ]; then<br />
SHELL=/usr/bin/bash<br />
export SHELL<br />
exec /usr/bin/bash<br />
else<br />
echo /usr/bin/bash not found using default shell of $SHELL<br />
fi</code></p>
<p>Si salimos de la sesión y volvemos a entrar veremos que bash se carga automáticamente.</p>
<p>Un último detalle un tanto lamentable es que definiendo bash como shell para el entorno, no se puede iniciar el entorno gráfico. Cuando tratamos de ingresar desde el inicio gráfico de Solaris, este ser reinicia y no podemos acceder a Gnome o a CDE. Si definimos Bash para el usuario root, esto no es problema ya que usar el entorno gráfico con root no es buena opción; pero no deja de ser una solución poco elegante. Seguiré investigando para ver como solucionarlo.</p>
<h3>Modificación del entorno de bash.</h3>
<p>Hay algunas variables de entorno que controlan como funciona bash y que es muy útil definir.</p>
<p>En primer lugar debemos crear los archivos de configuración de bash, que son dos. En primer lugar <code>.bash_profile</code>, con el siguiente contenido:</p>
<p><code>source ~/.bashrc</code></p>
<p>Esto hace que se cargue el contenido de <code>.bashrc</code> que es el archivo donde guardamos las configuraciones personales para bash.</p>
<p>De seguro la más importante es el path, o sea los directorios donde la shell buscará los programas que se pueden ejecutar. Por defecto el path de Solaris es el siguiente:</p>
<p><code>/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/ucb</code></p>
<p>Que nos sirve si usamos el software oficial de Solaris. Pero como vamos a instalar software de blastware y también software libre que Sun provee que no se encuentra dentro de ese path, entonces tendremos que modificarlo. Ponemos:<br />
<code><br />
export PATH='/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/ucb:/opt/csw/bin:/usr/sfw/bin'</code></p>
<ul>
<li><code>/opt/csw/bin</code> es el directorio 	donde están los binarios del software que instalamos con 	pkg-get, desde los repositorios de blastwave.</li>
<li><code>/usr/sfw/bin</code> es el directorio 	donde se ubican los binarios de software libre provisto por Sun como 	samba y wget.</li>
</ul>
<h3>ls en colores</h3>
<p>El comando <code>ls</code> que provee Solaris no nos permite colorear la salida, así que vamos a solucionarlo de nuevo con una opción libre. Instalamos el paquete <code>fileutils</code> que nos provee un <code>ls</code> con colores.<br />
<code><br />
# pkg-get install fileutils</code></p>
<p>Fileutils nos instalará el comando <code>gdir</code> que no es otra cosa que el <code>ls</code> que usamos en bash. Modificamos .bashrc para crear un alias de ls a gdir y habilitamos los colores. Agregamos lo siguiente:</p>
<p><code>export LS_OPTIONS='--color'<br />
eval "`gdircolors`"<br />
alias ls='gdir $LS_OPTIONS'<br />
alias ll='gdir $LS_OPTIONS -l'<br />
alias l='gdir  $LS_OPTIONS -lA'</code></p>
<h3>Bash Completion</h3>
<p>Aunque bash nos completa de forma muy útil los paths y los nombres de los programas por defecto, hay algunas cosas que no nos completa como por ejemplo los argumentos de ciertos programas. Bash Completion viene a solucionar esto, y es muy útil con comandos como <code>pkg-get</code> o <code>svcadm</code>. Lo instlamos con <code>pkg-get</code>:</p>
<p><code># pkg-get install bash-completion</code></p>
<p>Para que el autocompletado se cargue de forma automática, debemos agregarlo también en <code>.bashrc</code>:</p>
<p><code>source /opt/csw/etc/bash_completion</code></p>
<p>Cambio del paginador y alias para vi</p>
<p>Las páginas del manual son paginadas por defecto con <code>more</code> que es bastante molesto de usar. Lo cambiamos por <code>less</code>, modificando lo siguiente en <code>.bashrc</code>:</p>
<p><code>export PAGER=less</code></p>
<p>Creamos un alias para <code>vi</code> en <code>.bashrc</code> para que se llame automáticamente a <code>vim</code>:</p>
<p><code>alias vi='/opt/csw/bin/vim'</code></p>
<h3>Prompt descriptivo y en color</h3>
<p>Como último paso vamos a modificar el prompt para que entregue más imformación. Además le vamos a poner color para visualizarlo mejor. Agregamos a .bashrc:</p>
<p><code>export PS1="\[33[0;32m\][\u@\h:\W]\$\[33[0m\] "</code></p>
<p>explicamos qué es cada cosa:</p>
<ul>
<li><code>\[33[0;32m\]</code>    Es un carácter 	no imprimible que cambia el color del terminal a verde, así 	el prompt adquiere este color.</li>
<li><code>\u</code> Imprime el nombre del usuario 	logueado</li>
<li><code>\h</code> imprime el nombre de la maquina 	o hostname</li>
<li><code>\W</code> Imprime el nombre del 	directorio en el que estamos parado.</li>
<li><code>\$</code> Si el usuario es root, imprime 	un &#8220;#&#8221;, de lo contrario imprime un &#8220;$&#8221;</li>
<li><code>\[33[0m\]</code> Con esta secuencia 	volvemos al color original de la shell para que no siga en color 	verde.</li>
</ul>
<p>Nuestro prompt quedaría de la siguiente manera:</p>
<p><span style="background:#000000 none repeat scroll 0 50%;color:#66ff00;"><code>[root@servidor:etc]#</code></span></p>
<p>Esto es todo, ya tenemos un entorno en Solaris bastante más familiar y agradable que nos hace la vida más sencilla.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=14&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2007/11/20/personalizando-solaris/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>
	</item>
		<item>
		<title>Una radio en Linux</title>
		<link>http://federicosayd.wordpress.com/2007/10/12/una-radio-en-linux/</link>
		<comments>http://federicosayd.wordpress.com/2007/10/12/una-radio-en-linux/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 14:13:09 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[audio]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[streaming]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/2007/10/12/una-radio-en-linux/</guid>
		<description><![CDATA[&#160; &#160; Esta vez se trata de armar una radio por Internet. Queremos que nuestra transmisión analógica se pueda escuchar por Internet. Para eso como siempre usamos Linux y nuestra queridad distribución Debian en su versión Etch (bueno o la que tengan a mano si no les gusta Debian). Si estamos hablando de radio por [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=13&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;">&nbsp;</p>
<p style="text-align:center;">&nbsp;</p>
<p style="text-align:center;"><img src="http://img234.imageshack.us/img234/6119/streamingpx6.png" alt="Diagrama de una radio por internet" /></p>
<p>Esta vez se trata de armar una radio por Internet. Queremos que nuestra transmisión analógica se pueda escuchar por Internet. Para eso como siempre usamos Linux y nuestra queridad distribución Debian en su versión Etch (bueno o la que tengan a mano si no les gusta Debian). Si estamos hablando de radio por Internet, entonces estamos hablando de streaming.</p>
<p><span id="more-13"></span></p>
<h4>¿Qué es el streaming?</h4>
<p>El streaming de audio es sencillamente la transmisión de audio digitalizado y codificado que se reproduce en el cliente en vivo. O sea no hace falta descargar todo el archivo desde el servidor para escucharlo sino que se eschucha a medida que se descarga. El streaming es la técnica que utilizan las radios por internet, aunque también se aplica al video.</p>
<p>El formato en que se envían las transmisiones de audio suele ser el famoso mp3, pero también podemos codificar en otros formatos como por ejemplo ogg. Se puede hacer streaming de audio almacenado en archivos, por ejemplo temas musicales o podcasts que están almacenados en el servidor y se reproducen en el cliente bajo demanda. Pero también, y más interesante, es hacer codifcación en vivo del audio. O sea, en el servidor se toma la entrada de audio analógica, se codifica (en mp3 u ogg, etc.) y luego se envía por Internet para que los clientes escuchen nuestra  &#8220;radio&#8221;. Este tipo de streaming es el que vamos a explicar.</p>
<h4>Lo que hace falta para levantar un servidor de streaming en Linux</h4>
<p>La figura del principio nos muestra qué hace falta para que nuestra radio suene en Internet usando Linux. Nos estamos refiriendo a software; pero obviamente si queremos que en nuestro equipo entre audio analógico debemos disponer de una placa de sonida que tenga una entrada de línea y que esté soportada por el sistema de audio de nuestro sitema operativo.</p>
<p>A continuación, los componentes:</p>
<p><em>Alsa</em></p>
<p>Alsa es el sistema de sonido de Linux. Aunque no es el único sistema de sonido que existe, sí es el más difundido y con más amplio desarrollo, y por supuesto soporta la mayor cantidad de hardware de audio.</p>
<p>Alsa se encarga de cargar los módulos del kernel necesarios para que funcione el sonido y los módulos que harán que la placa de sonido sea reconocida y funcione. Además Alsa presenta al sistema un dispositivo mezclador o mixer, que cumple la función de consola de mezclas. Al acceder al mixer podemos ajustar el volumen de los diferentes &#8220;canales&#8221;, por ejemplo el sonido de todo el sistema o master, el volumen del reproductor de cd o el del micrófono.</p>
<p>Una de las funciones del mezclador de sonido que más interesa a la hora de hacer streaming de audio en vivo es la que controla el dispositivo de grabación. En el mezclador se definen varias fuentes de audio que se pueden usar para grabar o capturar audio; por ejemplo el sonido que introducimos a la placa de audio por la entrada de línea, el de un micrófono, o el del cd de audio que está sonando. Todas estas fuentes de audio se pueden digitalizar, pero para ello hay que decirle al sistema de sonido de qué fuente queremos grabar. Otra opción, en el caso de que la placa de sonido lo soporte, es decirle al sistema de sonido que queremos grabar una mezcla de todas las fuentes de audio activas en el momento. Pero siempre hay que tener en cuenta que si no ponemos a grabar la fuente desde la que nos interesa capturar el audio, no podremos transmitir nada en nuestra radio.</p>
<p>Como en nuestro caso el audio es generado afuera del servidor y lo introducimos por la entrada de línea, tendremos que configurar el mezclador para que defina como dispositivo de grabación solo a la entrada de línea.</p>
<p><em>LAME y DarkIce</em></p>
<p>DarkIce es un programa fuente de streaming. Los programas fuentes se encargan de proveer el audio que el servidor de streaming ofrecerá a los clientes. Para esto se conectan al servidor de streaming con un usuario y contraseña en un puerto específico e inyectan el audio que ofrecen bajo lo que se llama un punto de montaje, que viene a ser un identificador del audio que están ofreciendo. Un servidor de streaming puede recibir audio de más de un programa servidor como DarkIce.</p>
<p>DarkIce se encarga de todo lo referente a la fuente del audio y la codificación del mismo. Entre otras cosas, en la configuración de DarkIce se debe especificar:</p>
<ul>
<li>La frecuencia de muestreo</li>
<li>Los canales que tendrá el audio grabado (mono o estéro)</li>
<li>El codec a usar (mp3, ogg, etc)</li>
<li>El bitrate, o el ancho de banda que se usará para transmitir el stream de audio</li>
</ul>
<p>Ahora bien, todo el trabajo de codificación no lo hace DarkIce, sino que este usa un programa externo para ello. Si se quiere transmitir en mp3, el programa es LAME, que es un encoder de mp3. LAME toma los parámetros de configuración que le pasa DarkIce y codifica el audio en mp3, luego se lo devuelve a DarkIce quien lo inyecta en el servidor de streaming.</p>
<p><em>Icecast2</em></p>
<p>Icecast2 es el programa de streaming propiamente dicho. Este servidor se encarga de gestionar las peticiones de los clientes que piden las transmsiones de audio. Icecast puede manejar varias transmisiones a la vez de distintas fuentes de audio. El programa trabaja en su propio puerto (el 8000) pero toda la transmisión la hace usando el protocolo http, por lo cual es bastante transparente a usuario, de forma que no hay que preocuparse de que proxys o gateways que pueda haber en el medio flitren la conexión.</p>
<p>Icecast levanta además una interfaz web desde la cual se puede administrar el servidor y ver los streams de audio disponibles.</p>
<h4>Pasos para configurar una radio en Linux usando Debian Etch</h4>
<p>Primero que nada debemos asegurarnos de que podemos manejar el audio en nuestro equipo. Necesitaremos hacer funcionar el sistema de sonido de Linux, Alsa. Si no lo tenemos instalado:</p>
<p><code># apt-get install alsa alsa-base alsa-utils</code></p>
<p>Para configurar el sonido corremos el siguiente comando y seguimos las instrucciones:</p>
<p><code># alsaconf</code></p>
<p>Este programa se encargará de detectar nuestra placa de sonido y configurar Alsa para que cada vez que inicie cargue los módulos necesarios en el kernel para que nuestra placa de sonido funcione.</p>
<p>Nos aseguramos también de que el servicio de sonido se levante cada vez que encendamos el equipo:</p>
<p><code># rc-update add alsa default</code></p>
<p>La instalación de DarkIce y de LAME, requiere de un poco más de trabajo. Debido a las políticas de Debian con respecto a software que puede violar patentes LAME no está incluido en los repositorios oficiales y la versión de DarkIce que sí está incluida en los repositorios ha sido compilada sin soporte para mp3. Por lo tanto tendremos que buscar los paquetes necesarios para LAME y recompilar DarkIce con soporte para mp3.</p>
<p>Para instalar LAME, agregamos los repositorios de Debian multimedia a nuestro <code>/etc/apt/sources.list</code></p>
<p><code>deb http://www.debian-multimedia.org etch main</code></p>
<p>Hacemos</p>
<p><code># apt-get update</code></p>
<p># apt-get install lame liblame-dev</p>
<p>Para DarkIce, nos aseguramos de tener algún repositorio con los fuentes de los paquetes en nuestro <code>sources.list</code></p>
<p><code>deb-src http://ftp.debian.org/debian/ etch main contrib non-free</code></p>
<p>Luego hacemos</p>
<p><code># apt-get build-dep darkice</code></p>
<p>Con lo que se descargarán las fuentes de DarkIce y se instalarán todos los paquetes necesarios para que podamos compilarlo.</p>
<p>Dentro del directorio de los fuentes de DarkIce que se generará, modificamos el archivo que indica cómo debe ser compilado el paquete para Debian. Configuraremos una opción<code></code> para que incluya el soporte para mp3 a través de LAME</p>
<p><code># vi darkice-0.17.1/debian/rules</code></p>
<p>Nos aseguramos de que esta línea quede así (con el parámetro <code>--with-lame</code>)</p>
<p><code>DEB_CONFIGURE_EXTRA_FLAGS := --prefix=/usr --sysconfdir=/usr/share/doc/darkice/examples --with-lame</code></p>
<p>Para compilarlo y empaquetarlo hacemos:</p>
<p><code># apt-get source --build darkice</code></p>
<p>Instalamos luego el archivo .deb resultante<br />
<code><br />
# apt-get install darkice_0.17.1-3_i386.deb</code></p>
<p>y listo, ya tenemos DarkIce con soporte para mp3.</p>
<p>Como último detalle debemos recordar no actualizar DarkIce desde los repositorios oficales, para no perder los cambios, o recompilarlo de la misma manera cada vez que aparezca una nueva versión.</p>
<p>Ahora que el software está instalado vamos a configurarlo. Empezamos por Icecast2. Modificamos <code>/etc/icecast2/icecast.xml</code></p>
<p><code>&lt;authentication&gt;<br />
&lt;!-- Sources log in with username 'source' --&gt;<br />
&lt;source-password&gt;sourcepass&lt;/source-password&gt;<br />
&lt;!-- Relays log in username 'relay' --&gt;<br />
&lt;relay-password&gt;hackme&lt;/relay-password&gt;</code></p>
<p><code><br />
&lt;!-- Admin logs in with the username given below --&gt;<br />
&lt;admin-user&gt;admin&lt;/admin-user&gt;<br />
&lt;admin-password&gt;adminpass&lt;/admin-password&gt;<br />
&lt;/authentication&gt;</code></p>
<p>Definimos dos usuarios, con sus respectivas contraseñas. Por un lado el usuario del programa fuente; luego configuraremos DarkIce con esa contraseña para que se conecte a Icecast2. Por otro lado el usuario administrador, que es el usuario que utilizaremos para controlar Icecast2 por la interfaz web que posee. Con esta configuración nos basta para que Icecast2 funcione como queremos.</p>
<p>La mayor parte de la configuaración de nuestro stream de audio la tendremos que definir en la configuración de DarkIce.</p>
<p>DarkIce no se instala como un servicio,  y no trae un archivo de configuración por defecto, por lo cual tendremos que copiar el que viene en la documentación y modificarlo a nuestro gusto</p>
<p><code># cp /usr/share/doc/darkice/examples/darkice.cfg  /etc</code></p>
<p>El archivo es de tipo .inf y se divide en una sección general, otra que define la entrada de audio (input) y varias secciones de ejemplo con la configuración para diferentes clases de servidores de streaming de audio. Como nos interesa Icecast2,  borramos todas las que no se ajusten a este servidor.</p>
<p>Las diferentes secciones deberían quedar así:<br />
<code><br />
[general]<br />
duration        = 0</code><br />
<code><br />
bufferSecs      = 5</code></p>
<p>reconnect       = yes</p>
<p>Nos interesa el parámetro duration, donde ponemos como valor &#8220;0&#8243; (cero) para que DarkIce no ponga duración a la transmisión, sino que sea indefinida.<br />
<code><br />
[input]<br />
device          = /dev/dsp<br />
sampleRate      = 44100<br />
bitsPerSample   = 16<br />
channel         = 2<br />
</code><br />
La opción <code>sampleRate</code> indica el muestreo que se hará sobre el audio al codificarlo. Mientras más muestras por segundo se tomen del audio para pasarlo de analógico a digital, mejor será la calidad del sonido. Pero debemos tener en cuenta que si subimos la calidad también aumentará la cantidad de datos codificados, y quizás tengamos que aumentar el bitrate o ancho de banda de la transmisión.</p>
<p>Si queremos que nuestro audio sea codificado y transmitido en estéreo debemos configurar el valor de <code>channel</code> en <code>2</code>.</p>
<p><code>[icecast2-0]<br />
bitrateMode     = abr</code><br />
<code><br />
format          = mp3</code></p>
<p>bitrate         = 128</p>
<p>server          = localhost</p>
<p>port            = 8000</p>
<p>password        = sourcepass</p>
<p>mountPoint      = fmlinux</p>
<p>name            = Radio GNU/Linux</p>
<p>description     = Una radio especial</p>
<p>url             = http://www.radio-linux.com</p>
<p>genre           = radio</p>
<p>public          = yes</p>
<p>En esta sección configuramos la conexión con el servidor Icecast2. Ponemos la dirección ip o nombre de nuestro servidor que en nuestro ejemplo funciona en el mismo host. El puerto por defecto es el <code>8000</code>, pero dependiendo de la configuranción podría ser cualquier otro.</p>
<p>El password debe coincidir con el que pusimos en la configuración de Icecast2 para el programa fuente. Definimos también que el formato sea mp3 para que DarkIce sepa que encoder utilizar (otra opción es codificar en ogg). El punto de montaje, es el nombre con el que se identificará a nuestra transmisión en el servidor de streaming, por eso debemos ponerle un nombre que sea descriptivo.</p>
<p>El bitrate, se refiere al ancho de banda que va a necesitar el stream de audio para ser transmitido. Si queremos más calidad podemos aumentar el bitrate, pero desde luego no podemos limitarlo indefinidamente, ya que necesitaremos disponer de mucho ancho de banda de subida en nuestro servidor y de bajada en el cliente.</p>
<p>Antes de poner todo a andar debemos asegurarnos de que en el mezclador del sistema de sonido (Alsa) la entrada de línea sea el dispositivo elegido para grabar. Podemos usar alsamixer para configurar de forma gráfica el audio. Dentro de alsamixer presionamos <code>F4</code> y se nos muestran los controles de grabación.</p>
<p>Para nuestra tarjeta de sonido (una Intel High Definition Audio), estos son los controles que se nos muestran:</p>
<p><img src="http://img186.imageshack.us/img186/2248/mezcladorfm4.png" alt="alasmixer" height="372" width="581" /></p>
<p>Como vemos, tenemos que definir dos cosas: Que la entrada de línea este grabando, identificado en rojo con la palabra <code>CAPTUR</code> (de no ser así, con la barra espaciadora lo cambiamos), y por otro lado que el nivel del volumen para la captura esté lo suficientemente alto.</p>
<p>Alsa guarda los valores del mezclador y los reestablece cada vez que se inicia. De cualquier forma podemos usar el comando <code>amixer</code> en algún script si queremos poner a mano los valores del mezclador. Aunque hay que reconocer que el comando <code>amixer</code> es bastante más difícil de utilizar que <code>alsamixer</code>, ya que no es gráfico.</p>
<p>Si todo ha ido bien, solo tenemos que levantar los servicios. Para levantar Icecast2 primero editamos <code>/etc/default/icecast2 </code>y habilitamos el servicio.</p>
<p><code>ENABLE=true</code></p>
<p>luego hacemos<br />
<code><br />
# /etc/init.d/icecast2 start</code></p>
<p>DarkIce no corre como servicio por lo que tendremos que ejecutarlo a mano e indicarle dónde buscar el archivo de configuración. Agregamos un &#8220;&amp;&#8221; al final para que corra en background.</p>
<p><code># darkice -c  /etc/darkice.cfg &amp;</code></p>
<p>Luego podemos crear un script que corra al inicio del sistema para que se inicie DarkIce con estos parámetros.</p>
<p>Para verificar que todo anda, nos conectamos al servidor web que levanta Icecast2 usando un navegador.</p>
<p><code>http://localhost:8000</code></p>
<p>Desde allí podremos ver las transmisiones que el servidor ofrece y si entramos en la parte de administración con el password que pusimos en la configuración de Icecast2, podremos ver los programas fuentes conectados.</p>
<p>Pero como la prueba definitva para saber si el servidor funciona es escuchar el audio, nos conectamos con un cliente al servidor.  Usamos cualquier programa de reproducción de audio que soporte streaming (algunos: xmms, winamp, quod-libet, rythmbox, vlc, kaffeine). Nosotros usaremos mplayer, ya que ni siquiera tendermos que abrir la parte gráfica. Tenemos en cuenta que debemos usar el puerto 8000 e indicar el punto de montaje (en nuestro caso habíamos definido fmlinux).</p>
<p><code># mplayer  http://www.radio-linux.com:8000/fmlinux</code></p>
<p>Si todo va bien, deberíamos ver como después de unos segundos que mplayer tarda en cargar el búfer de audio, nuestra transmsión suena en el equipo cliente.</p>
<p>Esto es todo, ahora podemos dedicarnos a sintonizar nuestra radio y a gastar ancho de banda en ociosidades y demás que para eso pasamos tanto tiempo configurandolo&#8230;</p>
<p>Links sobre el tema</p>
<p><a href="http://www.icecast.org/">Página oficial de Icecast2</a></p>
<p><a href="http://darkice.tyrell.hu/">Página oficial de DarkIce</a></p>
<p><a href="http://www.alsa-project.org/">Página oficial de Alsa</a></p>
<p><a href="http://lame.sourceforge.net/">Página oficial de LAME </a></p>
<p><a href="http://linuxtuneup.blogspot.com/2006/11/compile-darkice-with-mp3-support.html">Blog con detalles para recompilar DarkIce con soporte Mp3 </a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=13&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2007/10/12/una-radio-en-linux/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>

		<media:content url="http://img234.imageshack.us/img234/6119/streamingpx6.png" medium="image">
			<media:title type="html">Diagrama de una radio por internet</media:title>
		</media:content>

		<media:content url="http://img186.imageshack.us/img186/2248/mezcladorfm4.png" medium="image">
			<media:title type="html">alasmixer</media:title>
		</media:content>
	</item>
		<item>
		<title>Sendmail y el MSP</title>
		<link>http://federicosayd.wordpress.com/2007/09/27/sendmail-y-el-msp/</link>
		<comments>http://federicosayd.wordpress.com/2007/09/27/sendmail-y-el-msp/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 16:21:40 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[correo electónico]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/2007/09/27/sendmail-y-el-msp/</guid>
		<description><![CDATA[Hace un tiempo me tocó volver a instalar Sendmail en unos equipos que administro. Después de tenerlos andando en un derivado un tanto arcaico de RedHat (WhiteBox), la tarea era pasarlos a Debian. Creía que las cosas no iban a ser muy diferentes; los mismos pasos básicos y repetitivos que se encuntran en 10.000 manuales [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=12&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo me tocó volver a instalar Sendmail en unos equipos que administro. Después de tenerlos andando en un derivado un tanto arcaico de RedHat (WhiteBox), la tarea era pasarlos a Debian. Creía que las cosas no iban a ser muy diferentes; los mismos pasos básicos y repetitivos que se encuntran en 10.000 manuales en la web para configurar el viejo y querido (y odiado) Sendmail. Sin embargo para mi sorpresa algunas cosas habían cambiado en la configuración y en el modelo de funcionamiento de Sendmail. En la escena aparecía Sendmail MSP y había que activarlo para que algunas cosas funcionaran.</p>
<p><span id="more-12"></span></p>
<h4>Qué es MSP</h4>
<p>Las últimas versiones de Sendmail dividen el servicio de Sendmail en dos partes, el MTA y el MSP. El MTA de seguro lo conocemos, es el famoso Mail Transport Agent, pero el MSP? Bueno con MSP nos referimos Mail Submission Program. Pero, ¿por qué la división?</p>
<p>La respuesta tiene que ver con un RFC, una de esas tantas normas que gobiernan Internet. Según el RFC nº 2476 el servicio de correo electrónico debe dividirse claramente en dos partes: MTA y MSP y la división tiene que ver con el tipo de conexión que lleva a cabo el servidor</p>
<h4>MTA: Conexión servidor &#8211; servidor</h4>
<p>Si el servidor se está comunciando con otro servidor de correo (otro MTA) para tramitar el envío del los correos electrónicos, entonces decimos que funciona como MTA, o sea agente de transferencia de correo. Puede ser que para entregar el correo, Sendmail (en nuestro caso) tenga que comunicarse con un servidor de correo, pero también puede ser que el mensaje tenga que pasar por varios servidores MTA antes de llegar a destino; lo que comunmente se llama relaying. El relaying por lo tanto lo hacen solo los servidores MTA.</p>
<h4>MSP: Conexión cliente &#8211; servidor</h4>
<p>Si la conexión se da entre el cliente de correo electrónico (también llamado MUA) y el servidor que luego lo se encargará de la transferencia (Sendmail) entonces se dice que el servidor está actuando como MSP o Mail Submission Program. La diferencia es que aquí el servidor solo acepta un mensaje de un cliente y lo pone en la cola de salida. Luego cumpliendo la función de MTA, se comunicará con otros servidores de correo para que el mensaje llegue a su destino.</p>
<p>En versiones anteriores de Sendmail que no seguían el RFC nº 2476, se levantaba un sólo servidor que actuaba como MTA y MSP indistintamente. En las últimas versiones de Sendmail, si se activa el MSP, veremos que incluso tiene asignado un puerto específico, el 587, para que escuche las conexiones de los clientes de correo electrónico. Además todo el correo que es generado localmente dentro del servidor, ya sea por un cliente de correo, por el comando mail, el plugin vacation o los mails que envía el mismo sistema, es enviado a Sendmail-MSP. Debido a esto, si no activamos el servidor MSP no podremos enviar correo localmente.</p>
<p>En teoría si configuramos nuestro cliente de correo para que se comunique con su servidor saliente en el puerto 587, tiene que funcionar sin ningún problema. En la práctica esta constumbre no está difundida y se sigue configurando el puerto 25 para inyectar el correo del cliente en el servidor, aunque según el RFC este puerto deba usarse solo para conexiones entre MTA&#8217;s.</p>
<h4>El por qué de la separación</h4>
<p>La pregunta es por qué hacer esta separación cuando toda la vida los servidores no han hecho distinción entre las conexiones entre servidores y las conexiones entre cliente y servidor. Una lectura del RFC implicado nos dice que, entre otas cosas, separar el MTA del MSP hace que sea más fácil implementar pólitcas de seguridad contra el correo no deseado y el relaying no autorizado.</p>
<h4>Configurando Sendmail para que levante el MSP</h4>
<p>La línea que hay que editar para que levante el MSP  es solo una dentro de sendmail.mc</p>
<p><code>DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, Addr=127.0.0.1')dnl</code></p>
<p>Si dejamos el parámetro <code>Addr</code> en <code>127.0.0.1</code>, entonces el MSP solo escuchara en la interfaz local y enviará los correos generados localmente. Los clientes de correo o MUA&#8217;s seguirán conectándose al puerto 25.</p>
<p>Si queremos tener activo el MSP junto con el MTA, debemos tener cuidado de no comentar la línea que se refiere al MTA. La mayoría de los manuales para configurar Sendmail nos dicen que lo primero que debemos hacer en una configuración estándar es comentar la siguiente línea:</p>
<p><code>DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl</code></p>
<p>Porque de lo contrario Sendmail escuchará solo en la interfaz local.</p>
<p>Pero si comentamos esta línea y dejamos descomentada la del MSP, Sendmail entenderá que solo debe levantarse como MSP y solo escuchará en el puerto 587. Entonces es más correcto dejar descomentada la línea pero indicarle que escuche en todas las interfaces.</p>
<p><code>DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=0.0.0.0')dnl</code></p>
<p>El <code>0.0.0.0</code> le dice a Sendmail que escuche como MTA en todas las direcciones de nuestro servidor. Claro está que podemos poner una ip específica si queremos que nuestro servidor escuche en una solo ip como MTA. Lo mismo vale para la línea que configura Sendmail como MSP.</p>
<p>Como siempre hay que recordar que debemos compilar los archivos .mc después de editarlos y reiniciar el servicio para que tome los cambios.<br />
<code><br />
# make</code></p>
<p>#/etc/init.d/sendmail restart</p>
<p>Dos detalles más que agregar. La  configuración del MSP es manejada por el archivo submit.mc; generalmente no hay que tocar nada dentro de este archivo. Por otra parte la cola de los correos de Sendmail-MTA está en <code>/var/spool/mqueue</code> mientras que la de Sendmail-MSP está en <code>/var/spool/client-mqueue</code></p>
<p>Resta decir que no encontré si los demás MTA&#8217;s &#8211; MSP&#8217;s disponibles (Postfix, Qmail, Exim, etc.) se atengan a la RFC mencionada. Parece ser que el cambio no es radical, pero que afecta a la configuración de Sendmail, afecta.</p>
<p>Espero que esta información les sea de utilidad a aquellos que todvía usan Sendmail y se encuentren desorientados con estos pequeños cambios.</p>
<h4>Links sobre el tema</h4>
<p><a href="http://www.ietf.org/rfc/rfc2476.txt?number=2476" target="_blank">RFC 2476 &#8211; Message Submission</a></p>
<p><a href="http://www.sendmail.org/m4/msp.html" target="_blank">Página de Sendmail sobre submit.mc</a></p>
<p><a href="http://www.sendmail.org/security/secure-install.php">Página de Sendmail explicando el por qué se Sendmail-MSP </a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=12&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2007/09/27/sendmail-y-el-msp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>
	</item>
		<item>
		<title>Montando un iniciador iSCSI en Linux</title>
		<link>http://federicosayd.wordpress.com/2007/09/13/montando-un-iniciador-iscsi-en-linux/</link>
		<comments>http://federicosayd.wordpress.com/2007/09/13/montando-un-iniciador-iscsi-en-linux/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 17:10:02 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[iscsi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/2007/09/13/montando-un-iniciador-iscsi-en-linux/</guid>
		<description><![CDATA[Este post es una continuación del anterior (bueno y del anterior del anterior ). En la última entrada explicamos cómo instalar un target o servidor iSCSI en un sistema Linux con Debian Etch. Ahora vamos a continuar con el siguiente paso que es instalar el cliente iSCSI, también en un equipo con Linux, que como [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=10&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Este post es una continuación del anterior (bueno y del anterior del anterior <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ). En la última entrada explicamos cómo instalar un target o servidor iSCSI en un sistema Linux con Debian Etch. Ahora vamos a continuar con el siguiente paso que es instalar el cliente iSCSI, también en un equipo con Linux, que como dijimos en los artículos anteriores se le conoce como iniciador iSCSI.</p>
<p><span id="more-10"></span></p>
<p>Plantearemos un ejemplo en el que nuestro disco iSCSI contiene una partición con los datos de los recursos compartidos de un servidor Samba. Para ello necesitaremos hacer lo siguiente:</p>
<ul>
<li>Instalar y configurar el iniciador iSCSI</li>
<li>Conectar automáticamente el recurso iSCSI</li>
<li>Particionar y formatear el disco iSCSI</li>
<li>Montar automáticamente las particiones dentro del disco cada vez que se conecte</li>
<li>Desmontar las particiones y desconectar el recurso iSCSI cuando el sistema se apague</li>
</ul>
<h4>Instalación de open-iscsi</h4>
<p>Lo primero que vamos a hacer es instalar el software iniciador. En Linux contamos con varios iniciadores iSCSI, sin embargo el más usado es open-iscsi, además está dentro de la paquetería de Debian. Lo instalamos</p>
<p><code># apt-get install open-iscsi</code></p>
<p>Esto nos instalará un script de inicio que carga los módulos y lanza un programa que controla el iniciador (<code>iscsid</code>), y un programa para configurar nuestro iniciador (<code>iscsiadm</code>). Los módulos para iSCSI ya están presente en los kernels actules (desde el 2.6.18 en adelante) por eso no se incluyen en el paquete de <code>open-iscsi</code>.</p>
<p>Lo primero que debemos hacer es iniciar el servicio</p>
<p><code># /etc/init.d/open-iscsi start</code></p>
<h4>Configuración de open-iscsi</h4>
<p>La configuración de <code>open-iscsi</code> se realiza a través del comando <code>iscsiadm</code> y la misma se guarda en una base de datos. Si queremos cambiar algún parámetro de la configuración tenemos que hacerlo a través de <code>iscsiadm</code>.</p>
<p>Detección del target</p>
<p>En primer lugar tenemos que indicarle a <code>iscsiadm</code> que detecte nuestro target iSCSI y lo agregue a su base de datos. Hay que aclarar que <code>iscsiadm</code> tiene tres formas de operación</p>
<p><code>discovery</code>: En este modo se pueden descubrir targets y agregarlos a la base de datos.</p>
<p><code>node</code>: En este modo se administran los targets ya descubiertos y se pueden visualizar datos acerca de estos nodos, así como conectarse a ellos.</p>
<p><code>session</code>: En este modo se administran los targets a los que se está conectados (en los que se ha hecho login).</p>
<p>Para descubrir nuestro target usamos obviamente &#8220;<code>discovery</code>&#8220;<br />
<code><br />
# iscsiadm -m discovery -t sendtargets -p 192.168.1.110<br />
192.168.1.110,1 iqn.2005-02.au.com.empresa:san.200G.samba</code></p>
<p>Con lo que le indicamos a <code>iscsiadm</code> que descubra los targets que le ofrece el portal ubicado en 192.168.1.110. El método que usa para descubrirlo es &#8220;<code>sendtargets</code>&#8220;, que es el método soportado más estable a la fecha (existen otros métodos, como por ejemplo uno que resuelve nombre de targets).</p>
<p>Como vemos descubrió el target que instalamos anteriormente.</p>
<p>Por lo cual, si hacemos solo:</p>
<p><code># iscsiadm -m discovery<br />
192.168.1.110:3260 via sendtargets</code></p>
<p>Vemos que la información del servidor iSCSI target descubierto quedó almacenada en la base de datos de iscsiadm</p>
<p>Ahora, si queremos saber cuál es la información que se almacenó sobre el target descubierto, tenemos que operar en modo nodo</p>
<p><code># iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110<br />
node.name = iqn.2005-02.au.com.empresa:san.200G.samba<br />
node.transport_name = tcp<br />
node.tpgt = 1<br />
node.active_conn = 1<br />
node.startup = manual<br />
node.session.initial_cmdsn = 0<br />
node.session.auth.authmethod = None<br />
node.session.auth.username =<br />
node.session.auth.password =<br />
node.session.auth.username_in =<br />
node.session.auth.password_in =<br />
node.session.timeo.replacement_timeout = 120<br />
node.session.err_timeo.abort_timeout = 10<br />
node.session.err_timeo.reset_timeout = 30<br />
node.session.iscsi.InitialR2T = No<br />
node.session.iscsi.ImmediateData = Yes<br />
node.session.iscsi.FirstBurstLength = 262144<br />
node.session.iscsi.MaxBurstLength = 16776192<br />
node.session.iscsi.DefaultTime2Retain = 0<br />
node.session.iscsi.DefaultTime2Wait = 0<br />
node.session.iscsi.MaxConnections = 1<br />
node.session.iscsi.MaxOutstandingR2T = 1<br />
node.session.iscsi.ERL = 0<br />
...<br />
</code><br />
<em> Configuración de la autenticación</em></p>
<p>Si el target tiene configurada la autenticación, para pedir al iniciador un usuario y una contraseña, entonces debemos configurar esa información en nuestro iniciador. Para ello también usamos <code>iscsiadm</code> y modificamos la información almacenada para el target ya descubierto.<br />
<code># iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 -o update -n node.session.auth.username -v usuario-iniciador<br />
# iscsiadm -m node --targetname iqn.2005-02.au.com.empresa:san.200G.samba -p 192.168.1.110 -o update -n node.session.auth.password -v clave-iniciador</code></p>
<p>El comando ahora varía porque include la opcion &#8220;<code>-o update</code>&#8220;, lo que indica que la operación que vamos a llevar a cabo sobre el registro del nuestro target es de actualización de la configuración.</p>
<p>La opción &#8220;<code>-n</code>&#8220;, indica el registro que vamos a actualizar, que como se puede ver lo hemos tomado de las salida del mismo comando pero sin la opción de actualización. Mientras que con &#8220;<code>v</code>&#8221; indicamos el valor que debe tener dicho registro. De manera que la configuración quedaría así:</p>
<p><code>node.session.auth.username=usuario-iniciador<br />
node.session.auth.password=clave-iniciador</code></p>
<p>Obviamente, el usuario y la clave deben corresponder con los que configuramos en el servidor iSCSI.</p>
<p><em>Login en el dispositivo</em></p>
<p>Ahora que la información del target ya está configurada, podemos empezar a usarlo. Para ello debemos hacer login o autenticarnos en el target.</p>
<p><code># iscsiadm -m node -targetname iqn.2005-02.au.com.empresa:san.200G.samba </code><code>-p 192.168.1.110 </code><code>-l</code></p>
<p>La opción &#8220;<code>-l</code>&#8221; indica que queremos hacer login en el target. Esto significa que el disco iSCSI estará disponible como un dispositivo de hardware más en nuestro servidor. Para comprobar si el disco iSCSI se detecto y se &#8220;conectó&#8221; al equipo, basta con ver la salida de <code>dmesg</code></p>
<p><code>#dmesg<br />
SCSI device sda: 390620475 512-byte hdwr sectors (199998 MB)<br />
sda: Write Protect is off<br />
sda: Mode Sense: 77 00 00 08<br />
SCSI device sda: drive cache: write through<br />
SCSI device sda: 390620475 512-byte hdwr sectors (199998 MB)<br />
sda: Write Protect is off<br />
sda: Mode Sense: 77 00 00 08<br />
SCSI device sda: drive cache: write through<br />
sda: sda1<br />
sd 1:0:0:0: Attached scsi disk sda</code></p>
<p>En el ejemplo el disco iSCSI se detectó y se &#8220;conectó&#8221; al equipo como un disco SCSI más. También notamos que para el sistema nuestro disco iSCSI no se diferencia de un dsico SCSI conectado físicamente.</p>
<h4>Creación de particiones y formateo.</h4>
<p>Aunque el disco iSCSI ya está conectado, no es usuable hasta que definamos particiones en él y las formateemos en un sistema que el kernel maneje. Para ello podemos usar <code>fdisk</code> y <code>mkfs</code> en cualquiera de sus variantes. La información de <code>dmesg</code> que obtuvimos anteriormente nos indica que el disco se reconoció como <code>/dev/sda</code></p>
<p><code># fdisk /dev/sda</code></p>
<p>Para nuestro ejemplo creamos una sola partición con todo el espacio (<code>/dev/sda1</code>) y la formateamos como <code>ext3:</code></p>
<p><code># mkfs.ext3 /dev/sda1</code></p>
<h4>Montaje automático del dispositivo de hardware iSCSI</h4>
<p>Como último punto relacionado con la configuración del iniciador, deberíamos definir que se haga login al target y se conecte el disco automáticamente cada vez que se inicie el servicio <code>open-iscsi</code>, de manera que no tengamos que hacerlo a mano luego de que nuestro sistema inicie. Volvemos a utilizar iscsiadm para modificar el parámetro que maneja esta opción:</p>
<p><code># iscsiadm -m node -targetname iqn.2005-02.au.com.empresa:san.200G.samba </code><code>-p 192.168.1.110 </code><code>-o update -n node.conn[0].startup -v automatic</code></p>
<p>Luego de esto, si hacemos</p>
<p><code># /etc/init.d/open-iscsi restart</code></p>
<p>El disco iSCSI debería ser detectado automáticamente y conectado al equipo.</p>
<h4>Montaje automático del filesystem</h4>
<p>En nuestro ejemplo queremos que el disco iSCSI sea usado por un servicio, en este caso para almacenar los datos de usuarios que compartiremos con Samba. Por ello, necesitamos no solo que el disco iSCSI se conecte automáticamente sino que también las particiones dentro del disco se monten al inicio para que estén disponibles para el servicio que las usará.</p>
<p>En los sistemas Linux, el fichero <code>/etc/fstab</code> indica qué particiones deben ser montadas en el inicio, dónde y con qué opciones.</p>
<p><em>Identificación del dispositivo de hardware.</em></p>
<p>Para poder indicarle al sistema automáticamente qué partición debemos montar, tenemos que saber el dispositivo que apunta a dicha partición. En los ejemplos anteriores vimos que al iniciarse el servicio <code>open-iscsi</code> nuestro disco iSCSI se detectó como <code>/dev/sda</code> y por lo tanto la partición dentro de este disco es <code>/dev/sda1.</code></p>
<p>El problema que se presenta es que los nombres que se dan a los dispositivos iSCSI no son estáticos y pueden variar cada vez que se reinicie el equipo. Si tuvieramos más de un disco iSCSI conectado al equipo, estos pueden ser cargados en distinto orden y por lo tanto los nombres no serían consistentes.</p>
<p>Por ejemplo, puede ser que dos discos iSCSI, uno de 100 Gb y otro de 200 Gb se detectaran como <code>/dev/sda</code> y <code>/dev/sdb</code> respectivamente; pero que luego de reiniciar el servidor, el de 100 Gb se conectara como <code>/dev/sdb</code> y el de 200 Gb como <code>/dev/sda</code>.</p>
<p>También pudiera suceder que un dispositivo usb conectado al equipo tomara el nombre <code>/dev/sda</code>, con lo que el nombre de nuestro dispositivo iSCSI tomaría otro nombre.</p>
<p>Por ello es necesario buscar una forma de referirnos a nuestro dispositivo de forma estática. Afortunadamente hay una forma de solucionarlo. El programa Udev es el encargado de crear los nodos de dispositivos conectados al sistema (archivos de dispositivos que se crean en <code>/dev</code>), darles un nombre, y crear links simbólicos para referirse a los dispositivos de más de una forma. Las últimas versiones de Udev crean links simbólicos persistentes a los dispositivos iSCSI.</p>
<p>El comando <code>udevinfo</code> nos dice qué links creó Udev para nuestro dispositivo.</p>
<p><code># udevinfo --query symlink --name /dev/sda1<br />
disk/by-id/scsi-149455400000000000000000001000000980b00000d000000 disk/by-path/ip-192.168.1.110:3260-iSCSI-iqn.2005-02.au.com.empresa:san.200G.samba-lun-0 disk/by-uuid/3c5c1fc8-cec1-41d4-8b92-11becd5f4832</code></p>
<p><code>Udevinfo</code> nos muestra tres links simbólicos que creó en <code>/dev</code>. De manera que podemos referirnos a nuestro dispositivo por su nodo o nombre en <code>/dev</code> (en el ejemplo <code>/dev/sda1</code>)  o usando cualquiera de estos tres links creados por Udev. De estos links, los dos útlimos nos son de utilidad porque identifican unívocamente a nuestro disco.</p>
<p>El primero está creado usando el path, que en el caso incluye el ip del servidor iSCSI, el puerto, el nombre del target, y el identificador de la partición (<code>lun-0</code>).</p>
<p>El segundo se crea a partir del uuid del disco, que es un identificador único que se asigna a la partición cuando es creada, y que por ende se borra solamente  si eliminamos la partición. El uuid de nuesrtra partición según udevinfo es:</p>
<p><code>3c5c1fc8-cec1-41d4-8b92-11becd5f4832</code></p>
<p>Teniendo esta información, ya sabemos qué nodo en <code>/dev</code> (o qué link simbólico) tenemos que usar en nuestra entrada en <code>/etc/fstab</code>. En nuestro caso vamos a utilizar la identificación por path, usamos por lo tanto el siguiente link simbólico para el dispositivo:</p>
<p><code>/dev/ disk/by-path/ip-192.168.1.110:3260-iSCSI-iqn.2005-02.au.com.empresa:san.200G.samba-lun-0	/datos	auto rw 	0	0</code></p>
<p>Sin embargo si reiniciamos el servidor, vemos que el disco iSCSI no es montado y que el sistema da un error diciéndonos que el dispositivo no existe. La razón es simple: el script que monta las particiones en <code>/etc/fstab</code> es cargado antes de que la red y que el servicio  iniciador <code>open-iscsi</code>. Por lo tanto el dispositivo es creado luego y por eso no se monta.</p>
<p>La documentación del comando mount nos dice que existe una opción de montaje para discos en red. La opción es &#8220;<code>_netdev</code>&#8220;. Esta opción indica que la partición no debe ser montada con las demás, sino que se deja sin montar para que un script posterior lo haga una vez que la red esté disponible.</p>
<p>En Debian el script que se encarga de montar este tipo de particiones es <code>/etc/init.d/mountnfs.sh</code></p>
<p>Este script es  ejecutado inmediatamente después de que la red está configurada y operando (es llamado dentro de <code>/etc/network/if-up.d</code>). El script está hecho para montar principalmente recursos nfs o samba por la red. Sin embargo al mirar el script vemos que no nos sirve para dispositivos iSCSI, porque entre el inicio de la red y el montado del disco iSCSI, necesitamos que se inicie el servico <code>open-iscsi</code>, y este script no provee esta opción.</p>
<p>De nuevo Udev nos provee un método para solucionar este problema. Además de nombrar dispositivos, Udev permite que se ejecuten programas una vez que un dispositivo es reconocido y conectado al sistema. En este caso, tenemos que decirle a Udev que ejecute el comando <code>mount</code> una vez que el disco iSCSI es reconocido y conectado.</p>
<p>De manera que la forma en que se monta nuestro disco, tomando en cuenta el sistema de inicio de Linux, es la siguiente:</p>
<ol>
<li>Se montan los sistemas de archivos que no dependen de la  red</li>
<li>Se configura y levanta la red</li>
<li>Se levanta el servicio iniciador <code>open-iscsi</code></li>
<li><code>open-iscsi</code> conecta el disco iSCSI</li>
<li> Udev reconoce un nuevo dispositivo y corre un comando para  	montar las particiones dentro de él.</li>
</ol>
<p>La configuración de Udev funciona en base a reglas. Estas reglas comparan que  la información sobre el hardware conectado coincida con ciertos valores y si es así, crean el nodo del dispositivo con cierto nombre o ejecutan algún programa.</p>
<p>En nuestro caso debemos obtener los valores que Udev recibe de nuestro dispositivo remoto e identificar uno que nos diga que el dispositivo es un disco iSCSI. Para ello volvemos a usar <code>udevinfo</code></p>
<p><code># udevinfo -q env -n /dev/sda<br />
ID_VENDOR=IET<br />
ID_MODEL=VIRTUAL-DISK<br />
ID_REVISION=0<br />
ID_SERIAL=1494554000000000030303030303100000000000000000000<br />
ID_SERIAL_SHORT=494554000000000030303030303100000000000000000000<br />
ID_TYPE=disk<br />
ID_BUS=scsi<br />
ID_PATH=ip-192.168.1.110:3260-iscsi-iqn.2005-02.au.com.empresa:san.200G.samba-lun-0<br />
ID_FS_USAGE=filesystem<br />
ID_FS_TYPE=ext3<br />
ID_FS_VERSION=1.0<br />
ID_FS_UUID=3c5c1fc8-cec1-41d4-8b92-11becd5f4832<br />
ID_FS_LABEL=<br />
ID_FS_LABEL_SAFE=</code></p>
<p>El comando interroga a Udev y le dice que muestre todos los valores del tipo &#8220;<code>env</code>&#8221; para el dispositivo <code>/dev/sda</code>, o sea, nuestro disco iSCSI.</p>
<p>Nos interesa el valor &#8220;<code>ID_PATH</code>&#8220;, porque su valor contiene la palabra &#8220;iscsi&#8221;.</p>
<p>Creamos el archivo <code>/etc/udev/rules.d/z99_open-iSCSI.rules</code> con la siguiente línea</p>
<p><code>ENV{ID_PATH}=="*iscsi*", RUN+="/bin/mount -a -O _netdev"</code></p>
<p>Esta regla es leída por Udev cada vez que se conecta un dispositivo nuevo al sistema. Lo que hace es verificar que el valor &#8220;<code>ID_PATH</code>&#8221; del dispositivo contenga la cadena &#8220;iscsi&#8221;, si es así, el dispositivo conectado es del tipo iSCSI y por lo tanto corre el comando <code>mount.</code></p>
<p>Como se puede ver, mount se llama con dos parámetros:</p>
<p>&#8220;<code>-a</code>&#8221; para que trate de montar lo que encuentre en <code>/etc/fstab</code></p>
<p>&#8220;<code>-O _netdev</code>&#8221; para que solo monte las entradas de <code>/etc/fstab</code> que tengan marcada la opción &#8220;<code>_netdev</code>&#8220;</p>
<p>Como la entrada en <code>fstab</code> para nuestro disco iSCSI contiene la opción &#8220;<code>_netdev</code>&#8220;, será montado automáticamente.</p>
<p>Si hacemos la prueba y reiniciamos el servicio <code>open-iscsi</code>, veremos que en cuanto Udev detecta el nuevo disco iSCSI, monta la partición que creamos en él.</p>
<p><em>Nota 1: Es importante que el archivo de la regla de Udev tenga en su nombre un número alto, para que sea ejecutada en último lugar; de manera que primero se le de un nombre al dispositivo y se creen los links simbólicos correspondientes.</em></p>
<p><em>Nota 2: Hay que tener en cuenta que esta regla montará cualquier recurso en <code>/etc/fstab</code><code>_netdev</code>&#8220;,  sea o no iSCSI.</em> que tenga la opción &#8220;</p>
<p><em>Nota 3: Para entender más cómo crear reglas de udev, se puede consultar <a title="writing udev rules" href="http://www.reactivated.net/writing_udev_rules.html" target="_blank">esta excelente guía</a></em></p>
<h4>Desmontaje automático</h4>
<p>Desmontar los sistemas de archivos alojados en un disco iSCSI de forma correcta es importante para mantener la integridad de los datos almacenados en ellos. Hay que recordar que las particiones en un disco iSCSI deben ser desmontadas mientras el servicio <code>open-iscsi</code> esta corriendo; si detenemos el servicio <code>open-iscsi</code>, el disco se desconectará del equipo y por lo tanto cuando tratemos de desmontar alguna partición en él, no solo obtendremos un error sino que hasta podríamos perder datos valiosos.</p>
<p>Por lo tanto, debemos asegurarnos de que cuando apaguemos o reiniciemos el servidor, nuestras particiones sean desmontadas correctamente.</p>
<p>Debian Etch (4.0), no tiene ningún script que desmonte las particiones en un disco iSCSI. Por lo tanto, tendremos que crear un script que lo haga automáticamente. La secuencia para hacerlo correctamente, teniendo en cuenta las dependencia que hay entre servicios, es la siguiente:</p>
<p align="left">
<ol>
<li>Detener cualquier programa servidor que utilice los discos iSCSI conectados</li>
<li> Desmontar las particiones en los discos iSCSI</li>
<li> Detener el servicio iniciador <code>open-iscsi</code></li>
<li> Detener el servicio de red</li>
</ol>
<p>Si no se sigue ese orden, lo más probable es que obtengamos algún error.</p>
<p>Para ello creamos el siguiente script, que es solo una modificación del script <code>/etc/init.d/umountnfs.sh</code> de Debian, pero adaptado para el servicio iSCSI:</p>
<p><code>#!/bin/sh</code></p>
<p>PATH=/sbin:/usr/sbin:/bin:/usr/bin<br />
. /lib/init/vars.sh<br />
. /lib/lsb/init-functions</p>
<p>do_stop() {<br />
DIR=&#8221;"<br />
while read DEV MTPT FSTYPE OPTS REST<br />
do<br />
if echo $OPTS | grep &#8220;_netdev&#8221; &gt;/dev/null<br />
then<br />
DIR=&#8221;$MTPT $DIR&#8221;<br />
fi<br />
done&lt;/etc/mtab</p>
<p>if [ $DIR ]<br />
then<br />
[ "$VERBOSE" = no ] || log_action_begin_msg &#8220;Unmounting iSCSI filesystems&#8221;<br />
umount $DIR<br />
ES=$?<br />
[ "$VERBOSE" = no ] || log_action_end_msg $ES<br />
fi</p>
<p>}<br />
case $1 in<br />
start)<br />
;;<br />
restart|reload|force-reload)<br />
echo &#8220;Error argument &#8216;$1&#8242; no supported&#8221; &gt;&amp;2<br />
exit 3<br />
;;<br />
stop|&#8221;")<br />
do_stop<br />
;;<br />
*)<br />
echo &#8220;Usage: umount-iscsi.sh [start|stop]&#8221; &gt;&amp;2<br />
exit 3<br />
;;<br />
esac</p>
<p>Lo que hace el script es recorrer línea por línea el archivo <code>/etc/mtab</code> (este archivo tiene líneas idénticas a las de <code>fstab</code> pero solo para los sistemas de archivos que están montados en el momento), y busca aquellas en las que aparezca la opción &#8220;<code>_netdev</code>&#8220;, entonces desmonta la partición correspondiente a esa línea.</p>
<p>Una vez creado este archivo, le damos permiso de ejecución y lo copiamos a  <code>/etc/init.d</code>.</p>
<p><code># chmod u+x umount-open-iscsi.sh<br />
# cp umount-open-iscsi.sh /etc/init.d/</code></p>
<p>Luego debemos agregar este script a los niveles de ejecución de apagado y reinicio del servidor. En Debian estos niveles son 0 y 6 respectivamente, y se usa el comando <code>update-rc.d</code> para agregarlos.</p>
<p><code># update-rc.d umount-open-iscsi.sh stop 20 0 6 .</code></p>
<p>Lo que hace este comando es crear un link simbólico a nuestro script en los directorios <code>/etc/rc0.d</code> y <code>/etc/rc6.d</code>, con un identificador igual a 20 para indicar el órden en que debe ser ejecutado.</p>
<p><em>Nota: Hay que tener en cuenta que este script desmontará cualquier recurso que encuentre montado con la opción &#8220;<code>_netdev</code>&#8220;, esto puede incluir recursos <code>smb</code> o <code>nfs</code>.</em></p>
<p>Como en Debian, el servicio Samba (que en nuestro ejemplo es el programa que usará el disco iSCSI) tiene un identificador igual a 19 para el apagado, el servicio se apagará antes de que se desmonten las particiones en el recurso iSCSI, lo cual es correcto. Si no fuera así tendríamos que modificar el link simbólico del servicio que use el disco iSCSI, para que se apague antes de que se ejecute el script para desmontar el filesystem.</p>
<p>Ahora bien en Debian, el servicio <code>open-iscsi</code> tiene un identificador igual a 20 en el apagado. Para asegurarnos de que <code>open-iscsi</code> no se apague hasta que no se hayan desmontado las particiones en los discos iSCSI, cambiamos el identificador a un número más alto para que el apagado se ejecute después.<br />
Esto debemos hacerlo en los niveles de ejecución 0 y 6, o sea en los directorios <code>/etc/rc0.d</code> y <code>/etc/rc6.d</code></p>
<p><code># mv K20open-iscsi K21open-iscsi</code></p>
<p>El servicio de red se apaga después, por lo tanto no tenemos que modificarlo.</p>
<p>Este es el último paso y si todo sale bien tendremos nuestro servidor pereparado para conectar a discos iSCSI. A probar ya comentar.</p>
<p><strong>Links sobre el tema:</strong></p>
<p><a title="conciendo-iscsi" href="http://federicosayd.wordpress.com/2007/09/11/conciendo-iscsi/" target="_blank">Post anterior: iSCSI explicado</a></p>
<p><a title="instalando-un-target-iscsi" href="http://federicosayd.wordpress.com/2007/09/11/instalando-un-target-iscsi/" target="_blank">Post anterior: Instalción de un servidor o target iSCSI </a></p>
<p><a title="www.open-iscsi.org" href="http://www.open-iscsi.org/" target="_blank">Página oficial del proyecto open-iscsi </a></p>
<p><a title="writing udev rules" href="http://www.reactivated.net/writing_udev_rules.html" target="_blank">Creación de reglas para Udev</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=10&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2007/09/13/montando-un-iniciador-iscsi-en-linux/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalando un target iSCSI</title>
		<link>http://federicosayd.wordpress.com/2007/09/11/instalando-un-target-iscsi/</link>
		<comments>http://federicosayd.wordpress.com/2007/09/11/instalando-un-target-iscsi/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 14:59:35 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[iscsi]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/2007/09/11/instalando-un-target-iscsi/</guid>
		<description><![CDATA[Existen variedad de servidores iSCSI, muchos de ellos son propietarios y algunas de las empresas que los comercializan son IBM, Sun, HP, etc. Como vemos, son grandes empresas, y por ende el precio de sus soluciones suele ser bastante grande también. Como no queremos pagar demás y estamos seguros de que entendemos muy bien la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=9&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Existen variedad de servidores iSCSI, muchos de ellos son propietarios y algunas de las empresas que los comercializan son IBM, Sun, HP, etc. Como vemos, son grandes empresas, y por ende el precio de sus soluciones suele ser bastante grande también. Como no queremos pagar demás y estamos seguros de que entendemos muy bien la tecnología iSCSI (dando por hecho que leímos <a href="http://federicosayd.wordpress.com/2007/09/11/conciendo-iscsi/" target="_blank">el post anterior en este blog</a> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) como para no necesitar este tipo de soporte; vamos a instalar nuestro porpia SAN, o en buen inglés Storage <span style="text-decoration:line-through;">Área</span> Area Network. Para ello, desde luego usaremos Linux (Debian Etch, por supuesto) y una solución libre para targets iSCSI.</p>
<p><span id="more-9"></span></p>
<p>Dentro de Linux hay unas cuantas soluciones software para montar un servidor o target iSCSI. La más recomendada es <a href="http://iscsitarget.sourceforge.net/">Linux iSCSI Enterprise Target</a>. Las razones son, que a la fecha, es la versión más potente, con activo desarrollo y tiene como ventaja que no hay que recompilar el kernel para poder usarla.</p>
<p>Veamos como podemos instalar un servidor o target como se le menciona en la &#8220;jerga&#8221; iSCSI. Los pasos son los siguientes:</p>
<p><strong>Verificación de la versión del kernel</strong></p>
<p>iSCSI Enterprise Target funciona solo sobre el kernel 2.6.14 o superior. Por eso si nuestro kernel es anterior, entonces tendremos que actualizarlo, o en última instancia, compilar una versión más reciente.</p>
<p>En Debian Etch la versión es superior. Lo mismo siempre podemos hacer</p>
<p><code>#apt-get install linux-image</code></p>
<p>para actualizar a la última versión del kernel.</p>
<p><strong>Instalación del servidor </strong></p>
<p>IET (iSCSI Enterprise Target) no está disponible como un paquete para Debian, por eso tendremos que bajarnos los fuentes y compilarlos. La buena noticia es que es un programa muy pequeño y que la instalación nos deja todo para que funcione bajo Debian.</p>
<p>Descargamos IET y lo descomprimimos</p>
<p><code># tar -xzvf iSCSItarget-0.4.15.tar.gz<br />
# cd iSCSItarget-0.4.15</code></p>
<p>El <code>README</code> nos dice que necesitaremos los fuentes de nuestro kernel para poder compilar los módulos que IET debe cargar para funcionar. De esto también comprendemos que cada vez que actualicemos el kernel será necesario recompilar IET para que cargue módulos que sean compatibles (Está previsto que haya soporte nativo para targets iSCSI en el kernel a futuro). Además también necesitamos las librerías de desarrollo de ssl</p>
<p><code># apt-get install linux-source libssl-dev</code></p>
<p>Luego basta hacer<br />
<code><br />
#make<br />
#make install</code></p>
<p>Con esto se compilarán los módulos del kernel y el servidor iSCSI (ietd). Además se instalará la documentación, los scripts de inicio y los archivo de configuración.</p>
<p><strong>Configuración del target</strong></p>
<p>La configuración de IET se encuentra en <code>/etc/ietd.conf</code></p>
<p>Allí tendremos que configurar dos cosas principalmente:</p>
<ul>
<li>El nombre de nuestro target</li>
<li>El nombre de usuario y la contraseña para la conexión del iniciador</li>
<li>El dispositivo que ofreceremos como target</li>
</ul>
<p>El nombre</p>
<p>El estándar iSCSI define que tanto los target como los iniciadores deben tener un nombre que sigue un patrón, el cual es el siguiente:</p>
<p><code>iqn.[yyyy-mm].[nombre del dominio invertido]:[identificador]</code></p>
<p>Donde:</p>
<p><code>iqn</code> es un término fijo y debe figurar al principio.</p>
<p><code>yyyy-mm</code> es la fecha de alta del dominio de la organización para la que estamos configurando el target</p>
<p>A continuación debe figurar el nombre del dominio invertido</p>
<p>Luego de los &#8220;:&#8221;, un identificador que podemos ponerlo a nuestro gusto, y que puede en muchos casos brindar información del target.</p>
<p>Un ejemplo válido sería:</p>
<p><code>iqn.2005-02.au.com.empresa:san.200G.samba</code></p>
<p>Como vemos el identificador aunque es variable y personalizable, puede reflejar el nombre dado al target, la capacidad y el servicio donde lo usaremos.</p>
<p>En <code>/etc/ietd.conf</code> definimos el nombre de nuestro target</p>
<p><code>Target iqn.2005-02.au.com.empresa:san.200G.samba</code></p>
<p>Si queremos que nuestro target requiera autenticación., podemos definir un usuario y una contraseña para que solo se conecten los iniciadores que nosotros queremos.</p>
<p><code>IncomingUser usuario-iniciador clave-iniciador</code></p>
<p>Luego debemos definir qué dispositivo ofreceremos como target. Debemos poner una línea como la siguiente:</p>
<p><code>Lun 0 Path=/dev/sda3,Type=fileio</code></p>
<p>En este ejemplo el primer dispositivo que estamos ofreciendo es la partición <code>/dev/sda3</code> del servidor. La documentación nos dice que además de particiones podemos usar discos enteros, volúmenes LVM y RAID, e incluso archivos. En cualquier caso solo hay que definir el path.</p>
<p>El archivo contiene muchos parámetros más de configuración, que en la mayoría de los casos tienen que ver con la performance del servidor. En nuestro ejemplo, configurando estos tres parámetros nos basta.</p>
<p>Una vez que hemos configurado el servidor y que tenemos lista nuestra partición o disco a ofrecer, debemos levantar el servidor.</p>
<p><code># /etc/init.d/iSCSI-target start</code></p>
<p>Con lo cual se cargará el módulo iSCSI target en el kernel y se levantará el servidor ietd que es el que gestionará las peticiones de los iniciadores.</p>
<p>Por último si queremos que nuestro servicio iSCSI target inicie junto con el servidor, debemos agregarlo al inicio del sistema.</p>
<p><code># update-rc.d iSCSI-target defaults</code></p>
<p>Ya tenemos nuestro servidor iSCSI instalado y listo para servir discos a nuestra red. Ahora necesitamos un iniciador iSCSI para que se conecte a nuestro target y podamos empezar a usar los discos por la red. No preocuparse porque ese es el tema del próximo post.</p>
<p>Links sobre este tema:</p>
<ul>
<li><a href="http://iscsitarget.sourceforge.net/" target="_blank">iSCSI Enterprise Target</a></li>
<li><a href="http://www.ardistech.com/iscsi/" target="_blank">Ardis iSCSI Target (Proyecto sobre el que está basado IETD)</a></li>
<li><a href="http://www.cuddletech.com/articles/iscsi/index.html" target="_blank">Guía para instalar un target iSCSI en Linux</a></li>
<li><a href="http://iscsitarget.sourceforge.net/wiki/index.php/Unoffical_DEBs" target="_blank">Paquetes no oficiales de IET para Debian</a> Gracias  a Federico Lazcano!</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=9&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2007/09/11/instalando-un-target-iscsi/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>
	</item>
		<item>
		<title>Conociendo iSCSI</title>
		<link>http://federicosayd.wordpress.com/2007/09/11/conciendo-iscsi/</link>
		<comments>http://federicosayd.wordpress.com/2007/09/11/conciendo-iscsi/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 13:52:29 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[iscsi]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/2007/09/11/conciendo-iscsi/</guid>
		<description><![CDATA[Hace poco me topé con iSCSI y verdadermante me llamó la atención. iSCSI es una seria competencia de FiberChannel mucho más económica que nos permite acceder a nuestro datos de una forma bastante transparente. Trataremos de explicar qué es iSCSI, cómo funciona y daremos una reseña de los términos relacionados con esta tecnología. ¿Qué es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=8&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hace poco me topé con iSCSI y verdadermante me llamó la atención. iSCSI es una seria competencia de FiberChannel mucho más económica que nos permite acceder a nuestro datos de una forma bastante transparente. Trataremos de explicar qué es iSCSI, cómo funciona y daremos una reseña de los términos relacionados con esta tecnología.</p>
<p><span id="more-8"></span></p>
<h4>¿Qué es iSCSI?</h4>
<p>iSCSI es un extensión de SCSI, que no es otra cosa que un protocolo para comunicación de dispositivos. SCSI suele usarse en dispositivos conectados físicamente a un host o servidor, tales como discos duros, lectoras de cds o dispositivos de cinta. En iSCSI, los comandos SCSI que manejan el dispositivo, se envían a través de la red. De forma que en vez de tener un disco SCSI conectado físicamente a nuestro equipo, lo conectamos por medio de la red.</p>
<p>¿Pero eso no existía ya con Samba o NFS? No, esos sistemas trabajan importando un sistema de archivos mediante la red. iSCSI importa todo el dispositivo hardware por la red, de manera que en el cliente es detectado como un dispositivo SCSI más. Todo esto se hace de forma transparente, como si el disco estuviera conectado directamente al hardware.</p>
<h4>¿Por qué usar iSCSI?</h4>
<p>La respuesta más simple es para centralizar el almacenamiento en disco e indpendizar la información de los servidores. Por ejemplo podríamos tener un servidor iSCSI con 1 Terabyte (1024 Gigabytes) de almacenamiento que centralizara todos los dispositivo de almacenamiento de nuestra red. Por otra parte podríamos tener nuestros servidores: de correo, ftp, web, samba, todos sin discos o particiones para datos. Los discos de datos se conectarían a través de iSCSI por la red y si alguno de nuestros servidores se cayera o hubiera que hacerles mantenimiento tendríamos la información en un disco que se podría &#8220;enchufar&#8221; por la red. De manera que si tenemos un servidor secundario, no tenemos más que conectarle el disco iSCSI y tendremos el servicio andando en muy poco tiempo.</p>
<h4>¿Y la velocidad?</h4>
<p>Esta es una pregunta obligada. Un requisito indispensable de un buen disco es que sea rápido. Los discos SCSI suelen entregar excelentes tasas de transferencia. Pero si SCSI se lleva sobre la red entonces la velocidad podría bajar y el rendimiento decaer gravemente. Por eso iSCSI es recomendado solo para redes conmutadas de alta velocidad como las que proveen Gigabit Ethernet. Aunque iSCSI puede funcionar incluso sobre FastEthernet, no es recomendable en el caso de que busquemos performance, ya que el acceso al disco se ralentizaría mucho.</p>
<h4>El acceso a los datos</h4>
<p>Comparado con NFS o Samba, el acceso a los datos en iSCSI es diferente; obviamente debido a su naturaleza. En teoría, iSCSI no soporta múltiples conexiones a la vez. Por ejemplo, dos equipos no podrían utilizar el mismo disco iSCSI  para escribir en él. Eso sería como tener un disco rígido conectado a dos máquinas a la vez. Lo más probable es que surgieran inconsistencis en los datos o problemas en los accesos de lectura y escritura de la información.</p>
<p>Aún así, existen alternativas para que ISCSI pueda soportar múltiples usuarios. Por ejemplo, el global filesystem (GFS) de RedHat, es un filesystem especialmente diseñado para permitir concurrencia de usuarios en dispositivos que normalmente no lo  permiten, como iSCSI.</p>
<h4>La arquitectura iSCSI</h4>
<p><img src="http://img63.imageshack.us/img63/4894/iscsisvgdc8.png" alt="Arquitectura de iSCSI" align="middle" /></p>
<p>Como se puede ver en el diagrama, iSCSI tiene una arquitectura tipo cliente servidor;  las partes que la conforman son las siguientes:</p>
<p><strong>El target iSCSI</strong></p>
<p>El target iSCSI es en pocas palabras el servidor. Un target puede ofrecer uno o más recursos iSCSI por la red. En las soluciones Linux para iSCSI, no hace falta que el dispositivo a exportar sea necesariamente un disco SCSI; medios de almacenamiento de distinta naturaleza se pueden usar, como por ejemplo:</p>
<ul>
<li>Particiones RAID</li>
<li>Particiones LVM</li>
<li>Discos enteros</li>
<li>Particiones comunes</li>
<li>Archivos</li>
<li>Dispositivos de CD, cintas, etc.</li>
</ul>
<p><strong>El iniciador iSCSI</strong></p>
<p>El iniciador es el cliente de iSCSI. Generalmente el iniciador consta de dos partes: los módulos o drivers que proveen soporte para que el sistema operativo pueda reconocer discos de tipo iSCSI y un programa que gestiona las conexiones a dichos discos.</p>
<p>Existen iniciadores para una amplia variedad de sistemas operativos. En Linux hay varias opciones y las últimas versiones de Windows incluso vienen con un iniciador instalado por defecto. Demás está decir que iSCSI es independiente del sistema operativo. Podemos tener un target montado en Linux y utilizar los discos en dicho target en un sistema Windows, MacOSX o incluso Solaris.</p>
<p>Ahora que hemos aclarado un poco el tema de iSCSI podemos centrarnos en la instalción de un servidor o target iSCSI con su correspondiente iniciador. Ese será el tema de un post futuro.</p>
<p>Links sobre este tema:</p>
<p><a href="http://es.wikipedia.org/wiki/ISCSI" target="_blank">Artículo en la Wikipedia sobre iSCSI</a></p>
<p><a href="http://tools.ietf.org/html/rfc3720" target="_blank">RFC sobre la especificación iSCSI </a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=8&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2007/09/11/conciendo-iscsi/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>

		<media:content url="http://img63.imageshack.us/img63/4894/iscsisvgdc8.png" medium="image">
			<media:title type="html">Arquitectura de iSCSI</media:title>
		</media:content>
	</item>
		<item>
		<title>Jugando con Lowfat en Debian Lenny</title>
		<link>http://federicosayd.wordpress.com/2007/08/27/jugando-con-lowfat-en-debian-lenny/</link>
		<comments>http://federicosayd.wordpress.com/2007/08/27/jugando-con-lowfat-en-debian-lenny/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 15:57:13 +0000</pubDate>
		<dc:creator>federicosayd</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://federicosayd.wordpress.com/2007/08/27/jugando-con-lowfat-en-debian-lenny/</guid>
		<description><![CDATA[Como tengo un amigo que es fan de Windows, y ahora que salió Vista está encantado con los efectos, me puse a jugar con lo que encontraba para hacer más bonito mi Debian Lenny. Había leído de lowfat, esa aplicación que te muestra tus fotos como si estuvieran desparramadas sobre un escritorio, donde las puedes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=7&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://img183.imageshack.us/img183/9447/lowfat1pe4.png" alt="Lowfat" align="absmiddle" hspace="120" /></p>
<p>Como tengo un amigo que es fan de Windows, y ahora que salió Vista está encantado con los efectos, me puse a jugar con lo que encontraba para hacer más bonito mi Debian Lenny. Había leído de <a href="http://macslow.thepimp.net/?page_id=18">lowfat</a>, esa aplicación que te muestra tus fotos como si estuvieran desparramadas sobre un escritorio, donde las puedes apliar, girar y ordenar de una forma bastante realista. Creía que solo iba a funcionar en Ubuntu (porque al parecer todo lo &#8220;cool&#8221;, &#8220;fancy&#8221; funciona primero en Ubuntu). De hecho algunos pasos de la instalación los vi en <a href="http://ubuntulife.net/wordpress/?p=1660">Ubuntu Life</a>. Pero estaba equivocado, solo fue cuestión de compilar algunas cosas y todo anduvo.</p>
<p>Aquí van los pasos necesarios para hacerlo andar:</p>
<p><span id="more-7"></span></p>
<p>Primero que nada hay que descargar los fuentes de lowfat que está en un repositorio git. Por lo tanto si no tenemos git, lo tendremos que instalar.</p>
<p><code>#apt-get install git-core</code></p>
<p>Una vez que tenemos git nos traemos los fuentes</p>
<p><code>#git clone git://people.freedesktop.org/~macslow/lowfat</code></p>
<p>#cd lowfat<br />
El <code>INSTALL</code> nos dice que basta con hacer: ./autogen.sh ./configure y ./make<br />
Pero como siempre en el transcurso saltan algunas librerías faltantes. Estas fueron las que pidió lowfat en una instalación limpiecita de lenny solo con gnome andando:</p>
<ul>
<li>g++</li>
<li>libsdl-dev</li>
<li>libsdl-image-dev</li>
</ul>
<p><code># apt-get install libsdl1.2-dev libsdl-image1.2-dev g++</code></p>
<p>Quizás haga falta correr <code>ldconfig</code> para que el sistema reconozca las nuevas librerías</p>
<p><code>#./autogen.sh</code><br />
<code>#./configure</code><br />
<code>#make</code></p>
<p>y listo&#8230;</p>
<p>El ejecutable se encuentra dentro de el directorio <code>src</code>. Es un único ejecutable que podemos correr desde la consola. Si queremos cambiarlo a otra ubicación entonces tendremos que copiarlo y darle permisos de ejecución al usuario que tenga la sesión gráfica corriendo. Como último detalle hay que copiar el directorio <code>pixmaps</code> al directorio donde copiemos el ejecutable, de lo contrario lowfat dará un error y no iniciará.</p>
<p>Además, agregar que al parecer lowfat no se lleva bien con compiz-fusion, porque cuando lo inicié con compiz ejecutándose no funcionaba bien.</p>
<p>La única documentación de lowfat nos dice como manejarlo:</p>
<p><code><br />
F1 - normal mode (modo normal)<br />
F2 - chaos mode (modo caos)<br />
F3 - simple mode (modo simple)<br />
a - sort by aspect (ordenar según el aspecto; adivina si la foto está tomada vertical u horizontalmente y la alínea)<br />
s - sort by size (ordenar por tamaño)<br />
d - sort by date (ordenar por fecha)<br />
Space - pile (apila todas la fotos seleccionadas)<br />
q, esc - quit (sale de lowfat)<br />
i - toggle info (muestra información de la foto seleccionada)<br />
o - original size (muestra la foto seleccionada en el tamaño original)<br />
l - load files (abre un cuadro de diálogo para cargar las fotos)<br />
del - get rid of file (elimina del escritorio la foto seleccionada)<br />
r - reset position/movement (resetea la posición de la foto)<br />
(shift) up/right - rotate right (in larger steps) (rota la foto con el teclado hacia la derecha)<br />
(shift) down/left - rotate left (in larger steps) (rota la foto con el teclado hacia la izquierda)</code></p>
<p>mouse:<br />
what you would expect from mouse-controls<br />
left double-click, if you feel lost <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Con el mouse desde luego podemos mover las fotos. Tanto con la rueda así como con el click izquierdo podemos acercar o alejar las fotos. Haciendo click izquierdo sobre la foto y luego doble click (derecho) traemos la foto seleccionada al frente.</p>
<p>Un video para que vean como me voy a regodear enfrente de mi amigo con las nuevas capacidades gráficas de Linux.</p>
<span style="text-align:center; display: block;"><a href="http://federicosayd.wordpress.com/2007/08/27/jugando-con-lowfat-en-debian-lenny/"><img src="http://img.youtube.com/vi/GkrM4ymkiDo/2.jpg" alt="" /></a></span>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/federicosayd.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/federicosayd.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/federicosayd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/federicosayd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/federicosayd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/federicosayd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/federicosayd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/federicosayd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/federicosayd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/federicosayd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/federicosayd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/federicosayd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/federicosayd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/federicosayd.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/federicosayd.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/federicosayd.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=federicosayd.wordpress.com&amp;blog=1578464&amp;post=7&amp;subd=federicosayd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://federicosayd.wordpress.com/2007/08/27/jugando-con-lowfat-en-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/784664d4635debe40137b5725c285b86?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">federicosayd</media:title>
		</media:content>

		<media:content url="http://img183.imageshack.us/img183/9447/lowfat1pe4.png" medium="image">
			<media:title type="html">Lowfat</media:title>
		</media:content>
	</item>
	</channel>
</rss>
