Linux
comenzó como un proyecto de pasatiempo por Linus Torvalds en 1991. Hizo la
fuente disponible libremente y otros se unieron para formar este sistema
operativo de vanguardia. Su sistema no fue el primero desarrollado por un
grupo. Sin embargo, ya que fue un proyecto creado desde cero, los primeros
usuarios podían influir el rumbo del proyecto y asegurarse de que no se
repitieran los errores de otros UNIXes.
Los
proyectos de software toman la forma de código fuente, que es un conjunto de
instrucciones de cómputo legibles para el humano. El código fuente puede
escribirse en cualquiera de los cientos de lenguajes diferentes, Linux ha sido
escrito solamente en C, que es un lenguaje que comparte historia con el UNIX
original.
El
código fuente no se entiende directamente por el equipo, por lo que debe ser
compilado en instrucciones de máquina por un compilador. El compilador reúne
todos los archivos fuente y genera algo que se puede ejecutar en el equipo,
como el kernel de Linux.
Históricamente,
la mayor parte del software se ha publicado bajo una licencia de código cerrado,
lo que significa que obtienes el derecho a utilizar el código de máquina, pero
no puedes ver el código fuente. ¡A menudo la licencia dice específicamente, que
no se intente revertir el código máquina al código de fuente para averiguar lo
que hace!
El
Código Abierto toma una vista centrada en la fuente del software. La filosofía
de código abierto es que tienes derecho a obtener el software y modificarlo
para tu propio uso. Linux adoptó esta filosofía con gran éxito. La gente tomó
la fuente, hizo cambios y lo compartió con el resto del grupo.
Junto
a ésto, fue el proyecto GNU (GNU, no UNIX). Mientras que GNU estaba construyendo
su propio sistema operativo, eran mucho más eficaces en la creación de las
herramientas que están de acuerdo con el sistema operativo UNIX, como los
compiladores y las interfaces de usuario. La fuente era completamente gratuita,
así que Linux pudo enfocar sus herramientas y proporcionar un sistema completo.
Como tal, la mayoría de las herramientas que forman parte del sistema Linux
provienen de estas herramientas GNU.
Hay
muchas diversas variantes en código abierto, y los veremos en un capítulo posterior.
Todos coinciden en que debes tener acceso al código fuente, pero difieren en
cómo puedes, o en algunos casos, cómo debes redistribuir los cambios.