Tipos De Licencias Para Software De Código Abierto Y Comandos Shell

Introducción

Cuando se quiere realizar un estudio o uso de determinado código para implementarlo ya sea en un programa o aplicación, es necesario tener conocimiento si dicho código posee alguna restricción de uso o bien cuáles son las condiciones para poder utilizarlo o distribuirlo, es por ello que surge la necesidad de conocer acerca de estos aspectos que serán establecidos dependiendo de la licencia que posea, ya que no es correcto hacer uso de un software ignorando dicha licencia, ya que como consecuencia podría implicar problemas de ley.

El código abierto se puede encontrar en sistemas operativos libres, los cuales cada vez tienen más importancia en el mundo de la informática, pues con el tiempo se siguen desarrollando distribuciones que son basadas en un sistema operativo libre, por lo cual es importante conocer cómo interactuar con dicho sistema, haciendo uso con una de las características más sobresalientes para este tipo de sistemas, los comandos de Shell, los cuales no solo permite administrar el sistema operativo sino que también interactuar con aplicaciones del ordenador y actuar como entorno básico de programación.

Por lo que, surge la necesidad de abarcar el tema de licencias de software de código abierto, ya que muchas personas suelen confundir que por el hecho de ser código abierto se puede realizar cualquier acción con el mismo, y la realidad es que el alcance de sus limitaciones o beneficios dependerá del tipo de licencia que sea, Dicho lo anterior a continuación, se detallarán los tipos de licencias que existen para dicho software, entre los cuales se encuentra licencias robustas débiles, fuertes y permisivas. De igual manera, es importante profundizar acerca de la interacción que se puede establecer con el sistema operativo por medio de los comandos de Shell, conociendo sus ventajas, incluso el hecho que permite determinada programación, por lo que más adelante se comprenderá dicho tema.

Desarrollo

Licencia en software de código abierto

Las licencias que son empleadas para software informático hacen referencia a las disposiciones establecidas por el dueño o autor del programa (software), con el fin de regir el funcionamiento del mismo y las atribuciones o limitaciones que el usuario tendrá al utilizar dicho software. Las limitaciones o condiciones mencionadas pueden variar, dependiendo de la clase de software, para este caso se profundizará cuando es de código abierto (open source) con el que será posible tener acceso al código fuente únicamente si se cuenta con su respectiva licencia pues, este software ha sido creado y publicado bajo las normativas de una licencia.

El software de código abierto no solamente permite el acceso, uso y estudio del mismo, sino que en determinados casos podría llegar a permitir otras acciones tales como modificación o redistribución, haciéndolo en base a las cláusulas que establece la licencia de dicho software y de igual manera aplicando los beneficios o restricciones para todo aquel a quien se le distribuya el mismo, sin excluir la distribución a nadie. Por lo que, una licencia de software de código abierto permite ingresar al código fuente sin tener que realizar un pago al autor original, adaptándose a las reglas que el mismo imponga, ya que este tipo no de software no está libre de incorporar condiciones que lo rijan.

Tipos de licencia en software de código abierto

Debido a las distintas restricciones o condiciones que se pueden imponer a esta clase de licencia es que surgen distintos tipos entre los cuales se encuentran las licencias de software de código abierto robustas y permisivas, por otro lado, se encuentra lo que es el dominio público. El primer tipo mencionado engloba aquellas licencias que aplican determinadas restricciones a las derivaciones del software original y dependiendo del fin que tengan las mismos, podrán clasificarse como licencias de código abierto robustas fuertes o robustas débiles.

Una licencia robusta fuerte (copyleft fuerte) estipula que los cambios que se realicen tienen que licenciarse respetando los mismos términos que han sido establecidos originalmente. Para este tipo, se encuentra la licencia GPL (Licencia Pública General) la cual establece que se pueden realizar duplicados y cambios al código fuente o bien implementarlo dicho código en un software siempre conservando las condiciones, derechos y estipulaciones originales. De igual manera se encuentra la AGPL (Licencia Pública General de Affero) la cual claramente es una derivación de la GPL con la diferencia que posee una condición enfocada en el uso de software a través de red, y es que debe compartirse el código de dicho programa con cada uno de los que conforman dicha red.

Una licencia robusta débil (copyleft débil) estipula que será opcional licenciar bajo los términos originales aquellas obras que resulten de cambios que se han realizado a un programa original. Dentro de este tipo de licencia se puede mencionar la LGPL (Licencia Pública General Reducida de GNU) la cual se enfoca en que el programa que la posea pueda ser compartido libremente. También se encuentra la MPL (Licencia Pública de Mozilla) enfocada en defender las atribuciones del autor original del código y de quienes han realizado cambios del mismo.

Una licencia de código abierto permisiva cede totalmente el privilegio de crear o compartir proyectos de software a partir del código que posee un programa original sin tener el compromiso de licenciar dicho proyecto, por lo cual se dice que este tipo de licencia no posee el famoso término copyleft que obliga a reconocer al propietario o autor del software original, se caracteriza porque no impone ningún tipo de restricción. Un ejemplo de este tipo es la BSD que tiene tan pocas restricciones que se asemeja al software de dominio público, se pueden realizar cambios, distribuciones e incluso implementaciones en software incluso privado, siempre que se reconozcan los autores de dicho código original y no conserve el mismo nombre.

