Proyectos de Software de Código Abierto

El kernel de Linux

El kernel de Linux ha sido un proyecto de código abierto desde su inicio en 1991. Es la base de casi toda la infraestructura informática del mundo, desde las supercomputadoras más potentes hasta la mayor cantidad de dispositivos móviles, basados en Android, integran el kernel de Linux.

El kernel de Linux se ha vuelto omnipresente en una enorme gama de dispositivos y productos integrados, desde dispositivos de fitness personales como FitBit, casi todos los dispositivos DVR, los televisores, muchos sistemas automotrices, sistemas de entretenimiento, dispositivos médicos… la lista es infinita.

La comunidad de desarrolladores del kernel es grande y madura. Aunque todavía está dirigido por su fundador, Linus Torvalds, existe una estructura organizativa bien formada de grupos de desarrolladores, contribuyentes independientes, intercomunicados tanto por listas de correo, como por conferencias mundiales que cada año permite que pueden conocerse y trabajar en persona.

El ritmo de desarrollo del kernel es muy agil, publicandose una nueva versión cada 10-12 semanas. Literalmente, miles de desarrolladores (la mayoría de los cuales trabajan para empresas de hardware y software, así como para consorcios de colaboración industrial) participan activamente en el avance de las nuevas versiones.

El kernel de Linux se publica bajo GPL Versión 2, aunque hay algunas secciones que tienen licencia dual con otras licencias de código abierto.

Git

Git es un sistema de control de versiones distribuido que se utiliza en todo el mundo y en miles de productos colaborativos. Git fue creado por Linus Torvalds en 2005 para manejar la tarea cada vez más difícil de coordinar y consolidar el trabajo de los miles de contribuyentes del kernel de Linux.

Si bien ha habido sistemas de control de versiones desde que las personas han trabajado juntas, Git no tiene igual en su capacidad para facilitar el trabajo colaborativo entre personas a través de Internet.

También es la base de GitHub, que alberga más de cien millones de repositorios de proyectos de código abierto; o GitLab, otro hosting de repositorios de alta disponibilidad, que también maneja bastantes proyectos. La mayoría de estos proyectos de software de código abierto (OSS) en realidad fracasan, pero tener un espacio disponible, y sin coste en la mayoría de los casos, para estos proyectos ha permitido que tengan un inicio fácil y un camino directo para escalar a comunidades más grandes en caso de tener éxito. Como muchas otras herramientas (como compiladores y depuradores), Git también se puede usar en proyectos que no son de código abierto.

Apache

El trabajo en el servidor HTTP Apache comenzó en 1995. En la actualidad, es el servidor web más utilizado con aproximadamente el 50% de la cuota de mercado. Opera bajo el paraguas de Apache Software Foundation (ASF), mientras que el servidor se puede encontrar en el sitio web Apache HTTP Server Project. Es difícil hacer una estimación de la importancia de Apache; hay muchos proyectos relacionados que impregnan todo el espacio técnico internacional.

Apache se publica bajo la licencia de software Apache, que también ha sido adoptada por muchos otros proyectos. Siendo esta más permisiva que la GPL.

Python, Perl y otros lenguajes informáticos

Muchos lenguajes de computación se desarrollan utilizando métodos de código abierto. Ejemplos de estos lenguajes serían:

• Perl

• Python

• Rubí

• GCC y LLVM

• Rust.

Cada uno de ellos se acoge a diferentes tipos de licencia. Sin embargo, la licencia no se extiende a programas o bibliotecas, ni a ningún otro producto desarrollado utilizando el lenguaje.

