jueves, 23 de agosto de 2012

Software Libre





La Definición de Software Libre
La definición de software libre estipula los criterios que se tienen que cumplir para que un programa sea considerado libre. De vez en cuando modificamos esta definición para clarificarla o para resolver problemas sobre cuestiones delicadas.

«Software libre» significa que el software respeta la libertad de los usuarios y la comunidad. En términos generales, los usuarios tienen la libertad de copiar, distribuir, estudiar, modificar y mejorar el software. Con estas libertades, los usuarios (tanto individualmente como en forma colectiva) controlan el programa y lo que hace.
Cuando los usuarios no controlan el programa, el programa controla a los usuarios. El programador controla el programa y, a través del programa, controla a los usuarios. Un programa que no es libre, llamado «privativo», es por lo tanto un instrumento de poder injusto.
Por tanto, el «software libre» es una cuestión de libertad, no de precio. Para entender el concepto, piense en «libre» como en «libre expresión», no como en «barra libre».
Un programa es software libre si los usuarios tienen las cuatro libertades esenciales:
·         La libertad de ejecutar el programa para cualquier propósito (libertad 0).
·    La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
·         La libertad de redistribuir copias para ayudar a su prójimo (libertad 2).
·        La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3). Esto le permite ofrecer a toda la comunidad la oportunidad de beneficiarse de las modificaciones. El acceso al código fuente es una condición necesaria para ello.



Para que la libertad 1 y 3 de realizar cambios y publicar las versiones modificadas tengan sentido, usted debe tener acceso al código fuente del programa. Por consiguiente, el acceso al código fuente es una condición necesaria para el software libre. El «código fuente» ofuscado no es código fuente real, y no cuenta como código fuente.
La libertad 1 incluye la libertad de usar su versión modificada en lugar de la original. Si el programa se entrega con un producto diseñado para ejecutar versiones modificadas de terceros, pero rechaza ejecutar las suyas, una práctica conocida como «tivoización» [«tivoization»] o «arranque seguro» [«lockdown»] (en la terminología perversa de los que la practican); la libertad 1 se convierte más en una ficción teórica que en una libertad práctica. Esto no es suficiente. En otras palabras, estos binarios no son software libre, incluso si se compilaron desde un código fuente que es libre.
Una manera importante de modificar el programa es agregándole subrutinas y módulos libres ya disponibles. Si la licencia del programa específica que no se pueden añadir módulos que ya existen y que están bajo una licencia apropiada, por ejemplo si requiere que usted sea el titular de los derechos de autor del código que desea añadir, entonces se trata de una licencia demasiado restrictiva como para considerarla libre.
La libertad 3 incluye la libertad de publicar sus versiones modificadas como software libre. Una licencia libre también puede permitir otras formas de publicarlas; en otras palabras, no tiene que ser una licencia de copyleft ( El copyleft es un metodogeneral para hacer un programa / u otro tipo de trabajo) libre, exigiendo que todas las versiones modificadas y extendidas del mismo sean también libres). No obstante, una licencia que requiera que las versiones modificadas no sean libres, no se puede considerar libre.
Para que estas libertades sean reales, deben ser permanentes e irrevocables siempre que usted no cometa ningún error; si el programador del software tiene el poder de revocar la licencia, o de añadir restricciones a las condiciones de uso en forma retroactiva, sin que haya habido ninguna acción de parte del usuario que lo justifique, el software no es libre.


¡No confundir con Freeware o Software gratis! En ocasiones, cuando se escucha Software Libre se piensa en programas gratis, lo que es falso. A veces se debe pagar y se obtiene el programa y el código fuente; en el freeware, es solo software gratuito pero no libre, en su mayoría es software propietario y solo brindan el programa o aplicación final, de modo que usar sin pagar pero no se puede modificar (muy pocos programas ofrecen el código fuente a pesar de no ser software libre). Sus licencias son diferentes, con restricciones incompatibles con las licencias de los programas de software libre.



Cómo puede ser libre el Software

Para que podamos estudiar, usar, modificar y compartir el software, es necesario proteger el código con licencias que brinden libertades a las personas usuarias y a la vez, protejan el derecho de autor de las personas que elaboran el programa. Para eso, se han diseñado licencias especiales dentro del marco legal existente, pero distintas del Copyright y el "todos los derechos reservados".


Copyright

Copyleft

Este término se refiere a un marco legal que principalmente busca proteger los derechos de reproducción de una obra, brindándole al titular de esos derechos (en algunos casos el autor) el control sobre el uso que se le da a su creación.

Mediante el modelo “copyright” se puede restringir el uso de cierto producto, su copia, modificación, distribución y publicación. En este modelo el titular o autor no cede ningún derecho al usuario.

