Linux #01.01 Conocer historia del sistema operativo GNU/Linux. Qué es Linux

La mayoría de los ordenadores de la actualidad están diseñados para que puedan ejecutar diferentes tareas o programas. Dichos programas pueden ser un procesador de textos, un programa para animación de gráficos tridimensionales o distintos tipos de juegos. Para su funcionamiento deben saber acceder a los recursos disponibles en el ordenador. Si cada programa actuase de forma independiente, provocaría graves problemas y conflictos, por ejemplo, tendrían libertad para escribir sus datos sobre los de otro, etc.

Para solucionar estos problemas se desarrollaron los Sistemas Operativos, aportando mecanismos y reglas de funcionamiento, permitiendo que los programas puedan acceder a los recursos del ordenador de una forma correcta. Esta fue la funcionalidad inicial de los sistemas operativos, pero se han ido añadiendo otras, como por ejemplo, la ejecución de programas, el control de la memoria del ordenador, la creación y control de interfaces gráficas de usuario, etc.

Hoy en día existen varios sistemas operativos dependiendo del tipo de ordenador en el que se va a ejecutar. Por ejemplo para los PC el sistema operativo más difundido es Microsoft Windows, tanto en las versiones 95, 98, 2000, NT 4.0 y XP. Otros sistemas operativos para este tipo de ordenadores son Solaris, OS/2, BeOS, Microsoft DOS, o uno de los sistemas operativos en más rápida expansión para PC, es GNU/LINUX.

¿Qué es Gnu y el Software Libre?

El movimiento del software libre, comienza a finales de la década de los sesenta, principios de los setenta. Cuando las grandes compañías de ordenadores no daban el valor que ahora se da al software. La mayoría eran fabricantes de ordenadores cuyos ingresos principales se obtenían vendiendo sus máquinas, a las que incorporaban algún tipo de sistema operativo y aplicaciones. Las universidades tenían permiso para estudiar el código fuente de estos sistemas operativos con fines docentes. Los usuarios podían solicitar el código fuente de drivers y programas para modificarlo conforme a sus necesidades. El software no tenía valor si no estaba acompañado por el hardware que lo soportaba. En este momento, los laboratorios Bell (ATT) diseñaron un sistema operativo llamado UNIX, cuya principal característica era la buena gestión de los recursos del sistema, su estabilidad y su compatibilidad con el hardware de diferentes fabricantes (para homogeneizar todos sus sistemas). Este hecho fue importante ya que todos los fabricantes tenían sus propios sistemas operativos incompatibles con los demás.

Las grandes empresas empezaron a darse cuenta del valor del software: la primera fue IBM que en 1965 dejó de dar el código fuente de su sistema operativo, a finales de los setenta Digital Research empezó a vender el suyo, etc. Esto hizo que todas las compañías se dieran cuenta que el software podía ser muy rentable y podía aportar muchos beneficios.

A partir de este momento, la mayoría de empresas empezaron a no dejar el código fuente de sus programas y sistemas operativos y empezando a vender sus programas como un valor añadido a su hardware. En este entorno tan cerrado, Richard Stallman (que trabajaba en aquel momento en el MIT, Massachusetts Institute of Technology) se sintió indignado al comprobar que era más difícil conseguir el código fuente de los programas que utilizaba para adaptarlos a sus necesidades.

A partir de ese momento, Stallman decidió iniciar un gran proyecto para intentar volver a abrir el código fuente de los programas. Conocedor de que no iba a conseguir que las compañías cedieran, se propuso crear su propio sistema operativo y aplicaciones iniciando un proyecto llamado GNU.

Para entender los motivos de Stallman de iniciar GNU basta con leer su primer manifiesto, documento donde explicó a toda la comunidad en qué consistiría el proyecto, cómo lo orientaría y por qué debía hacerlo. Empezó por describir el concepto de software libre y para qué veía necesario que programadores y desarrolladores del mundo contribuyeran con él. En muchas ocasiones se confunde el concepto de software libre con el de software gratuito (en inglés, free tiene los dos significados), en posteriores documentos se aclaró que el software libre no tiene por qué ser gratuito. Hay entender como software libre programas de los que podemos conseguir su código fuente, estudiarlo, modificarlo y redistribuirlo sin que nos obliguen a pagar por ello. Debemos tener claro que podemos pedir dinero por los programas y su código fuente, el soporte a ofrecer a los usuarios, los libros que vendamos o el material que proporcionemos. Pero no podemos obligar a los usuarios que no distribuyan el software que les hemos vendido. Es una forma diferente de entender el software a la que estamos acostumbrados. En muchos de los textos de la FSF (Free Software Foundation) se habla más de filosofía que de ingeniería. La filosofía que en la FSF se tiene del software lo define con las siguientes cuatro libertades:

  • La libertad 0 se refiere a la libertad de poder usar el programa para cualquier propósito.
  • La libertad 1 es la que permite estudiar cómo funciona el programa y adaptarlo a las propias necesidades. El acceso al código fuente es una condición necesaria para garantizar esta libertad.
  • La segunda libertad es la que permite distribuir libremente copias del software, ayudando al vecino.
  • La última libertad es la que permite mejorar el programa y hacer públicas las propias mejoras, en beneficio de toda la comunidad. El acceso al código fuente, asimismo, es un requisito imprescindible para asegurar esta libertad.

