BSD, una buena alternativa

By 7 de agosto de 2006 BSD, DragonFlyBSD, FreeBSD, OpenBSD One Comment

NOTA: Este articulo fue escrito originariamente para el canal #networking, un canal situado en el servidor irc-hispano en el que semanalmente dan cabida numerosas charlas impartidas por numerosas personas. Este documento habla de cosas que a medida que va pasando el tiempo pueden cambiar o variar facilmente. Los datos contenidos son correctos almenos hasta la fecha de creación del mismo (25/05/2001). No obstante si ves alguna incorreción puedes comentarmelo en [email protected]


bsdlogo.jpg 1. Introducción2. Del AT&T Unix a 4.4BSD -Historia de BSD-3. Principales caracteristicas y objetivos de cada uno de los sistemas *BSD

4. Modelo de desarrollo de los sistemas *BSD

5. Ports y packages

6. Igualdades y diferencias en los *BSD

7. Conclusión

1. Introducción

Hola a todos. Esta noche hablaremos un poco sobre los diferentes sistemas operativos libres que estan basados en BSD, mas concretamente en 4.4BSD-Lite. Variaciones las hay muchas, y seria imposible tratar

todas las variantes *BSD que se encuentran disponibles, por lo tanto nos centraremos basicamente en las tres mas comunes y las que posiblemente conoce mas gente: NetBSD, FreeBSD y OpenBSD. No vamos a tratar ningun *BSD en profundidad. Esta charla estará enfocada mas bien a los "elementos" caracteristicos que tienen estos *BSD que hemos nombrado anteriormente y que son los mas conocidos por todo el mundo. Estos elementos comunes pueden ser por ejemplo el tipo de licencia, el sistema de paquetes, el sistema de arranque etc. es decir, elementos que encontrareis casi identicos tanto si usais NetBSD, FreeBSD o OpenBSD. Tambien comentaremos algunas de las diferencias existentes en estas tres vertientes y los propositos de cada una.

Antes de continuar comentar que usaremos el termino "*BSD" para referirnos en conjunto a NetBSD, FreeBSD y OpenBSD.

La charla empezará con una breve historia del sistema BSD, que esta muy ligada a la historia de Unix (como no). Posteriormente comentaremos los objetivos y caracterisitcas que hacen de estos tres BSD's, sistemas diferentes que estan enfocados cada uno a un objetivo distinto

El cuarto punto tratara sobre el modelo de desarrollo que siguen los sistemas *BSD, veremos la organizacion de desarrollo y que significan las palabras -release, -stable y -current.

En el quinto punto explicaremos el sistema de paquetes usado por *BSD con ejemplos practicos para una expicación mas entretenida.

Y en el ultimo punto (el numero seis) comentaremos tanto las igualdades que tienen en comun los diferentes *BSD como las diferencias entre ellos.

Vamos allá :-)

2. Del AT&T Unix a 4.4BSD - Historia de BSD -

La primera versión de Unix fuea desarrollada por Ken Thompson para los laboratorios Bell en 1969, poco tiempo después se unió al proyecto Dennis Ritchie, quien a parte de colaborar en el diseño y la implementación del sistema operativo, creó el lenguaje C, en el que se reescribiría Unix completamente.

Muchas de las ideas de unix, fueron tomadas de otros sistemas operativos. Multics, un sistema operativo también de Bell en el que habían trabajo estos dos desarrolladores, tuvo una gran influencia en Unix; donde en Multics se intentaba hacer algo muy complejo para resolver un problema, en Unix se buscaba el remedio más sencillo. Ideas tomadas directamente de Multics son el sistema de archivos y su interfaz etc... La idea de la operación 'fork' fue tomada de GENIE (Berkeley).

La sexta edición de Unix (V6) fue ampliamente distribuida, fuera de los laboratorios Bell. Las diferencias más destacadas respecto a otros sistemas operativos fueron que Unix estuviera escrito en un lenguaje de alto nivel, se distribuyera el código fuente y la posibilidad de correr procesos concurrentemente.