El software de dominio público, a pesar de ser un software que en su mayoría de casos contiene código abierto, se caracteriza porque dicho programa no es reconocido por algún autor y por lo tanto no lo rige ninguna licencia con exactitud, y si bien existe un autor, el mismo libera el software para realizar las modificaciones, cambios, distribuciones o implementaciones que se deseen. En esta clasificación encontramos la WTFPL, licencia que prácticamente cede libertad para realizar lo que se quiera con el código.

Comandos Shell

El término Shell es considerado por algunos programadores como un lenguaje interpretado y por otros como un programa informático, lo cual dependerá de la interfaz que se ocupe en el ordenador. Para visualizar la Shell de un ordenador, puede realizarse por medio de lenguaje natural (NUI), el cual implica como entrada algún movimiento gestual, también puede ser a través de gráficos (GUI), dicha forma es la más usual para los usuarios que no poseen de conocimientos informáticos orientados a programación o codificación, ya que interactuar con última forma sin dichos conocimientos podría ser algo complicado.

Por último, la interfaz de una Shell también se puede representar por medio de líneas texto (CLI), en donde para lograr interactuar con el sistema operativo se debe realizar la traducción de lenguaje fuente a lenguaje objeto de cada una de las líneas de texto que son ingresadas, dicha traducción se realiza de línea en línea de texto, las cuales están conformadas por comandos. Esta forma puede visualizarse mediante una interfaz gráfica, la cual es conocida como consola o bien como terminal, en donde serán ingresados los distintos comandos que permitirán la interacción con el sistema operativo.

Cuando se lleva a cabo la ejecución, compilación o traducción de una línea que ha sido escrita en la Shell, se realiza una serie de pasos, primeramente, se realiza el reconocimiento y separación de palabras, operadores, espacios en blanco, entre otros, dicha separación posteriormente es procesada para el tipo de comando, y una vez han sido detectados el o los comandos, se procede a realizar la ejecución del mismo y esperar que dicha ejecución finalice. Un comando se define como una orden que se la da a un ordenador, para que se realice una trabajo o tarea concreta.

Los comandos que reconoce la Shell, son establecidos para que el usuario interactúe con el sistema operativo, pues estos permiten acceso a carpetas o archivos, manejo de paquetería, descargas, instalaciones, configuraciones, entre otros. Los comandos deben ser escritos correctamente para ser reconocidos. Tanto los comandos como los tipos de comandos variarán según la Shell que posea el sistema operativo. El objetivo de los comandos es hacer uso de la interfaz de usuario a través de órdenes en la shell, dichos comandos son almacenados en un archivo histórico. Algunos ejemplos de comandos para Linux sería ls (listar), rm (eliminar), mkdir (crear directorio), entre otros.

Programación en la Shell del Bash

Cuando utilizamos el término Bash hacemos referencia al intérprete de la Shell que es más usada para GNU/Linux y se compila en cualquier sistema Unix, por lo cual se considera como un lenguaje que está destinado al procesamiento de líneas de texto, el cual no necesita pasar por un proceso de compilación, ya que para ser ejecutado se realiza la traducción línea a línea debido a que es un lenguaje interpretado como ya se ha mencionado, pero también se considera como un lenguaje de programación debido a que incluye sentencias que permiten soportan asignaciones, funciones, condicionales, ciclos repetitivos, también establece sus propias órdenes, instrucciones, variables, operadores aritméticos o lógicos.

Es por ello que surge el término de programación en la Shell del Bash, dicha programación se considera verdaderamente provechoso en comparación a otros lenguajes de programación debido a que no se necesita implementar largas líneas de código para realizar alguna tarea, sino que basta con ingresar comandos los cuales a veces se encuentran representados a través de abreviaturas o alias respecto al nombre que los identifica, es por ello que no se suelen encontrar comandos con nombres muy largos. Aun así, cabe recalcar que el uso de la Shell del Bash es limitado, pues este no soporta el manejo de grandes cantidades de archivos o la realización de operaciones que resulten ser complejas.

La programación en la Shell del Bash consiste en la creación de scripts de Shell, pero ahora bien ¿qué es un Script de Shell? Se considera que un Shell Script es un programa pequeño el cual recibe como entrada una línea de texto conformada por comandos que han sido ingresados en la respectiva Shell de sistema operativo, dichos comandos de estar escritos correctamente serán ejecutados. El Script Shell contiene una serie de ficheros que son necesarios para llevar a cabo tareas específicas. Con el Shell Script es posible llevar a cabo la ejecución de actividades como inicializar programas, manejar archivos, entre otros.

Conclusión

