Linux+ #68 (#8 on line), agosto de 2010

Page 1


índice

En este número

novedades

soluciones para empresas

4

16

6 7 8 9

Noticias José Alex Sandoval Morales

Josías Galván Reyes

Ubuntu

Este artículo busca convertirse en una guía práctica para llevar el Software Libre a los diversos sectores económicos, sociales y educativos, partiendo desde cero. De ahí que se presenta una breve definición de Software Libre y su importancia, además de pasos concretos para introducirlo en el mercado PYME, a través del involucramiento del sector educativo, gobierno y empresas.

Raúl Sanchez Martinez

Mandriva Juan Gamez

Fedora Diego Rivero Montes

linux en la educación

FreeBSD

22

Osvaldo R. Salazar S.

Computación Híbrida: Co-diseño Hardware-Software Lino García Morales

El término computación híbrida no es demasiado afortunado. En el ámbito del diseño hardware-software (HW/SW) parece una obviedad. Está claro que los sistemas son una combinación de ambos componentes HW/SW donde el primero actúa como un soporte material programable o reconfigurable y el segundo define los procesos intangibles que gestionarán determinada información o datos para conseguir equis resultados.

2

Descubriendo Linux: ¿Qué debes saber si no sabes nada? Mª Dolores Nogueras, Antonio Gómez

hardware

10

Ejercicio de Creación de Oferta y Demanda del Software Libre

Es curioso cómo damos por sentado, cuando hablamos de Linux, que todos los que nos oyen o leen tienen la formación mínima para entender todo aquello que estamos diciendo. Uno de los principales escollos, a nuestro entender, para realizar el salto mortal sin red que el usuario cree que supone descubrir Linux es la falta de información general sobre sus características y posibilidades. Este artículo pretende ofrecer una introducción a tan maravilloso mundo, desde la perspectiva de la práctica educativa. ¿Qué debemos saber de Linux para presentárselo a nuestros alumnos?

LiNUX+ 8/2010


índice

práctica

para principiantes

32

44

Virtualización con OpenVz Carlos Eduardo Virgen Londoño

En la actualidad, los grandes avances en la ciencia de la computación han ido con el paso del tiempo, haciendo real el significado de la palabra virtual. En varias definiciones la palabra virtual da a entender que es algo que no existe físicamente pero que de cierta forma se puede percibir. Por diversos motivos (económicos, ecológicos, etc.), la tendencia actual, es poder reutilizar lo que se tiene.

37

gPXE: Arranque de Sistemas Operativos en Red con Software Libre Milton Labanda

Grupos, usuariosy permisos en Linux Sebastián Pignataro

Hoy trataremos un tema de interés para muchos principiantes y para otros no tan principiantes: los permisos y la administración de grupos y usuarios. GNU/Linux es un sistema multiusuario por lo cual es necesaria la administración de los permisos que le otorgamos a los archivos y directorios de nuestro equipo.

proyectos linux

48

LocuLinux 2.0 Eduardo Arana

El paso del tiempo no ha podido evitar percibir los grandes beneficios que ha otorgado el uso y desarrollo del FLOSS (Free Software and Open Source Software) o Software Libre y Software de Código Abierto, principalmente en cuanto a innovación y accesibilidad de las tecnologías de la información se refiere. Uno de los campos en donde ha calado fuertemente este movimiento filosófico-tecnológico es en el de los Sistemas Operativos.

LocuLinux es una distribución de Linux basada en Ubuntu 10.4 TLS que ha sido desarrollada para cubrir un mercado poco explotado por las distribuciones Linux, los locutorios o también conocidos como Cibercafés. Su nombre deriva de juntar Locutorio y Linux que en el conjunto forman LocuLinux.

software

50

40

Introducción al software multimedia en Linux Gabriel García

Hay muchas aplicaciones disponibles en Linux para todas nuestras necesidades de multimedia sin necesidad de usar productos propietarios ni perder funcionalidades.los mismo. Trataremos de mostrar las más populares o completas tratando de ser imparciales en las opiniones. Por supuesto que quedarán muchas afuera ya que hay cientos de ellas y cada uno tiene sus preferidas, pero el propósito de este artículo es mostrar a quien desea acercarse al mundo Linux que puede intentarlo sin ningún problema.

opinión Si quieres ser un experto… enseña sin presumir Fernando de la Cuadra, director de Educación de Ontinet.com

De vez en cuando, uno se puede encontrar con algunos visos de cordura en este mundo que rodea a la seguridad informática. Cuidado, no digo que puedas encontrarte con gente cuerda, pero sí que tengan episodios en los que sorprendan con actitudes realmente positivas, ingeniosas y coherentes.

www.lpmagazine.org

3


NE WS

novedades Noticias sección llevada por Alex Sandoval

Jolicloud 1.0 comienza a distribuírse a sus usuarios

Finalmente después más de un año de desarrollo los creadores del sistema operativo especialmente diseñado para netbooks Jolicloud confirmaron que su versión 1.0 definitiva comenzó a ser distribuída entre sus usuarios esta misma semana. De acuerdo a su blog, los usuarios que hayan estado corriendo Jolicloud desde sus versiones preliminares serán los primeros en recibir la muy anticipada actualización. Y uno de esos privilegiados usuarios es la gente del sitio alemán NetbookNews que ya publicaron un video de sus primeras impresiones corriéndolo en una Acer Aspire One 533, calificándolo como "uno de los OS más rápidos que probamos en una netbook hasta ahora". Jolicloud 1.0 incluye una nueva interface y un lanzador de aplicaciones personalizable construído completamente en HTML5, además de soporte para algunas netbooks con pantallas táctiles. http://www.jolicloud.com/blog/2010/07/09/ its-coming-we-will-start-upgrading-existing-users-to-jolicloud-10-next-week/ Rackspace presenta OpenStack.org

El gigante proveedor de hosting Rackspace liberó hoy como Open Source el software detrás su servicio y plataforma para la nube computacional de Rackspace Cloud. El largo anuncio en Rackspace Cloud dice que: "Dado que no han emergido herramientas estándares para construir nubes (computacionales) masivamente escalables, nosotros también debimos construir software personalizado para crear un tipo de pared alrededor de nuestras ofertas (de servicios). Por meses debatimos cómo conducir mejores estándares e incrementar la velocidad de las tecnologías de la nube. Finalmente llegamos a la respuesta obvia: hacer Open Source nuestra tecnología". Más información en el enlace: http://www.vivalinux.com.ar/negocios/ rackspace-openstack.org Open@Adobe en Sourceforge 2.0

Adobe es la primer gran empresa en sumarse a los nuevos servicios de Sourceforge 2.0, a pesar de que todavía están en Beta, con su nuevo sitio Open@Adobe, donde ofrecerá acceso público a una cantidad de repositorios con sus proyectos Open Source, entre ellos: • Adobe Open Source Data Sets • Extensible Metadata Platform (XMP) • Flash-Ajax Video Component • Flex SDK • Open Source Media Framework • Text Layout Framework La compañía de Flash quiere este nuevo sitio sea la "visión definitiva dentro de las actividades abiertas en Adobe", aunque todavía está por verse cuánto puede llegar a favorecer su reciente alicaída imágen. http://www.vivalinux.com.ar/negocios/ open-adobe-en-sourceforge-2.0

4

Comisión Europea respalda la adopción de software libre

L

a Comisión Europea, en boca de su responsable de Agenda Digital, la Comisaria Neelie Kroes, apuesta firmemente en esta ponencia por el uso de software libre y estándares abiertos en las Administraciones Públicas del continente. Se dispone de la transcripción al español, la cual nos muestra la importancia que se le está dando a la interoperabilidad en la administración pública, y la visión que se tiene acerca del software libre: “Software libre ya no es una expresión malsonante. Antes lo era, una que asustaba. Por ejemplo, en aplicaciones de gobierno electrónico y administraciones públicas, software libre era algo para usar en casa, como un hobby. Nadie se habría atrevido a usar una solución software libre en una organización pública. ¿Quién nos ofrecerá soporte técnico, y qué pasa si somos denunciados por infringir la propiedad intelectual de alguien si usamos esto? Éstos eran los tipos de problemas que desalentaban a los dirigentes a seleccionar software por su mérito. Todavía no tenemos un campo de juego legal completo, pero por suerte las actitudes están cambiando. Un ejemplo es el proyecto de la Comisión Europea OSOR. Este proyecto conciencia y estimula la reutilización de soluciones de software libre exitosas, entre las administraciones públicas europeas. Otro ejemplo es EUPL, la licencia de software libre de la Unión Europea, que bajo un marco de trabajo legal de la UE, permite licenciar fácilmente software libre. Hoy muchas grandes organizaciones de toda Europa, como el Ayuntamiento de Munich, usan soluciones como Linux. Y el gobierno del Reino Unido ha estado apoyando soluciones de software libre desde el 2009, con muchos departamentos de gobierno usándolo ahora como componente. Y por lo que oigo, esos equipos están encantados con los resultados. La razón no es sólo una alta relación calidad precio, algo que es crítico en la situación financiera actual, sino también

LiNUX+ 8/2010

más elección. Hay menos dependencia de ciertos vendedores y menos costes de migración. Las cosas están cambiando, también en el sector privado. Ahora grandes compañías declaran, orgullosas, que no sólo están usando software software libre, sino contribuyendo a él. Y eso significa que muchos proyectos software libre importantes están de hecho apoyados por empresas que están invirtiendo en él. Estas empresas obtienen beneficios importantes. Y eso va a continuar como un apoyo importante al movimiento de software libre. Según datos de proveedores software libre, como Red Hat, los tres países de la UE con más actividad en software libre son Francia, España y Alemania. Y con esos grandes países a la cabeza, el tiempo del software libre va a seguir creciendo. Es más, el software libre está apareciendo en todas partes: en productos de consumo, en bases de datos, en software de negocio, en juegos y como componente de servicios ofrecidos por Internet. Y grandes iniciativas como NOiV de Holanda, "Nederland Open in Verbinding" [Holanda Abiertamente en Conexión], están ayudando a hacerlo mayoritario también en la administración pública. La Comisión Europea ha hecho mucho para alentar esta tendencia. Un ejemplo es el Marco Europeo de Interopera-

“La Comisión Europea ha hecho mucho para alentar esta tendencia. Un ejemplo es el Marco Europeo de Interoperabilidad, que pretende la interoperabilidad dentro de y entre las administraciones públicas. Y ahora la agenda digital para Europa, está aumentando su apuesta.” Discurso de Neelie Kroes, comisaria europea de Agenda Digital, en la GUADEC 2010, 17 de julio de 2010.


novedades sección llevada por Alex Sandoval Noticias

bilidad, que pretende la interoperabilidad dentro de y entre las administraciones públicas. Y ahora la agenda digital para Europa, está aumentando su apuesta. Pretendemos un enfoque estratégico para la interoperabilidad y los estándares, y enfatizar el importante vínculo con la responsabilidad pública. Eso puede cambiar realmente la forma en que el software libre es visto en las administraciones públicas y ofrecer mucho potencial para pequeños y medianos proveedores. Tenéis un rol importante en dar forma al futuro digital de Europa. Los gobiernos

no pueden tan sólo anunciar y entregar el futuro digital. Debe venir de una responsabilidad orgánica y compartida. Y quiero construir un amplio movimiento para la acción digital. En la Unión Europea podemos unir a la gente, ayudarles a superar obstáculos, y ocasionalmente dar financiación para ayudar en investigación y desarrollo. Pero la diferencia real está hecha por la gente y las comunidades, como el movimiento de software libre.” http://www.cdsl.cl/portal/content/ comisi%C3%B3n-europea-respaldala-adopci%C3%B3n-de-software-libre

Wikipedia, mejorando la calidad con “Cambios Pendientes”

S

iempre que citamos a la Wikipedia en alguna de nuestras conversaciones (y discusiones) diarias no falta la persona que tiende a desacreditar esa fuente argumentando que los artículos ahí publicados pueden ser modificados por cualquier persona y eso le resta credibilidad a lo que encontramos en el sitio. En algunas ocasiones gente ha modificado en la Wikipedia "biografías de personas vivas" con rumores o incluso con desinformación maliciosa. La gente del proyecto ha estado buscando arduamente la manera de limitar este y otros tipos de vandalismo. Pues bien, al parecer han encontrado una forma de terminar con las modificaciones maliciosas, gracias a la incorporación de una nueva función que está en pruebas denominada “Cambios Pendientes” la cual pretende traer aún mayor seriedad a la enciclopedia. Esta nueva característica está siendo probada en tan sólo algunos artículos en Inglés y funciona haciendo que los cambios que alguien produzca en una entrada no sean visibles para todo el mundo de manera inmediata sino que hasta que un editor de confianza en la comunidad de Wikipedia sea el encargado de verlo, editarlo y/o aprobarlo. Normalmente los cambios en la páginas se reflejaban inmediatamente para todo el mundo. La nueva función no se aplicaría en todos los artículos, o por lo menos no de momento. Wikipedia únicamente

seleccionaría algunos como “Artículos Protegidos” ante cambios y éstos son los que se tornarían más difíciles de alterar injustificadamente. Esta es una explicación bastante simplificada del proceso:

1. Designan un artículo como "protegido" para los posibles cambios 2. Cualquier modificación realizada por alguien deberá ser revisada por uno de los miles de usuarios de confianza que han solicitado y obtenido este permiso. 3. Cualquier edición realizada por uno de los usuarios de confianza se marca automáticamente como revisado. 4. Hasta que el cambio está marcado como 'revisado', no aparece en el artículo. 5. Si bien no impide que se introduzcan errores, se previene que no sean visibles hasta que alguien los haya revisado y -esperamos – se percate de que es incorrecta o inapropiada. Esta función nueva de “cambios pendientes” viene a ser la evolución natural a nivel de protección de lo que ya vimos en años pasados llamado “control editorial de los contenidos”. http://www.cnewmark.com/2010/07/ wikipedia-pending-changes-a-newquality-improvement.html

www.lpmagazine.org

NE WS

Wine 1.2: llega el soporte para aplicaciones de 64 bits

Hace más de dos años se publicó Wine 1.0, ahora recientemente ha sido liberado Wine 1.2, que llega un mes tarde según el programa y la planificación inicial pero que lo hace con una mejora significativa: el soporte para aplicaciones y binarios de 64 bits, lo que aumenta considerablemente las prestaciones de esta implementación de la API de Windows. Según el líder del proyecto, Alexandre Julliard, en Wine 1.2 ha habido nada menos que 23.000 cambios, con unas 3.000 correcciones de errores y nuevas características y mejoras entre las que destaca el citado soporte de software de ocho octetos. Además se ofrecen mejores diálogos por defecto para todos los apartados de este desarrollo -que no es un emulador, ya sabéis- y que también llega con mejores gráficos gracias al estándar Tango. Las mejoras a Direct3D, la implementación del estándar XDG para las notificaciones del inicio de aplicaciones, el soporte de enlaces simbólicos en el registro y el renderizado de fuentes sub-píxel son mejoras igualmente destacables. http://www.muylinux.com/2010/07/19/ wine-1-2-llega-el-soporte-paraaplicaciones-de-64-bits Google apuesta por las búsquedas semánticas

Si bien en Google saben que son líderes en búsquedas en la web, siguen buscando nuevas tecnologías que los ayuden a mejorar su buscador. Es así como se toparon con la compañía Metaweb, una compañía que en tan sólo 5 años de vida ha logrado importantes avances en lo que se denomina como “búsquedas semánticas”. Metaweb administra una base de datos abierta (denominada como Freebase) que cruza información y la estructura, alimentándose de información de todo el mundo. Gracias a esto ha logrado acumular 12 millones de entradas de datos que van desde la información de un libro hasta lugares específicos. La idea de Google es aprovechar la tecnología desarrollada por Metaweb para utilizarla en su propio navegador, de manera que a futuro este tenga la capacidad de responder a consultas del tipo: “camionetas de color verde con un precio inferior a los 100.000 dólares”. El compromiso de Google es que Freebase se mantenga como una base de datos abierta, de manera que no sólo sea alimentada por Google sino que por cualquier empresa que desee hacer uso de ella. http://www.fayerwayer.com/2010/07/ google-apuesta-por-las-busquedassemanticas/

5


novedades Ubuntu sección llevada por Raúl Sanchez Martinez

Instalar Spotify en Ubuntu

Hace poco me enteré en genbeta que spotify ya tiene cliente para linux. Antes de ver cómo instalarlo en linux veamos antes algunas cuestiones que tal vez os interesen: Qué es spotify? Es una manera legal y gratuita de escuchar música a través de Internet. No te descargas las canciones, sino que las escuchas en streaming a través de una aplicación que has de instalar en tu ordenador. Tiene una versión de pago y una versión gratuita. La versión gratuita incluye algunos anuncios sonoros y publicidad gráfica. Sólo sirve para usuarios premium. El cliente de spotify para linux no sirve para todo el mundo, si no tienes una versión de pago no podrás escuchar música. Sólo sirve para Ubuntu. Bueno en realidad para Ubuntu, Debian y sus derivados. Esto es porque solo existen los archivos de instalacion .deb. No hay un .tar.gz o un .rpm para otras distros como Fedora o Arch. No es libre. El código del cliente no es open source, es un cliente de descarga gratuito y nada más. Veamos cómo instalar en Ubuntu el cliente de spotify. En la consola escribimos:

sudo gedit /etc/apt/sources.list. Al final de archivo escribimos: deb http:// repository.spotify.com stable nonfree. Guardamos y cerramos. Actualizamos los repositorios: sudp aptget update. Añadimos una llave publica

escribiendo en la consola lo siguiente:

gpg --keyserver wwkeys.de.pgp.net --recv-keys 4E9CFF4E gpg --export 4E9CFF4E |sudo aptkey add -

Instalamos los paquetes necesarios: sudo apt-get install spotify-client-qt spotifyclient-gnome-support

Si os aparece algún error gconf2 sólo no instaléis el paquete spotify-client-gnome-support y ya. Instalar JDownloader en Ubuntu

JDownloader es uno de los mejores gestores de descargas que podemos encontrar e incluye por defecto soporte para varios sitios de descarga online como son Rapidshare o MegaUpload. Para facilitar su instalación en Karmic/Lucid podemos hacer uso del siguiente PPA: sudo add-apt-repository ppa:jdteam/jdownloader sudo apt-get update sudo apt-get install jdownloader

Linux Mint 9 LXDE Edition

Ha sido liberada la versión final de Linux Mint 9 LXDE Edition basado en Lubuntu 10.04, Linux 2.6.32, Openbox 3.4.10, LXSession 0.4.3, y Xorg 1.7.5 Podéis ver todas las novedades de la versión en este enlace: http://linuxmint.com/rel_isadora_lxde_whatsnew.php y descargar la imágen del Live CD de Linux Mint 9 LXDE desde aquí: http://www.linuxmint. com/edition.php?id=60

6

Eliminar viejos Kernels en Ubuntu 10.04

U

na de las cosas que me traen de cabeza desde hace un par de versiones de Ubuntu, es que ya no se podían eliminar los antiguos Kernels editando el archivo menu.list, con lo bién que lo hacía yo así. Desde que lo cambiaron por el archivo grub.cfg, que es sólo de lectura, y aunque algunos amigos me habían dicho como hacerlo, nunca me animé. Pués hoy encontré como hacerlo de una forma supersencilla en Jaypeeonline y es a través del gestor de paquetes Synaptic. Primero tenemos que mirar cuál es el kernel que tenemos en ese momento. Tecleamos en consola: uname -r Fijate que no tengas actualizaciones pendientes, cómo me ha pasado a mi, que resulta que habia uno más nuevo en synaptic que el que me aparecía con uname. Imagina que la consola te devuelve este resultado: 2.6.32-23-generic, pués te lo anotas y abres Synaptic.(Sistema/ Administración/Gestor de paquetes Synaptic). En la caja de búsqueda rápida escribes linux-image. Te aparecerán los distintos Kernels que tienes aún, entre ellos él que estás usando, por eso a la hora de eliminar hay que tener mucho cuidado no te cargues el actuál. Verás que están marcados en verde, como “instalados”, pués tan sólo tienes

que picar con el derecho y seleccionar, marcar para desinstalar y verás que quedan marcados en rojo. Pués ya tan sólo tienes que dar en Aplicar. Cuándo reinicies verás que ya sólo te aparece el kernel actuál, él que estás usando. En los comentarios, el compañero Irving Prog, de “Hablemos de Linux y Más” nos cuenta cómo hacerlo desde consola: “Abrimos terminal, y tecleamos: dpkg –get-selections | grep linux-image

Con el comando anterior aparecerán todos los kernels que se tienen instalados. Ahora solo es cuestión de desinstalar los más antiguos(se ordenan numéricamente), para eliminarlos usamos el siguiente comando: $ sudo aptitude purge linux-image-”version del kernel”-generic

Y listo, con la linea anterior tendremos borrado el kernel (según la versión que hayamos puesto).” En los comentarios siguen llegando más opciones para eliminar kernels, asi que las agrego.Una de ellas viene de Automatizador:“Lo mismo, pero en un cómodo script:

#!/bin/bash OLDCONF=$(dpkg -l|grep “^rc”|awk ‘{print $2}’) CURKERNEL=$(uname -r|sed ‘s/-*[a-z]//g’|sed ‘s/-386//g’) LINUXPKG=”linux-(image|headers|ubuntu-modules|restricted-modules)” METALINUXPKG=”linux-(image|headers|restricted-modules) -(generic|i386|server|common|rt|xen)” OLDKERNELS=$(dpkg -l|awk ‘{print $2}’|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL) YELLOW=”\e[1;33m" RED="\e[0;31m" ENDCOLOR="\e[0m" if [ $USER != root ]; then echo -e $RED”Error: must be root” echo -e $YELLOW”Exiting…”$ENDCOLOR exit 0 fi echo -e $YELLOW”Cleaning apt cache…”$ENDCOLOR aptitude clean echo -e $YELLOW”Removing old config files…”$ENDCOLOR sudo aptitude purge $OLDCONF echo -e $YELLOW”Removing old kernels…”$ENDCOLOR sudo aptitude purge $OLDKERNELS echo -e $YELLOW”Emptying every trashes…”$ENDCOLOR rm -rf /home/*/.local/share/Trash/*/** &> /dev/null rm -rf /root/.local/share/Trash/*/** &> /dev/null echo -e $YELLOW”Emptying thumbnails…”$ENDCOLOR rm -rf /home/jdiez/.thumbnails/normal/* &> /dev/null echo -e $YELLOW”Script Finished!”$ENDCOLOR

LiNUX+ 8/2010


novedades Mandriva

sección llevada por Juan Gamez

Mandriva 2010.1 Spring

Mandriva se reestructura

D