La primera versión de Unix proveniente de Berkeley, fue una modificación al 32V (predecesora de la V7), añadiéndole memoria virtual y otras características, a la cual se llamó 3BSD (1979). Este trabajo convenció a DARPA para que Berkeley desarrollara un sistema operativo con soporte para TCP/IP, así se creo el estandar 4BSD. Con el lanzamiento de 4.2BSD (1983) terminó el proyecto 'Berkeley DARPA UNIX'. Apartir de aquí se lanzaron diferentes versiones, 4.3BSD (1986), 4.3BSD Net1 y Net2 (1989,1991) estas versiones ya se podían distribuir libremente sin ninguna ligadura con la 'UNIX source license'. 4.4BSD (1993) y la 4.4BSD-Lite (1994), en la que se basan todos los *BSD de hoy en día.

En la versión 4.4 se arreglaron bastante deficiencias de su antecesora (4.3BSD) se incluyeron nuevos algoritmos que mejoraban la gestión de memoria, se mejoró la implementación de la suite IP, se añadió compatibilidad con el estandar POSIX. En esta versión se añadió una abstracción en la implementación de la interfaz de sistemas de archivos, de esta manera se permitía el soporte de varios fs.


3-Principales caracteristicas y objetivos de cada uno de los sistemas *BSD

Las principales características y objetivos del proyecto NetBSD son:

*Sistema operativo tipo UNIX, basado en 4.4BSD, multiplataforma y de libre disposición

*Posee un sistema TCP/IP completo (SLIP, PPP, NFS, NIS, FTP, TELNET,MAIL etc.)

*Amplia portabilidad: esto se realiza dividiendo el diseño en dos partes,

  • MD (Máquina dependiente) y
  • MI (Máquina independiente).

*Distribución del código fuente.

*Permite NAT, Ipv6, Wireless Networking, soporta hardware y sofware RAID, SCSI, sistemas de archivos de 64-bit, DVD ROM y RAM, USB, UVM, Cardbus, etc.

*Emulación de binarios: Linux, OSF/1, SCO UNIX, SunOS, System V release 4, Solaris y Ultrix.

*Desarrollar un S.O totalmente portable, que pueda correr en multitud de arquitecturas


Caracteristicas de FreeBSD

* FreeBSD es un sistema desarrollado totalmente en 32 bits.

* Posee un sistema TCP/IP completo (SLIP, PPP, NFS, NIS, FTP, TELNET,MAIL etc.)

* Sistema multiusuario/multitarea. FreeBSD como todo UNIX ofrece un sistema con posibilidad de ejecutar mas de una aplicación al mismo tiempo y trabajar con mas de un usuario a la vez

* Versatilidad en cuanto a su uso como Pc personal: Estación de trabajo, servidor de ficheros y aplicaciones, bases de datos, comunicaciones e internet, router, gateway, firewall, etc.

* Módulos de compatibilidad que permiten la ejecución de programas de otros sistemas operativos en FreeBSD, incluyendo programas para Linux, SCO, NetBSD, BSDI, etc.

* Módulos de kernel de carga dinámica que permiten tener acceso a nuevos sistemas de ficheros, protocolos de red o emuladores de binarios en tiempo de ejecución sin necesidad de generar un nuevo kernel.

* Disposición de todo el codigo fuente tanto del kernel como de las aplicaciones en la instalación base.

* FreeBSD soporta SMP y actualmente corre en arquitecturas i386 y alpha

* FreeBSD dispone de un grandisimo repertorio de aplicaciones y programas que corren perfectamente en él


Cuales son los objetivos de FreeBSD?

*Proveer software que pueda ser usado para cualquier causa sin que esto sea una carga. Es decir, desarrollar aplicaciones bajo licencia BSD para que despues se haga lo que quiera con este software.

*Optimización del codigo para plataformas i386 y alpha para que el sistema y las aplicaciones corran a gran velocidad bajo este S.O

*Dar disponibilidad del codigo fuente para que todo el mundo tenga acceso a el

*Seguir desarrollando un S.O estable, rapido y libre con abundantes aplicaciones, que sea efectivo y que responda bien ante grandes cargas de información


Caracteristicas OpenBSD

*Sistema operativo tipo UNIX, basado en 4.4BSD, multiplataforma y de libre disposición

* Posee un sistema TCP/IP completo (SLIP, PPP, NFS, NIS, FTP, TELNET,MAIL etc.)

