Artículos de Tecnología > DevOps

Open Source: Una breve introducción

Bruno Divino
Bruno Divino

Banner que dice "Open Source

¿Qué es Open Source?

Open Source (código abierto) es un modelo de desarrollo descentralizado en el que varios colaboradores contribuyen a la evolución de un único proyecto.

Tradicionalmente, se asocia al desarrollo de software - Open Source Software (OSS) - cuyo código fuente se pone a disposición sin restricciones de acceso o uso y puede ser trabajado por cualquier desarrollador interesado.

Historia

Durante la mayor parte de la década de 1990, el modelo comercial predominante para el desarrollo de software fue el de “Closed Source” (software propietario), en el que las grandes empresas contrataron a cientos de desarrolladores para crear su producto. Una vez finalizado, el producto se vendió sin que el código fuente estuviera disponible y la monetización se realizó tras la venta del producto al usuario final.

Sin embargo, junto con el movimiento del Software Libre, se fortalecieron cada vez más los principios de otro modelo de negocio. Utilizado por primera vez en entornos académicos, este nuevo modelo consistía en compartir el código fuente del software con la comunidad tecnológica y, de esta manera, impulsar su desarrollo, asegurando una mayor visibilidad del proyecto para todos los usuarios.

imágenes de Eric Raymond y Bruce Perens

En 1998, Eric Raymond y Bruce Perens fundaron la Open Source Initiative (OSI) con el objetivo de establecer definitivamente los conceptos detrás de este nuevo modelo, ya utilizado por muchos. El enfoque inicial fue seleccionar las técnicas de desarrollo de software utilizadas por los partidarios del Software Libre y aislarlas de la filosofía característica del movimiento político, así como idealizar una etiqueta de nombre, mostrando la diferencia entre ambos - Open Source.

Open Source y Software Libre

Imagen animada de dos personajes con el mismo disfrace de hombre araña, uno señalando al otro

El Open Source y Software Libre no son cosas opuestas, pero tampoco son sinónimos, y la confusión entre los dos es bastante común. El Software Libre es un movimiento filosófico y político cuyo objetivo es garantizar a la comunidad de usuarios la libertad de ejecutar, copiar, distribuir, estudiar, modificar y mejorar el software en cuestión, no necesariamente significando la monetización del producto. A partir de estos conceptos, fue tomando forma un nuevo conjunto de técnicas y metodologías para el desarrollo de software.

Logotipos de la "Free Software Foundation" y la "Open Source Initiative

Open Source se refiere precisamente al modelo de negocio empleado por la comunidad de software libre para el desarrollo de sus proyectos, sin conexión con la filosofía característica del movimiento.

Vale la peña señalar que todos los proyectos de software libre son open source, pero no todos los proyectos open source son proyectos de software libre.

Un buen ejemplo sería un proyecto de Open Source que tiene algún software de cóigo cerrado como requisitos previos para su implementación. Esto viola los conceptos y filosofías del Software Libre, que valora un proyecto desarrollado en su totalidad por código abierto.

El nombre comúnmente dado al proyecto desarrollado dentro de la filosofía del Software Libre y con la práctica del Open Source es “Free/Open Source Software (FOSS)”.

Casos exitosos

Uno de los proyectos de software más famosos que utiliza Open Source como modelo de desarrollo es Linux o, más precisamente, Linux Kernel. Desarrollado en 1991 por Linus Torvalds, pretendía ser una versión de Open Source del sistema operativo Minix. Hoy en día, puede considerarse uno de los doftware más utilizados y exitosos de todos los tiempos, estando presente en varios Sistemas Operativos y sistemas de teléfonos Android.

imagen de Linus Torvalds y logotipo de Linux

Según Jim Zemlin, director ejecutivo de Linux Foundation, se agregan alrededor de 10.000 líneas de código al código fuente de Linux diariamente, se modifican 5.000 y se eliminan 8.000 líneas.

La empresa Red Hat fue una de las primeras en construir un modelo de monetización exitoso. Inicialmente, la empresa comenzó ofreciendo su propia distribución de un sistema operativo Linux, Red Hat Enterprise Linux, a empresas privadas interesadas en soluciones basadas en sistemas operativos. El software era gratuito y la monetización se basaba en servicios de soporte para el sistema. eso fue suficiente para convertir a Red Hat en uno de los líderes en su campo, y IBM lo compró por $38 mil millones en 2018.

