Archivo

Posts Tagged ‘Linux’

El escritorio multimedia en Linux – Drivers de Video

20 mayo 2010 Los comentarios están cerrados

En los últimos años, el ecosistema Linux ha abarcado rápidamente equipos personales como PCs, netbook’s, smartphones, etc. Estas tecnologías abiertas han permitido a empresas como Canonical y Google ofrecer excelentes productos como Ubuntu 10.04 y Android respectivamente. Pero ¿Hasta donde ha llegado el escritorio Linux? ¿Ya es posible tener una experiencia multimedia completa? ¿Qué más falta por hacer?.

Durante algún tiempo Linux fue desarrollado principalmente pensando en grandes equipos de cómputo como servidores y supercomputadoras, además de pequeños sistemas embebidos como routers, electrodomésticos, etc. Y aunque hoy en día Linux domina todos estos mercados, existe un componente que no es necesario para ninguna de estas aplicaciones y que durante mucho tiempo no fue relevante para Linux: el entorno gráfico.

Cuando usas una computadora personal o un teléfono celular, la pantalla gráfica es uno de los componentes más importantes para obtener información de tu equipo. Las interfaces gráficas actuales son sumamente amigables, utilizando una serie de elementos como botones, menús, ventanas etc., así como la presencia de imágenes, audio, video y entornos 3D interactivos, han enriquecido enormemente la funcionalidad de estos sistemas.

Durante muchos años, el entorno gráfico y el sistema de audio han sido los puntos débiles de los sistemas Linux. Anteriormente era común ver a los usuarios correr despavoridos al ver que el sistema fallaba al iniciar el modo gráfico, el audio no se escuchaba, o su laptop se calentaba demasiado. Y aunque hoy en día estos problemas se han logrado resolver en su mayoría, aún se llegan a presentar.

Estos problemas están asociados con tres componentes: los drivers de video, el servidor X y el sistema de audio.

Drivers de video

Linux vs. drivers propietarios

La naturaleza abierta del kernel de Linux (GPL) – la cual lo ha impulsado enormemente –  solo permite que drivers de software libre sean integrados y distribuidos junto con éste. Esto significa que aquellos que son propietarios no pueden ser incluidos en las distribuciones de Linux y deben ser instalados y configurados por el usuario final. Afortunadamente, algunas distribuciones como Ubuntu ofrecen una forma fácil y sencilla de instalarlos.

Actualmente Nvidia, ATI (AMD), S3 (VIA) (e Intel en ocasiones) ofrecen drivers propietarios para Linux, mientras algunas de estas empresas ofrecen también drivers open-source, Nvidia y S3 únicamente proveen drivers propietarios. Finalmente estos drivers en ocasiones no pueden aprovechar los últimos avances que se dan en el kernel (como KMS) o en el servidor X, debido a su naturaleza propietaria.

Drivers propietarios

Debido a que muy pocos clientes usaban Linux en sistemas de escritorio, los fabricantes de tarjetas de video ofrecían un soporte muy pobre (o ninguno) de drivers para Linux, al mismo tiempo que no proveían información del hardware o de sus drivers que permitiera a los programadores arreglar o desarrollar drivers alternativos. En ocasiones usar el driver propietario era la única opción  y muy frecuentemente se encontraban en un estado muy pobre. Para los dueños de estas tarjetas de video usar Linux simplemente no era una opción.

Afortunadamente en los últimos años el soporte de drivers propietarios a mejorado considerablemente, aquellos provistos por Nvidia son considerablemente buenos, ofreciendo un gran soporte para lo último en tecnología de gráficos en Linux. El soporte de ATI ha ido mejorando lentamente, aunque aún falta un buen camino por recorrer. En general los drivers propietarios en Linux son casi tan buenos como los de otros sistemas operativos.

Drivers de código abierto.

El kernel de Linux no fué diseñado originalmente para trabajar con entornos gráficos avanzados, sin embargo ha ido evolucionando poco a poco en esta dirección, algunos de los eventos más importantes han sido:

  • Diciembre 2008, con la versión 2.6.28 comienza una lenta integración de componentes para ofrecer un mejor soporte de gráficos (KMS, GEM), los chips de video de Intel son los primeros en tomar ventaja de estas tecnologías.
  • Diciembre 2008, ATI comienza la liberación de documentación que permitirá el desarrollo de drivers open-source con aceleración 2D y 3D para sus tarjetas de video.
  • Septiembre 2009, en el kernel 2.6.31 se integra soporte inicial para algunos chips de video de ATI.
  • Diciembre 2009, kernel 2.6.32, se agrega soporte de aceleración 2D y 3D para todos los chips de ATI.
  • Febrero 2010, con el kernel 2.6.33 se integran drivers open-source con soporte 2D y 3D para tarjetas de video Nvidia desarrollados por el proyecto nouveau.