*Soporte para la emulación de la mayor parte del código binario de los sistemas SVR4 (Solaris), FreeBSD, Linux, BSDI, SunOS, y HP-UX.

*OpenBSD actualmente soporta las plataformas siguientes: i386, sparc, hp300, amiga, mac68k, powerpc, sun3, mvme68k, alpha y vax

* OpenBSD está reconocido por muchos profesionales de la seguridad informática como el sistema operativo tipo UNIX más seguro; esto es el resultado de una intensa auditoría de seguridad sobre el código fuente, llevada a cabo durante un año y medio por un grupo de diez personas.

*OpenBSD es un sistema operativo con todas las funcionalidades de UNIX, que se puede adquirir de forma gratuita.


Cuales son los objetivos de OpenBSD?

*Proveer la mejor plataforma de desarrollo posible

*Dar acceso al codigo fuente a todo el mundo

*Integracion de código de calidad de cualquier fuente (preferiblemente del estilo de Berkeley -BSD-)

*Intentar ser el sistema operativo mas seguro. "Seguro por defecto", es decir intentar hacer un S.O libre de bugs y errores en su instalacion por defecto, auditando constantemente el codigo en busca de posibles fallas.

*Mas integración de software criptografico. OpenBSD se desarrolla en canadá y esto permite toda clase de exportación de software criptografico. Gracias a este detalle OpenBSD ha integrado en muchas partes del sistema operativo toda clase de sistemas criptograficos.

* Sacar aproximadamente cada seis meses una nueva version de OpenBSD, sobre todo para recoger fondos para el proyecto.


4. Modelo de desarrollo de los sistemas *BSD

Asi en terminos generales podriamos decir que los sistemas *BSD se componen de tres ramas bien diferenciadas cumpliendo cada una de ellas un proposito diferente. El nombre que reciben cada una de estas ramas es: La rama -release, la rama -stable y la rama -current.

Nosotros en cualquier momento podemos usar una u otra, todo dependerá de lo que queramos o busquemos.

Para empezar, la rama -release es la rama que se quema en los CD's de venta o distribucion, es decir, es la version "de corte". Asi pues si instalamos un *BSD desde el CD de distribucion, ISO oficial que hemos quemado etc, estaremos usando la rama -release.

Continuando con nuestra explicación, la rama -stable, no es mas que la rama -release con los bugs o fallas (que han salido despues de liberar la version -release) corregidos. A esta version normalmente solo se podra actualizar via internet a traves de CVS o CVSUP, y es una rama que se considera estable ya que se van aplicando a ella todos los parches necesarios para corregir los bugs descubiertos.

Por ultimo la rama -current, es la rama mas "inestable" y que mas cambia. Es la rama con los ultimos soportes y ultimas caracteristicas agregadas al S.O. Esta rama la suele usar gente que no necesita para nada una version estable del S.O y gente que sabe que en cualquier momento el sistema operativo puede dejar de funcionar correctamente. Es una version de pruebas por decirlo de alguna manera para ir probando y testeando las nuevas caracteristicas que poseeran en un futuro las ramas -stable y -release. A esta rama al igual que la -stable, lo mas normal es que solo se pueda actualizar por internet via CVS o CVSUP, aunque dependiendo del *BSD tambien puede estar disponible algun snapshot o imagen ISO.

A todas estas ramas se puede acceder facilmente a traves del depósito CVS (Concurrent Version System), que es una herramienta destinada para el control de codigo fuente. Gracias a esta herramienta nosotros podemos "sincronizar" nuestro codigo fuente con cualquiera de las ramas disponibles para posteriormente compilar todas las fuentes.

Despues de comentar un poco acerca de las versiones y herramientas proporcionadas para acceder a estas ramas nos podemos preguntar quien esta detras del proyecto *BSD.

La respuesta es: mucha gente, pero basicamente podriamos dividir a toda esta gente en tres grandes grupos, teniendo cada grupo su importancia y prioridad.

Si tuvieramos que comentar estos grupos en orden jerarquico, empezariamos sin duda por el llamado "core-team".

