1.3. Acerca del proyecto FreeBSD

En la siguiente sección se explican ciertos aspectos del proyecto, una breve historia, objetivos, y modelo de desarrollo del proyecto.

1.3.1. Breve historia de FreeBSD

Contributed by Jordan Hubbard.

La génesis del proyecto FreeBSD se remonta a comienzos de 1993, en parte como una extensión del “Unofficial 386BSD Patchkit” debida a los tres últimos coordinadores del patchkit: Nate Williams, Rod Grimes y yo mismo.

Nuestro objetivo original era producir una instantánea de 386BSD intermedia para arreglar una serie de problemas que no se podían solventar vía patchkits. Algunos quizá recuerden que el primer nombre del proyecto fue “386BSD 0.5” o “386BSD Interim” en referencia a ese hecho.

386BSD era el sistema operativo de Bill Jolitz, que hasta ese punto había estado sufriendo severamente las consecuencias de prácticamente un año que más valdría olvidar. A medida que el patchkit se iba haciendo más incómodo día a día, estuvimos unánimente de acuerdo en que había que hacer algo, así que decidimos ayudar a Bill ofreciendo esta instantánea “limpia” como ínterin. Aquellos planes fueron bruscamente interrumpidos cuando Bill Jolitz de repente decidió retirar su aprobación al proyecto sin ninguna indicación clara de lo que debería hacerse.

No tardamos mucho en decidir que el objetivo seguía valiendo la pena, aun sin el soporte de Bill, y fue así que adoptamos el nombre “FreeBSD”, debido a David Greenman. Nuestros objetivos iniciales se fijaron una vez consultamos a los usuarios del sistema, y cuando quedó claro que el proyecto estaba en marcha y que podía llegar a ser una realidad contacté con Walnut Creek CDROM con la idea de mejorar los canales de distribución de FreeBSD y así hacer más fácil el llegar a aquellas personas que no tenían la suerte de tener acceso a Internet. Walnut Creek CDROM no solo nos ayudó con la idea de distribuir FreeBSD en CD, también dio al proyecto una máquina en la que trabajar y una conexión rápida a Internet. Sin la fe casi sin precedentes que tuvo Walnut Creek CDROM en lo que era por aquel tiempo un proyecto completamente desconocido, es bastante improbable que FreeBSD hubiera logrado tanto y tan rápido como ha logrado hasta el dia de hoy.

La primera distribución en CDROM (y disponible por la red) fue FreeBSD 1.0, publicado en diciembre de 1993. Estaba basado en la cinta de U.C. Berkeley del 4.3BSD-Lite (“Net/2”), con bastantes componentes de 386BSD y la Free Software Foundation. Fue un logro bastante razonable para una primera versión, y le siguió FreeBSD 1.1 en mayo de 1994, que tuvo un gran éxito.

Por entonces se formaron unos inesperados nubarrones en el horizonte ya que Novell y la Universidad de Berkeley resolvieron el largo juicio acerca del estatus legal de la cinta de Berkeley Net/2. Una condición del acuerdo fue la concesión por parte de Berkeley de que una gran parte de Net/2 era código “gravado” y propiedad de Novell, quien a su vez lo había adquirido de AT&T anteriormente. Berkeley obtuvo a cambio de Novell el “beneplácito” para que 4.4BSD-Lite, cuando saliera, fuera declarado como no-gravado y se instara a los usuarios de Net/2 a cambiar. Esto incluía a FreeBSD, y se dio hasta julio de 1994 para dejar de sacar su propio producto basado en Net/2. Bajo los términos de aquel acuerdo se le permitía al proyecto sacar una última versión antes de la fecha límite: esa versión fue FreeBSD 1.1.5.1.

FreeBSD tuvo entonces que acometer la árdua tarea de literalmente reinventarse a sí mismo a partir de trozos nuevos y bastante incompletos de 4.4BSD-Lite. Las versiones “Lite” eran ligeras en parte porque el CSRG de Berkeley quitó grandes partes del código necesario para construir un sistema que pudiera arrancar (debido a diversos requisitos legales) y porque la versión del 4.4 para Intel era muy incompleta. No fue hasta noviembre de 1994 que el proyecto realizó esa transición; apareció FreeBSD 2.0 en la red y en CDROM (a finales de diciembre). A pesar de no estar suficientemente pulida, esta distribución fue un éxito significativo y le siguió el más robusto y fácil de instalar FreeBSD 2.0.5 en junio de 1995.

