En 2005, FreeBSD era el sistema operativo BSD de código abierto más popular, representando más de tres cuartas partes de todos los sistemas BSD instalados y con licencia permisiva.[3]
FreeBSD ofrece una gran cantidad de funciones avanzadas e incluso cuenta con algunas no disponibles en algunos sistemas operativos comerciales. Es un excelente servidor de Internet e Intranet gracias a sus robustos servicios de red que le permiten maximizar la memoria y trabajar con cargas pesadas para entregar y mantener buenos tiempos de respuesta para miles de procesos de usuario simultáneos.
Ejecuta una gran cantidad de aplicaciones con facilidad. Por el momento, tiene más de 24 000 aplicaciones y bibliotecas portadas con soporte para escritorio, servidor y entornos integrados. FreeBSD es excelente para trabajar con plataformas integradas avanzadas, está disponible para instalar de varias maneras y hay instrucciones a seguir para cualquier método que desees usar, ya sea a través de CD-ROM, a través de una red usando NFS o FTP, o DVD.
Es fácil de contribuir y todo lo que tienes que hacer es ubicar la sección de la base de código de FreeBSD para modificar y hacer un trabajo ordenado. Los potenciales contribuyentes también son libres de mejorar sus ilustraciones y documentación, entre otros aspectos del proyecto, FreeBSD es una organización sin fines de lucro con la que puedes contribuir financieramente.
La licencia de FreeBSD permite a los usuarios incorporar el uso de software propietario que es ideal para las empresas interesadas en generar ingresos. Netflix, por ejemplo, podría citar esto como una de las razones para usar servidores FreeBSD.
En junio de 1989, el «Networking Release 1» o simplemente Net-1, la primera versión pública de BSD, fue liberada. Tras la publicación de Net-1, Keith Bostic, desarrollador de BSD, sugirió reemplazar todo el código de AT&T por código de libre distribución bajo la licencia BSD original. Se empezó a trabajar en la sustitución del código AT&T y, al cabo de dieciocho meses, gran parte del código AT&T había sido sustituido. Sin embargo, seis archivos que contenían código AT&T permanecieron en el núcleo. Los desarrolladores de BSD decidieron publicar la «Networking Release 2» (Net-2) sin esos seis archivos. Net-2 se publicó en 1991.[8]
Nacimiento de FreeBSD
En 1992, varios meses después de la publicación de Net-2, William y Lynne Jolitz escribieron sustitutos para los seis ficheros de AT&T, portaronBSD a microprocesadores basados en Intel 80386 y llamaron a su nuevo sistema operativo 386BSD. Publicaron 386BSD a través de un servidor FTP anónimo.[8]
Tras el lanzamiento de 386BSD 0.1,[9], a principios de 1993, un grupo de usuarios comenzó a recopilar correcciones de errores y mejoras, y las lanzó como un paquete de parches no oficial llamado Unofficial 386BSDPatchkit, estos eran Nate Williams, Rod Grimes y Jordan Hubbard.[10]
El objetivo original era producir una instantánea intermedia de 386BSD para solucionar una serie de problemas que el mecanismo del patchkit no era capaz de resolver. El título inicial del proyecto era 386BSD 0.5 o 386BSD Interim en referencia a este hecho.
386BSD era el sistema operativo de Bill Jolitz, que hasta ese momento había estado sufriendo gravemente el abandono de casi un año. Como el kit de parches (patchkit) crecía de forma incómoda cada día que pasaba, decidieron ayudar a Bill proporcionándole esta instantánea provisional de «limpieza».
Debido a las diferencias de opinión entre los Jolitz y los mantenedores del paquete de parches sobre la dirección futura y el cronograma de lanzamiento de 386BSD,[11], el trío de mantenedores del parches no oficial pensó que el objetivo seguía mereciendo la pena, incluso sin el apoyo de Bill.
El 19 de junio de 1993 se eligió el nombre FreeBSD,[12] para continuar con su trabajo.[13] El nombre «FreeBSD» fue acuñado por David Greenman.
Los objetivos iniciales se fijaron tras consultar con los usuarios actuales del sistema y, una vez que quedó claro que el proyecto estaba en camino de convertirse incluso en realidad, Jordan se puso en contacto con Walnut Creek CDROM, con la vista puesta en mejorar los canales de distribución de FreeBSD para aquellos muchos desafortunados sin fácil acceso a Internet.
Walnut Creek CDROM no sólo apoyó la idea de distribuir FreeBSD en CD, accedió a publicar el sistema operativo en CD-ROM, y llegó a proporcionar al proyecto una máquina en la que trabajar y una conexión rápida a Internet.[14] Además de eso, la compañía empleó a Jordan Hubbard y David Greenman, ejecutó FreeBSD en sus servidores, patrocinó conferencias sobre FreeBSD y publicó libros relacionados con FreeBSD, incluyendo The Complete FreeBSD de Greg Lehey.
En 1997, FreeBSD era el producto de más éxito de Walnut Creek CDROM. Más tarde la compañía se renombró a sí misma como The FreeBSD Mall y más tarde iXsystems.[15][16][17]
La primera versión de FreeBSD se publicó en noviembre de 1993.[18]
Hoy en día, FreeBSD es utilizado por muchas empresas de TI como IBM, Nokia, Juniper Networks, y NetApp para construir sus productos.[19]
Ciertas partes del sistema operativo Mac OS X de Apple están basadas en FreeBSD.[20]
La demanda se resolvió extrajudicialmente y no se revelaron todos los términos exactos. El único que se hizo público fue que BSDi migraría su base de fuentes a las nuevas fuentes 4.4BSD-Lite2. Aunque no estaba involucrado en el litigio, se sugirió a FreeBSD que también debería migrar a 4.4BSD-Lite2.[28]
FreeBSD 2.0, que se publicó en noviembre de 1994, fue la primera versión de FreeBSD sin código de AT&T.[29]
Características
FreeBSD es un sistema operativo multiusuario, capaz de efectuar multitarea con apropiación y multiproceso en plataformas compatibles con múltiples procesadores; el funcionamiento de FreeBSD está inspirado, como ya se dijo, en la variante BSD-Lite 4.4 de UNIX. Aunque FreeBSD no puede ser propiamente llamado UNIX, al no haber adquirido la debida licencia de The Open Group, FreeBSD sí está hecho para ser compatible con la norma POSIX, al igual que varios otros sistemas «clones de UNIX».
El núcleo, la estructura de ficheros del sistema, bibliotecas de la API de C, y algunas utilidades básicas. La versión 8.1[30] trajo importantes mejoras como mayor soporte para dispositivos
FreeBSD puede instalarse en un ordenador de sobremesa normal o en un portátil. El X Window System no está instalado por defecto, pero está disponible en la colección de ports de FreeBSD. Wayland también está disponible para FreeBSD (con soporte no oficial).[31] Varios entornos de escritorio como Lumina, GNOME, KDE y Xfce, así como gestores de ventanas ligeros como Openbox, Fluxbox, dwm y bspwm, también están disponibles para FreeBSD. A partir de FreeBSD 12 está disponible el soporte para una pila gráfica moderna a través de drm-kmod. Un gran número de adaptadores inalámbricos están soportados.
FreeBSD publica imágenes de instalación para las plataformas soportadas. Desde FreeBSD 13 la atención se ha centrado en las plataformas x86-64 y AArch64 que tienen soporte Tier 1 o Nivel 1.[32] x86-32 es una plataforma Tier 1 en FreeBSD 12 pero es una plataforma Tier 2 en FreeBSD 13. Los procesadores ARM de 32 bits que usan armv6 o armv7 también tienen soporte de nivel 2. También están soportadas las versiones de 64 bits de PowerPC y RISC-V.[33] El interés por la arquitectura RISC-V ha ido creciendo.[34] El port de la arquitectura MIPS ha sido marcado como obsoleto y no hay imagen para ninguna de las versiones soportadas actualmente.[35] FreeBSD 12 soporta SPARC pero no hay imagen para FreeBSD 13.
Redes
La pila TCP/IP de FreeBSD está basada en la implementación 4.2BSD de TCP/IP, que contribuyó en gran medida a la adopción generalizada de estos protocolos.[36] FreeBSD también soporta IPv6,[37] SCTP, IPSec y redes inalámbricas (Wi-Fi).[38] Las pilas IPv6 e IPSec fueron tomadas del proyecto KAME.[39] Antes de la versión 11.0, FreeBSD soportaba los protocolos IPX y AppleTalk, pero se consideran antiguos y ya han sido abandonados.[40]
A partir de FreeBSD 5.4 se importó del proyecto OpenBSD el soporte para el protocolo CARP (Common Address Redundancy Protocol). CARP permite a múltiples nodos compartir un conjunto de direcciones IP, de modo que si uno de los nodos se cae, los otros nodos pueden seguir sirviendo las peticiones.[41]
Almacenamiento
FreeBSD tiene varias características únicas relacionadas con el almacenamiento. Las actualizaciones suaves pueden proteger la consistencia del sistema de ficherosUFS (ampliamente utilizado en los BSD) en caso de caída del sistema[42] Las instantáneas del sistema de ficheros permiten crear de forma eficiente una imagen de un sistema de ficheros UFS en un instante de tiempo[43] Las instantáneas permiten realizar copias de seguridad fiables de un sistema de ficheros activo. GEOM es un marco modular que proporciona RAID (niveles 0, 1, 3 actualmente), cifrado de disco completo, registro en diario, concatenación, almacenamiento en caché y acceso a almacenamiento respaldado por red. GEOM permite construir soluciones de almacenamiento complejas combinando («encadenando») estos mecanismos[44] FreeBSD proporciona dos marcos para el cifrado de datos: GBDE y Geli. Tanto GBDE como Geli operan a nivel de disco. GBDE fue escrito por Poul-Henning Kamp y se distribuye bajo la licencia BSD de dos cláusulas. Geli es una alternativa a GBDE que fue escrita por Pawel Jakub Dawidek y apareció por primera vez en FreeBSD 6.0.[45][46]
A partir de la versión 7.0 FreeBSD soporta el sistema de ficheros ZFS. ZFS era anteriormente un sistema de archivos de código abierto desarrollado por Sun Microsystems, pero cuando Oracle adquirió Sun, ZFS se convirtió en un producto propietario. Sin embargo, el proyecto FreeBSD sigue desarrollando y mejorando su implementación de ZFS a través del proyecto OpenZFS.[47]
Seguridad
FreeBSD proporciona varias características relacionadas con la seguridad, incluyendo listas de control de acceso (ACLs),[48] auditoría de eventos de seguridad, atributos extendidos del sistema de ficheros, controles de acceso obligatorios (MAC)[49] y capacidades de «grano fino».[50] Estas mejoras de seguridad fueron desarrolladas por el proyecto TrustedBSD. El proyecto fue fundado por Robert Watson con el objetivo de implementar conceptos de Los Criterios Comunes para la Evaluación de la Seguridad de las Tecnologías de la Información y el Orange Book (Libro Naranja). Este proyecto está en marcha y muchas de sus extensiones se han integrado en FreeBSD.[51] El proyecto cuenta con el apoyo de diversas organizaciones, como DARPA, NSA, Network Associates Laboratories, Safeport Network Services, la Universidad de Pensilvania, Yahoo!, McAfee Research, SPARTA, Apple Computer, nCircle Network Security, Google, el Laboratorio de Informática de la Universidad de Cambridge, etc.[52]
El proyecto también ha portado la implementación FLASK/TE de la NSA de SELinux a FreeBSD. Otros trabajos incluyen el desarrollo de OpenBSM, una implementación de código abierto de la API del Módulo Básico de Seguridad (BSM) de Sun y el formato de archivo de registro de auditoría, que soporta un extenso sistema de auditoría de seguridad. Se distribuyó como parte de FreeBSD 6.2. Otros trabajos de infraestructura en FreeBSD realizados como parte del proyecto TrustedBSD han incluido GEOM y OpenPAM.[50]
La mayoría de los componentes del proyecto TrustedBSD acaban integrándose en las fuentes principales de FreeBSD. Además, muchas características, una vez completamente maduras, encuentran su camino en otros sistemas operativos. Por ejemplo, OpenPAM ha sido adoptado por NetBSD.[53] Además, el marco MAC de TrustedBSD ha sido adoptado por Apple para macOS.[54]
FreeBSD se distribuye con tres paquetes de cortafuegos diferentes: IPFW, pf e IPFilter. IPFW es el cortafuegos nativo de FreeBSD. pf fue tomado de OpenBSD e IPFilter fue adaptado a FreeBSD por Darren Reed.[55]
Tomado de OpenBSD, el programa OpenSSH se incluyó en la instalación por defecto. OpenSSH es una implementación libre del protocolo SSH y es un sustituto de telnet. A diferencia de telnet, OpenSSH cifra toda la información (incluidos nombres de usuario y contraseñas).[56]
En noviembre de 2012, el equipo de seguridad de FreeBSD anunció que hackers habían conseguido acceso no autorizado a dos servidores del proyecto. Estos servidores fueron apagados inmediatamente. Más investigaciones demostraron que el primer acceso no autorizado por parte de hackers se produjo el 19 de septiembre. Al parecer, los piratas informáticos accedieron a estos servidores robando las claves SSH de uno de los desarrolladores, no aprovechando un fallo del propio sistema operativo. Estos dos servidores hackeados formaban parte de la infraestructura utilizada para crear paquetes de software de terceros. El equipo de seguridad de FreeBSD comprobó la integridad de los paquetes binarios y anunció que no se habían realizado cambios no autorizados en ellos, pero declaró que no podía garantizar la integridad de los paquetes que se descargaron entre el 19 de septiembre y el 11 de noviembre.[57][58][59]
Las plataformas de Tier 1 (o nivel 1) son las plataformas FreeBSD más maduras, por ejemplo, es el único nivel «soportado por el responsable de seguridad».[60]
Se espera que las arquitecturas de nivel 1 sean de calidad de producción con respecto a todos los aspectos del sistema operativo FreeBSD, incluidos los entornos de instalación y desarrollo.[61]
Tier 2
Las plataformas de Tier 2 (o nivel 2) son plataformas FreeBSD funcionales, pero menos maduras.
Las plataformas de nivel 2 pueden ser candidatas a plataformas de nivel 1 que aún se encuentran en desarrollo activo. Las arquitecturas que llegan al final de su vida útil también pueden pasar del estado de nivel 1 al estado de nivel 2 a medida que disminuye la disponibilidad de recursos para continuar manteniendo el sistema en un estado de Calidad de Producción. Las arquitecturas especializadas bien soportadas también pueden ser de nivel 2.[62]
Tier 3
Las plataformas de Tier 3 (o nivel 3) son arquitecturas en las primeras etapas de desarrollo, para plataformas de hardware no convencionales, o que se consideran sistemas heredados con pocas probabilidades de tener un uso amplio en el futuro. El soporte inicial para las plataformas de nivel 3 puede existir en un repositorio separado en lugar del repositorio de origen principal.
El Proyecto FreeBSD no ofrece garantías a los consumidores de plataformas de nivel 3 y no se compromete a mantener los recursos para apoyar el desarrollo. Es posible que las plataformas de nivel 3 no siempre sean compilables.[63]
Sin soporte
Algunas plataformas no están soportadas en absoluto por el proyecto.[64] El proyecto antes las describía como sistemas de Tier 4 (o nivel 4).
Después de que una plataforma pase a ser no soportada, se elimina de los árboles de fuentes, ports y documentación todo su soporte.
El soporte de ports debe permanecer mientras la arquitectura esté soportada en una rama todavía soportada por los ports.
Plataformas soportadas (ports)
FreeBSD ha sido adaptado a las siguientes arquitecturas:
La plataforma RISC-V 64-bit. Tiene soporte Tier 3 en la versión 12.x, y tiene soporte Tier 2 en las versiones 13.x y 14.x.[72] La plataforma RISC-V 64-bit soft-float . Tiene soporte Tier 3 en la versión 12.x, tiene soporte Tier 3 en la versión 13.x, y no está soportado en la versión 14.x.[72]
Los dispositivos compatibles están listados en las Notas de hardware de FreeBSD desde la versión 12.1.[79] El documento describe los dispositivos que FreeBSD soporta actualmente. Es posible que otras configuraciones también funcionen, pero simplemente no han sido probadas todavía. En un repositorio de terceros hay disponibles listas de ids de dispositivos soportados extraídas automáticamente.[80]
FreeBSD tiene un repositorio de software con más de 30 000 aplicaciones desarrolladas por terceros.[84] Algunos ejemplos son: sistemas de ventanas, navegadores web, clientes de correo electrónico, suites ofimáticas, etc. En general, el propio proyecto no desarrolla este software, sólo el marco para permitir que estos programas se instalen, lo que se conoce como la Colección de Ports. Las aplicaciones pueden compilarse desde el código fuente (ports), siempre que los términos de la licencia lo permitan, o descargarse como binarios precompilados («packages»)[85] La colección de Ports soporta las ramas actuales y estables de FreeBSD. Las versiones anteriores no están soportadas y pueden o no funcionar correctamente con una colección de Ports actualizada.[86]
Los ports usan Makefiles para obtener automáticamente el código fuente de la aplicación deseada, ya sea de un repositorio local o remoto, desempaquetarlo en el sistema, aplicarle parches y compilarlo.[87][88] Dependiendo del tamaño del código fuente, la compilación puede llevar mucho tiempo, pero da al usuario más control sobre el proceso y su resultado. La mayoría de los ports también tienen paquetes homólogos (es decir, binarios precompilados), lo que permite al usuario elegir. Aunque este método es más rápido, el usuario tiene menos opciones de personalización.[85]
La versión 10.0 de FreeBSD introdujo el gestor de paquetespkg como sustituto de las herramientas de paquetes usadas anteriormente.[89] Es funcionalmente similar a apt y yum en las distribuciones Linux. Permite instalar, actualizar y eliminar tanto ports como paquetes. Además de pkg, PackageKit también se puede utilizar para acceder a la Colección de Ports.
Introducidas por primera vez en la versión 4 de FreeBSD,[90] las jaulas (jails) son un mecanismo de seguridad y una implementación de virtualización a nivel de sistema operativo que permite al usuario ejecutar múltiples instancias de un sistema operativo invitado sobre un sistema anfitrión FreeBSD. Es una versión mejorada del mecanismo chroot tradicional. Un proceso que se ejecuta dentro de una jaula de este tipo no puede acceder a los recursos que se encuentran fuera de ella. Cada jaula tiene su propio Hostname y dirección IP. Es posible ejecutar varias jaulas al mismo tiempo, pero el núcleo se comparte entre todas ellas. Por tanto, dentro de una jaula sólo puede ejecutarse software soportado por el kernel de FreeBSD.[91]
bhyve, una nueva solución de virtualización, se introdujo en FreeBSD 10.0. bhyve permite a un usuario ejecutar varios sistemas operativos invitados (FreeBSD, OpenBSD, Linux y Microsoft Windows[92]) simultáneamente. Están previstos otros sistemas operativos como Illumos. bhyve fue escrito por Neel Natu y Peter Grehan y se anunció en la conferencia BSDCan de 2011 por primera vez. La principal diferencia entre bhyve y las jaulas de FreeBSD es que las jaulas son una virtualización a nivel de sistema operativo y, por lo tanto, están limitadas únicamente a invitados FreeBSD; pero bhyve es un hipervisor de tipo 2 y no está limitado únicamente a invitados FreeBSD[93][94][95] A modo de comparación, bhyve es una tecnología similar a KVM mientras que las jaulas están más cerca de los contenedores LXC o Solaris Zones. Las instancias AMI de Amazon EC2 también están soportadas a través de amazon-ssm-agent.
Desde FreeBSD 11.0, ha habido soporte para ejecutarse como dominio privilegiado Dom0 para el hipervisor Xen tipo 1.[96] El soporte para ejecutarse como DomU (invitado) ha estado disponible desde FreeBSD 8.0.
VirtualBox (sin el paquete de extensión de código cerrado) y QEMU están disponibles en FreeBSD.
La mayor parte del software que se ejecuta en GNU/Linux puede ejecutarse en FreeBSD utilizando una capa de compatibilidad opcional incorporada llamada Linuxtator.[97] Por tanto, la mayoría de los binarios de Linux pueden ejecutarse en FreeBSD, incluyendo algunas aplicaciones propietarias distribuidas únicamente en forma binaria. Esta capa de compatibilidad no es una emulación; la interfaz de llamada al sistema de GNU/Linux está implementada en el núcleo de FreeBSD y, por tanto, las imágenes ejecutables y las bibliotecas compartidas de GNU/Linux se tratan igual que las imágenes ejecutables y las bibliotecas compartidas nativas de FreeBSD.[98] Además, FreeBSD proporciona capas de compatibilidad para otros sistemas operativos tipo Unix, además de GNU/Linux, como BSD/OS y SVR4,[98] sin embargo, es más común que los usuarios compilen esos programas directamente en FreeBSD.[99]
No se ha observado ninguna penalización notable en el rendimiento respecto a los programas nativos de FreeBSD cuando se ejecutan binarios de GNU/Linux, y, en algunos casos, éstos pueden incluso funcionar mejor que en GNU/Linux[100][101] Sin embargo, la capa no es del todo perfecta, y algunos binarios de Linux son inutilizables o sólo parcialmente utilizables en FreeBSD. Hay soporte para llamadas al sistema hasta la versión 2.6.18, disponible desde FreeBSD 7.0. A partir de la versión 10.3, FreeBSD puede ejecutar binarios Linux de 64 bits.[102]
FreeBSD ha implementado una serie de interfaces de núcleoNDIS nativas de Microsoft Windows para permitir a FreeBSD ejecutar controladores de red (de otro modo) exclusivos de Windows.[103][104]
La capa de compatibilidad Wine, que permite ejecutar muchas aplicaciones de Windows, especialmente juegos, sin una copia (con licencia) de Microsoft Windows, está disponible para FreeBSD.
Núcleo
El núcleo de FreeBSD proporciona soporte para algunas tareas esenciales como la gestión de procesos, comunicación, arranque y sistemas de ficheros. FreeBSD tiene un núcleo monolítico,[105] con un diseño modular. Diferentes partes del kernel, como los controladores, están diseñadas como módulos. El usuario puede cargar y descargar estos módulos en cualquier momento.[106] ULE es el planificador por defecto en FreeBSD desde la versión 7.1, soporta Multiprocesamiento simétrico (SMP) y Multihilo simultáneoSMT.[107] El kernel FreeBSD tiene también una interfaz de notificación de eventos escalable, llamada kqueue. Ha sido portado a otros derivados de BSD como OpenBSD y NetBSD.[108] El hilado del núcleo (Kernel threading) se introdujo en FreeBSD 5.0, usando un modelo de hilado M:N. Este modelo funciona bien en teoría,[109] pero no es así; es difícil de implementar y pocos sistemas operativos lo soportan. Aunque la implementación de FreeBSD de este modelo funcionaba, no tenía un buen rendimiento, por lo que a partir de la versión 7.0 FreeBSD empezó a usar un modelo de threading 1:1, llamado libthr.[110]
Documentación y soporte
La documentación de FreeBSD consiste en sus manuales, páginas de manual, archivos de listas de correo, FAQs y una variedad de artículos, mantenidos principalmente por The FreeBSD Documentation Project.[111] La documentación de FreeBSD está traducida a varios idiomas.[112] Toda la documentación oficial se publica bajo la Licencia de documentación FreeBSD, «una licencia de documentación libre permisiva sin copyleft que es compatible con la GNU FDL».[113] La documentación de FreeBSD se describe como «de alta calidad».[114][115]
El proyecto FreeBSD mantiene varias listas de correo.[116] Entre las más populares se encuentran FreeBSD-questions (preguntas generales) y FreeBSD-hackers (un lugar para hacer preguntas más técnicas).[117]
FreeBSD desde la versión 2.0 hasta la 8.4 utilizó el programa sysinstall como instalador principal. Fue escrito en C por Jordan Hubbard. Utiliza una interfaz de usuario de texto, y está dividido en una serie de menús y pantallas que pueden utilizarse para configurar y controlar el proceso de instalación.
La utilidad sysinstall se considera actualmente obsoleta en favor de bsdinstall, un nuevo instalador que se introdujo en FreeBSD 9.0. bsdinstall es «un sustituto ligero de sysinstall» que fue escrito en sh. Según OSNews, «ha perdido algunas características mientras que ha ganado otras, pero es un diseño mucho más flexible, y en última instancia será una mejora significativa».[120][121]
Shell
La shell por defecto de FreeBSD es la shell tcsh para root, y la shell Almquist shell (sh) para usuarios normales.[122] La shell de scripting por defecto es la Almquist shell .[123]
Desarrollo
FreeBSD es desarrollado por un equipo de voluntarios repartidos por todo el mundo. Los desarrolladores utilizan Internet para todas las comunicaciones y muchos no se han conocido en persona. Además de los grupos de usuarios locales patrocinados y a los que asisten los usuarios, USENIX celebra una conferencia anual, llamada BSDcon. BSDcon no es específica de FreeBSD, por lo que trata los aspectos técnicos de todos los sistemas operativos derivados de BSD, incluyendo OpenBSD y NetBSD.[124] Además de BSDcon, otras tres conferencias anuales, EuroBSDCon, AsiaBSDCon y BSDCan tienen lugar en Europa, Japón y Canadá respectivamente.[125][126][127]
El Proyecto FreeBSD está dirigido por unos quinientos committers o desarrolladores que tienen acceso a los repositorios maestros de código fuente y pueden desarrollar, depurar o mejorar cualquier parte del sistema. La mayoría de los desarrolladores son voluntarios y unos pocos son pagados por algunas empresas.[128] Hay varios tipos de committers, incluyendo committers de código fuente (sistema operativo base), doc committers (documentación y autores de sitios web) y ports (portabilidad de aplicaciones de terceros e infraestructura). Cada dos años los committers de FreeBSD eligen un Core Team de FreeBSD formado por nueve miembros, que es responsable de la dirección general del proyecto, de establecer y hacer cumplir las reglas del proyecto y de aprobar a los nuevos committers, o la concesión de acceso commit a los repositorios de código fuente. El equipo central de FreeBSD asigna oficialmente una serie de responsabilidades a otros equipos de desarrollo, por ejemplo, la responsabilidad de gestionar la colección de ports se delega en el equipo de gestión de ports.[129]
Además de desarrolladores, FreeBSD cuenta con miles de «contribuidores». Los contribuidores son también voluntarios ajenos al proyecto FreeBSD que envían parches para que sean considerados por los committers, ya que no tienen acceso al repositorio de código fuente de FreeBSD. Los committers evalúan los envíos de los contribuidores y deciden qué aceptar y qué rechazar. A los colaboradores que envían parches de alta calidad se les suele pedir que se conviertan en committers.[129]
Ramas
Los desarrolladores de FreeBSD mantienen al menos dos ramas de desarrollo simultáneas.
La rama «current» siempre representa el bleeding edge del desarrollo de FreeBSD. Para cada número de versión mayor de FreeBSD se crea una rama «stable», de la que se corta una «release» nueva aproximadamente cada 4-6 meses. Si una característica es lo suficientemente estable y madura es probable que sea adaptada hacia atrás (MFC, acrónimo de «merge from current» en el argot de los desarrolladores de FreeBSD) a la rama «stable».[130][131]
El desarrollo de FreeBSD está apoyado en parte por la Fundación FreeBSD. La fundación es una organización sin ánimo de lucro que acepta donaciones para financiar el desarrollo de FreeBSD. Dichos fondos se han utilizado para patrocinar a desarrolladores para actividades específicas, comprar hardware e infraestructura de red, proporcionar becas de viaje a cumbres de desarrolladores y proporcionar apoyo legal al proyecto FreeBSD.[132]
En noviembre de 2014, la Fundación FreeBSD recibió una donación de un millón de dólares de Jan Koum, cofundador y CEO de WhatsApp, la mayor donación individual a la Fundación desde su creación. En diciembre de 2016, Jan Koum donó otros 500 000 dólares.[133] El propio Jan Koum es usuario de FreeBSD desde finales de los 90 y WhatsApp utiliza FreeBSD en sus servidores.[134]
Licencia
FreeBSD se publica bajo diversas licencias de código abierto. El código del núcleo y la mayoría del código de nueva creación se liberan bajo la Licencia BSD de dos cláusulas que permite a todo el mundo usar y redistribuir FreeBSD como desee. Esta licencia fue aprobada por Free Software Foundation[135] y Open Source Initiative[136] como licencia de Software Libre y de Código Abierto respectivamente.
La Free Software Foundation describe esta licencia como «una licencia de software libre laxa, permisiva y sin copyleft, compatible con la GNU GPL». Hay partes liberadas bajo licencias BSD de tres y cuatro cláusulas, así como la licencia Beerware. Algunos controladores de dispositivos incluyen un blob binario,[137] como el AtherosHAL de las versiones de FreeBSD anteriores a la 7.2.[138] Parte del código aportado por otros proyectos está licenciado bajo GPL, LGPL, CDDL[139] y ISC. Todo el código licenciado bajo GPL y CDDL está claramente separado del código bajo licencias liberales, para facilitar a usuarios como los fabricantes de dispositivos embebidos el uso de sólo licencias de software libre permisivass. ClangBSD pretende reemplazar algunas dependencias GPL del sistema base FreeBSD sustituyendo la GNU Compiler Collection por el compilador LLVM/Clang con licencia BSD. ClangBSD se convirtió en autoalojamiento el 16 de abril de 2010.[140]
Logo
Durante muchos años el logo de FreeBSD fue el genérico BSD Daemon, también llamado Beastie, una pronunciación distorsionada de BSD. Sin embargo, Beastie no era exclusivo de FreeBSD. Apareció por primera vez en 1976 en camisetas de Unix compradas por Bell Labs, y las versiones más populares del demonio BSD fueron dibujadas por el director de animación John Lasseter a partir de 1984.[141][142] Varias versiones específicas de FreeBSD fueron dibujadas posteriormente por Tatsumi Hosokawa.[143]
En términos litográficos, el gráfico de Lasseter no es line art y a menudo requiere un proceso de impresión photo offset tramado y en cuatricromía para su reproducción fiel en superficies físicas como el papel. Además, se creía que el demonio BSD era demasiado detallado gráficamente para escalar su tamaño sin problemas y que estéticamente dependía en exceso de múltiples gradaciones de color, lo que dificultaba su reproducción fiable como logotipo simple y estandarizado en sólo dos o tres colores, y mucho menos en monocromo. Debido a estas preocupaciones, se convocó un concurso y el 8 de octubre de 2005 se publicó un nuevo logotipo diseñado por Anton K. Gural, que seguía haciéndose eco del demonio BSD.[144][145][146] Sin embargo, fue anunciado por Robert Watson que el proyecto FreeBSD está «buscando un nuevo logotipo, pero no una nueva mascota» y que el proyecto FreeBSD seguiría usando a Beastie como mascota.[147]
El nombre «FreeBSD» fue acuñado por David Greenman el 19 de junio de 1993, otros nombres sugeridos fueron «BSDFree86» y «Free86BSD».[148] El eslogan de FreeBSD, «El poder de servir», es una marca registrada de la Fundación FreeBSD.[149].
Versión simplificada del logo de FreeBSD, sin las letras del mismo. Se puede ver la versión original, pero con derechos de autor, propiedad de Anton Gural para FreeBSD, en la wikipedia en inglésaquí.
TrueOS, anteriormente conocido como PC-BSD (dirigido a usuarios domésticos y estaciones de trabajo, pero con una versión de servidor similar a FreeNAS y TrueOS pico para ARM dispositivos embebidos de 32 bits).
Todas estas distribuciones no presentan cambios, o éstos son mínimos, en comparación con el sistema base original de FreeBSD. La principal diferencia con el FreeBSD original es que vienen con software preinstalado y preconfigurado para casos de uso específicos. Esto puede compararse con las distribuciones Linux, que son todas compatibles bíblicamente porque usan el mismo kernel y también usan las mismas herramientas básicas, compiladores y bibliotecas aunque vienen con diferentes aplicaciones, configuraciones y marcas.
Además de estas distribuciones, existen algunos sistemas operativos independientes basados en FreeBSD. DragonFly BSD es un fork de FreeBSD 4.8 con una estrategia de sincronización multiprocesador diferente a la elegida para FreeBSD 5 y el desarrollo de algunas características del microkernel.[150] No pretende ser compatible con FreeBSD y tiene grandes diferencias en el kernel y en userland básico. MidnightBSD es un fork de FreeBSD 6.1 que toma prestado mucho de NeXTSTEP, particularmente en el departamento de interfaz de usuario.
pfSense, panel de control con widgets - Discos - Información del sistema - Servidor de tiempo - Paquetes instalados - Servicios en ejecución - Interfaces - Gráficos de tráfico
La línea temporal muestra que una generación de FreeBSD dura alrededor de 5 años. Dado que el proyecto FreeBSD se esfuerza por conseguir compatibilidad binaria hacia atrás (y limitada hacia adelante) dentro de la misma generación de releases,[324] esto permite a los usuarios más de 5 años de soporte, con actualizaciones triviales o sencillas dentro de la misma generación de lanzamientos.
↑«386BSD FAQ». William Jolitz, Lynne Jolitz. 13 de enero de 2014. Archivado desde el original el 13 de enero de 2014. Consultado el 13 de enero de 2014.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 744, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑McKusick, Marshall; Neville-Neil, George V. (2005). «8.6. Soft Updates». The Design and Implementation of the FreeBSD Operating System. ISBN0-201-70245-2.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 5, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), DISK TRICKS WITH GEOM: No Starch Press, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑«geli(8)». The FreeBSD Project. Consultado el 12 de agosto de 2014.
↑Daniel Harris (14 de agosto de 2003). «FreeBSD Access Control Lists». ONLamp. Archivado desde el original el 19 de octubre de 2013. Consultado el 15 de diciembre de 2013.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 273, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 440, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑ abLucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 317, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑McKusick, Marshall K.; Neville-Neil, George V. (2 de agosto de 2004), The Design and Implementation of the FreeBSD Operating System (First edición), Capítulo 2, Design Overview of FreeBSD: Addison–Wesley, ISBN0-201-70245-2.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 4-5, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 359, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 25, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 5, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑ abLucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 6, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.
↑Lucas, Michael W. (14 de noviembre de 2007), Absolute FreeBSD (Second edición), No Starch Press, p. 372-375, ISBN978-1-59327-151-0, archivado desde el original el 17 de febrero de 2018, consultado el 30 de abril de 2009.