# FreeBSD: Una alternativa de código abierto a Linux®

### Dru Lavigne

`<dru@isecom.org>`

$FreeBSD: doc/es_ES.ISO8859-1/articles/linux-comparison/article.sgml,v 1.1 2007/11/19 20:06:57 carvay Exp $

Copyright © 2005 Dru Lavigne

FreeBSD is a registered trademark of the FreeBSD Foundation.

Linux is a registered trademark of Linus Torvalds.

UNIX is a registered trademarks of The Open Group in the United States and other countries.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol.

La redistribución y uso en fuente (SGML DocBook) y formatos 'compilados' (SGML, HTML, PDF, PostScript, RTF y cualquier otro) con o sin modificación, esta permitida siempre y cuando se cumplan las siguientes condiciones:

1. La redistribución del código fuente (SGML DocBook) debe contener esta información de copyright, esta lista de condiciones y el siguiente texto como las primeras líneas del fichero sin modificar.

2. La redistribución en formatos compilados (transformado a otros DTDs, convertidos a PDF, PostScript, RTF y otros formatos) debe reproducir el siguiente texto de copyright, esta lista de condiciones y el siguiente texto en la documentación y/u otros materiales entregados con la distribución.

> Importante: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

El propósito de este artículo es explicar algunas de las características y ventajas de elegir FreeBSD; cuando es posible hacerlo se comparan dichas características con las de Linux®. Este artículo debería ser un punto de partida para quienes debería ser un punto de partida para quienes tengan interés tengan interés en alternatívas a Linux en el ábito del código abierto.

Traducción de Gábor Kövesdán `<gabor@FreeBSD.org>`.

[ Split HTML / Single HTML ]

## 1. Introducción

FreeBSD es un sistema operativo de tipo UNIX® derivado de Berkeley Software Distribution. Aunque FreeBSD y Linux parecen con frecuencia muy similares existen notables diferencias:

1. Linux es solamente un kernel. Las distribuciones (p.ej. Red Hat, Debian, Suse, etc) disponen de instalador y de utilidades de usuario. En http://www.linux.org/dist se muestran más de 300 distribuciones distintas. Aunque por una parte tanta variedad proporcione la máxima flexibilidad posible, la existencia de tantas distribuciones pone trabas a los usuarios cuando tiene que aplicar su experiencia con una distribución al usar otra diferente. Las distribuciones no solamente se diferencian en la facilidad de instalación o los programas que incluyen; también hay diferencias en la estructura de directorios, las shells y gestores de ventanas que ofrecen y el procedimiento de instalación o parcheo de software.

   FreeBSD es un sistema operativo completo (kernel y utilidades) en el que se respeta la herencia del desarrollo original de UNIX.[1] Dado que es el mismo grupo de ingeniería de releases el que controla tanto el kernel como las utilidades, la probabilidad de incompatibilidades entre bibliotecas es menor. El equipo de seguridad gestiona de un modo más rápido las vulnerabilidades de seguridad. Si quiere conocer las nuevas utilidades que se van añadiendo al kernel solo debe seguir un fichero, las “Release Notes”, que están en la página principal de FreeBSD.

2. FreeBSD tiene un grupo de desarrollo grande y bien organizado, lo que asegura que los cambios se implementen de una forma rápida pero controlada. Hay varios miles de programadores que aportan código regularmente, pero sólo unos 300 de ellos tienen lo que se denomina “commit bit”, con el que pueden aplicar cambios directamente en el kernel, las utilidades y la documentación. El grupo de ingeniería de “releases” se encarga del control de calidad de las “releases”, mientras que el equipo de seguridad se responsabiliza de los problemas de seguridad. Además de estos grupos hay otro denominado “Core Team”, compuesto por ocho desarrolladores veteranos que supervisan las directrices de desarrollo del proyecto como un todo.

   Los cambios que se hacen en el kernel de Linux, en cambio, han de esperar hasta que el responsable del código del kernel, Linus Torvalds, los apruebe. En cada una de las distribuciones hay un modo distinto de trabajar para que esos cambios se lleven a cabo dependiendo del tamanño del grupo de programadores de que disponga y cómo se organicen.