El Copyright es un concepto del derecho anglosajón. En los países latinoamericanos, en general se usa el concepto de derecho de autor, que no es equivalente al de Copyright.

En la misma lógica que el Copyright restringe la posibilidad de compartir, el Copyleft invita a hacerlo siempre y cuando, la persona que reciba el material lo siga compartiendo de la misma manera en que lo consiguió.

Esto quiere decir que todas las modificaciones y versiones extendidas de un programa serán libres, si esa fue la voluntad de quienes colocaron una licencia de Copyleft.

El Copyleft puede aplicarse al ámbito de la informática (programación) pero también puede abarcar toda clase de autores y trabajos como: documentos, producciones audiovisuales, música, artes visuales, edición entre muchos otros.



Un ejemplo de licencia Copyleft es la GNU GPL, utilizada por más del 60% del software libre existente. La GNU General Public License es la licencia general de GNU creada por el Proyecto GNU. Su propósito primordial es proteger la distribución, uso y 5 de 19 modificación libre de software , protegiendo así que nadie puede apropiarse o restringir las libertades que el autor le ha brindado a los usuarios.

También existen licencias Copyleft para trabajos distintos al software, como la licencia Creative Commons CCBYSA que únicamente solicita atribución al autor o los autores de la obra y pide que se comparta de la misma manera, sin restringir que se haga un uso comercial de la obra y permitiendo obras derivadas de la misma.



Creative Commons
Creative Commons Internacional es una organización dedicada a facilitar diversas herramientas legales gratuitas, sin fines de lucro, dichas herramientas se basan en licencias fáciles de usar.

Esta organización tiene como objetivo principal la construcción colectiva, además facilitar el intercambio del trabajo cultural de las personas, aumentando la creatividad tomando en cuenta diferentes ámbitos como: cultural, educacional y de contenidos científicos; en lo común, siendo a su vez consistente con las leyes de propiedad intelectual.



Las herramientas de CC proporcionan a todas las personas una vía simple y estandarizada para conceder permisos de copyright a su trabajo creativo, las licencias permiten a las personas desde creadores creativos hasta instituciones y compañías de gran nivel, cambiar de forma sencilla los términos de copyright, de esta manera pasar de todos los derechos reservados a algunos derechos reservados, asimismo mantener los derechos sobre sus obras aparte de que pueden permitir ciertos usos sobre su trabajo.


¿Quiénes hacen el software libre?

Cada día, miles de personas se dedican a desarrollar software libre y a contribuir con los proyectos, sea traduciendo, documentando, reportando errores y corrigiéndolos, haciendo actividades de difusión y hasta compartiendo un disco compacto con alguna copia de software.

Algunas de estas personas desarrollan este software como parte de su trabajo remunerado, en alguna de las muchas empresas de tecnología que han apostado por el software libre como su modelo. En otros casos, las personas trabajan en proyectos colaborativos, donde algunas son pagadas por su trabajo y muchas otras aportan en su tiempo libre. Estos proyectos pueden tener relación con las empresas antes mencionadas, pero también hay algunos 100% independientes, como el caso del proyecto Debian o LibreOffice.

Es importante destacar entonces, que aunque el Software Libre se fundamenta en principios éticos de solidaridad, libertad y conocimiento abierto, el modelo permite que sea sostenible económicamente también y que cada día son más las empresas, instituciones y organizaciones que se adentran en el Software Libre, sea para implementarlo como solución tecnológica a sus necesidades, o como modelo de negocios en auge.

Empresas que         desarrollan Software Libre

Empresas que usan Software Libre

Google
Hewlett Packard
IBM
Nokia
Motorola
CERN
Sony
Canonical
Novel
Oracle
RedHat
Development Seeds
Status.net
Mozilla Foundation
Amazon.com
Boeing
DreamWorks
Daimler (Mercedes
Benz)
BMW
Audi
Intel
Yahoo



Soluciones que ofrece el Software Libre y de Código Abierto





 Dentro de las necesidades básicas de las organizaciones con respecto al software, podemos encontrar:

Software base: Sistemas operativos (para computadoras clientes y servidores), Servicios de comunicación (redes, correos, mensajería, telefonía), Servicios de data (bases de datos, centralización de archivos)

Software de aplicación: Ofimática Gestión de contenidos Clientes de comunicaciones (chat,
correo, navegadores), Graficadores, herramientas para desarrollo de software, herramientas de CAD, multimedia

Software de gestión: Inteligencia de negocios ,ERP (Planificación de Recursos de la Empresa),POS (Software para punto de Venta), Herramientas colaborativas CRM (Gestión de la Relación con Clientes)


Implementación de Software Libre en Sector Público

