FreeBSD es un sistema operativo gratuito y de código abierto similar a Unix, descendiente de Berkeley Software Distribution (BSD). La primera versión de FreeBSD fue lanzada en 1993 desarrollada a partir de 386BSD [3] y la versión actual se ejecuta en procesadores IA-32 , x86-64 , ARM , PowerPC y RISC-V . El proyecto cuenta con el apoyo y promoción de la Fundación FreeBSD .
FreeBSD mantiene un sistema completo, entregando un kernel , controladores de dispositivos , utilidades de usuario y documentación, a diferencia de Linux que solo entrega un kernel y controladores, y depende de terceros como GNU para el software del sistema. [4] El código fuente de FreeBSD generalmente se publica bajo una licencia BSD permisiva , a diferencia de la GPL copyleft utilizada por Linux.
El proyecto FreeBSD incluye un equipo de seguridad que supervisa todo el software incluido en la distribución base. Se puede instalar una amplia gama de aplicaciones adicionales de terceros desde paquetes binarios usando el sistema de administración de paquetes pkg o desde el código fuente a través de FreeBSD Ports , [5] o compilando manualmente el código fuente.
En 2005, FreeBSD era el sistema operativo BSD de código abierto más popular y representaba más de las tres cuartas partes de todos los sistemas BSD instalados y con licencia permisiva . [6] Gran parte del código base de FreeBSD se ha convertido en una parte integral de otros sistemas operativos como Darwin (la base de macOS , iOS , iPadOS , watchOS y tvOS ), TrueNAS (un sistema operativo NAS / SAN de código abierto ) y el Software de sistema para las consolas de juegos PlayStation 3 [7] [8] y PlayStation 4 [9] . Los otros sistemas BSD ( OpenBSD , NetBSD y DragonFly BSD ) también contienen una gran cantidad de código FreeBSD, y viceversa. [ cita necesaria ]
En 1974, el profesor Bob Fabry de la Universidad de California, Berkeley , adquirió una licencia de código fuente Unix de AT&T . Con el apoyo de fondos de DARPA , el Grupo de Investigación de Sistemas Computacionales comenzó a modificar y mejorar AT&T Research Unix. El grupo llamó a esta versión modificada "Berkeley Unix" o " Berkeley Software Distribution " (BSD), implementando características como TCP/IP , memoria virtual y Berkeley Fast File System . El proyecto BSD fue fundado en 1976 por Bill Joy . Pero como BSD contenía código de AT&T Unix, todos los destinatarios tenían que obtener primero una licencia de AT&T para poder utilizar BSD. [10]
En junio de 1989, se lanzó "Networking Release 1" o simplemente Net-1, la primera versión pública de BSD. Después de lanzar Net-1, Keith Bostic , un desarrollador de BSD, sugirió reemplazar todo el código de AT&T con código libremente redistribuible bajo la licencia BSD original . Se comenzó a trabajar para reemplazar el código de AT&T y, después de 18 meses, se reemplazó gran parte del código de AT&T. Sin embargo, seis archivos que contenían código de AT&T permanecieron en el kernel. Los desarrolladores de BSD decidieron lanzar la "Networking Release 2" (Net-2) sin esos seis archivos. Net-2 fue lanzado en 1991. [10]
En 1992, varios meses después del lanzamiento de Net-2, William y Lynne Jolitz escribieron reemplazos para los seis archivos de AT&T, trasladaron BSD a microprocesadores basados en Intel 80386 y llamaron a su nuevo sistema operativo 386BSD . Lanzaron 386BSD a través de un servidor FTP anónimo. [10] El flujo de desarrollo de 386BSD fue lento y, después de un período de abandono, un grupo de usuarios de 386BSD, incluidos Nate Williams, Rod Grimes y Jordan Hubbard [11], decidieron expandirse por su cuenta para poder conservar el sistema operativo. A hoy. El 19 de junio de 1993 se eligió el nombre FreeBSD para el proyecto. [12] La primera versión de FreeBSD se lanzó en noviembre de 1993. [13] [10]
En los primeros días del inicio del proyecto, una empresa llamada Walnut Creek CDROM , por sugerencia de los dos desarrolladores de FreeBSD, acordó lanzar el sistema operativo en CD-ROM . Además de eso, la compañía empleó a Jordan Hubbard y David Greenman, ejecutó FreeBSD en sus servidores, patrocinó conferencias de FreeBSD y publicó libros relacionados con FreeBSD, incluido The Complete FreeBSD de Greg Lehey. En 1997, FreeBSD era el "producto de mayor éxito" de Walnut Creek. Posteriormente, la empresa cambió su nombre a The FreeBSD Mall y más tarde a iXsystems . [14] [15] [16]
Hoy en día, muchas empresas de TI, como IBM , Nokia , Juniper Networks y NetApp, utilizan FreeBSD para desarrollar sus productos. [17] [18] Ciertas partes del sistema operativo Mac OS X de Apple están basadas en FreeBSD. [19] Tanto el sistema operativo PlayStation 3 como Nintendo Switch también toman prestados ciertos componentes de FreeBSD, [7] [8] mientras que el sistema operativo PlayStation 4 se deriva de FreeBSD 9. [20] Netflix , [21] WhatsApp , [22] y FlightAware [23] también son ejemplos de empresas grandes, exitosas y fuertemente orientadas a la red que ejecutan FreeBSD.
386BSD y FreeBSD se derivaron de versiones de BSD. [17] En enero de 1992, Berkeley Software Design Inc. (BSDi) comenzó a lanzar BSD/386 , más tarde llamado BSD/OS, un sistema operativo similar a FreeBSD y basado en 4.3BSD Net/2. AT&T presentó una demanda contra BSDi y supuesta distribución del código fuente de AT&T en violación de los acuerdos de licencia. 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 fuentes más nuevas 4.4BSD-Lite2. Aunque no estuvo involucrado en el litigio, se sugirió a FreeBSD que también debería pasar a 4.4BSD-Lite2. [24] FreeBSD 2.0, que se lanzó en noviembre de 1994, fue la primera versión de FreeBSD sin ningún código de AT&T. [25]
FreeBSD contiene una importante colección de software relacionado con el servidor en el sistema base y la colección de puertos, lo que permite configurar y utilizar FreeBSD como servidor de correo , servidor web , firewall , servidor FTP , servidor DNS y enrutador , entre otras aplicaciones.
FreeBSD se puede instalar en una computadora de escritorio o portátil normal. El sistema X Window no está instalado de forma predeterminada, pero está disponible en la colección de ports de FreeBSD . Wayland también está disponible para FreeBSD [26] (con soporte no oficial). También están disponibles para FreeBSD varios entornos de escritorio como Lumina , GNOME , KDE y Xfce , así como administradores de ventanas livianos como Openbox , Fluxbox , dwm y bspwm. Los principales navegadores web, como Firefox y Chromium, están disponibles de forma no oficial en FreeBSD. [27] [28] A partir de FreeBSD 12, el soporte para una pila de gráficos moderna está disponible a través de drm-kmod. Se admite una gran cantidad de adaptadores inalámbricos.
FreeBSD publica imágenes de instalación para plataformas compatibles. Desde FreeBSD 13, la atención se ha centrado en las plataformas x86-64 y aarch64 que tienen soporte de Nivel 1. [29] IA-32 es una plataforma de Nivel 1 en FreeBSD 12 pero es una plataforma de Nivel 2 en FreeBSD 13. Los procesadores ARM de 32 bits que usan armv6 o armv7 también tienen soporte de Nivel 2. También se admiten versiones de 64 bits de PowerPC y RISC-V . [30] El interés en la arquitectura RISC-V ha ido creciendo. [31] El puerto de arquitectura MIPS ha sido marcado para su desuso y no hay ninguna imagen para ninguna versión actualmente compatible. [32] FreeBSD 12 es compatible con SPARC pero no hay imagen para FreeBSD 13.
La pila TCP/IP de FreeBSD se basa en la implementación 4.2BSD de TCP/IP, que contribuyó en gran medida a la adopción generalizada de estos protocolos. [33] FreeBSD también soporta IPv6 , [34] SCTP , IPSec y redes inalámbricas ( Wi-Fi ). [35] Las pilas de IPv6 e IPSec se tomaron del proyecto KAME . [36] Antes de la versión 11.0, FreeBSD admitía los protocolos IPX y AppleTalk , pero se consideran antiguos y ahora se han eliminado. [37]
A partir de FreeBSD 5.4, la compatibilidad con el Protocolo común de redundancia de direcciones (CARP) se importó del proyecto OpenBSD . CARP permite que varios nodos compartan un conjunto de direcciones IP, por lo que si uno de los nodos deja de funcionar, otros nodos aún pueden atender las solicitudes. [38]
FreeBSD tiene varias características únicas relacionadas con el almacenamiento. Las actualizaciones suaves pueden proteger la coherencia del sistema de archivos UFS (ampliamente utilizado en los BSD) en caso de una falla del sistema. [39] Las instantáneas del sistema de archivos permiten crear de manera eficiente una imagen de un sistema de archivos UFS en un instante. [40] Las instantáneas permiten realizar copias de seguridad confiables de un sistema de archivos en vivo. 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. [41] 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 escrita por Pawel Jakub Dawidek y apareció por primera vez en FreeBSD 6.0. [42] [43]
Desde 7.0 en adelante, FreeBSD admite el sistema de archivos ZFS . Anteriormente, ZFS era un sistema de archivos de código abierto desarrollado por primera vez por Sun Microsystems , pero cuando Oracle adquirió Sun, ZFS se convirtió en un producto propietario. Sin embargo, el proyecto FreeBSD todavía está desarrollando y mejorando su implementación ZFS a través del proyecto OpenZFS . [44] La versión actualmente compatible de OpenZFS es 2.2.2, que contiene una solución importante para un error de corrupción de datos. Esta versión es compatible con versiones a partir de 12.2-RELEASE. [45]
FreeBSD proporciona varias funciones relacionadas con la seguridad, incluidas listas de control de acceso (ACL), [46] auditoría de eventos de seguridad, atributos extendidos del sistema de archivos, controles de acceso obligatorios (MAC) [47] y capacidades detalladas . [48] 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 la tecnología de la información y el Libro Naranja . Este proyecto está en curso [ ¿plazo? ] y muchas de sus extensiones se han integrado en FreeBSD. [49] El proyecto cuenta con el apoyo de una variedad de organizaciones, incluidas DARPA, NSA, Network Associates Laboratories, Safeport Network Services, la Universidad de Pensilvania, Yahoo!, McAfee Research, SPARTA, Apple Computer, nCircle Network Security, Google, Laboratorio de Computación de la Universidad de Cambridge y otros. [50]
El proyecto también ha portado la implementación FLASK /TE de la NSA de SELinux a FreeBSD. Otro trabajo incluye el desarrollo de OpenBSM , una implementación de código abierto de la API del Módulo de seguridad básica (BSM) de Sun y el formato de archivo de registro de auditoría, que admite un extenso sistema de auditoría de seguridad. Esto se envió como parte de FreeBSD 6.2. Otros trabajos de infraestructura en FreeBSD realizados como parte del Proyecto TrustedBSD incluyen GEOM y OpenPAM. [48]
La mayoría de los componentes del proyecto TrustedBSD finalmente se integran en las fuentes principales de FreeBSD. Además, muchas funciones, una vez que están completamente maduras, llegan a otros sistemas operativos. Por ejemplo, NetBSD ha adoptado OpenPAM . [51] Además, Apple ha adoptado el TrustedBSD MAC Framework para macOS . [52]
FreeBSD se entrega con tres paquetes de firewall diferentes: IPFW , pf e IPFilter . IPFW es el firewall nativo de FreeBSD. pf fue tomado de OpenBSD y Darren Reed portó IPFilter a FreeBSD. [53]
Tomado de OpenBSD, el programa OpenSSH se incluyó en la instalación predeterminada. OpenSSH es una implementación gratuita del protocolo SSH y reemplaza a telnet . A diferencia de telnet, OpenSSH cifra toda la información (incluidos nombres de usuario y contraseñas). [54]
En noviembre de 2012, el equipo de seguridad de FreeBSD anunció que los piratas informáticos obtuvieron acceso no autorizado a dos de los servidores del proyecto. Estos servidores se apagaron inmediatamente. Más investigaciones demostraron que el primer acceso no autorizado por parte de piratas informáticos se produjo el 19 de septiembre. Aparentemente, los piratas informáticos obtuvieron acceso a estos servidores robando claves SSH de uno de los desarrolladores, no explotando un error en el sistema operativo en sí. Estos dos servidores pirateados formaban parte de la infraestructura utilizada para crear paquetes de software de terceros. El equipo de seguridad de FreeBSD verificó la integridad de los paquetes binarios y determinó que no se realizaron cambios no autorizados en los paquetes binarios, pero afirmó que no podía garantizar la integridad de los paquetes que se descargaron entre el 19 de septiembre y el 11 de noviembre. [55] [56] [57]
FreeBSD ha sido portado a una variedad de arquitecturas de conjuntos de instrucciones . El proyecto FreeBSD organiza arquitecturas en niveles que caracterizan el nivel de soporte proporcionado. Las arquitecturas de nivel 1 están maduras y son totalmente compatibles; por ejemplo, es el único nivel "soportado por el responsable de seguridad". Las arquitecturas de nivel 2 están en desarrollo activo pero no son totalmente compatibles. Las arquitecturas de Nivel 3 son experimentales o ya no están en desarrollo activo. [58]
En diciembre de 2023 [actualizar], FreeBSD se ha portado a las siguientes arquitecturas: [29]
El soporte ARM de 32 bits (incluido OTG) y MIPS está dirigido principalmente a sistemas integrados ( ARM64 también está dirigido a servidores [60] ), sin embargo, FreeBSD/ARM se ejecuta en varias computadoras de placa única , incluidas BeagleBone Black , Raspberry Pi [61] [62] y Wandboard. [63]
Los dispositivos compatibles se enumeran en las Notas de hardware de FreeBSD 12.1-RELEASE. [64] El documento describe los dispositivos que actualmente se sabe que son compatibles con FreeBSD. Es posible que también funcionen otras configuraciones, pero simplemente aún no se han probado. Las listas aproximadas extraídas automáticamente de ID de dispositivos compatibles están disponibles en un repositorio de terceros. [65]
En 2020, se introdujo un nuevo proyecto para recopilar automáticamente información sobre las configuraciones de hardware probadas. [66]
FreeBSD tiene un repositorio de software de más de 30.000 [67] aplicaciones desarrolladas por terceros. Los ejemplos incluyen sistemas de ventanas , navegadores web , clientes de correo electrónico , suites ofimáticas , etc. Por lo general, el proyecto en sí no desarrolla este software, sólo el framework que permite instalar estos programas, lo que se conoce como colección Ports. Las aplicaciones pueden compilarse desde el código fuente ("puertos"), siempre que los términos de su licencia lo permitan, o descargarse como archivos binarios precompilados ("paquetes"). [68] La colección Ports soporta las ramas actuales y estables de FreeBSD. Las versiones anteriores no son compatibles y pueden funcionar correctamente o no con una colección de puertos actualizada. [69]
Los puertos utilizan Makefiles para recuperar automáticamente el código fuente de la aplicación deseada , ya sea desde un repositorio local o remoto , descomprimirlo en el sistema, aplicarle parches y compilarlo. [4] [70] Dependiendo del tamaño del código fuente, la compilación puede llevar mucho tiempo, pero le da al usuario más control sobre el proceso y su resultado. La mayoría de los ports también tienen paquetes equivalentes (es decir, binarios precompilados), lo que le da al usuario una opción. Aunque este método es más rápido, el usuario tiene menos opciones de personalización. [68]
FreeBSD versión 10.0 introdujo el administrador de paquetes pkg como reemplazo de las herramientas de paquetes utilizadas anteriormente. [71] Es funcionalmente similar a apt y yum en las distribuciones de Linux . Permite la instalación, actualización y eliminación de puertos y paquetes. Además de pkg, PackageKit también se puede utilizar para acceder a la colección de puertos.
Introducidos por primera vez en FreeBSD versión 4, [72] los 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 host FreeBSD. Es una versión mejorada del mecanismo chroot tradicional . Un proceso que se ejecuta dentro de dicha cárcel no puede acceder a los recursos fuera de ella. Cada cárcel tiene su propio nombre de host y dirección IP . Es posible ejecutar varias cárceles al mismo tiempo, pero el núcleo se comparte entre todas ellas. Por lo tanto, dentro de una cárcel sólo se puede ejecutar software compatible con el kernel de FreeBSD. [73]
bhyve , una nueva solución de virtualización, se introdujo en FreeBSD 10.0. bhyve permite al usuario ejecutar varios sistemas operativos invitados (FreeBSD, OpenBSD , Linux y Microsoft Windows [74] ) simultáneamente. Están previstos otros sistemas operativos como Illumos . bhyve fue escrito por Neel Natu y Peter Grehan y se anunció por primera vez en la conferencia BSDCan de 2011. La principal diferencia entre las cárceles de bhyve y FreeBSD es que las cárceles son una virtualización a nivel de sistema operativo y, por lo tanto, están limitadas únicamente a invitados de FreeBSD; pero bhyve es un hipervisor de tipo 2 y no se limita únicamente a los invitados de FreeBSD. [75] [76] [77] A modo de comparación, bhyve es una tecnología similar a KVM, mientras que las cárceles están más cerca de los contenedores LXC o Solaris Zones . Las instancias AMI de Amazon EC2 también son compatibles a través deamazon-ssm-agent
Desde FreeBSD 11.0, se admite la ejecución como dominio privilegiado Dom0 para el hipervisor Xen tipo 1. [78] El soporte para ejecutar como DomU (invitado) ha estado disponible desde FreeBSD 8.0.
VirtualBox (sin el Extension Pack de código cerrado ) y QEMU están disponibles en FreeBSD.
La mayoría del software que se ejecuta en Linux se puede ejecutar en FreeBSD utilizando una capa de compatibilidad incorporada opcional . Por lo tanto, la mayoría de los archivos binarios de Linux se pueden ejecutar en FreeBSD, incluidas algunas aplicaciones propietarias distribuidas sólo en formato binario. Esta capa de compatibilidad no es una emulación ; La interfaz de llamada al sistema de Linux está implementada en el kernel de FreeBSD y, por lo tanto, las imágenes ejecutables y bibliotecas compartidas de Linux se tratan de la misma manera que las imágenes ejecutables nativas y bibliotecas compartidas de FreeBSD. [79] Además, FreeBSD proporciona capas de compatibilidad para varios otros sistemas operativos similares a Unix , además de Linux, como BSD/OS y SVR4 , [79] sin embargo, es más común que los usuarios compilen esos programas directamente en FreeBSD. [80]
No se ha notado ninguna penalización notable en el rendimiento con respecto a los programas nativos de FreeBSD cuando se ejecutan archivos binarios de Linux y, en algunos casos, estos pueden incluso funcionar mejor que en Linux. [81] [82] Sin embargo, la capa no es del todo perfecta y algunos archivos binarios de Linux no se pueden utilizar o sólo se pueden utilizar parcialmente en FreeBSD. Hay soporte para llamadas al sistema hasta la versión 4.4.0 , [83] disponible desde FreeBSD 14.0 . A partir de la versión 10.3, FreeBSD puede ejecutar archivos binarios de Linux de 64 bits. [84]
FreeBSD ha implementado una serie de interfaces de kernel NDIS nativas de Microsoft Windows para permitir que FreeBSD ejecute (de lo contrario) controladores de red exclusivos de Windows. [85] [86]
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.
El kernel de FreeBSD brinda soporte para algunas tareas esenciales, como la gestión de procesos, la comunicación, el arranque y los sistemas de archivos. FreeBSD tiene un núcleo monolítico , [87] 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. [88] ULE es el programador predeterminado en FreeBSD desde la versión 7.1, admite SMP y SMT . [89] El kernel de FreeBSD también tiene una interfaz de notificación de eventos escalable, llamada kqueue . Ha sido portado a otros derivados de BSD como OpenBSD y NetBSD . [90] El subprocesamiento del kernel se introdujo en FreeBSD 5.0, utilizando un modelo de subprocesamiento M:N . Este modelo funciona bien en teoría, [91] [92] pero es difícil de implementar y pocos sistemas operativos lo admiten. Aunque la implementación de este modelo por parte de FreeBSD funcionó, no funcionó bien, por lo que desde la versión 7.0 en adelante, FreeBSD comenzó a usar un modelo de subprocesamiento 1:1 , llamado libthr. [92]
La documentación de FreeBSD consta de manuales, páginas de manual, archivos de listas de correo, preguntas frecuentes y una variedad de artículos, mantenidos principalmente por The FreeBSD Documentation Project. La documentación de FreeBSD está traducida a varios idiomas. [93] 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 GNU FDL". [94] La documentación de FreeBSD se describe como "de alta calidad". [95] [96]
El proyecto FreeBSD mantiene una variedad de listas de correo. [97] Entre las listas de correo más populares se encuentran FreeBSD-questions (preguntas generales) y FreeBSD-hackers (un lugar para hacer preguntas más técnicas). [98]
Desde 2004, la base de datos del Grupo de Usuarios de BSD de la ciudad de Nueva York proporciona información dmesg de una colección de computadoras ( portátiles , estaciones de trabajo , computadoras de placa única , sistemas integrados , máquinas virtuales , etc.) que ejecutan FreeBSD. [99]
Desde la versión 2.0 a la 8.4, FreeBSD utilizó el programa sysinstall como instalador principal. Fue escrito en C por Jordan Hubbard . Utiliza una interfaz de usuario de texto y está dividida en una serie de menús y pantallas que se pueden utilizar para configurar y controlar el proceso de instalación. También se puede utilizar para instalar Puertos y Paquetes como alternativa a la interfaz de línea de comandos . [100]
La utilidad sysinstall ahora se considera obsoleta en favor de bsdinstall, un nuevo instalador que se introdujo en FreeBSD 9.0. bsdinstall es "un reemplazo liviano para sysinstall" que fue escrito en sh. Según OSNews , "Ha perdido algunas características y ha ganado otras, pero es un diseño mucho más flexible y, en última instancia, supondrá una mejora significativa". [73] [101]
Antes de 14.0, el shell de inicio de sesión predeterminado era tcsh para root [102] y el shell Almquist (sh) para usuarios normales. [103] A partir de 14.0, el shell predeterminado es sh tanto para usuarios root como regulares. [102] El shell de secuencias de comandos predeterminado es el shell Almquist. [104]
FreeBSD es desarrollado por un equipo de voluntarios ubicado en todo el mundo. Los desarrolladores utilizan Internet para todas las comunicaciones y muchos no se conocen 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ífico de FreeBSD, por lo que se ocupa de los aspectos técnicos de todos los sistemas operativos derivados de BSD, incluidos OpenBSD y NetBSD . [105] Además de BSDcon, otras tres conferencias anuales, EuroBSDCon, AsiaBSDCon y BSDCan, tienen lugar en Europa , Japón y Canadá , respectivamente. [106] [107] [108]
El Proyecto FreeBSD está dirigido por alrededor de 500 confirmadores o desarrolladores que tienen acceso a los repositorios de código fuente maestro y pueden desarrollar, depurar o mejorar cualquier parte del sistema. La mayoría de los desarrolladores son voluntarios y algunas empresas pagan a pocos desarrolladores. [17] Hay varios tipos de confirmadores, incluidos los confirmadores de origen (sistema operativo base), los confirmadores de documentos (autores de documentación y sitios web) y los puertos (portación e infraestructura de aplicaciones de terceros). Cada dos años, los confirmadores de FreeBSD seleccionan un equipo central de FreeBSD de 9 miembros, que es responsable de la dirección general del proyecto, estableciendo y haciendo cumplir las reglas del proyecto y aprobando nuevos confirmadores, o otorgando acceso 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 puertos se delega al equipo de gestión de puertos. [109]
Además de los desarrolladores, FreeBSD tiene miles de "colaboradores". Los contribuyentes también son voluntarios fuera del proyecto FreeBSD que envían parches para que los consideren los autores de confirmaciones, ya que no tienen acceso de confirmación al repositorio de código fuente de FreeBSD. Luego, los comprometidos evalúan las presentaciones de los contribuyentes y deciden qué aceptar y qué rechazar. A un colaborador que envía parches de alta calidad a menudo se le pide que se convierta en confirmador. [109]
Los desarrolladores de FreeBSD mantienen al menos dos ramas de desarrollo simultáneo. La rama -CURRENT siempre representa la " vanguardia " del desarrollo de FreeBSD. Se crea una rama -STABLE de FreeBSD para cada número de versión principal, de la cual -RELEASE se elimina aproximadamente una vez cada 4 a 6 meses. Si una característica es lo suficientemente estable y madura, probablemente será respaldada ( MFC o Merge from CURRENT en la jerga de los desarrolladores de FreeBSD) a la rama -STABLE . [110] [4]
El desarrollo de FreeBSD cuenta con el apoyo parcial de la Fundación FreeBSD. La fundación es una organización sin fines 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 subvenciones para viajes a cumbres de desarrolladores y brindar apoyo legal al proyecto FreeBSD. [111]
En noviembre de 2014, la Fundación FreeBSD recibió una donación de 1 millón de dólares de Jan Koum , cofundador y director ejecutivo de WhatsApp , la donación individual más grande a la Fundación desde su creación. En diciembre de 2016, Jan Koum donó otros 500.000 dólares. [112] El propio Jan Koum es usuario de FreeBSD desde finales de la década de 1990 y WhatsApp utiliza FreeBSD en sus servidores. [113]
FreeBSD se publica bajo una variedad de licencias de código abierto. El código del kernel y la mayoría del código creado recientemente se publican bajo la licencia BSD de dos cláusulas que permite a todos usar y redistribuir FreeBSD como deseen. Esta licencia fue aprobada por la Free Software Foundation [114] y la Open Source Initiative [115] como licencia de software libre y de código abierto respectivamente. Free Software Foundation describió esta licencia como "una licencia de software libre laxa, permisiva y sin copyleft, compatible con GNU GPL". Hay piezas lanzadas bajo licencias BSD de tres y cuatro cláusulas, así como la licencia Beerware . Algunos controladores de dispositivos incluyen un blob binario , [116] como Atheros HAL de versiones de FreeBSD anteriores a 7.2. [117] [ verificación fallida ] Parte del código aportado por otros proyectos tiene licencia GPL , LGPL , CDDL [118] e ISC . Todo el código con licencia GPL y CDDL está claramente separado del código bajo licencias liberales, para facilitar que los usuarios, como los fabricantes de dispositivos integrados, utilicen únicamente licencias de software libre permisivas . ClangBSD tiene como objetivo reemplazar algunas dependencias GPL en el sistema base FreeBSD reemplazando la colección de compiladores GNU con el compilador LLVM / Clang con licencia BSD . ClangBSD pasó a ser autohospedado el 16 de abril de 2010. [119]
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 exclusiva de FreeBSD. Beastie apareció por primera vez en 1976 en camisetas Unix del artista de cómics Phil Foglio, [120] para Mike O'Brien, [121] [122] [123] [124] y algunas compradas por Bell Labs . [125]
Las versiones más populares del demonio BSD fueron dibujadas por el director de animación John Lasseter a partir de 1984. [126] [127] Posteriormente, Tatsumi Hosokawa dibujó varias versiones específicas de FreeBSD. [128] En términos litográficos, el gráfico de Lasseter no es un arte lineal y, a menudo, requiere un proceso de impresión offset de fotografías serigrafiadas a cuatro colores para una reproducción fiel en superficies físicas como el papel. Además, se pensaba que el demonio BSD era demasiado detallado gráficamente para un escalado de tamaño suave y estéticamente demasiado dependiente de múltiples gradaciones de color, lo que dificultaba su reproducción confiable como un logotipo simple y estandarizado en solo dos o tres colores, y mucho menos en monocromo.
Debido a estas preocupaciones, se celebró un concurso y el 8 de octubre de 2005 se lanzó un nuevo logotipo diseñado por Anton K. Gural, que todavía se hace eco del demonio BSD. [129] [130] [131] Sin embargo, fue anunciado por Robert Watson que el proyecto FreeBSD está "buscando un nuevo logo, pero no una nueva mascota" y que el proyecto FreeBSD continuaría usando a Beastie como mascota. [129]
El nombre "FreeBSD" fue acuñado por David Greenman el 19 de junio de 1993, otros nombres sugeridos fueron "BSDFree86" y "Free86BSD". [132] El lema de FreeBSD, "The Power to Serve", es una marca registrada de The FreeBSD Foundation. [133]
Existen varias distribuciones de software basadas en FreeBSD.
Todas estas distribuciones no tienen cambios o solo tienen cambios menores en comparación con el sistema base FreeBSD original. La principal diferencia con el FreeBSD original es que vienen con software preinstalado y preconfigurado para casos de uso específicos. Esto se puede comparar con las distribuciones de Linux , que son todas compatibles binariamente 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 una bifurcación de FreeBSD 4.8 que apunta a una estrategia de sincronización multiprocesador diferente a la elegida para FreeBSD 5 y al desarrollo de algunas características de microkernel . [142] No pretende seguir siendo compatible con FreeBSD y tiene enormes diferencias en el núcleo y el espacio de usuario básico . MidnightBSD es una bifurcación de FreeBSD 6.1 que toma prestado en gran medida de NeXTSTEP , particularmente en el departamento de interfaz de usuario.
Darwin , el núcleo de macOS de Apple , incluye un sistema de archivos virtual y una pila de red derivados de los de FreeBSD, y los componentes de su espacio de usuario también se derivan de FreeBSD. [19] [143]