You are on page 1of 20

Software libre: los diez más importantes del 2011

Por Marta Alejandra del Valle Lau y Hsing Li Chang Ascencio Organización de computadoras y assembler

Guatemala 2012 Software libre: los diez más importantes del 2011

Por Marta Alejandra del Valle Lau y Hsing Li Chang Ascencio Organización de computadoras y assembler

Universidad del Valle de Guatemala Facultad de Ciencias y Humanidades 16 de febrero de 2012 I. INTRODUCCIÓN

El software libre ó free software es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido. Donde ese puede ser copiado, estudiado, modificado y redistribuido libremente. Como definición más formal se tiene que es “La libertad de los usuarios para ejecutar, copiar, distribuir, estudiar y modificar el software y distribuirlo modificado” según la Free Software Foundation.

II.

HADOOP

Apache

Hadoop es

un framework

de

software que

soporta aplicaciones

distribuidas bajo una licencia libre. Permite a las aplicaciones trabajar con miles de nodos y petabytes de datos. Consiste básicamente en el Hadoop Common, que proporciona acceso a los sistemas de archivos soportados por Hadoop. El paquete de software The Hadoop Common contiene los archivos.jar y los scripts necesarios para hacer correr Hadoop. El paquete también proporciona código fuente, documentación, y una sección de contribución que incluye proyectos de la Comunidad Hadoop. Una funcionalidad clave es que para la programación efectiva de trabajo, cada sistema de archivos debe conocer y proporcionar su ubicación: el nombre del rack (más precisamente, del switch) donde está el nodo trabajador. Las aplicaciones Hadoop pueden usar esta información para ejecutar trabajo en el nodo donde están los datos y, en su defecto, en el mismo rack/switch, reduciendo así el tráfico de red troncal (backbone traffic). El sistema de archivos HDFS usa esto cuando replica datos, para intentar conservar copias diferentes de los datos en racks diferentes. El objetivo es reducir el impacto de un corte de energía de rack o de fallo de interruptor de modo que incluso si se producen estos eventos, los datos todavía puedan ser legibles.8 Un clúster típico Hadoop incluye un nodo maestro y múltiples nodos esclavo. El nodo maestro consiste en jobtracker (rastreador de trabajo), tasktracker (rastreador de tareas), namenode (nodo de nombres), y datanode (nodo de datos). Un esclavo o compute node (nodo de cómputo) consisten en un nodo de datos y un rastreador de tareas. Hadoop requiere tener instalados entre nodos en el clúster JRE 1.6 o superior, y SSH. Sistemas de archivos [editar]Hadoop Distributed File System

El Hadoop Distributed File System (HDFS) es un sistema de archivos distribuido, escalable y portátil escrito en Java para el framework Hadoop. Cada nodo en una instancia Hadoop típicamente tiene un único nodo de datos; un clúster de datos forma el clúster HDFS. La situación es típica porque cada nodo no requiere un nodo de datos para estar presente. Cada nodo sirve bloques de datos sobre la red usando un protocolo de bloqueo específico para HDFS. El sistema de archivos usa la capa TCP/IP para la comunicación; los clientes usan RPC para comunicarse entre ellos. El HDFS almacena archivos grandes (el tambaño ideal de archive es de 64 MB9 ), a través de múltiples máquinas. Consigue fiabilidad mediante replicado de datos a través de múltiples hosts, y no requiere almacenamiento RAID en ellos. Con el valor de replicación por defecto, 3, los datos se almacenan en 3 nodos: dos en el mismo rack, y otro en un rack distinto. Los nodos de datos pueden hablar entre ellos para reequilibrar datos, mover copias, y conservar alta la replicación de datos. HDFS no cumple totalmente con POSIX porque los requerimientos de un sistema de archivos POSIX difieren de los objetivos de una aplicación Hadoop, porque el objetivo no es tanto cumplir los estándares POSIX sino la máxima eficacia y rendimiento de datos. HDFS fue diseñado para gestionar archivos muy grandes.9 HDFS no proporciona Alta disponibilidad.

III.

GIT

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. 2 Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. 3 Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación delnúcleo Linux.

Entre las características más relevantes se encuentran:

Fuerte apoyo al desarrollo no-lineal, por ende rapidez en la gestión de ramas y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no-lineal. Una presunción fundamental en Git es que un cambio será fusionado mucho más frecuentemente de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo revisan.

Gestión distribuida. Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramas adicionales y pueden ser fusionados en la misma manera que se hace con la rama local.

