El proyecto GNU y FSF, su relación con Mach y Hurd

El proyecto GNU y FSF, su relación con Mach y Hurd

Mucho antes de que Linux Torvalds creara Linux, Stallman creó GNU, un proyecto que tenía un punto débil, el núcleo. GNU creado por Richard Stallman

Distribuciones Linux, el inicio de una gran familia
De Unix a Linux, historia y características
Registrando nuestro GNU/Linux y ser parte de la comunidad
Software libre, su definición y categorías
Escanear en Linux desde consola, problemas resueltos

Mucho antes de que Linux Torvalds creara Linux, Stallman creó GNU, un proyecto que tenía un punto débil, el núcleo.

GNU creado por Richard Stallman

GNU

GNU y la FSF

Mientras Richard Stallman trabajaba en el Laboratorio de Inteligencia Artificial del MIT (Instituto de Tecnología de Massachusetts) en 1971, pertenecía a una comunidad que compartía software que tenía mucho tiempo de existir.

Era ahí donde se usaba un sistema operativo de tiempo compartido llamado ITS (sistema de tiempo compartido incompatible), diseñado y escrito en ensamblador para el PDP (Procesador de Datos Programados).

En ese entonces el software compartido no se le llamaba software libre, pues ese término no existía.

En síntesis se permitía que personas de otras universidades o empresas portaran y usaran un programa.

Todo esto fue permitido durante años hasta que a comienzos de los 80 fue descontinuado la PDP lo que conllevó a que casi todos los programas se volvieran obsoletos.

Y fue así que el laboratorio adquirió un nuevo PDP-10 en 1982 con la desventaja de que era un sistema de uso compartido no libre.

Esto contravenía los principios éticos de la comunidad Hacker (Compartir el conocimiento) de la cual Stallman formaba parte, lo que hizo que buscara una forma de crear software libre sin restricciones.

 

GNU

Con todos los inconvenientes de la adquisición del PDP-10, Stallman decidió crear un sistema compatible con Unix para que fuera portable y sus usuarios pudieran migrar, llamándolo GNU, el cual es un acrónimo recursivo de “Gnu’s Not Unix” (GNU No es Unix).

Y ya que un sistema operativo no sólo es el núcleo, se previó agregar aplicaciones diversas como procesadores de comandos, compiladores, depuradores, editores de texto, ensambladores, intérpretes y programas de correo entre otros.

Siendo que el desarrollo de un sistema complejo es un proyecto de gran envergadura, Stallman decidió adaptar y usar las fragmentos existentes de software libre.

Así, TeX sería el principal compaginador de texto, y se utilizaría el sistema X Window como sistema de ventanas para evitar escribir otro.

Esto da como resultado que el proyecto GNU comience en 1984 y que no todo el software sea GNU.

Se incluyen programas hechos por terceros pero éstos son también, libres.

 

FSF

El proyecto GNU fue creciendo a tal grado que, en octubre de 1985 se creó la FSF (Free Software Foundation).

Una organización sin ánimos de lucro enfocada al desarrollo del software libre.

Y contrario a lo que se piensa, se puede obtener dinero con el software libre; la propia FSF subsiste gracias a los ingresos obtenidos de la venta de copias de programas, código fuente, manuales, todo esto respetando la licencia y permitiendo su libre uso y modificación.

Una de las metas de la organización era crear un Sistema Operativo, también libre, por lo cual se diseñaron 2 paquetes muy importantes: la biblioteca C y la Shell.

La biblioteca C, es la que permite que todos los programas se comuniquen con el sistema operativo, fue desarrollado por Roland McGrath, mientras que el Shell llamado BASH fue creado por Brian Fox.

 

Mach y Hurd

Mach y Hurd son los sistemas operativos del proyecto GNU.

En términos generales, un sistema operativo es el componente de software encargado de la interrelación de los programas con los componentes del equipo y del equipo con el usuario.

Una de las principales funciones del sistema operativo es la de servir de máquina virtual, ya que éste interactúa con el hardware, permitiendo al programador utilizar una serie de llamadas al sistema.

La otra gran función es la de controlar el acceso y la utilización de los recursos del sistema.

Además, también controla quien utiliza esos recursos y en qué momento, con esto se garantiza que todas las peticiones a los dispositivos se completen con éxito.

Un tipo de sistemas operativos reciente es el denominado Cliente/Servidor, que se conoce también como Microkernel, y puede ejecutarse en la mayoría de las computadoras.

Éste sistema sirve para una gran variedad de aplicaciones, por ello se llama de propósito general.

El núcleo del sistema establece la comunicación entre los clientes y los servidores.

Éstos deben tener mecanismos de protección y seguridad que serán filtrados por el núcleo del sistema que controla a su vez el hardware.

Uno de los precursores de éste tipo de sistemas operativos fue Mach y actualmente el proyecto GNU desarrolla el kernel Hurd, que ya se encuentra disponible.

 

Mach