3. Tanto FreeBSD como Linux usan una licencia de código abierto, pero las licencias son diferentes. El kernel de Linux usa la licencia GPL, mientras que FreeBSD usa la licencia BSD. Tiene más información sobre éstas y otras licencias de código abierto en el sitio web de Open Source Initiative.

   La filosofía que hay tras la GPL busca asegurarse de que el código permanezca abierto, cosa que hace imponiendo restricciones en la distribución de código GPL. La licencia BSD, en cambio, no impone ninguna restricción, de forma que es posible dejarlo abierto o cerrarlo para hacer productos comerciales propietarios (también conocidos como “privativos”)[2]. La existencia de código estable y confiable bajo una licencia tan interesante como la BSD ha hecho que un sistema operativo como Apple OS X esté basado en código de FreeBSD. Todo esto significa que si decide usted utilizar código BSD en sus proyectos puede hacerlo sin preocuparse de que en un futuro tal decisión pueda acarrearle problemas legales.

## 2. Características de FreeBSD

### 2.1. Plataformas soportadas

FreeBSD goza de una merecida reputación de sistema operativo seguro y estable sobre plataformas Intel® (i386™). También es posible utilizarlo en las siguientes arquitecturas:

- alpha

- amd64

- ia64

- i386

- pc98

- Sparc64®

Además en este momento se está trabajando en portar FreeBSD a las siguientes arquitecturas:

- ARM®

- MIPS®

- PowerPC®

Existen unas listas actualizadas de hardware para cada arquitectura donde puede verificarse rápidamente si su hardware está soportado por FreeBSD. En el campo de los servidores FreeBSD dispone de un soporte excelente de RAID por hardware y para adaptadores de red.

FreeBSD también funciona muy bien en una estación de trabajo o un portátil. FreeBSD soporta X Window System, el mismo que ofrecen las distribuciones de Linux para interfaces de usuario de escritorio. FreeBSD ofrece además más de 17000 aplicaciones externas muy fáciles de instalar; entre ellas están KDE, Gnome y OpenOffice.

Hay varios proyectos que tienen como meta una instalación de FreeBSD más fácil. Los más importantes son:

- DesktopBSD, que tiene como fin ofrecer un sistema operativo estable y poderoso para usar como escritorio.

- FreeSBIE, que ofrece un LiveCD de FreeBSD.

- PC-BSD, que dispone de un sencillo instalador gráfico sobre FreeBSD dirigido al usuario de escritorio.

### 2.2. “Framework” integrados

Hay diversos “frameworks” que le permitirán adaptar su entorno FreeBSD a sus necesidades concretas. Veamos algunos de ellos:

Netgraph

  Netgraph es un subsistema de módulos que se puede usar para ampliar la infraestructura de red disponible en el kernel gracias a la posibilidad que se ofrece a los desarrolladores de usar sus propios módulos. De este modo ha sido posible crear nuevos prototipos y productos en el área de los sistemas de red avanzados de un modo más sencillo y limpio. Algunos de estos módulos ya están incluidos en FreeBSD:

  - PPPoE

  - ATM

  - ISDN

  - Bluetooth

  - HDLC

  - EtherChannel

  - Frame Relay

  - y L2TP, solo por enumerar unos cuantos.

GEOM

  GEOM es un “framework” modular que permite gestionar las peticiones de lectura/escritura en disco. Al ser un dispositivo de almacenamiento que se puede enchufar permite que puedan desarrollarse nuevos servicios de almacenamiento de forma rápida y limpia dentro del subsistema de almacenamiento de FreeBSD.

  - Uso de RAID.

  - Protección criptográfica de los datos almacenados.

  Las versiones más recientes de FreeBSD disponen de diversas aplicaciones administrativas para facilitar el uso de los módulos de GEOM existentes. Es posible, por ejemplo, crear un disco espejo mediante gmirror(8); gstripe(8) permite crear un “stripe”, así como gracias a gshsec(8) puede crearse un dispositivo secreto compartido.

GBDE

  GBDE (de GEOM Based Disk Encryption) ofrece una protección criptográfica fuerte que puede utilizarse en sistemas de ficheros y unidades swap entre otros tipos de unidades de almacenamiento. Además GBDE cifra de forma transparente el sistema de ficheros en su totalidad, no sólamente ficheros individuales. De este modo el texto legible no llega siquiera a tocar el disco duro.