Sacamos FreeBSD 2.1.5 en Agosto de 1996, y pareció ser suficientemente popular entre ISPs y otras comunidades comerciales como para que mereciera otra versión de la rama 2.1-STABLE. Fue FreeBSD 2.1.7.1, publicada en febrero de 1997, que marcó el final de la línea principal de desarrollo en 2.1-STABLE. Una vez en modo mantenimiento, en esa rama (RELENG_2_1_0) sólo se harían ya mejoras en seguridad y correcciones de errores críticos.

FreeBSD se ramificó desde la línea principal de desarrollo (“-CURRENT”) en noviembre de 1996 como la rama RELENG_2_2, y la primera versión completa (2.2.1) salió en abril de 1997. Se hicieron más versiones de la rama 2.2 en verano y otoño de 1997, la última de las cuales (2.2.8) apareció en noviembre de 1998. La primera versión 3.0 oficial salió en octubre de 1998 y marcó el inicio del fin de la rama 2.2.

El árbol se ramificó de nuevo el 20 de Enero de 1999, dando lugar a las ramas 4.0-CURRENT y 3.X-STABLE. De la 3.X-STABLE, 3.1 salió el 15 de febrero de 1999, 3.2 el 15 de mayo de 1999, 3.3 el 16 de septiembre de 1999, 3.4 el 20 de diciembre de 1999, y 3.5 el 24 de Junio de 2000, a la que siguió pocos días después una actualización menor, la 3.5.1, que incorporaba mejoras de seguridad de última hora para Kerberos. Esa fue la última versión de la rama 3.X.

Hubo otra ramificación el 13 de Marzo de 2000, que dió lugar a la rama 4.X-STABLE. Ha habido varias versiones de la misma desde entonces: 4.0-RELEASE salió en Marzo de 2000, y la má reciente 5.5-RELEASE salió en May 2006. Habrá más versiones de la rama 4.X-STABLE (RELENG_4).

La largamente esperada 5.0-RELEASE se anunció el 19 de enero de 2003, culminando casi tres años de trabajo; esta versión colocó a FreeBSD en el avanzado camino del multiproceso y el soporte de hilos para las aplicaciones e introdujo soporte para las plataformas UltraSPARC® y ia64. Siguió a esta la versión 5.1 lanzada en Junio de 2003. La última versión de 5.X como la rama -CURRENT fué 5.2.1-RELEASE, que salió en febrero de 2004.

1.3.2. Objetivos del Proyecto FreeBSD

Texto original de Jordan Hubbard.

Los objetivos del Proyecto FreeBSD son producir software que pueda usarse con cualquier propósito y sin compromiso alguno. Muchos de nosotros participamos significativamente en el código (y en el proyecto) y ciertamente no nos importaría recibir una pequeña compensación económica de vez en cuando, pero decididamente no estamos dispuestos a insitir en ello. Creemos que nuestra más importante y primordial “misión” es dar código a todo el que venga, y para lo que quiera, de manera que el código sea tan usado y dé tanto provecho como sea posible. Creo que éste es uno de los objetivos más fundamentales del software libre y algo que nosotros apoyamos con entusiasmo.

El código fuente de nuestro árbol que se halla bajo la GNU General Public License (GPL) o la Library General Public License (LGPL) viene con algunas restricciones más, si bien de cara a garantizar acceso al mismo, y no al contrario como es lo habitual. Debido a las complicaciones adicionales que pueden surgir en el uso comercial de software con licencia GPL, preferimos que el software contribuído lo sea bajo la licencia BSD, menos estricta, siempre y cuando sea una opción razonable.

1.3.3. El modelo de desarrollo de FreeBSD

Texto de Satoshi Asami.