El cambio de software privativo a software libre se ha dado gracias a distintos movimientos o procesos surgidos en cada país. Estos movimientos se han encargado de mostrar las grandes ventajas de un cambio de esta índole. El ahorro económico es una de las principales causas, porque es considerable el monto de ahorro, pero el hecho de tener libertad para utilizar cualquier tecnología, modificarla si es necesario, brinda a los usuarios tranquilidad, permite desarrollar el conocimiento de la población y brinda seguridad en el manejo de datos e información.

El uso de software libre en Colombia se da en los principales institutos del gobierno, en la presidencia de la república, en importantes universidades estatales.


Aplicación de Software Libre en la educación

Cuando hablamos de software libre en la educación, nos referimos tanto a recursos educativos abiertos (REA) y a distribuciones libres de software, como a una ética del construir conocimiento colectivamente para compartirlo.
Los Recursos Educativos Abiertos, se pueden comprender clasificándolos en tres grandes grupos:

Contenidos Educativos: publicaciones periódicas o materiales didácticos que facilitan el aprendizaje de otras personas. Pueden ser libros, materiales multimedia, cursos completos, compilaciones de revistas o artículos.

Herramientas: Software para mejorar los programas educativos. Estas herramientas sirven tanto para la creación de contenido como para gestionar comunidades de aprendizaje en línea.


Recursos de Implementación: Principios de adaptación de contenido, técnicas y materiales para brindar acceso al conocimiento. Las licencias Creative Commons (bienes creativos comunes), Science Commons (bienes científicos comunes) y los formatos abiertos son herramientas también para los recursos educativos abiertos.

Algunas experiencias de implementación de la ética de la cultura libre a la educación







Gleducar.org
Gleducar es una comunidad educativa libre donde apoyan la idea de compartir conocimiento. A través de su página web(http://gleducar.org) se dan a conocer algunas actividades relacionadas con la educación y software libre en general.
En esta comunidad, utilizan y promueven las tecnologías libres (herramientas tecnológicas que puedan emplearse sin ninguna restricción y ser desarrolladas conjuntamente por la comunidad libre, como serían el código abierto, hardware y electrónica libre, formatos abiertos y protocolos libres), dentro de un marco de Innovación Pedagógica, que se refiere a cambiar el modelo de aprendizaje desde algunos puntos específicos como la teoría del aprendizaje constructivista, la pedagogía crítica y la  Educación  Popular.


Qimo, Edubuntu,
Skolelinux, Tux
Paint
Distribuciones de sistemas operativos GNU/Linux diseñados especialmente para niños y niñas, así como herramientas de software para el aprendizaje de las matemáticas a través del juego, elaborar dibujos usando la computadora, entre otros.


EDUSOL
Encuentro de Educación, Cultura y Software Libres, realizado anualmente en línea, con participación de docentes, especialistas y activistas de toda América Latina y España.


Celestia
Programa de simulación de un planetario, de fácil comprensión.
Se estimula la construcción de conocimiento acerca del sistema solar y es ideal para los trabajos de educación científica que se  les proporciona a los niños en las escuelas


Web grafía consultada:

http://es.wikipedia.org/wiki/Código_fuente Software de Código Abierto 

martes, 21 de agosto de 2012

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) y otra serie de licencias libres.



A pesar de que Linux (núcleo) 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  le recomiendo visitar la página: http://www.linux-es.org/


Linux puede funcionar tanto en entorno gráfico como en modo consola. La consola es común en distribuciones para servidores, mientras que la interfaz gráfica está orientada al usuario final tanto de hogar como empresarial. Un escritorio es un conjunto de elementos conformado por ventanas, iconos y similares que facilitan la utilización del computador. Los escritorios más populares en Linux, en orden alfabético son GNOME, KDE, LXDE, Xfce y Xf.



Jerarquía de directorios 

Jerarquía de directorios en Linux.



En Linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. Este sistema de ficheros y directorios, tiene como base al carácter (/); ese mismo carácter sirve también para demarcar los directorios, como por ejemplo: "/home/usuario/imagen.jpg". El directorio especificado por una ruta consistente sólo por este carácter contiene toda la jerarquía de los directorios que constituyen todo el sistema. A este directorio suele llamárselo directorio raíz que maneja todas las carpetas. En Linux, a los discos no se les asigna una letra como en Windows (p.e. "C:"), sino que se les asigna un directorio de la jerarquía del directorio raíz (/), como por ejemplo: "/media/floppy". Es práctica común en el sistema de ficheros de Linux, utilizar varias sub-jerarquías de directorios, según las diferentes funciones y estilos de utilización de los archivos. Estos directorios pueden clasificarse en:


Estáticos: Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)


Dinámicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor aún, deberían ser montados en una partición aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra partición del mismo disco, independiente de la partición principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)


Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios.


Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock...)



Kernel panic.

