Ir al contenido principal

Introducción al Software Libre - Recursos para Programadores


Imagen relacionada


Descargar: Introducción al Software Libre Español PDF

1. Introducción

"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."

"Si tú tienes una manzana y yo tengo una manzana y las intercambiamos, seguiremos
teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea y las
intercambiamos, cada uno de nosotros tendrá dos ideas."

- Atribuido a Bernard Shaw

¿Qué es el software libre? ¿Qué es y qué implicaciones tiene la licencia de un
programa libre? ¿Cómo se está desarrollando el software libre? ¿Cómo se financian
los proyectos de software libre y qué modelos de negocio relacionados
con ellos se están experimentando? ¿Qué motiva a los desarrolladores, especialmente
a los que son voluntarios, a involucrarse en proyectos de software
libre? ¿Cómo son estos desarrolladores? ¿Cómo se coordinan en sus proyectos
y cómo es el software que producen? En resumen, ¿cuál es el panorama general
del software libre? Éste es el tipo de preguntas que trataremos de responder
en este texto. Porque aunque el software libre está cada vez más presente en
los medios de comunicación y en las conversaciones de los profesionales de la
informática, y aunque incluso empieza a estar en boca de los ciudadanos en
general, aún es un desconocido para muchos. Y los que lo conocen muchas
veces no saben más que de algunos de sus aspectos, y desconocen completamente
otros.

Para empezar, en este capítulo vamos a presentar los aspectos específicos del
software libre, centrándonos fundamentalmente en explicar sus bases para los
que se aproximen al tema por primera vez y en motivar su importancia. Entre
estas bases nos detendremos en la definición del término (para saber de qué
vamos a hablar) y en las consecuencias principales del uso (y de la mera existencia)

del software libre.

1.1. El concepto de libertad en el software

Desde principios de los años setenta nos hemos acostumbrado a que quien comercializa
un programa pueda imponer (e imponga) las condiciones bajo las
que puede usarse. Puede, por ejemplo, prohibir que sea prestado a un tercero.
A pesar de que el software es el elemento tecnológico más flexible y adaptable
que tenemos, puede imponerse (y es común imponer) la imposibilidad de
adaptarlo a unas necesidades concretas, o de corregir sus errores, sin el permiso
explícito del productor, que normalmente se reserva en exclusiva estas posibilidades.
Pero ésta es sólo una de las posibilidades que ofrece la legislación
actual: el software libre, por el contrario, otorga las libertades que el software

privativo niega.

1.1.1. Definición

Así pues, el término software libre (o programas libres), tal como fue concebido
por Richard Stallman en su definición (Free Software Foundation, "Free software
definition" –http://www.gnu.org/philosophy/free-sw.html– [120]), hace
referencia a las libertades que puede ejercer quien lo recibe, concretamente
cuatro:

1) Libertad para ejecutar el programa en cualquier sitio, con cualquier propósito
y para siempre.
2) Libertad para estudiarlo y adaptarlo a nuestras necesidades. Esto exige el
acceso al código fuente.
3) Libertad de redistribución, de modo que se nos permita colaborar con vecinos
y amigos.
4) Libertad para mejorar el programa y publicar sus mejoras. Esto también
exige el código fuente.

El mecanismo que se utiliza para garantizar estas libertades, de acuerdo con la
legalidad vigente, es la distribución mediante una licencia determinada, como
veremos más adelante (capítulo 3). En ella el autor plasma su permiso para
que el receptor del programa pueda ejercer esas libertades, y también las restricciones
que pueda querer aplicar (como dar crédito a los autores originales
en caso de redistribución). Para que la licencia sea considerada libre, estas restricciones
no pueden ir en contra de las libertades mencionadas.
La ambigüedad de free

