lecturas de TodoLinux número 93


Recién comprada la revista de este mes, me dispongo a dar buena cuenta de su contenido. EL DVD que viene con la revista es la OpenSuSe 11.0, una distribución venida a menos que parece que está recuperando el terreno. La portada de la revista está dedicada al kernel de Linux, ya que empieza una serie de artículos dedicados a esta parte vital del sistema operativo. También trae un artículo sobre el framework PHP Symfony, que parece que está de moda para el desarrollo de aplicaciones Web 2.0.

Empezando con la sección de noticias, quiero destacar las siguientes.

Se ha producido la unión de fuerzas entre LiMo Foundation y Linux Phone Standards Phorum (LiPS), dos organizaciones que pretenden extender Linux a los terminales móviles multimedia que proliferan en la actualidad. LiPS se centraba en la creación de normas más que en el código. Esta unión de fuerzas pretenden hacer frente a Android de Google. Ambos bandos tienen un sistema completo con interfaz de usuario y SDK para aplicaciones Java. La filosofía de LiMo es un entorno común con una arquitectura modular basada en plugins sobre Linux en las que las aplicaciones de terceros se puedan ejecutar independientemente del hardware que utilicen.

El instituto francés de investigación IRSTV (Institut de recherche en sciences et techniques) acaba de publicar una nueva versión de un sistema de información geográfica con licencia libre llamada OrbisGIS. Además es una plataforma de desarrollo de aplicaciones que se puede extender con una API y un sistema de plugins. Incorpora un lenguaje SQL extendido para el análisis espacial y funcionalidades de edición con OrbisCAD.

Ha salido la nueva versión de Gentoo Linux. Esta distribución tiene la particularidad de construirse e instalarse a partir de las fuentes, con lo que se puede adaptar y optimizar perfectamente al hardware del sistema en el que se ejecuta. Puede que me baje la distribución o una appliance para ver qué tal es. Me parece interesante poder adaptar y optimizar el sistema “de serie”.

Nokia ha comprado la empresa Symbian, que fabricaba el sistema operativo que utilizan algunos de sus teléfonos móviles más avanzados. Además ha puesto en marcha una fundación, la Symbian Foundation, convirtiendo su sistema operativo propietario que tenía una cuota de mercado el 60% en un producto open source y libre. Me ha sorprendido ver entre los socios de la fundación está una empresa del sector de la microlectrónica europea, STMicroelectronics, que conozco de mi trabajo. Aquí también pretenden hacer frente a Google Android, como en el caso que he comentado anteriormente de LiMo.

Para terminar, otra adquisición. Esta vez la adquisición por parte de Xandros de Linspire. Xandros es una distribución Linux europea con base en Alemania que se está poniendo de moda en los UMPCs (como el Asus Eee PC) Linspire es una distribución norteamericana de bastante éxito con una filosofía de facilitar la vida al usuario.

