Concepto de Software: El software es un ingrediente indispensable para el funcionamiento del computador. Está formado por una serie de instrucciones y datos, que permiten aprovechar todos los recursos que el computador tiene, de manera que pueda resolver gran cantidad de problemas. Un computador en si, es sólo un conglomerado de componentes electrónicos; el software le da vida al computador, haciendo que sus componentes funcionen de forma ordenada.
El software es un conjunto de instrucciones detalladas que controlan la operación de un sistema computacional.
Categorías de software libre y software que no es libre
Véase también el artículo Palabras y frases confusas que vale la pena evitar.
[Categorías de software]
Este diagrama, diseñado originalmente por Chao-Kuei y actualizado desde entonces por varias personas, explica las diferentes categorías de software. Está disponible en archivos de formato SVG (Scalable Vector Graphic) y XFig, bajo los términos de cualquiera de las siguientes licencias: GNU GPL v2 o posterior, GNU FDL v1.2 o posterior, o Creative Commons Attribution-Share Alike v2.0 o posterior.
Software libre
Software libre es aquel que se suministra con autorización para que cualquiera pueda usarlo, copiarlo y/o distribuirlo, ya sea con o sin modificaciones, gratuitamente o mediante pago. En particular, esto significa que el código fuente debe estar disponible. «Si no es fuente, no es software». Esta es una definición simplificada; véase también la definición completa.
Si un programa es libre, potencialmente puede ser incluido en un sistema operativo libre como GNU, o en versiones libres del sistema operativo GNU/Linux.
Hay muchas maneras diferentes de hacer que un programa sea libre: numerosas cuestiones de detalles que se pueden resolver de varias maneras sin renunciar a que el programa sea libre. Más abajo se describen algunas de las posibles variantes. Para obtener información sobre alguna licencia de software libre en particular, consulte el listado de licencias.
El software libre es una cuestión de libertad, no de precio. Pero las empresas de software privativo usan habitualmente el término «free software»[1] para referirse al precio. Algunas veces lo que quieren decir es que se puede obtener una copia de los binarios sin costo alguno, otras veces se refieren a que la copia está incluida en el ordenador que se va a comprar, y que se paga un solo precio por ambas cosas. De cualquier manera, no tiene nada que ver con lo que se entiende por software libre en el proyecto GNU.
Para evitar confusiones, cuando una compañía de software dice que su producto es software libre («free software»), se aconseja verificar siempre los términos de distribución para constatar que realmente se esté otorgando a los usuarios todas las libertades que el software libre implica. A veces el software realmente es libre, a veces no lo es.
Muchos idiomas tienen dos palabras diferentes para «libre», en el sentido de libertad, y «gratis» como gratuito. Por ejemplo, el francés dispone de los términos «libre» y «gratuit»[2] . Esto no ocurre en inglés, en dicho idioma existe la palabra «gratis» que se refiere sin ambigüedad al precio, pero no dispone de un adjetivo común que se refiera sin ambigüedad a la libertad. Por lo tanto, si usted habla otro idioma que no sea el inglés, le sugerimos que traduzca a su idioma el término «free» en la expresión «free software» para hacerlo más claro. Consulte la lista de traducciones de la expresión «free software» a otros idiomas.
El software libre es a menudo más fiable que el software que no es libre.
Software de código abierto («Open Source»)
Algunas personas utilizan la expresión software de «código abierto» para referirse más o menos a la misma categoría a la que pertenece el software libre. Sin embargo, no son exactamente el mismo tipo de software: ellos aceptan algunas licencias que nosotros consideramos demasiado restrictivas, y hay licencias de software libre que ellos no han aceptado. De todos modos, las diferencias entre lo que abarcan ambas categorías son pocas: casi todo el software libre es de código abierto, y casi todo el software de código abierto es libre.
Nosotros preferimos la expresión «software libre» porque se refiere a libertad, cosa que no sucede con la expresión «código abierto».
Software de dominio público
El software de dominio público es aquel que no tiene derechos de autor. Si el código fuente es de dominio público, se trata de un caso especial de software libre sin copyleft, lo que significa que algunas copias o versiones modificadas pueden no ser libres en absoluto.
En algunos casos, un programa ejecutable puede ser de dominio público pero no disponer libremente del código fuente. En ese caso no es software libre, porque el software libre requiere accesibilidad al código fuente. Por otro lado, la mayoría del software libre no está en el dominio público sino bajo los derechos de autor, y los titulares de esos derechos han dado el permiso legal para que todos puedan utilizarlo en libertad, usando una licencia de software libre.
Algunas personas utilizan el término «dominio público» de manera imprecisa queriendo decir «libre» o «gratuito». Sin embargo, «dominio público» es un término jurídico cuyo significado preciso es «sin derechos de autor». Para ser lo más claro posible, recomendamos el uso del término «dominio público» para expresar solamente este significado, y el uso de las otras expresiones para transmitir sus significados correspondientes.
En el marco del Convenio de Berna, que la mayoría de los países han firmado, todo lo que se escribe queda automáticamente bajo el dominio de los derechos de autor, inclusive los programas informáticos. Por lo tanto, si usted quiere que un programa que ha escrito esté disponible en el dominio público, debe tomar algunas medidas legales para renunciar a esos derechos; de lo contrario el programa quedará sujeto a los derechos de autor.
Software con copyleft
El software con copyleft es software libre cuyos términos de distribución garantizan que todas las copias de todas las versiones tengan aproximadamente los mismos términos de distribución. Esto significa, por ejemplo, que las licencias copyleft generalmente no permiten que terceros le agreguen requisitos adicionales al software (aunque puede estar permitido agregar un conjunto limitado de requisitos que se consideran seguros) y exigen que el código fuente esté disponible. Esto tutela el programa y sus versiones modificadas contra algunas de las formas más comunes de convertirlo en software privativo.
Algunas licencias copyleft, como la GPL versión 3, impiden otras formas de convertir en privativo el software, tales como la «tivoización».
En el Proyecto GNU, publicamos con copyleft casi todo el software que escribimos porque nuestro objetivo es dar a todos los usuarios las libertades que implica el término «software libre». Véase nuestro artículo sobre copyleft donde se explica más detalladamente cómo funciona el copyleft y por qué lo usamos.
Copyleft es un concepto general: para poner un programa bajo copyleft, es necesario adoptar un conjunto específico de cláusulas para la distribución. Existen varias maneras de redactar las cláusulas de copyleft, por lo que en principio pueden existir muchas licencias libres con copyleft. Sin embargo, en la práctica, para casi todo el software con copyleft se usa la Licencia Pública General de GNU (GNU General Public License). Generalmente dos licencias diferentes con copyleft son «incompatibles», lo cual significa que es ilegal combinar el código que está bajo un tipo de licencia con el código que está bajo otro tipo de licencia; por eso es bueno para la comunidad usar una sola licencia con copyleft.
Software libre sin copyleft
Los programas publicados sin copyleft vienen con permiso de redistribución y modificación, como así también con el permiso de agregarle restricciones.
Si un programa es libre pero no tiene copyleft, es posible que algunas copias o modificaciones no sean libres en absoluto. Una empresa de software puede compilar el programa, con o sin modificaciones, y distribuir el archivo ejecutable como software privativo.
El sistema X Window es un ejemplo de ello. Los términos de distribución que usó el X Consortium para publicar el X11 hicieron que el programa sea software libre sin copyleft y la mayoría de los sucesivos desarrolladores continuaron haciendo lo mismo. Una copia del programa que esté bajo esos términos de distribución es software libre. Sin embargo, existen también versiones que no son libres, y hay (o al menos, había) ordenadores muy conocidos y tarjetas gráficas para PC que funcionan únicamente con las versiones privativas del programa. Si utiliza alguno de esos tipos de hardware, entonces para usted X11 no es software libre. Incluso los programadores de X11 lo hicieron privativo durante algún tiempo, y pudieron hacerlo porque otros programadores habían aportado código bajo la misma licencia sin copyleft.
Software con licencia permisiva, laxa
Entre las licencias permisivas, laxas, se incluyen la licencia X11 y ambas licencias BSD. Estas licencias permiten utilizar el código de cualquier manera, inclusive la distribución de binarios privativos con o sin modificaciones del código.
Software con licencia GPL
La Licencia Pública General de GNU (General Public License - GNU GPL) consiste en un conjunto específico de cláusulas de distribución para publicar programas con copyleft. El Proyecto GNU la usa para la mayoría de los programas que distribuye.
Equiparar el software libre con software cubierto por la licencia GPL es por lo tanto un error.
El sistema operativo GNU
El sistema operativo GNU es un sistema completamente libre de tipo Unix, que el Proyecto GNU comenzó a desarrollar en 1984.
Un sistema operativo de tipo Unix está constituido por muchos programas. El sistema GNU incluye todos los paquetes oficiales de GNU. También incluye muchos otros paquetes, como el sistema X Window y TeX, que non son software de GNU.
La primera versión de prueba del sistema GNU completo se lanzó en 1996. Esto incluye GNU Hurd, nuestro núcleo, desarrollado desde 1990. En 2001 el sistema GNU (con GNU Hurd) comenzó a funcionar medianamente bien, pero Hurd aún carece de algunas características importantes y por lo tanto su uso no está muy difundido. Mientras tanto, el sistema GNU/Linux, un derivado del sistema operativo GNU que utiliza Linux como núcleo en lugar del núcleo Hurd de GNU, ha obtenido gran notoriedad a partir de los años noventa. Esto demuestra que el sistema GNU no es un único conjunto estático de programas; tanto los usuarios como los distribuidores pueden seleccionar diversos paquetes según sus necesidades e intereses. El resultado es una variante del sistema GNU.
Debido a que el objetivo de GNU es ser libre, cada uno de los componentes del sistema operativo GNU es software libre. No necesariamente todos tienen que tener copyleft, cualquier tipo de software libre se puede incluir legalmente siempre que ayude a alcanzar los objetivos técnicos.
Programas de GNU
La expresión «programa de GNU» es equivalente a software GNU. Un programa Foo es un programa de GNU si es software GNU. A veces también decimos que es un «paquete de GNU».
Software GNU
El software GNU se publica con el auspicio del Proyecto GNU. Si un programa es software GNU, también decimos que es un programa o un paquete de GNU, y el manual o el archivo README de un paquete de GNU así lo debe indicar. Además, en el Directorio de Software Libre están identificados todos los paquetes de GNU.
La mayor parte del software GNU tiene copyleft, pero no todo; no obstante, todo el software GNU debe ser software libre.
Parte del software GNU fue escrito por el equipo de la Free Software Foundation, pero la mayor parte proviene de algunos voluntarios. (Algunos de esos voluntarios reciben pagos de empresas o universidades, pero son voluntarios para nosotros). La Free Software Foundation es titular del copyright de parte de ese software, otra parte está bajo el copyright de sus autores.
Software GNU bajo copyright de la FSF
Los desarrolladores de paquetes de GNU pueden transferir los derechos de autor a la FSF, o pueden quedárselos. La elección es suya.
Si se han transferido los derechos de autor a la FSF, el programa es software GNU con derechos de autor de la FSF, y la FSF puede así hacer cumplir la licencia del programa. Si han conservado los derechos de autor, hacer cumplir la licencia es su responsabilidad.
Como regla, la FSF no acepta asignaciones de copyright para software que no sea un paquete oficial de GNU.
Software que no es libre
El software «que no es libre» [nonfree software] es cualquier software que no es libre. Está prohibido su uso, redistribución o modificación, o requiere que se solicite permiso, o tiene tantas restricciones que de hecho no se puede hacer libremente.
Software Privativo
El software privativo es otro nombre para designar el software que no es libre. En el pasado habíamos subdividido el software que no es libre en «software semilibre», que podía ser modificado y redistribuido sin fines comerciales, y «software privativo», que no podía ser modificado ni redistribuido. Pero hemos abandonado esta distinción y ahora utilizamos el término «software privativo» como sinónimo de software que no es libre.
La Free Software Foundation sigue la regla de no instalar ningún programa privativo en nuestras máquinas exccepto en forma temporaria con el propósito específico de escribir un reemplazo libre para ese mismo programa. Aparte de eso, creemos que no hay excusa posible para instalar un programa privativo.
Por ejemplo, justificamos el hecho de instalar Unix en nuestros ordenadores en los años ochenta porque estábamos usándolo para escribir un reemplazo libre. Hoy en día, teniendo a disposición sistemas operativos libres, la excusa ya no es aplicable; no usamos ningún sistema operativo que no sea libre, y en todo nuevo ordenador que instalamos debe ejecutarse únicamente un sistema operativo completamente libre.
No insistimos para que los usuarios de GNU o quienes contribuyen al Proyecto GNU cumplan esta regla. Es una regla que hicimos para nosotros mismos. Pero esperamos que usted también la adopte, por el bien de su libertad.
Freeware
El término freeware no tiene una definición claramente aceptada, pero se usa generalmente para referirse a paquetes en los cuales se permite la redistribución pero no la modificación (y su código fuente no está disponible). Estos paquetes no son software libre, por lo tanto instamos a no usar el término «freeware» para referirse al software libre.
Shareware
El término shareware se refiere al software del que se permite redistribuir copias, pero quien continúa a utilizar una copia debe pagar para obtener la licencia.
El software shareware no es software libre, ni siquiera semilibre, por dos razones:
Para la mayoría de los programas shareware, el código fuente no está disponible, por lo tanto no se pueden modificar.
El software shareware no viene con permiso para hacer una copia e instalarlo sin pagar la licencia, ni siquiera para las personas que participan en actividades sin fines de lucro. En la práctica, los usuarios suelen ignorar los términos de distribución y lo hacen de todos modos, aunque las condiciones no lo permiten.
Software privado
El software privado o software personalizado es aquel que ha sido desarrollado para un usuario (generalmente una organización o una empresa). El usuario lo mantiene y utiliza, y no lo publica, ni como código fuente ni como binarios.
Un programa privado es software libre, en sentido trivial, si su único usuario tiene las cuatro libertades. En particular, si el usuario tiene todos los derechos sobre el programa privado, el programa es libre. Sin embargo, si el usuario distribuye copias sin otorgar las cuatro libertades para las mismas, esas copias no son libres.
El software libre es una cuestión de libertad, no de disponibilidad. En general no creemos que sea un error desarrollar un programa y no publicarlo. Hay ocasiones en las que un programa es tan importante que —se podría argumentar— no ponerlo a disposición del público constituye un perjuicio para la humanidad. Sin embargo, esos casos no son frecuentes. La mayoría de los programas no son tan importantes, por lo que negarse a publicarlos no está mal. Por lo tanto, no hay ningún conflicto entre el desarrollo de software privado o personalizado y los principios del movimiento del software libre.
Casi todos los empleos para programadores tienen por objetivo el desarrollo de software personalizado; por lo tanto, la mayoría de los trabajos de programación son, o podrían ser, hechos de un modo compatible con el movimiento del software libre.
Software comercial
«Comercial» y «privativo» ¡no son la misma cosa! El software comercial es aquel desarrollado por una empresa como parte de su actividad comercial. La mayoría del software comercial es privativo, pero también existe software libre que es comercial, y software privativo que no es comercial.
Por ejemplo, GNU Ada fue desarrollado por una empresa. Se distribuye siempre bajo los términos de la GNU GPL, y cada una de las copias es software libre, pero los desarrolladores venden servicios de soporte. Cuando los vendedores hablan con los posibles clientes, estos a veces dicen, «Nosotros nos sentiríamos más seguros con un compilador comercial». Los vendedores responden, «GNU Ada es un compilador comercial, aunque sea software libre».
Para el Proyecto GNU, las prioridades están invertidas. Lo importante es que GNU Ada es software libre; que sea comercial es solo un detalle. Sin embargo, el desarrollo adicional de GNU Ada que resulta de su naturaleza comercial es definitivamente beneficioso.
Por favor ayude a crear conciencia de que el software libre comercial es posible. Usted puede hacerlo tratando de no decir «comercial» cuando esté hablando de software «privativo».
Tipos de Software
Sin duda muchos opinarán que el software lo podemos clasificar de mil maneras, hasta cierto punto es verdad, sin embargo si buscamos hacer una clasificación entendible para el usuario normal, hablo de personas poco estudiadas o que no precisamente saben de software, entonces debemos clasificarlos de la siguiente manera.
Software de Sistema
Tipos de Software sistemas operativos
El software de sistema, digamos que es la parte esencial, en ella no solamente podemos clasificar los sistemas operativos como Linux, Windows o Mac, también debemos agregar aquel software que permite la comunicación entre el Hardware y el sistema operativo, los controladores de sistema para la ejecución de diversos sectores de la computadora e incluso programas que son capaces de administrar los recursos y de proporcionarle al usuario una bella interfaz para que pueda controlar la computadora de una forma muy sencilla.
banner
La clasificación del Software de sistema queda de la siguiente manera:
Sistemas operativos
Controladores de dispositivo
Herramientas de diagnóstico
Herramientas de Corrección y Optimización
Servidores
Utilidades
Software de Programación
Está claro que para que puedan existir diversos programas, primero debe haber personas encargadas del desarrollo de sistemas, en este caso haciendo uso de software de programación, por eso la clasificación continua en este punto, después de que el sistema operativo es la base de todo, la programación le sigue muy detrás, un software que ayuda en la creación y desarrollo de aplicaciones, haciendo uso de conocimientos lógicos y de programación.
Algunos ejemplos de esto, son los compiladores y los editores de texto, un conjunto de software que trabaja de la mano uno con el otro, el programador desarrolla en un editor de texto y posteriormente compila el programa para verificar que está correcto, esto en cualquier lenguaje de programación, aunque actualmente existen Entornos de Desarrollo Integrados (IDE) que no son más que un programa informático que consta de una serie de herramientas de programación, los que actualmente utilizan los lenguajes de programación para su desarrollo.
La Clasificación del software de programación es la siguiente:
Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de Desarrollo Integrados (IDE)
Software de Aplicación
El software de aplicación, es aquel que utilizamos día a día, cada uno de los programas, aplicaciones o utilidades que manejamos dentro de nuestra computadora, entran dentro de esta clasificación, es el resultado de la programación de software, enfocado hacia alguno de los sistemas operativos, como puedes ver es el tercer y último paso, hablando de forma técnica es el software diseñado para el usuario final.
Tipos de Software - De Aplicacion
Dentro de los ejemplos que podría darte, se encuentran todos los programas que usas día a día, la paquetería de Office, los programas para comunicarte por medio de chat, los programas para ver fotos, utilidades para escuchar música en la computadora, los antivirus, etc.
La clasificación del software de aplicación queda de al siguiente manera:
Aplicaciones de Sistema de control y automatización industrial
Aplicaciones ofimáticas
Software educativo
Software médico
Software de Cálculo Numérico
Software de Diseño Asistido (CAD)
Software de Control Numérico (CAM)
Así que ahora ya sabes como se clasifica el tipo de software, aunque esta clasificación podría variar, es una buena forma para que cualquier persona lo pueda entender y comprender fácilmente.
Una herramienta de diagnóstico es un software que permite monitorear y en algunos casos controlar la funcionalidad del hardware, como: computadoras, servidores y periféricos, según el tipo y sus funciones. Estos dispositivos pueden ser, la memoria RAM, el procesador, los discos duros, ruteadores, tarjetas de red, entre muchos dispositivos más. El software permite monitorear temperatura, rendimiento, transferencia de datos, etc.
Controlador de dispositivo. Llamado normalmente controlador (en inglés, device driver), es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Es una pieza esencial, sin la cual no se podría usar el hardware.
Características
Los controladores de dispositivo son programas añadidos al núcleo del sistema operativo, concebidos inicialmente para gestionar periféricos y dispositivos especiales. Los controladores de dispositivo pueden ser de dos tipos: orientados a caracteres (tales como los dispositivos NUL, AUX, PRN, etc. del sistema) o bien orientados a bloques, constituyendo las conocidas unidades de disco.
En informática, una utilidad es una herramienta que realiza:
Tareas de mantenimiento.
Soporte para la construcción y ejecución de programas.
Tareas en general.
En donde no se incluyen las bibliotecas de sistema, middleware, herramientas de desarrollo y demás.
Entre ellas no podemos nombrar cifrado y descifrado de archivos, compresión de archivos, desfragmentación de disco, editores de texto, respaldo, etc.
Se conoce como software1 al equipo lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos' necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware.
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas, tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema operativo, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.
El anglicismo software es el más ampliamente difundido al referirse a este concepto, especialmente en la jerga técnica; en tanto que el término sinónimo «logicial», derivado del término francés logiciel, es utilizado mayormente en países y zonas de influencia francesa. Su abreviatura es Sw.
Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
Un intérprete es un software que recibe un programa en lenguaje de alto nivel, lo analiza y lo ejecuta. Para analizar el programa completo, va traduciendo sentencias de código y ejecutándolas si están bien, así hasta completar el programa origen.
Un compilador es un programa informático que traduce un programa que ha sido escrito en un lenguaje de programación a un lenguaje diferente, usualmente lenguaje de máquina, aunque también puede ser traducido a un código intermedio (bytecode) o a texto. Este proceso de traducción se conoce como compilación.
editores de texto
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por un texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor.
El software es un conjunto de instrucciones detalladas que controlan la operación de un sistema computacional.
Categorías de software libre y software que no es libre
Véase también el artículo Palabras y frases confusas que vale la pena evitar.
[Categorías de software]
Este diagrama, diseñado originalmente por Chao-Kuei y actualizado desde entonces por varias personas, explica las diferentes categorías de software. Está disponible en archivos de formato SVG (Scalable Vector Graphic) y XFig, bajo los términos de cualquiera de las siguientes licencias: GNU GPL v2 o posterior, GNU FDL v1.2 o posterior, o Creative Commons Attribution-Share Alike v2.0 o posterior.
Software libre
Software libre es aquel que se suministra con autorización para que cualquiera pueda usarlo, copiarlo y/o distribuirlo, ya sea con o sin modificaciones, gratuitamente o mediante pago. En particular, esto significa que el código fuente debe estar disponible. «Si no es fuente, no es software». Esta es una definición simplificada; véase también la definición completa.
Si un programa es libre, potencialmente puede ser incluido en un sistema operativo libre como GNU, o en versiones libres del sistema operativo GNU/Linux.
Hay muchas maneras diferentes de hacer que un programa sea libre: numerosas cuestiones de detalles que se pueden resolver de varias maneras sin renunciar a que el programa sea libre. Más abajo se describen algunas de las posibles variantes. Para obtener información sobre alguna licencia de software libre en particular, consulte el listado de licencias.
El software libre es una cuestión de libertad, no de precio. Pero las empresas de software privativo usan habitualmente el término «free software»[1] para referirse al precio. Algunas veces lo que quieren decir es que se puede obtener una copia de los binarios sin costo alguno, otras veces se refieren a que la copia está incluida en el ordenador que se va a comprar, y que se paga un solo precio por ambas cosas. De cualquier manera, no tiene nada que ver con lo que se entiende por software libre en el proyecto GNU.
Para evitar confusiones, cuando una compañía de software dice que su producto es software libre («free software»), se aconseja verificar siempre los términos de distribución para constatar que realmente se esté otorgando a los usuarios todas las libertades que el software libre implica. A veces el software realmente es libre, a veces no lo es.
Muchos idiomas tienen dos palabras diferentes para «libre», en el sentido de libertad, y «gratis» como gratuito. Por ejemplo, el francés dispone de los términos «libre» y «gratuit»[2] . Esto no ocurre en inglés, en dicho idioma existe la palabra «gratis» que se refiere sin ambigüedad al precio, pero no dispone de un adjetivo común que se refiera sin ambigüedad a la libertad. Por lo tanto, si usted habla otro idioma que no sea el inglés, le sugerimos que traduzca a su idioma el término «free» en la expresión «free software» para hacerlo más claro. Consulte la lista de traducciones de la expresión «free software» a otros idiomas.
El software libre es a menudo más fiable que el software que no es libre.
Software de código abierto («Open Source»)
Algunas personas utilizan la expresión software de «código abierto» para referirse más o menos a la misma categoría a la que pertenece el software libre. Sin embargo, no son exactamente el mismo tipo de software: ellos aceptan algunas licencias que nosotros consideramos demasiado restrictivas, y hay licencias de software libre que ellos no han aceptado. De todos modos, las diferencias entre lo que abarcan ambas categorías son pocas: casi todo el software libre es de código abierto, y casi todo el software de código abierto es libre.
Nosotros preferimos la expresión «software libre» porque se refiere a libertad, cosa que no sucede con la expresión «código abierto».
Software de dominio público
El software de dominio público es aquel que no tiene derechos de autor. Si el código fuente es de dominio público, se trata de un caso especial de software libre sin copyleft, lo que significa que algunas copias o versiones modificadas pueden no ser libres en absoluto.
En algunos casos, un programa ejecutable puede ser de dominio público pero no disponer libremente del código fuente. En ese caso no es software libre, porque el software libre requiere accesibilidad al código fuente. Por otro lado, la mayoría del software libre no está en el dominio público sino bajo los derechos de autor, y los titulares de esos derechos han dado el permiso legal para que todos puedan utilizarlo en libertad, usando una licencia de software libre.
Algunas personas utilizan el término «dominio público» de manera imprecisa queriendo decir «libre» o «gratuito». Sin embargo, «dominio público» es un término jurídico cuyo significado preciso es «sin derechos de autor». Para ser lo más claro posible, recomendamos el uso del término «dominio público» para expresar solamente este significado, y el uso de las otras expresiones para transmitir sus significados correspondientes.
En el marco del Convenio de Berna, que la mayoría de los países han firmado, todo lo que se escribe queda automáticamente bajo el dominio de los derechos de autor, inclusive los programas informáticos. Por lo tanto, si usted quiere que un programa que ha escrito esté disponible en el dominio público, debe tomar algunas medidas legales para renunciar a esos derechos; de lo contrario el programa quedará sujeto a los derechos de autor.
Software con copyleft
El software con copyleft es software libre cuyos términos de distribución garantizan que todas las copias de todas las versiones tengan aproximadamente los mismos términos de distribución. Esto significa, por ejemplo, que las licencias copyleft generalmente no permiten que terceros le agreguen requisitos adicionales al software (aunque puede estar permitido agregar un conjunto limitado de requisitos que se consideran seguros) y exigen que el código fuente esté disponible. Esto tutela el programa y sus versiones modificadas contra algunas de las formas más comunes de convertirlo en software privativo.
Algunas licencias copyleft, como la GPL versión 3, impiden otras formas de convertir en privativo el software, tales como la «tivoización».
En el Proyecto GNU, publicamos con copyleft casi todo el software que escribimos porque nuestro objetivo es dar a todos los usuarios las libertades que implica el término «software libre». Véase nuestro artículo sobre copyleft donde se explica más detalladamente cómo funciona el copyleft y por qué lo usamos.
Copyleft es un concepto general: para poner un programa bajo copyleft, es necesario adoptar un conjunto específico de cláusulas para la distribución. Existen varias maneras de redactar las cláusulas de copyleft, por lo que en principio pueden existir muchas licencias libres con copyleft. Sin embargo, en la práctica, para casi todo el software con copyleft se usa la Licencia Pública General de GNU (GNU General Public License). Generalmente dos licencias diferentes con copyleft son «incompatibles», lo cual significa que es ilegal combinar el código que está bajo un tipo de licencia con el código que está bajo otro tipo de licencia; por eso es bueno para la comunidad usar una sola licencia con copyleft.
Software libre sin copyleft
Los programas publicados sin copyleft vienen con permiso de redistribución y modificación, como así también con el permiso de agregarle restricciones.
Si un programa es libre pero no tiene copyleft, es posible que algunas copias o modificaciones no sean libres en absoluto. Una empresa de software puede compilar el programa, con o sin modificaciones, y distribuir el archivo ejecutable como software privativo.
El sistema X Window es un ejemplo de ello. Los términos de distribución que usó el X Consortium para publicar el X11 hicieron que el programa sea software libre sin copyleft y la mayoría de los sucesivos desarrolladores continuaron haciendo lo mismo. Una copia del programa que esté bajo esos términos de distribución es software libre. Sin embargo, existen también versiones que no son libres, y hay (o al menos, había) ordenadores muy conocidos y tarjetas gráficas para PC que funcionan únicamente con las versiones privativas del programa. Si utiliza alguno de esos tipos de hardware, entonces para usted X11 no es software libre. Incluso los programadores de X11 lo hicieron privativo durante algún tiempo, y pudieron hacerlo porque otros programadores habían aportado código bajo la misma licencia sin copyleft.
Software con licencia permisiva, laxa
Entre las licencias permisivas, laxas, se incluyen la licencia X11 y ambas licencias BSD. Estas licencias permiten utilizar el código de cualquier manera, inclusive la distribución de binarios privativos con o sin modificaciones del código.
Software con licencia GPL
La Licencia Pública General de GNU (General Public License - GNU GPL) consiste en un conjunto específico de cláusulas de distribución para publicar programas con copyleft. El Proyecto GNU la usa para la mayoría de los programas que distribuye.
Equiparar el software libre con software cubierto por la licencia GPL es por lo tanto un error.
El sistema operativo GNU
El sistema operativo GNU es un sistema completamente libre de tipo Unix, que el Proyecto GNU comenzó a desarrollar en 1984.
Un sistema operativo de tipo Unix está constituido por muchos programas. El sistema GNU incluye todos los paquetes oficiales de GNU. También incluye muchos otros paquetes, como el sistema X Window y TeX, que non son software de GNU.
La primera versión de prueba del sistema GNU completo se lanzó en 1996. Esto incluye GNU Hurd, nuestro núcleo, desarrollado desde 1990. En 2001 el sistema GNU (con GNU Hurd) comenzó a funcionar medianamente bien, pero Hurd aún carece de algunas características importantes y por lo tanto su uso no está muy difundido. Mientras tanto, el sistema GNU/Linux, un derivado del sistema operativo GNU que utiliza Linux como núcleo en lugar del núcleo Hurd de GNU, ha obtenido gran notoriedad a partir de los años noventa. Esto demuestra que el sistema GNU no es un único conjunto estático de programas; tanto los usuarios como los distribuidores pueden seleccionar diversos paquetes según sus necesidades e intereses. El resultado es una variante del sistema GNU.
Debido a que el objetivo de GNU es ser libre, cada uno de los componentes del sistema operativo GNU es software libre. No necesariamente todos tienen que tener copyleft, cualquier tipo de software libre se puede incluir legalmente siempre que ayude a alcanzar los objetivos técnicos.
Programas de GNU
La expresión «programa de GNU» es equivalente a software GNU. Un programa Foo es un programa de GNU si es software GNU. A veces también decimos que es un «paquete de GNU».
Software GNU
El software GNU se publica con el auspicio del Proyecto GNU. Si un programa es software GNU, también decimos que es un programa o un paquete de GNU, y el manual o el archivo README de un paquete de GNU así lo debe indicar. Además, en el Directorio de Software Libre están identificados todos los paquetes de GNU.
La mayor parte del software GNU tiene copyleft, pero no todo; no obstante, todo el software GNU debe ser software libre.
Parte del software GNU fue escrito por el equipo de la Free Software Foundation, pero la mayor parte proviene de algunos voluntarios. (Algunos de esos voluntarios reciben pagos de empresas o universidades, pero son voluntarios para nosotros). La Free Software Foundation es titular del copyright de parte de ese software, otra parte está bajo el copyright de sus autores.
Software GNU bajo copyright de la FSF
Los desarrolladores de paquetes de GNU pueden transferir los derechos de autor a la FSF, o pueden quedárselos. La elección es suya.
Si se han transferido los derechos de autor a la FSF, el programa es software GNU con derechos de autor de la FSF, y la FSF puede así hacer cumplir la licencia del programa. Si han conservado los derechos de autor, hacer cumplir la licencia es su responsabilidad.
Como regla, la FSF no acepta asignaciones de copyright para software que no sea un paquete oficial de GNU.
Software que no es libre
El software «que no es libre» [nonfree software] es cualquier software que no es libre. Está prohibido su uso, redistribución o modificación, o requiere que se solicite permiso, o tiene tantas restricciones que de hecho no se puede hacer libremente.
Software Privativo
El software privativo es otro nombre para designar el software que no es libre. En el pasado habíamos subdividido el software que no es libre en «software semilibre», que podía ser modificado y redistribuido sin fines comerciales, y «software privativo», que no podía ser modificado ni redistribuido. Pero hemos abandonado esta distinción y ahora utilizamos el término «software privativo» como sinónimo de software que no es libre.
La Free Software Foundation sigue la regla de no instalar ningún programa privativo en nuestras máquinas exccepto en forma temporaria con el propósito específico de escribir un reemplazo libre para ese mismo programa. Aparte de eso, creemos que no hay excusa posible para instalar un programa privativo.
Por ejemplo, justificamos el hecho de instalar Unix en nuestros ordenadores en los años ochenta porque estábamos usándolo para escribir un reemplazo libre. Hoy en día, teniendo a disposición sistemas operativos libres, la excusa ya no es aplicable; no usamos ningún sistema operativo que no sea libre, y en todo nuevo ordenador que instalamos debe ejecutarse únicamente un sistema operativo completamente libre.
No insistimos para que los usuarios de GNU o quienes contribuyen al Proyecto GNU cumplan esta regla. Es una regla que hicimos para nosotros mismos. Pero esperamos que usted también la adopte, por el bien de su libertad.
Freeware
El término freeware no tiene una definición claramente aceptada, pero se usa generalmente para referirse a paquetes en los cuales se permite la redistribución pero no la modificación (y su código fuente no está disponible). Estos paquetes no son software libre, por lo tanto instamos a no usar el término «freeware» para referirse al software libre.
Shareware
El término shareware se refiere al software del que se permite redistribuir copias, pero quien continúa a utilizar una copia debe pagar para obtener la licencia.
El software shareware no es software libre, ni siquiera semilibre, por dos razones:
Para la mayoría de los programas shareware, el código fuente no está disponible, por lo tanto no se pueden modificar.
El software shareware no viene con permiso para hacer una copia e instalarlo sin pagar la licencia, ni siquiera para las personas que participan en actividades sin fines de lucro. En la práctica, los usuarios suelen ignorar los términos de distribución y lo hacen de todos modos, aunque las condiciones no lo permiten.
Software privado
El software privado o software personalizado es aquel que ha sido desarrollado para un usuario (generalmente una organización o una empresa). El usuario lo mantiene y utiliza, y no lo publica, ni como código fuente ni como binarios.
Un programa privado es software libre, en sentido trivial, si su único usuario tiene las cuatro libertades. En particular, si el usuario tiene todos los derechos sobre el programa privado, el programa es libre. Sin embargo, si el usuario distribuye copias sin otorgar las cuatro libertades para las mismas, esas copias no son libres.
El software libre es una cuestión de libertad, no de disponibilidad. En general no creemos que sea un error desarrollar un programa y no publicarlo. Hay ocasiones en las que un programa es tan importante que —se podría argumentar— no ponerlo a disposición del público constituye un perjuicio para la humanidad. Sin embargo, esos casos no son frecuentes. La mayoría de los programas no son tan importantes, por lo que negarse a publicarlos no está mal. Por lo tanto, no hay ningún conflicto entre el desarrollo de software privado o personalizado y los principios del movimiento del software libre.
Casi todos los empleos para programadores tienen por objetivo el desarrollo de software personalizado; por lo tanto, la mayoría de los trabajos de programación son, o podrían ser, hechos de un modo compatible con el movimiento del software libre.
Software comercial
«Comercial» y «privativo» ¡no son la misma cosa! El software comercial es aquel desarrollado por una empresa como parte de su actividad comercial. La mayoría del software comercial es privativo, pero también existe software libre que es comercial, y software privativo que no es comercial.
Por ejemplo, GNU Ada fue desarrollado por una empresa. Se distribuye siempre bajo los términos de la GNU GPL, y cada una de las copias es software libre, pero los desarrolladores venden servicios de soporte. Cuando los vendedores hablan con los posibles clientes, estos a veces dicen, «Nosotros nos sentiríamos más seguros con un compilador comercial». Los vendedores responden, «GNU Ada es un compilador comercial, aunque sea software libre».
Para el Proyecto GNU, las prioridades están invertidas. Lo importante es que GNU Ada es software libre; que sea comercial es solo un detalle. Sin embargo, el desarrollo adicional de GNU Ada que resulta de su naturaleza comercial es definitivamente beneficioso.
Por favor ayude a crear conciencia de que el software libre comercial es posible. Usted puede hacerlo tratando de no decir «comercial» cuando esté hablando de software «privativo».
Tipos de Software
Sin duda muchos opinarán que el software lo podemos clasificar de mil maneras, hasta cierto punto es verdad, sin embargo si buscamos hacer una clasificación entendible para el usuario normal, hablo de personas poco estudiadas o que no precisamente saben de software, entonces debemos clasificarlos de la siguiente manera.
Software de Sistema
Tipos de Software sistemas operativos
El software de sistema, digamos que es la parte esencial, en ella no solamente podemos clasificar los sistemas operativos como Linux, Windows o Mac, también debemos agregar aquel software que permite la comunicación entre el Hardware y el sistema operativo, los controladores de sistema para la ejecución de diversos sectores de la computadora e incluso programas que son capaces de administrar los recursos y de proporcionarle al usuario una bella interfaz para que pueda controlar la computadora de una forma muy sencilla.
banner
La clasificación del Software de sistema queda de la siguiente manera:
Sistemas operativos
Controladores de dispositivo
Herramientas de diagnóstico
Herramientas de Corrección y Optimización
Servidores
Utilidades
Software de Programación
Está claro que para que puedan existir diversos programas, primero debe haber personas encargadas del desarrollo de sistemas, en este caso haciendo uso de software de programación, por eso la clasificación continua en este punto, después de que el sistema operativo es la base de todo, la programación le sigue muy detrás, un software que ayuda en la creación y desarrollo de aplicaciones, haciendo uso de conocimientos lógicos y de programación.
Algunos ejemplos de esto, son los compiladores y los editores de texto, un conjunto de software que trabaja de la mano uno con el otro, el programador desarrolla en un editor de texto y posteriormente compila el programa para verificar que está correcto, esto en cualquier lenguaje de programación, aunque actualmente existen Entornos de Desarrollo Integrados (IDE) que no son más que un programa informático que consta de una serie de herramientas de programación, los que actualmente utilizan los lenguajes de programación para su desarrollo.
La Clasificación del software de programación es la siguiente:
Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de Desarrollo Integrados (IDE)
Software de Aplicación
El software de aplicación, es aquel que utilizamos día a día, cada uno de los programas, aplicaciones o utilidades que manejamos dentro de nuestra computadora, entran dentro de esta clasificación, es el resultado de la programación de software, enfocado hacia alguno de los sistemas operativos, como puedes ver es el tercer y último paso, hablando de forma técnica es el software diseñado para el usuario final.
Tipos de Software - De Aplicacion
Dentro de los ejemplos que podría darte, se encuentran todos los programas que usas día a día, la paquetería de Office, los programas para comunicarte por medio de chat, los programas para ver fotos, utilidades para escuchar música en la computadora, los antivirus, etc.
La clasificación del software de aplicación queda de al siguiente manera:
Aplicaciones de Sistema de control y automatización industrial
Aplicaciones ofimáticas
Software educativo
Software médico
Software de Cálculo Numérico
Software de Diseño Asistido (CAD)
Software de Control Numérico (CAM)
Así que ahora ya sabes como se clasifica el tipo de software, aunque esta clasificación podría variar, es una buena forma para que cualquier persona lo pueda entender y comprender fácilmente.
Una herramienta de diagnóstico es un software que permite monitorear y en algunos casos controlar la funcionalidad del hardware, como: computadoras, servidores y periféricos, según el tipo y sus funciones. Estos dispositivos pueden ser, la memoria RAM, el procesador, los discos duros, ruteadores, tarjetas de red, entre muchos dispositivos más. El software permite monitorear temperatura, rendimiento, transferencia de datos, etc.
Controlador de dispositivo. Llamado normalmente controlador (en inglés, device driver), es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Es una pieza esencial, sin la cual no se podría usar el hardware.
Características
Los controladores de dispositivo son programas añadidos al núcleo del sistema operativo, concebidos inicialmente para gestionar periféricos y dispositivos especiales. Los controladores de dispositivo pueden ser de dos tipos: orientados a caracteres (tales como los dispositivos NUL, AUX, PRN, etc. del sistema) o bien orientados a bloques, constituyendo las conocidas unidades de disco.
En informática, una utilidad es una herramienta que realiza:
Tareas de mantenimiento.
Soporte para la construcción y ejecución de programas.
Tareas en general.
En donde no se incluyen las bibliotecas de sistema, middleware, herramientas de desarrollo y demás.
Entre ellas no podemos nombrar cifrado y descifrado de archivos, compresión de archivos, desfragmentación de disco, editores de texto, respaldo, etc.
Se conoce como software1 al equipo lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos' necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware.
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas, tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema operativo, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.
El anglicismo software es el más ampliamente difundido al referirse a este concepto, especialmente en la jerga técnica; en tanto que el término sinónimo «logicial», derivado del término francés logiciel, es utilizado mayormente en países y zonas de influencia francesa. Su abreviatura es Sw.
Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
Un intérprete es un software que recibe un programa en lenguaje de alto nivel, lo analiza y lo ejecuta. Para analizar el programa completo, va traduciendo sentencias de código y ejecutándolas si están bien, así hasta completar el programa origen.
Un compilador es un programa informático que traduce un programa que ha sido escrito en un lenguaje de programación a un lenguaje diferente, usualmente lenguaje de máquina, aunque también puede ser traducido a un código intermedio (bytecode) o a texto. Este proceso de traducción se conoce como compilación.
editores de texto
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por un texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor.
Comentarios
Publicar un comentario