En bastantes casos, los estándares del lenguaje pueden ser establecidos por algún tipo de organismo autorizado, pero puede haber múltiples implementaciones, algunos como OSS, pero otros no, como en el caso de C ++. O el lenguaje puede ser más cerrado (como C # o Java) en términos de no aceptar contribuciones más allá de la matriz.

TeX y LaTeX

• TeX fue inventado por Donald Knuth y lanzado por primera vez en 1978. Knuth es un científico informático extremadamente influyente, ampliamente reconocido por sus grandes contribuciones, en particular al análisis y desarrollo de algoritmos. TeX es realmente un sistema de composición tipográfica en lugar de un programa procesador de texto, y fue desarrollado desde el inicio para funcionar en cualquier tipo de hardware imaginable.

La mayoría de los usuarios de TeX utilizan versiones de nivel superior, como LaTeX, que son más fáciles de usar, y que a su vez pueden tener múltiples implementaciones; la versión LaTeX más popular es texlive.

La entrada de datos es en texto sin formato, en lugar del escenario WYSIWG que tienen las suites de oficina más populares, y tanto el uso de etiquetas de marcado como de macros son las que controlan la apariencia final de la salida.

Dada su procedencia, TeX fue ampliamente adoptado por los matemáticos y se utilizó una versión especializada, amstex, y más tarde AMS-LaTeX. Hasta la fecha, simplemente no hay otro sistema que pueda generar fórmulas y ecuaciones matemáticas también en TeX.

A partir de aquí, TeX y luego LaTeX se difundieron rápidamente a través de la comunidad educativa donde todavía es la forma dominante en muchas disciplinas, pero también se utiliza en muchos otros lugares.

Existen versiones especializadas o adiciones para que LaTeX funcione con una amplia variedad de lenguajes, y también hay extensiones para incrustarlo en otras aplicaciones y lenguajes de computación y viceversa, así como versiones WYSIWYG que algunos encuentran más fáciles de usar.

Y todo siempre ha estado bajo una licencia de código abierto.

GNU: gcc, gdb, etc.

El Proyecto GNU ha proporcionado muchos componentes esenciales para prácticamente todas las tecnologías informáticas modernas, bajo varias versiones de la GPL (Licencia Pública General).

Fue iniciado en 1983 por Richard Stallman, quien continúa en su papel más destacado. Su nombre significa Gnu’s Not Unix. Está muy relacionado con la Free Software Foundation (FSF). Y algunos de los productos más destacados que emanan del paraguas GNU incluyen:

• gcc, el compilador para C, C ++, Objective C y otros lenguajes de alto nivel.

• gdb, el depurador principal utilizado con gcc.

• glibc, la biblioteca de programas más fundamental y ampliamente utilizada. Muchas otras están estrechamente relacionadas con esta.

• bash, la shell de línea de comandos más común.

• coreutils, una extensa lista de programas básicos de línea de comandos.

Las herramientas GNU como gcc y gdb fueron esenciales para el desarrollo de Linux desde sus primeras etapas. La adopción de la GPL fue absolutamente esencial para el éxito del kernel de Linux y el auge de las distribuciones de sistemas operativos basados en él.

Windows System X y Desktop Managers

Hay una serie de componentes que se utilizan para crear la instancia de la interfaz gráfica de escritorio que se ve en cualquier computadora portátil o estación de trabajo Linux, que incluyen Windows System X. Básicamente es el software subyacente que maneja la pantalla básica, el dispositivo de entrada y otras operaciones puntuales. Una alternativa más nueva y segura, Wayland, está asumiendo su función actualmente.

GNOME, KDE, XFCE

Son frameworks de Desktop Managers que controlan el funcionamiento de las operaciones gráficas, operaciones de arrastrar y soltar, la apariencia del escritorio, etc. Todas estas son distribuidas y desarrolladas normalmente bajo licencias de código abierto. También hay muchas otras alternativas de administradores de escritorio que se utilizan en distribuciones especializadas y dispositivos integrados.

OpenStack, Kubernetes y otros proyectos

Hay muchos otros proyectos colaborativos a gran escala (así como pequeños) que se basan en software de código abierto. Algunos ejemplos serían:

• OpenStack

• Kubernetes

• ONAP

• Hyperledger

• Node.js

• Xen

y muchos más….