El término original en inglés para programas libres es free software. Sin embargo, free, además de 'libre', significa 'gratis', lo que genera gran confusión. Por ello a menudo en inglés se toman prestadas palabras españolas y se habla de libre software, en contraposición a gratis software, al igual que nosotros tomamos prestada la palabra software.

Así pues, las definiciones de software libre no hacen ninguna referencia a que
pueda conseguirse gratuitamente: el software libre y el software gratuito son
cosas bien distintas. Sin embargo, dicho esto, hay que explicar también que
debido a la tercera libertad, cualquiera puede redistribuir un programa sin pedir
contraprestación económica ni permiso, lo que hace prácticamente imposible
obtener grandes ganancias simplemente por la distribución de software
libre: cualquiera que lo haya obtenido puede a su vez redistribuirlo a precio

más bajo, o incluso gratis.

Disfruta de el contenido completo descargando: Introducción al Software Libre en Español (PDF).

Comentarios

Entradas más populares de este blog

Calculando el factorial de un número (ejemplo de función recursiva).

Hola, mi nombre es Antonio Alfonso Martínez y en el presente artículo me dispongo a explicar un sencillo método para calcular el factorial de un número haciendo uso del concepto de recursividad. Para empezar, diremos que el factorial de un número natural "n" es el resultado del producto de todos los números desde 1 hasta dicho número "n". Así, para efectuar el calculo del factorial de un número, vamos a emplear una sencilla función a la que daremos el nombre de "factorial". De modo, que, partiendo del hecho de que el factorial de 1 y 0 es 1, construiremos nuestra función (a la que daremos el nombre de "factorial") para realizar el calculo del factorial de 5: Lo que hace esta función, es tomar como argumento un número "n". de modo que si este es 0 o 1 ("if n==0 or n==1:") la función devolverá directamente como resultado el número 1 ("resultado=1"). Sin embargo si dicho número "n" es mayor que...

Sistema Hexadecimal - Sistema de numeración posicional

Sistema Hexadecimal El sistema hexadecimal es un sistema numérico que tiene como base el numero 16, y es una variante de los numero binarios El sistema hexadecimal es utilizado por nuestros ordenadores con el fin de abreviar valores de datos e instrucciones de memoria. Esta es una imagen que muestra el contenido de un archivo con exención 'dll' en un editor de texto, como el editor de texto no reconoce este tipo de archivo, nos lo muestra de esta manera: Como se puede apreciar, en vez de ver una gran cantidad de 0 y 1, vemos que hay grupos de 4 dígitos, y si observamos, vemos que son grupos de dígitos hexadecimales. El archivo cuentan con más de 48 mil lineas, por ello no se me es posible mostrarlo todo. Este es uno de los usos del sistema hexadecimal para abreviar grandes cantidades de 0 y 1. Ustedes mismos pueden hacer la prueba con una imagen o con cualquier otro tipo de texto. El sistema hexadecima, esta conformado por solo 16 dígitos. A continuación te lo...

Ejercicios de Programación en Java: Condicionales, Bucles, Tablas y Funciones

PRÓLOGO El libro Ejercicios de Programación en Java: Condicionales, Bucles, Tablas y Funciones nace como fruto de años de docencia en materias relacionadas: Algorítmica, Programación, Lenguaje C y Java, entre otros.  Con el paso del tiempo he constatado que aprender un lenguaje de programación es relativamente sencillo y sobre este tema existen muchos y muy buenos textos. Pero aprender a programar es algo totalmente distinto, que necesita de un mayor esfuerzo y abordar el problema desde otra perspectiva. Siempre utilizo la metáfora del pianista para explicar el tándem programar/lenguaje de programación: saber tocar las notas de un piano es relativamente fácil, tan solo debemos anotar en cada una de las teclas a qué nota musical corresponde. Esto sería similar a conocer un lenguaje de programación. Es muy sencillo utilizar un if o entender la mecánica de un while .  Volviendo al piano: una vez que dominamos la relación tecla/nota, un pianista debe aprender muchas ot...