lunes, 18 de abril de 2022

01 - GNU/Linux

Un poco de historia 
[Fechas aproximadas]

En los años 70

Unix era el sistema operativo de referencia, se distribuía su código fuente a Universidades y empresas y no se explotaba comercialmente. También el software era libre y la comunidad se encargaba de su mantenimiento. Unix, escrito en ensamblador se reescribe en lenguaje C y se extiende de forma imparable al poder instalarse en todas las arquitecturas

En los años 80

Coincidiendo con el PC, Unix cierra su código y comienza a comercializarseLas empresas obligan a sus programadores a firmar acuerdos de no revelación, por los que se comprometían a cerrar el código. Se comercializa el software pero ya no se facilita su código fuente.


RICHARD STALLMAN

gurú de programación, comienza su proyecto GNU (GNU is Not Unix)porque no quiere subirse al tren de los cambios hacia el que se dirige el software. La idea es crear un SO similar a Unix, de libre distribución y con acceso a su código fuente. Se propone extender el proyecto a toda la comunidad y para ello crea:
  • La licencia Pública General (GPL) 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.
  • Comienza a construir el compilador GNU para el lenguaje C (GCC), verdadera pieza clave en el desarrollo del sistema. Actualmente, es capaz de trabajar con 7 lenguajes de programación diferentes (Java, Ada, Fortran, …)
  • Fundación para el software libre (FSF), para dar cobertura legal al proyecto y canalizar las ayudas económicas defendiendo los derechos de los usuarios a copiar, estudiar, modificar y redistribuir los programas informáticos.

En los años 90

GNU estaba casi completo pero faltaba lo esencial: el Kernel. El Kernel sobre el que se había estado trabajando, GNU Hurd, no daba los resultados esperados.

TANENBAUM Y LINUS

Inspirándose en Minix, un pequeño clon de Unix escrito con fines didácticos por el profesor Tanenbaum, Linus Torvalds, estudiante finlandés de 21 años, desarrolla como proyecto fin de carrera un núcleo compatible con Unix, que denominó Linux y pasó  a ser el primer kernel libre y operativo.

GNU encuentra la pieza que le faltaba para independizarse por completo resultando un SO libre completo cuyo nombre correcto es GNU/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.

El resto ya lo conocemos, en 1996 ve la luz el kernel 2.0.0 ya asociado con la mascota del pingüino, 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.

Kernel

Recordando la primera evaluación, el núcleo interacciona con el hardware del ordenador a través de una  capa de abstracción de hardware que funciona como interfaz entre software y hardware y permite que las aplicaciones sean independientes del hardware donde se ejecutan (Hardware Abtraction Layer, HAL). El kernel se encarga de funciones imprescindibles como administrar la memoria, planificar la CPU o administrar el sistema de archivos y los periféricos entre otras.

Capa de Abstracción Hardware del Kernel

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. Todos estos proyectos necesitan de un trabajo de coordinación que permita integrar diferentes componentes del SO, Kernel, Librerías, Aplicaciones de usuario, Entorno gráfico, etc.

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.

Existen en torno a 600 distribuciones Linux para escritorio, servidores y empresas, algunas de las cuales son muy conocidas ya, por ejemplo

Debian 

Con excelente calidad tecnológica y 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.

Ubuntu

Basada en Debian, ha ido sumando usuarios hasta convertirse a día de hoy en una de las mejores y más populares versiones de GNU/Linux. Tiene otras versiones oficiales como Edubuntu o Xubuntu para entornos educativos o maquinas con pocos recursos.

RedHat, Fedora, Mandriva, Slackware o Suse

¿Por qué Linux?

Código abierto
Se pueden reutilizar fragmentos de código de cualquier programa o incluso modificar el programa para las propias necesidades. 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
Como se puede ver el código fuente nadie puede colarnos una puerta trasera con propósitos no declarados.

Reutilización de equipos
Siempre existen distribuciones que permiten volver operativos con un alto nivel de productividad equipos que se van quedando atrás

Seguridad y fiabilidad
No se puede dañar el sistema fácilmente lo que reduce  mucho el mantenimiento continuo