El core-team podria ser lo equivalente al conjunto de directores si *BSD fuese una compañia. La tarea del core-team es asegurar el buen camino del proyecto *BSD. Cada mienbro del core team puede tener alguna que otra tarea especifica como por ejemplo la de asegurar que partes importantes del sistema funcionen como se espera. Dependiendo del *BSD este grupo puede constar de mas o menos mienbros y la manera de llegar a ser un mienbro del core team tambien puede variar segun del *BSD del que hablemos. Sin ir mas lejos el core-team de FreeBSD consta de nueve personas, y las ultimas "elecciones" se han llevado a cabo mediante votos democraticos a traves de internet.

En nuestro segundo grupo jerarquico podriamos poner a los llamados "committers" que son ni mas ni menos que las personas que tienen accesso de escritura al codigo fuente albergado en el CVS. Estas personas estan autorizadas para realizar modificaciones en el codigo.

Por ultimo clasificariamos a los contribuyentes externos que son los propios usuarios, y sin duda el grupo mas importante ya que ofrecen sus ideas, aportaciones, parches, codigo etc.


5. Ports y Packages

En esta sección hablaremos sobre una caracteristica que poseen los BSD's mas destacados, hablaremos de los ports y de los packages.

Que son los ports?

Los ports son unica y exclusivamente los scripts y parches necesarios que se han de aplicar a un programa fuente en concreto (el archivo.tar.gz de toda la vida) para que pueda ejecutarse satisfactoriamente en nuestro sistema.

Que ganamos con todo esto?

Pues bastante, aqui va lo mas destacado:

* Gracias a los ports nos ahorramos el tener que buscar el tar.gz en cuestion por todos los FTP's ya que el sistema de ports contiene una lista de FTP's de donde puede descargar automaticamente el programa o la aplicacion.

* Tambien nos ahorramos el tener que controlar las dependencias entre aplicaciones, esto es, si queremos instalar el paquete X pero éste no puede funcionar sin el paquete Y, el sistema de ports descargará y instalará el paquete Y y posteriormente instalara el paquete X.

* Nos proporciona un "esqueleto" de directorios clasificados por secciones, en las cuales podemos encontrar todos los programas ordenados por temas o secciones que estan disponibles para nuestro S.O

* "Nos ahorra" el tener que leer la larga documentación de instalacion que explica la manera en que se ha de instalar el programa. Los ports instalaran la aplicación por nosotros con un solo comando, eso si, con las opciones por defecto y mas comunes si nosotros no le indicamos lo contrario.

* Nos asegura una forma limpia y ordenada en la ubicación de los ejecutables del programa a la hora de copiarlos. Generalmente bajo /usr/local si no le indicamos lo contrario.

* A la hora de posibles actualizaciones o desinstalaciones no tenemos que preocuparnos por borrar todos los archivos y directorios creados en la instalacion, ya que se mantiene una base de datos con todas las aplicaciones instaladas y cada BSD posee los comandos necesarios para borrar limpiamente ports instalados.

Despues de ver las caracteristicas mas significativas de los ports, pondremos a modo de ejemplo los logs de la instalación de un port para que se entienda el funcionamiento de un port.

A modo de ejemplo hemos decidido instalar el conocido navegador en modo texto links. Antes de nada comentamos que la el analisis de este port en concreto a sido llevado en FreeBSD, y que en otros BSD's puede variar ligeramente algun archivo de configuración o simplemente la ruta del directorio links, pero estos cambios no son importantes para entender la filosofia de los ports.

Todos los ports son instalados bajo el directorio /usr/ports (comumente). Dependiendo del BSD ya los tendremos instalados o se nos preguntara si se desean instalar en la instalacion del BSD. Por otro lado tambien es posible que tengamos que instalarlos nosotros a mano una vez finalizada la instalacion del sistema.

Asi pues nos situamos bajo el directorio /usr/ports y hacemos un ls para que podais ver las diferentes categorias que engloban los ports:

sayaka# cd /usr/ports && ls

.cvsignore benchmarks french math sysutils

INDEX biology ftp mbone textproc

LEGAL cad games misc ukrainian

Makefile chinese german net vietnamese

Mk comms graphics news www

README converters hebrew palm x11

README.html databases irc picobsd x11-clocks

Templates deskutils japanese print x11-fm

Tools devel java russian x11-fonts

archivers distfiles korean science x11-servers

astro editors lang security x11-toolkits

audio emulators mail shells x11-wm