En Linux, un “panic” es un error insalvable del sistema detectado por el núcleo en oposición a los errores similares detectados en el código del espacio de usuario. Es posible para el código del núcleo indicar estas condiciones mediante una llamada a la función de pánico situada en el archivo header sys/system.h. Sin embargo, la mayoría de las alertas son el resultado de excepciones en el código del núcleo que el procesador no puede manejar, como referencias a direcciones de memorias inválidas. Generalmente esto es indicador de la existencia de un bug en algún lugar de la cadena de alerta. También pueden indicar un fallo en el hardware como un fallo de la RAM o errores en las funciones aritméticas en el procesador, o por un error en el software. En muchas ocasiones es posible reiniciar o apagar adecuadamente el núcleo mediante una combinación de teclas como ALT+SysRq+RSEIUB.


Lenguajes de programación

Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje Ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux. Sin embargo, Intel afirmó haber modificado su compilador C de forma que permitiera compilarlo correctamente.

Asimismo se usan muchos otros lenguajes en alguna forma, básicamente en la conexión con el proceso de construcción del núcleo (el método a través del cual las imágenes arrancables son creadas desde el código fuente). Estos incluyen a Perl, Python y varios lenguajes shell scripting. Algunos drivers también pueden ser escritos en C++, Fortran, u otros lenguajes, pero esto no es aconsejable. El sistema de construcción de Linux oficialmente solo soporta GCC como núcleo y compilador de controlador.

Linux y Software libre en Colombia




http://cosaslibres.com.co, Es un portal destinado a la divulgación de Linux, y sus distribuciones como Ubuntu, Red Hat, Mandriva, Debian, Slackware, LibreOffice y otros temas como computadores, sistemas , programación , software libre, Diseño Web , hosting y mucho más.
El objetivo de cosaslibres.com.co es entregar material útil a toda la comunidad interesada en el estudio de los computadores y el software libre, en especial el sistema operativo Linux y otras aplicaciones también libres.
Además cosaslibres.com.co busca que se popularice el uso de herramientas de código abierto y libre de licencias costosas que acarrean gastos innecesarios en las organizaciones, contando con herramientas de óptima calidad, donde el precio económico no es la principal ventaja, la principal ventaja es su excelente estabilidad y calidad, no le tema al cambio porque este cambio es para mejorar.







lunes, 20 de agosto de 2012

Richard Stallman





Richard Matthew Stallman (nacido en Manhattan, Nueva York, 16 de marzo de 1953), con frecuencia abreviado como "rms",1 es un programador estadounidense y fundador del movimiento por el software libre en el mundo.

Entre sus logros destacados como programador se incluye la realización del editor de texto GNU Emacs,2 el compilador GCC,3  y el depurador GDB,4 bajo la rúbrica del Proyecto GNU.

Sin embargo, es principalmente conocido por el establecimiento de un marco de referencia moral, politico y legall para el movimiento del software libre, como una alternativa al desarrollo y distribución del software no libre o privativo. Es también inventor del concepto de copyleft (aunque no del término), un método para licenciar software de tal forma que su uso y modificación permanezcan siempre libres y queden en la comunidad.

"rms",1 Richard Matthew Stallman

Emacs,2 es uneditor de texto con una gran cantidad de funciones, muy popular entre programadores y usuarios técnicos. Es parte del proyecto GNU, activamente desarrollado. Es la versión más popular de Emacs. El manual de GNU Emacs lo describe como "un editor extensible, personalizable, auto-documentado y de tiempo real."

GCC,3 Compiler Collection (colección de compiladores GNU) es un conjunto de compiladores creados por el proyecto  GNU . GCC es software libre y lo distribuye la FSF bajo la licencia GPL.

Estos compiladores se consideran estándar para los sistemas operativos derivados de UNIX, de código abierto y también de propietarios, como Mac OS X. GCC requiere el conjunto de aplicaciones conocido como binutilspara realizar tareas como identificar archivos objeto u obtener su tamaño para copiarlos, traducirlos o crear listas, enlazarlos, o quitarles símbolos innecesarios.

GDB,4 o GNU Debugger es el depurador estándar para el sistema operativo GNU. Es un depurador portable que se puede utilizar en varias plataformas Unix y funciona para varios lenguajes de programacion como C,C++ y Fortran. GDB fue escrito por Richard Stallman en 1988. GDB es software libre distribuido bajo la licencia GPL.

GDB ofrece la posibilidad de trazar y modificar la ejecución de un programa. El usuario puede controlar y alterar los valores de las variables internas del programa.

GDB no contiene su propia interfaz gráfica de usuario y por defecto se controla mediante una interfaz de Linea de comandos. Existen diversos front-ends que han sido diseñados para GDB, como Data Display Debugger, GDBtk/Insight y el «modo GUD» en Emacs.