Hoy en día Intel y ATI son los mayores fabricantes de chips de video que ofrecen documentación sobre estos, permitiendo el rápido desarrollo de drivers open-source. Actualmente el kernel de Linux integra drivers para la mayoría de las tarjetas de video disponibles en el mercado, en su mayoría ofreciendo soporte de aceleración 2D y 3D.

Apesar de estos grandes avances, los drivers de código abierto aún no pueden competir con drivers propietarios en algunas áreas como aceleración 3D y aceleración de codecs de video. Aún carecen de soporte de APIs relativamente nuevos como OpenGL 3.0, 3.2 o 4.0. Pero tal vez la mayor limitación actual en drivers open-source, sea el alto consumo de energía que presentan algunos de estos, afectando principalmente equipos portátiles, en muchos casos por la falta de una administración de energía o la falta de aceleración de códecs de video. Se espera que la administración de energía de los chips de Intel y ATI mejore en las versiones 2.6.34 y 2.6.35 del kernel.

Gallium3D y el futuro de los drivers de video en Linux

Las tarjetas de video actuales ofrecen una gran cantidad de funcionalidades:

  • Aceleración 2D (EXA, Textured Xv)
  • Aceleración 3D (OpenGL)
  • Aceleración general (OpenCL)
  • Aceleración de códecs de video (XvMC, VDPAU, VA-API)
  • Administración de consumo de energía (ACPI,..)

Desarrollar un driver por cada chip de video que cubra todas estas necesidades/especificaciones es realmente un arduo trabajo, incluso los fabricantes de hardware mantienen un driver común para toda una familia de chips. Esta gran cantidad de trabajo también se ve reflejada en el  retraso de los drivers open-source. Sería muy bueno encontrar una forma de hacer más eficiente el trabajo para cada uno de los equipos que desarrollan drivers para el kernel.

Gallium3D es la mayor apuesta de la comunidad de software libre para lograr drivers open-source competitivos. Uno de sus principales objetivos es permitir que programadores de drivers compartan la mayor cantidad de software posible, reduciendo la necesitdad de programar una y otra vez la misma funcionalidad por cada driver. Pero ¿Cómo funciona Gallium3D? La arquitectura base se puede ver en el siguiente diagrama:

Básicamente se puede pensar en Gallium3D como una capa intermedia entre el API y el driver de video. Cada implementación de un API sobre Gallium3D es llamada state tracker, Los state trackers pueden ser APIs 3D como OpenGL o incluso Direct3D, pero también es posible tener otro tipo de API’s por ejemplo API’s de aceleración 2D como OpenVG o aceleración GPGPU como OpenCL. Una vez que el state tracker esta listo, todos los drivers desarrollados para Gallium3D (que cubran ciertos requisitos) pueden tomar ventaja de este. De esta forma se puede reducir el tiempo de programación para cada driver, acelerando el desarrollo de los mismos.

La versión 7.5 de Mesa3D (Julio 2009) fué la primera en incluir Gallium3D, en Mayo 2009 se incluyó el state tracker OpenVG, permitiendo aceleración de SVG y Flash. Actualmente programadores de drivers de Intel, ATI y nouveau están enfocando sus esfuerzos en Gallium3D. Se han hecho diversas propuestas para la creacion de state trackers en Gallium3d, incluyendo OpenGL 3.2 y Cairo (usado en gtk+).

Los drivers de video juegan un papel muy importante en equipos de computo personal, tanto en tareas comunes como navegar en Internet, editar textos o ver videos, así como en el uso de aplicaciones avanzadas para edición, animación, ingenieria, videojuegos, etc. Linux no podrá competir con otros sistemas operativos en este mercado sino cuenta con los drivers de video adecuados.

Puedes seguir los avances de Gallium3D y los drivers de video en Linux en los siguientes links:

GalliumStatus

Radeon Feature Matrix (drivers para chips ATI)

Nouveau Feature Matrix (drivers para chips Nvidia)

En la siguiente sección revisaré el Servidor X y el sistema de sonido en Linux.

Anuncios

Editando textos científicos con LaTeX en Linux

6 marzo 2010 Los comentarios están cerrados