Como podemos ver son muchas las secciones que engloban los ports. Una vez mas comento que en estos directorios no se encuentran los fuentes ni los programas de cada categoria, sino simplemente makefiles, parches y scripts que se encargaran de bajar el port y instalarlo.

Nos situamos en el directorio /usr/ports/www/links que es donde se encuentra el port que queremos instalar y hacemos un ls para ver de que se compone:

sayaka# cd /usr/ports/www/links && ls

Makefile distinfo pkg-comment pkg-plist

README.html files pkg-descr

Nos centraremos en los archivos mas importantes, que en este caso son el Makefile y el directorio files.

El archivo Makefile contiene varias cosas:

*Nombre y version del port

*Nombrte y email de la persona encargada del port

*Categoria en la que se situa el port (en este caso www)

*FTP's disponibles en los que puede probar el sistema para conectar y descargar el port en cuestion

*etc.

Por otro lado el directorio files contiene los diferentes patchs (parches) que seran aplicados durante la compilación y instalacion del port.

Asi pues, una vez vistos por encima los contenidos del port links vayamos a instalarlo. Para instalarlo unicamente tenemos que teclear "make install" en el directorio /usr/ports/www/links

sayaka# make install

>> links-0.95.tar.gz doesn't seem to exist in /usr/ports/distfiles/.

>> Attempting to fetch from http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/links/download/.

fetch: links-0.95.tar.gz: size of remote file is not known

Receiving links-0.95.tar.gz: 45056 bytes

449795 bytes transferred in 16.7 seconds (26.25 kBps)

===> Extracting for links-0.95_2

>> Checksum OK for links-0.95.tar.gz.

===> Patching for links-0.95_2

===> Applying FreeBSD patches for links-0.95_2

===> Configuring for links-0.95_2

creating cache ./config.cache

checking for a BSD compatible install... /usr/bin/install -c -o root -g wheel

checking whether build environment is sane... yes

[...] configuracion y compilacion [...]

===> Generating temporary packing list

===> Compressing manual pages for links-0.95_2

===> Registering installation for links-0.95_2

Hemos resumido el log para hacerlo mas corto. Aqui basicamente podemos ver los siguientes pasos para la correcta instalación del port links:

1. Comprobar si el archivo links-0.95.tar.gz (en este caso) se encuentra en el disco duro en local

2. En este caso no se encuentra, por lo tanto se empieza la descarga del archivo en alguno de los FTP's definidos en el Makefile que vimos anteriormente.

3. Una vez descargado y aunque el log no lo indique, se comprueban las dependencias sobre links. Al no requerir otro paquete adicional para su correcto funcionamiento se pasa a la extracción del links-0.95.tar.gz.

4. Una vez descomprimido se comprueba el cheksum para verificar la integridad del archivo

5. Si todo ha ido bien, se pasa al parcheado del fichero y/o ficheros para la correcta compilacion y instalacion del port (parches que comentabamos antes)

6.En este punto nuestro BSD ya comienza la fase de configuracion (./configure), compilacion (make), y instalacion del programa en cuestion (make install)

7. Finalmente se registra el port en la base de datos para futuras deinstalaciones limpias.

y eso es todo.

Los ports son diariamente modificados, actualizados y parcheados por multitut de personas que se encargan de eso, de tener "al dia" los ports. Nosotros podemos actualizar nuestro arbol de ports (/usr/ports) por CVS o CVSUP.

Pasemos ahora pues a hablar de los packages.

Si los ports eran parches aplicados a programas .tar.gz (sources) de toda la vida, los packages son algo asi como los .rpm o .deb de linux, es decir, los archivos binarios (archivos ya compilados)

Su funcionamiento es parecido al de los ports. Comentemos algunas caracteristicas de ellos:

*Los packages son archivos .tar.gz que engloban archivos binarios + pequeños scripts que definen donde y como se instalaran los ejecutables

*Los packages estan situados en multitut de FTP's, a diferencia de los ports con los packages "tenemos que ir a los diversos FTP's a buscarlos", y pongo esto entre comillas ya que algun BSD dispone de herramientas que no te hacen necesaria la pesada busqueda de un package por el FTP.

*Igual que en los ports, los packages garantizan un buen mecanismo de instalacion/desinstalacion de aplicaciones o programas ya que se hace de una forma controlada y ordenada