Para dar todas estas libertades al software se escribió la licencia, con la que se ha protegido todo este tipo de programas, la GPL (General Public License). Esta licencia pone por escrito las cuatro libertades.

Este proyecto lleva produciendo software desde 1984, comenzando con todo lo necesario para implementar un sistema operativo completo. Aunque es un proceso largo y complejo, desde el primer momento muchos programadores y desarrolladores de software apoyaron la idea de Stallman y empezaron a colaborar de forma gratuita. La comunidad crecía rápidamente, y empezaron a disponer de las herramientas necesarias (editores, compiladores, etc.) para implementar el núcleo del sistema operativo, que era la tarea que requería las herramientas que se estaban desarrollando. Siempre se quiso crear un sistema operativo parecido a UNIX y siguiendo las normas POSIX (Portable Operating System Interface). A pesar de que UNIX tenía sus problemas y carencias, era suficientemente bueno como para adaptarse a la mayoría de las necesidades. La tarea de diseñar y escribir el núcleo del sistema operativo se dejó para el final. Actualmente está por finalizar y permanece en fase de desarrollo

¿Qué es Gnu/linux?

En este contexto definido anteriormente, y cuando la FSF todavía no tenía ningún núcleo estable para su sistema operativo, un profesor Andrew Tanenbaum de la universidad de Holanda, escribió un sistema operativo para que sus estudiantes pudieran estudiarlo. Su idea era escribir un sistema operativo que fuera estudiado y modificado por cualquiera que quisiera. En 1987 se puso manos a la obra y llamó a su proyecto mini UNIX, dando lugar a MINIX. Como no utilizó ni una sola línea de código del UNIX de ATT, el código podía ser utilizarlo y modificarlo libremente.

El profesor Tanenbaum quiso crear un sistema simplemente orientado a la docencia, así que pensó que la mejor manera para ello era utilizando una arquitectura micro-kernel, la cual era fácil comprensión y aportaba tecnología novedosa para la época permitiendo versatilidad, multiplataforma, etc. El usar la arquitectura nombrada anteriormente ha sido uno de los puntos fuertes y débiles del MINIX. El sistema es tremendamente para su estudio y diseño, pero poco probable de utilizar en entornos reales. Al optar por hacerlo modular y muy pedagógico, nunca se tuvo la preocupación de la rapidez. De todas formas, el objetivo del profesor Tanenbaum se vio cumplido. MINIX ha ido evolucionando y hoy sigue existiendo y siendo usado para el estudio por muchos alumnos de universidades de todo el mundo.

A partir de este momento es cuando entra en juego Linux. Mientras la FSF continuaba con su proyecto proporcionando herramientas para la construcción de un sistema operativo, Tanenbaum orientaba MINIX a la docencia y muchas empresas hacían evolucionar sus versiones de UNIX. Un estudiante de la Universidad de Helsinki, Linus Torvalds, en agosto de 1991 decide crear un núcleo para un nuevo sistema operativo, Linux. . La primera aparición fue en un debate sobre MINIX y sistemas operativos. La gente de todo el mundo desde el primer momento empezó a interesarse por este nuevo sistema, que al utilizar el compilador e intérprete de comandos de GNU (gcc y bash), también tenía las características de software libre. Esfuerzos de muchos expertos en informática de todo el mundo hicieron posible este proyecto.

GNU/Linux se ha identificado durante mucho tiempo como el sistema operativo de los hackers por su difícil instalación, manipulación y falta de drivers. Fueron estos primeros usuarios los que diseñaron los drivers necesarios y los que dieron a conocer al mundo este sistema. El número de usuarios empezó a crecer y actualmente ya existen empresas y grupos de usuarios que crean sus propias distribuciones de GNU/Linux.

La licencia de Linux

La licencia de Linux no cuesta nada y fue creada para garantizar que esto siga siendo así.