Los almacenes de información pueden publicarse por HTTP, FTP, rsync o mediante un protocolo nativo, ya sea a través de una conexión TCP/IP simple o a través de cifrado SSH. Git también puede emular servidores CVS, lo que habilita el uso de clientes CVS pre-existentes y modulos IDE para CVS pre-existentes en el acceso de repositorios Git.

Los repositorios Subversion y svk se pueden usar directamente con git-svn.

Gestión eficiente de proyectos grandes, dada la rapidez de gestión de diferencias entre archivos, entre otras mejoras de optimización de velocidad de ejecución.

Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en Monotone.

Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y relativamente ineficiente para lectura si el reempaquetado (con base en diferencias) no ocurre cada cierto tiempo.

I.

CASSANDRA

Cassandra es una base de datos NoSQL, hoy en día es un proyecto de Apache. Cassandra fue desarrollado por Facebook (la versión original fue escrita por un ex empleado de Amazon y otro de Microsoft), en el 2008 fue liberado como un proyecto open source enGoogle code, en el 2009 se convirtió en un proyecto “Apache Incubator“, y finalmente en el 2010 se convirtió en un proyecto TOPLEVEL. La información en las bases de datos relacionales, se almacenan en forma de filas, pero en Cassandra la información se almacena en columnas con pares keyvalue, key-map para múltiples valores, que se agrupan en column families (familia de columnas). Las column families son fijas cuando una base de datos Cassandra es creado, pero las columns se pueden agregar a lacolumn families en cualquier momento. Por otra parte, las columns se agregan solo a las keys específicas, por lo tanto diferentes keys pueden tener diferentes números de columns en cualquier columns family. Cassandra puede manejar varios terabytes de datos si lo necesita y puede, fácilmente, manejar millones de files, incluso en un cluster pequeño. Cassandra puede hacer alrededor de 20k de insert por segundos. La rendimiento de Cassandra es muy alta, y mantener ese rendimiento alto mayormente depende delhardward, la configuración y el numero de nodos en nuestro cluster.

II.

LIBRE OFFICE

LibreOffice es una suite ofimática libre y gratuita, compatible con Microsoft Windows, Mac y GNU/Linux. Cuenta con un procesador de texto(Writer), un editor de hojas de cálculo (Calc), un creador de presentaciones (Impress), un gestor de bases de datos (Base), un editor de gráficos vectoriales (Draw), y un editor de fórmulas matemáticas (Math). LibreOffice fue creada por la fundación The Document Foundation como una bifurcación de la suite OpenOffice.org en octubre de 2010. Está disponible bajo la licencia GNU Lesser General Public License.3 La compra de Sun Microsystems (líder del desarrollo de OpenOffice.org) por Oracle fue el desencadenante de esta bifurcación debido a la orientación dada por Oracle. Las versiones existentes de Libre Office son: Versión 3.3 La primera versión de LibreOffice fue la 3.3 Beta 1, la cual fue publicada el 28 de septiembre de 2010, el mismo día que se anunció la creación de la Document Foundation. Debido a que The Document Foundation considera a LibreOffice como la continuación de OpenOffice.org, LibreOffice usó el mismo número de versión que OpenOffice.org en ese momento. Esta versión de prueba estuvo basada en la versión beta de pruebas de OpenOffice.org 3.3, pero eliminando las referencias al nombre, los iconos, las marcas y demás relaciones con dicho software. El primer objetivo del proyecto era lograr la separación de esta bifurcación del tronco del OpenOffice.org a partir de la reorganización de los archivos. La primera versión estable fue la 3.3.0, publicada el 25 de enero de 2011. Debido a que The Document Foundation considera a LibreOffice como la continuación de OpenOffice.org, LibreOffice 3.3 usa el mismo número de versión que OpenOffice.org.

LibreOffice 3.3 tiene algunas características que no existen en OpenOffice.org 3.3. Estas características únicas de LibreOffice incluyen:
– –

Importación de imágenes en formato SVG. Filtros de importación de documentos en los formatos de Lotus Word Pro y Microsoft Works

Importación mejorada de documentos en formato WordPerfect. Caja de diálogo para las páginas de título. El navegador permite que un encabezado sea desplegado como en un típico Tree View.


Modo «experimental» que permite que características inacabadas puedan ser probadas por el usuario.

Inclusión de algunas extensiones (plugins), como Presenter View en Impress.

