Software:
- Es el conjunto de programas, procedimientos y documentos relacionados con el sistema hardware.
- Es la herramienta de que se vale el usuario para obtener el resultado esperado de un procesamiento de datos.
Programa: es un conjunto de instrucciones lógicas que tienen la finalidad de llevar a cabo una tarea especifica
Programa de computación:
- Es un conjunto de instrucciones detalladas que le dirán a la computadora que hacer, paso a paso.
- Es una expresión de un conjunto de instrucciones en cualquier lenguaje, apto para lograr que una computadora realice un trabajo.
Código Fuente: también denominado programa fuente
- Es un texto escrito en un lenguaje de programación para crear el programa. Es la forma del programa legible por el programador.
- Es un texto que describe lo que hace el programa, y que una vez pasado por un proceso llamado compilación (traducción de lenguaje fuente a lenguaje maquina) genera el código ejecutable, el programa que usamos.
- Es el conjunto completo de instrucciones y archivos originales y de soporte, creados y/o modificados por el programador, destinado a producir el programa ejecutable a partir de ellos.
Licencia:
- Es la forma en que un autor permite el uso de su creación por otras personas, de la manera que el cree aceptable.
- Es el instrumento que regula las maneras en que el usuario puede utilizar el software.
Copyright: es el derecho legal de un autor que obtiene por el resultado creativo de un trabajo original. Es una forma de protección garantizada por la ley.
Usuario: es aquella persona que emplea el software
1) De acuerdo a su costo:
- De costo cero: también conocido como software gratis o gratuito. Es aquel software cuyo costo de adquisición es nulo, es decir, no hace falta efectuar un desembolso de dinero para poder usarlo.
- De costo mayor a cero: también se conoce como software "comercial o de pago". Es el software desarrollado por una entidad que tiene la intención de hacer dinero con su uso.
2) De acuerdo a la apertura de su código fuente:
- De código fuente abierto: también llamado "de fuente abierta" u "open source". Es aquel software que permite tener acceso a su código fuente a través de cualquier medio (ya sea acompañado con el programa ejecutable, a través de Internet, a través del abono de una suma de dinero, etc.)
- De código fuente cerrado: también llamado "software cerrado". Es el software que no tiene disponible su código fuente disponible por ningún medio, ni siquiera pagando. Generalmente tiene esta característica cuando su creador desea proteger su propiedad intelectual.
3) De acuerdo a su protección:
- De dominio publico: es el software que no esta protegido por ningún tipo de licencia. Cualquiera puede tomarlo y luego de modificarlo, hacerlo propio.
- Protegido por licencias: es el tipo de software protegido con una licencia de uso. Dentro de este grupo tenemos:
b.1) Protegido con copyright: es decir, con derechos de autor (o de copia). El usuario no puede adquirirlo para usarlo y luego vender copias (salvo con la autorización de su creador).
b.2) Protegido con copyleft: es aquel cuyos términos de distribución no permiten a los redistribuidores agregar ninguna restricción adicional. Quiere decir que cada copia del software, aun modificada, sigue siendo como era antes.
4) De acuerdo a su "legalidad":
- Legal: es aquel software que se posee o circula sin contravenir ninguna norma. Por ejemplo, si tengo un software con su respectiva licencia original y con su certificado de autenticidad, o si lo tengo instalado en una sola computadora (porque la licencia solo me permite hacer eso).
- Ilegal: es el software que se posee o circula violando una norma determinada. Por ejemplo: tengo licencia para usarlo en una sola computadora pero lo instalo en mas de una, no tengo la licencia pero lo puedo utilizar mediante artificios (cracks, patchs, loaders, key generators, números de serie duplicados, etc)
5) De acuerdo a su "filosofía":
- Propietario: es aquel software que refleja el hecho de que su propiedad absoluta permanece en manos de quien tiene sus derechos y no del usuario, quien únicamente puede utilizarlo bajo ciertas condiciones. Su uso, redistribución y/o modificación están prohibidos o restringidos de modo tal que no es posible llevarlos a cabo. Es decir, este tipo de software le da al usuario derechos limitados sobre su funcionamiento, cuyo alcance establece el autor o quien posea ese derecho. Por ejemplo, ese derecho puede ser el de ejecutar el programa "tal como es" en una determinada computadora.
- Libre: es el tipo de software que le da al usuario la libertad de usarlo, estudiarlo, modificarlo, mejorarlo, adaptarlo y redistribuirlo, con la única restricción de no agregar ninguna restricción adicional al software modificado, mejorado, adaptado o redistribuido. Vale aclarar que debe permitir el acceso al código fuente, debido a que ello es una condición imprescindible para ejercer las libertades de estudiarlo, modificarlo, mejorarlo y adaptarlo.
El Software Libre es un tipo particular de software que le permite al usuario el ejercicio de cuatro libertades básicas:
- Ejecutarlo con cualquier propósito
- Estudiar como funciona y adaptarlo a sus necesidades
- Distribuir copias
- Mejorarlo, y liberar esas mejoras al publico
Con la única restricción del copyleft (o sea, cualquiera que redistribuya el software, con o sin cambios, debe dar las mismas libertades que antes), y con el requisito de permitir el acceso al código fuente (imprescindible para ejercer las libertades 1 y 3)
Ubicación del Software Libre en las distintas clasificaciones
- De acuerdo al costo de adquisición: el Software Libre puede ser de las dos clases, es decir, de costo cero o de costo mayor que cero. Lo que lo diferencia del Software Propietario es que su costo es independiente del numero de computadoras que se poseen. Por ejemplo, en el caso del Sistema Operativo Microsoft Windows 3.1/95/98/Me/NT/2000/XP por cada computadora en que lo instale debo pagar una licencia. En cambio, si utilizo en Sistema Operativo GNU/Linux (en cualquiera de sus distribuciones, como Red Hat, Mandrake, Debian, Ututo) debo pagar una sola licencia (no obstante, algunas licencias no tienes costo).
- De acuerdo a la apertura del código fuente: el Software Libre siempre es "open source", es decir, de código fuente abierto, ya que dijimos que el acceso al código fuente es necesario para el ejercicio de las libertades 1 y 3 arriba descriptas. El ser "open source" implica una serie de ventajas que serán descriptas en la sección "Ventajas del Software Libre".
- De acuerdo a su protección: el Software Libre siempre esta protegido con licencias, y mas específicamente, con licencias de copyleft. ¿Por que no de dominio publico? Porque de ese modo cualquiera puede adueñarse de el, por ejemplo, adquiere un Software Libre, lo modifica, lo compila y lo distribuye con código cerrado. ¿Por que no con Copyright? Porque de esa manera alguien le puede agregar alguna restricción, por lo tanto no va a seguir siendo Software Libre.
- De acuerdo a su legalidad: el Software Libre siempre es legal, porque al usarlo, estudiarlo, modificarlo, adaptarlo y/o mejorarlo no estoy violando ninguna norma, ya que de por si este tipo de software me permite hacerlo, con la única salvedad de no poder agregarle ninguna restricción adicional cuando lo transfiera a otra persona.
Explicación de las libertades básicas del Software Libre
Libertad Cero: "usar el programa con cualquier propósito". Es decir, el ejercicio de esta libertad implica que lo podemos utilizar con cualquier fin, ya sea educativo, cultural, comercial, político, social, etc. Esta libertad deriva de que hay ciertas licencias que restringen el uso del software a un determinado propósito, o que prohíben su uso para determinadas actividades.
Libertad Uno: "Estudiar como funciona el programa, y adaptarlo a sus necesidades". Significa que podemos estudiar su funcionamiento (al tener acceso al código fuente) lo que nos va a permitir, entre otras cosas: descubrir funciones ocultas, averiguar como realiza determinada tarea, descubrir que otras posibilidades tiene, que es lo que le falta para hacer algo, etc. El adaptar el programa a mis necesidades implica que puedo suprimirle partes que no me interesan, agregarle partes que considero importantes, copiarle una parte que realiza una tarea y adicionarla a otro programa, etc.
Libertad Dos: "Distribuir copias". Quiere decir que soy libre de redistribuir el programa, ya sea gratis o con algún costo, ya sea por email, FTP o en CD, ya sea a una persona o a varias, ya sea a un vecino o a una persona que vive en otro país, etc.
Libertad Tres: "Mejorar el programa, y liberar las mejoras al publico". Tengo la libertad de hacer mejor el programa, o sea que puedo: hacer menores los requerimientos de hardware para funcionar, que tenga mayores prestaciones, que ocupe menos espacio, que tenga menos errores, etc. El poder liberar las mejoras al publico quiere decir que si yo le realizo una mejora que permita un requerimiento menor de hardware, o que haga que ocupe menos espacio, soy libre de poder redistribuir ese programa mejorado, o simplemente proponer la mejora en un lugar publico (un foro de noticias, una lista de correo, un sitio Web, un FTP, un canal de Chat).
- Software regalado: o de costo cero, pero sin el código fuente. Es el que normalmente viene en los CD’s de revistas de computación o que se consigue en sitios freeware.
- Software con el código fuente: esto quiere expresar que el software se provee con su código fuente, pero no necesariamente brinda las libertades del Software Libre.
- Software de dominio publico: este tipo de software no tienen licencias de uso, por lo tanto corre el peligro de dejar de serlo si alguien lo utiliza con el fin de apropiárselo.
- Escrutinio Publico: Al ser muchos las personas que tienen acceso al código fuente, eso lleva a un proceso de corrección de errores muy dinámico, no hace falta esperar que el proveedor del software saque una nueva versión.
- Independencia del proveedor:
- Al disponer del código fuente, cualquier persona puede continuar ofreciendo soporte, desarrollo u otro tipo de servicios para el software.
- No estamos supeditados a las condiciones del mercado de nuestro proveedor, es decir que si este se va del mercado porque no le conviene y discontinua el soporte, nosotros podemos contratar a otra persona.
- Manejo de la Lengua:
- Traducción: cualquier persona capacitada puede traducir y adaptar un software libre a cualquier lengua.
- Corrección ortográfica y gramatical: una vez traducido el software libre puede presentar errores de este tipo, los cuales pueden ser subsanados con mayor rapidez por una persona capacitada.
- Mayor seguridad y privacidad:
- Los sistemas de almacenamiento y recuperación de la información son públicos. Cualquier persona puede ver y entender como se almacenan los datos en un determinado formato o sistema.
- Existe una mayor dificultad para introducir código malicioso como ser: espía (p/ej. capturador de teclas), de control remoto (p/ej. Troyano), de entrada al sistema (p/ej. puerta trasera), etc.
- Garantía de continuidad: el software libre puede seguir siendo usado aun después de que haya desaparecido la persona que lo elaboro, dado que cualquier técnico informatico puede continuar desarrollándolo, mejorándolo o adaptándolo.
- Ahorro en costos: en cuanto a este tópico debemos distinguir cuatro grandes costos: de adquisición, de implantación (este a su vez se compone de costos de migración y de instalación), de soporte o mantenimiento, y de interoperabilidad. El software libre principalmente disminuye el costo de adquisición ya que al otorgar la libertad de distribuir copias la puedo ejercer con la compra de una sola licencia y no con tantas como computadoras posea (como sucede en la mayoría de los casos de software propietario). Cabe aclarar que también hay una disminución significativa en el costo de soporte, no ocurriendo lo mismo con los costos de implantación y de interoperatividad.
Desventajas del software libre
Si observamos la situación actual, es decir la existencia mayoritaria de Software Propietario, tenemos:
- Dificultad en el intercambio de archivos: esto se da mayormente en los documentos de texto (generalmente creados con Microsoft Word), ya que si los queremos abrir con un Software Libre (p/ ej. Open Office o LaTeX) nos da error o se pierden datos. Pero esta claro que si Microsoft Word creara sus documentos con un formato abierto (o publico) esto no sucedería.
- Mayores costos de implantación e interoperabilidad: dado que el software constituye "algo nuevo", ello supone afrontar un costo de aprendizaje, de instalación, de migración, de interoperabilidad, etc., cuya cuantía puede verse disminuida por: mayor facilidad en las instalaciones y/o en el uso, uso de emuladores (p/ej. Si el usuario utiliza Microsoft Windows, la solución seria instalar alguna distribución de GNU/Linux y luego un emulador de Windows, como Wine, VMWare. Terminal X, Win4Lin). Vale aclarar que el costo de migración esta referido al software, ya que en lo que hace a Hardware generalmente el Software Libre no posee mayores requerimientos que el Software Propietario.
Decisiones que afecta el uso del Software Libre
- Libertad de elección:
- Respecto al software: se obtiene la independencia del soporte de versiones. Es de publico conocimiento que Microsoft ha dejado de ofrecer soporte de desarrollo a Windows 95 y Windows 98, para dedicarse de lleno a Windows Me, 2000, XP y .NET.
- Respecto al Hardware: al tener requisitos de funcionamiento no tan elevados, el usuario no esta atado a la compra de una determinada computadora, o procesador, o disco rígido, o cantidad de memoria RAM, etc. Esa compra que haga el usuario solo depende de la velocidad con la que desee realizar sus tareas, no de si el software va a funcionar o no en esas condiciones.
- Respecto al soporte: al tener acceso al código fuente, cualquier persona idónea nos puede ofrecer soporte, no solo nuestro proveedor. En el software Propietario esto no sucede, ya que ninguna persona ajena al proveedor conoce el funcionamiento interno del mismo.
- Respecto a la Formación o Capacitación: la puede ofrecer cualquiera, no solo el proveedor.
- Protección de la inversión:
- En Software: Los desarrollos en software siempre son aprovechables para otros desarrollos, si se licencian de manera "libre". Además, el fomento de la comunidad de usuarios supone un potencial extraordinario en cuanto a la generación de nuevo y mejor software.
- En Hardware: no se necesita reemplazar el hardware constantemente, porque no se necesita cambiar el software si este ya no funciona como se quiere.
- En Soporte: la experiencia ganada por los técnicos propios puede extenderse a otro tipo de software.
- En Formación: como no existen artificios para ocultar información, puede elegirse a otra persona que brinde capacitación con un precio mas accesible.
- Relación rendimiento/ Precio:
- Costo del Software: el software libre tiene la ventaja de no obligar a pagar una licencia por cada computadora en que se lo instale.
- Costo del Hardware: hay cierto Software Propietario que tiene requerimientos excesivos de hardware para funcionar. Es decir, no hay relación razonable entre la tarea que realiza y el hardware que requiere.
- Costo de Soporte: su costo es menor porque cualquiera lo puede ofrecer, si bien es cierto que no tenemos una calidad garantizada.
- Costo de Formación: su costo es menor, al no estar monopolizada. Aquí cabe el mismo comentario que el realizado con respecto al costo de soporte.
- Comunicación e interoperabilidad de sistemas: el Software Libre garantiza el respeto a los estándares en los formatos, protocolos e interfases. En cambio el Software Propietario generalmente los cambia, para obligar al usuario a cambiar de versión. Pero un costo importante en esta parte es el de adaptar los estándares cerrados a estándares abiertos (por ejemplo, XLS a XML, DOC a Tex, etc.)
Maneras de obtener software libre
- A través de copias en CD: los que a su vez se pueden conseguir en revistas especializadas, o comprándolos en una casa de computación, o pidiéndoselos a un amigo, pariente, etc.
- A través de Internet: a su vez, por medio de FTP, sitios Web, canales de chat, foros de noticias, programas de intercambio de archivos, etc.