MAC

  MAC (Mandatory Access Control) ofrece un control de acceso a ficheros muy configurable; su propósito es aumentar las posibilidades del control de acceso a ficheros de los que ha gozado hasta ahora el sistema operativo. Puesto que MAC se implementa como un “framework” modular cualquier sistema FreeBSD puede configurarse para que alcance cualquier rango de exigencia, desde el cumplimiento del estándar HIPAA hasta los sistemas de seguridad de grado militar.

  FreeBSD incluye módulos que permiten implementar las normas que se listan a continuación, aunque no hay que olvidar que el “framework” permite desarrollar e implementar cualquier otra que se necesite:

  - Modelo Biba de integridad

  - ACL para ports

  - MLS (norma de confidencialidad Multi-Level Security)

  - LOMAC (norma de integridad de datos Low-watermark Mandatory Access Control)

  - Normas de partición de procesos

PAM

  Igual que Linux, FreeBSD ofrece soporte para PAM (Pluggable Authentication Modules). Con PAM el administrador puede reforzar el modelo tradicional de autentificación usuario/contraseña. FreeBSD dispone de módulos para integrar PAM en una amplia gama de mecanismos de autenticación. Estos son algunos de ellos:

  - Kerberos 5

  - OPIE

  - RADIUS

  - TACACS+

  También es posible configurar normas que se engarguen de problemas de control de autentificación como la calidad de las contraseñas que los usuarios puedan elegir.

## 3. Seguridad

La seguridad es extremadamente importante para el grupo de ingeniería de “releases” de FreeBSD. Esto se refleja en distintas áreas:

- Todos los problemas de seguridad y los parches que los corrigen pasan por el equipo de seguridad, que los publica y pone a disposición de los usuarios en lo que se conoce como “Advisories”. El equipo de seguridad tiene una merecida reputación de rapidez en la resolución de problemas de seguridad. Si quiere información detallada sobre cómo se gestionan los problemas de seguridad en FreeBSD y dónde encontrar información de seguridad consulte http://www.FreeBSD.org/security/.

- Uno de los problemas que suelen asociarse al software de código abierto es la escasez de aplicaciones que pueden ejecutarse. Hay literalmente decenas de miles de proyectos desarrollando aplicaciones de código abierto, evidentemente no todas tienen el mismo rigor en cuestiones de seguridad. En FreeBSD se ataja este problema gracias a VuXML. Consiste en una base de datos donde se van almacenando problemas de seguridad que van apareciendo; esta base de datos se cruza con la información de los programas que incluye FreeBSD y las aplicaciones que esté en la Colección de Ports. El administrador tiene a su disposición portaudit(1), con el que puede determinar rápidamente si cualquier aplicación que haya en un sistema FreeBSD es vulnerable. En el caso de que lo sea recibirá una descripción del problema con un enlace donde encontrará información más detallada sobre él.

FreeBSD ofrece también diversos mecanismos para que el administrador pueda hacer que su sistema operativo cumpla los requisitos de seguridad que necesite:

- La utilidad jail(8) permite al administrador “enjaular” (de ahí su nombre) un proceso. Es ideal para aplicaciones que no pueden ejecutarse en un entorno “chroot”.

- La utilidad chflags(1) aumenta la seguridad que ofrece el sistema tradicional de permisos de UNIX. Puede por ejemplo prohibirse la modificación de uno o más ficheros dados; es posible incluso prohibir que el superusuario pueda modificarlos o borrarlos.

- FreeBSD ofrece 3 “firewalls” empotrados y con soporte de NAT, gracias a lo cual puede elegirse el conjunto de reglas más apropiado a las necesidades de seguridad de cada situación.

- El kernel de FreeBSD puede modificarse muy fácilmente, lo que permite al administrador retirar de él características que no necesite. FreeBSD también admite módulos dinámicos y dispone de herramientas para cargar, descargar y ver los módulos que están en el kernel.

- sysctl permite al administrador ver y configurar multitud de características del kernel sin tener que reiniciar la máquina.

## 4. Soporte

Del mismo modo que sucede en Linux, FreeBSD ofrece distintos tipos de soporte, tanto gratuito como comercial.

### 4.1. Soporte gratuito

