FreeBSD: el otro sistema operativo libre
Octubre 25 de 2.004
Por Manuel Alejandro Cerón Estrada.
Actualmente todos conocemos a GNU/Linux como el sistema operativo libre por excelencia, sin embargo, existen otros, menos conocidos, pero que también son muy buenos y presentan muchas ventajas. Uno de estos es FreeBSD, un sistema operativo Unix libre para PC basado en BSD[1]. Aunque no es muy usado, FreeBSD demuestra sus cualidades al ejecutarse en servidores de sitios web tan importantes como Yahoo, Hotmail, Mp3.com, y al usarse como base del gran Mac OS X[2].
El proyecto FreeBSD surge en 1993, tan solo dos años después de Linux, pero a diferencia de este, FreeBSD trata de ser un conjunto unificado, es decir, no existe un núcleo y aplicaciones de sistema desarrolladas por separado (Linux y GNU), sino que todo es desarrollado por el mismo equipo. En FreeBSD tampoco existe el concepto de distribuciones, o mejor dicho, solo existe una única distribución, de esta forma los usuarios no se confunden, porque siempre están usando lo mismo. FreeBSD se diferencia radicalmente de GNU/Linux en su licencia. Mientras la licencia de GNU/Linux (GPL) tiene copyleft[3], la de FreeBSD no, por lo que es posible hacer trabajos derivados de FreeBSD que sean software propietario, como es el caso de Mac OS X.
FreeBSD se ha destacado bastante bien en el campo de los servicios de Internet. Está especialmente diseñado para ser servidor web, de correo, de archivos, de bases de datos, entre otros. Se dice que FreeBSD es el mejor sistema operativo para servidores en cuanto a estabilidad, eficiencia y desempeño comparado con otros como GNU/Linux o Windows, comportándose muy bien en situaciones extremas de miles de consultas por minuto. Estas características se deben a que el núcleo de FreeBSD está especialmente optimizado para ciertas arquitecturas de hardware, razón por lo cual soporta pocas de estas si se compara con GNU/Linux. También se desataca por tener uno de los más avanzados sistemas de gestión de memoria que existen en el momento; haciendo un muy inteligente uso de la partición de intercambio.
El desarrollo de FreeBSD está muy bien organizado, sacando provecho de las enormes ventajas que trae el proceso de desarrollo de software libre. Básicamente cuenta con dos ramas de desarrollo: -stable y -current. La rama -stable es aquella que ha pasado por un estricto proceso de pruebas durante mucho tiempo, contiene solo aquellos paquetes que han demostrado una estabilidad perfecta. Esta rama es ideal para las grandes empresas (como Yahoo!) que necesitan que sus sistemas ni siquiera den la sensación de querer caerse y prácticamente nunca se reinician. Las versiones de la rama -stable tardan varios años en ser liberadas, pero en realidad son de mucha calidad. La otra rama, -current, es la versión de desarrollo de FreeBSD, es solo recomendable para los hackers y probadores del sistema operativo. Incluso se advierte que puede que la versión -current no funcione siempre, debido a que algunas de sus partes pueden estar en procesos de modificación o depuración. Cada cierto tiempo, el equipo de FreeBSD saca snapshots de la versión -current, que están probadas y funcionan, pero no tan bien como la versión estable. Estos snapshots son recomendables para las personas que quieren probar el software más nuevo, pero nunca para un servidor serio, donde la rama -stable es la única opción.
Otra característica interesante de FreeBSD es su sistema para manejar los paquetes de software. En este sistema operativo es posible instalar programas y librerías de dos formas diferentes: Usando paquetes binarios y usando ports. Los paquetes binarios son parecidos a los que se manejan en cualquier distribución de GNU/Linux, se instalan con la aplicación pkg_add, la cual se encarga de gestionar automáticamente las dependencias, al estilo de apt, urpmi o yum. El método de ports es el que me parece más interesante y el cual no es posible encontrar en las distribuciones de GNU/Linux, con excepción tal vez de Gentoo. Los ports son, en esencia, archivos del tipo Makefile[4] que están especialmente diseñados para hacer que las fuentes de un programa (independientes de la plataforma) se compilen especialmente para FreeBSD. Gracias a esto es posible, por ejemplo, compilar los programas con ciertas opciones de optimización específicos del procesador que estamos usando, quitar o cambiar opciones antes de compilar, aplicar parches, o simplemente hackear la aplicación. Pero los ports no terminan ahí, al igual que con el manejo de cualquier sistema de paquetes binarios, también se gestionan las dependencias, es decir que si, por ejemplo, se va a instalar una aplicación que depende de una librería, automáticamente se bajará, compilará e instalará dicha librería, antes de compilar el programa. El único inconveniente de los ports se ve en el caso de programas muy complejos, donde las compilaciones pueden durar mucho tiempo, en mi caso por ejemplo, compilar el Xfree86 duró más de una hora y media.
En la actualidad existe una enorme cantidad de paquetes disponibles para FreeBSD, sin embargo, todavía es poco si se compara con GNU/Linux. Afortunadamente FreeBSD cuenta con la capacidad de usar módulos de compatibilidad, lo que le permite ejecutar aplicaciones de otros Unix como GNU/Linux, Solaris, HP-UX, otros BSDs[5] e incluso de otro tipo como FreeDOS[6].
Desafortunadamente no todo es color de rosa con FreeBSD. En mi opinión, su defecto más grande consiste en que todavía está muy lejos de convertirse en un sistema operativo para el escritorio. El aspecto en el que más falla es en el de la disponibilidad de controladores para el hardware. El numero de estos para dispositivos como tarjetas de vídeo y sonido, winmodems escaners, se puede contar con los dedos de la mano. En mi caso, lo único que pude utilizar -a medias-, fue mi tarjeta de vídeo, debido a que es de una marca común. Los entornos de escritorio y aplicaciones gráficas para FreeBSD también son escasos, pudiéndose conseguir solo algunas versiones antiguas de KDE y GNOME. Por otro lado, la administración en general de este sistema operativo es más complicada que en la mayoría de distribuciones de GNU/Linux. El ritmo de desarrollo y el soporte también es mucho mejor en GNU/Linux, donde la comunidad es enorme. Esto se debe, en parte, a que los desarrolladores de software libre prefieren que sus aplicaciones sigan siendo libres y disgustan de que empresas conviertan todo su trabajo en software propietario, como pasa en el caso de FreeBSD.
En conclusión, por su estabilidad, seguridad, desempeño y eficiencia, FreeBSD se ha convertido en una excelente alternativa a Windows, GNU/Linux y Unix en el servidor. Sin embargo, por el momento se encuentra muy lejos de convertirse en una opción viable en el escritorio, donde GNU/Linux, MacOS X, y en especial Windows gobiernan.
Referencias
[1] BSD (Berkeley Software Distribution) es una versión de Unix, libre de código de AT&T (los propietarios de Unix), que fue desarrollada en los años 80 por estudiantes y profesores de la universidad de Berkeley en California Estados Unidos.
[2] El corazón de Mac OS X, el sistema operativo estrella de Apple, se llama Darwin y está basado en FreeBSD.
[3] Copyleft significa que los trabajos derivados del software libre deben, obligatoriamente, seguir siendo libres.
[4] Los Makefiles son archivos de texto que contienen información para la utilidad MAKE, la cual permite configurar, compilar, e instalar de forma fácil software distribuido en forma de código fuente.
[5] FreeBSD no es el único sistema operativo basado en FreeBSD, también existen otros como NetBSD, OpenBSD y DragonFly BSD.
[6] FreeDOS es una implementación libre del sistema operativo MS-DOS.
El contenido del material publicado por nuestros columnistas es responsabilidad de sus autores.
Para saber más sobre la programación y naturaleza de nuestros artículos y columnas, haga clic aquí.