Logotipo de RedHat

Licencias

imagen animada de un hombre mostrando una licencia en papel

Al iniciar un proyecto de Open Source, no basta publicar el código fuente en un repositoro público en Github. Para que un código sea verdadeiramente Open Source, necesitamos declarar el uso de una licencia en nuestro proyecto, y esta licencia debe cumplir con algunas características que definen Open Source:

  1. Redistribución gratuita: la licencia no restringirá la venta o distribución gratuita del software. No aceptará regalías ni ningún otro cargo en caso de venta.
  2. Código fuente: El programa debe incluir el código fuente o explicar una forma de obtenerlo y debe permitir una forma compilada de este código. No se permite la omisión deliberada del código fuente.
  3. Obras derivadas: La licencia debe permitir modificaciones y obras derivadas, permitiendo su distribución bajo la misma licencia que el software original.
  4. Integridad del código fuente del autor: La licencia puede restringir la distribución de código modificado solo si se otorga permiso para distribuir “patch files” con el código fuente con el fin de modificar el programa en un momento dado.
  5. No Discriminación contra Individuos o Grupos: La licencia no puede discriminar contra ninguna persona o grupo de personas.
  6. No discriminación en los campos de compromiso: La licencia no puede restringir el uso del software en un campo particular de negocios, investigación o empresa en general.
  7. Distribución de licencia: Los derechos asignados al proyecto por la licencia se aplican a todas las redistribuciones, y no hay necesidad de una licencia adicional para ellas.
  8. La licencia no puede ser específica del producto: Los derechos asignados a un proyecto no pueden depender de que el proyecto sea parte de una distribución de software específica.
  9. La licencia no puede restringir otro software: La licencia no puede imponer restricciones a otro software distribuido junto con el software con licencia.
  10. La licencia debe ser tecnológicamente neutral: Ninguna disposición de la licencia puede basarse en ninguna tecnología individual o estilo de interfaz.

Algunas de las licencias más utilizadas que cumplen con estos términos Open Source son:

Para conocer más sobre las licencias, visite nuestro artículo Cómo elegir una licencia para tu proyecto. (no tenemos el artículo en nuestra plataforma ESP. Link del artículo en PTBR: https://www.alura.com.br/artigos/como-escolher-uma-licenca-para-seu-projeto)

Eventos

Hacktoberfest

Hacktoberfest es un evento de celebración del Open Source promovido por DigitalOcean. A lo largo del mes de octubre, la comunidad tecnológica se reúne para aportar en diferentes proyectos e interactuar, compartiendo experiencias y amor por el Open Source.

Imagen publicitaria del Hacktoberfest 2021

FLISOL

El Festival Latinoamericano de Software Libre (FLISOL) (página en PTBR. Evaluar si lo mantenemos o no en el artículo) tiene como objetivo promover el uso del Software Libre, mostrando al público en general su filosofía, alcances, avances y desarrollo.

Logotipo de FLISOL

Conclusión

El Open Source enfrentó muchos prejuicios en sus primeros años, sin embargo, demostró ser un modelo extremadamente efectivo en el desarrollo de software. Mientras que las empresas que usan software propietario necesitan equipos de 30 a 50 mil desarrolladores trabajando en el código fuente, las empresas que usan Open Source tienen a disposición más de 30 millones de personas de la comunidad tecnológica que diariamente revisan los códigos, sugieren mejoras y participan activamente en la evolución del proyecto. ¡Varios proyectos increíbles han surgido de Open Source y muchos están por venir!

Autor: Bruno Divino

Bruno está estudiando Tecnología en Análisis y Desarrollo de Sistemas y es parte del equipo de Instructores aquí en Alura, enfocándose en Python/DevOps. Su objetivo es ayudar a cada estudiante de la mejor manera posible en su viaje de aprendizaje y fomentar constantemente la pasión por la tecnología.

Artículos de Tecnología > DevOps

En Alura encontrarás variados cursos sobre DevOps. ¡Comienza ahora!

Semestral

  • 265 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri powered by ChatGPT

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 6 meses
US$65,90
un solo pago de US$65,90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Anual

  • 265 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri powered by ChatGPT

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 12 meses
US$99,90
un solo pago de US$99,90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Acceso a todos
los cursos

Estudia las 24 horas,
dónde y cuándo quieras

Nuevos cursos
cada semana