Existen diversos tipos de licencias para software de código abierto, las cuales se diferencian según las limitaciones o beneficios que esta ofrezca para el uso del código como tal. Para no incurrir en problemas legales, es importante conocer dichos tipos y así evitar cometer alguna infracción por el uso incorrecto del software. Entre los tipos de licencia se encuentra la licencia robusta fuerte, con la cual se establece que toda implementación o distribución del código fuente original deberá incorporar las cláusulas que se han establecido en la licencia original, mientras que en la licencia robusta débil dicha acción será opcional para las derivaciones de los cambios del código. Para la licencia permisiva no se posee el compromiso de licenciar según los términos originales.

Por otro lado, los comandos en Shell son totalmente funcionales cuando se desee interactuar con el sistema operativo, dándole órdenes de tareas muy específicas que debe realizar el mismo. Debido a la importancia que radican los comandos para un intérprete de órdenes, es decir, para un Shell, surge el concepto de programación en la Shell del Bash, en el que el Bash actuará como lenguaje de control de tareas para lo que sería la Shell, dicha programación permite escribir programas sin necesidad de introducir largas líneas de código, aunque dicha programación no es eficiente para resolver problemas complejos del sistema operativo, se considera que es posible la programación en la Shell porque se pueden incluir variables, control de flujo, entre otros funcionalidades.

Por dichas descripciones mencionadas anteriormente es que el tema de licencia de software de código abierto y los comandos Shell junto con la programación de la Shell del Bash se consideran de suma importancia para el curso de sistemas operativos, ya que el primero proporciona las pautas para regirse al momento de estudiar, modificar o distribuir un código ajeno, mientras que el segundo tema facilita la administración de un sistema operativo a través de órdenes específicas que se le proporcionan al mismo por medio de la Shell, logrando acceder a los archivos, programas o aplicaciones que dicho sistema posee o bien permitir la programación a través de un entorno básico.

Referencias

  1. Sierra, R. (18/03/2018). Tipos de copias de seguridad. Recuperado el 25 de marzo de 2020, de DigitalTech website: https://digitaltech.com.co/la-academia/tipos-de-licencia-de-software/
  2. Basañes, F. (02/01/2019). Código abierto: conceptos y aplicaciones. Recuperado el 25 de marzo de 2020, de ISB website: https://blogs.iadb.org/conocimiento-abierto/es/codigo-abierto/
  3. Mendoza, I. (s.f.). El código abierto. Recuperado el 25 de marzo de 2020, de Utel Blog website: https://www.utel.edu.mx/blog/rol-personal/codigo-abierto/
  4. Hernández, J. (08/07/2013). Licencias de Software. Recuperado el 25 de marzo de 2020, de Koalite website: http://blog.koalite.com/2013/07/licencias-de-software-cuando-puedo-usar-que/
  5. López, O. (30/06/2016). Licencia de software MLP. Recuperado el 25 de marzo de 2020, de SlideShare website: https://es.slideshare.net/lopezbarcenas/licencia-de-software-mlp
  6. Ochoa, A. (17/03/2015). Licencias de software de código abierto permisivas. Recuperado el 25 de marzo de 2020, de Prezi website: https://prezi.com/ujgka6ruuh3p/licencias-de-software-de-codigo-abierto-permisivas/
  7. Fernández, C. (07/10/2015). La licencia BSD. Recuperado el 25 de marzo de 2020, de Prezi website: https://prezi.com/uw190pst7gb8/la-licencia-bsd/
  8. Barahona, J. (23/05/2012). Licencias permisivas en Software libre. Recuperado el 25 de marzo de 2020, de wiki EOI website: https://www.eoi.es/wiki/index.php/Licencias_permisivas_en_Software_libre
  9. Ramírez, M. (13/05/2015). Software de Dominio Público. Recuperado el 25 de marzo de 2020, de Prezi website: https://prezi.com/baubnw5yg6tt/software-de-dominio-publico-corel/
  10. Herrera, J. (18/12/2011). Comandos Básicos de Shell (Terminal). Recuperado el 26 de marzo de 2020, de Universidad de la República website: https://www.fing.edu.uy/sysadmin/salas-estudiantiles-linux/comandos-b%C3%A1sicos-de-shell-terminal
  11. Villagómez, C. (14/08/2008). Guia de uso del Shell para principiantes. Recuperado el 26 de marzo de 2020, de CCM website: https://es.ccm.net/faq/387-guia-de-uso-del-shell-para-principiantes
  12. Fernández, J. (s.f.). Programación Shell-script en Linux. Recuperado el 26 de marzo de 2020, de Universidad de Sevilla website: http://trajano.us.es/~fjfj/shell/shellscript.htm#_Toc444081212
22 October 2021
close
Tu email

Haciendo clic en “Enviar”, estás de acuerdo con nuestros Términos de Servicio y  Estatutos de Privacidad. Te enviaremos ocasionalmente emails relacionados con tu cuenta.

close thanks-icon
¡Gracias!

Su muestra de ensayo ha sido enviada.

Ordenar ahora

Utilizamos cookies para brindarte la mejor experiencia posible. Al continuar, asumiremos que estás de acuerdo con nuestra política de cookies.