*Los packages tambien controlan el tema de las dependencias a la hora de instalar un programa en concreto.

Al igual como en los ports, instalaremos un package para que podais ver lo sencillo y rapido que resulta. Para no pderder la costumbre, instalaremos el package links (esta vez los binarios).

Asi pues una vez bajado el package teclearemos la orden de instalacion de un package:

sayaka# pkg_add links-0.95_2.tgz

El comando pkg_add es usado para instalar packages.

De igual forma sus compañeros pkg_delete borra packages y pkg_info proporciona informacion sobre packages. Podemos teclear la orden pkg_info para que nos muestre una lista de los packages instalados:

sayaka# pkg_info

apache-1.3.17 The extremely popular Apache http server. Very fast, very c

autoconf-2.13 Automatically configure source code on many Un*x platforms

cvsup-bin-16.1 A general network file distribution system optimized for CVS

gettext-0.10.35 GNU gettext package

gmake-3.79.1 GNU version of 'make' utility

libtool-1.3.4_2 Generic shared library support script

links-0.95_2 Lynx-like text WWW browser

Efectivamente podemos ver que el links esta instalado correctamente, tambien bajo /usr/local (normalmente) como hacian los ports

Para ver el funcionamiento algo mas interno de un package, cogeremos el archivo de antes links-0.95_2.tgz y en vez de utilizar los comandos pkg* desarrolados para el tratamiento de packages lo descomprimiremos "a mano" para ver de que se compone. Asi que tecleamos:

sayaka# tar -zxvf links-0.95_2.tgz

+CONTENTS

+COMMENT

+DESC

+MTREE_DIRS

man/man1/links.1.gz

bin/links

Como vemos, lo que llama mas la atencion son los archivos que empizan por "+". El archivo links.1.gz y links son los archivos que compondrian un .tar.gz normal

A modo de resumen, los archivos "+" definen la descripcion del package (de que trata el programa), donde se instalará y de que esta compuesto. No entraremos mas en detalle porque se alargaria demasiado esto.

Para acabar con esta larga sección, me gustaria comentar una ultima nota sobre los ports y los packages.

Cuando nosotros instalamos un port, lo que estamos instalando realmente es un package, es decir, despues de todo el proceso de configuracion y compilacion del port, el BSD en cuestion empaqueta los binarios que ha compilado de los fuentes del port en forma de package de forma temporal, para posteriormente instalar el package que no es otra cosa que un package transformado a partir del port. Con esto deducimos, que tan solo hay una base de datos que controla lo que tenemos y no tenemos instalado, y esta base de datos es controlada por los comandos genericos pkg* (pkg_add, pkg_delete etc.) disponibles para trabajar con packages.


6. Igualdades y diferencias en los *BSD

En este ultimo punto que abarcaremos de la charla, explicaremos de forma general las cosas en comun y las cosas que los hacen diferentes a estos tres *BSD's

A parte de gran parte de las caracteristicas que hemos comentado anteriormente y del sistema de paquetes, podemos encontrar otras caracteristicas comunes a los *BSD. Pasemos a comentarlas:

Lo mas caracteristico y lo primero que se puede ver tan solo leyendo su nombre es su tipo de licencia. Los *BSD's tienen gran parte de codigo regido por la licencia BSD. Que dice esta licencia? no me extenderé hablando de las clausulas sobre la BSD, pero para aquellos interesados pueden consultar la web http://www.eldemonio.org donde hay un doc que habla sobre las diferencias entre la BSD y GPL. No obstante si que comentare que la licencia BSD no obliga a adjuntar el codigo fuente junto al programa. Esto mucha gente lo ve bien ya que hace de ella una licencia menos restrictiva, y muchos otros lo ven mal.

Continuando con las igualdades, los sistemas operativos *BSD's se caracterizan por la manera que tienen de arrancar. En el mundo UNIX hay 2 variantes a la hora de arrancar un S.O, una llamada system V y otra llamada BSD. La mayoria de distribuciones linux usan la system V, pero logicamente los sistemas *BSD usan el metodo BSD.

