         FreeBSD: Una alternativa de codigo abierto a Linux(R)

  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 (c) 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 "(TM)" or the "(R)" symbol.

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

    1. La redistribucion del codigo fuente (SGML DocBook) debe
       contener esta informacion de copyright, esta lista de
       condiciones y el siguiente texto como las primeras lineas del
       fichero sin modificar.

    2. La redistribucion 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 documentacion y/u otros
       materiales entregados con la distribucion.

     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 proposito de este articulo es explicar algunas de las
   caracteristicas y ventajas de elegir FreeBSD; cuando es posible
   hacerlo se comparan dichas caracteristicas con las de Linux(R).
   Este articulo deberia ser un punto de partida para quienes deberia
   ser un punto de partida para quienes tengan interes tengan interes
   en alternativas a Linux en el abito del codigo abierto.

   Traduccion de Gabor Ko:vesdan <gabor@FreeBSD.org>.

     --------------------------------------------------------------

1. Introduccion

   FreeBSD es un sistema operativo de tipo UNIX(R) 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 mas de
       300 distribuciones distintas. Aunque por una parte tanta
       variedad proporcione la maxima flexibilidad posible, la
       existencia de tantas distribuciones pone trabas a los usuarios
       cuando tiene que aplicar su experiencia con una distribucion
       al usar otra diferente. Las distribuciones no solamente se
       diferencian en la facilidad de instalacion o los programas que
       incluyen; tambien hay diferencias en la estructura de
       directorios, las shells y gestores de ventanas que ofrecen y
       el procedimiento de instalacion 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 ingenieria 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 mas rapido las
       vulnerabilidades de seguridad. Si quiere conocer las nuevas
       utilidades que se van anadiendo al kernel solo debe seguir un
       fichero, las "Release Notes", que estan en la pagina 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
       rapida pero controlada. Hay varios miles de programadores que
       aportan codigo regularmente, pero solo 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
       documentacion. El grupo de ingenieria de "releases" se encarga
       del control de calidad de las "releases", mientras que el
       equipo de seguridad se responsabiliza de los problemas de
       seguridad. Ademas 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 codigo 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 tamanno del grupo de
       programadores de que disponga y como se organicen.

    3. Tanto FreeBSD como Linux usan una licencia de codigo abierto,
       pero las licencias son diferentes. El kernel de Linux usa la
       licencia GPL, mientras que FreeBSD usa la licencia BSD. Tiene
       mas informacion sobre estas y otras licencias de codigo
       abierto en el sitio web de Open Source Initiative.

       La filosofia que hay tras la GPL busca asegurarse de que el
       codigo permanezca abierto, cosa que hace imponiendo
       restricciones en la distribucion de codigo GPL. La licencia
       BSD, en cambio, no impone ninguna restriccion, de forma que es
       posible dejarlo abierto o cerrarlo para hacer productos
       comerciales propietarios (tambien conocidos como
       "privativos")[2]. La existencia de codigo estable y confiable
       bajo una licencia tan interesante como la BSD ha hecho que un
       sistema operativo como Apple OS X este basado en codigo de
       FreeBSD. Todo esto significa que si decide usted utilizar
       codigo BSD en sus proyectos puede hacerlo sin preocuparse de
       que en un futuro tal decision pueda acarrearle problemas
       legales.

     --------------------------------------------------------------

2. Caracteristicas de FreeBSD

  2.1. Plataformas soportadas

   FreeBSD goza de una merecida reputacion de sistema operativo
   seguro y estable sobre plataformas Intel(R) (i386(TM)). Tambien es
   posible utilizarlo en las siguientes arquitecturas:

     * alpha

     * amd64

     * ia64

     * i386

     * pc98

     * Sparc64(R)

   Ademas en este momento se esta trabajando en portar FreeBSD a las
   siguientes arquitecturas:

     * ARM(R)

     * MIPS(R)

     * PowerPC(R)

   Existen unas listas actualizadas de hardware para cada
   arquitectura donde puede verificarse rapidamente si su hardware
   esta 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 tambien funciona muy bien en una estacion de trabajo o un
   portatil. FreeBSD soporta X Window System, el mismo que ofrecen
   las distribuciones de Linux para interfaces de usuario de
   escritorio. FreeBSD ofrece ademas mas de 17000 aplicaciones
   externas muy faciles de instalar; entre ellas estan KDE, Gnome y
   OpenOffice.

   Hay varios proyectos que tienen como meta una instalacion de
   FreeBSD mas facil. Los mas 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 grafico sobre
       FreeBSD dirigido al usuario de escritorio.

     --------------------------------------------------------------

  2.2. "Framework" integrados

   Hay diversos "frameworks" que le permitiran adaptar su entorno
   FreeBSD a sus necesidades concretas. Veamos algunos de ellos:

   Netgraph

           Netgraph es un subsistema de modulos 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 modulos. De este modo
           ha sido posible crear nuevos prototipos y productos en el
           area de los sistemas de red avanzados de un modo mas
           sencillo y limpio. Algunos de estos modulos ya estan
           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 rapida y limpia dentro del
           subsistema de almacenamiento de FreeBSD.

              * Uso de RAID.

              * Proteccion criptografica de los datos almacenados.

           Las versiones mas recientes de FreeBSD disponen de
           diversas aplicaciones administrativas para facilitar el
           uso de los modulos de GEOM existentes. Es posible, por
           ejemplo, crear un disco espejo mediante gmirror(8);
           gstripe(8) permite crear un "stripe", asi como gracias a
           gshsec(8) puede crearse un dispositivo secreto compartido.

   GBDE

           GBDE (de GEOM Based Disk Encryption) ofrece una proteccion
           criptografica fuerte que puede utilizarse en sistemas de
           ficheros y unidades swap entre otros tipos de unidades de
           almacenamiento. Ademas GBDE cifra de forma transparente el
           sistema de ficheros en su totalidad, no solamente 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 proposito 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
           estandar HIPAA hasta los sistemas de seguridad de grado
           militar.

           FreeBSD incluye modulos que permiten implementar las
           normas que se listan a continuacion, 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 particion de procesos

   PAM

           Igual que Linux, FreeBSD ofrece soporte para PAM
           (Pluggable Authentication Modules). Con PAM el
           administrador puede reforzar el modelo tradicional de
           autentificacion usuario/contrasena. FreeBSD dispone de
           modulos para integrar PAM en una amplia gama de mecanismos
           de autenticacion. Estos son algunos de ellos:

              * Kerberos 5

              * OPIE

              * RADIUS

              * TACACS+

           Tambien es posible configurar normas que se engarguen de
           problemas de control de autentificacion como la calidad de
           las contrasenas que los usuarios puedan elegir.

     --------------------------------------------------------------

