domingo, 1 de abril de 2018

01 - GNU/Linux

Los inicios

  • A finales de los 60 los ordenadores eran máquinas pesadas y  raras que sólo se podían encontrar en las Universidades y centros de investigación. El software era libre porque los programadores mantenían su código fuente abierto y colaboraban entre sí a través de Internet, construida toda ella con software libre.
  • El sistema de referencia era UNIX propiedad de Bell (AT&T). Su código era distribuido libremente a empresas y universidades por un precio simbólico pero no se explotaba de manera comercial debido a su calidad de monopolio.
  • En 1984 la ley anti-monopolio EEUU obligó a la compañía a dividirse y UNIX cerró su código y comenzó a comercializarse.
  • Paralelamente se abaratan los ordenadores y se hacen más ligeros, nace la informática doméstica. Las empresas obligaron a sus programadores a firmar acuerdos de no revelación, por los que se comprometían a cerrar el código, y los programas comenzaron a venderse sin facilitar su código fuente.

Richard Stallman. Proyecto GNU




  • Stallman inicia el proyecto de crear un SO similar a UNIX™, pero con una licencia que permita el acceso al código fuente, además de la libre distribución y copia. Abandona el laboratorio de Inteligencia Artificial del MIT (Instituto Tecnológico de Massachusetts) donde había trabajado hasta entonces.
  • Llamó al proyecto GNU (GNU is Not Unix), cuyo emblema sería un ñú. Para proteger al nuevo sistema se creó la licencia GNU/GPL (Licencia Pública General GNU) y el copyleft (opuesto al copyright), que garantiza la libertad de uso, copia y modificación, y obliga a distribuir el código fuente junto con los ejecutables. GNU tuvo una gran acogida y cientos de programadores de todo el mundo se identificaron con su manifiesto fundacional y comenzaron a colaborar y producir componentes del futuro SO libre.
  • 1985, Stallman comienza a construir GCC, el compilador GNU para el lenguaje C, verdadera pieza clave en el desarrollo del sistema. Actualmente, es capaz de trabajar con 7 lenguajes de programación diferentes (Java, Ada, Fortran, ...)
  • También crea la FSF, Free Software Fundation para dar cobertura legal al proyecto y canalizar las ayudas económicas. Actualmente la FSF promueve el desarrollo y uso del software libre, particularmente del SO GNU, y defiende los derechos de los usuarios a copiar, estudiar, modificar y redistribuir los programas informáticos.
  • 1990, GNU estaba casi completo pero faltaba un componente esencial: el núcleo (kernel).  Sin núcleo no puede haber SO y aunque se había trabajado en GNU Hurd no se habían conseguido resultados efectivos.

Linus Torvalds. El kernel Linux


  • 1991, Torvalds, estudiante finlandés de 21 años desarrolla como proyecto fin de carrera un núcleo compatible con Unix, que denominó Linux. Se inspiró en Minix, un pequeño Unix desarrollado por el profesor Andrew Tanenbaum y se convierte en el primer kernel libre y operativo.
  • 1994 se libera la versión 1.0.0, ya lista para sistemas en producción. A partir de esta versión, se combina Linux con el sistema no completo GNU y resulta un SO libre completo cuyo nombre correcto es GNU/Linux, no solo Linux. El SO no es sólo el núcleo, sino muchas otra piezas de software que se escribieron con anterioridad sin las que hubiera sido imposible tener algo funcional e incluso construirlo.
  • 1996 ve la luz el kernel 2.0.0 ya asociado con la mascota del pingüino (llamada Tux). En la actualidad el kernel Linux está disponible para un gran variedad de arquitecturas y goza de un gran prestigio en la comunidad informática como fiable, sólido y seguro.

Versiones del kernel

El núcleo ó kernel es un software que representa el corazón del SO, responsable de facilitar a las aplicaciones acceso seguro al Hardware. Este software actúa en modo privilegiado (sin restricciones)  realizando funciones como:

  • Administrar la memoria
  • Planificar el procesador
  • Administrar el sistema de archivos
  • Administrar los periféricos.