El desarrollo de FreeBSD es un proceso muy abierto y flexible, estando FreeBSD construído literalmente a partir de las contribuciones de centenares de personas de todo el mundo, como puede verse en nuestra lista de contribuidores. La infraestructura de desarrollo del proyecto FreeBSD permite a estos cientos de desarrolladores trabajar a través de Internet. Estamos constantemente a la búsqueda de nuevos desarrolladores e ideas, y aquéllos interesados en vincularse más al proyecto tan sólo tienen que ponerse en contacto con nosotros en lista de correo de discusiones técnicas en FreeBSD. La lista lista de anuncios importantes del Proyecto FreeBSD también se halla disponible para quienes deseen dar a conocer a otros usuarios de FreeBSD grandes áreas de trabajo.

Cosas útiles de saber sobre el Proyecto FreeBSD y su proceso de desarrollo, ya sea trabajando de forma independiente o en estrecha cooperación:

El repositorio CVS

El árbol de código fuente central de FreeBSD se mantiene con CVS (Concurrent Versions System), una herramienta de control de versiones de código fuente que se halla libremente disponible y viene con FreeBSD. El repositorio CVS principal reside en una máquina en Santa Clara California (EEUU), desde la que es replicado a numerosas réplicas (conocidas también como “mirrors”) repartidas por todo el mundo. El árbol del CVS que contiene los árboles -CURRENT y -STABLE, pueden replicarse fácilmente también en su máquina Por favor, consulte la sección Sincronización del árbol de código fuente para más información sobre cómo hacerlo.

La lista de committers

Los committers son gente que tienen permisos de escritura en el árbol del CVS, y están por tanto autorizados a realizar modificaciones en los fuentes de FreeBSD (el término “committer” viene de la orden commit de cvs(1), que sirve para subir nuevos cambios al repositorio del CVS). La mejor manera de enviar aportaciones para que sean revisadas por los committers es usar send-pr(1), aunque si pareciera que algo va mal en el sistema también puede enviar correo electrónico a lista de correo para 'committers' de FreeBSD.

El Core Team de FreeBSD

El Core Team de FreeBSD sería lo equivalente a una junta directiva si el Proyecto FreeBSD fuese una compañía. La principal tarea de este equipo es la de garantizar que el proyecto, como un todo, tenga salud y sigue las direcciones correctas. Invitar a desarrolladores comprometidos y responsables a unirse a nuestro grupo de committers es otra de las funciones del Core Team, así como el reclutamiento de nuevos miembros del equipo cuando otros se van. El Core Team fue elegido de un conjunto de committers candidatos en julio de 2004. Se celebran elecciones cada 2 años.

Algunos miembros del Core Team tienen también áreas de responsabilidad específicas, en cuanto a que se encargan de garantizar que cierta parte extensa del sistema funcione según lo previsto. Hay una lista completa de desarrolladores de FreeBSD con sus áreas de responsabilidad respectivas en la Lista de contribuidores.

Nota: La mayoría de los miembros del Core Team son voluntarios a la hora de desarrollar FreeBSD y no se benefician económicamente del proyecto, por ello “compromiso” no debería confundirse con “soporte garantizado”. La anterior analogía de la “junta directiva” en realidad no es del todo exacta, quizá fuera más acertado decir que ésa es la gente que dedica su vida a FreeBSD ¡en contra de lo que les aconseja su propio sentido común!

Contribuidores externos

Por último y no por ello menos importante, el mayor grupo de desarrolladores está formado por los mismos usuarios, quienes constantemente aportan comentarios y corrección de errores. La mejor manera de estar en contacto con el desarrollo de FreeBSD es suscribirse a lista de correo de discusiones técnicas en FreeBSD, que es donde se discuten ese tipo de cosas. Consulte Apéndice A para mas información sobre las diferentes listas de correo de FreeBSD..

La lista de contribuidores es larga y no cesa de crecer, así que ¿por qué no apuntarse y contribuir algo a FreeBSD hoy mismo?

Aportar código no es la única manera de contribuir al proyecto; hay un lista más completa de tareas pendientes en el sitio web del Proyecto FreeBSD.