3. Seguridad

   La seguridad es extremadamente importante para el grupo de
   ingenieria de "releases" de FreeBSD. Esto se refleja en distintas
   areas:

     * Todos los problemas de seguridad y los parches que los
       corrigen pasan por el equipo de seguridad, que los publica y
       pone a disposicion de los usuarios en lo que se conoce como
       "Advisories". El equipo de seguridad tiene una merecida
       reputacion de rapidez en la resolucion de problemas de
       seguridad. Si quiere informacion detallada sobre como se
       gestionan los problemas de seguridad en FreeBSD y donde
       encontrar informacion de seguridad consulte
       http://www.FreeBSD.org/security/.

     * Uno de los problemas que suelen asociarse al software de
       codigo abierto es la escasez de aplicaciones que pueden
       ejecutarse. Hay literalmente decenas de miles de proyectos
       desarrollando aplicaciones de codigo 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 informacion de los programas que incluye FreeBSD y las
       aplicaciones que este en la Coleccion de Ports. El
       administrador tiene a su disposicion portaudit(1), con el que
       puede determinar rapidamente si cualquier aplicacion que haya
       en un sistema FreeBSD es vulnerable. En el caso de que lo sea
       recibira una descripcion del problema con un enlace donde
       encontrara informacion mas detallada sobre el.

   FreeBSD ofrece tambien 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
       ahi 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 modificacion de uno o mas 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 mas
       apropiado a las necesidades de seguridad de cada situacion.

     * El kernel de FreeBSD puede modificarse muy facilmente, lo que
       permite al administrador retirar de el caracteristicas que no
       necesite. FreeBSD tambien admite modulos dinamicos y dispone
       de herramientas para cargar, descargar y ver los modulos que
       estan en el kernel.

     * sysctl permite al administrador ver y configurar multitud de
       caracteristicas del kernel sin tener que reiniciar la maquina.

     --------------------------------------------------------------

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 documentacion forma parte del sistema y tambien esta en
       Internet. Las paginas man son claras, concisas y contienen
       ejemplos utiles. El "Handbook" de FreeBSD dispone de
       informacion a fondo y ejemplos de configuracion 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 busquedas en el.
       Si tiene alguna duda cuya solucion 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 ademas del
       ingles. 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, envie la descripcion del trabajo a
   <freebsd-jobs@FreeBSD.org>; no olvide incluir la ubicacion fisica.

     --------------------------------------------------------------

  4.2. Soporte comercial

   Hay muchas empresas que ofrecen soporte comercial para FreeBSD. Si
   necesita alguna de estas empresas los siguientes enlaces le seran
   de mucha utilidad para buscar el que le resulta mas adecuado:

     * La pagina 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 anos. http://www.freebsdmall.com

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

   Hay una organizacion 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 certificacion.

     --------------------------------------------------------------

5. Ventajas de elegir FreeBSD

   Integrar FreeBSD en su estructura IT tiene muchas ventajas:

     * FreeBSD esta bien documentado y cumple muchos estandares. Un
       administrador con conocimientos de nivel intermedio o avanzado
       puede utilizar en FreeBSD su experiencia con Linux y UNIX
       rapidamente.

     * Los desarrolladores oficiales tienen acceso completo al
       codigo[4] de todas las versiones de FreeBSD desde la primera
       "release". El codigo incluye toda la informacion que se
       incluye con cada cambio, asi que puede seguirse cada
       modificacion y correccion que se haya hecho en el codigo.
       Adem's, cualquier desarrollador puede obtener una "release"
       dada de un modo muy facil usando la etiqueta adecuada. Por el
       contrario, Linux no utiliza este modelo, aunque recientemente
       haya adoptado un modelo de desarrollo mas avanzado[5].

     * Los desarrolladores oficiales tambien 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 codigo base de FreeBSD.
       http://www.FreeBSD.org/support.html#gnats

     * La licencia BSD le permite modificar el codigo 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. Conclusion

   FreeBSD es un sistema operativo maduro basado en UNIX que incluye
   muchas de las caracteristicas que uno espera en un sistema UNIX
   moderno. Para quien quiere incorporar soluciones de codigo 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 Coleccion de ports de FreeBSD: instalar software es
       tan facil como ejecutar pkg_add -r nombre_de_aplicacion.

    4. Ademas puede verse todo el codigo via web:
       http://www.FreeBSD.org/cgi/cvsweb.cgi/.

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

     --------------------------------------------------------------

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

Si tiene dudas sobre FreeBSD consulte la documentacion antes de escribir
                  a la lista <questions@FreeBSD.org>.
    Envie sus preguntas sobre la documentacion a <doc@FreeBSD.org>.