En la evaluación de la versión de LibreOffice 3.3.0 estable realizada el mismo día de su lanzamiento, Ryan Paul de Ars Technica escribió que «introduce un número de significativas nuevas características y hay mejoras en las aplicaciones incluidas. Las nuevas características incluidas en LibreOffice 3.3 mejoran el conjunto de características, la usabilidad, y la interoperabilidad con otros formatos de suites de oficina. Por ejemplo, tiene soporte mejorado para importar documentos provenientes de Lotus Word Pro y Microsoft Works. Otra nueva característica clave es la habilidad para importar y editar gráficos en formato SVG en LibreOffice Draw». Versión 3.4 La primera beta de LibreOffice 3.4 fue publicada el 15 de abril de 2011. La primera versión estable fue la 3.4.0, publicada el 3 de junio de 2011. Actualmente se encuentra en la versión 3.4.5, lanzada el 16 de enero de 2012. Las nuevas características y mejoras de la versión 3.4 respecto a la versión 3.3 incluyen:


Mejora del uso de la memoria. Reducción adicional de la dependencia de código en Java dentro de LibreOffice.

Lista oficial de cambios y mejoras en versión 3.4

Versión 3.5

La

primera

beta

de

LibreOffice

3.5

fue

dada

a

conocer

el 18

de

diciembre de 2011. El 21 de diciembre de ese mismo año, fue anunciada por The Document Foundation en su blog, la primera Bug Hunting Session (caza de errores) de LibreOffice 3.5 para el 28 y 29 del mismo mes, en la cual fueron encontrados más de 70 errores, o bugs. Debido al éxito de esta primera sesión, The Document Foundation anuncia la segunda Bug Hunting Session para el 21 y 22 de enero de 2012, donde fue puesta a prueba la primera release candidate. La última versión disponible es la 3.5 release candidate 3, publicada el 4 de febrero de 2012.

I.

OPEN STACK

OpenStack es un proyecto liderado por la empresa Rackspace, que ha decidido liberar el código de sus servicios Cloud Files y Cloud Servers bajo una licencia Apache 2.0. Este código forma la piedra angular de OpenStack, ofreciendo la posibilidad a usuarios o empresas de crear sus propios servicios de cloud computing. La NASA, que también participa en el proyecto, colabora con Nova, base de su plataforma NEBULA, ambos servicios están desarrollados utilizando Python. Como se ha comentado, OpenStack ofrecerá dos servicios: OpenStack

Compute permite gestionar el despliegue y ejecución de aplicaciones a través de múltiples servidores. La tecnología Nova, se basa en el protocolo de mensajeria AMQP y es el sistema utilizado en la NASA para proveer sistemas de virtualización bajo demanda. OpenStack Object Storage permite gestionar el almacenamiento de datos en varios servidores que trabajen de manera conjunta en clústers, para conseguir un almacenamiento masivo de objetos estáticos, de manera supérflua y fiable. El software de OpenStack es el responsable de garantizar la replicación de los datos y la integridad a través de todo el clúster, permitiendo añadir nuevos nodos y configurarlos de manera automática. Aunque el código en el que se basan los servicios comentados lleva siendo utilizado durante bastante tiempo, se espera que las aportaciones de la comunidad open source mejoren su funcionamiento. Lasprimeras versiones estables de

Compute y Object Storage se liberarán a mediados de octubre y septiembre, respectivamente. Detrás del proyecto OpenStack se encuentran empresas como Dell, Citrix, Intel o como ya se ha comentado, la agencia espacial estadunidense. El objetivo final del proyecto es facilitar un sistema de cloud computing de código abierto y fácilmente adaptable a sistemas hardware de bajo coste, facilitando su implantación en empresas de todos los niveles.

II.

NGINX