En resumen, nuestro modelo de desarrollo está organizado como un conjunto de círculos concéntricos. El modelo centralizado está diseñado pensando el la comodidad de los “usuarios” de FreeBSD, que así tienen un modo sencillo de estar al día con una base de código central, ¡no para excluir a contribuidores potenciales!. Nuestro deseo es presentar un sistema operativo estable con un gran conjunto de aplicaciones coherentes que los usuarios puedan instalar y usar fácilmente (y este modelo da buenos resultados en este sentido)

Lo único que pedimos a quienes quisieran unirse a nosotros como desarrolladores de FreeBSD es la misma dedicación que los integrantes actuales tienen para mantener su éxito.

1.3.4. La actual distribución FreeBSD

FreeBSD está libremente disponible, todo el código fuente de la distribución basada en 4.4BSD-Lite para sistemas bajo Intel i386™, i486™, Pentium®, Pentium Pro, Celeron®, Pentium II, Pentium III, Pentium III, Pentium4 (o compatible), Xeon™, DEC Alpha™ y sistemas basados en SUN UltraSPARC. Está principalmente basado en software del grupo CSRG de la universidad de Berkeley (California), con algunas mejoras provenientes de NetBSD, OpenBSD, 386BSD, y la Free Software Foundation.

Desde la versión 2.0 de FreeBSD de finales del 94, el rendimiento, conjunto de funcionalidades, y estabilidad del sistema han mejorado drásticamente. El último cambio consiste en un rediseño del sistema de memoria virtual con una caché unificada de VM/buffer que no solo aumenta el rendimiento, sino que reduce el consumo de memoria de FreeBSD, haciendo que una configuración de 5 MB sea un mínimo más aceptable. Otras mejoras incluyen soporte completo para clientes y servidores NIS, soporte para transacciones TCP, llamada bajo demanda PPP, soporte para DHCP integrado, un subsistema SCSI mejorado, soporte para ISDN (RDSI), soporte para ATM, FDDI, adaptadores Fast y Gigabit Ethernet (1000 Mbit), soporte mejorado para los últimos controladores Adaptec, y cientos de correcciones de errores.

Además de las distribuciones base, FreeBSD ofrece una colección de software con miles de programas comúnmente solicitados. ¡En el momento de escribir esto hay unos 17,000 ports! La lista de ports comprende desde servidores HTTP (WWW), juegos, lenguajes, editores, y prácticamente cualquier cosa intermedia. La colección de ports completa requiere un espacio de aproximadamente 440 MB, todos ellos expresados como “deltas” de sus fuentes originales. Esto hace que nos sea mucho más fácil actualizar ports, y reduce notablemente el espacio en disco que necesitaba la anterior colección de ports 1.0. Para compilar un port uno simplemente se sitúa bajo el directorio del programa que desea instalar, escribe make install, y deja que el sistema se encargue del resto. La distribución original completa de cada port que compile se recupera dinámicamente de un CDROM o un sitio FTP, de modo que sólo necesita el espacio usado para compilar los ports que quiera. La mayoría de los ports también están precompilados en “paquetes”, que pueden instalarse con una simple orden (pkg_add) para aquéllos que no quieran compilar sus propios ports a partir de los fuentes. Puede encontrar más información sobre los paquetes y los ports en Capítulo 4.

Algunos documentos que pueden ser de ayuda en el proceso de instalación y al utilizar FreeBSD pueden también encontrarse en el directorio /usr/share/doc de cualquier máquina con una versión reciente de FreeBSD. Puede consultar los manuales que están instalados su sistema con cualquier navegador que pueda mostrar HTML vía las siguientes URLs:

El manual de FreeBSD

/usr/share/doc/handbook/index.html

Las FAQ de FreeBSD

/usr/share/doc/faq/index.html

También puede ver la copia original (y más frecuentemente actualizada) en http://www.FreeBSD.org/.

Éste y otros documentos pueden obtenerse en ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para preguntas acerca de FreeBSD, leer la documentación antes de contactar con la lista <questions@FreeBSD.org>.
Para preguntas acerca de esta documentación, e-mail a <doc@FreeBSD.org>.