FreeBSD es un sistema operativo tipo Unix libre y de código abierto que desciende de la distribución de software Berkeley (BSD). La primera versión de FreeBSD se lanzó 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 la promoción de la FreeBSD Foundation .
FreeBSD mantiene un sistema completo, entregando un núcleo , controladores de dispositivos , utilidades de espacio de usuario y documentación, a diferencia de Linux que solo entrega un núcleo 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 de terceros adicionales desde paquetes binarios utilizando el sistema de gestió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 , representando más de las tres cuartas partes de todos los sistemas BSD instalados y con licencia permisiva . [6] Gran parte de la base de código 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 del 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 requerida ]
En 1974, el profesor Bob Fabry de la Universidad de California, Berkeley , adquirió una licencia de código fuente de Unix de AT&T . Con el apoyo financiero de DARPA , el Computer Systems Research Group 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 el 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 publicó la "Networking Release 1" o simplemente Net-1, la primera versión pública de BSD. Después de publicar 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 en la sustitución del código de AT&T y, después de 18 meses, gran parte del código de AT&T fue reemplazado. Sin embargo, seis archivos que contenían código de 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. [10]
En 1992, varios meses después del lanzamiento de Net-2, William y Lynne Jolitz escribieron reemplazos para los seis archivos 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, entre los que se encontraban Nate Williams, Rod Grimes y Jordan Hubbard [11], decidieron diversificarse por su cuenta para poder mantener actualizado el sistema operativo. 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 proyecto, una compañía llamada Walnut Creek CDROM , a 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 sobre FreeBSD y publicó libros relacionados con FreeBSD, incluido The Complete FreeBSD de Greg Lehey. En 1997, FreeBSD era el "producto más exitoso" de Walnut Creek. La compañía luego cambió su nombre a The FreeBSD Mall y más tarde a iXsystems . [14] [15] [16]
Hoy en día, FreeBSD es utilizado por muchas empresas de TI como IBM , Nokia , Juniper Networks y NetApp para construir sus productos. [17] [18] Ciertas partes del sistema operativo Mac OS X de Apple se basan en FreeBSD. [19] Tanto el sistema operativo PlayStation 3 como el 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.
Tanto 386BSD como FreeBSD se derivaron de versiones de BSD. [17] En enero de 1992, Berkeley Software Design Inc. (BSDi) comenzó a publicar 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 alegó la distribución del código fuente de AT&T en violación de los acuerdos de licencia. La demanda se resolvió fuera de los tribunales y no se revelaron todos los términos exactos. El único que se hizo público fue que BSDi migraría su base de código fuente a las fuentes más nuevas de 4.4BSD-Lite2. Aunque no estuvo involucrado en el litigio, se le sugirió a FreeBSD que también debería migrar 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 FreeBSD y utilizarlo como servidor de correo , servidor web , firewall , servidor FTP , servidor DNS y enrutador , entre otras aplicaciones.
FreeBSD se puede instalar en un ordenador de sobremesa o portátil. 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] (soporte no oficial). [ cita requerida ] 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. 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 las plataformas compatibles. Desde FreeBSD 13, el foco se ha puesto 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 utilizan 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 la arquitectura MIPS ha sido marcado para su desuso y no hay ninguna imagen para ninguna versión compatible actualmente. [32] FreeBSD 12 admite SPARC, pero no hay ninguna imagen para FreeBSD 13.
La pila TCP/IP de FreeBSD se basa en la implementación de TCP/IP de 4.2BSD , que contribuyó en gran medida a la adopción generalizada de estos protocolos. [33] FreeBSD también admite IPv6 , [34] SCTP , IPSec y redes inalámbricas ( Wi-Fi ). [35] Las pilas 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 abandonado. [37]
A partir de FreeBSD 5.4, se importó soporte para el Protocolo de Redundancia de Direcciones Comunes (CARP) del proyecto OpenBSD . CARP permite que varios nodos compartan un conjunto de direcciones IP, de modo que si uno de ellos falla, los demás nodos pueden seguir atendiendo las solicitudes. [38]
FreeBSD tiene varias características únicas relacionadas con el almacenamiento. Las actualizaciones suaves pueden proteger la consistencia 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 en el tiempo. [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 la creación de soluciones de almacenamiento complejas que combinan ("encadenan") 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 que fue escrita por Pawel Jakub Dawidek y apareció por primera vez en FreeBSD 6.0. [42] [43]
A partir de la versión 7.0, FreeBSD es compatible con el sistema de archivos ZFS . ZFS era anteriormente un sistema de archivos de código abierto desarrollado inicialmente 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 . [44] La versión de OpenZFS compatible actualmente es la 2.2.2, que contiene una corrección importante para un error de corrupción de datos. Esta versión es compatible con las versiones a partir de la 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 obligatorio (MAC) [47] y capacidades de grano fino . [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, el 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 desde SELinux a FreeBSD. Otros trabajos incluyen 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 amplio 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 han incluido GEOM y OpenPAM. [48]
La mayoría de los componentes del proyecto TrustedBSD se incorporan finalmente a las fuentes principales de FreeBSD. Además, muchas características, una vez maduras por completo, encuentran su camino hacia otros sistemas operativos. Por ejemplo, OpenPAM ha sido adoptado por NetBSD . [51] Además, el TrustedBSD MAC Framework ha sido adoptado por Apple para macOS . [52]
FreeBSD se entrega 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 portado a FreeBSD por Darren Reed. [53]
El programa OpenSSH , tomado de OpenBSD, se incluyó en la instalación predeterminada. OpenSSH es una implementación gratuita del protocolo SSH y es un reemplazo para telnet . A diferencia de telnet, OpenSSH encripta toda la información (incluidos los nombres de usuario y las contraseñas). [54]
En noviembre de 2012, el equipo de seguridad de FreeBSD anunció que unos piratas informáticos habían obtenido acceso no autorizado a dos de los servidores del proyecto. Estos servidores fueron desactivados inmediatamente. Investigaciones posteriores 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 propio sistema operativo. 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 habían realizado cambios no autorizados en los mismos, 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. [55] [56] [57]
FreeBSD ha sido adaptado a una variedad de arquitecturas de conjuntos de instrucciones . El proyecto FreeBSD organiza las arquitecturas en niveles que caracterizan el nivel de soporte proporcionado. Las arquitecturas de nivel 1 son maduras y cuentan con soporte completo, es decir, es el único nivel "apoyado por el responsable de seguridad". Las arquitecturas de nivel 2 están en desarrollo activo, pero no cuentan con soporte completo. Las arquitecturas de nivel 3 son experimentales o ya no se encuentran en desarrollo activo. [58]
A partir de diciembre de 2023 [actualizar], FreeBSD se ha portado a las siguientes arquitecturas: [29]
El soporte de ARM de 32 bits (incluido OTG) y MIPS está orientado principalmente a sistemas integrados ( ARM64 también está orientado a servidores [60] ), sin embargo FreeBSD/ARM se ejecuta en una serie de 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. También pueden funcionar otras configuraciones, pero simplemente no se han probado todavía. Hay listas aproximadas extraídas automáticamente de los identificadores de dispositivos compatibles 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 que son desarrolladas por terceros. Algunos ejemplos incluyen sistemas de ventanas , navegadores web , clientes de correo electrónico , suites ofimáticas , etc. En general, el proyecto en sí no desarrolla este software, solo el marco que permite instalar estos programas, que se conoce como la colección Ports. Las aplicaciones pueden compilarse desde el código fuente ("ports"), siempre que sus términos de licencia lo permitan, o descargarse como binarios precompilados ("paquetes"). [68] La colección Ports admite las ramas actuales y estables de FreeBSD. Las versiones anteriores no son compatibles y pueden o no funcionar correctamente con una colección Ports actualizada. [69]
Los puertos utilizan Makefiles para obtener 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 puertos también tienen contrapartes de paquetes (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]
La versión 10.0 de FreeBSD introdujo el gestor de paquetes pkg como reemplazo de las herramientas de paquetes utilizadas anteriormente. [71] Funcionalmente es similar a apt y yum en las distribuciones Linux . Permite la instalación, actualización y eliminación tanto de ports como de 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, [72] las cárceles 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 de FreeBSD. Es una versión mejorada del mecanismo chroot tradicional . Un proceso que se ejecuta dentro de una cárcel de este tipo 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 múltiples cárceles al mismo tiempo, pero el núcleo se comparte entre todas ellas. Por lo tanto, solo el software compatible con el núcleo de FreeBSD se puede ejecutar dentro de una cárcel. [73]
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 [74] ) simultáneamente. Se planean 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 cárceles de FreeBSD es que las cárceles son una virtualización a nivel de sistema operativo y, por lo tanto, están limitadas solo a los invitados de FreeBSD; pero bhyve es un hipervisor de tipo 2 y no está limitado solo 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 de Amazon EC2 AMI también son compatibles a través deamazon-ssm-agent
Desde FreeBSD 11.0, existe soporte para ejecutarse como dominio privilegiado Dom0 para el hipervisor Xen tipo 1. [78] El soporte para ejecutarse como DomU (invitado) está 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ía del software que se ejecuta en Linux puede ejecutarse en FreeBSD utilizando una capa de compatibilidad incorporada opcional . Por lo tanto, la mayoría de los binarios de Linux se pueden ejecutar en FreeBSD, incluidas algunas aplicaciones propietarias distribuidas solo en forma binaria. Esta capa de compatibilidad no es una emulación ; la interfaz de llamada al sistema de Linux está implementada en el núcleo de FreeBSD y, por lo tanto, las imágenes ejecutables y las bibliotecas compartidas de Linux se tratan de la misma manera que las imágenes ejecutables nativas y las bibliotecas compartidas de FreeBSD. [79] Además, FreeBSD proporciona capas de compatibilidad para varios otros sistemas operativos tipo 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 observado ninguna pérdida de rendimiento notable sobre los programas nativos de FreeBSD al ejecutar binarios de Linux y, en algunos casos, estos pueden incluso funcionar con mayor fluidez que en Linux. [81] [82] Sin embargo, la capa no es del todo perfecta y algunos binarios de Linux son inutilizables o solo parcialmente utilizables 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 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 controladores de red que de otro modo serían exclusivos de Windows. [85] [86]
La capa de compatibilidad de Wine , que permite ejecutar muchas aplicaciones de Windows, especialmente juegos, sin una copia (con licencia) de Microsoft Windows , está disponible para FreeBSD.
El núcleo de FreeBSD proporciona soporte para algunas tareas esenciales como la gestión de procesos, comunicación, arranque y sistemas de archivos. FreeBSD tiene un núcleo monolítico , [87] con un diseño modular. Diferentes partes del núcleo, 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 planificador predeterminado en FreeBSD desde la versión 7.1, soporta SMP y SMT . [89] El núcleo 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 núcleo 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 soportan. Aunque la implementación de este modelo por parte de FreeBSD funcionó, no tuvo un buen desempeño, por lo que a partir de la versión 7.0, FreeBSD comenzó a utilizar un modelo de subprocesos 1:1 , llamado libthr. [92]
La documentación de FreeBSD consiste en sus manuales, páginas de manual, archivos de listas de correo, preguntas frecuentes y una variedad de artículos, principalmente mantenidos por el Proyecto de Documentación de FreeBSD. La documentación de FreeBSD está traducida a varios idiomas. [93] Toda la documentación oficial se publica bajo la Licencia de Documentación de FreeBSD , "una licencia de documentación libre permisiva sin copyleft que es compatible con la FDL de GNU". [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 están FreeBSD-questions (preguntas generales) y FreeBSD-hackers (un lugar para hacer preguntas más técnicas). [98]
Desde 2004, la base de datos del New York City BSD Users Group 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 hasta la 8.4, FreeBSD utilizó el programa sysinstall como su 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 se pueden utilizar para configurar y controlar el proceso de instalación. También se puede utilizar para instalar puertos y paquetes como una 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 mientras gana otras, pero es un diseño mucho más flexible y, en última instancia, será una mejora significativa". [73] [101]
Antes de la versión 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 la versión 14.0, el shell predeterminado es sh tanto para root como para usuarios normales. [102] El shell de scripting predeterminado es el shell Almquist. [104]
FreeBSD es desarrollado por un equipo de voluntarios ubicados 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 organiza 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, incluidos OpenBSD y NetBSD . [105] Además de BSDcon, se llevan a cabo otras tres conferencias anuales, EuroBSDCon, AsiaBSDCon y BSDCan en Europa , Japón y Canadá respectivamente. [106] [107] [108]
El proyecto FreeBSD está dirigido por unos 500 desarrolladores o committers que tienen acceso a los repositorios de código fuente maestros y pueden desarrollar, depurar o mejorar cualquier parte del sistema. La mayoría de los desarrolladores son voluntarios y algunos reciben pagos de algunas compañías. [17] Hay varios tipos de committers, incluyendo committers de código fuente (sistema operativo base), committers de documentación (autores de documentación y sitios web) y ports (infraestructura y portabilidad de aplicaciones de terceros). Cada dos años, los committers de FreeBSD seleccionan un equipo central de 9 miembros, que es responsable de la dirección general del proyecto, el establecimiento y la aplicación de las reglas del proyecto y la aprobación de nuevos committers, o la concesión de 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 ports se delega al equipo de gestión de puertos. [109]
Además de los desarrolladores, FreeBSD tiene miles de "colaboradores". Los colaboradores también son voluntarios fuera del proyecto FreeBSD que envían parches para que los consideren los colaboradores, ya que no tienen acceso al repositorio de código fuente de FreeBSD. Los colaboradores evalúan las propuestas de los colaboradores y deciden qué aceptar y qué rechazar. A menudo se pide a un colaborador que envía parches de alta calidad que se convierta en colaborador. [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 que se corta -RELEASE aproximadamente una vez cada 4-6 meses. Si una característica es lo suficientemente estable y madura, es probable que se la adapte ( MFC o Merge from CURRENT en la jerga de los desarrolladores de FreeBSD) a la rama -STABLE . [110] [4]
El desarrollo de FreeBSD está financiado en parte por la FreeBSD Foundation. La fundación es una organización sin fines de lucro que acepta donaciones para financiar el desarrollo de FreeBSD. Dicha financiación se ha utilizado para patrocinar a los desarrolladores para actividades específicas, comprar hardware e infraestructura de red, proporcionar becas de viaje a cumbres de desarrolladores y brindar apoyo legal al proyecto FreeBSD. [111]
En noviembre de 2014, la FreeBSD Foundation recibió una donación de un millón de dólares de Jan Koum , cofundador y director ejecutivo 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. [112] El propio Jan Koum es usuario de FreeBSD desde finales de los años 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 núcleo 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 una licencia de software libre y de código abierto respectivamente. La Free Software Foundation describió esta licencia como "una licencia de software libre laxa, permisiva y sin copyleft, compatible con la GNU GPL". Hay partes publicadas bajo licencias BSD de tres y cuatro cláusulas, así como la licencia Beerware . Algunos controladores de dispositivos incluyen un blob binario , [116] como el Atheros HAL de las versiones de FreeBSD anteriores a la 7.2. [117] [ verificación fallida ] Parte del código aportado por otros proyectos está licenciado bajo GPL , LGPL , CDDL [118] e ISC . Todo el código licenciado bajo GPL y CDDL está claramente separado del código bajo licencias liberales, para facilitar a los usuarios, como los fabricantes de dispositivos integrados, el uso exclusivo de licencias de software libre permisivas . ClangBSD pretende reemplazar algunas dependencias GPL en el sistema base de FreeBSD reemplazando la colección de compiladores GNU con el compilador LLVM / Clang con licencia BSD . ClangBSD pasó a ser autoalojado 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 exclusivo 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 fueron compradas por Bell Labs . [125]
Las versiones más populares del demonio BSD fueron dibujadas por el director de animación John Lasseter a principios 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 a cuatro colores para una reproducción fiel en superficies físicas como el papel. Además, se pensaba que el demonio BSD tenía demasiados detalles gráficos para un escalado de tamaño suave y que, estéticamente, dependía demasiado de múltiples gradaciones de color, lo que dificultaba su reproducción fiable como un logotipo simple y estandarizado en solo dos o tres colores, y mucho menos en monocromo.
Debido a estas preocupaciones, se realizó una competencia y un nuevo logotipo diseñado por Anton K. Gural, que todavía reflejaba el demonio BSD, fue lanzado el 8 de octubre de 2005. [129] [130] [131] Sin embargo, Robert Watson anunció que el proyecto FreeBSD está "buscando un nuevo logotipo, pero no una nueva mascota" y que el proyecto FreeBSD continuaría usando a Beastie como su 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 eslogan de FreeBSD, "The Power to Serve", es una marca registrada de The FreeBSD Foundation. [133]
Hay varias distribuciones de software basadas en FreeBSD.
Todas estas distribuciones no tienen cambios o solo presentan 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 Linux , que son todas compatibles a nivel binario porque usan el mismo núcleo y también usan las mismas herramientas básicas, compiladores y bibliotecas, pero 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 de multiprocesadores diferente a la elegida para FreeBSD 5 y al desarrollo de algunas características del microkernel . [142] No apunta a permanecer compatible con FreeBSD y tiene enormes diferencias en el kernel y el espacio de usuario básico . MidnightBSD es una bifurcación de FreeBSD 6.1 que toma prestado mucho 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]