¿Qué es LaTeX? Es una poderosa herramienta para crear documentos de tipo científico. Es muy útil para la creación de libros, artículos o tesis que contengan fórmulas matemáticas, se puede usar para crear indices por secciones o por palabras clave, enumerar capítulos, secciones, definiciones, o enumerar cualquier cosa que desees. También se puede utilizar para crea gráficas como matrices, vectores, figuras geométricas, lineas, curvas, grafos,…

Afortunadamente hoy en día se cuenta con una gran cantidad de herramientas para editar textos con LaTeX en Linux, mencionaré algunos de los editores más populares y algunas de sus características, sin ningún orden en particular:

Kile

Es un editor de tex/latex para el entorno KDE, al igual que la mayoría de los de esta lista manejan DVI, PS, PNG y PDF, cuenta con muchas herramientas para insertar símbolos, visualizar la estructura del documento, navegar en archivos y carpetas, ejecutar comandos en consola, vista previa, visualizar el documento completo en un solo click, cambiar tipo de letra, enumeraciones, etc. Además de resaltar los comandos de LaTeX con colores, también soporta muchos otros lenguajes script y compilados. Más información de Kile aquí.



LyX

LyX es un poderoso editor de textos principalmente enfocado a LaTeX, te permite editar y visualizar los resultados casi al mismo tiempo. LyX te permite visualizar una combinación del resultado final junto con el texto que solo se ve en LaTeX como comentarios o indices. Los archivos son guardados en su propio formato .lyx pero es posible importar y exportar fácilmente archivos en otros formatos. Cuenta con herramientas que te permiten insertar fórmulas, tablas, notas, citas, etiquetas, imágenes, etc. Más sobre Lyx.



Gedit con plugin de LaTeX

Gedit es un editor de textos para Gnome que soporta una enorme variedad de lenguajes, y te permite cómodamente navegar por archivos y carpetas. El plugin de LaTeX mejora considerablemente la experiencia al editar archivos de este tipo; te permite navegar en la estructura del documento, visualizar una vista previa, insertar símbolos, cambiar tipo de letra, insertar estructura, enumeraciones, compilar tu archivo a PS, DVI o PDF, y muchas otras más. Más sobre el plugin de LaTeX para gedit.



AUCTeX (Extención para Emacs)

Emacs es un poderoso editor con un gran soporte para diversos lenguajes. Con la extensión de AUCTeX es posible pre-visualizar algunas partes del documento como secciones, fórmulas, tablas o gráficas, enumeración, etc, puedes compilar y ver una vista previa en su propio visor de documentos. Más información sobre AUCTeX.




Puedes encontrar y comparar más editores de TeX y LaTeX en wikipedia. Si deseas aprender o perfecciones tus habilidades con LaTeX puedes encontrar una gran cantidad de información en el libro de LaTeX en wikibooks o en el sitio oficial de LaTeX.

Dispositivos con Linux y ARM en el 2010

6 enero 2010 Los comentarios están cerrados

Este año se espera la llegada de numerosos dispositivos con Linux y ARM a precios muy accesibles. La arquitectura ARM, que se encuentra comúnmente en los procesadores de los teléfonos celulares, es más eficiente que la arquitectura de las PCs (x86). Estos chips cada día se hacen más poderosos y en el 2010 los encontraremos en todo tipo de equipos como: smartphones, web tablet’s, netbook’s, o home media server’s, los cuales gozarán de un menor consumo de energía y una mayor duración de batería. He aquí algunos de los dispositivos anunciados para este año:

Freescale Smartbook table

Es un Internet Tablet, diseñado para navegar en Internet, leer de libros y aplicaciones de oficina.

  • Pantalla 7″, 1024×800
  • Procesador ARM Freescale i.MX515 Cortex-A8 1Ghz , OpenGL y Aceleración de video HD.
  • Wi-Fi, bluetooth, GPS y 3G(opcional)
  • camara de 3MP
  • 12 horas de batería
  • 512MB en RAM y 4 – 64GB de memoria flash
  • Sistema Operativo: Ubuntu, Android, ..
  • Acelerometros en los 3 ejes y sensor de luz.
  • Costo aproximado: $200 USD

anuncio y especificaciones

Google Nexus One

El teléfono celular de Google

  • Pantalla 3.7″ de 800×480
  • Procesador ARM Qualcomm QSD 8250 1 GHz
  • 512MB RAM y de 4 – 32GB de memoria flash
  • GSM, Wi-Fi, Bluetooth, A-GPS
  • Sistema Operativo: Android 2.1
  • Acelerometros en los 3 ejes
  • Costo aproximado: $527 USD

más especificaciones

Marvell Plug Computer 3.0