- FreeBSD es uno de los sistemas operativos mejor documentados; dicha documentación forma parte del sistema y también está en Internet. Las páginas man son claras, concisas y contienen ejemplos útiles. El “Handbook” de FreeBSD dispone de información a fondo y ejemplos de configuración para casi todas las tareas que deben acometerse en el uso de FreeBSD.

- FreeBSD dispone de muchas listas de correo; el correo que pasa por estas listas se archiva y pueden hacerse búsquedas en él. Si tiene alguna duda cuya solución no aparezca en el “Handbook” es muy probable que haya aparecido ya resuelta en alguna lista de correo del proyecto. Hay listas de correo (e incluso versiones del “Handbook”) en otros idiomas además del inglés. Puede encontrarlas en http://www.FreeBSD.org.

- Hay muchos canales de IRC, foros y grupos de usuarios. Consulte una lista de de algunos de ellos en http://www.FreeBSD.org/support.html.

Si busca un administrador, desarrollador o alguien que ofrezca soporte para FreeBSD, envíe la descripción del trabajo a `<freebsd-jobs@FreeBSD.org>`; no olvide incluir la ubicación física.

### 4.2. Soporte comercial

Hay muchas empresas que ofrecen soporte comercial para FreeBSD. Si necesita alguna de estas empresas los siguientes enlaces le serán de mucha utilidad para buscar el que le resulta más adecuado:

- La página de distribuidores comerciales que hay en el sitio web de FreeBSD: http://www.FreeBSD.org/commercial/

- FreeBSDMall, que vende contratos de soporte desde hace casi diez años. http://www.freebsdmall.com

- La base de datos de BSDTracker: http://www.nycbug.org/index.php?NAV=BSDTracker

Hay una organización que ofrece certificados para administradores de sistemas BSD. http://www.bsdcertification.org.

Si su proyecto necesita un certificado de Common Criteria, FreeBSD incluye el “framework” MAC de TrustedBSD que puede facilitar el proceso de obtener la certificación.

## 5. Ventajas de elegir FreeBSD

Integrar FreeBSD en su estructura IT tiene muchas ventajas:

- FreeBSD está bien documentado y cumple muchos estándares. Un administrador con conocimientos de nivel intermedio o avanzado puede utilizar en FreeBSD su experiencia con Linux y UNIX rápidamente.

- Los desarrolladores oficiales tienen acceso completo al código[4] de todas las versiones de FreeBSD desde la primera “release”. El código incluye toda la información que se incluye con cada cambio, así que puede seguirse cada modificación y corrección que se haya hecho en el código. Adem´s, cualquier desarrollador puede obtener una “release” dada de un modo muy fácil usando la etiqueta adecuada. Por el contrario, Linux no utiliza este modelo, aunque recientemente haya adoptado un modelo de desarrollo más avanzado[5].

- Los desarrolladores oficiales también tiene acceso completo a la base de datos de fallos de FreeBSD, GNATS. Pueden buscar y gestionar los fallos existentes y enviar parches para que puedan probarse e integrarse en el código base de FreeBSD. http://www.FreeBSD.org/support.html#gnats

- La licencia BSD le permite modificar el código de la forma que prefiera para que satisfaga su objetivos comerciales. A diferencia de la licencia GPL no hay restricciones en el modo en que deba distribuirse el software que desarrolle.

## 6. Conclusión

FreeBSD es un sistema operativo maduro basado en UNIX que incluye muchas de las características que uno espera en un sistema UNIX moderno. Para quien quiere incorporar soluciones de código abierto a su infraestructura FreeBSD es una alternativa a tener muy en cuenta.

## 7. Addenda

1. Si quiere una breve historia de BSD consulte http://www.oreilly.com/catalog/opensources/book/kirkmck.html.

2. Hay un resumen neutral de las ventajas de las licencias en http://en.wikipedia.org/wiki/BSD_and_GPL_licensing.

3. Uso de la Colección de ports de FreeBSD: instalar software es tan fácil como ejecutar `pkg_add -r nombre_de_aplicación`.

4. Además puede verse todo el código via web: http://www.FreeBSD.org/cgi/cvsweb.cgi/.

5. Hay una interesanta visión general del modelo de desarrollo de Linux en http://linuxdevices.com/articles/AT4155251624.html.

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.