En cada momento tenemos siempre dos versiones del núcleo: versión de producción y versión de desarrollo.
  • Producción es la versión estable en el momento. Esta versión es la que se debería utilizar para un uso normal del sistema.
  • Desarrollo es experimental y es la que usan los programadores para crear y verificar nuevas características. Estos núcleos sueles ser inestables y no deberían ser usadas en equipos en producción.
El número de versión asociado al núcleo tiene un sentido muy particular ya que está ligado a su desarrollo. Las versiones del kernel se numeran con 3 cifras de la siguiente manera: XX.YY.ZZ, donde:
  • XX: indica la serie principal del kernel. Actualmente está la serie 3. Este número cambia cuando la manera de funcionamiento del kernel ha sufrido una modificación importante.
  • YY: Indica si la versión es de desarrollo (número impar) o producción (número par).
  • ZZ: Indica revisiones menores dentro de una versión en las que se han corregido fallos de programación.
Ejemplos:
  • 2.4.0. Kernel de la serie 2 (XX=2), versión de producción 4 ( YY=4 ya que es par), primera versión del 2.4 (ZZ=0)
  • 2.6.17. Kernel de la serie 2, versión 6, en la que se han corregidos errores de programación de la versión 2.6.0

Distribuciones GNU/Linux



Por su propio espíritu el Software libre se ramifica en una serie de comunidades de usuarios y programadores aglutinados en torno a proyectos surgidos de necesidades concretas. Este modo de desarrollo produce una cierta dispersión del software disponible en cada momento y no existe una entidad autorizada o centralizada responsable de GNU/Linux. No obstante para que un SO funcione sin problemas y sea fácil de instalar es necesario un trabajo de coordinación de sus distintos componentes:
  • Kernel
  • Librerías
  • Aplicaciones de usuario
  • Entorno gráfico, etc.
Este trabajo de configuración y mantenimiento se realiza en los SO libres bajo el soporte de las llamadas distribuciones.

Una distribución es por tanto un sistema GNU/Linux que integra un kernel, un conjunto de aplicaciones de sistema y una colección de programas de usuario listo para instalar

Actualmente existen más de 300 distribuciones de GNU/Linux y su número es creciente en la medida en que cada vez resulta más fácil hacer una distribución propia a partir de las existentes. Esto puede sorprender o desorientar a los usuarios del sistema Windows que están acostumbrados a una única interfaz para todas sus versiones. No obstante esta diversidad permite que distintos usuarios puedan usar GNU/Linux de acuerdo con sus necesidades.