Home media server, para compartir archivos en el hogar y en Internet, para estar siempre conectado. Lo más sorprendente es la velocidad del procesador y el consumo de energía.

  • Procesador ARM Marvell Armada 300 a 2 Ghz
  • 512 MB RAM DDR2 y 512MB en flash
  • Ethernet, Wi-Fi, Bluetooth, USB
  • Consumo de energía menos de 2 watts
  • Sistema Operativo: Fedora, Debian, Ubuntu, Gentoo
  • Costo aproximado: $100 USD

anuncio y especificaciones

Lenovo Skylight

Smartbook (o netbook) de Lenovo

  • Pantalla 10″
  • 10 hrs de batería
  • Procesador ARM Qualcomm Snapdragon 1 Ghz
  • 8 ó 20 GB memoria flash.
  • Wi-Fi, 3G
  • Costo aproximado: $450 USD

página oficial

Pero eso no es todo, en este año se espera la llegada de equipos con procesadores ARM de 2 o 4 núcleos a 2 Ghz de velocidad. El año pasado vimos la llegada de netbooks de $80 USD y este año también veremos nuevos equipos a precios muy económicos.

Videos HD en Linux?

31 diciembre 2009 Los comentarios están cerrados

Ver videos de alta definición en la PC ya es hoy en día una tarea muy común, ya sea en Blue-Ray o en algún sitio en la red. Desafortunadamente la aceleración de video en Linux sigue siendo un reto. La mayoría de los fabricantes de hardware no ofrecen el soporte que nos gustaría ver.

La aceleración de codecs de video como H.264, VC-1 o MPEG2 en resoluciones de alta definición como 720p o 1080p, puede ser una tarea ardua para los microprocesadores actuales. En general sin una tarjeta gráfica que ofrezca este tipo de aceleración, el procesador (o alguno de sus núcleos) puede llegar al 100% de uso, gastando valiosos recursos de cómputo y energía eléctrica. Y si no se cuenta con un procesador lo suficientemente poderoso, seguramente observaremos frecuentes saltos en el audio y video.

La mejor opción es contar con una tarjeta gráfica que soporte este tipo de aceleración, reduciendo el consumo de energía (alargando la batería en equipos móviles) y permitiendo realizar otras tareas de forma simultanea. También cabe mencionar que este tipo de aceleración es “independiente” de la aceleración 2D y 3D que soporte el driver y la tarjeta.

Una vez dicho esto, revisemos el soporte que ofrecen los drivers actuales por fabricante, en el caso de que soporte aceleración, se indicará el API utilizada y el hardware requerido:

Fabricante Driver Aceleración Completa API Hardware Requerido
ATI catalyst (propietario) SI VA-API > UVD 2

ati (open-source) NO


Nvidia nvidia (propietario) SI VDPAU, VA-API > PureVideo 2

noveau (open-source) NO

Intel poulson (propietario) SI VA-API Solo GMA 500

intel (open-source) NO


Broadcom crystalhd (open-source?) SI libcrystalhd Solo BCM970012

Recientemente Broadcom lanzó al mercado su acelerador BCM970012, que ya cuenta con soporte del reproductor multimedia XBMC y cuenta con un driver open-source. Este ultimo aún no ha sido integrado al código del kernel de Linux y cuenta con un firmware de 2.7MB. Una vez integrado podría significar un gran avance en la aceleración de video en Linux, siendo el único driver Open-Source en soportar esta tecnología.

Por otro lado el driver propietario de ATI (catalyst) tiene serios problemas para seguirle el ritmo de desarrollo de la plataforma Linux + Xorg, y frecuentemente no ofrece soporte para las últimas versiones de éstos.

Al mismo tiempo el soporte  que ofrece el driver poulson de Intel, fuera de las distribuciones Moblin o Ubuntu, es muy pobre.

Cuando se refiere a reproductores multimedia XBMC, parece ser una muy buena opción ofreciendo soporte para VDPAU y Broadcom Crystal HD, en cualquier caso es recomendable revisar: VA-API y VDPAU para revisar los reproductores multimedia que soportan estas APIs.

Se acerca Ubuntu 9.10 Karmic Koala

13 octubre 2009 Los comentarios están cerrados

Comienza el conteo regresivo. Solo faltan 17 días para la llegada de una nueva versión de Ubuntu, y viene cargada con muchas nuevas características y funcionalidades.