Antes del proyecto GNU, los programadores que querían distribuir gratuitamente sus programas los ponían bajo el dominio público. El problema que originaba esto, es que empresas comerciales podían tomar el programa y, modificándolo un poco, ponerle licencia comercial. Esto ocurrió muchas veces. Un ejemplo de ello fue el primer navegador de páginas Web para Internet estaba en el dominio público (Mosaic). Como no existían restricciones de copyright, una empresa comercial tomo el software, le añadió algunas características y lo volvió un producto comercial, creando Netscape Navigator.

Una clasificación de las licencias se ve a continuación:

  • Comercial: Debe ser comprado, no puede ser distribuido, y solamente está disponible como código binario para los usuarios finales. Un ejemplo de este software es Microsoft Office.
  • Software de Evaluación: Son versiones con características limitadas de software comercial, que pueden ser distribuidas libremente y que intentan ser propaganda para el software comercial.
  • Uso no Comercial: Es software que es se puede usar gratuitamente por individuos e instituciones educativas. Las corporaciones deben comprar una licencia. Ejemplos son StarOffice y Netscape.
  • Shareware: Son versiones completas y de libre distribución, pero tienen una licencia que obliga a ser pagada para un uso prolongado del software. Ejemplos de esto son WinZip y WinAmp.
  • Freeware: Consisten en software que puede ser libremente usado y distribuido, pero está disponible solamente en forma binaria. Ejemplos de esto son Internet Explorer y Netmeeting.
  • Librerías Gratuitas: Son software que puede ser libremente usado y distribuido como código fuente y como binario, pero no puede ser modificado sin violar la licencia. Un ejemplo son las librerías de clases de C++.
  • Software de Fuentes Abiertas, estilo BSD: Un grupo cerrado de individuos crea el software y permite la libre distribución de los binarios y del código fuente. Aunque los usuarios pueden modificar el código, el grupo de desarrollo generalmente no usa las modificaciones de los usuarios.
  • Software de Fuentes Abiertas, estilo Apache: Es como el BSD, pero el grupo de desarrollo puede usar las modificaciones de los usuarios si son útiles.
  • Software de Fuentes Abiertas, estilo GNU GPL: Además de las características del estilo Apache, la licencia GPL (General Public License) requiere que todos los trabajos derivados del software deben estar también bajo esta licencia. Esta característica adicional, ideada por Stallman, es la que protege al software GNU de las empresas comerciales.

Originalmente Linus distribuía su kernel bajo una licencia particular que permitía su libre uso y distribución, pero prohibía su uso comercial o cualquier manera de usarlo para ganar dinero.

El kernel de Linux actualmente se distribuye bajo la licencia GNU GPL. Esto significa que el kernel se puede copiar, cambiar, distribuir, y cobrar una suma de dinero por él si se desea, pero no se le pueden quitar estos derechos a nadie. La persona que adquiera Linux tiene estos mismos derechos.

Cada uno de los programas en un sistema Linux tiene una licencia diferente y su autor original conserva el copyright. Cuando esto sucede, no ocurren problemas legales, sino que varios autores comparten el copyright. Casi todo el software para Linux está bajo la licencia GPL o una licencia gratuita similar, como el servidor X que está bajo la licencia MIT X.

Linux hoy en día

Podemos encontrarnos aproximadamente de 7 a 8 millones de computadores en todo el mundo en los que corre Linux.

Además, contando con miles de programadores que trabajan en encontrar soluciones al los problemas si es que se presentan.

Actualmente estamos en la versión de Kernel 2.4.20 que es compatible con una gran cantidad de arquitectura de hardware como Alpha, Amiga, Atari, IBM, Intel, Power PC/Macintosh, SGI, Sun SPARC y otras más.

En todas las plataformas o arquitectura de hardware Linux corre con mucha estabilidad y más rápido que otros sistemas operativos.

Resumen

  • Los Sistemas Operativos, aportan unos mecanismos y reglas básicas de funcionamiento, de forma que los programas puedan acceder a los recursos del ordenador de una forma adecuada.
  • Linux es un sistema operativo gratuito y de libre distribución inspirado en el sistema Unix, escrito por Linus Torvalds con la ayuda de miles de programadores en Internet.
  • Unix es un sistema operativo desarrollado en 1970, una de cuyas mayores ventajas es que es fácilmente portable a diferentes tipos de ordenadores, por lo que existen versiones de Unix para casi todos los tipos de ordenadores.
  • Richard Stallman creo el proyecto GNU, para intentar abrir el código fuente de los programas. Creo su propio sistema operativo y aplicaciones.
  • Debemos entender como software libre programas de los cuales podemos conseguir su código fuente, estudiarlo, modificarlo y redistribuirlo sin que nos obliguen a pagar por ello.
  • Linus Torvalds, estudiante de la Universidad de Helsinki, creó en agosto de 1991 su propio núcleo para un nuevo sistema operativo, Linux.