De entre las distintas distribuciones destaca, por su fidelidad al proyecto GNU, Debian (http://www.debian.org/).


Debian fue fundada en agosto de 1993 por Ian Murdock (http://www.ianmurdock.com/), por entonces estudiante de la Universidad de Purdue (en Indiana, EEUU), quien desde el primer momento pensó en construir una distribución GNU/Linux de forma abierta y comunitaria, desvinculada de intereses comerciales particulares. Unos meses después, en enero de 1994 el proyecto ya contaba con unas docenas de entusiastas y publicaba un manifiesto fundacional con su declaración de intenciones. En el Manifiesto auguraba por un lado que las distribuciones iban a adquirir un papel estratégico en la difusión de sistemas GNU/Linux, como así ha sido, y constataba por otro lado las carencias cada vez mayores que padecían las distribuciones comerciales: sistemas descuidados y cada vez más inconsistentes, mezcla de software libre y no libre, dificultad para que los usuarios pudieran tomar decisiones o interviniesen en su mejora, etc.

Ian Murdock contó con el apoyo de la Free Software Foundation y, durante un período clave para su consolidación (1994-1995) la FSF estuvo financiando el proyecto Debian. En la actualidad Debian cuenta con una importante comunidad oficial de mas de un millar de desarrolladores, a la que hay que sumar una aun más numerosa comunidad de usuarios, extraordinariamente activa, que se coordina a través de más de 100 listas de correo. El resultado es un sistema operativo libre traducido a decenas de idiomas, con una oferta de más de 15000 paquetes listos para ser instalados y que soporta hasta 11 arquitecturas diferentes desde los ordenadores personales a grandes máquinas en universidades y centros de investigación.

Para canalizar las donaciones económicas, gestionar los bienes y representar jurídicamente a la comunidad se ha creado la Software in the Public Interest, Inc. (SPI), una organización sin ánimo de lucro cuyo objetivo es ayudar a Debian y a otras organizaciones similiares a desarrollar software libre. El nombre de esta distibución tiene un origen romántico, se basa en la contracción del nombre de su creador, Ian Murdock y el de su esposa Debra.

La comunidad oficial de desarrolladores de Debian, a la que se accede tras superar unas pruebas, se ha dotado de un "Contrato Social" que expresa un compromiso público con los usuarios. El Contrato Social (http://www.es.debian.org/social_contract.es.html) consta de cinco puntos:
  • Debian permanecerá 100% libre.
  • Contribuiremos a la comunidad del software libre liberando las herramientas que Debian desarrolle, difundiendo al máximo su uso, comunicando y solucionando errores y proponiendo mejoras a los creadores de software libre.
  • No se ocultarán problemas a los usuarios, manteniendo una base de datos pública en la que cualquier notificación de error se hará inmediatamente visible para el resto.
  • Nuestras prioridades son nuestros usuarios y el software libre.
  • No se pondrán dificultades al uso de software no libre en Debian.
Esta filosofía junto con una excelente calidad tecnológica le han ganado a Debian el prestigio de ser la distribución libre por excelencia, alejada de intereses comerciales y en el mejor espíritu del proyecto GNU y la FSF.

Estos cinco puntos han jugado también un papel clave en la adopción de soluciones basadas en Debian por parte de administraciones públicas y organizaciones o proyectos sin ánimo de lucro. La Junta de Extremadura o la de Andalucía han sido pioneras pero pronto se sumarán a ellas otras administraciones públicas españolas.

Debian ofrece también la base tecnológica y la inspiración filosófica para otras distribuciones que derivan de ella como Knoppix o Ubuntu de gran popularidad y facilidad de uso.
El 8 de julio de 2004 el sudafricano Mark Shuttleworth y la empresa Canonical Ltd. anunciaron la creación de la distribución Ubuntu. Tras varios meses de trabajo y un breve período de pruebas, la primera versión de Ubuntu fue lanzada el 20 de octubre de 2004. A lo largo de 2005 esta distribución, basada en Debian y en el escritorio GNOME, ha ido sumando usuarios hasta convertirse a día de hoy en una de las mejores y más populares versiones de GNU/Linux. 

Por qué este fulgurante despegue en el competitivo mundo de las distribuciones ¿Qué hace a Ubuntu diferente?

  • Publicación regular y previsible de nuevas versiones cada seis meses.
  • Ubuntu incluye un número cuidadosamente seleccionado de paquetes provenientes de la distribución Debian, y conserva su eficaz sistema de mantenimiento de paquetes que permite la instalación y desinstalación de programas de un modo fácil y limpio.
  • La lista de Ubuntu se reduce a un número pequeño de aplicaciones fundamentales y de alta calidad.
  • Envío gratuito de los cd por correo con tan sólo solicitarlos desde su página web.
  • Es probablemente la distribución actual que mejor soporte ofrece para el moderno hardware informático.
  • Cada versión de ubuntu se distribuye en dos modalidades: workstation (estación de trabajo) y server (servidor).
  • Soporte garantizado y gratuito durante 18 meses. LTS es una versión especial y tiene 3 años de soporte para la edición desktop y 5 para la edición server, LTS (Long-Term Support).
  • Un icono en su escritorio le informará de que hay actualizaciones disponibles, puede descargarlas e instalarlas completamente gratis sin necesidad de ningún tipo de registro.
  • Insistencia en lo humano por encima de lo tecnológico. Ubuntu es una palabra que viene de las lenguas zulú y xhosa y que puede traducirse como "humanidad hacia los demás" o también "La creencia en un enlace universal de compartir que conecta a toda la humanidad".
  • Ubuntu siempre será gratuito, y no habrá un coste adicional para la «edición empresarial»
  • Ubuntu usa lo mejor en infraestructura de traducciones y accesibilidad que la comunidad del Software Libre es capaz de ofrecer, para hacer que Ubuntu sea utilizable por el mayor número de personas posible.
  • Ubuntu está totalmente comprometido con los principios del desarrollo de software de código abierto;animamos a la gente a utilizar software de código abierto, a mejorarlo y a compartirlo.

Ubuntu se ha convertido en una gran distribución, consiguiendo a gran velocidad lo que a otros ha costado años. Esto se debe posiblemente a una combinación de factores.

Ubuntu es un proyecto ideado por el emprendedor multimillonario Mark Shuttleworth, conocido también por ser el primer astronauta africano y segundo turista espacial de la historia, que tras fundar la compañía de certificados digitales Thawte en la cochera de su domicilio, logró venderla cuatro años después a la empresa VeriSign por 575 millones de dólares estadounidenses en pleno boom de las punto.com.

Distribuciones basadas en Ubuntu.

Variantes oficiales


Con el escritorio KDE en lugar de GNOME.






Con el entorno de escritorio XFce, más ligero que KDE o GNOME y que permite por tanto su utilización en máquinas con pocos recursos. 



 






Pensada para el entorno escolar y se basa en la tecnología de clientes ligeros que permite reutilizar ordenadores antiguos: un único servidor central al que se conectan varios clientes.
Variantes institucionales

  • Guadalinex V3 promovida por la Junta de Andalucía.
  • MAX 3.0 promovida por la Consejería de Educación de la Comunidad de Madrid
  • MoLinux promovida por la Junta de Comunidades de Castilla-La Mancha
Otras distribuciones
  • Knoppix que popularizó el concepto de live cd que permite probar linux sin instalarlo y propició el acercamiento masivo a Debian que hasta entonces se había visto como una alternativa sólo para expertos. Incorpora el entorno de escritorio KDE.
  • Gnoppix como knoppix pero con el entorno GNOME. Se distribuye como live cd y está basada en Ubuntu.
  • Linspire, originalmente conocida como Lindows, es una distribución comercial y de pago desarrollada por la empresa del mismo nombre y orientada a la facilidad de uso. La compañía presenta como uno de sus principales activos la tecnología clic and run (CNR) que permite a los usuarios descargar e instalar miles de programas con tan sólo un clic de ratón.
  • GnuLinex promovida por la Junta de Extremadura, basada en Debian. Ocupó la portada de todos los periódicos al ser utilizada en una de las primeras y más grandes implementaciones de Software libre del mundo: unos 80.000 ordenadores en los centros educativos de la comunidad.
Otras distribuciones GNU/Linux que se consideran emblemáticas.

  • RedHat. Actualmente RedHat es una distribución comercial que incluye partes no libres.
  • Fedora Core  es una distribución enteramente libre desarrollada por la comunidad de RedHat.
  • Mandriva Linux, antes conocida como Mandrake era una derivación francesa de RedHat.
  • Slackware es la más veterana de las distribuciones GNu/Linux. Su meta ha sido siempre la simplicidad y la estabilidad. La interface del programa de instalación es de texto, y necesita un mayor conocimiento de Linux que la mayoría de las otras distribuciones.
  • Suse es una de las principales distribuciones GNU/Linux existentes a nivel mundial. Es una de las más sencillas de instalar y administrar. Actualmente es propiedad de Novell que ha anunciado la intención de crear la comunidad abierta OpenSuse que complementaría los desarrollos de SuSe Linux Enterprise, en una estrategia similar a la seguida por Red Hat con Fedora.

Linux en la educación

Justificación filosófica



Si el conocimiento no se comparte se niega la posibilidad de su transmisión y, por consiguiente, de la educación misma. Ocultar el conocimiento nunca ha formado parte de los manuales ni de la ética profesional de los docentes. Cuando un profesor enseña a sus alumnos con una aplicación propietaria se coloca en una auténtica encrucijada, porque esto obliga al alumno a comprar el software o a copiarlo ilegalmente. Ahora bien, si el profesor no le deja copiar el programa está negando su ayuda y si lo deja copiar está enseñando al alumno que se puede violar la ley cuando ésta no interesa. 

  • Enseñar con GNU/Linux implica trasmitir el espíritu de colaboración y cooperatividad base de cualquier empresa de conocimiento.
  • El software libre es en sí mismo educativo por los valores que le acompañan. Es la búsqueda dinámica y transparente del conocimiento lo que se comparte por la comunidad, pues es su mayor activo económico y cultural.
  • Es necesario apostar por la convivencia informática de herramientas propietarias y libres, porque combinadas alcanzan un mayor afrontamiento informático de la realidad, solucionando y rentabilizando los productos ya adquiridos.

Justificación Técnica

  • Código abierto. Se pueden reutilizar fragmentos de código de cualquier programa o incluso modificar el programa para las propias necesidades. En el caso que la enseñanza sea para informáticos, la disponibilidad del código fuente es fundamental. Leer código es una buena forma de aprender a programar.
  • Soporte más amplio. En la red existen grupos de usuarios muy activos y organizados que se ayudan entre sí. Si uno tiene un problema puede dirigirse a ellos para tratar de resolverlo.
  • Auditable y Resistente a virus. Puede inspeccionarse su código fuente para detectar errores de programación o seguridad. Nadie puede colarnos una puerta trasera con propósitos no declarados. Se gana por tanto en seguridad.
  • Formatos estándar. El software propietario usa por defecto formatos de datos también propietarios y cerrados tales como el .doc de Microsoft Word™ que únicamente pueden ser recuperados por la aplicación que los generó. Cuando creamos un documento con el propósito de difundirlo debemos usar formatos libres y abiertos (como .txt, .ps, .html), puesto que usar un formato propietario obliga al receptor a comprar el programa para leerlo y aceptar la licencia que lo acompaña. 
  • Seguridad y fiabilidad. No se puede dañar el sistema ni voluntaria ni accidentalmente. Los niveles de seguridad del sistema son tales que no será preciso reinstalar el software casi de contínuo como sí que está ocurriendo en nuestras actuales aulas de informática.
  • Reutilización de equipos. Los equipos que han sido arrinconados porque no pueden mover las últimas versiones de software propietario, podrán volver a utilizarse de diversos modos. Probablemente no serán capaces de ejecutar entornos de escritorio como el GNOME o KDE, pero existen distribuciones que permitirán volverlos operativos con un alto nivel de productividad.
Uno de los problemas más graves que tiene en la actualidad GNU/Linux es la escasez de controladores para el hardware más moderno, lo que repercute en que alguno de los componentes de su recientemente adquirido ordenador no sea correctamente detectado e instalado.

Los fabricantes tienden cada vez más a mantener en secreto las especificaciones del hardware. Esto dificulta enormemente la tarea de escribir controladores para que Linux sea compatible con el hardware nuevo. "Hoy contamos con sistemas libres y completos, pero no durarán mucho si no son compatibles con  los ordenadores del mañana".

Hay dos formas de enfrentarse a este problema:
  • Los programadores pueden hacer ingeniería inversa para descubrir cómo crear programas compatibles con el hardware.
  • Los usuarios podemos comprar únicamente el hardware compatible con Linux. A medida que aumente el número de usuarios de software libre el secretismo de estas especificaciones se convertirá en una política contraproducente.