Nginx ("engine x") es un servidor HTTP y proxy inverso de alto rendimiento, y un servidor proxy para IMAP/POP3/SMTP. Nginx fue desarrollado por Igor Sysoev para Rambler.ru, el segundo sitio web más visitado de Rusia, donde ha estado funcionando en producción más de dos años y medio. Igor ha lanzado el código fuente bajo una licencia estilo BSD. Aunque aún se encuentra en una etapa beta, Nginx es conocido por su estabilidad, gran conjunto de características, configuración simple, y bajo consumo de recursos. Ya que la mayoría de la documentación está en Ruso, esta wiki está para ayudar a los castellano-parlantes a instalar, configurar, e intercambiar trucos sobre Nginx. La mayoría de la documentación está derivada del trabajo de [[MailTo(al-nginx AT none DOT at,Aleksandar Lazic). Versiones de Nginx Existen 3 versiones del programa: Estable(Stable), de Desarrollo(Development), de Legado(Legacy). La versión Estable es la recomendada para utilización general. La versión de Desarrollo es la versión que contiene las nuevas funciones y en la que los errores del programa son eliminados primero, pero también en la que hay mayor probabilidad de que aparezcan nuevos errores. La versión de Legado es la versión que fue Estable hasta que la nueva versión aparece, se mantiene para eliminar problemas de seguridad mayormente.

III.

JQUERY

jQuery es una biblioteca de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web. Fue presentada el 14 de enero de 2006 en el BarCamp NYC. jQuery es software libre y de código abierto, posee un doble licenciamiento bajo la Licencia MIT y la Licencia Pública General de GNU v2, permitiendo su uso en proyectos libres y privativos. jQuery, al igual que otras bibliotecas, ofrece una serie de funcionalidades basadas en JavaScript que de otra manera requerirían de mucho más código, es decir, con las funciones propias de esta biblioteca se logran grandes resultados en menos tiempo y espacio. Las características son:
– –

Selección de elementos DOM. Interactividad y modificaciones del árbol DOM, incluyendo soporte para CSS 1-3 y un plugin básico de XPath.

– – – –
– – –

Eventos. Manipulación de la hoja de estilos CSS. Efectos y animaciones. Animaciones personalizadas. AJAX. Soporta extensiones. Utilidades varias como obtener información del navegador, operar con objetos y vectores, funciones como trim() (elimina los espacios en blanco del principio y final de una cadena de caracteres), etc.

Compatible con los navegadores Mozilla Firefox 2.0+, Internet Explorer 6+, Safari 3+, Opera 10.6+ y Google Chrome 8+.

I.

NODE.JS

Node.js es un entorno de programación en la capa del servidor basado en el lenguaje de programación Javascript, con E/S de datos en una arquitectura orientada a eventos, y basado en el motor Javascript V8. Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web.1 Fue creado por Ryan Dahl en el 2009, y su evolución está apadrinada por la empresa Joyent, que además tiene contratado a Dahl en plantilla. Node.js es similar en su propósito a Twisted de Python, Perl Object

Environment para Perl, libevent para C y EventMachine para Ruby. Al contrario que la mayoría de mucho código JavaScript, no se ejecuta en un navegador, sino en el lado del servidor. Node.js implementa algunas especificaciones deCommonJS. Node.js incluye un entorno REPL para depuración interactiva.

II.

PUPPET

Puppet es un sistema para automatizar las tareas administrativas de una red de ordenadores. Funciona bajo esquema cliente/servidor y es el método que tenemos para configurar y adaptar el servidor ldap delcentro, el servidor principal (nfs) y lo servidores de terminales de las aulas. El método de funcionamiento es a base de reglas que son ejecutadas en el cliente cada vez que se conecta al servidor. El servidor principal de cada centro es a la vez cliente puppet (del servidor puppet2) y servidor puppet de los servidores de terminales de cada aula. Actualmente, el servidor principal se conecta cada 3 horas a puppet2, de esta forma sincroniza los archivos fundamentales de configuración y otros aspectos importantes de funcionamiento como el listado de paquetes instalados. De la misma forma, puppet2 envía archivos de configuración importantes al servidor principal para que éste a su vez los utilice para enviarlos a los servidores de terminales, así como algunas reglas que se ejecutarán en dichos servidores.

III.

LINUX

GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a Unix denominado Linux, que es usado con herramientas de sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU, en inglés: General Public License) y otra serie de licencias libres. A pesar de que Linux es, en sentido estricto, el sistema operativo, parte fundamental de la interacción entre el núcleo y el usuario (o los programas de aplicación) se maneja usualmente con las herramientas del proyecto GNU o de otros proyectos como GNOME. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos. Para más información consulte la sección "Denominación GNU/Linux" o el artículo "Controversia por la denominación GNU/Linux". A las variantes de esta unión de programas y tecnologías, a las que se les adicionan diversos programas de aplicación de propósitos específicos o generales se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores y supercomputadoras, donde tiene la cuota más importante del mercado. Según un informe de IDC, GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo,4 otro informe le da una cuota de mercado de 89% en los

500 mayores supercomputadores. Con menor cuota de mercado el sistema GNU/Linux también es usado en el segmento de las computadoras de escritorio, portátiles, computadoras de bolsillo, teléfonos móviles, sistemas embebidos, videoconsolas y otros dispositivos.

IV.

BIBLIOGRAFIA

Cosaslibre. Linux y Software Libre en Colombia. http://www.linux-es.org/ AgeValed. Introducción a Apache Cassandra. http://www.agevaled.com/2010/12/31/introduccion-a-apache-cassandra/ Rodriguez, Nacho. Software libre: los 10 más importantes de 2011. http://www.genbetadev.com/software-libre-y-licencias/software-libre-los-10-masimportantes-de-2011 Anónimo. Node.js v0.6.10 Manual & Documentation. http://nodejs.org/docs/latest/api/index.html DryIcons. Nginxes. http://wiki.nginx.org/NginxEs