En palabras simples, el kernel o núcleo de un sistema operativo es un componente de software que permite a las aplicaciones instaladas comunicarse con el hardware. En este post presentaremos una introducción breve al kernel Linux y al concepto de software libre, mientras que en los tres próximos entraremos más en detalle sobre sus características y cómo utilizarlo de acuerdo a nuestras necesidades.
Los orígenes del kernel Linux y del sistema operativo
Los primeros pasos hacia lo que actualmente conocemos como Linux fueron dados en el año 1991 por un estudiante de la Universidad de Helsinki (Finlandia) llamado Linus Torvalds, quien necesitaba un sistema operativo para su PC con procesador Intel 386. Debido a que las dos opciones que consideró (Unix y Minix) no cumplían con sus necesidades por cuestiones de costo o de funcionalidad, decidió comenzar a desarrollar uno por su cuenta. Sin embargo, lo que en realidad terminó por desarrollar fue el kernel, o núcleo, de un sistema operativo.
Los esfuerzos de Linus se vieron complementados por la iniciativa previa del proyecto GNU (http://www.gnu.org/home.es.html), liderado por un ex-científico del laboratorio de inteligencia artificial del MIT llamado Richard Stallman. En síntesis, lo que uno tenía le faltaba al otro, y al unir el kernel desarrollado por Linus con todas las herramientas desarrolladas por el proyecto GNU se obtuvo lo que hoy más apropiadamente conocemos como Sistema Operativo GNU/Linux (aunque por brevedad le llamamos simplemente Linux).
Licencias libres
El término Software libre se refiere al software que respeta la libertad de los usuarios y de la comunidad para ejecutar, copiar, estudiar, modificar, y distribuirlo (sea gratuita o comercialmente). Contrario a la creencia popular, cuando nos referimos a Software libre hacemos referencia a una cuestión de libertad y no al precio.
La licencia más utilizada en Linux es la licencia General Public License (GPL) de GNU. Sin embargo, hay otras licencias igualmente aceptables que cumplen con las condiciones necesarias (llamadas libertades) para representar software libre. Dichas libertades son las siguientes, de acuerdo al sitio del proyecto GNU:
- La libertad de ejecutar el programa como se desea, con cualquier propósito (libertad 0).
- La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
- La libertad de redistribuir copias para ayudar a su prójimo (libertad 2).
- La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3). Esto le permite ofrecer a toda la comunidad la oportunidad de beneficiarse de las modificaciones. El acceso al código fuente es una condición necesaria para ello.
Según Linus mismo comentara en una oportunidad, el haber liberado el código del kernel Linux bajo la licencia GPL fue la mejor decisión que había tomado en su vida. No es difícil ver la razón al considerar que lo que comenzó como un proyecto casero se convirtió con el tiempo en un esfuerzo colaborativo (¡y lucrativo!) del que participan actualmente miles de desarrolladores en todo el mundo.
PD: El próximo artículo de esta serie se encuentra en este link.