La principal diferencia entre estas dos maneras de arrancar radica en el lugar donde se situan los scripts de inicializacion. En el estilo System V los podemos encontrar en /etc/rc.d y en BSD estaran en /etc. Todos los scripts de arranque del metodo BSD son llamados rc*

Las particiones en los sistemas *BSD tambien es algo que tienen en comun y que deberiamos comentar. A diferencia de otros sistemas operativos los sistemas *BSD usan una sola particion con su correspondiente sistema de archivos. Dentro de esta particion estan lo llamado 'slices' que son algo asi como subparticiones dentro de una particion. Por poner un ejemplo, si quisieramos instalar un sistema BSD con las particiones /var /usr, / y swap tan solo tendriamos que crear una particion con el sistema de archivos correspondiente, y dentro de esta particion BSD creariamos cuatro slices estableciendo sus puntos de montaje /var, /usr , / y el swap. Esto es una gran ventaja respecto a otros SSOO ya que ahorramos entradas de particiones en nuestra tabla.

Como tambien comentabamos antes, los sistemas *BSD albergan todo su codigo fuente en servidores CVS, para que todo aquel que quiera pueda actualizar su S.O

Una vez comentadas algunas de las caracteristicas mas significativas, explicaremos algunas de las cosas que hacen a estos tres SSOO sistemas diferentes.

Como ya habreis podido observar, los dos BSD's con soporte para mas plataformas son OpenBSD y NetBSD. Este ultimo soporta gran variedad de plataformas (muchas mas que OpenBSD), llegando a poder correr incluso en una consola DreamCast.

FreeBSD por otro lado, es el unico *BSD de estos tres que tiene un soporte estable para trabajar en SMP. Tambien incorpora un boot manager (este ultimo) simple, comodo y eficaz que nos permitirá arrancar cualquier otro S.O que tengamos instalado en nuestro sistema.

Sin duda el *BSD que posee mas aplicaciones y/o programas disponibles es FreeBSD, con una inmensa coleccion de ports y packages. FreeBSD tambien tiene un buen soporte de hardware, a modo de ejemplo, podemos comentar, que es el unico BSD que tiene drivers para la targeta sb live.

OpenBSD por otro lado dispone de drivers para poder usar targetas aceleradoras criptograficas.

Las igualdades y diferencias entre estos tres *BSD son muchas, y nos abarcaria demasiado tiempo y espacio el poder comentarlas todas de forma exhaustiva. Si tuvieramos que diferenciar a estos tres sistemas operativos de forma escueta podriamos decir que:

*FreeBSD es un s.o que se caracteriza por su gran variedad de aplicaciones y su gran optimizacion del codigo para correr a gran velocidad en plataformas i386 y alpha

*NetBSD es sin duda el S.O que mas plataformas soporta, y su objetivo es ser lo mas portable posible

*OpenBSD es un s.o con la idea de ser el s.o mas seguro (si no lo es ya) y la de incorporar todo tipo de criptografia.


7. Conclusión

Como se suele decir siempre, pruebalo y opina. Creo que los objetivos de cada uno de estos tres *BSD son diferentes, y dependiendo de tus necesidades puedes querer instalar uno u otro.

Yo posiblemente si tuviera un servidor sencillo sin demasiadas cargas y sin necesitar aplicaciones extras (server sencillo de mail, ftp etc.) seguramente me quedaria con OpenBSD, ya que me proporciona una seguridad por defecto que posiblemente otros SSOO no me la dan.

Si tuviera que tener algun servidor con abundante trafico y necesitase instalar una gran variedad de aplicaciones o programas extras sin duda me quedaria con FreeBSD. Es raro encontrar programas habituales en linux que no esten disponibles para FreeBSD. FreeBSD me proporciona una gran velocidad y un abundante repertorio de aplicaciones de toda clase.

Finalmente si tuviera que correr algun server con hardware antiguo o poco habitual me quedaria con NetBSD. NetBSD me proporciona soporte para cantidad de plataformas y es raro el tener un ordenador que no pueda ser usado con NetBSD.

Con esto acabo, gracias por la atención y espero que hayan aprendido algo sobre estos sistemas que aun estan algo desconocidos para mucha gente

un saludo

[email protected]

Documento original en: http://www.eldemonio.org/documentos/lectura/bsd/charla.html

One Comment

Leave a Reply

Your email address will not be published.