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.