espués de algunos retrasos y de dos Releases Candidates por fin el pasado 8 de julio Mandriva publicó su espera da Mandriva 2010.1. Por cierto, el nombre de esta edición es Farman, me imagino que por Henri Farman, el pionero de la aviación. (http://es.wikipedia.org/wiki/Henri_ Farman). Como siempre Mandriva nos ofrece esta nueva distribución en tres ediciones: •

One: Es un CD live conteniendo los últimos drivers propietarios. Hay seis versiones disponibles dos con GNOME y cuatro con KDE, cada una soportando diferentes idiomas.

Como novedad en 2010.1 Spring es la posibilidad de instalar la distribución directamente sin necesidad de iniciar una sesión en el live CD. Esto permite instalar la distribución en maquinas con 128 MB: •

Powerpack. Como siempre esta edición incluye soporte, y aplicaciones de terceros. Version Free. Software libre u Open Source, sin ningún tipo de paquete propietario, aunque estos están disponibles en los repositorios.

Entre las novedades de la distribución tenemos mejoras en la cuenta de invitado como es un shell restringido, también restricciones para el acceso de archivos de usuarios y no acceso a la mayoría de las herramientas de configuración de Mandriva. Además tenemos la opción de utilizar un password encriptado en GRUB y bloquear aplicaciones para ciertos usuarios via drakguard.

En cuanto al entorno de escritorio nos encontramos con GNOME 2.30.1 con el tema la-Ora. Además Evolution, el gestor de correo, abre los adjuntos en modo solo lectura. Vintagre (cliente VNC) soporta conexiones VNC sobre SSH. Tracker sustituye a Beagle como buscador de documentos. También tenemos a nuestra disposición una GNOME-Shell, la cual es parte de GNOME-3. Respecto a KDE nos encontramos con la versión 4.4.3 (release final) de este popular escritorio. En esta versión se han solucionado varios problemas de las versiones 4.3.x. Además nos encontramos con Qt 4.6.2, Amarok 2.3.1, KTorrent 4.0. Las aplicaciones de escritorio disponibles en Mandriva 2010.1, son como siempre muy abundantes, solamente por destacar algunas, nos podemos encontrar con los navegadores web Firefox 3.6.6, Chromium, Opera (en los repositorios Non-free), la suite ofimática OpenOffice 3.2 y el editor web Bluefish 2.0.0. Además tenemos un buen número de aplicaciones científicas y educacionales como Salome que permite simulaciones numéricas, InVesalius que genera imágenes 3D a partir de imágenes adquiridas por CT o MRI. En cuanto al sistema base y gráfico nos encontramos con un kernel 2.6.33.4, Glibc 2.11.1, Ruby 1.9.1 y Phyton 2.6.5. En cuanto a los graficos. X.org 7.5, Mesa 7.8 En resumen, la espera ha merecido la pena. Nos encontramos con una de las mejores versiones de Mandriva en cuanto a su rapidez y estabilidad. Además de una cantidad de software cada vez más variada y abundante. ¡¡¡A actualizarse tocan!!!

www.lpmagazine.org

Mandriva ha publicado una nota de prensa donde se mantiene el compromiso con el Open Source pero ante una situación económica delicada ha optado por la siguiente estrategia: Mandriva Linux será distribuida exclusivamente mediante ventas por red integrada IT, así como a través de asociaciones OEM (Original Equipment Manufacturer) en la región EMEA (Europa y Oriente Medio) y del BRIC (Brasil, Rusia, India, China). Así mismo Mandriva ha puesto en marcha un programa drástico de reducción de costes estructurales, así como recaudación de fondos para restablecer el equilibrio financiero y asegurar el futuro a largo plazo de la empresa. También se han incorporado al consejo Jean-Noël de Galzain, Presidente de Investigación y SI Wallix, Vice-Presidente PME de la región Pôle System@tic de París, Bertrand y Glineur, anteriormente DSI de Crédit Foncier Francia, y miembro de la junta de negocios de GCE que ayudarán al CEO de Mandriva Arnaud Laprévote a completar la reestructuración. Podéis leer el comunicado completo aquí: http://www.mandriva.com/enterprise/en/ company/press/mandriva-restructures-toestablish-european-leadership Dinero ruso para Mandriva

Hemos leído en varios foros de internet que la revista económica rusa Kommersant asegura que el fondo de inversión NGI Fund habría comprado una partición del capital de Mandriva. Según varios expertos, esta entrada en el capital de Mandriva es parte de un plan de Rusia para crear un sistema operativo. Los términos de esta adquisición no se conocen aún. El portatil más barato del mundo

El Gobierno de India presentó el ordenador portátil más barato del mundo, cuyo coste ronda los 27 euros. El portátil llegará en 2011 a las universidades y se negocia su producción masiva para que pueda costar 10 euros. El nuevo aparato es un híbrido entre ordenador portátil y PDA (computadora de mano). De bajo coste, está diseñado para estudiantes y es en realidad un tablet con pantalla táctil, lector de archivos en formato PDF, soporte informático para videoconferencias y conexión wifi. Además, su hardware fue creado con la suficiente flexibilidad como para incorporar nuevos componentes de acuerdo con las necesidades del usuario. El equipo utiliza el software libre de Linux y tiene unas dimensiones de 5x7x9 pulgadas. Consta de open office, reproductor multimedia y capacidad multitarea, aunque carece de disco duro. También tiene un puerto USB y una batería de dos vatios, idónea para las zonas indias que apenas cuentan con conexión eléctrica. India gasta casi un 3 por ciento de su presupuesto anual en educación. Sin embargo, hay informes que muestran las dificultades que tienen muchos de sus estudiantes para leer o escribir.

7


novedades Fedora sección llevada por Diego Rivero Montes

Shotwell 0.6.1

Ha sido liberada la versión 0.6.1 de Shotwell. Shotwell es un organizador de fotos digitales, el cual ha sido diseñado para el entorno de escritorio GNOME. Permite importar fotos desde un disco o una cámara, organizarlas de diferentes maneras, visualizarlas en una ventana o en modo de pantalla completa, y exportarlos para compartir. Se trata de un administrador de imágenes digitales de los más populares que tenemos la suerte de que se encuentre incorporado por defecto en Fedora 13. Esta versión viene muy mejorada y de entre todas las mejoras podemos destacar: • Soporte básico para imágenes de tipo RAW, que también incluye soporte para los formatos CR2 y DNG. • El soporte para imágenes PNG ha sido mejorado y completado. • Ahora tenemos la posibilidad de hacer Zoom sobre las imágenes. • Nuevo menú de preferencias. • Las imágenes ahora pueden ser abiertas desde editores externos como puede ser GIMP. • Etiquetas y títulos se importan directamente desde los metadatos tipo XMP e IPTC. • Muchos de los bugs de las versiones anteriores han sido solucionados y corregidos. • El soporte de idiomas ha sido mejorado. Red Hat Enterprise Linux 6.0 Beta2

Red Hat como casa líder en el mundo de Linux, dando soluciones de código abierto tanto a nivel de gerencia, desarrollo, infraestructura de internet, etc. siempre se encuentra dando pasos en pro de mejoras, prueba de ello es la salida a la luz de la segunda versión de test de Red Hat Enterprise Linux, de la cual vamos a disponer en este caso de seis imágenes para la instalación de servidores y estaciones de trabajo además de una actualización del kernel de Linux y que ya están disponibles para descarga. Esta Beta 2 nos llega con un sistema de instalación actualizado así como es habitual en Red Hat, soporta las nuevas tecnologías habiéndose solucionado muchos de los problemas que se habían registrado en la anterior versión Beta. Entre las mejoras que los testeadores han tenido ocasión observar en esta ocasión tenemos un núcleo que ha sido completamente renovado, herramientas de gestión asociadas en el espacio de usuario, se actualizan aplicaciones básicas como httpd, Samba y NFS. La virtualización ha sido completamente integrada y basada en el hipervisor KVM y muchas otras mejoras. Las opciones de descarga de las que vamos a disponer son: RHEL6.0-Workstation-i386DVD1.iso (3,500MB, SHA256, torrent), RHEL6.0-Workstation-x86_64-DVD1.iso (3,997MB, SHA256, torrent), RHEL6.0-Server-i386-DVD1.iso (3,507MB, SHA256, torrent), RHEL6.0-Server-x86_64DVD1.iso (4,005MB, SHA256, torrent).

8

Televisión en Fedora

A

todos se nos ha pasado por la cabeza ver la televisión en nuestro ordenador alguna vez. Ahora hablamos de TvTime, una opción muy recomendable para los que su máquina anda un poco escasa de recursos ya que se trata de un software muy ligero y además permite usar una tarjeta sintonizadora de tv o bien via satélite mediante DVB-S2. No se trata de una aplicación diseñada para un entorno de escritorio concreto, además la tecnología de entrelazado es con diferencia mejor que el que ofrecen los fabricantes de las tarjetas de televisión. Los sistemas de codificación de televisión soportados por TvTime son NTSC, Secam y PAL y los sintonizadores que podemos utilizar con este sóftware Saa y Bttv. Tiene muchas características que lo hacen ideal para sistemas Linux y entre ellas podemos destacar:

MEEGO

S

e trata de una fusión. Es la unión de los sistemas operativos Maemo y Moblin de Nokia e Intel respectivamente y con el que pretenden competir con el Android de Google y además auspiciado por la Linux Foundation. En un primer momento estuvo disponible en sus repositorios públicos la imagen para descarga libre sin interfaz gráfica, pero en la actualidad el sistema operativo está al completo para su descarga. Con la idea en mente de dirigirlo al mercado de las pantallas pequeñas en las que las barras de tareas permanentes pueden ser molestas en un momento dado, se aprovecha todo el espacio disponible para las aplicaciones con las que estemos trabajando.

FUDcon 2010

E

l significado de este acrónimo es Fedora Users and Developers Conference, o sea, la Conferencia de Usuarios y Desarrolladores de Fedora, en la que se realizan talleres, ponencias, hackfests, etc. siendo de libre acceso para todos aquellos que tengan interés por el evento. El FUDcon de este año que se celebró en Santiago de Chile, ha contado con la presencia de Jared Smith Líder mundial de Fedora el cual se hizo cargo del proyecto después de Paul Frields.

LiNUX+ 8/2010

• •

• •

• • • •

Imagen de alta calidad. Capacidad de pantalla 16:9, sobre todo útil con reproductores DVD y señal digital. Administrador de canales, frecuencia y escaneo, desactivación. Modo cine, usando la técnica 3:2 pulldown para disminuir los frames por segundo así como el sonido. Soporte para control remoto. Overscan configurable. Smooth motion que da una mayor sensación de nitidez. Subtítulos.

TvTime es una aplicación con la que podremos deleitarnos con la “mejor televisión” y con nuestra Fedora sin necesidad de tener un receptor u otro dispositivo más al lado del ordenador y aún más recomendable si nuestra máquina no es la más rápida del mercado.

Pensado para ser accesible, en un momento es posible acceder a cualquiera de las aplicaciones, navegación por internet, media player, etc. todo esto gracias a que la pantalla de inicio contiene toda la información necesaria. Se compone de una interfaz basada en pestañas que contienen toda la funcionalidad del sistema. Por supuesto MeeGo Netbook UX 1.0 estará disponible en la próxima versión de Fedora, la número 14 o también denominada Laughlin, pero para aquellos que no puedan esperar también es posible si habilitamos los repositorios rawhide y luego tecleamos en una consola después de logearnos como root “yum install meegonetbook”, por supuesto sin las comillas.

La facultad de Ciencias Físicas y Matemáticas de la Universidad Central acoge del 15 al 17 de julio FUDcon 2010, que este año reúne a expertos a nivel mundial en el apartado de sistemas de código abierto. Miembro activo de la comunidad desde 2007, Smith ha centrado su trabajo durante este tiempo en la infraestructura y equipos de documentación. Ha trabajado en “Fedora Talk” el sistema de telefonía-IP basada en Asterisk para los contribuyentes de Fedora.


novedades BSD

sección llevada por Osvaldo R. Salazar S.

FreeBSD está en Griego

Disponible FreeBSD 8.1-RC2

L

a segunda y más esperada Release Candidate para FreeBSD 8.1 ya está disponible para las arquitecturas amd64, i386, ia64, powerpc y sparc64. Sistemas ejecutando 8.0-RELEASE, 8.1-BETA1, o 8.1-RC1 pueden actualizarse de la siguiente manera: # freebsd-update upgrade -r 8.1-RC2

Durante este proceso, FreeBSD Update puede preguntar al usuario sobre combinar algunos archivos de configuración # freebsd-update install o preguntar que se realice de manera auto- # shutdown -r now mática ejecutando combinaciones que serían ejecutadas correctamente. Si alguién es usuario de versiones recientes (FreeBSD 7.x) puede usar freebsd# freebsd-update install update para actualizar a FreeBSD 8.1RC2, pero se deben de reconstruir las El sistema debe de reiniciarse con e nue- aplicaciones de terceros. vo kernel antes de continuar. Aquí teníamos una reparación relacionada con Atheros AR9280 siendo # shutdown -r now detectada incorrectamente, haciendo que no trabajara. Si alguno de los lecDespués de reiniciar, freebsd-update ne- tores tiene problemas con la tarjeta de cesita ejecutar nuevamente install y de- vídeo que antes trabajaba, ahora tenespués de eso, el sistema debe de ser re- mos una mayor razón para usar Freeiniciado nuevamente. BSD 8.1-RC2.

Avisos de seguridad

L

a notificación FreeBSD-SA-10:07. mbuf afecta a FreeBSD en sus versiones 7.x y anteriores a mbuf. mbuf es una unidad básica de memoria administrada en el kernel de FreeBSD, en el subsistema de comunicación inter-procesos y red. Los paquetes de red y sockets de buffer dependen de mbufs para el almacenaje. Los datos pueden ser directamente embebidos en mbufs o pueden ser referidos de manera externa. La llamada de sistema, sendfile, usa almacenaje en mbuf para mapear directamente el contenido a un archivo dentro de una cadena de mbufs para propósitos de transmisión. Los objetos mbuf usan flags de solo lectura que ayudan a prevenir modificaciones o escrituras al buffer de datos. Si el flag de solo lectura no es copiado de manera correcta cuando una referen-

cia del buffer mbuf es duplicada. Cuando la llamada de sistema sendfile es usada para transmitir datos a través de la interface loopback, esto puede resultar en la transmisión de archivos modificados, causando de esta manera la corrupción. Para solucionarlo se debe de actualizar a una de las siguientes versiones: 7STABLE, 8-STABLE, RELENG_8_1, RELENG_8_0, RELENG_7_3 o RELENG_ 7_1. También se puede solucionar aplicando el parche correspondiente: http:// security.FreeBSD.org/patches/SA-10:07/ mbuf.patch y http://security.FreeBSD.org/ patches/SA-10:07/mbuf.patch.asc. Información completa (en inglés) puede ser encntrada en: http://security. freebsd.org/advisories/FreeBSD-SA-10: 07.mbuf.asc.

www.lpmagazine.org

La comunidad FreeBSD de Grecia pone a disposición de la comunidad la traducción al griego del sistema FreeBSD. Podemos obtener la descarga en griego en www.freebsdgr.org en donde podemos descargar los repositorios Mercurial y observar el buen trabajo que han realizado. El trabajo en la documentación progresa muy bien gracias a la colaboración de la comunidad quienes lo han, entre otras cosas, “... escrito, reescrito, corregido, desensamblado, reconstruido, castigado, revigorizado...” por los miembros del equipo de FreeBSD Grecia y todos los colaboradores. Quien guste colaborar con la traducción, puede apoyar y unirse al grupo y apoyar en la mejora del FAQ, lo único que se necesita (aunque no necesariamente) tener conocimiento del idioma inglés, algo de tiempo libre y el deseo de ayudar. Para todos aquellos que quieran participar, solo deben de contactar a Giorgos Keramidas o bien mandando un e-mail a la lista. La lista de correo la encontraremos en griego, pero lo podemos recibir también en inglés. BSD Fund Visa

Cada vez que usted utiliza la tarjeta visa de Fund BSD, una pequeña donación se realiza a Fund BSD para apoyar sus programas. Los residentes de Estados Unidos pueden obtenerla en línea, ingresando el código de la promoción que podemos encontrar en www.bsdfund.org/card y seleccionando la personalización de Beastie en nuestra futura tarjeta. Si todo resultó bien, estaremos recibiendo la notificación de aprobación en una o dos semanas. Solo dos recomendaciones: • Manejar inteligentemente la tarjeta. • ¡No hacer caso y no prestar ninguna atención a los pingüinos durante el proceso!

Nuevo core team para FreeBSD

El pasado 14 de Julio, el proyecto FreeBSD anuncio la elección del core team para el año 2010 . El core team es responsable de aprobar nuevos src committers, resolver conflictos entre los desarrolladores, designar a subcomités para propósitos específicos (seguridad, ingeniería del lanzamiento, encargado de ports, webmaster, etcétera), y tomar decisiones administrativas o políticas, según se necesite. El core team es elegido por desarrolladores de FreeBSD cada dos años desde el 2000. El nuevo core team tiene como miembros a John Baldwin, Konstantin Belousov, Wilko Bulte, Brooks Davis, Warner Losh, Pav Lucistnik, Colin Percival, Hiroki Sato, Robert Watson y Philip Paeps. ¡Enhorabuena a los nuevos miembros del core team de FreeBSD!

9


hardware Computación Híbrida

Computación Híbrida: Co-diseño Hardware-Software Lino García Morales

es@lpmagazine.org

El término computación híbrida no es demasiado afortunado. En el ámbito del diseño hardware-software (HW/SW) parece una obviedad. Está claro que los sistemas son una combinación de ambos componentes HW/SW donde el primero actúa como un soporte material programable o reconfigurable y el segundo define los procesos intangibles que gestionarán determinada información o datos para conseguir equis resultados.

10

E

n este caso damos por hecho que la hibridación se produce siempre en el dominio digital; sin embargo, las computadoras híbridas son una combinación entre las computadoras analógicas y las digitales; se desarrollaron para complementar la flexibilidad de las computadoras digitales con la velocidad de las computadoras analógicas y se utilizan sobre todo para el control de procesos y robótica, muy rara vez fuera del entorno universitario o de investigación. El mundo real es analógico, pero la interacción y control sobre esta realidad, desde hace ya mucho y por ahora, es digital (quizá en un futuro haya un retorno a la computación analógica pero eso está por ver). Los sistemas son cada vez más complejos porque el mundo real, en “realidad”, siempre ha sido y será mucho más complejo de lo que consideramos. Se requieren muy diversas interfaces para capturar y gestionar esta riqueza y una gran potencia de cálculo para procesarlas. Cuando se plantea el diseño de un sistema de este tipo la primera pregunta que surge es: qué puedo y debo hacer por hardware y qué por software. Esta interrogación es válida incluso cuando toda la información es digital por naturaleza. La respuesta claramente dependerá de qué se quiera y habitualmente estará en función de un conjunto de variables en relación de compromiso como coste, rendimiento, prestaciones, velocidad, tamaño, etc. Un ejemplo que pone de manifiesto una contradicción de la computación híbrida es la actual guerra de Apple y Adobe en torno al desarrollo de aplicaciones para iPhone y iPad. Resumiendo, porque el tema es muy complejo, Adobe ataca a Apple porque ni el iPhone ni el nuevo iPad soportan Flash, y lanza una campaña virulenta contra los productos de la

LiNUX+ 8/2010

Toda verdad pasa por tres etapas. Primero, es ridiculizada. Segundo, es violentamente rechazada. Tercero, es aceptada como evidente. Arthur Schopenhauer

manzana. Apple contraataca con una carta abierta en la que critica duramente a Adobe y asegura que sus productos no necesitan esta tecnología, que considera obsoleta. El propio Steve Jobs asegura que Flash se queda corto tanto en tecnología como en seguridad y anima a los desarrolladores a crear alternativas para el ecosistema de Apple: "La era móvil va de dispositivos de baja potencia, pantallas táctiles y estándares abiertos para la web, todas ellas áreas donde Flash se queda corto". Y es que Flash, el producto de Adobe, utiliza el códec de vídeo H.264 por software en lugar de por hardware lo que acaba con la batería de estos dispositivos portátiles en mucho menos tiempo de lo esperable, ya no de lo deseable. Lo que hay detrás de esta guerra no es simplemente un problema de diseño técnico. La solución de Jobs para esta “era móvil” pasa por el diseño de un coprocesador que garantice bajo consumo, fiabilidad y paralelismo simultáneamente. Un diseño híbrido adecuado de Flash debería utilizar su códec, pero no existe estándar ni voluntad entre las grandes industrias para solucionarlo en aras de mejores prestaciones para el consumidor. Lo que hay en juego es mucho más que esto: más del 75% de los vídeos en Internet se ven a través de Flash (software instalado en el 98% de los ordenadores a nivel mundial y presente en más de 800 millones de dispositivos móviles fabricados por 19 de los 20 primeros fabricantes donde, por supuesto, el vigésimo es Apple). Prueba de esto es que Universal y Time Warner se posicionan a favor de Adobe


hardware Computación Híbrida

y comunican que no tienen intención de convertir sus colecciones a H.264 porque no es económicamente viable con Flash dominando la web. Esto es precisamente lo que se considera en este artículo computación híbrida; aquella relacionada con el diseño de sistemas eficientes, con la toma de decisiones acerca de computación HW/SW, con los criterios que condicionan las respuestas. Un sistema híbrido consiste de hardware (ya sea analógico, digital o mixto) no sólo para interactuar con el mundo real, sino también para satisfacer determinados requerimientos de tiempo real, y de software, a distintos niveles de virtualidad y paralelismo. Un sistema de computación híbrido es un sistema complejo a medida que combina todos los recursos que necesita para obtener el mejor rendimiento, prestaciones, seguridad, robustez, etc. En este sentido se puede pensar en un sistema integrado, multiprocesador (que involucra microcontroladores, microprocesadores y procesadores digitales de señal), que combina hardware general con especializado y, mucho más allá, en sistemas reconfigurables que se adaptan o “programan” para realizar determinadas funciones.

Ingeniería de Sistemas

Según la Wikipedia (http://es.wikipedia.org/wiki/Ingeniería_de_ sistemas) “Ingeniería de sistemas es un modo de enfoque interdisciplinario que permite estudiar y comprender la realidad, con el propósito de implementar u optimizar sistemas complejos. Puede verse como la aplicación tecnológica de la teoría de sistemas a los esfuerzos de la ingeniería, adoptando en todo este trabajo el paradigma sistémico”; definición que podría valer perfectamente para el objetivo de este artículo. Sin embargo “una de las principales diferencias de la ingeniería de sistemas respecto a otras disciplinas de ingeniería tradicionales, consiste en que la ingeniería de sistemas no construye productos tangibles. Mientras que los ingenieros civiles podrían diseñar edificios o puentes, los ingenieros electrónicos podrían diseñar circuitos, los ingenieros de sistemas tratan con sistemas abstractos con ayuda de las metodologías de la ciencia de sistemas, y confían además en otras disciplinas para diseñar y entregar los productos tangibles que son la realización de esos sistemas”. En este ámbito compartimentado, aunque con una interrelación transdisciplinaria, la ingeniería del hardware (término poco consolidado) agrupa un conjunto de áreas del conocimiento como electrónica, circuitos (analógicos y digitales), arquitecturas de procesamiento, etc., mientras que la inge-

Figura 1.La guerra Apple-Adobe no ha hecho más que comenzar

niería del software ofrece métodos y técnicas para desarrollar y mantener software de calidad. Sin embargo, desde el paradigma de la complejidad la ingeniería de sistemas debería superar su capacidad de abstracción y constituirse como una disciplina que ofrezca, como cualquier otra ingeniería, soluciones tangibles. Este enfoque moderno de diseño de sistemas se relaciona directamente con los sistemas integrados y presenta el diseño HW/SW de manera unificada, por lo que se utiliza el término co-diseño. El libro Embedded System Design: A Unified Hardware/Software Introduction, de Frank Vahid y Tony D. Givargis, por ejemplo, introduce el diseño y uso de procesadores de propósito-específico (“hardware”), coprocesadores o aceleradores; de procesadores de propósito general (“software”); de procesadores de conjunto de instrucciones específicos a aplicación (ASIP, Application-Specific Instruction-Set Processor) y diserta acerca de modelos de computación avanzada, sistemas de control, tecnologías de dispositivos electrónicos y herramientas de diseño modernas. Hardware y Software, simplemente, ya no pueden ser considerados independientemente sino de manera híbrida y unificada. La ingeniería de sistemas, como paradigma de la computación híbrida ni siquiera se estudia como tal en las universidades salvo contadas excepciones (como en el Grado en Arte Electrónico y Digital de la UEM, http://www. uem.es/titulacion/grado-en-arte-electronico-y-digital). La tecnología de los semiconductores facilita la integración de millones de puertas lógicas (gates) en un solo dispositivo (chip) y ha dado lugar a la integración de sistemas en un dispositivo (SoC, Systems on Chip). Entre muchas otras, los SoCs son los reyes híbridos del dominio multimedia, los sistemas de transporte inteligentes y en general en cualquier aplicación que procese, en paralelo, cantidades enormes de datos. El rendimiento de estos sistemas es eficaz sólo en determinados casos específicos con todo el procesamiento por software, incluso sobre un procesador de alto-rendimiento, o sólo por hardware. Es mucho más deseable una combinación óptima HW/SW y un sistema, también óptimo, de repartimiento (partitioning). El diseño de sistemas requiere los siguientes pasos: •

Captura de Especificación. Descomposición funcional en piezas para crear un modelo conceptual del sistema. El resultado es una especificación funcional carente de cualquier detalle de implementación. Exploración. Exploración de alternativas de diseño y estimación de su calidad hasta encontrar la más adecuada.

Figura 2. Proceso de co-diseño típico

www.lpmagazine.org

11


hardware Computación Híbrida

Especificación. Definición de la especificación en una nueva descripción que refleje las decisiones hechas durante la exploración. Software y Hardware. Implementación de cada uno de los componentes utilizando técnicas de diseño software y hardware o híbridas. Diseño físico. Generación de los datos de fabricación para cada componente.

Esta metodología de modelado jerárquico permite alta productividad, preservación de la consistencia a través de todos los niveles y por lo tanto la eliminación de iteraciones innecesarias lo que se traduce a procesos más eficientes y rápidos. Para describir la funcionalidad de un sistema es necesario describir las relaciones entre las diferentes piezas funcionales del modelo conceptual. Algunos de los modelos que describen esta funcionalidad de los sistemas son: •

Gráfica de flujo de datos. Una gráfica de flujo de datos descompone la funcionalidad en actividades y los flujos de datos entre estas actividades. Máquina de estado finito (FSM, Finite-State Machine). Este modelo representa al sistema como un conjunto de estados y un conjunto de arcos que indican transición del sistema de un estado a otro como resultado de determinado evento. Procesos secuencialmente comunicados (CSP, Communicating Sequencel Processes). Este modelo descompone el sistema en un conjunto de procesos concurrentes que corren instrucciones de programa secuencialmente. Máquina de estado programa (PSM, Program-State Machine). Este modelo combina FSM y CSP; permite que cada estado de un FSM concurrente contenga acciones descritas por instrucciones de programa.

que intervienen mediante algoritmos. Por lo tanto, es natural pensar que estos algoritmos se implementen en determinado lenguaje. Si observa detenidamente el ejemplo de la Figura 4, cuesta pensar que no representa un fragmento de código programado en Pascal o algún tipo de pseudocódigo y que, simplemente, implementa funcionalidades hardware. Existen diferentes tipos de hardware, configware, que permiten esta “programación”. Los ASICs (ya sean de arreglo de puertas o celdas estándar) permiten interconectar diferentes módulos pre-integrados (por ejemplo puertas AND o combinaciones AND-OR-INVERTER) para conseguir determinada funcionalidad. Los dispositivos de lógica programable (PLD, Programmable Logic Device) contienen determinadas capas de circuitos programables que son interconectados (quemando fusibles o mediante conmutadores programables) mediante software. La FPGA (Field Programmable Gate Array) es un tipo de PLD complejo mientras que la PLA (Programmable Logic Array), es un tipo de PLD simple. Los lenguajes de descripción del hardware, como VHDL o Verilog, difieren de los lenguajes de programación software en detalles como las formas de describir la propagación del tiempo y las dependencias de señal (sensibilidad). Existen dos operadores de asignación, uno de bloqueo (=) y otro de nobloqueo (<=); este último permite describir la actualización de máquinas de estado sin necesidad de declarar y usar variables adicionales. Desde su introducción, en 1984, Verilog representó un aumento tremendo en la productividad. Los diseñadores de circuitos utilizaban un programa de captura esquemático gráfico y los programas software escritos especialmente para documentar y simular los circuitos electrónicos. Los diseñadores hardware desean lenguajes de especificación con características similares a los lenguajes de programación ampliamente usados en el desarrollo de sistemas. Verilog tiene una sintaxis similar a la de C: es sensible

Cada modelo tiene sus ventajas y desventajas. Ninguno es perfecto para todos los tipos de sistemas, así que se debe seleccionar aquel que mejor se ajuste a las características específicas del sistema.

Programación, Algoritmos, Lenguajes

Es obvio que, independientemente de si se trata de hardware o software, es posible describir los procesos, datos y flujos

Figura 3. Procesadores y solución del problema. a. problema, funcionalidad deseada, b. procesador de propósito general, c. procesador específico a la aplicación, d. procesador de propósito específico. Un desplazamiento hacia la izquierda en la línea inferior aumenta en flexibilidad, coste (a pequeña escala), tiempo, etc., mientras que hacia la derecha en eficiencia, rendimiento, tamaño y coste (a gran escala), etc.

12

Figura 4. Fuente de sumador con signo en VHDL. El VHDL se diseñó para documentar el comportamiento de los circuitos integrados de aplicaciones específicas (ASIC, Application Specific IC) del Departamento de Defensa del gobierno americano

LiNUX+ 8/2010


�������� ����������

hardware Computación Híbrida

IPv6 RUNNING

www.lpmagazine.org

13


hardware Computación Híbrida

a mayúsculas-minúsculas, tiene un preprocesador básico (aunque menos sofisticado que el de ANSI C/C++), etiquetas de control de flujo equivalentes (if/else, for, while, case, etc.), y operadores de precedencia compatibles. Las diferencias sintácticas incluyen la declaración de variables (Verilog requiere bit-widths sobre tipos net/reg por ejemplo), bloques procedimentales o de demarcación (begin/end en lugar de las llaves {}), y otras pequeñas diferencias. Otro lenguaje de descripción similar a VHDL y Verilog es el lenguaje de descripción de sistemas SystemC (http://es. wikipedia.org/wiki/SystemC), realmente útil para modelar sistemas a nivel de comportamiento. “SystemC es un conjunto de librerías y macros implementadas en C++ que hacen posible una simulación de procesos concurrentes con la sintaxis del lenguaje C++ ordinario. Así los objetos descritos pueden comunicarse durante una simulación de tiempo real usando señales de cualquier tipo ofrecido por C++, además algunas otras ofrecidas por las librerías de SystemC y también otras definidas por el usuario”. La metodología de diseño comienza con un modelo de alto nivel escrito en C++ y aplica un proceso iterativo que consiste en transformar el código para usar sólo los elementos que tengan su equivalente en un lenguaje de descripción de hardware. La representación unificada de un sistema híbrido debe describir su funcionalidad independientemente de su implementación hardware o software lo que permite la repartición HW/SW según un compromiso óptimo, provee un entorno de simulación y facilita una fertilización cruzada entre los dominios HW/SW.

Partición

La partición es el proceso que decide, para cada subsistema, cómo es más ventajoso implementar la funcionalidad requerida: por hardware o por software. Este es un problema de optimización multi-variable que debe satisfacer las prestaciones exigidas dentro de determinados requerimientos del sistema: tamaño, peso, potencia, coste, etc., que, en el contexto del codiseño, se denomina frecuentemente partición funcional. Existen dos enfoques básicos de división. O bien comenzar con todas las operaciones en el software y mover algunas a hardware (por ejemplo, cuando la velocidad es fundamental) o empezar con todas las operaciones en hardware y mover algunas a software. Un programa de división funcional identifica los cuellos de botella de cómputo y migra las funciones correspondientes a un hardware específico de la aplicación. Por otra parte la migración de componentes hardware a rutinas software pasa por la identificación de las tareas no críticas susceptibles de migrar. Esto conlleva una reducción de tamaño y costes significativos sin reducir el rendimiento (especificado en términos de latencia y restricciones en la velocidad de los datos). La compartimentación funcional permite que el sistema se divida en componentes hardware y software; es análogo a las particiones estructurales en que la estructura de un sistema se refina en un menor nivel de componentes hardware. Sin embargo, en las particiones estructurales, la funcionalidad no se puede mover desde el hardware hacia el software. El particionado de

14

objetos funcionales entre los componentes del sistema se realiza: mediante una descripción de la funcionalidad del sistema (descrita como una colección de objetos funcionales indivisibles) y a continuación cada componente de la funcionalidad del sistema se implementa en hardware o software. El proceso de partición es guiado por la métrica y el tipo de métrica a utilizar depende en gran medida del nivel de descripción del sistema. La métrica se define para determinar el coste relativo de una partición frente a otras particiones potenciales. Obviamente, algunos indicadores, como el tiempo de ejecución de una determinada tarea en un procesador específico, son imposibles de medir con precisión hasta alcanzar la aplicación definitiva. Algunas de estas técnicas son: de estimación determinística (sólo útil cuando se parte de un modelo completamente especificado), de estimación estadística (en modelos incompletos; se basa en el análisis de sistemas similares y ciertos parámetros de diseño) o de perfiles (examina flujos de datos y control en una arquitectura para determinar qué partes, más caras computacionalmente, son mejores implementadas por hardware). El proceso de seleccionar los componentes se denomina asignación (allocation). Los sistemas híbridos no sólo deben tener en cuenta qué implementar por hardware o por software sino también cómo comunicar ambos dominios y es que esta comunicación introduce determinada sobrecarga que debe ser considerada. Cuando es posible una implementación de todos los componentes del sistema sólo con procesadores de propósitos generales (ya sean microcontroladores, microprocesadores o procesadores digitales de señal) el diseño de un sistema complejo se convierte en un problema de integración (este concepto excluye la elaboración y uso de procesadores específicos). Este es, sin embargo, un escenario frecuente no menos complejo donde se puede considerar los componentes como piezas de un rompecabezas que deben encajar perfectamente (en términos de métrica) para conseguir el objetivo deseado. Este “encaje” pasa por unas interfaces de comunicación bien definidas y por el uso de terminales de interacción universales o estándares. Listado 1. Fuente de sumador en SystemC #include "systemc.h" SC_MODULE(adder)

// módulo, declaración de la clase

{ sc_in<int> a, b; // puertos sc_out<int> sum; void do_add()

// proceso

{

sum = a + b; } SC_CTOR(adder)

// constructor

{ SC_METHOD(do_add); // registro do_add al kernel sensitive << a << b; // lista de sensibilidad //de do_add } };

LiNUX+ 8/2010


hardware Computación Híbrida

Conclusiones

El co-diseño HW/SW es muy útil en la búsqueda de soluciones a medida, prototipado rápido, simulación, sistemas con determinados procesos críticos (ya sea en velocidad, memoria, etc.), sistemas adaptables o reconfigurables, concurrentes (desarrollo simultáneo HW/SW), integrables (la interacción del desarrollo HW/SW produce diseños que satisfacen los criterios de rendimiento y especificaciones funcionales), etc., y permite el desarrollo de sistemas complejos que sacan lo mejor de cada tecnología. Imagine el siguiente escenario: necesita desarrollar un sistema muy complejo que debe interactuar con el mundo real. Para ello primeramente crea un modelo conceptual del sistema: una especificación funcional ajena e independiente de cualquier detalle de implementación y, por lo tanto, de la tecnología. Este diseño le permitirá implementar el sistema con la tecnología disponible en el momento que lo requiera. Ahora suponga que es capaz de describir todos los algoritmos, procesos, datos e interrelaciones de su modelo en una suerte de meta-lenguaje de programación (pseudocódigo o de muy alto nivel como muestra la Figura 5), ajeno igualmente a cualquier implementación. Por último suponga que combinando estrategias automáticas y manuales (en la Figura 5, por ejemplo, sólo se considera la división HW/SW automática) pueda decir qué y cómo hacer por hardware o por software y cómo comunicarlas entre sí. Finalmente obtendrá un sistema híbrido óptimo, susceptible de futuras implementaciones, definido en términos no perecederos, en definitiva: un sistema eficaz resistente a la obsolescencia tecnológica capaz de absorber la tecnología del futuro. La computación híbrida, hoy día, parece aceptada como evidente pero aún queda mucho por hacer y no existe, ni existirá, solución ideal ni genérica. La resistencia llega de todas partes. El uso de meta-lenguajes no es casi nunca bien recibido por la comunidad de programadores que lo considera un intrusismo automatizado y prefieren seguir escribiendo sus líneas de código en el lenguaje que les apetezca. Para los desarrolladores de hardware este enfoque es una quime-

ra basada en patrones susceptibles de mejoras. Pero para la industria simplemente significa ganar o perder dinero. Aquí la hibridación es lo de menos y lo de más la imposición de tecnologías y estrategias propietarias. Jobs reclama “baja potencia, pantallas táctiles y estándares abiertos para la web” para el entorno de las aplicaciones hoy día mientras Apple, la compañía que dirige, supera a Microsoft en el mercado mundial y es el cuarto en ventas de ordenadores en Estados Unidos; es difícil desvincular ambos hechos y su capacidad de expansión a otros mercados como el de los móviles y la reproducción multimedia. Linux cuenta con el procesador Leon 2 (una implementación en VHDL de un procesador de 32 bits compatible con el juego de instrucciones Sparc V8, desarrollado para la Agencia Espacial Europea y mantenido en la actualidad por Gaisler Research; http://www.gaisler.com/cms/), de código abierto, acompañado de las herramientas necesarias, que también son de código abierto: compiladores C, versión de Newlib, y versiones de eCos y Linux. El procesador Leon no sólo es de código abierto, sino que además no está ligado a ninguna tecnología de FPGA concreta. PeaCE, por otra parte, permite realizar un particionado HW/SW automático. La computación híbrida no es tan nueva como parece y ya cuenta con algunas décadas. Sin embargo el co-diseño no lo es tanto y cada vez ejerce mayor atracción. ¿Habrá que esperar por una comunidad HW/SW libre para impulsarlo? El tiempo dirá. Mientras… el mundo sigue siendo analógico y complejo y el hombre ridiculizando, rechazando violentamente y aceptando como evidente toda verdad.

Sobre el autor Lino García Morales es Graduado en Ingeniería en Control Automático, Máster en Sistemas y Redes de Comunicaciones y Doctor por la Universidad Politécnica de Madrid. Ha sido profesor en el Instituto Superior de Arte de La Habana, la Universidad Pontificia “Comillas” y la Universidad Meléndez Pelayo. Actualmente es profesor titular de la Facultad de Artes y Comunicación y de la Escuela Superior Politécnica de la Universidad Europea de Madrid y Coordinador del Grado en Arte Electrónico y Digital. Artista y científico, lidera un grupo de investigación transdisciplinar en la intersección Arte, Ciencia, Tecnología y Sociedad. Ha disfrutado de Becas por la Agencia Española de Cooperación Internacional, FUNDESCO, el Consejo Superior de Investigaciones Científicas (CSIC) y la Universidad Politécnica de Madrid.

En la red • Figura 5. Co-compilador Software-Configware. Configware significa programación reconfigurable. Configware versus software significa programación estructural versus programación procedimental. Configware considera ASICs, PLDs, etc.

• •

VHDL: http://en.wikipedia.org/wiki/VHDL Verilog: http://www.verilog.com/ SystemC: http://www.systemc.org/home/

www.lpmagazine.org

15


soluciones para empresas Software Libre en la PYME

Ejercicio de Creación de Oferta y Demanda del Software Libre Josías Galván Reyes

linux@software.com.pl

Este artículo busca convertirse en una guía práctica para llevar el Software Libre a los diversos sectores económicos, sociales y educativos, partiendo desde cero. De ahí que se presenta una breve definición de Software Libre y su importancia, además de pasos concretos para introducirlo en el mercado PYME, a través del involucramiento del sector educativo, gobierno y empresas.

P

ara la realización de este ejercicio de creación de mercados, hemos detectado tres importantes sectores involucrados: Sector Educativo, el Gobierno y el Sector Privado. Cada uno motivado por diversas necesidades y retos como son: •

Sector Educativo: el proveer de más elementos teóricos, prácticos, tecnológicos y laborales a sus Profesionales TI. El Gobierno: el reducir los costos de la administración pública asociados a la infraestructura TI, y egresos que normalmente se pagan a corporativos extranjeros. Sector Privado: utilizar plataformas tecnológicas sustentables y económicas que brinden a las empresas el apoyo tecnológico para fomentar el crecimiento.

para su adaptación, parte de la realidad a considerar es al igual que otros productos de consumo, tiene costos asociados, sobre todo en términos de capacitación, soporte técnico, aceptación y proceso del cambio, etc. Sin embargo, estos costos siempre son menores en el tiempo, comparados contra los productos tradicionales del llamado Software Privativo (software que no es Software Libre, conocido también como Software Comercial). Queda fuera del alcance de este texto el desarrollar un análisis de “Costo Total de Propiedad” que confirme al Software Libre como una alternativa muy económica para las micro, pequeñas y medianas empresas, y con más razón para los nuevos negocios y emprendedores. Para más detalles acerca de la definición de Software Libre, puede consultar:

• En general, perseguimos conformar una sociedad más consciente de la importancia de cuidar el gasto • interno, y sobre todo de desarrollar las capacidades técnicas y científicas de nuestros profesionales y un • compromiso por la mejora continua e independencia tecnológica.

¿Qué es el Software Libre?

Se le llama Software Libre a los programas para computadora, que además de proveer de una utilidad (que nos permiten usar la computadora para una actividad, como por ejemplo llevar la agenda, la contabilidad, escribir correos, etc.) ofrecen las siguientes facultades a los usuarios (Tabla 1). Una confusión muy común al hablar del Software Libre es considerarlo “simplemente gratuito”, mismo hecho que en algunos casos causa escepticismo

16

LiNUX+ 8/2010

"El Software Libre" de Las TIC en un CLIC http://www.youtube.com/watch?v=9NrPGDtzv50 Qué es el Software Libre y 25 años de GNU http://www.youtube.com/watch?v=L3X9CGxuQBI “Entrega del Premio a la Trayectoria Personal a Juan Carlos Rodríguez Ibarra expresidente de la Junta de Extremadura; en el Senado en el acto conmemorativo del día mundial de Internet el 17 de mayo de 2010 (II Parte)” http://www.youtube.com/watch?v=wzu7KvGBlZ0

¿Por qué es Importante el Software Libre?

Porque hoy en día, el Software Libre ha alcanzado niveles de madurez, que lo colocan como candidato viable para ser el soporte tecnológico de las empresas en crecimiento. Veamos la siguiente gráfica (Figura 1).


soluciones para empresas Software Libre en la PYME Empresa sin tecnología En un primer escenario, o en un caso grave, hay empresas que no cuentan con la tecnología necesaria para realizar de manera eficiente sus operaciones, y/o que aún realizan trabajos de manera manual.

Empresa con software ilegal Muchas empresas del escenario anterior, en un esfuerzo por modernizarse a “bajo costo”, optan por adquirir software de fuentes dudosas, que puede llegar a ser software pirata o ilegal, y que al mediano-largo plazo genera más problemas que beneficios. Sin embargo por “costumbre” o “ignorancia” muchas empresas permanecen en este modelo. Ver “Seis de cada 10 computadoras en México tienen software pirata” (La Jornada http://www.jornada.unam.mx/2010/ 05/12/index.php?section=economia&article=030n2eco)

Empresa con software legal Otras empresas, conscientes de las desventajas del software ilegal, optan por regularizar su situación haciendo el pago de las licencias correspondientes, sin embargo, en muchos casos, estos costos son prohibitivos para las nuevas empresas y/o empresas en crecimiento. Además, el pago de una u otra licencia no garantiza el uso adecuado de la tecnología para la necesidad del negocio.

Empresa con software libre Este es el escenario ideal, al que se pretende llevar a las empresas. Se utiliza Software Libre para apoyar la operación. El Software Libre es Software Legal, y que a través de un buen proceso de implantación y capacitación, puede ayudar a las

empresas a enfocarse en sus procesos de negocio, haciendo un uso eficiente de la tecnología para el contexto dado. Hablar de la importancia del Software Libre, como alternativa al software pirata o ilegal, nos hace reflexionar en el impacto que el uso de software ilegal tiene para nuestra sociedad, nuestro país y nuestra economía, tal y como se muestra en múltiples artículos en importantes periódicos del país: •

2010-05-11, El Economista, “México pierde US1,056 millones por software pirata”, http://eleconomista.com.mx/industrias/ 2010/05/11/mexico-pierde-us1056-millones-pirateria-software. 2010-05-11, El Universal, “Seis de cada 10 software son pirata en el país”, http://www.eluniversal.com.mx/articulos/ 58558.html.

Finalmente, el Software Libre es importante, porque cualquier inversión económica o educacional que se haga en esta materia, beneficiará directamente al mercado y la comunidad local. Un análisis más detallado del Costo Total de Propiedad del Software Libre, nos llevará a concluir que las inversiones económicas, se aplican mayormente al recurso humano de nuestras empresas, en especial a los Profesionales TI, es decir a profesionales que viven en nuestras comunidades, egresan de nuestras universidades y que usarán sus ingresos en nuestra economía, y porque no, tal vez para utilizar productos y servicios de nuestras mismas empresas.

Concretamente, ¿en qué me puede ayudar el Software Libre en mi empresa? • •

Navegar en Internet de manera segura. Leer y Escribir Correo Electrónico.

PUBLICIDAD

www.lpmagazine.org

17


soluciones para empresas Software Libre en la PYME

• • • • • • • • • • • • • • • • •

Recibir Noticias Regionales y Globales. Manejar mi agenda y la agenda de un equipo de trabajo (Groupware). Generar documentos, presentaciones, hojas de cálculo, dibujos, bases de datos, etc. Controlar y proteger el acceso a archivos confidenciales. Mantener respaldos de la información personal. Crear imágenes, digitalizar documentos, retocar fotos. Crear música y vídeos. Darle seguimiento a clientes (CRM), proveedores, proyectos (PMIS), etc. Llevar la contabilidad de la empresa y la personal. Integrar los procesos de control de materiales y/o empresariales (MRP/ERP). Colaborar con equipos de trabajo (Groupware). Mensajería Instantánea y/o Vídeo Conferencia. Hacer nuevos programas a la medida de mis necesidades (IDE's, RDBMS, etc.). Proteger a mi empresa de ataques de Internet (Firewalls). Controlar el uso apropiado de Internet en mi empresa (Proxy, Firewalls, etc.). Interconectar oficinas a través de Internet (Redes Amplias, VPN, Túneles, etc.). Y un largo etcétera.

Y entonces, ¿por qué no se ha extendido el uso del Software Libre?

Contrario a lo que se podría suponer, el Software Libre ya tiene muchos años en el mercado. En la última década ha tomado un gran impulso gracias a la aparición de Linux, pero a pesar de la madurez de estos sistemas, hay otros factores, más del tipo social que del tipo técnico, que ha faltado activar para que el Software Libre sea adoptado de manera amplia por las empresas, y sus beneficios se muestren en las economías regionales. Entre los factores en contra podemos mencionar: • • • • •

Ignorancia de las empresas y de los Profesionales TI, acerca de las posibilidades del Software Libre. Falta de Profesionales TI capacitados y comprometidos, para implantar y operar estas tecnologías. Costumbre y Falsos Paradigmas del Concepto “Tecnología” Resistencia al Cambio. Detractores del Software Libre.

Tabla 1. Las libertades que ofrece el Software Libre Libertad

Descripción

0

La libertad de usar el programa, con cualquier propósito.

1

La libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a las necesidades del usuario.

2

La libertad de distribuir copias del programa, con lo cual puedes ayudar a otras personas.

3

La libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.

Este documento surge para apoyar, en términos sociales y estratégicos, la evolución del Software Libre en nuestra región, a través de pasos concretos para activar un mercado empresarial, en donde se construya demanda y oferta.

Objetivo del Ejercicio de Activación

Establecer los mecanismos, para la definición y arranque de operaciones, de una red de contactos orientada a la creación de un mercado de clientes y proveedores de Software Libre, a través del involucramiento de catalizadores culturales, económicos y sociales.

Generación de Oferta

Cada vez somos más, los que estamos convencidos de que la educación y la formación de profesionales con conciencia humana, es la llave para el desarrollo de nuestras comunidades, de ahí que para este ejercicio, el sector educativo es el principal catalizador de la generación de nuevos mercados. Más allá de buscar formar Profesionales TI que cumplan con las necesidades presentes del mercado actual, se busca concienciar a las Universidades en la importancia de ampliar las capacidades de los Profesionales TI, hacia las posibilidades del Software Libre. En la generación de oferta se busca que las instituciones educativas sean las incubadoras de nuevos Profesionales TI, con conocimientos teóricos y prácticos, aplicados al campo del Software Libre. Los trabajos comienzan en la difusión dentro del sector educativo, donde se invitará a las universidades a participar en este ejercicio. De la formación de estos Profesionales TI, gradualmente aparecerán nuevas empresas especializadas en Software Libre, que ofertarán productos y servicios relacionados, a las PYMES y a la sociedad en general de la región. La Generación de la Oferta, se lleva a través de las siguientes fases:

Fase 1. Formación La fase de formación consiste en la atracción del talento humano, dentro de las poblaciones universitarias, donde se buscará crear Grupos de Usuarios o Comunidades Especializadas en donde se fortalecerán sus habilidades técnicas, en los temas de una agenda que sirva como guía para iniciar el interés en el Software Libre. Posteriormente estos Grupos de Usuarios y/o Comunidades Especializadas se enfrentarán al reto de complementar su formación con auto capacitación y proyectos aplicados realizados en empresas reales. Estas son algunas actividades recomendadas para las universidades participantes: •

Las libertades 1 y 3 requieren acceso al código fuente porque estudiar y modificar software sin su código fuente es muy poco viable. Fuente Wikipedia. http://es.wikipedia.org/wiki/Software_libre

18

LiNUX+ 8/2010

Asignar un Asesor Académico que auxiliará a la formación del Grupo de Usuarios y/o Comunidades Especializadas. Este rol también participa en: – La creación de Temarios Guía o Agendas de Formación para iniciar al Grupo de Usuarios y/o Comunidades Especializadas. – Como vínculo entre los Profesionales TI y la Universidad, así como representante ante otras universidades y/o sector empresarial.


soluciones para empresas Software Libre en la PYME

���������������� ������������ ����������

����������������������

���������������������������������������������������� ������������������������������������������������������������������������� ���������������������������������������������������������������������������� ����������������������������������������������������������������������� ���������������������������������������������������������������������������� ���������������������������������������������������������������������� �����������������������������������������������������������������������

�����������

www.lpmagazine.org

��������������������������� ���������������������������� ���������������������������������������� ����������������������������������� 19


soluciones para empresas Software Libre en la PYME

Dar seguimiento al Grupo de Usuarios y/o Comunidad Especializada, como organización estudiantil, apoyando en la democratización del conjunto, normatividad, el establecimiento y cumplimiento de objetivos, etc. Crear la convocatoria entre la población estudiantil y/o egresados, además de proveer el espacio físico y técnico para permitir que los Profesionales TI puedan reunirse para recibir la capacitación y/o práctica de los temas en formación.

Fase 2. Difusión La fase de difusión inicia cuando el Grupo de Usuarios y/o Comunidades Especializadas alcancen un grado de madurez (previamente definido en los Temarios Guía o Agendas de Formación) aplicativo en escenarios reales. A partir de dicho momento, será labor de la universidad y sus departamentos de vinculación, el buscar espacios, en el sector empresarial, para reafirmar los conocimientos adquiridos y/ o crear los espacios laborales para sus futuros egresados, a través de: •

20

Atraer al Sector Empresarial para generar interés en los productos y servicios del Software Libre, a través de pláticas, conferencias, demostraciones, talleres, laboratorios, clínicas y/o proyectos, desarrolladas por el Grupo de Usuarios y/o Comunidades Especializadas. Las instituciones educativas podrán también crear planes de “Actualización Educativa” o “Cursos de Capacitación” y/o “Educación Continúa” para los usuarios finales de las tecnologías de Software Libre (por ejemplo: Emprendedores, Secretarías, Contadores, Administradores, Oficinistas, etc.) Se busca que la aplicación de los conocimientos adquiridos se lleve a cabo a través de “Clínicas Empresariales” o “Laboratorios” donde se realicen proyectos TI, previamente definidos y ofertados a las empresa, y dirigidos por la universidad. Vincular a los participantes con proyectos en el sector empresarial donde se apliquen los conocimientos teóricos adquiridos: – Se recomienda la aplicación de metodologías formales (PMBOK/PMI, ITIL, RUP, etc.) para la realización formal de los proyectos. – Se recomienda que sean proyectos “vendidos” por la comunidad, donde “vendidos” nos referimos a que sea el sector educación el que ofrezca los proyectos específicos al sector empresarial, en donde se desarrollen y fortalezcan habilidades específicas de los Profesionales TI. Colaborar entre universidades en para la creación de proyectos de impacto regional, así como intercambio de conocimiento, participación en proyectos de Software Libre, etc. Generar competencia entre las universidades, para la obtención de proyectos en empresas del sector privado (generación de planes de proyecto, cotizaciones, etc.) así como competencias en términos de capacidad y conocimientos (Ej. Concursos de Programación), etc.

Fase 3. Certificación Actualmente, el conocimiento de muchas herramientas y tecnologías son evaluados a través de procesos de certificación, donde se busca garantizar que el Profesional TI cuente con un nivel de conocimientos y experiencia que garantice el óptimo uso de las tecnologías.En este proceso también pueden participar las Instituciones Educativas, que podrían incluir planes, programas de formación y/o exámenes, para la obtención de certificados oficiales, previamente coordinados con las entidades reguladoras correspondientes, siendo esto un valor agregado para sus Profesionales TI. •

Obtener las credenciales necesarias ante las entidades correspondientes y ofrecer servicios de capacitación, evaluación y certificación de las capacidades de los Profesionales TI de la región. Certificar a la población de Grupos de Usuarios y/o Comunidades Especializadas

Generación de Demanda

Para balancear la ecuación, y gestar los escenarios para que la oferta generada por las instituciones educativas, sea consumida por el sector empresarial, hay que generar demanda de los productos y servicios ofertados por los Profesionales TI en Software Libre. Este es un proceso en el cual las Instituciones Educativas tendrán un papel estratégico y catalizador para la promoción e introducción del Software Libre en los mercados regionales. Generación de Demanda es ampliar la visión de los directores, dueños de empresas y tomadores de decisiones, acerca del cómo el uso de las tecnologías de información basadas en Software Libre, pueden potenciar el desarrollo de las empresas, en la región. Normalmente las instituciones educativas cuentan con una serie de contactos y/o convenios con el sector empresarial, cámaras de comercio y/o asociaciones empresariales regionales, y a través de esta red de contactos, podrán crear las campañas de promoción del Software Libre, para crear conciencia y los espacios requeridos para los Profesionales TI. El Sector Gobierno también es en un eje focal, y de gran influencia en el uso y promoción del Software Libre.

Figura 1. Iniciamos una “Empresa Sin Tecnología” y buscamos llevar a las empresas a un grado de madurez “Empresa Con Software Libre”

LiNUX+ 8/2010


soluciones para empresas Software Libre en la PYME

Promoción del Uso de la Tecnología en las PYMES

Los nuevos negocios y las pequeñas empresas se pueden apoyar en tecnología de Software Libre para potenciar sus procesos de negocio. Sin embargo, el sector empresarial representa un gran reto, debido a los “paradigmas y las costumbres comerciales” que rodean el concepto del Software y la Computación. La tarea de sensibilizar y crear conciencia a los tomadores de decisiones, se puede llevar a cabo a través de conferencias, pláticas o talleres, en las que se presente las herramientas de tecnología de Software Libre, que ayuden a fortalecer las operaciones de las empresas, en temas: • • • • •

Herramientas de Software para PYMES (Tecnología en General), Conciencia del Uso del Software Legal, ¿Qué es el Software Libre?, Análisis de Costo Total de Propiedad del Software Libre vs. Software Privativo, Seguridad de los Sistemas.

Para complementar estas conversaciones, se busca presentar estrategias para apoyar al sector empresarial, en las áreas de oportunidad que se generen a partir de los temas tratados. Las instituciones podrán presentar su oferta de soluciones y servicios para el sector empresarial a través de “Clínicas Empresariales” y/o “Proyectos Dirigidos”, ejecutados por los Grupos de Usuarios y/o Comunidades Especializadas gestadas, algunos de los servicios podrían ser: • • • •

Auditorías de Sistemas, Planes de Regularización de Software Legal, Proyectos de Migración a Plataformas de Software Libre, Capacitación para Usuarios Finales para Diferentes Herramientas.

Acciones Principales para el Sector Empresarial • • •

Solicitar Auditorías o Análisis de Competencias y Mejoras, a las Instituciones Educativas, Participar en los proyectos ofertados por las Instituciones Educativas, Contratar Profesionales TI para el soporte y operación del Software Libre (Generación de Empleos).

Acciones Principales para el Sector Gobierno •

Un actor fundamental en la utilización del Software Libre es el Gobierno, ya que su aprobación o desaprobación moral, será determinante en la viabilidad que como conjunto social, los empresarios de la región decidan sobre este tema para sus empresas. No es una cuestión de “venderle al gobierno”, es una cuestión de que el gobierno reconozca las bondades del Software Libre y las utilice en beneficio de la sociedad, como: Medida de Reducción de Costos en el Gasto Gubernamental de TI en Licenciamiento de Software.

Usar Software Libre en la Administración Pública: – Establecer mesas de trabajo con el Personal TI de Gobierno, para determinar la factibilidad operativa, técnica y económica de la utilización del Software Libre en la función pública. – Establecer los acuerdos políticos, con las instituciones de educación y los funcionarios de gobierno correspondientes para la generación de un Plan Maestro de Integración, que contemple todas las tareas necesarias para que el Gobierno utilice Software Libre en todas sus oficinas. Crear campañas de asistencia a PYMES para actualización tecnológica en herramientas de Software Libre: – El gobierno puede crear un fondo/subsidio para capacitación en nuevas herramientas, tanto para los usuarios finales como para Profesionales TI.

Finalmente, el ejercicio de generación de la demanda complementa y fortalece las actividades de generación de la oferta. Las Instituciones Educativas son el catalizador de una nueva conciencia social y empresarial, acerca del impacto de las Tecnologías de Información y Comunicaciones, en el desarrollo de los mercados internos y de las economías regionales. A través de nuevos Profesionales TI, las Instituciones Educativas tienen un gran reto y oportunidad en el mercado.

Siguientes Pasos

El siguiente paso es el primer gran reto a enfrentar, y recaerá en la responsabilidad social del lector del presente documento. Aquí algunas preguntas de reflexión: • • •

Promoción del Uso de Software Libre en el Gobierno

Medida de Independencia Tecnológica (No Dependencia de Corporativos Extranjeros). Medida de Promoción del Desarrollo de los Profesionales Locales (Nuevas Empresas, Nuevos Centros de Capacitación, Nuevos Programas de Educación Continua, etc.).

• •

¿Realmente crearía un impacto positivo el Software Libre en mi comunidad?, ¿Qué puedo hacer yo para empezar a realizar las acciones propuestas?, ¿Tengo conocidos en el sector educación, gobierno o empresas, que puedan interesarse y empezar a construir el cambio?, ¿Puedo financiar la realización de estos trabajos en términos de promoción, capacitación, publicaciones, materiales, infraestructura, etc.?, ¿Puedo ser yo un promotor que se acerque a las universidades para promover estos trabajos?, ¿Tengo ideas que puedan complementar este proyecto?

El Software Libre tiene un gran reto social, requiere de personas que se atrevan a pensar diferente y que se comprometan con el desarrollo de sus regiones.

www.lpmagazine.org

21


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

Descubriendo Linux:

¿Qué debes saber si no sabes nada? Mª Dolores Nogueras y Antonio Gómez

es@lpmagazine.org

Es curioso cómo damos por sentado, cuando hablamos de Linux, que todos los que nos oyen o leen tienen la formación mínima para entender todo aquello que estamos diciendo. Uno de los principales escollos, a nuestro entender, para realizar el salto mortal sin red que el usuario cree que supone descubrir Linux es la falta de información general sobre sus características y posibilidades. Este artículo pretende ofrecer una introducción a tan maravilloso mundo, desde la perspectiva de la práctica educativa. ¿Qué debemos saber de Linux para presentárselo a nuestros alumnos?

22

C

uando empecé a interesarme por Linux como alternativa de trabajo desde mi PC, era (eso creía) un usuario experimentado en informática. Sin tener una formación específica ortodoxa, una mezcla de intuición e inconsciencia me guiaban a través de los problemas que me iba encontrando con la generación y administración de documentos, realización de prácticas de todo tipo con el alumnado (desde la consabida realización del primer trabajo en procesador de textos, a la programación de tarjetas controladoras desde los primeros Windows 3.0), webquests, etc... Intuición porque la llegada de los entornos gráficos de escritorio a principios de los 90 daban más facilidad para orientar al usuario sobre qué estaba pasando en cada momento. Inconsciencia porque, en el fondo (era joven y aventurero), me importaba un pito qué pasaría a continuación. Si sucedía lo que yo esperaba, genial. Si había algún error, con suerte, habría guardado el archivo correspondiente. Si no había suerte, todo se había perdido, y tocaba empezar de cero. Y normalmente no me importaba. Era genial. Pensar que una máquina como mi ordenador (un Pentium a ¡100! MHz), normalmente, exigiría como medida extrema un simple formateo y reinstalación del software, y sólo como último recurso, era hipnóticamente atrayente para un legendario “manazas” como el que suscribe, que sólo pulsando un interruptor podía averiar el sistema eléctrico y dejar sin suministro a la casa de sus padres (y les puedo asegurar que no miento). Pero ya estoy divagando, y sólo estamos en la introducción. El caso es que cuando me empecé a interesar por Linux, hará ya unos cinco o seis años, me encontré

LiNUX+ 8/2010

con miríadas de información. Ése es uno de sus principales atractivos, al tiempo que, en ocasiones, un obstáculo: la libertad para difundir, compartir y modificar la información. Sumémosle el hecho de que la mayoría de

Figura 1. Un sistema operativo opera en una capa intermedia entre las aplicaciones controladas por el usuario (software) y el equipo (hardware). Fuente: Wikipedia


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

la información está generada por expertos, y orientada al consumo por parte de expertos. En mi caso particular, superé ese primer problema mezclando a partes iguales dos de los más enternecedores aspectos de mi personalidad: cabezonería e ilusión. Hoy en día, sin atreverme a considerarme un “gurú”, ni mucho menos (ya puedo oír las carcajadas de fondo de algunos lectores que ya han visto nuestro trabajo en anteriores números), sí podríamos decir que sabemos, al menos, por donde empezar en este mundillo, así como ayudar a introducirse en él a compañeros profesores y maestros, así como a alumnos, que nunca hayan tomado contacto con el software libre. A lo largo de este artículo, que sólo pretende ser un primer paso en un viaje tan adictivo como largo, trataremos de orientar al profesor medio sobre el uso de Linux, así como el modo en que creemos que debería presentarse a un alumnado estándar entre los doce y los dieciocho años, que normalmente tiene ya nociones básicas e incluso medias sobre el uso de un ordenador. Hablaremos de lo que es un sistema operativo, la organización de archivos en Linux, el concepto de multiusuario, los escritorios Gnome y Kde, el sistema de instalación de nuevo software y repositorios, e incluso haremos una breve mención al sistema de consola BASH.

embargo, dichas herramientas son complementarias. El sistema operativo como tal se denominaría NÚCLEO. Una buena (reconozcámoslo, muy buena, genial) estrategia de marketing y publicidad por parte de Microsoft, hizo que en los años 90, a ojos del usuario inexperto, Windows fuera, no un sistema operativo, sino el sistema operativo. La ecuación era sencilla: me he comprado un ordenador, tengo que instalar unos programas para trabajar o jugar, y para que esos programas funcionen, el ordenador debe tener instalado el sistema operativo Windows (el 3.1 al principio, el 95 de infausto recuerdo después, algo mejorado por el 98, hasta llegar a XP; a partir de ahí, los redactores de este artículo hemos perdido la pista a las hazañas de Microsoft, porque descubrimos el mundo del software libre; eso sí, aún nos estamos riendo del fiasco Windows Vista). Hoy en día, aunque de un modo desesperantemente lento, el usuario medio va asimilando que en realidad, no estamos hablando de una elección obligada, y que existen múltiples opciones alternativas. Volviendo un poco a la perspectiva del usuario inexperto, de todos modos, es normal esperar que aparte de dicho núcleo, se instalen de modo complementario otras herramientas, juzgadas imprescindibles por el aficionado novato. Por ello, en el mundo de GNU/Linux, se habla de DISTRIBUCIONES o SABORES: conjunClarificando conceptos: to de programas complementarios al núcleo de Linux, que suelen El sistema operativo incluir, como mínimo, un sistema de escritorio que suponga una Empecemos por el principio. ¿Qué es un sistema operativo? ¿Lo te- interfaz gráfica; un procesador de textos, un explorador de archivos, nemos claro? ¿Estamos transmitiendo a los alumnos este concepto y un programa navegador de Internet. También suele ser común inde forma correcta? cluir una consola o terminal, que permita al usuario más experto un En un principio, un sistema operativo es software. Es el primer trabajo a más bajo nivel con el ordenador, así como algún sistema programa que se carga en el ordenador, y su misión es actuar como de ayuda y/o documentación con toda la información relativa al intermediario (interfaz) entre el software que utiliza el usuario y el software incluido. hardware que compone el equipo. Explicado así, el sistema operativo no abarca todas las herramientas que esperamos encontrar Algo de historia. cuando lo instalamos en nuestro PC. Estamos acostumbrados a ¿De dónde proviene GNU/Linux? esperar que un sistema operativo (como los denostados WINDOWS Efectivamente. Una duda común a todos los aficionados que se de Microsoft) incluya otras herramientas: un procesador de textos inician en este mundo da vueltas al origen de esta forma de softsencillo, un visualizador de imágenes, un explorador de archivos, ware. ¿Software libre siempre quiere decir gratis? ¿Puede haber etc., integrados, además, en una aplicación gráfica (lo que denomi- profesionales que se dediquen a esto sin retribución alguna? ¿De namos comúnmente un escritorio) que permite la interacción del qué viven entonces? ¿O quizás estamos hablando del nada confiable usuario con el ordenador de manera sencilla, ratón mediante. Sin trabajo de simples aficionados que juegan a emular las hazañas de

Figura 2. Richard Stallman, padre del proyecto GNU, tiene fama de ser notablemente excéntrico. No utiliza normalmente un entorno gráfico en su ordenador, no utiliza Internet salvo para enviar correos...

Figura 3. Linus Torvalds completa el tándem formado por todas las herramientas GNU al concebir un núcleo compatible con ellas y licenciarlo como software libre

www.lpmagazine.org

23


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

sus idolatrados programadores, hordas de freaks con acné, gafas de pasta arregladas con esparadrapo, y poseedores de títulos como mago elfo de nivel 15? Vale. Vale. Respiremos. Empecemos por el principio. Y eso implica hablar forzosamente de Unix, por un lado, y de Richard Stallman, por el otro. En los años sesenta, setenta y ochenta, los primeros ordenadores no estaban, desde luego, diseñados para su uso por parte de gente que no fuera un programador experto. Eran prototipos carísimos, enmarcados en experimentos de Universidades y proyectos de I+D de grandes multinacionales, que si bien representan un porcentaje infinitesimal de la potencia de computación de nuestros equipos actuales, suponían un paso de gigante en el progreso de las Tecnologías de la Información (concepto que ni siquiera existía como tal). Había un mismo equipo para decenas de programadores y trabajadores, cada uno de los cuales trabajaba con su propia cuenta de usuario, introducía su contraseña, trabajaba con sus datos, y cerraba su sesión, cediéndole su turno al siguiente investigador. Faltaban aún muchos años para concebir siquiera que pudiera haber un ordenador doméstico a disposición de un usuario con pocos conocimientos informáticos en su propio hogar. En este marco brilló con luz propia el sistema operativo Unix, que cobró rápidamente prestigio de ser un sistema estable. Nacido originariamente en el seno de los Laboratorios Bell de AT&T y General Electric, se define como un sistema operativo portable (se puede ejecutar en múltiples plataformas), multiusuario y multitarea. Es de base comercial, es decir, se considera como software de pago. Sin embargo, los sistemas operativos con base GNU/Linux, base de este artículo, imitan (clonan) el comportamiento de este sistema, y en un principio, no se exige remuneración económica. ¿Cómo hemos llegado a esta situación?. Sigamos nuestro repaso histórico... Stallman trabajaba en el MIT (Masachussets Institute Technology) como programador en el Laboratorio de Inteligencia Artificial, ya en el primer año de sus estudios de Físicas. En aquellos tiempos, el software era libre de origen, es decir, se compartía por sistema toda la información. La constante presión de la cultura comercial, sin embargo, erosionó esta concepción hasta el punto de que algunos compañeros de Stallman fundaron su propia compañía, Symbolics, al objeto de ir sustituyendo el software libre utilizado por el Laboratorio por sus propios productos comerciales (esto es, de pago).

Figura 4. Gparted nos ayuda a organizar nuestros discos duros en particiones con distintos formatos. En la imagen, en el disco duro calificado como sdb, hay cuatro particiones, en este caso, todas para Windows

24

Stallman se opuso todo lo que pudo, pero acabó quedándose solo. Como reacción, en 1983, inició el movimiento GNU. GNU es el acróstico de GNU is Not Unix, en un juego de palabras, todavía no sabríamos decir si intraducible, o simplemente un sinsentido que trata de ser humorístico. El objetivo básico de dicho proyecto consiste en conseguir un sistema operativo totalmente libre. Para ello, en un alarde de energía y mostrando una voluntad de trabajo titánica, se dedicó, con ayuda de quien quiso colaborar, a reescribir en lenguaje C varias herramientas que repiten las funciones del sistema operativo UNIX. Actualmente destacan, entre dichas herramientas, el compilador para lenguaje C gcc, el terminal de consola BASH, el procesador de textos Emacs o el famoso GIMP. Pero con todo ello, entre todas estas herramientas que puede incluir el sistema operativo libre con el que soñaba Stallman, seguía faltando un núcleo, un kernel que se encargara de la comunicación entre software y hardware del ordenador. Ahí es donde entra Linus Torvalds. Estudiante finlandés de 22 años, Torvalds estaba muy interesado en el por entonces reciente sistema operativo Minix, de Andrew Tannenbaum, de tipo comercial y con propósitos didácticos. Como parte de sus estudios, se inspiró en dichas ideas para desarrollar un núcleo desarrollado en lenguaje C, que en su primera versión, en 1991, podía ejecutar el terminal de consola BASH y el compilador GCC. Sólo faltaba el paso definitivo, dado en 1992. Torvalds adoptaba para su trabajo una licencia GPL (General Public License), encuadrada en el movimiento GNU, por la que se otorgan derechos de libre modificación, redistribución, copia y uso ilimitados para todos los usuarios. No hace falta extenderse mucho más para que el lector deduzca por su cuenta que ambos proyectos se complementaban en un sistema operativo acorde con la filosofía del software libre. Había nacido GNU/Linux.

¿Todo es gratis?

Bueno, no. A veces lo parece, máxime cuando dentro del concepto Free Software hacemos la traducción del inglés, free, que es un vocablo polisémico entre los anglosajones. Puede significar gratis, pero también libre, este último significado es el que realmente deberíamos tomar. Concretamente, el objetivo último del software libre es el de poner a disposición de cualquier interesado toda la información, el

Figura 5. Podemos modificar de modo sencillo los permisos de un archivo desde la pestaña Propiedades del escritorio

LiNUX+ 8/2010


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

código fuente, si se prefiere, más la documentación complementaria relacionada, de la utilidad informática de la que estemos hablando en ese momento. De ahí el término Open Source. Pero eso no conlleva una obligada relación software libre-gratuidad de la aplicación, si bien suele ser lo más normal. Cuando surge esta duda al introducir en el mundo GNU/Linux a nuestros alumnos, muchas veces presentamos esta metáfora: el funcionamiento de una lavadora o de un frigorífico puede o no interesarnos, pero si queremos saber cómo funciona, nadie nos lo oculta. Si una persona con suficiente interés quiere construir su propio electrodoméstico, sólo tendría que comprar los materiales y la herramienta necesaria para ello. No es un secreto de estado el conjunto de principios físicos, eléctricos y mecánicos en los que se basa el funcionamiento de estos aparatos, aunque otra cosa será el que nos compense más pagar a una empresa especializada por adquirir un producto fabricado por profesionales, con todas las garantías. Precisamente, una concepción equivocada de este mundo suele llevar al profano a una conclusión errónea: de acuerdo, la colaboración desinteresada de la comunidad hacker implica el desarrollo de múltiples herramientas muy interesantes, pero en el mundo real, no creo que puedan compararse con aquellas desarrolladas por una empresa que trabaja por un beneficio económico, y que por lo tanto invertirá dinero y recursos en el desarrollo de dichas aplicaciones. ¿Por qué decimos que es una concepción equivocada? Porque es falso que no pueda haber un beneficio económico detrás del software libre. Hay varias compañías multinacionales que impulsan y desarrollan proyectos Open Source de distintos calados y características. Sin ir más lejos, tenemos a Mark Shuttleworth, propietario de Canonical Ltd, empresa madre de Ubuntu, o el caso de la empresa Sun, desarrolladora de la suite ofimática OpenOffice.org. En un artículo calificado por varios profesionales como imprescindible, Setting Up Shop: The Business of Open-Source Software, Frank Hecker distingue varios modelos de negocio alrededor del software libre. No es objeto de nuestro texto extendernos sobre este tema, pero sí que podemos mencionar un par de ejemplos bastante ilustrativos al respecto: •

Support Seller: en este caso, el beneficio económico se obtiene, no de la venta de la aplicación informática, sino de servicios de soporte y mantenimiento relacionados con el producto. Loss Leader: el producto de software libre es una versión operativa que permite al público conocer las posibilidades de

Figura 6. Compiz en Gnome proporciona efectos de escritorio espectaculares que nada tienen que envidiar a otras aplicaciones similares

la aplicación. Sin embargo, se ofrecen como privativas otras versiones mejoradas que añaden múltiples mejoras atractivas para nuestros potenciales clientes. Sell it, free it: la empresa vende un producto como privativo, a cambio de un beneficio económico. Cuando amortiza el programa, desarrolla una versión mejorada de dicho producto privativo a partir de los beneficios obtenidos. A continuación, libera (convierte en Open Source) la versión amortizada de la aplicación.

Funcionamiento y características de un sistema operativo GNU/Linux

Hemos presentado, hasta aquí, la filosofía de base del movimiento en torno al software libre. Pero lo que realmente interesa al aficionado que no ha trabajado nunca con GNU/Linux es saber cómo funciona un sistema operativo de este tipo y cómo funcionan los elementos que constituyen su base, sea la distribución que sea: Debian, Ubuntu, Mandriva, Fedora, Slackware, y decenas (cientos) más. Como ya se ha mencionado antes, una distribución o sabor es el conjunto del núcleo o kernel Linux con varias herramientas complementarias GNU. Por lo tanto, y aunque muchos lectores expertos pueden no estar de acuerdo con esta idea, nos atrevemos a afirmar que para el usuario medio o incluso experto, acabaría siendo indiferente la distribución con la que se empezara a trabajar: al final, seguirá utilizando como base el mismo kernel, y reunirá, entre las herramientas con las que viene la propia distribución, y las que consiga a través de los repositorios o de la red, el conjunto de aplicaciones informáticas con las que realmente necesite trabajar. Así, por ejemplo, podemos empezar con una distro (distribución) Ubuntu, que popularmente se concibe como una de las más amigables para el no iniciado, y que incorpora por defecto un escritorio Gnome, y cambiarlo por el más espectacular y agradable a la vista KDE. Si no nos gusta el navegador Firefox que incorpore, podemos cambiarlo por Opera, Chrome,... las posibilidades son infinitas. En los próximos apartados, trataremos de hacer un repaso de las características comunes a todas las distribuciones con base GNU/ Linux, a efectos de proporcionar una base teórica con la que el nuevo aficionado pueda sentirse más seguro en su viaje por nuestro

Figura 7. KDE, con el software explorador tanto de archivos como para Internet, Konqueror, es considerado tradicionalmente como más atractivo gráficamente y con más opciones de configuración

www.lpmagazine.org

25


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

mundo. Empezaremos con la preparación del disco duro, su forma de organizar los archivos, los tipos de usuario y los correspondientes permisos de lectura/escritura, y a continuación pasaremos a analizar los dos escritorios más populares (al menos para nosotros): KDE y GNOME. Analizaremos el sistema de instalación de aplicaciones en el S.O. en base a los repositorios, para terminar echando una ojeada sobre el terminal BASH (uno de los más populares), que suele ser la bestia negra que distinguirá al usuario noob (novato) del que realmente empieza a avanzar como linuxero. Pasen y vean.

Particiones y formatos lógicos en GNU/Linux. Instalación del sistema operativo

Hablaremos en estas líneas del modo que tiene GNU/Linux de organizar y localizar la información en los distintos archivos en sus sistemas de almacenamiento, sean discos duros, lápices USB, disquetes (¿alguien los utiliza todavía?), etc. En primer lugar, hay que aclarar que el no iniciado debe olvidarse por completo de lo que estaba acostumbrado a ver en Windows. El mítico Mi PC nos ofrecía en una ventana una imagen rápida de los distintos sistemas de almacenamiento antes mencionados, nombrados alfabéticamente: C:/, D:/, etc., para discos duros, A:/ para disquetes, y así sucesivamente. En Linux, por sistema, se ignoran los discos que no se utilicen. Los que se utilizan, se dice que están montados (es decir, se destina parte de los recursos del ordenador a acceder a su contenido). El resto, simplemente se ignoran, logrando una mayor eficiencia en la gestión de la memoria. Pero volveremos más tarde sobre ello. El caso es que los discos duros, sobre los que normalmente se asentarán los sistemas operativos, se organizan según un formato lógico que asignará unos sectores del disco a unos tipos de archivo en particular. Cuando queremos utilizar más de un sistema de archivos en un mismo disco duro (separar software de datos, o instalar más de un sistema operativo), debemos dividir previamente el disco duro en más de una partición (división dentro del disco duro). Windows utiliza los formatos lógicos FAT, FAT16, FAT32 y NTFS. Linux, en cambio, utiliza los formatos EXT2, EXT3 y EXT4, entre otros. La instalación de cualquier sistema operativo GNU/Linux pasará por la división del disco que la va a alojar, al menos en dos particiones distintas: la partición raíz (/), y la partición swap o me-

Figura 8. En todos los sistemas operativos GNU/Linux podemos añadir nuevas direcciones de repositorios

26

moria de intercambio. En el siguiente apartado nos ocuparemos de la primera. En cuanto a la memoria de intercambio, baste decir que es un apartado dentro del disco duro que se reserva para procesos poco activos, pero presentes, dentro de la memoria, de modo que estén disponibles para cuando se necesiten, pero al mismo tiempo no ocupen espacio dentro de la memoria RAM con la que trabaja directamente el microprocesador. En GNU/Linux, herramientas como Gparted nos ayudan a organizar y administrar particiones y formatos lógicos dentro del disco.

Sistema de archivos en GNU/Linux, Superusuario y usuarios, Permisos

Como se decía en el anterior apartado, asignábamos a los formatos lógicos la responsabilidad de organizar la información dentro de la partición en un determinado sistema de archivos y carpetas. En concreto, los formatos EXT* disponen de un árbol de directorios estandarizado e inamovible en la partición raíz (/): • • • • •

• •

• • • • • •

/bin: para guardar comandos de usuario, /boot: información sobre el arranque del sistema, /dev: dispositivos presentes en la máquina (montados y no montados), /etc: archivos de configuración de las aplicaciones, /home: carpeta reservada para alojar los distintos documentos de cada usuario. Hay una carpeta por usuario, que es el único con permisos de escritura en dicha carpeta, /lib: para alojar librerías necesarias en distintas aplicaciones, /media: a través de esta carpeta, se puede acceder a la información de los dispositivos presentes en /dev que hayan sido previamente montados, /mnt: actualmente no tiene mucha utilidad. Es el predecesor de /media, /proc: aloja información sobre el estado de los procesos y el kernel, /root: reservado para el administrador del sistema. /sbin: aloja comandos disponibles sólo para el administrador (root), /tmp: carpeta disponible para archivos temporales, /usr:en esta carpeta se alojan todos los archivos que se juzgan

Figura 9. Los gestores gráficos de paquetes como Synaptic dan cumplida información de los paquetes instalables, instalados, rotos,... así como de las dependencias cumplidas y por cumplir

LiNUX+ 8/2010


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

relativos a aplicaciones del usuario, documentación, etc. En Fuera del root, en GNU/Linux se consideran tres tipos de idenfin, todo lo que no es encuadrable en el resto de carpetas, tificación de usuario: • /var: en esta carpeta se aloja información de tipo variable: diarios o logs de sistema, cuentas de correo, sitios web alojados • Propietario del archivo o carpeta, en un servidor dentro del ordenador, etc. • Grupo de usuarios al que pertenece el propietario, • Otros usuarios no enmarcados en los grupos anteriores. El sentido de esta organización es el de tener asignado un lugar específico para cada tipo de archivo. En consecuencia, aunque un Cada uno de los cuales puede tener, o no, permiso para: usuario, sea gráficamente o a través de consola, pueda acceder a otras carpetas aparte de la que corresponde realmente a su cuenta • Leer el archivo, (/home/nombredeusuario/), no podrá estropear nada accidental- • Escribir o borrar el archivo, mente o a propósito, puesto que sólo el usuario con permisos de • Ejecutar el archivo. superusuario o administrador (el consabido root) tendrá atribuciones para modificar archivos en las carpetas. Además, siempre se Cada archivo tiene asignado un permiso de lectura/escritura/ le solicitará la introducción de su contraseña de superusuario, lo ejecución para cada uno de los tipos de usuario antes mencionado, que añade un grado más de seguridad a dicho sistema de archivos. según esta terminología numérica: 0 para ningún tipo de permiso, En otro orden de cosas, el avispado lector puede empezar a ima- 1 para lectura, 2 para escritura, y 4 para ejecución. Según los perginar ya la dificultad de intentar introducir malware o software misos que se asignen a cada tipo de usuario, que se suman entre sí, malicioso en un ordenador organizado de este modo. Aquí, un tendremos una tríada que oscilará entre 000 y 777. virus tiene mucho más difícil el instalarse por su cuenta oculto Comprendemos que es un concepto algo difícil al principio; en el seno de otro programa, entre otras razones, que luego se por eso queremos ilustrarlo con un ejemplo. Supongamos que teneverán, porque se vería obligado a denunciarse a sí mismo al pedir mos dos grupos de usuarios asignados en un PC con kernel Linux: al usuario la contraseña de administrador para obtener permiso de profesores y alumnos. En el primer grupo, tenemos los usuarios instalación. De todos modos, y como se verá después, la filoso- profesor1 y profesor2. En el segundo grupo, tenemos los usuarios fía de trabajo a la hora de instalar nuevo software también varía alumno1 y alumno2. Imaginemos que el usuario profesor1 es bastante. Eso sí, ¡cuidado!. No pretendemos decir con esto que poseedor del archivo examenhistoria.txt, en su carpeta de cuenta GNU/Linux sea invulnerable a ataques malintencionados, porque /home/profesor1. Por otro lado, el usuario alumno1 es el propiela vulnerabilidad siempre está sujeta a las reacciones del propio tario del archivo ejecutable chuletasparaexamen.sh, en su carpeta usuario. Sí podemos afirmar que será un sistema estable, que bien /home/alumno1. utilizado, dificultará muchísimo el acceso externo por parte de En un principio, el archivo examenhistoria.txt tiene los perpersonas no autorizadas a nuestro equipo. misos 710. ¿Qué permisos tendrán los otros usuarios sobre dicho Hablemos ahora de los permisos de usuario. En GNU/Linux, archivo? Analicémoslo. Según lo expuesto, el sistema numérico sólo un usuario tiene atribuciones de lectura y escritura sobre las indica los permisos, por orden, para el propietario, para el grupo, carpetas y archivos fuera de la carpeta de su propia cuenta en /ho- y para otros usuarios. Por lo tanto: me: el administrador o superusuario, denominado root. Cualquier intento de creación, modificación o borrado de un archivo, así • El propietario, profesor1, tiene asignado el número 7, que cocomo de instalación de nuevo software, exigirá la introducción rresponde a los permisos sumados 1+2+4. Esto es, profesor1 previa de la contraseña de superusuario. A nivel de consola, tiene permisos de lectura, escritura y ejecución (aunque el cualquier comando que suponga trabajar a este nivel, deberá archivo es de texto, no es un ejecutable en este ejemplo) sobre ser precedido del término sudo, que indica que la orden tecleada examenhistoria.txt corresponde a un superusuario que espera se le pida el password para identificarse.

Figura 10. La mayoría de las distribuciones suelen incorporar alguna utilidad sencilla de instalación de nuevo software mediante paquetes

Figura 11. Aunque algo incómodo de utilizar al principio, el terminal de consola demuestra ser mucho más potente que su homólogo gráfico. En la ilustración, el comando man proporciona toda la información sobre el gestor de paquetes dpkg

www.lpmagazine.org

27


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

Los otros usuarios del grupo de profesor1, profesores, tienen el permiso 1 sobre ese mismo archivo. Es decir, como no se puede dividir este permiso como suma de otros números, el otro usuario del mismo grupo (profesor2) tiene permisos de lectura sobre examenhistoria.txt. El usuario profesor2 podrá leer, aunque no modificar, dicho archivo. Los usuarios alumno1 y alumno2, que no pertenecen al grupo antes mencionado, tienen permiso 0 (ningún permiso) sobre el archivo. No podrán leer, ni mucho menos modificar o ejecutar, un archivo con ese número de permiso.

El sistema de trabajo por menús de todos los escritorios, salvando las lógicas distancias, es altamente intuitivo, incluso para el usuario no iniciado. Normalmente, se hará una división de menús por tipo de posibilidad (separando aplicaciones, explorador de archivos y utilidades de configuración del sistema). Algunos ejemplos de entornos de escritorio son: •

KDE y GNOME (ampliamente mencionados desde el principio del artículo), Window Maker, Ice Wm, Blackbox, Flushbox.

• • Siguiendo con el ejemplo, el archivo chuletasparaexamen.sh, un • ejecutable que (por ejemplo) generara “apuntes de apoyo” para el • próximo examen del alumno, tiene asignado el número de permiso 541. En base a eso: Tradicionalmente, se ha sostenido que KDE es gráficamente más rico y vistoso que Gnome, además de otorgar muchas más posibi• El propietario, alumno1, tiene el permiso 5, como resultado lidades de configuración al usuario, si bien exige más recursos al de sumar 4+1. Esto es, alumno1 puede ejecutar este archivo, sistema, y Gnome es mucho más estable. En la actualidad, aplicaasí como leerlo para poder analizar su estructura de progra- ciones como Compiz añadidas al software original, mejora la apamación. riencia gráfica y acerca visualmente ambos escritorios. • Los otros usuarios del mismo grupo alumnos, alumno2 en este caso, tendrán el permiso 4. Esto es, alumno2 también podrá Instalación de nuevo software, generar “apuntes de apoyo”, si bien no podrá leer ni mucho Filosofía de los repositorios, menos modificar dicho archivo. Gestión de paquetes, • Curiosamente (y a efectos ilustrativos de nuestro ejemplo), el Synaptic y Rpmdrake permiso asignado a otros usuarios es 1, que correspondería a la La instalación de nuevo software en un S.O. GNU/Linux centra lectura del archivo para un posible análisis, aunque no parezca su base en la utilización de los repositorios. Un repositorio viene lógico darle un permiso que no tienen los usuarios del mismo a ser un sitio con una dirección web determinada donde se almacena grupo que el propietario. y mantiene información digital, normalmente en forma de archivos informáticos. Gráficamente, (usando escritorios como Gnome o Kde), podemos Cuando nuestro ordenador está equipado con un sistema opever y, si somos propietarios, modificar estos permisos mediante rativo libre, dispone de una lista de direcciones de repositorios, el ya familiar proceso de hacer clic derecho–>Propiedades–> normalmente en el archivo /etc/apt/sources.list (el lector puede Hacer clic en la pestaña Permisos. Si trabajamos a través de ter- consultarlo, si bien no modificarlo directamente, a causa del esminal, el comando utilizado es chmod (ejemplo: chmod 777 chuleta- tablecimiento de permisos de archivo mencionado en anteriores sparaexamen.sh dará todos los permisos a todos los usuarios, si apartados). nos hemos identificado como alumno1. Si no somos tal usuario, El sistema de repositorios utilizado en GNU/Linux permite la se nos dará un mensaje de error). instalación de nuevo software mediante la gestión de paquetes. Según esta definición, un paquete consistiría en un conjunto de softEntornos de escritorio ware, normalmente encapsulado en un único fichero, que incluiría Las distribuciones GNU/Linux actuales cuentan con un sistema información adicional como el nombre completo, la identificación gráfico que permite al usuario un manejo amigable, fácil e intui- del distribuidor, una descripción de sus funciones, y sobre todo, la tivo del ordenador. Con base en el software gráfico X Window relación de otros paquetes que se requieren para el correcto funcioSystem, orientado a Unix, y que va en la actualidad por la ver- namiento del software en cuestión. Lo que nos lleva al concepto sión X11, los entornos de escritorio cuentan con un sistema de de dependencia. En GNU/Linux, como en cualquier otro sistema ventanas de idéntico (prácticamente) funcionamiento a los S.O. operativo, si nos hace falta un software determinado para conseWindows y MAC OS (minimizado, maximizado, cierre de ven- guir que otro funcione, y no lo tenemos instalado, lógicamente no tanas, menús desplegables, teclas de atajo de teclado, fondos de funcionará. Pero si en el paquete que estamos instalando se hace escritorio, colores, etc.). una referencia a dicho software del que dependemos, es posible Muy interesante resulta recalcar que, a diferencia de los otros que el propio proceso de instalación localice, descargue (cuando sistemas operativos no libres, queda en manos del usuario elegir hablamos de Internet, un 90% de las veces) e instale esos paquetes qué entorno de escritorio desea utilizar. Si no queda satisfecho con complementarios. el que viene por defecto con la distribución elegida (por ejemplo, De este modo, el usuario no necesita saber nada sobre métodos Gnome para Ubuntu, o KDE para Mandriva), puede utilizar el siste- de instalación, localizar el archivo dentro del conjunto que inicia ma de repositorios (en próximos apartados se explica) para instalar el proceso, decidir la carpeta donde se guardará el programa... El otro u otros de su agrado. Puede incluso mantener en convivencia propio sistema operativo, una vez se le ha indicado el software más de un entorno, eligiendo cuál le apetece usar en cada inicio de que se desea, buscará en su base de datos el nombre del paquete, sesión de usuario. localizará el repositorio donde se localiza dicho paquete, lo descar-

28

LiNUX+ 8/2010


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

gará a memoria, leerá la información contenida en él y realizará la instalación, resolviendo las dependencias que dicho paquete señale (esto es, descargando e instalando los programas complementarios que dicho paquete declare necesitar). Aunque uno de los repositorios normalmente suele ser el propio CD de instalación que hemos utilizado para instalar el sistema operativo que estemos utilizando, lo más normal es que la instalación de nuevos programas mediante paquetes requiera la utilización de Internet. Los paquetes en Linux suelen tener la extensión *.deb, para sistemas operativos provenientes del sistema Debian (Debian, Ubuntu, Molinux, y varios más) y *.rpm, para los derivados del originario Red Hat (Fedora, Mandriva, Suse,...). En ocasiones, el usuario que empieza a adquirir algo de experiencia requiere la instalación de un software que no está incluido en los paquetes universales que por defecto incorpora su distribución. En esos casos, una breve investigación en la red le permitirá conocer la dirección del repositorio que necesita utilizar, sea mediante consola, identificándose como root y modificando el archivo /etc/apt/sources.list, sea utilizando el menú de configuración de opciones del sistema donde se haga referencia a tal posibilidad. Por ejemplo, en los sistemas operativos derivados de la distribución Debian, como Ubuntu o Molinux, dicha posibilidad se encuentra en Sistema->Administración->Orígenes del software. Todos los entornos de escritorio incorporan una utilidad directa de instalación de nuevo software de manera gráfica, utilizando los repositorios. Sin embargo, el software, diríamos, básico en que se apoyan todas estas utilidades sigue siendo el elemento gestor de paquetes; por ejemplo, Synaptic en Gnome, Rpmdrake para Mandriva o Yast en OpenSuse. Naturalmente, estas aplicaciones gráficas son implementaciones desde el escritorio de aplicaciones a más bajo nivel, escritas normalmente en C, que pueden correrse directamente bajo consola. El ejemplo con el que los redactores de este artículo nos sentimos más cómodos es con dpkg, el gestor de paquetes deb, que pueden utilizar las aplicaciones apt-get o aptitude, con la opción install, (otros son yum o urpmi). Veamos un ejemplo de consola (de la que hablaremos a continuación); supongamos que deseamos instalar un videojuego llamado crafty: antonio@antonioelmalo: ~$ sudo aptitude install crafty

El comando sudo indica que nos deseamos identificar como usuario root, con permisos de administración: [sudo]password for antonio:******

Introducimos nuestra contraseña; a continuación, se nos va informando del progreso de la instalación: Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Leyendo la información de estado extendido Inicializando el estado de los paquetes... Hecho

Se nos comunica la relación de paquetes que se procederán a instalar, para resolver todas las dependencias: Se instalarán los siguiente paquetes NUEVOS: crafty crafty-books-medtosmall{a} gnuchess{a} gnuchess-book{a} xaw3dg{a} xboard{a} 0 paquetes actualizados, 6 nuevos instalados, 0 para eliminar y 0 sin actualizar. Necesito descargar 5829kB de ficheros. Después de desempaquetar se usarán 13,5MB. ¿Quiere continuar? [Y/n/?] y

A partir de aquí, la consola devuelve la relación de direcciones de repositorios desde donde se va descargando cada paquete, así como el progreso de la instalación. Si al finalizar el proceso, hubiera cualquier problema, el terminal nos lo comunicaría. El usuario no iniciado, de todos modos, siempre contará con alguna herramienta de corte gráfico más simple que no proporciona tanta información, posiblemente densa y excesiva para el principiante, y que cumplirá igualmente con su objetivo. Una de nuestras preferidas, en las últimas versiones de Ubuntu, se encuentra en el menú de Gnome Aplicaciones->Centro de software de Ubuntu.

El terminal de consola BASH

Como decíamos anteriormente, la consola suele ser la “bestia negra” que evita a toda costa el principiante. No es que no se sienta cómodo con ella, es que simplemente no sabe utilizarla. Es lógico que sea así. El terminal de consola es un intérprete de comandos que realiza, a bajo nivel, todo lo que el usuario puede conseguir mediante el interfaz gráfico a base de ventanas. Eso sí, puede realizar aún más funciones, con decenas, cientos de posibilidades de configuración adicionales. BASH es el acrónimo de Bourne Again SHell, un juego de palabras que combina el apellido Bourne (el escritor original del terminal de consola para Unix que BASH emula) y el término “renacido”. Este programa fue escrito en el seno del proyecto GNU, y suele ser el terminal de consola que viene por defecto con la mayoría de las distribuciones. (Recordamos, no obstante, al lector, que siempre puede prescindir de este programa, e instalar otro de su preferencia con iguales o parecidas atribuciones; en todo este texto estamos remarcando las casi infinitas posibilidades de configuración de un sistema operativo con base en el software libre). Cuando se pone en marcha el terminal de consola, aparece una pantalla de texto, con un cursor parpadeante, precedido de dos términos separados entre sí por el símbolo @: antonio@antonioelmalo:~$

El primer término hace referencia al usuario que ha puesto en marcha la terminal (antonio), y el segundo hace referencia al nombre del equipo (antonioelmalo). Donde está situado el cursor, el usuario irá tecleando diversos comandos con las opciones que correspondan. El terminal irá obedeciendo cada orden, ofreciendo la información correspondiente de vuelta. Algunos comandos básicos en consola son:

www.lpmagazine.org

29


linux en la educación Descubriendo Linux: ¿Qué debes saber si no sabes nada?

que quiera investigar. De hecho, se suele abrir una mini enciclopedia explorando todas las opciones y posibilidades que dicho comando mos. ofrezca. Una vez abierta esta posibilidad (por ejemplo, en man ls), el • cd ruta: cambia a la carpeta especificada en ruta. espaciador va cambiando de página. También podemos movernos por • mkdir nombrecarpeta: crea una carpeta en la ruta en la que el manual correspondiente con las teclas de cursor, Avanzar página nos encontramos con el nombre especificado. Si el nombre espe- y Retroceder página. La tecla q finalizará el proceso. cificado es precedido de una ruta, se creará en la ruta señalada. • rmdir nombrecarpeta: borra la carpeta especificada. Conclusiones • rm nombrearchivo: borra el archivo especificado. Está claro que es imposible condensar en un solo artículo de revista • ./nombrearchivo.sh: ejecuta el archivo ejecutable especifica- todo lo que el usuario interesado debería saber sobre lo que comúndo con extensión .sh. mente se llama el Mundo Linux. Pero está claro que por algún sitio • su nombreusuario: indica al terminal que vamos a conmutar hay que empezar, y nosotros hemos hecho un repaso de aquellos cona otro usuario con el nombre indicado. Se nos pedirá, en con- ceptos que consideramos constituyen la base de este mundo, y que secuencia, que introduzcamos la contraseña correspondiente. en su día echamos de menos que se nos explicara. Desde la persVeamos un ejemplo: pectiva de la práctica educativa, es particularmente delicado iniciar antonio@antonioelmalo:~$su alumno01 en un universo tan versátil, y por lo mismo, tan ambiguo, a nuestros Contraseña: ****** jóvenes. No hay que olvidar que, si bien su contacto con la Informáalumno01@antonioelmalo:/home/antonio tica es mucho más intenso y con pulso más firme que en el caso de sus padres, también se suele iniciar, tanto en el entorno escolar como Como puede verse, el terminal indica ahora que estamos en el equipo en el doméstico, en el seno del software privativo, que hace de una antonioelmalo como el usuario alumno01. Además, se nos dice que marca específica y de sus derivados su bandera. Si, con estas humilcontinuamos en la ruta /home/antonio, donde no tenemos atribucio- des líneas, logramos ampliar los horizontes del lector aficionado, y le nes de escritura en un principio. Para ir a nuestra carpeta de cuenta, hacemos comprender que no tiene que aceptar el uso obligado y nedeberíamos teclear cd /home/alumno01. cesario de un producto determinado de una marca concreta, sino que No es objeto de este texto abundar mucho más en las posibili- siempre puede buscar software alternativo; si logramos que entienda dades de la consola, aunque podemos asegurar que la sensación de que aprender no quiere decir conocer los entresijos de un producto libertad y de total dominio de lo que está pasando en el equipo irá determinado, sino saber qué se desea conseguir, y tener autonomía animando al núbil no iniciado a explorar esta herramienta, que poco para investigar y obtener de manera independiente el software necea poco le irá demostrando su potencia. sario para ello; si conseguimos, simplemente, darle una base que le Para terminar, mencionar otras posibilidades que dan un mayor permita progresar en su conocimiento del Free Software, entonces... dominio de la consola al usuario: la tecla Tabulador suele completar entonces habremos logrado nuestro objetivo. Muchas gracias por el texto a medias que el usuario está tecleando, cuando se refiere leernos hasta el final. ¡Hasta otra!. a una ruta o comando contenidos en el ordenador. Por ejemplo, si tecleamos cd /home/antonio/Doc, y a continuación la tecla Tabulador, BASH completará el texto de modo que obtendremos cd /home/ Sobre los autores antonio/Documentos. El comando man, de manual, proporciona al María Dolores Nogueras Atance, licenciada en Ciencias Químiinteresado toda la información al respecto de un comando sobre el •

ls: devuelve la relación de archivos en la carpeta en la que esta-

En la red • •

• • • • • •

30

Movimiento por el software libre GNU http://www.gnu.org/home.es.html Centro de Excelencia por el Software Libre de Castilla la Mancha http://www.ceslcam.com/ Modelos de negocio basados en el software libre, según Franck Hecker http://hecker.org/writings/setting-up-shop Sitio web de Debian http://www.debian.org/index.es.html Sitio web de Ubuntu http://www.ubuntu.com Sitio web de Molinux http://www.molinux.info Sitio web de Mandriva http://www2.mandriva.com/es/ Sitio web de OpenSUSE http://es.opensuse.org

cas, es profesora de Tecnologías en la actualidad, pero también ha pasado algunos años como profesora de Formación Profesional en Laboratorio. Su irrupción en el mundo informático ha sido algo tardío, y debido sobre todo a la estrecha relación de dicho mundo con la materia que actualmente imparte. Sin embargo, ha sabido retomar el ritmo y pone a prueba y se esfuerza por aprender toda nueva herramienta informática que caiga en sus manos y que pueda tener algo que ver con la educación. Antonio Gómez García es Ingeniero Técnico Industrial de Formación, y lleva más de diez años dedicando su actividad profesional a la Educación Secundaria y Bachillerato en institutos. Profesor de Tecnologías y de Tecnologías de la Información, ha trabajado como asesor TIC en el Centro de Profesores de Puertollano, y dedica gran parte de su tiempo al software libre y su introducción en el sistema educativo. Desde esa filosofía, ha colaborado ya en varias actividades de formación de padres, profesores y alumnos sobre seguridad en Internet. En la actualidad, es Responsable de Medios Informáticos en el IES Eduardo Valencia, de Calzada de Calatrava (Ciudad Real). Agradecerá cualquier aporte que queráis realizar en administra dor@eduardovalencia.no-ip.org

LiNUX+ 8/2010


Pรกginas recomendadas

www.diariolinux.com

www.elguille.info

www.gatolinux.blogspot.com

www.opensourcespot.org

www.hispabyte.net

www.linuxdata.com.ar

www.linuxhispano.net

www.pillateunlinux.wordpress.com

www.usla.org.ar

www.mundopc.net

www.picandocodigo.net

www.linuxuruguay.org


práctica Virtualización con OpenVz

Virtualización con OpenVz Carlos Eduardo Virgen Londoño

es@lpmagazine.org

En la actualidad, los grandes avances en la ciencia de la computación han ido con el paso del tiempo, haciendo real el significado de la palabra virtual. En varias definiciones la palabra virtual da a entender que es algo que no existe físicamente pero que de cierta forma se puede percibir. Por diversos motivos (económicos, ecológicos, etc.), la tendencia actual, es poder reutilizar lo que se tiene.

32

P

ero, ¿a qué vamos con esto de reutilizar? El mantener un equipo de cómputo es un desgaste económico si lo vemos desde ese punto de vista, puesto que el consumo energético del mismo hace que se incremente el cobro en la factura, pero una máquina encendida las veinticuatro horas no implica nada de sobrecostos, podría concluir el usuario común, pero para otros, los cuales viven de mantener no solamente una, si no varias máquinas funcionando, verán como el mantenerlas encendidas, incluso refrigeradas, hace que las cifras aumenten al momento de pagar las facturas. Por esta y otras razones entonces la tendencia ha ido tomando forma en un concepto nuevo llamado virtualización y que aplicado en el ámbito de los servidores coge aun más poder ya que permite grandes ahorros, obteniendo novedosas ventajas. Pero, ¿qué es virtualizar? Básicamente es poder abstraer las propiedades de la capa física de un equipo de cómputo, de tal manera que estos recursos puedan ser usados por un sistema operativo paralelo al sistema que administra el hardware real. Si deseas encontrar más información sobre lo que es la virtualización puedes buscar en la edición Nº. 9 de Linux+, en el artículo “La Maquinaria de la Virtualidad”, ya que aquí vamos a mostrar las características de OpenVz que es una manera de virtualizar por sistema operativo.

de ejecución, que se ve y se siente como un servidor físico separado. Cada VE tiene su propio conjunto de procesos, sistema de archivos, interfaces de red, tablas de enrutamiento, y un sinnúmero de características que le permiten ejecutarse como si fuera una máquina física. OpenVz es un núcleo de Linux el cual ha sido modificado añadiéndole unas características adicionales: virtualización y aislamiento, administración de los recursos, puntos de comprobación. Estas características permiten al servidor físico o anfitrión poder instalar VE dentro de él. La virtualización y el aislamiento, le permiten a cada VE tener sus propios procesos, ser dueño de sus propios recursos, entre otros. La administración de los recursos, permite que los VE se ejecuten evitando que uno consuma más recursos de máquina física de lo indicado, con esto se evita un colapso del sistema en sí. Aunque la limitante es la máquina física esta propiedad que incluso es configurable para cada VE, permite indicar por ejemplo el número de procesos por cada VE o el consumo de disco duro. Para hacer la instalación de un sistema operativo dentro del anfitrión, OpenVz hace uso de unas plantillas, éstas no son más que una distribución de Linux preparada de tal forma que la dejan en su más básica expresión para su más rápida portabilidad, de una plantilla se pueden generar varios VE, incluso ¿Qué es OpenVz? de un VE ya configurado se puede sacar una plantiAntes de dar una definición de lo que es OpenVz, lla para luego reusarla en posteriores instalaciones. vamos aclarar un concepto que encontraremos de aquí en adelante. El Entorno Virtual o VE (Virtual ¿Para qué Sirve Openvz? Enviroment), también conocido como VPS (Servidor Openvz es una gran alternativa para la virtualización Privado Virtual) es un programa aislado de entorno de servidores en las compañías, aprovecha al máxi-

LiNUX+ 7/2010


práctica Virtualización con OpenVz

mo el tiempo real de las necesidades y proyectos a futuro, economizando recursos y gestión en las tecnologías de la información. Compartir los recursos de un servidor como el mismo disco duro, memoria, tarjeta de red, procesador, entre diferentes distribuciones de GNU/Linux donde todos trabajan independientemente, si un entorno virtual falla los demás entornos virtuales seguirán trabajando, aprovechando los recursos de memoria que deja disponible el entorno virtual que falló. Una de las características más importantes de la virtualización de servidores es la optimización de recursos, para poder realizar tareas de manera totalmente independiente.

¿Cómo se instala?

Existen muchas distribuciones de Linux y para cada una de ellas su muy particular forma de instalarla, en este caso vamos a trabajar con Linux Debian y vamos hacer la instalación de la forma más practica y sencilla posible. Debian tiene una forma para instalar software adicional, se hace por medio de paquetes, los que son administrados por diversos gestores de paquetes, entre los que existen hay uno por consola de comandos llamado “apt-get”, pero antes de adentrarnos en el uso del “apt-get”, debemos de preparar nuestro listado de paquetes disponibles para instalar, para ello abrimos una consola de comandos y nos vamos a la ruta “/etc/apt”. Como vemos entonces en dicha ruta encontramos un archivo de nombre “sources.list”, este archivo contiene la información del listado de paquetes disponibles para la instalación, ahora debemos de añadirle un par de direcciones o confirmar si lo que vamos añadir ya está en dicho archivo. Para hacer esto vamos a hacer uso de nuestro editor favorito, por ejemplo desde la consola podemos hacer esta sentencia “nano sources.list” o “vi sources.list”, bueno en cualquiera de los casos debemos de estar como el usuario root o con un usuario con privilegios sobre estos archivos o también hacer uso del comando “sudo”, esto último sería algo así: “sudo vi sources. list”, así pediría la contraseña del root y después de confirmada ejecuta la edición del archivo. En el archivo debemos ingresar las líneas: deb http://ftp.de.debian.org/debian lenny main deb http://security.debian.org/debian-security lenny/ updates main

gestor de arranque GRUB, de tal forma que añade la entrada adicional en el menú de selección de núcleos instalados en la máquina. Cuando ha finiquitado la instalación, reiniciamos la máquina y vemos que en el menú de selección del GRUB sale un núcleo adicional el cual indica que trae la funcionalidad del OpenVz, lo seleccionamos y proseguimos con el inicio de la máquina. Bueno, pero yo no veo nada-, podrías decir cuando veas que la máquina sigue tal cual como estaba antes, pero no es así, resulta que si ingresas a una consola de comando, te conviertes en super usuario y lanzas por ejemplo el comando “uname -r” verás una salida como ésta: “2.6.26-1-openvz-686”; o si haces un “ifconfig” entre las interfaces de red te saldrá una más o menos así: “venet0 Link encap:UNSPEC”. -¿Y qué gano con eso?- Buena pregunta, esto nos da indicio de que la instalación del OpenVz está bien, ahora sigue el paso de montar un entorno virtual o VE como se le suele llamar. Hasta aquí ya instalamos la máquina que nos permite virtualizar, para instalar una distribución de Linux,debemos ahora comprender otro término dentro del uso de OpenVz, éste es el Template o plantilla en español, una plantilla para OpenVz es una imagen reducida de una distribución de Linux la cual viene en su forma básica para ser incluida dentro de un con tenedor, éstas se pueden descargar de la página http://wiki.openvz.org/Download/template/ precreated. Una vez hemos determinado cual de todas las plantillas es la que vamos a descargar, procedemos a bajarla en un directorio que se creó al momento de instalar el OpenVz, éste queda en la ruta “/vz/template/cache”, toda plantilla que se descargue debe de ir en esta ruta con el propósito de que cuando se usen los comandos de instalación de VE éstas queden disponibles.

¿Cómo se administra?

Hasta ahora con esto de la instalación y las descargas de las plantillas, ya tenemos el sistema preparado para instalar un entorno virtual dentro de nuestra máquina física, empezaremos entonces identificando el comando “vzctl”, este comando permite varias cosas como la creación, configuración de la red, el nombre de la máquina virtual entre otros. Supongamos que descargamos el archivo de plantilla de un Debian 5.0, éste debería tener más o menos, dependien-

Después de salvarlo, debemos de ejecutar el comando “aptget update”, esto con el fin de que el listado de paquetes disponibles se actualice. Hecho ya lo del “apt-get update” procedemos entonces a instalar el núcleo que incorpora el OpenVz, esto lo hacemos con el siguiente comando: apt-get install linux-image-openvz-686

Después de ejecutada esta línea de comando se inicia el proceso de instalación, éste consiste en la descarga de un núcleo ampliado con las herramientas y recursos para ejecutar OpenVz, durante el proceso de instalación, se modifica el

Figura 1. Directorio para configurar el listado de paquetes disponibles

www.lpmagazine.org

33


práctica Virtualización con OpenVz

do de cómo lo nombraron, una forma similar a “debian-5.0x86.tar.gz”, recordemos que debe colocarse en “/vz/template/ cache”, tal cual como lo descargaron. Para crear entonces el contenedor virtual hacemos lo siguiente (debemos estar en una consola de comando con un usuario con privilegios de root o en su defecto con el root): vzctl create 101 --ostemplate debian-5.0-x86

Al presionar la tecla Enter se da inicio al proceso de creación, al finalizar indicará con un mensaje que el VE ha sido creado con éxito. Comprendamos algo de la línea de comando indicada anteriormente, la parte que dice “vzctl create”, indica la operación de creación de un entorno virtual, “101” es el identificador del contenedor virtual, en el ejemplo pudo colocarse 1 o 2 o 100, en fin un valor entero el cual nos identifique el entorno virtual, este valor no puede ser repetido, en caso tal de querer crear una máquina virtual con un identificador existente el comando retornará su respectivo error. La parte que dice “--ostemplate debian-5.0-x86”, indica al comando que debe tomar la plantilla de nombre “debian-5.0x86”. Ahora después de creado vamos a definirle una dirección IP al entorno virtual que se creó y que tiene como ID 101, para esto ejecutamos la siguiente línea de comando: vzctl set 101 --ipadd 192.168.1.2 -–save

Ahora vemos que el comando “vzctl” está acompañado de la opción “set”, esto indica que es para definir algo dentro del contenedor de identificador 101, en el ejemplo es la IP de la máquina por ende se usa el parámetro “--ipadd” seguido del valor de la IP que le queremos dar y al final seguido del parámetro “--save” este último para que nos guarde la información que queremos definir. Ahora definiremos un servidor DNS para la configuración de red de nuestro VE: vzctl set 101 --nameserver 200.10.11.1 --save

Como vemos el parámetro cambió, ya no fue “--ipadd” si no “--nameserver”. Tabla 1. Comparación de OpenVz y Xen

34

Sistema de virtualización

Xen

OpenVz

Tipo virtualización

Paravirtualización

Nativa

Límite de memoria

Por Software

Por Hardware (no maneja Swap)

Consumo de memoria

Uso moderado

Poco uso de recursos

Arquitecturas soportadas

i686, x86-64, IA64, PPC

i686, x86-64, IA64, PPC, SPARC

Licencia

GPL

GPL

S.O. Soportados

Windows, Linux, Solaris, y varias versiones de BSD

Linux

Manejo de entornos gráficos

Si

No

Podemos iniciar los entornos virtuales o detenerlos con los siguientes comandos: • •

vzctl start 101, vzctl stop 101,

para iniciar. para detenerlo.

Digamos ahora que ya no necesitamos más el entorno virtual de identificador 101 y necesitamos eliminarlo, para eso entonces lanzamos el comando: vzctl destroy 101. Existen gran diversidad de comandos, por ejemplo después de creada una VE y si se necesita ingresar a ella por algún motivo podemos lanzar el comando: vzctl enter 101. Esto nos ingresa a la consola de la máquina virtual como usuario root.

Puntos de control y migración en caliente

Como en toda tarea de administración siempre están presente los archivos de respaldo, migración de plataformas, entre otras tareas afines, pues no se podía dejar de tocar este tema con respecto a OpenVz, fuera de poder sacar los respaldos de los entornos virtuales también es posible hacer un paso de un entorno virtual desde un servidor a otro sin que los servicios contenidos en el entorno virtual se vean afectados, a esto comúnmente se le conoce como migración en caliente o migración en vivo. Para hacer un punto de control se hace uso del comando “vzctl” más la opción “chkpnt” de la siguiente forma: vzctl chkpnt VEID --dumpfile <path>.

Donde VEID es el identificador del entorno virtual y la opción “--dumpfile <path>” indica la ruta donde va a generarse el archivo de respaldo. En el caso que no se indique la opción “--dumpfile <path>”, el comando asumirá una ruta por defecto para la generación del archivo, esta ruta es “/vz/dump/dump.VEID”. Una vez obtenido el archivo de respaldo se puede recuperar el entorno virtual, el cual devolverá la máquina virtual al estado en que se ejecutó el punto de control. Para hacer una restauración desde un archivo de respaldo ejecutamos el comando de la siguiente forma: vzctl restore VEID --dumpfile <path>.

Migración en línea o migración en caliente

En muchas labores de mantenimiento, se requiere detener los equipos, esta operación es traumática, ya que produce la inconformidad de las personas que hacen uso del servidor. La migración en caliente consiste en que el VE pasa de un servidor a otro sin necesidad de ser detenido. Esta operación

Figura 2. Interfaz de administración WebVz, listado de contenedores virtuales

LiNUX+ 7/2010


práctica Virtualización con OpenVz

se hace con el comando “vzmigrate” de la siguiente manera: vzmigrate --online

<host> VEID.

La opción ”--online” , indica que se va hacer el paso del entorno virtual en caliente, “<host>” es donde debe especificarse la dirección IP del servidor OpenVz destino, y pues como ya lo hemos visto “VEID” es el identificador de la máquina virtual que se va a migrar. El comando “vzmigrate” hace uso de una conexión ssh para el traslado del VE, por ende el usuario debe tener privilegios de conexión en el servidor OpenVz destino.

Desventajas •

Ventajas de Openvz •

• •

• • •

Cada entorno virtual trabaja independientemente, esto nos hace creer que estamos trabajando con varios servidores físicamente. La administración de los recursos del servidor físico en los entornos virtuales de openvz se pueden modificar sin necesidad de reiniciar la máquina. Poder migrar entornos virtuales en caliente sin necesidad de apagar el servidor. La escalabilidad en Openvz es una habilidad para poder manejar el crecimiento continuo del servidor físico sin perder calidad en los entornos virtuales. Openvz puede trabajar con cientos de entornos virtuales en el servidor físico pero teniendo en cuenta las especificaciones del hardware. Administración masiva de todos los entornos virtuales. El ahorro de tiempo a la hora de hacer los procesamientos de instalación de la virtualización. Se puede trabajar en diferentes escenarios: seguridad, consolidación de servidores, hosting, educativo, desarrollo y prueba.

Se pueden crear plantillas con base a los entornos virtuales previamente creados.

Solamente puede trabajar con el sistema operativo Linux, pero se pueden instalar diferentes distribuciones de GNU/ Linux. No sé si esto sea una desventaja pero los entornos virtuales no tienen entorno gráfico, tal vez para algunos que no están muy familiarizados con la consola esto puede ser una desventaja muy notoria. OpenVz no hace manejo de Swap, existen ya que todo esto es controlado por el servidor que los contiene, esta particularidad a veces hace la vida un poco problemática. Existen instaladores de programas que validan la existencia de éste.

¿Cuál sistema de virtualización escoger?

En cada situación que se debe afrontar, siempre nos hacemos esta pregunta, ¿cuál de todos elegir? Pero siempre he manejado una premisa para esto, uso lo que realmente necesito. Xen es otro entorno de virtualización realmente bueno, por ende vale la pena compararlo con OpenVz.

WebVz

A estas alturas de todo lo narrado sobre OpenVz, algunos estarán pensando sobre la cantidad de comandos que deben aprender para hacer la administración de los servidores virtuales. Afortunadamente Shuaib Zahda se tomó la tarea de crear una consola de administración, construida en Ruby, WebVz es una alternativa de código abierto que permite una fácil ad-

PUBLICIDAD

www.lpmagazine.org

35


práctica Virtualización con OpenVz

ministración de los VE. Ésta se puede acceder desde la Web y es muy fácil de instalar. Primero debemos instalar los prerrequisitos:

Después de escrito lo anterior salvamos el archivo y procedemos a darle permisos de ejecución al mismo de la siguiente forma: chmod +x

apt-get install ruby rubygems libsqlite3-ruby sqlite3 irb1.8 apt-get install libopenssl-ruby1.8 libreadline-ruby1.8

webvz.sh

Luego de esto lo involucramos en el arranque con el siguiente comando:

rdoc1.8 update-rc.d webvz.sh defaults

Instalamos el framework de Ruby:

Iniciamos el servidor “,/webvz.sh”, hecho esto, abrimos nuestro navegador y accedemos a la consola de administración con la siguiente URL “http://localhost:3000”, bueno ahí les va a pedir el usuario y la clave, pero lo resolvemos con esta información:

gem install -v=2.1.0 rails

Como usuario root hacemos los siguientes pasos: • •

Ingresamos a la ruta “/usr/local” cd /usr/local/ Descargamos la fuentes del WebVz: wget http://dfn.dl.sourceforge.net/sourceforge/

mv webvz.2.0 webvz cd webvz

Conclusiones

Descomprimimos el archivo descargado: tar xvfz webvz.2.0.tar.gz

• •

Renombramos el directorio que generó la descompresión del archivo “gz”: Ingresamos a la carpeta generada: Creamos unos links simbólicos para acceder a los archivos de configuración del OpenVz:

ln -s /var/lib/vz /vz ln -s /usr/bin/irb1.8 /usr/bin/irb mkdir /etc/sysconfig ln -s /etc/vz/conf /etc/sysconfig/vz-scripts

Vamos hacer que el servicio del WebVz arranque al inicio de la máquina, para esto ingresamos por consola al directorio “/etc/init.d ” estando ahí creamos un archivo con el comando “vi nombre_archivo.sh”, para el ejemplo “vi webvz.sh”, luego ingresamos las líneas de código siguientes: #Ingresamos a la ruta donde se encuentra el WebVz cd /usr/local/webvz/ #Se inicializa el servidor /usr/bin/ruby script/server &> /dev/null &

Figura 3. Listado de los procesos de un contenedor virtual

36

Passwort: admin123

Sobra decir que después de haber ingresado debemos cambiar la clave para que no hagan destrozos estos usuarios con iniciativa. Esta consola de administración es bastante intuitiva por ende sólo basta navegar por ella y ver las opciones para aprender a manejarla, ver Figuras 2 y 3.

webvz/webvz.2.0.tar.gz •

Username: admin

El hacer uso de plataformas de virtualización permite reducir costos, debido a que implica que no se va a tener un número de máquinas físicas encendidas consumiendo energía eléctrica. Las máquinas virtuales permiten crear ambientes de pruebas sin necesidad de recurrir a compra de hardware adicional. Al momento de hacer una implementación de plataformas de virtualización, debe definirse qué es lo que se desea para así escoger la plataforma ideal. OpenVz al igual que otros sistemas de virtualización permiten crear réplicas de los ambientes virtuales, dando facilidad a la implementación de nuevos servicios rápidamente.

Sobre el autor Carlos Eduardo Virgen Londoño o conocido también como “ceduard0”, ha sido desde el año 2000 un usuario entusiasta de Linux. A lo largo de sus estudios instaló varias distribuciones y sólo fue hasta 2005 donde se encontró con la oportunidad de trabajar directamente como administrador de un servidor de correo, que corría en una distribución llamada Slackware o como el lo llamaría “Mi viejo Slackware”. A lo largo de su vida profesional ceduard0 ha trabajado en desarrollo de Software y administrando servidores basados en distribuciones Linux, claro está, calmó un poco su amor platónico por Slackware para dedicar sus fuerzas a Debian. Este último año junto con mao (Mauricio Maquilon) otro activista del movimiento del código libre, fundaron un grupo llamado calinuxeros que a pesar de estar en proceso, han logrado involucrarse en pequeñas conferencias en las universidades locales de Cali – Colombia de donde ambos son nativos.

LiNUX+ 7/2010


práctica gPXE: Arranque de Sistemas Operativos en Red con Software Libre

gPXE: Arranque de Sistemas

Operativos en Red con Software Libre Milton Labanda

es@lpmagazine.org

El paso del tiempo no ha podido evitar percibir los grandes beneficios que ha otorgado el uso y desarrollo del FLOSS (Free Software and Open Source Software) o Software Libre y Software de Código Abierto, principalmente en cuanto a innovación y accesibilidad de las tecnologías de la información se refiere. Uno de los campos en donde ha calado fuertemente este movimiento filosófico-tecnológico es en el de los Sistemas Operativos.

M

uchos sabemos que un Sistema Operativo tiene más de una forma de iniciar o arrancar: ya sea usando un disquete (floppy disk), CD o DVD, dispositivos de almacenamiento USB y los típicos discos duros empotrados localmente en nuestros computadores; pero es menor el número de personas que conocen que un Sistema Operativo también puede arrancar a través de una red cableada o inalámbrica. Y de seguro será menor la cantidad de personas que saben de la existencia de un proyecto denominado gPXE y que hace posible el arranque por red utilizando Software Libre!

Las herramientas de diagnóstico e instaladores de sistemas operativos pueden ejecutarse sin necesidad de acarrear un puñado de Cds.

Evolución de las tecnologías de arranque en red • • •

Motivación

1993 Network Boot Image (NBI): Transferencia del control al kernel y enlace de drivers. 1995 Etherboot: Compatible con imágenes NBI. 1997 Preboot eXecution Environment (PXE): un servidor DHCP que especifica el nombre de archivo de un programa de arranque de red (NBP) descargado a través de un servidor TFTP, el cual a su vez continua descargando el kernel y demás imágenes del Sistema Operativo. PXE se convirtió en el estándar sacado a la luz por Intel en ese año. 1999 Continua el desarrollo del proyecto Etherboot 2000 rom-o-matic: Generador vía web de imágenes de arranque Ethernet en http://www.rom-o-matic.net/. 2005 Marty Connor y Michael Brown reescriben el proyecto Etherboot dando lugar al nacimiento de gPXE, una implementación FOSS de PXE. 2010 gPXE versión 1.0.

El arranque de los sistemas operativos en red puede solucionar varios de los problemas encontrados al usar el típico arranque local además de ofrecer alternativas atractivas dentro de los entornos de red: • • • Problemas de fallo muy frecuentes de los discos o dispositivos locales. • • La actualización distribuida es dificultosa en un entorno no interconectado. • Los nuevos sistemas necesitan constantemente de • una instalación y configuración idéntica. • Los modernos computadores de los usuarios inciden ¿Qué es gPXE? con frecuencia en problemas de incompatibilidad al gPXE es un cargador de arranque de red extensible, podearrancar localmente su sistema operativo preferido. roso, Open Source y de licencia GPL. Constituye un reem• Los archivos que son los mismos para cualquiera de plazo directo para las PXE ROMs propietarias, con muchas la red solamente existen en un lugar: el mejoramiento característica extra tales como DNS, HTTP, iSCSI, etc. del sistema es algo sencillo y rápido. • Tener un solo servidor central fantástico es más que Bondades de gPXE ahorrarse en comprar varios discos duros a nivel de consumidor. • Incluye docenas de drivers para tarjetas de red, inclu• Los clientes pueden arrancar por red dentro de un yendo la mayoría de uso común. entorno especial sin realizar ningún cambio indebido • Buena compatibilidad con redes inalámbricas (wireo peligroso a su disco duro. less) 802.11

www.lpmagazine.org

37


práctica gPXE: Arranque de Sistemas Operativos en Red con Software Libre

• • • • • •

Encadenador de arranque compatible con drivers PXE, Soporte DNS para uso de nombres de host (hostnames), Variados protocolos de descarga soportados: TFTP, HTTP, HTTPS, FTP, NFS, Diversidad de formatos de imagen de Sistemas Operativos: ELF, COM32, PXE, Linux y otros, Posee una línea de comandos con amplio soporte de scripts, Si el driver de una tarjeta de red no soporta PXE para arrancar, se puede “quemar” una imagen del cargador de arranque en red gPXE: – En un chip dentro de una tarjeta de expansión, – En el mismo BIOS, – En un disquete o floppy, – En un CD/DVD, – En una memoria USB.

• • •

miltonlab@debianlab:~$ emacs /etc/dhcp3/dhcpd.conf subnet 192.168.0.0 netmask 255.255.255.0 { # definición del rango de direcciones range 192.168.100.3 192.168.100.9; # nombre del archivo de imagen a descargar filename "http://192.168.100.1/gpxe/gpxelinux.0"; option broadcast-address 192.168.100.255; next-server 192.168.100.1;

El proceso de arranque con gPXE •

es tener fijada ya la IP de la tarjeta de red del servidor de tal manera que ésta quede dentro del rango de la subred que se especificará en dhcp. La configuración que estableceremos para asignar las IPs y además servir el binario de gPXE a través de DHCP es la siguiente:

El BIOS del computador cliente pregunta por su configuración IP y por la información de arranque en red vía DHCP. El servidor DHCP le provee al BIOS del cliente los parámetros de arranque necesarios tales como la dirección IP que le asignará, la dirección del servidor TFTP o HTTP dependiendo del protocolo que se haya elegido para el arranque. El cliente recupera la imagen ejecutable del cargador de arranque desde el servidor utilizando TFTP, HTTP u otro protocolo. El cliente ejecuta la imagen extraída. Dependiendo de la imagen de arranque y del archivo de configuración o script gPXE el cliente empieza a solicitar la imagen del kernel y la del sistema de archivos raíz inicial.

miltonlab@debianlab:~$ mkdir /var/www/gpxe

miltonlab@debianlab:~$ cp linux24 /var/www/gpxe/dsl/ miltonlab@debianlab:~$ cp minirt24.gz

Para poder realizar las diferentes pruebas y configuraciones de gPXE se utilizó Virtual Box 3.1 de Sun, con el cual se creó una máquina virtual cliente con un disco duro vacío aunque no es necesario ni el • disco vacío. El servidor es una máquina con Debian GNU/Linux 5.0 de arquitectura i386. Ambas máquinas con la configuración de red establecida en “Adaptador Puente” para que se puedan comunicar en la red que se formará dentro de Virtual Box. La dirección IP del servidor es 192.168.100.1 •

Configuración del Servidor •

El servidor debe tener instalados los servicios de DHCP y HTTP además de la utilidad syslinux para facilitar las configuraciones posteriores. Si hay necesidad de instalarlos, en Debian bastará hacer:

/var/www/gpxe/dsl/

Copiamos el archivo binario de gpxelinux al directorio preparado para la configuración: miltonlab@debianlab:~$ cp

/usr/lib/syslinux/gpxelinux.0 /var/www/gpxe

Así mismo copiamos el archivo vesamenu.c32 para generar el menú de arranque con una interfaz gráfica que permita escoger el sistema operativo con el cual iniciar la máquina cliente:

miltonlab@debianlab:~$

cp

/usr/lib/syslinux/vesamenu.c32 /var/www/gpxe

Luego crearemos y colocaremos los archivos requeridos por el típico pxelinux.0 creando en primer lugar la carpeta pxelinux.cfg y dentro de la misma el archivo default con el contenido que se muestra adjunto:

miltonlab@debianlab:~$ mkdir /var/www/gpxe/ pxelinux.cfg miltonlab@debianlab:~$ emacs /var/www/gpxe/

miltonlab@debianlab:~$ apt-get install dhcp3-server

pxelinux.cfg/default

apache2 syslinux

menu title Servidor gPXE de Distros <<FLISOL 2010>>

Aunque en vez de Apache podemos usar otro servidor http. Un aspecto importante antes de arrancar correctamente el servicio dhcp3,

Figura 1. Logo Proyecto Etherboot

38

Preparamos el directorio en donde vamos a almacenar todos los archivos de configuración de gpxe e imágenes de Sistemas Operativos que desearemos arrancar. Se llamará gpxe y lo colocaremos en el root de los sitios de Apache: /var/www/gpxe:

Copiamos las imágenes del kernel y del sistema de archivos inicial de cada Sistema operativo que desearemos arrancar por red, al directorio preparado. Estos archivos generalmente los obtendremos descomprimiendo el iso de la distribución del sistema operativo. Así por ejemplo para disponer de Damm Small Linux podríamos realizar la copia de los archivos de la siguiente manera:

Taller práctico de gPXE

}

menu background flisol2010.png prompt 0

Figura 2. Logo rom-o-matic

LiNUX+ 8/2010

Figura 3. Logo gPXE


práctica gPXE: Arranque de Sistemas Operativos en Red con Software Libre

default vesamenu.c32 LABEL dsl KERNEL dsl/linux24 APPEND ramdisk_size=60000 init=/etc/init lang=us

(.iso, .dsk o .usb) para arrancar la máquina cliente. Podemos hacerlo obteniéndola directamente desde el sitio http://www.rom-o-matic.net o en su defecto compilando los fuentes de gPXE para generar la imagen en binario que necesitemos:

vga=791 initrd=dsl/minirt24.gz quiet

miltonlab@debianlab:~$ tar -xvzf gpxe-1.0.0.tar.gz

LABEL pmagic ...

miltonlab@debianlab:~$ cd gpxe-1.0.0/

Como se observa, el binario vesamenu.c32 nos permite especificar un título, una imagen de fondo entre algunas otras opciones. Se debe además incluir obligatoriamente una entrada del tipo LABEL ... KERNEL ... por cada Sistema Operativo que se desee tener disponible para arrancar.

miltonlab@debianlab:~$ cd src/ miltonlab@debianlab:~$ make

Finalmente encontraremos las imágenes en el directorio “src/bin”. Para una correcta compilación se necesitarán que estén instalados previamente los paquetes binutils, gcc, make, perl, mkisofs, mtools. Una vez obtenida la imagen autoarrancable de gPXE procedereArranque de la Máquina Cliente mos a “quemar” dicha imagen en el medio adecuado (cdrom, floppy, Luego de activados los servicios y configurado el servidor adecuada- usb...). mente procederemos a obtener una imagen autoarrancable de gPXE Finalmente procedemos a arrancar la máquina cliente desde el medio que contenga la imagen de gPXE. A continuación se muestran algunas imágenes de la máquina virtual cliente arrancando con gPXE y cargando luego el Sistema Operativo Damm Small Linux, una distribución GNU/Linux liviana y versátil. Cabe señalar que las imágenes son parte de una charla demostrativa que se efectuó en el FLISOL2010 en la ciudad de Loja – Ecuador (Figuras 5 y 6).

Conclusiones • • Figura 4. Virtual Box

• •

gPXE puede ampliar el tiempo de vida útil de computadoras dadas de baja. gPXE genera amplia expectativa en las aplicaciones relacionadas con la Administración de Redes y Centros de Cómputo. gPXE tiene una gran proyección. Ej. arranque a través de redes inalámbricas ya soportado en la versión 1.0. Los Proyectos FLOSS generan altos índices de innovación y liberan el conocimiento.

Agradecimientos especiales • • • •

Shao Miller, miembro de la lista de discusion gpxe@etherboot.org Marty Connor, líder del Proyecto Etherboot H. Peter Anvin, de Intel y del proyecto Syslinux Joshua Oreman, del Massachusetts Institute of Technology MIT.

Por sus valiosas aclaraciones a través de correo electrónico y por su invaluable contribución a la masificación del conocimiento.

Figura 5. Menú para elegir el Sistema Operativo a arrancar

Sobre el autor

Figura 6. Damm Small Linux iniciado en la máquina cliente a través de la red

Milton Labanda es graduado de Ingeniería en Informática en la Universidad Técnica Particular de Loja. Coordinó la visita del Dr. Richard Stallman por primera vez a la ciudad de Loja en noviembre 2007. Fue coordinador del FLISOL 2008 y co-coordinador del FLISOL 2010 en la ciudad de Loja. Es docente contratado por más de 7 anos en la Carrera de Ingeniería en Sistemas de la Universidad Nacional de Loja y coordinador de la comunidad de Estudiantes de Software Libre ESOLUNL. Está casado y tiene 4 hijos.

www.lpmagazine.org

39


software Aplicaciones multimedia

Introducción al software

multimedia en Linux Gabriel García

es@lpmagazine.org

Hay muchas aplicaciones disponibles en Linux para todas nuestras necesidades de multimedia sin necesidad de usar productos propietarios ni perder funcionalidades.los mismo. Trataremos de mostrar las más populares o completas tratando de ser imparciales en las opiniones. Por supuesto que quedarán muchas afuera ya que hay cientos de ellas y cada uno tiene sus preferidas, pero el propósito de este artículo es mostrar a quien desea acercarse al mundo Linux que puede intentarlo sin ningún problema.

E

n general, el usuario básico multimedia, usará el ordenador para escuchar música, ver películas o videos; esto último se puede extender a quienes creen su propio contenido que en general son usuarios profesionales. Trataremos de mantener esto sencillo de manera que sirva para quien recien se inicia y no conozca que cosas puede hacer. Por defecto Ubuntu Linux instala reproductores para la mayoría de los contenidos que podremos llegar a reproducir, si vamos al menú Aplicaciones –> Audio y Video, veremos que disponemos de algunas aplicaciones que pasaremos a ver.

Totem Movie Player

catalogar nuestros archivos de manera de permitir una rápida búsqueda. Entre sus principales caracterísitcas tenemos: • • • • •

Reproducir Cds y archivos de audio, Escuchar estaciones de radio de Internet, Catalogar canciones, Búsqueda y filtro de canciones, Crear lista de reproducción.

Podremos obtener información extra en el sitio oficial: http://www.gnome.org/projects/ rhythmbox/.

Sound Juicer

Sound Juicer es un ripeador de Cds de audio, que nos perUno de los más usados reproductores, es sencillo y con él po- mite hacer una copia de nuestros discos en archivos con dremos reproducir tanto audio como video, también así DVDs formato Ogg o FLAC. Con esto podremos sumar cancioy archivos de video. Las principales características son: nes a nuestra base de datos de Rhythmbox por ejemplo. • • • • • • • • •

Reproduce DVDs, VCDs y CD, Serpentine Permite visualizaciones, Serpentine permite hacer lo contrario a Sound Juicer, es Reproduce archivos de video de muchos tipos me- decir, tomar archivos de audio y generar un CD para ser diante plugins, Permite usar la base de datos de CDDB, Tiene barra de control de posición, Soporta listas de reproducción, Admite el uso de un control remoto, Soporta audio en varios canales y AC3, Permite anexar subtítulos a archivos de video.

El detalle completo lo podremos ver en el sitio oficial: http://www.gnome.org/projects/totem/

Rhythmbox

Este es otro popular programa, en este caso podremos reproducir archivos de sonido de casi cualquier tipo y a la vez Figura 1. Totem Movie Player

40

LiNUX+ 8/2010


software Aplicaciones multimedia

Figura 2. Rhythmbox

unsado en cualquier reproductor o en otra PC. Es muy sencillo de usar, ya que simplemente basta con agregar las canciones que deseemos y escribirlas al disco, cabe recordar que necesitaremos una grabadora de CD para poder crear el disco.

Sound Recorder

Figura 3. Sound Juicer

está basado en KDE pero podremos usarlo aunque nuestro escritorio Una de las cosas que en algún momento podemos llegar a necesitar es sea otro simplemente descargando las librerías KDE (esto es hecho grabar un archivo de audio desde un micrófono o desde la entrada de automáticamente cuando lo instalamos). El sitio web oficial es http:// audio (Line IN). Con Sound Recorder podremos generar fácilmente amarok.kde.org/ archivos en formato Ogg, WAV, Flac o AAC.

Amarok

XMMS

No podemos hacer una revisión de programas multimedia sin nombrar a Amarok, quizás uno de los programas más completos y versátiles. Como Ubuntu no lo trae instalado por defecto tendremos que hacerlo por nuestros propios medios yendo al menú Aplicaciones –> Agregar y quitar, y después elegiremos “Audio y Video”. La primera vez que ejecutamos Amarok tendremos un asistente de configuración en el cual podremos elegir en qué directorios tenemos nuestros archivos, así son agregados a la librería, estos se guardarán en una base de datos SQLite (podemos usar mySQLo PostgreSQLsi queremos). Cuesta resumir las funcionalidades de Amarok ya que son muchísimas e incluso descubriremos nuevas mientras lo usamos. El uso de Amarok es sencillo y pronto veremos que es muy fácil y rápido moverse en nuestra colección de archivos. Amarok

Este es un clásico reproductor en el mundo Linux, con muchos anos de vida ya, nació como un clon del popular WinAMP de la plataforma Windows; incluso soporta sus skins y mantiene compatibilidad en las teclas rápidas o atajos. Es un programa ligero que cuenta con un ecualizador gráfico y posibilidad de crear listas de reproducción entre sus principales funcionalidades. Podremos obtener más información acerca de XMMS en http://www.xmms.org/

MythTV

Este programa tiene varios anos de vida y es una de las opciones más completas para reproducir todo tipo de archivos como así ver TV, cuenta con muchísimos agregados para extender su funcionalidad, con él podremos usar cualquier control remoto para manejarlo. La idea de atrás de MythTV es usarse en un TV o pantalla de gran tamano y usarlo en nuestra sala de estar para ver películas u otras cosas más como podemos ver en esta resumida lista: •

Figura 4. Sound Recorder

Reproductor de TV en tiempo real y/o con retraso, necesitamos una placa sintonizadora de TV para esto.

Figura 5. XMMS

www.lpmagazine.org

41


software Aplicaciones multimedia

Otros proyectos

El mundo Linux es muy amplio y siempre está creciendo, existen proyectos en el área de la multimedia de diverso tipo y en diferente grado de madurez, algunos de ellos son: •

Figura 6. MythTV

• • • • •

Posibilidad de usar guías de programación y saltear comerciales. • Ver DVDs y grabarlo al disco rígido si lo deseamos. Reproducir CDs de audio, mp3, ogg, flac y muchos formatos más. Visualizar fotos. Además existen agregados para ver el clima, jugar juegos, leer • noticias, etc…

VLC Media Player

VLC es un reproductor que últimamente está creciendo bastante, hay versiones para muchos sistemas operativos y es compatible con muchos formatos multimedia, en realidad la lista es muy grande (http:// • www.videolan.org/vlc/features.html). La interfaz es sencilla y clara, solo están los botones necesarios pero podremos personalizarlo a nuestro gusto agregando o quitando elementos. VLC soporta un montón de tipos de streams (UDP Unicast, UDP Multicast (MPEG-TS), HTTP, RTP/ RTSP, MMS y otros más) e incluso puede ser usado para generar contenido para irradiar en la red, ya que posee un servidor.

Xine

Concluciones

Xine es otro reproductor muy usado en el mundo Linux, incluso sus librerías son usadas por otros reproductores, por lo que es muy popular, puede reproducir DVDs, CDs y VCDs como así también muchos formatos más de audio y video. Su uso es fácil ya que posee botones orientativos como vemos en la imagen, en el sitio web podremos ver más detalles: http://www.xinehq.de/.

Figura 7. VLC Media Player

42

Elisa: este es un estupendo proyecto para una centro de medios (media center), con el podemos reproducir audio y video, ver fotos y mucho más, usando un control remoto y en nuestro TV reemplazando así a soluciones más costosas como el Microsoft Media Center o el Apple TV. Se puede conocer más sobre él en http://elisa.fluendo.com. Linux Multimedia Studio (LMMS): es un programa para editar audio en forma profesional, soporta canales, patrones, efectos y mucho más gracias a la posibilidades de usar plugins. En el sitio oficial podremos ver más: http://lmms.sourceforge.net/. Lives: editor de video no lineal, con el podremos crear videoclips, usar transiciones, cortar o agregar clips de video con sopor-te de varias pistas y usando muchos formatos de video. Ver más en: http://lives .sourceforge.net/. GeexBox: este es uno de mis preferidos, es un centro de medios completo y super pequeno, podremos usarlo para iniciar nuestra máquina y acceder a sus múltiples opciones como reproducir videos, DVDs, CDs, imágenes y archivos de audio, viene con un generador de imágenes ISO para Linux, Windows y OSX. Ver más en http:// geexbox.org/en/index.html. Freevo: es otro proyecto que podríamos englobar en la lista de los “media centers”, pero a diferencia de GeexBox, necesitaremos instalarlo sobre alguna distribución, el diseno es muy elegante y fácil de usar. Permite grabar TV, reproducir DVDs y archivos de audio y video. Podremos conocer más sobre él en http://freevo. source forge.net/.

No es nuestra intención hacer una lista enorme de programas multimedia ni de cada una de sus funcionalidades ya que solo sería un texto muy extenso y aburrido; queremos que esta pequeña nota sirva para quienes están o quieren ingresan al mundo Linux sepan que cuentan con muchas opciones y a la vez muy versátiles permitiendo usar lo que más se aproxime al gusto de cada uno. Otra cosa que observamos es una tendencia hacia sistemas del tipo Centro de Medios para ser usados en pantallas de televisión de grandes dimensiones y ser manejados por el control remoto para acceder a sus funciones.

Figura 8. Xine

LiNUX+ 8/2010



para principiantes Grupos, usuarios y permisos en Linux

Grupos, usuarios y permisos en Linux Sebastián Pignataro

es@lpmagazine.org

Hoy trataremos un tema de interés para muchos principiantes y para otros no tan principiantes: los permisos y la administración de grupos y usuarios. GNU/Linux es un sistema multiusuario por lo cual es necesaria la administración de los permisos que le otorgamos a los archivos y directorios de nuestro equipo.

44

¿

Por qué es necesaria la administración de grupos y usuarios? Bueno, pongámoslo de esta forma, no todos deben de tener los mismos privilegios en un sistema informático, algunos tendrán acceso a determinados recursos y otros no. Estos privilegios se dividen en lectura, escritura y ejecución de un determinado archivo o recurso. Situémonos en un escenario: en un entorno corporativo queremos que sólo la gerencia tenga acceso al recurso compartido ventas, por lo cual crearemos un grupo de usuarios llamado gerencia y asignaremos al directorio ventas permiso de lectura y escritura para todo aquel que pertenezca al grupo gerencia. De esta forma sólo los usuarios pertenecientes a dicho grupo podrán leer o escribir en él. Lo mismo ocurre con ciertos comandos del sistema, como por ejemplo con el comando “TOP”. La ejecución de este comando por varios usuarios al mismo tiempo puede comprometer la estabilidad del sistema. Por la cual es conveniente otorgarle permisos de ejecución solamente al usuario root. Dentro de un sistema encontraremos al menos tres grupos de usuarios. Usuarios Normales: son usuarios con poca experiencia, propensos a causar problemas, sólo se les debe otorgar acceso a los programas elementales para realizar su tarea y desde luego un directorio de trabajo, o sea un home. Usuarios del sistema: éstos son aquellos encargados de los demonios del sistema, esto quiere decir que para algunos servicios es necesario que se cree un usuario específico como por ejemplo mail, irc, o incluso backup. Usuario ROOT: a éste se le conoce como DIOS. Como bien lo digo, tengan cuidado con lo que hacen con este usuario ya que lo puede todo. Este usuario es el equivalente al usuario admin de otros sistemas. Como podemos ver el mundo de “Unix” difiere del de otros sistemas operativos. Aun-

LiNUX+ 8/2010

que ya estemos familiarizándonos un poco con esto de los entornos Linux, en los Unix o Linux todo es un archivo, incluso los dispositivos. Entonces todo es un fichero y todo fichero tiene un dueno, por lo cual cada fichero tendrá los privilegios suficientes para que sea accedido o no por los demás.

Administrando usuarios y grupos

La administración de usuarios a través de la consola es relativamente sencilla. Utilizaremos los siguientes comandos: useradd, user-mod y userdel. Con estos comandos podremos dar de alta, modificar y eliminar usuarios. Los datos de los usuarios se guardan en /etc/paswd. Todo usuario y grupo posee cierta información adjunta. Echémosle un vistazo a mi archivo passwd (Listado 1). Cada entrada está compuesta por los siguientes campos: • • •

• • • •

Login= el nombre único de usuario en el sistema, Password= la contrasena con la cual el usuario podrá acceder al sistema, UID= abreviatura de la identificación de usuario. Toda combinación de usuario y UID debe ser única, GID= número que identifica al grupo al que pertenece el usuario, Comentario= comentario, Ruta de inicio= ruta absoluta del directorio de trabajo, Shell= el programa que se ejecuta automáticamente cuando el usuario inicia sesión. El intérprete de comandos.

Sin embargo la información de los grupos se almacena en el archivo /etc/group. Bien, y ¿por qué no husmear mi archivo groups? Mirad el Listado 2.


para principiantes Grupos, usuarios y permisos en Linux

Como podremos ver es un archivo muy sencillo y está conformado de la siguiente manera: • • •

Nombre de grupo, GID= Número de identificación del grupo, Lista de usuarios que pertenecen al grupo, !separados por comas!

Lo que haremos ahora es utilizar los comandos useradd, usermod y userdel. Con ellos manejaremos a los usuarios. Para agregar un usuario utilizaremos el comando useradd de la siguiente forma: useradd -d homedir -s /bin/bash [ic] -c Nombre_ real_del_usuario nombre_de_usuario. En verdad es un poco críptico, analicemos el ejemplo. Useradd es el comando a emplear para agregar un nuevo usuario, luego mediante la opción -d especificamos nuestro directorio de inicio, -s nos dará la posibilidad de elegir la shell a utilizar y -c será el nombre real del usuario. Éste debe de ir entre comillas dobles. Por último nos resta el nombre de usuario, el nombre con el cual iniciaremos sesión en nuestro sistema:

Demos un poco de luz a todo esto. Desde luego usermod será el comando que usaremos para realizar nuestro trabajo. Con la opción -c y entre comillas dobles especificaremos el nuevo nombre real del usuario, -d nos dejará indicar el directorio de inicio, con -g incluiremos a nuestro usuario en un grupo de usuario, -s nos dejará decidir qué tipo de shell usaremos. Desde luego nos restará aclarar nuestro nuevo nombre de usuario y nuestro nombre de usuario actual. Digamos que sería algo así: #usermod -o “Marco Preto” -d /home/marcos -m -g abusuarios -s /bin/ bash -l marcos marcos

Finalmente veremos cómo eliminar un usuario del sistema. Para ello disponemos del comando userdel, que se utiliza de la siguiente manera: userdel -r nombre de usuario. Esto en el sistema se vería así: #userdel -r sebastian

Llega el momento de referirnos a los grupos. Encontraremos que podemos manejar grupos de usuarios en casi cualquier

#useradd -d /home/sebastian -s /bin/bash [ic] -o “Sebastian Pignataro” sebastian

Digamos que nos hemos equivocado, o por algún motivo decidimos cambiar los datos de algún usuario que está en el sistema. Para ésto emplearemos el comando usermod. Este comando nos permite cambiar todos los parámetros que hayamos utilizado con el comando useradd. Recuerda que el usuario no podrá iniciar sesión cuando estemos cambiando sus datos. Para cambiar la información sobre la configuración de un usuario haremos lo siguiente: usermod -c “Nuevo_Nombre” -d directorio_de_inicio -m -g nombre_de_grupo -s shell -l nuevo_nombre_de_usuario nombre_de_usuario_actual. Listado 1. Archivo passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon: /usr/sbin: /bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x: 3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/

Figura 1. Salida en pantalla del comando ls-lg

sync games:x:5:60:games:/usr/games: /bin/sh man:x:6: 12:man:/var/cache/man: /bin/sh lp:x:7:7:lp:/var/ spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news: /bin/sh uucp:x: 10:10:uucp:/var/spool/uucp: /bin/sh proxy:x:13:13: proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/ www:/bin/sh backup:x:34:34:backup:/var/ backups: /bin/sh list:x:38:38:Mailing List Manager: /var/ list:/bin/sh irc:x:39:39:ircd:/var/run/ircd: /bin/sh gnats:x:41:41:Gnats nobody:x:65534:65534:nobody: /nonexistent:/bin/sh Debian-exim:x:100:102::/var/ spool/ exim4:/bin/false statd:x:101:65534::/var/ lib/nfs: /bin/false identd:x:102:65534::/var/run/ identd:/bin/false sebastian:x:1000:1000:Sebastian Pignataro,,,:/home/sebastian: /bin/bash messagebus: x:103:104::/var/run/ dbus:/bin/false

Figura 2. Archivo /etc/passwd

www.lpmagazine.org

45


para principiantes Grupos, usuarios y permisos en Linux

sistema operativo. Nosotros nos focalizaremos en cómo manejarlos en la variedad de Unix/Linux. Dividir a los usuarios en grupos es una forma ordenada de otorgar permisos a un archivo que utiliza un grupo de personas. Con esto me refiero que al establecer grupos podremos otorgar los mismos permisos para un grupo de usuarios. Pongamos esto en un ejemplo y supongamos tener tres grupos de usuarios, 1) gerencia, 2) ventas 3) sistemas; y digamos te-ner 3 directorios; productos, sueldos y stock. A éstos, les daremos permisos de la siguiente manera. Crearemos la carpeta productos y le asignaremos lectura, escritura para el usuario; lectura, escritura para el grupo y lectura para otros. Luego le designamos como grupo al directorio el grupo ventas. Esto quiere decir que cualquier usuario que esté dentro del grupo gerencia tendrá acceso de lectura y escritura al mismo. Por lo tanto los que se encuentren dentro del grupo gerencia o ventas, solamente tendrán acceso de sólo lectura. Para trabajar con los grupos en Linux usaremos los siguientes comandos: groupadd, groupmod, groupdel. Entremos en la sintaxis misma de estos comandos. Para agregar un nuevo grupo al sistema lo hacemos invocando el comando groupadd de la siguiente manera: groupadd nombre_de_ grupo. Veamos un modelo de este comando donde agregaremos un grupo llamado www. En este grupo estarán todos los usuarios relacionados con el servidor de web Apache: #groupadd www

Siempre que agreguemos un grupo puede que nos encontremos con la necesidad de modificar el nuevo grupo. Bueno, esto no es problema, lo haremos con una sentencia tan sencilla como la siguiente: groupmod -n nuevo_grupo grupo_actual. Donde nuevo_grupo es el nuevo nombre de grupo que queremos otorgar al grupo y grupo_actual es el nombre actual del grupo:

A veces es inevitable pasar por la opción de tener que eliminar algún grupo. Para llegar a nuestro cometido usaremos ni más ni me-nos que groupdel y el grupo que deseemos eliminar: #groupdel gerencia

En Linux tenemos dos utilidades que nos facilitarán la vida al momento de manejar grupos y el modo en que se asigna un grupo a un archivo o directorio. Éstas son gpasswd y chgroup. Tomemos la primera, gpasswd. Con ella podremos agregar usuarios a un grupo existente. Para ello bastaría solamente una línea como la siguiente: gpasswd -a nombre_de_usuario nombre_de_grupo. Donde nombre de usuario sería el nombre de inicio de sesión y nombre de grupo sería el nombre del grupo al cual agregamos dicho usuario. Ahora para eliminar un usuario de un grupo utilizamos gpasswd -d nombre_de_ usuario nombre_de_grupo. Éste es muy similar al comando anterior. De todas formas visualizaremos un ejemplo. Digamos que queremos eliminar el usuario carlos del grupo gerencia. Lo haríamos así: #gpasswd -d c arlos gerencia

La otro utilidad es chgrp, la cual nos será de utilidad al momento de cambiar el grupo al cual pertenece un archivo. Se usa de la siguiente manera chgrp nombre_de_grupo archivo. Tomemos un ejemplo: si quisiera cambiar el grupo del archivo articulo.html al grupo editorial procederíamos de la siguiente forma: #chgrp editorial articulo.html

¿Qué pasa si queremos cambiar el grupo de un directorio y todos sus y archivos? Utilizamos el comando chgrp con la opción -R. Entonces digamos que cambiamos de grupo todos los archivos del directorio redacción:

#groupmod -n gerencia gerencia2 #chgrp -R

Listado 2. Archivo group

editorial redaccion

root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:

Listado 3. ls -lg

tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp: x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20:

total 1440 drwx------2 sebastian 4096 2007-09-18 23:

sebastian fax:x:21: voice:x:22: cdrom:x:24:sebastian

55 amsn_received -rw-r--r--1 sebastian 38710 2007-

floppy:x:25:sebastian tape:x:26: sudo:x:27: audio:

09-17 16:00 dabadabadoo.wav drwxr-xr-x 3 sebastian

x:29:sebastian, teztzone dip:x:30: www-data:x:33:

4096 2007-10-07 21:03 Desktop -rwxr--r--1 sebastian

backup:x:34: operator:x:37: list:x:38: irc:x:39:

60652 2007-07-25 16:19 gnomesplash.png -rw-r--r--1

src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:

sebastian 16422 2007-10-11 20:00 grupos usuarios y

x:44:sebastian sasl:x:45: plugdev:x:46:sebastian

permisos.odt drwx------2 sebastian 4096 2007-09-12

staff:x:50: games:x:60: users:x:100: nogroup:x:

13:11 Mail -rwxr--r--1 sebastian 1315769 2007-08-

65534: crontab:x:101: Debian-exim:x:102: ssh:x:

25 16:09 Rio -Tigre (9).jpg -rw-r--r--1 sebastian

103: sebastian:x:1000: messagebus:x:104: gdm:x:105:

28 2007-07-30 13:35 sebastian.txt drwxr-xr-x 4

haldaemon:x:106: powerdev:x:107: vboxusers:x:1001:

sebastian 4096 2007-09-20 21:36 Temp drwxr-xr-x 2

, sebastian , pedro, juan, carlos antivir:x:1002:,

sebastian 4096 2007-08-19 16:54 Wallpapers

root , pedro, juan, carlos teztzone:x:1003:

46

LiNUX+ 8/2010


para principiantes Grupos, usuarios y permisos en Linux

Propiedad y permisosde archivos

En esta área nos topamos con dos utilidades por así llamarlas. Éstas son chown y chmod. Chown le permite cambiar el propietario de un archivo y chmod le permite cambiar los permisos de acceso de un archivo. No se preocupe en breve comprenderá a qué me refiero. Para cambiar el propietario de un archivo acudimos a la ayuda de chown que significa cambiar propietario. El uso correcto sería chown nombre_del_propietario archivo. En la consola se vería así: #chown sebastian articulo.html

Si quisiera cambiar el propietario del directorio redacción y todos sus directorios y archivos, podemos utilizar el comando chown seguido de la opción -R. Cambiemos el propietario del directorio redacción incluyendo todos sus archivos: #chown -R sebastian redaccion

Pasemos con nuestro buen amigo chmod. Para la explicación de chmod primero tendremos que saber un poco sobre cómo Linux maneja los permisos. Entonces no perdamos más tiempo y entremos al tema de los permi0o directorio y los de los otros usuarios. Po-demos ver los permisos corriendo el siguiente comando en la consola: ls -lg. Ésta sería la salida en pantalla, desde luego en mi ordenador (Listado 3). Entonces, ¿qué es todo esto? Bueno, primero les cuento que el primer caracter siendo una “d” representa un directorio y siendo una “l” representa un enlace simbólico. Ahora hablemos del resto, muy simple, los tres siguientes representan los permisos del propietario del archivo, los siguientes tres a los del grupo y los tres últimos a los del resto de los usuarios normalmente denominados others, que en espanol sería otros. Para representar los permisos generalmente se usan letras. Específicamente la “r” de read, en espanol lectura, la “w” de write del inglés escritura y la “x” de execute que quiere decir ejecución. Cada permiso tiene un valor numérico: r=4 w=2 x=1

La sumatoria de estos tres valores equivalen a 7 y esto representa permiso de lectura, escritura y ejecución. Observemos algunos ejemplos.

Tabla de permisos • • • • • •

---0 sin permisos r--4 sólo lectura ® rw-6 lectura y escritura (rw) rwx 7 lectura, escritura y ejecución (rwx) r-x 5 lectura y ejecución (rx) --x 1 ejecución (x)

Cuando se combinan estos valores obtenemos los permisos del archivo o directorio. Como nombramos anteriormente, los permisos se componen de la siguiente forma: el primer caracter representa si es un directorio o un enlace simbólico, los tres siguientes representan los permisos para el propietario, los tres que le siguen representan los permisos para el grupo y los últimos tres representan los permisos para el resto de los usuarios. Cuando se combinan estos valores nos da como resultado tres números que representan los permisos del archivo para el propietario, para el grupo y para el resto. Armemos una tabla con algunos ejemplos.

Tabla de ejemplos de permisos d rw-------600 d rw-r--r--644 l rw-rw-rw-666 l rwx -----700 -rwx r-x –-x 755 d rwx rwx rwx 777 -rwx –-x –-x 711

Espero haber dejado claro el tema, ya que sólo era la introducción para chmod. Desde luego era imposible explicar su uso sin conocer el manejo de los permisos en Linux. Habiendo sorteado este obstáculo no perdamos tiempo y veamos cómo poner en práctica lo aprendido. El comando se utiliza de esta forma: chmod permiso archivo. Por ejemplo para hacer que el archivo articulo.odt sea accesible por el propietario, por el grupo y por los demás haríamos lo siguiente: #chmod 777 articulo.odt

Para comprenderlo mejor analicemos un ejemplo. Tenemos el script backup.sh, queremos darle permisos de lectura, escritura y ejecución para el propietario, ésto nos da el valor numérico de 7. También queremos que el grupo tenga acceso a él, de lectura pero que no pueda tener acceso de escritura, no obstante sí queremos que pueda ejecutarlo; lo que nos da el valor numérico de 5. Por último queremos que el resto sólo pueda ejecutar dicho script, por lo tanto le damos permiso de ejecución al resto, lo que resulta en el valor numérico 1. Por lo tanto nuestro ejemplo sería: -rwx r-x –xo de forma numérica sería 751. Recuerda que para cambiar los permisos de un directorio y todos sus archivos utilizamos chmod con -R: #chmod -R 777 /temp

Figura 3. Permisos con el gestor de archivos MC

Esto es todo por hoy, espero les haya sido útil la información y que puedan aplicarla en su totalidad. !Hasta la próxima!

www.lpmagazine.org

47


proyectos linux LocuLinux 2.0

LocuLinux 2.0 Eduardo Arana

es@lpmagazine.org

LocuLinux es una distribución de Linux basada en Ubuntu 10.4 TLS que ha sido desarrollada para cubrir un mercado poco explotado por las distribuciones Linux, los locutorios o también conocidos como Cibercafés. Su nombre deriva de juntar Locutorio y Linux que en el conjunto forman LocuLinux.

E

l problema actual de este tipo de establecimientos es que debido a la inversión inicial en la compra de las computadoras debe sumarse la licencia del software a instalarse, es decir que lo que se instala debería de ser totalmente legal ya que es un servicio que se ofrece al público en general. El coste de la licencia de los sistemas operativos más utilizados eleva el coste en la compra de las computadoras, lo que ocasiona que este tipo de software se instale de manera ilegal. Ahí es donde entra LocuLinux, al ser una distribución Linux, ésta carece de coste en la licencia por ordenador o por número total de usuarios. Cuando obtiene una distribución de GNU/Linux, en este caso una basada en Ubuntu también obtiene la libertad para estudiarla, copiarla, cambiarla, y redistribuirla. LocuLinux posee todas las aplicaciones necesarias para este tipo de establecimientos.

Requisitos Recomendados:

Figura 1. Pantalla del Control de Puestos LocuLinux 2.0

Figura 2. Menú de Arranque

• • • • • •

Procesador x86 de 1,5 GHz. 2 GB de memoria RAM. 12 GB de espacio en el disco. Tarjeta de vídeo VGA con 64mb de RAM. (Juegos). Tarjeta de sonido AC97 o compatible. Unidad DVD-ROM.

Requisitos adicionales: Es necesario poseer una red de datos preinstalada para poder interconectar los puestos de internet y el servidor que controlara a éstos, se recomienda que la red esté cableada con UTP Cat. 5e o similar y un switch 10/100 que intercomunique todos los ordenadores.

Control de puestos

El control de puestos de LocuLinux es único en controlar los puestos de forma remota y gestionar Requerimientos usuarios, rangos horarios, bonos, etc. Existen varios Requisitos Mínimos: programas que permiten realizar una tarea inicial parecida, es decir controlar los puestos por remoto • Procesador x86, 700 MHz. (Reiniciar, Cerrar el puesto, Abrir el puesto, etc). Pe• 512 MB de memoria RAM. ro ninguno es tan completo como el que viene por • 8 GB de espacio en el disco duro. defecto instalado en LocuLinux. • Tarjeta de vídeo VGA con 16mb de RAM. (JueEl control de puesto de LocuLinux está traducigos). do al español en su totalidad. En el puesto cliente • Tarjeta de sonido AC97 o compatible. se puede configurar desde los programas que se • Unidad DVD-ROM. pueden abrir al abrir una nueva sesión o tiempo, así

48

LiNUX+ 8/2010


proyectos linux LocuLinux 2.0

como también se puede definir el fondo personalizado cuando el puesto se encuentre bloqueado. Como se puede observar en la Figura 1, el Control de Puestos LocuLinux está dividido en 4 apartados diferentes: •

Ordenadores: En esta pantalla se muestra la lista de puestos u ordenadores disponibles e instalados en el control de puestos. Usuarios: aquí se dan de alta o se modifican los usuarios creados para acceder desde los puestos o para desbloquear los puestos por usuario, así mismo se le puede incrementar el crédito que el usuario quiera ampliar por minutos. Cajón: aquí se definen todas las ventas que se han realizado durante el día, se puede configurar una etiquetadora externa para que se pueda imprimir el fin de caja del día.

Deudas pendientes: aquí se detallan los consumos excedidos de cada usuario y lo que le queda pendiente por pagar.

La instalación de LocuLinux se realiza de la misma forma que se realiza en ubuntu, se configura en la BIOS de nuestro equipo para que el primer dispositivo de arranque sea el CDROM/ DVD y una vez configurado, se inserta la copia de LocuLinux 2.0 y nos mostrará una pantalla inicial donde podremos seleccionar desde una demo LIVEDVD para probar LocuLinux antes de instalarlo y ver que funciona correctamente con nuestro hardware, luego está la instalación vía disco rígido, con esta opción directamente utilizaremos el instalador de Ubuntu para instalar nuestra distribución físicamente en el disco duro. La instalación permite sobredimensionar espacio en el caso de que queramos conservar un segundo sistema operativo. Una vez que se termina la instalación de LocuLinux, el gestor de arranque GRUB detectará las entradas de la partición y creará las lineas de arranque para los diferentes sistemas operativos que tengamos instalados en nuestro equipo. Recuerden, desde el menú inicial podremos seleccionar arrancar nuestra distribución en modo LIVEDVD sin instalar nada en el disco rígido o el modo INSTALL para instalar LocuLinux físicamente en nuestro disco rígido.

Instalación

Figura 3. Selección de la partición a instalar

En la primera pantalla debemos seleccionar el idioma de nuestra instalación/distribución, como siempre en Español. Luego seleccionaremos la zona geográfica simplemente pulsando en nuestro país y la provincia más cercana a nuestro domicilio, solo se utiliza para sincronizar la hora con los servidores de hora online según la zona. Después seleccionaremos la distribución de nuestro teclado según la zona donde nos encontramos. El paso siguiente será seleccionar la partición donde queremos instalar LocuLinux (ver Figura 3), se puede utilizar todo el disco si no queremos dejar ningún sistema operativo o se pueden especificar manualmente las particiones. En la pantalla siguiente (Figura 4) definiremos el nombre del usuario, recomiendo el nombre de usuario loculinux y la contraseña root aunque ponga el mensaje “Fortaleza: demasiado corta”. En cada puesto debemos cambiar el nombre del equipo, por ejemplo puesto1, puesto2, etc... Por ultimo debemos seleccionar “Iniciar sesión automáticamente” para que no nos solicite el usuario y contraseña en el logging del GDM. Una vez completados todos los pasos y configuraciones anteriores, hacemos clic en el botón Instalar para comenzar la instalación de LocuLinux.

Sobre el autor

Figura 4. Definir los datos de usuario y contraseña y el tipo de sesión

Eduardo Luis Arana nacido en la cuidad de San Nicolás de los Arroyos, en la provincia de Buenos Aires, Argentina. Actualmente con residencia en Madrid, España. Cursó la carrera de Ingeniero Informático en esa misma ciudad. Actualmente desempeña el puesto de Administrador de Sistemas Linux/Windows y DBA de Oracle para una importante compañía logística del sector farmacéutico en Madrid, España.

www.lpmagazine.org

49


opinión Si quieres ser un experto… enseña sin presumir

Si quieres ser un experto… enseña sin presumir

D Fernando de la Cuadra, director de Educación de Ontinet.com, distribuidor en exclusiva de las soluciones de seguridad de ESET en España

50

e vez en cuando, uno se puede encontrar con algunos visos de cordura en este mundo que rodea a la seguridad informática. Cuidado, no digo que puedas encontrarte con gente cuerda, pero sí que tengan episodios en los que sorprendan con actitudes realmente positivas, ingeniosas y coherentes. Desde hace tiempo, cuando un “experto” en seguridad tiene que demostrar lo mucho que sabe, lo único que suele hacer es una gran demostración de lo fácil que es saltarse la protección de un determinado servidor. He llegado a ver a grandes expertos (así se denominan) demostrando en directo cómo engañar a un teleoperador para conseguir que su línea de teléfono tenga ciertas ventajas. O peor aún, cómo ese gran charlatán que tanto sabe ataca un ordenador manejando infraestructuras críticas. Y el público, impresionado por lo mucho que sabe y lo peligroso que es un ordenador. Y si él lo hace con una central térmica, ¿qué no podrá hacer con mi humilde PC doméstico? Hasta que he topado con dos de los grandes, y con mayúsculas, conocedores de la seguridad informática. Y además, capaces de enseñar lo que puede hacerse contra un servidor, y atacarlo, y romperlo, y de todo… incluso arreglarlo. ¿Y contra qué servidor? Contra el suyo propio. No contra el de un pobre ciudadano anónimo, sino contra sus propios sistemas. Sí, durante el pasado ESET Foro Internet Meeting Point (www.internetmeetingpo int.net), celebrado en Gijón a primeros de julio, tuve el placer de compartir mesa de debate con David Hernández y con Óscar Reixa, responsables de www.daboblog.com y de www.reixa.net. Placeres ‘sídricos’ asturianos aparte, es de las pocas veces en las que dos auténticos profesionales muestran lo que es la seguridad de una manera clara, abierta y sin tapujos.

LiNUX+ 8/2010

Como resumen, podríamos decir que han enseñado problemas de seguridad. Muchos, y muy graves. Pero lo mejor de todo: han enseñado cómo solucionarlos. Han mostrado herramientas que corrigen problemas. Y han enseñado abiertamente, sin el ocultismo que las grandes supuestas figuras de la seguridad (chiste va, chiste viene) emplean para asombrar a un público menos experto que ellos. Cierto es que el público asistente al ESET Foro Internet Meeting Point no era, ni mucho menos, una pandilla de preadolescentes polihormonados ni una manada de amas de casa que buscan entender qué es eso del “feisbuc” que usan sus hijos. Allí no valía cualquier tontería, y si se hablaba de seguridad, había que hacerlo de verdad. Bravo por Óscar y por David, y por los organizadores, y por los asistentes, y por los que lo vieron por streaming. Foros así son los que necesitamos en este mundo de Internet, en los que los participantes enseñan y comparten de verdad, y en los que los asistentes no se limitan a ver cuántas pegatinas les han regalado con el ‘badge’ de la entrada. Hoy en día, participar en un foro como éste, tener un blog o maltratar Twitter se suele emplear, desgraciadamente, para la fama personal. Es la filosofía de “yo soy muy bueno porque mucha gente me sigue a pesar de la cantidad de estupideces que digo”. No, esto no es así. Si de verdad quieres seguidores, deberías aplicarte la famosa frase: “Si quieres aprender algo, estúdialo. Si quieres saber mucho más, haz que te lo enseñen. Pero si quieres ser un experto, enséñalo”. Y yo añadiría: “y sin presumir”. Gracias @daboblog y @oreixa, recomiendo a todo el mundo que les siga en Twitter y en sus blogs con profusión, espíritu crítico y ganas de aprender. Yo lo hago, y me va muy bien.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.