Ubuntu es la distribución de Linux más popular para escritorio hoy en día y con la versión 9.10 veremos Ubuntu Enterprise Cloud y Kubuntu Netbook Remix unirse a la gran familia de sistemas Ubuntu:

  • Ubuntu (con entorno Gnome)
  • Ubuntu Netbook Remix (con Gnome para Netbooks)
  • Ubuntu Server (para servidores)
  • Ubuntu Enterprise Cloud (para servidores)
  • Ubuntu Studio (con Gnome para artistas y diseñadores)
  • Kubuntu (con entorno KDE)
  • Kubuntu Netbook Remix (con KDE para Netbooks)
  • Xubuntu (con entorno Xfce)
  • Mythbuntu (con Xfce y MythTV para HTPC)
  • Edubuntu (con Gnome para escuelas)

Otra distribución que esperemos se una pronto es Lubuntu con entorno LXDE, diseñada para ser muy rápida y ligera, enfocada a netbooks y equipos viejos. Puedes revisar un preview de Lubuntu aquí.

Pero que podemos esperar en el nuevo Ubuntu Karmic Koala?

  • Arranque en menos tiempo y con Xsplash
  • Kernel 2.6.31.1
  • GRUB2.
  • Ext4 como sistema de archivos predeterminado.
  • La nueva versión 2.28 de Gnome.
  • Cambio de cliente de mensajería de Pidgin a Empathy.
  • Mejoras Visuales: nuevos temas, iconos y mejoras al instalador.
  • Regresa la opción para encriptación del directorio /home.
  • Ubuntu Software Center (AppCenter): para instalar y desinstalar software

  • Ubuntu One Para almacenar, sincronizar y compartir archivos.
  • Nuevos drivers Intel con mejoras de desempeño
  • Desaparece el daemon HAL.

Más imágenes de Ubuntu Karmic en Ubuntu Tutorials

Moblin v2.0 liberado! Anuncian Moblin Garage, Moblin v2.1 y Moblin en equipos Dell

25 septiembre 2009 Los comentarios están cerrados

Ayer fue un día de muchas sorpresas para la comunidad de la distribución de Linux Moblin:

  • Se libera Moblin v2.0, que es muy parecida a la versión beta, ya puedes descargarlo desde el sitio.
  • Moblin v2.1 esta disponible para desarrolladores, y ofrecerá mejor soporte para equipos más pequeños como smartphones. He aquí un video con la nueva visión de Moblin y una primer vista previa.
  • Junto con Moblin v2.1 se anuncian dos proyectos paralelos: Moblin Garage, que es un sitio en la red desde el cual puedes descargar aplicaciones gratuitas e instalarlas en tu Moblin utilizando el Moblin Application Installer.

  • Finalmente dell anuncia el lanzamiento de sus ya conocidas netbooks Dell Inspiron Mini 10v, ahora con el sistema operativo Moblin a un costo de $299 USD.

Puedes revisar el anuncio completo en el sitio de Moblin.org

Fedora 12 Demuestra Nueva Tecnología de Seguridad

24 septiembre 2009 Los comentarios están cerrados

Una nueva tecnología de aislamiento de procesos, podría incrementar aún más la seguridad de los usuarios de sistemas Linux. Aunque esta tecnología aún no esta terminada y no es muy amigable para usuarios finales sandbox -X tiene un gran potencial.

La idea en realidad es bastante simple: Cada vez que se ejecuta una aplicación en Linux, esta requiere de ciertos permisos para trabajar, pero en general estos son los mismos de los que dispone el usuario final, como por ejemplo leer y escribir en su directorio personal dentro de /home. Pero ¿qué ocurriría si tuviera información delicada? como números de tarjetas de crédito. Si el usuario tuviera acceso a la red y a servicios de correo electrónico, nada impediría que, por ejemplo, el navegador de Internet mandara éstos números por correo electrónico. Esto no solo ocurre cuando la aplicación la abre directamente el usuario, sino también cuando es abierta indirectamente por otra aplicación del mismo usuario.

Para reducir los permisos que tiene un programa en tu sistema el experto en seguridad y desarrollador de Red Hat; Dan Walsh inventó sandbox -X, este permite aislar completamente cualquier aplicación como Firefox, OpenOffice,.. y asignarle solo aquellos permisos que tu deseas. Este tipo de aislamiento lo logra utilizando tecnologías de SELinux y e instancias independientes del servidor X con Xephyr. Por el momento solo se puede permitir a la aplicación tener acceso a la red o usar ciertos protocolos de red, pero en futuras versiones espera poder agregar nuevas características como guardar archivos en un directorio predeterminado por ejemplo: ~/sandboxout

sandbox -X estará disponible en Fedora 12 planeada para liberarse en Noviembre.