GNU Mach fue desarrollado en 1990 por Carnegie Mellon University, en la Universidad de Utah, y es el micronúcleo del sistema GNU.

Un micronúcleo proporciona solamente una funcionalidad limitada, como anteriormente se indicó; el mínimo nivel de abstracción que se precisa por encima del hardware para ejecutar el resto del sistema operativo en el espacio de usuario.

Ventajas de Mach

  • Es software libre.
    • Cualquiera puede utilizarlo, modificarlo, y redistribuirlo bajo los términos recogidos en la Licencia Pública General de GNU (GPL).
  • Construido para perdurar.
    • Como micronúcleo que es, GNU Mach no implementa muchas de las características que se pueden encontrar en un sistema operativo, sino que solamente dispone del mínimo indispensable que se precisa para implementar encima de él un sistema operativo completo.
    • Esto significa que el mantenimiento de la mayoría del código del sistema operativo es ajeno a GNU Mach, y mientras que dicho código puede rediseñarse por completo, el código del micronúcleo, en
      comparación, permanecerá estable.
  • Es modular.
    • Mach es muy adecuado para SMP y técnicas de clústers de red.
    • El soporte multihilo se implementa a nivel de núcleo, y el propio núcleo saca partido de esa característica.
    • La transparencia de red a nivel de IPC hace que los recursos del sistema estén disponibles en todas y cada una de las máquinas.
  • Existe.
    • El micronúcleo Mach es software real y que funciona actualmente.
    • No se trata de un proyecto de investigación o de una propuesta.
    • No se tiene que esperar en absoluto para comenzar a utilizarlo o a desarrollarlo.
    • Mach se ha utilizado en numerosos sistemas operativos en el pasado, normalmente como base para un único servidor UNIX.
    • En el sistema GNUMach es la base de un sistema operativo multiservidor funcional, el Hurd.

GNU Mach es usado como micronúcleo en el sistema GNU/Hurd.

Además es compatible con otras distribuciones de Mach.

 

Hurd

El Hurd de GNU es el proyecto de reemplazo de GNU para el núcleo (`kernel‘) de Unix.

En un principio se iba a denominar Alix.

El proyecto GNU define a Hurd como:

“Una colección de servidores que se ejecutan en el micronúcleo Mach para implementar archivos de sistema, protocolos de red, control de acceso a archivos y otras características implementadas en el núcleo de Unix o núcleos similares (como Linux)”

Hurd significa Hird of Unix-Replacing Daemon, y Hird a su vez significa Hurd of Interfaces Representings Depth, es decir, sus nombres se forman con un doble acrónimo recursivo.

Ventajas del Hurd

  • Es software libre.
    • Cualquiera puede usarlo, modificarlo, y redistribuirlo bajo los términos de la GNU General Public License (GPL).
  • Es compatible.
    • EL Hurd provee un entorno de usuario y una programación amigable.
    • Para todas las intenciones y los propósitos, es un núcleo moderno del tipo Unix.
    • Usa la GNU C Library, cuyo desarrollo está cercano a estándares como ANSI/ISO, BSD, POSIX, Single Unix, SVID, y X/Open.
  • Está creado para sobrevivir.
    • Tiene una estructura orientada a objetos que le permite evolucionar sin comprometer su diseño.
    • Esta estructura ayuda al Hurd para que sobrepase un rediseño total y modificaciones sin tener que ser completamente reescrito.
  • Es escalable.
    • La implementación es multitarea para que así se ejecute eficientemente en procesadores simples y multiprocesadores simétricos.
    • Las interfaces del Hurd están diseñadas para permitir clústeres de red transparentes (colectivos), aunque esta característica no ha sido implementada todavía.
  • Es extensible.
    • El Hurd es una plataforma atractiva para aprender sobre el núcleo o para implementar nuevas ideas en la tecnología del mismo.
    • Cada parte del sistema está diseñada para ser modificada y extendida.
  • Es estable.
    • Es posible desarrollar y probar nuevos componentes del núcleo Hurd sin reiniciar la máquina (ni siquiera accidentalmente).
    • La ejecución de los componentes del núcleo no interfiere con otros usuarios, y no se requiere de algún privilegio especial del sistema.
    • El mecanismo para las extensiones del núcleo es seguro por el diseño: es imposible imponer cambios para los otros usuarios a menos que se tenga su autorización o que sea el administrador del sistema.
  • Existe.
    • El Hurd es software real que funciona.
    • No es un proyecto de investigación o un propósito.
    • No se tiene que esperar para empezar a usarlo y a desarrollarlo.

¿Por qué no se usa Hurd?

El Hurd, al igual que GNU Mach, la GNU C Library y otros programas GNU y non-GNU en el sistema GNU, proveen un sistema operativo completo.

Aún no se encuentra listo para su uso en producción.

Es por ello que se ha usado en su lugar el kernel Linux.

En la siguiente publicación veremos la historia y características de Linux

 

COMMENTS

WORDPRESS: 0