7 comentarios en “lecturas de TodoLinux número 93

  1. En el artículo principal cover dedicado al kernel de Linux he aprendido por encima los entresijos de este componente fundamental del sistema operativo. Por una parte, el kernel protege el acceso al hardware introduciendo una capa de virtualización para los procesos que se ejecutan en el sistema operativo. El kernel se ejecuta en el llamado modo del kernel que utiliza un nivel de ejecución del procesador que permite realizar cualquier operación sobre el hardware. Los procesos de usuario se ejecutan en el llamado modo de usuario que utilizan otro nivel (llamado anillo de protección) más restrictivo del procesador en el que se tiene limitada la capacidad de ejecutar ciertas instrucciones.

    El proceso de usuario ve al sistema en su contexto de proceso como un procesador dedicado y una memoria de 4GB (más si se tiene la extensión PAE (Physical Address Extension) dividida en páginas (bloques) en los que los primeros 3 GB están a disposición del proceso y el último tiene mapeado el kernel. Cuando un proceso de usuario llama a funciones estándar de librerías del sistema, por ejemplo printf o scanf, en realidad lo que hace es utilizar rutinas especiales del kernel que se ejecutan en modo de kernel y acceden al hardware (pantalla, teclado) para realizar su función. El paso del modo de usuario al modo de kernel se realiza mediante una llamada a interrupción INT 80H. Para especificar el servicio del kernel que se desea se debe cargar previamente en un registro del procesador un valor que la representa. Una vez ejecutada la rutina de servicio del kernel, esta retorna a la siguiente instrucción en el área de usuario del punto donde se la llamó y devuelve un resultado en el mismo registro del procesador.

    Ha sido también muy interesante la explicación de la gestión de memoria en los procesadores x86. La memoria se virtualiza como una serie lineal continua de direcciones divididas en bloques o páginas. En realidad la memoria física está organizada como una serie no contigua de bloques que además pueden estar distribuidos en varios niveles de jerarquía (RAM, disco) El kernel con un soporte hardware es el que se tiene que encargar de traducir las direcciones de memoria virtual en direcciones de memoria física. Solamente el kernel puede ver esas direcciones físicas. Los procesos solamente ven las direcciones virtuales.

    Los mecanismos que permiten direccionar la memoria se llaman paginación y segmentación. Estos mecanismos permiten proteger las áreas de memoria de manera que los procesos no se pisen entre sí. Puede dedicarse páginas de memoria específicas para compartir entre procesos con mecanismos adicionales por software de protección frente a accesos concurrentes (semáforos, mutex, …)

    El kernel de Linux es un kernel monolítico y modular. Estos kernel realizan casi todas las funciones en modo kernel. Por contra los llamados microkernels solamente implementan un planificador y un mecanismo de comunicación entre subsistemas dejando el resto de la funcionalidad al área de usuario.

  2. En la zona de iniciación se comenta en software de contabilidad personal llamado Homebank. Es un sistema simple que no utiliza la doble entrada como otros programas más profesionales desde el punto de vista contable como gnucash, que ha sido el pionero en el mundo open source.

    El sistema de homebank se basa en los conceptos de cartera, cuenta y transacción. Una cartera contiene varias cuentas. Las transacciones son movimientos de dinero desde o hacia una cuenta. Otra de las características interesantes de homebank es la de proporcionar todo tipo de estadísticas para ver la evolución de nuestras carteras y cuentas.

    Sobre lo de la doble entrada (cosa que vi en SEFED en el módulo de contabilidad), en homebank una transacción es una cantidad de dinero, positiva o negativa, que se añade a la existente en nuestra cuenta corriente. En los sistemas de doble entrada, una transacción es un movimiento entre dos cuentas, con un origen y un destino. Las cuentas en estos sistemas no solo representan cuentas corrientes, sino también lo que se llaman categorías y terceros en Homebank. Una cuenta puede ser solo de gasto, solo de ingreso o mixta.

    Por ejemplo, si hacemos una transferencia entre dos cuentas en Homebank, tenemos que crear una transacción para el gasto y otra para el ingreso. Si no lo hacemos, el programa no se quejará, y las cuentas quedarán mal. En GnuCash que daría registrado el movimiento en las dos cuentas con solo una entrada: en la cuenta de origen aparecería un gasto y en la de destino un ingreso.

    En el artículo se comentan los formatos de ficheros utilizados en la banca y que en un futuro soportará homebank. Los formatos son OFX, QFX y QIF. Son los más utilizados por Quicken, que es la aplicación propietaria de referencia en economía personal.

    OFX (Open Financial eXchange) es un estándar abierto desarrollada por varias compañías. (entre ellas Intuit, la dueña de Quicken, y Microsoft) Su implantación, por lo visto no es muy exitosa. El formato está basado en XML y los bancos tienden a usar los dialectos (extensiones) que contienen las extensiones específicas de algún producto concreto.

    El uso de los formatos estándar permite que los bancos ofrezcan las transacciones que hacen a sus usuarios (a través de los cajeros automáticos, oficinas, portales web, etc.) en un formato que pueden importar a su programa de contabilidad. Y también puede funcionar al revés, hacer operaciones en nuestra aplicación y después exportarlas al banco para que las ejecute.

    A nivel profesional entre compañías y autoridades financieras de los diversos gobiernos existen otros estándares como ebXML y XBRL.

  3. En la Zona Debian han explicado un poco por encima el framework PHP Symfony para el desarrollo rápido de aplicaciones web 2.0. Este framework por lo visto supera a sus rivales Zend Framework o CakePHP. En el artículo se comenta la versión 1.0, pero existe una versión más moderna, la 1.1, que tiene algunas modificaciones en su estructura que hay que tener en cuenta. La documentación del proyecto es muy buena, incluyendo un libro online muy completo.

    La licencia open source con la que se distribuye es la MIT, similar a la BSD. Tiene arquitectura MVC (Model-View-Controller), con un entorno de desarrollo separado del de producción. Usa los llamados helpers para sintetizar partes del interfaz de usuario web, incluyendo tecnología AJAX gracias al framework javascript prototype. El acceso a los datos es independiente gracias una capa de abstracción ORM llamada Propel que permite tratar a la base de datos como si fuera orientada a objetos. Los archivos de configuración están escritos en YAML (también se pueden utilizar archivos XML) Tiene un módulo de optimización con uso de caches de scripts, configuración y datos.

    El framework requiere tener instalado PHP5 con PEAR y soporte XSLT, apache 2.2 con mod_rewrite. Su instalación desde PEAR es muy sencilla, basta con ejecutar:


    # pear channel-discover pear.symfony-project.com
    # pear install symfony/symfony

    La estructura de todo desarrollo creado con Symfony está compuesta de un proyecto que constituye su base. Dentro del proyecto están las aplicaciones que se almacenan en módulos. Además se tienen secciones donde se almacena el interfaz de usuario (con plantillas para la apariencia visual), las acciones (funcionalidad de la aplicación) y los archivos del modelo de datos, que comparten todas las aplicaciones del proyecto.

    En el artículo se desarrolla un pequeño ejemplo a partir del entorno de pruebas (sandbox) Los importante aquí no es la aplicación en sí sino el proceso de creación. Primero se crea un archivo YAML con el modelo de datos y se ejecutan tres procesos para crear la base de datos (en el archivo de configuración databases.yml están los detalles de la base de datos que se va a usar):


    $ symfony propel-build-model
    $ symfony propel-build-sql
    $ symfony propel-insert-sql

    Luego se construye el andamiaje de la aplicación (scaffolding), las clases esenciales para visualizar, crear, modificar y borrar las tablas (CRUD) del modelo de datos, el frontend (páginas públicas) y el backend (administración):


    $ symfony propel-generate-crud frontend [tabla] [Tabla]
    $ symfony init-app backend
    $ symfony propel-init-admin backend [tabla] [Tabla]

    Y solamente nos queda generar el módulo de la aplicación:


    $ symfony init-module [modulo]

    Como se ve es bastante sencillo.

  4. En los reportajes tenemos dos artículos dedicados a dos productos de la fundación mozilla que destacan por su calidad y su gran aceptación: firefox, que acaba de sacar su nueva versión, y thunderbird que camina con paso firme hacia su nueva versión. También tenemos un tercer artículo sobre el estado del arte en VoIP en cuanto a calidad del servicio y seguridad.

    Entre las novedades de firefox que se destacan en el artículo están awesomebar que se va a convertir en un buscador de coincidencias del histórico de páginas visitadas, buscando en el título de las páginas, URLs y favoritos, sin necesidad de recordar la dirección de la página web. La gestión de las extensiones y los plug-ins también mejora y ya no se tiene necesidad de ir a una página externa para buscarlos e instalarlos. La lista de plug-ins instalados se puede consultar también en una pestaña de los diálogos de configuración (se acabó el about:plugins) En cuanto a los marcadores, la mejora es espectacular: estrellas marcadoras (para incluir la página que estamos visitando en el bookmark), etiquetas (tags) y carpetas inteligentes (que corresponden a búsquedas en marcadores más que a colecciones concretas de marcas) Otra cosa que me ha parecido interesante es la posibilidad de hacer un zoom global y no solamente de las letras de una página web. Por último hay que destacar una reducción de la memoria usada por el navegador incluso en largas sesiones (sin cerrar el navegador)

    En cuanto al Thuderbird, el artículo no incluye muchas novedades más allá de explicar un poco la historia y las características del programa cliente de correo electrónico y lector de noticias. Se da una guía paso a paso de su instalación. También se habla del componente lightning que añade una funcionalidad muy útil de gestionar calendarios de eventos y tareas, del que también se indica cómo instalarlo.

    En cuanto al artículo de VoIP se da un pequeño repaso de la tecnología y se indican los problemas que pueden surgir si se utilizan redes cableadas e inalámbricas compartidas para cursar su tráfico. Los parámetros de calidad de un servicio de voz sobre IP: eco, latencia, jitter, pérdidas de paquetes. La parte más interesante del artículo es donde se comentan las soluciones software open source para la cancelación de eco como OSLEC o la solución propietaria SoftEcho. Existen también soluciones hardware como las tarjetas de expansión para Asterisk FXO/FXS que la llevan incorporada. Se habla también del concepto de calidad de servicio QoS en redes multiservicio y cómo configurar algunos routers ADSL para que dejen pasar el tráfico de voz. Se trata el tema de la seguridad con los ataques más comunes a la capa de red y transporte. El protocolo utilizado por el servicio de voz IP es el SIP.

    NOTA: He buscado en Google sobre temas de cancelación de eco ya que puede ser un tema de interés en procesado de señal en tiempo real implementada en sistemas embebidos ;)

  5. En la serie de artículos del taller práctico tenemos en primer lugar la última entrega de la serie de artículos dedicados al hacking de sistemas. En esta ocasión le toca a los servidores web. Se indica que un fallo de seguridad en una web puede comprometer a todos los sitios web alojados en el servidor (sobretodo si es compartido, como comprobé en mi época de administardor de sistemas web) Se comentan las utilidades para la búsqueda vulnerabilidades como Nikto, Parosproxy o websarab. Se comentan dos tipos de vulnerabilidades que suelen ser bastante comunes en páginas web dinámicas: Remote File Inclusion y SQL Injection. Una cuidadosa programación de las mismas puede evitar estos problemas. El artículo finaliza con el reto de realizar un ataque con las técnicas comentadas a un sitio web creado en una máquina virtual puesta en marcha ex profeso para la serie de artículos.

    El segundo artículo del taller está dedicado a una aplicación GTK (pensada para GNOME) llamada The Launcher que pretende solucionar el problema de la búsqueda y ejecución de aplicaciones en los modernos entornos de escritorio en los que disponemos de cientos de aplicaciones no siempre fáciles de localizar. El software se puede utilizar como un complemento de GNOME o como una aplicación independiente. La parte más interesante de este programa para mí es la funcionalidad de clasificar los programas por varios atributos: los más utilizados, los utilizados recientemente, por funcionalidad, etc. Me parece una aplicación ideal para incluir técnicas de modelado de usuario, información de contexto, aprendizaje automático por observación, agentes inteligentes etc. Me gustaría ver el código y a documentación para ver si el autor del software ha utilizado una de estas técnicas. En cualquier caso es una buena idea para desarrollar como un proyecto para el máster, cuando lo retome. Volviendo al artículo, se explica la instalación, configuración y funcionamiento, y la posibilidad de unirlo a una aplicación de accesibilidad como ORCA.

    El tercer y último artículo del taller versa sobre el benchmarking. Es la segunda entrega de una serie dedicada al tema. En esta ocasión se trata de la elección del mejor sistema de archivos para una aplicación de servicio de correo electrónico. Esta aplicación se caracteriza por realizar un montón de lecturas y escrituras al disco de archivos muy pequeños en su mayoría. Así pues, en el punto de mira s e encuentra el sistema de almacenamiento: controladora, disco(s) duros(s) y sistema de archivos. Al comienzo se repasan los principales sistemas de archivos de Linux (ext2, ext3, reiserFS3, reiserFS4, XFS y JFS) Se dan detalles curiosos como por ejemplo que el sistema JFS de IBM es del orden de 1000 veces más rápido que ext3 en el arranque del sistema por lo que puede utilizarse para acelerar el arranque de Linux si esta es una prioridad. Un consejo que dan es que se pueden utilizar varios sistemas de ficheros en diferentes particiones para diferentes fines. La herramienta que se usa para el caso práctico del servicio de correo es Bonie++. Las conclusiones que se extraen del análisis es que el sistema elegido es JFS, idealmente en un sistema RAID (no en LVM) y con discos SAS.

  6. En la sección de hardware desktop tenemos la prueba de un dispositivo que está en bica de todos últimamente: el Asus Eee PC 701 con Xandros Linux. Este dispositovo forma parte de una familia llamada UMPC o netbook que pretende llenar un segmento de mercado de la informática móvil. El precio del mismo es de 280 euros.

    Las características hardware son: Intel Celeron Mobile 900 MHz, LCD 7″, resolución 800×600, RAM DDR2 512 MB, disco duro estado sólido 4 GB, LAN 10/100, Wifi 802.11b/g, USB (3), tarjeta de sonido, lector de tarjetas SD, altavoces estéreo, micrófono, webcam y un peso inferior al kilo. ¿Qué se echa de menos? Pues quizá unos conectores externos para monitor y teclado para poder usarlo más cómodamente cuando no se esté en tránsito.

    Otro asunto importante es de la batería, que es el punto flaco de todos los dispositivos móviles (hasta que no se consiga un sistema para recoger la energía del entorno …) Oficialmente la batería es de 4 celdas y 5200 mAh y se indica que puede durar hasta 3 horas. No obstante en las pruebas que han hecho los autores del artículo solo han conseguido hasta las 2 horas, y sin dar un uso exhaustivo de la conexión Wifi ni al reproductor de audio (no indica nada del resto de las funciones como la webam o la VoIP …) Según dicen en el artículo existe la posibilidad de anular funciones para ahorrar consumo energético. Esto me hace pensar que tal vez en estos dispositivos sea interesante desarrollar una aplicación que gestione la activación y desactivación de funciones y gestione de forma eficaz el consumo energético según el perfil de actividad del usuario.

  7. En la sección de software de linux se comenta en el primer artículo una aplicación muy útil para gestionar el espacio de los discos duros o externos y hacer su reparto e incluso su reconfiguración moviendo particiones. Se trata del QParted. Este software es una interfaz gráfica del programa que realmente realiza el trabajo: GNU parted. En el artículo se trata su instalación y configuración. También se dan ejemplos de uso de creación, redimensionamiento, movimiento, formateo y borrado de particiones. También se dan consejos útiles sobre la recuperación del arranque de Windows, GNU Linux y la recuperación de particiones borradas.

    En el segundo artículo de la sección se habla de las extensiones de archivos en GNU/Linux. Se da un repaso a las extensiones más comunes de archivos ejecutables, librerías, código fuente, comprimidos y empaquetados, de sistema y de distribuciones. Asimismo se trata del reconocimiento de las extensiones (por ejemplo utilizando la herramienta file) Finalmente se habla de cómo configurar programas predeterminados para determinadas extensiones en KDE y GNOME.

    El contenido del DVD-ROM de este mes es OpenSuSe 11.0. Como novedades más destacadas de esta distribución: la mejora de la experiencia de usuario con un instalador gráfico impecable, Gnome 2.22 y KDE 4, efectos de escritorio 3D con Compiz Fusion, OpenOffice 2.4 y Banshee 1.0.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s