FreeBSD - FreeBSD

FreeBSD
Freebsd logo.svg
VirtualBox FreeBSD 12.1 07 05 2020 11 59 43.png
Cargador de arranque FreeBSD 12.1 con logotipo artístico ASCII
Desarrollador El proyecto FreeBSD
Familia OS Tipo Unix
Estado de trabajo Actual
Modelo fuente Fuente abierta
Versión inicial 1 de noviembre de 1993 ; Hace 27 años (1 de noviembre de 1993 )
Último lanzamiento 13,0 (13 de abril de 2021 ; hace 6 meses ) [±] 12,2 (27 de octubre de 2020 ; hace 11 meses ) [±] ( 13 de abril de 2021 )
 ( 2020-10-27 )
Vista previa más reciente 13.0-RC4 (29 de marzo de 2021 ; hace 6 meses ) [±] ( 29/03/2021 )
Repositorio
Objetivo de marketing Servidores , estaciones de trabajo , sistemas integrados , firewalls de red
Gerente de empaquetación paquete
Plataformas x86-64 , ARM64 , ARM32 , IA-32 , MIPS , PowerPC , RISC-V , SPARC de 64 bits
Tipo de grano Núcleo monolítico
Userland BSD

Interfaz de usuario predeterminada
Shell de Unix
Licencia Licencia FreeBSD , Licencia de documentación FreeBSD
Página web oficial www .freebsd .org

FreeBSD es un sistema operativo gratuito y de código abierto similar a Unix que desciende de Berkeley Software Distribution (BSD), que se basó en Research Unix . La primera versión de FreeBSD fue lanzada en 1993. 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 de manera simple y con licencia permisiva .

FreeBSD tiene similitudes con Linux , con dos diferencias principales en el alcance y las licencias: FreeBSD mantiene un sistema completo, es decir, el proyecto entrega un kernel , controladores de dispositivos , utilidades de usuario y documentación , a diferencia de Linux que solo entrega un kernel y controladores, y confiando en terceros para el software del sistema; y 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 enviado en la distribución base. Una amplia gama de terceros adicionales aplicaciones se puede instalar desde paquetes binarios utilizando el paquete sistema de gestión de paquetes o de la fuente a través de FreeBSD , o de forma manual la compilación de código fuente.

Gran parte del código base de FreeBSD se ha convertido en una parte integral de otros sistemas operativos como Darwin (la base para 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 y PlayStation 4 .

Historia

Fondo

En 1974, el profesor Bob Fabry de la Universidad de California, Berkeley , adquirió una licencia de fuente Unix de AT&T . Con el apoyo de fondos de DARPA , el Grupo de Investigación de Sistemas Informáticos comenzó a modificar y mejorar AT&T Research Unix. Llamaron 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 dado que BSD contenía código de AT&T Unix, todos los destinatarios tenían que obtener primero una licencia de AT&T para poder usar BSD.

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 redistribuible libremente bajo la licencia BSD original . 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 contienen código de AT&T permanecieron en el kernel. Los desarrolladores de BSD decidieron lanzar el "Networking Release 2" (Net-2) sin esos seis archivos. Net-2 fue lanzado en 1991.

Nacimiento de FreeBSD

En 1992, varios meses después del lanzamiento de Net-2, William y Lynne Jolitz escribieron reemplazos para los seis archivos de AT&T, portaron 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. El flujo de desarrollo de 386BSD fue lento, y después de un período de negligencia, un grupo de usuarios de 386BSD decidió diversificarse por su cuenta para poder mantener el sistema operativo actualizado. El 19 de junio de 1993, se eligió el nombre FreeBSD para el proyecto. La primera versión de FreeBSD se lanzó en noviembre de 1993.

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 más exitoso" de Walnut Creek. Posteriormente, la empresa se rebautizó a sí misma como The FreeBSD Mall y más tarde iXsystems .

Hoy en día, muchas empresas de TI como IBM , Nokia , Juniper Networks y NetApp utilizan FreeBSD para crear sus productos. Ciertas partes de Apple 's Mac OS X sistema operativo se basa en FreeBSD. El sistema operativo PlayStation 3 también toma prestados ciertos componentes de FreeBSD, mientras que el sistema operativo PlayStation 4 se deriva de FreeBSD 9. Netflix , WhatsApp y FlightAware también son ejemplos de empresas grandes, exitosas y fuertemente orientadas a la red que están ejecutando FreeBSD.

Demanda judicial

386BSD y FreeBSD se derivaron de versiones de BSD. 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ó 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 fuentes a las fuentes 4.4BSD-Lite2 más nuevas. Aunque no participó en el litigio, se sugirió a FreeBSD que también deberían pasar a 4.4BSD-Lite2. FreeBSD 2.0, que fue lanzado en noviembre de 1994, fue la primera versión de FreeBSD sin ningún código de AT&T.

Características

Inicio de FreeBSD 9.1 con indicador de inicio de sesión de la consola

Casos de uso

FreeBSD contiene una colección significativa de software relacionado con el servidor en el sistema base y la colección de puertos, lo que permite que FreeBSD se configure y utilice 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 normal o en una computadora portátil. El sistema X Window no está instalado por defecto, pero está disponible en la colección de ports de FreeBSD . Wayland (protocolo de servidor de visualización) también está disponible para FreeBSD (compatible no oficialmente). Varios entornos de escritorio como GNOME , KDE y Xfce , así como administradores de ventanas ligeros como Openbox , Fluxbox , dwm y bspwm , también están disponibles para FreeBSD. A partir de FreeBSD 12, el soporte para una pila de gráficos moderna está disponible a través de drm-kmod. Se admiten 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. x86-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 las versiones de 64 bits de PowerPC y RISC-V . El interés por la arquitectura RISC-V ha ido en aumento. El puerto de la arquitectura MIPS se ha marcado como obsoleto y no hay ninguna imagen para ninguna de las versiones admitidas actualmente. FreeBSD 12 es compatible con SPARC pero no hay una imagen para FreeBSD 13.

Redes

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. FreeBSD también es compatible con IPv6 , SCTP , IPSec y redes inalámbricas ( Wi-Fi ). Las pilas de IPv6 e IPSec se tomaron del proyecto KAME . Antes de la versión 11.0, FreeBSD admitía los protocolos IPX y AppleTalk , pero se consideran antiguos y ahora se han eliminado.

A partir de FreeBSD 5.4, se importó del proyecto OpenBSD el soporte para Common Address Redundancy Protocol (CARP) . 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.

Almacenamiento

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 que el sistema se bloquee. 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. Las instantáneas permiten una copia de seguridad confiable 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 en red. GEOM permite la construcción de soluciones de almacenamiento complejas combinando ("encadenando") estos mecanismos. 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.

Desde 7.0 en adelante, FreeBSD es compatible con el sistema de archivos ZFS . Anteriormente, ZFS era un sistema de archivos de código abierto que fue desarrollado por primera vez por Sun Microsystems , pero cuando Oracle adquirió Sun, ZFS se convirtió en un producto patentado. Sin embargo, el proyecto FreeBSD todavía está desarrollando y mejorando su implementación ZFS a través del proyecto OpenZFS .

Seguridad

FreeBSD proporciona varias funciones relacionadas con la seguridad que incluyen listas de control de acceso (ACL), auditoría de eventos de seguridad, atributos extendidos del sistema de archivos, controles de acceso obligatorios (MAC) y capacidades detalladas . Estas mejoras de seguridad fueron desarrolladas por el proyecto TrustedBSD . El proyecto fue fundado por Robert Watson con el objetivo de implementar conceptos de Common Criteria for Information Technology Security Evaluation y Orange Book . Este proyecto está en curso y muchas de sus extensiones se han integrado en FreeBSD. El proyecto cuenta con el apoyo de una variedad de organizaciones, incluidas DARPA, NSA, Network Associates Laboratories, Safeport Network Services, University of Pennsylvania, Yahoo !, McAfee Research, SPARTA, Apple Computer, nCircle Network Security, Google, la Universidad de Cambridge. Laboratorio de Computación y otros.

El proyecto también ha portado la NSA 's FRASCO aplicación / TE 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 amplio sistema de auditoría de seguridad. Esto se envió como parte de FreeBSD 6.2. Otro trabajo de infraestructura en FreeBSD realizado como parte del Proyecto TrustedBSD ha incluido GEOM y OpenPAM.

La mayoría de los componentes del proyecto TrustedBSD eventualmente se incluyen en las fuentes principales de FreeBSD. Además, muchas características, una vez maduradas por completo, se abren paso en otros sistemas operativos. Por ejemplo, OpenPAM ha sido adoptado por NetBSD . Además, Apple ha adoptado TrustedBSD MAC Framework para macOS .

FreeBSD viene con tres paquetes de firewall diferentes: IPFW , pf e IPFilter . IPFW es el firewall nativo de FreeBSD. pf fue tomado de OpenBSD e IPFilter fue portado a FreeBSD por Darren Reed.

Tomado de OpenBSD, el programa OpenSSH se incluyó en la instalación predeterminada. OpenSSH es una implementación gratuita del protocolo SSH y es un reemplazo de telnet . A diferencia de telnet, OpenSSH cifra toda la información (incluidos los nombres de usuario y las contraseñas).

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 de inmediato. Más investigaciones demostraron que el primer acceso no autorizado de los 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 aprovechando 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 anunció que no se realizaron cambios no autorizados en los paquetes binarios, pero declaró que no podían garantizar la integridad de los paquetes que se descargaron entre el 19 de septiembre y el 11 de noviembre.

Portabilidad

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 totalmente compatibles, por ejemplo, es el único nivel "compatible con el responsable de seguridad". Las arquitecturas de nivel 3 son experimentales o ya no se encuentran en desarrollo activo y las arquitecturas de nivel 4 no tienen soporte en absoluto.

En marzo de 2021, FreeBSD se ha adaptado a las siguientes arquitecturas:

Arquitectura Nivel de soporte Notas
x86-64 Tier 1 denominado "amd64"
x86 (IA-32) Nivel 1 (nivel 2 en 13.x) denominado "i386"
BRAZO de 64 bits Tier 1
BRAZO de 32 bits El nivel 2
MIPS El nivel 2
PowerPC de 32 y 64 bits El nivel 2
SPARC de 64 bits Nivel 2 (nivel 4 en 13.x) solo arquitectura de 64 bits (V9)
RISC-V de 64 bits Nivel 3 (nivel 2 en 13.x) a partir de 12-RELEASE
NEC PC-9801 Nivel 4 (nivel 2 en 11.x) referido como "pc98", soporte eliminado en 12-CURRENT
IA-64 (era nivel 3) no admitido a partir de la versión 11.0
DEC Alpha (era nivel 4) soporte descontinuado en 7.0

El soporte ARM de 32 bits (incluido OTG) y MIPS está dirigido principalmente a sistemas integrados ( ARM64 también está dirigido a servidores), sin embargo, FreeBSD / ARM se ejecuta en varias computadoras de placa única , incluidos BeagleBone Black , Raspberry Pi y Wandboard. .

Compatibilidad de hardware

Los dispositivos compatibles se enumeran en las Notas de hardware de FreeBSD 12.1-RELEASE. El documento describe los dispositivos actualmente compatibles con FreeBSD. Es posible que otras configuraciones también funcionen, pero simplemente no se han probado todavía. En un repositorio de terceros se encuentran disponibles listas aproximadas extraídas automáticamente de identificadores de dispositivos compatibles.

En 2020, se presentó un nuevo proyecto para recopilar automáticamente información sobre configuraciones de hardware probadas.

Software de terceros

FreeBSD tiene un repositorio de software de más de 30.000 aplicaciones desarrolladas por terceros. Los ejemplos incluyen: sistemas de ventanas , navegadores web , clientes de correo electrónico , suites de oficina , etc. En general, el proyecto en sí no desarrolla este software, solo el framework para permitir la instalación de estos programas, lo que se conoce como colección Ports. Las aplicaciones pueden compilarse desde la fuente ("puertos"), siempre que sus términos de licencia lo permitan, o descargarse como binarios precompilados ("paquetes"). La colección Ports soporta las ramas actuales y estables de FreeBSD. Las versiones anteriores no son compatibles y pueden o no funcionar correctamente con una colección de Ports actualizada.

Los puertos utilizan Makefiles para obtener automáticamente el código fuente de la aplicación deseada , ya sea de un repositorio local o remoto , descomprimirlo en el sistema, aplicarle parches y compilarlo. 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 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.

FreeBSD versión 10.0 introdujo el administrador de paquetes pkg como un reemplazo para las herramientas de paquetes utilizadas anteriormente. Funcionalmente es 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 Ports.

Cárceles

Introducidas por primera vez en la versión 4 de FreeBSD, 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 en la parte superior de un host 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 externos. Cada cárcel tiene su propio nombre de host y dirección IP . Es posible ejecutar varias cárceles al mismo tiempo, pero el kernel se comparte entre todas. Por lo tanto, solo el software compatible con el kernel de FreeBSD se puede ejecutar dentro de una cárcel.

Virtualización

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 ) simultáneamente. Están previstos otros sistemas operativos como Illumos . bhyve fue escrito por Neel Natu y Peter Grehan y fue anunciado en la conferencia BSDCan 2011 por primera vez. 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 solo a huéspedes de FreeBSD; pero bhyve es un hipervisor de tipo 2 y no se limita solo a los invitados de FreeBSD. 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 AMI de Amazon EC2 también son compatibles a través deamazon-ssm-agent

Desde FreeBSD 11.0, ha habido soporte para ejecutar como dominio privilegiado Dom0 para el hipervisor Xen tipo 1. El soporte para ejecutar 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.

Capas de compatibilidad del sistema operativo

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 kernel de FreeBSD y, por lo tanto, las imágenes ejecutables de Linux y las bibliotecas compartidas se tratan de la misma manera que las imágenes ejecutables nativas y las bibliotecas compartidas de FreeBSD. Además, FreeBSD proporciona capas de compatibilidad para varios otros sistemas operativos similares a Unix , además de Linux, como BSD / OS y SVR4 , sin embargo, es más común que los usuarios compilen esos programas directamente en FreeBSD.

No se ha observado ninguna penalización de rendimiento notable sobre los programas nativos de FreeBSD cuando se ejecutan binarios de Linux y, en algunos casos, estos pueden funcionar incluso con más fluidez que en Linux. Sin embargo, la capa no es del todo perfecta y algunos 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 2.6.18, disponible desde FreeBSD 7.0 . A partir de la versión 10.3, FreeBSD puede ejecutar binarios de Linux de 64 bits.

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.

La capa de compatibilidad de Wine , que permite la ejecución de muchas aplicaciones de Windows, especialmente juegos, sin una copia (con licencia) de Microsoft Windows , está disponible para FreeBSD.

Núcleo

El kernel 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 , con un diseño modular. Las 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. ULE es el programador predeterminado en FreeBSD desde la versión 7.1, es compatible con SMP y SMT . El kernel de FreeBSD también tiene una interfaz de notificación de eventos escalable, llamada kqueue . Se ha portado a otros derivados de BSD como OpenBSD y NetBSD . Kernel de roscado se introdujo en FreeBSD 5.0, utilizando un M: modelo de subprocesamiento N . Este modelo funciona bien en teoría, pero es difícil de implementar y pocos sistemas operativos lo admiten. Aunque la implementación de FreeBSD de este modelo funcionó, no funcionó bien, así que desde la versión 7.0 en adelante, FreeBSD comenzó a usar un modelo de subprocesamiento 1: 1 , llamado libthr.

Documentación y soporte

La documentación de FreeBSD consiste en sus manuales, páginas de manuales, archivos de listas de correo, preguntas frecuentes y una variedad de artículos, principalmente mantenidos por The FreeBSD Documentation Project. La documentación de FreeBSD está traducida a varios idiomas. 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". La documentación de FreeBSD se describe como "de alta calidad".

El proyecto FreeBSD mantiene una variedad de listas de correo. Entre las listas de correo más populares se encuentran las preguntas de FreeBSD (preguntas generales) y los hackers de FreeBSD (un lugar para hacer preguntas más técnicas).

Desde 2004, la base de datos del Grupo de Usuarios BSD de la Ciudad de Nueva York proporciona información dmesg de una colección de computadoras (computadoras portátiles , estaciones de trabajo , computadoras de placa única , sistemas integrados , máquinas virtuales , etc.) que ejecutan FreeBSD.

Instaladores

Desde la versión 2.0 a la 8.4, FreeBSD usó el programa sysinstall como su instalador principal. Fue escrito en C por Jordan Hubbard . Utiliza una interfaz de usuario de texto y se divide en varios 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 .

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 ligero 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".

Cascarón

El shell predeterminado de FreeBSD es el shell tcsh para root y el shell Almquist (sh) para usuarios habituales. El shell de secuencias de comandos predeterminado es el shell de Almquist.

Desarrollo

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 lleva a cabo 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 . Además de BSDcon, se llevan a cabo otras tres conferencias anuales, EuroBSDCon, AsiaBSDCon y BSDCan, en Europa , Japón y Canadá, respectivamente.

Estructura de gobierno

El Proyecto FreeBSD es ejecutado por alrededor de 500 confirmadores o desarrolladores que tienen acceso de confirmación 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. 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 (infraestructura y portabilidad 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, el establecimiento y el cumplimiento de las reglas del proyecto y la aprobación de nuevos confirmadores, o la concesión del acceso de compromiso de SVN. 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 en el Equipo de Gestión de Puertos.

Además de los desarrolladores, FreeBSD tiene miles de "contribuyentes". Los contribuyentes también son voluntarios fuera del proyecto FreeBSD que envían parches para que los revisen, ya que no tienen acceso directo al repositorio de código fuente de FreeBSD. Luego, los responsables 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 un confirmador.

Sucursales

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 corta aproximadamente una vez cada 4-6 meses. Si una característica es lo suficientemente estable y madura, probablemente será retroportada ( MFC o Merge from CURRENT en la jerga del desarrollador de FreeBSD) a la rama -STABLE .

Fundación

"La semana pasada, doné un millón de dólares a la Fundación FreeBSD, que apoya el sistema operativo de código abierto que ha ayudado a millones de programadores a perseguir sus pasiones y dar vida a sus ideas. De hecho, soy una de esas personas. Empecé a usar FreeBSD a finales de los 90, cuando no tenía mucho dinero y vivía en una vivienda del gobierno. En cierto modo, FreeBSD me ayudó a salir de la pobreza: una de las principales razones por las que conseguí un trabajo en Yahoo! FreeBSD, y fue mi sistema operativo de elección. Años más tarde, cuando Brian y yo nos propusimos construir WhatsApp, usamos FreeBSD para mantener nuestros servidores en funcionamiento. Todavía lo hacemos. Estoy anunciando esta donación para arrojar luz sobre lo bueno trabajo que está realizando la Fundación FreeBSD, con la esperanza de que otros también ayuden a hacer avanzar este proyecto. Todos nos beneficiaremos si FreeBSD puede continuar brindando a la gente la misma oportunidad que me dio a mí, si puede sacar a más niños inmigrantes de la pobreza y ayudar a más startups a construir algo exitoso. ul, e incluso transformador ".

Jan Koum

El desarrollo de FreeBSD es apoyado en parte por la Fundación FreeBSD. La fundación es una organización sin fines de lucro que acepta donaciones para financiar el desarrollo de FreeBSD. Dicho financiamiento se ha utilizado para patrocinar a desarrolladores para actividades específicas, comprar hardware e infraestructura de red, proporcionar subvenciones para viajes a las cumbres de desarrolladores y brindar apoyo legal al proyecto FreeBSD.

En noviembre de 2014, la Fundación FreeBSD recibió una donación de US $ 1 millón de Jan Koum , cofundador y director ejecutivo de WhatsApp  , la donación individual más grande a la Fundación desde sus inicios. En diciembre de 2016, Jan Koum donó otros 500 mil dólares. El propio Jan Koum es usuario de FreeBSD desde finales de la década de 1990 y WhatsApp usa FreeBSD en sus servidores.

Licencia

FreeBSD se publica bajo una variedad de licencias de código abierto. El código del kernel y la mayoría del código recién creado se publican bajo la licencia BSD de dos cláusulas que permite a todos usar y redistribuir FreeBSD como lo deseen. Esta licencia fue aprobada por la Free Software Foundation y la Open Source Initiative como una 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 partes lanzadas bajo licencias BSD de tres y cuatro cláusulas, así como la licencia Beerware . Algunos controladores de dispositivo incluyen un blob binario , como el Atheros HAL de las versiones de FreeBSD anteriores a la 7.2. Parte del código aportado por otros proyectos tiene licencia GPL , LGPL , CDDL e ISC . Todo el código licenciado bajo GPL y CDDL está claramente separado del código bajo licencias liberales, para que a los usuarios como los fabricantes de dispositivos integrados les resulte fácil utilizar solo licencias de software libre permisivas . ClangBSD tiene como objetivo 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 se convirtió en autohospedado el 16 de abril de 2010.

Durante muchos años, el logotipo de FreeBSD fue el BSD Daemon genérico , también llamado Beastie , una pronunciación distorsionada de BSD . Sin embargo, Beastie no era exclusivo de FreeBSD. Apareciendo por primera vez en 1976 en camisetas Unix compradas por Bell Labs , las versiones más populares del demonio BSD fueron dibujadas por el director de animación John Lasseter a partir de 1984. Varias versiones específicas de FreeBSD fueron posteriormente dibujadas por Tatsumi Hosokawa.

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 fotográfica de cuatro colores con pantalla para una reproducción fiel en superficies físicas como el papel. Además, se pensó que el demonio BSD era demasiado detallado gráficamente para una escala de tamaño suave y demasiado dependiente estéticamente de múltiples gradaciones de color, lo que dificultaba la reproducción confiable como un logotipo simple y estandarizado en solo dos o tres colores, mucho menos en monocromo. Debido a estas preocupaciones, se llevó a cabo un concurso y el 8 de octubre de 2005 se lanzó un nuevo logotipo diseñado por Anton K. Gural, que aún se hace eco del demonio BSD. Sin embargo, Robert Watson anunció que el proyecto FreeBSD está "buscando un nuevo logo, pero no una nueva mascota "y que el proyecto FreeBSD continuaría usando Beastie como su mascota.

El nombre "FreeBSD" fue acuñado por David Greenman el 19 de junio de 1993, otros nombres sugeridos fueron "BSDFree86" y "Free86BSD". El eslogan de FreeBSD, "El poder de servir", es una marca registrada de la Fundación FreeBSD.

Derivados

PC-BSD versión 10, el sistema operativo que más tarde se conoció como TrueOS

Hay varias distribuciones de software basadas en FreeBSD. Los derivados notables incluyen:

Todas estas distribuciones tienen cambios menores o nulos 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 se puede comparar con las distribuciones de Linux , que son todas compatibles con binarios porque usan el mismo kernel y también usan las mismas herramientas básicas, compiladores y bibliotecas mientras 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 multiprocesador diferente a la elegida para FreeBSD 5 y el desarrollo de algunas características de microkernel . No pretende ser compatible con FreeBSD y tiene grandes diferencias en el kernel y el área de usuario básica . 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 manzana 's macOS , incluye un sistema de archivos virtual y de pila de red derivado de los de FreeBSD, y componentes de su espacio de usuario también se derivan-FreeBSD.

Algunos servicios de suscripción que se basan directamente en FreeBSD son:

  • WhatsApp  : procesa 2 millones de conexiones TCP simultáneas por servidor.

Los dispositivos integrados y los sistemas operativos de dispositivos integrados basados ​​en FreeBSD incluyen:

  • Juniper 's JunOS enrutador sistema operativo.
  • EMC Isilon 's OneFS sistema operativo.
  • Data ONTAP 8.xy el ahora reemplazado ONTAP GX de NetApp (solo como cargador para el módulo de espacio de kernel propietario).
  • Open Connect Appliance de Netflix para manejar la entrega de contenido.
  • La PlayStation 4 (" Orbis OS ")
  • Sistema de archivos paralelo PanFS de Panasas
  • pfSense , un firewall de código abierto, enrutador y sistema operativo de dispositivo de seguridad.

Historial de versiones

Leyenda: Versión antigua, no mantenida Versión anterior, aún mantenida Versión estable actual Última versión de vista previa Lanzamiento futuro
Versión Fecha de lanzamiento Soportado hasta Cambios significativos
Versión antigua, ya no se mantiene: 1.x Noviembre de 1993
  • El primer lanzamiento oficial.
  • Colección Ports.
  • Se corrigieron algunos errores pendientes de la importación de 386BSD
  • Adición de algunas aplicaciones portadas ( XFree86 , XView , InterViews , elm , nntp )
Versión antigua, ya no se mantiene: 2.x 22 de noviembre de 1994
  • Se reemplazó la base del código con BSD-Lite 4.4 (para satisfacer los términos del acuerdo de la demanda USL v. BSDi )
  • Nuevo instalador y nuevo administrador de arranque
  • Soporte de sistemas de archivos cargables para más sistemas de archivos (MS-DOS, unionfs, kernfs )
  • Módulos de kernel cargables importados de NetBSD
  • Reemplazo BSD malloc con phkmalloc
  • Emulación completa de Linux con ELF
  • Conformación del tráfico ficticio
Versión antigua, ya no se mantiene: 3.x 16 de octubre de 1998
Versión antigua, ya no se mantiene: 4.x 14 de marzo de 2000 31 de enero de 2007
Versión antigua, ya no se mantiene: 5.x 14 de enero de 2003 31 de mayo de 2008
Versión antigua, ya no se mantiene: 6.x 1 de noviembre de 2005 30 de noviembre de 2010
  • Soporte de contadores de monitoreo de desempeño
  • Nueva pila de Wi-Fi
  • GELI
  • Puente de red
  • Utilidad NanoBSD
  • Soporte de controlador NDIS
  • Multiplexor de teclado
  • Estabilidad del sistema de archivos UFS
  • Autoconfiguración de Bluetooth
  • Controladores adicionales de Ethernet y RAID
  • Soporte para arquitectura Xbox
  • Subsistema de auditoría de OpenBSM
  • freebsd-update (actualizaciones binarias para correcciones de seguridad y parches de erratas)
Versión antigua, ya no se mantiene: 7.x 27 de febrero de 2008 28 de febrero de 2013
Versión antigua, ya no se mantiene: 8.x 26 de noviembre de 2009 1 de agosto de 2015
  • Soporte SATA NCQ
  • Soporte para invitados de Xen
  • Almacenamiento de alta disponibilidad
  • Soporte nativo de NFSv4 ACL
  • Soporte USB 3.0
Versión antigua, ya no se mantiene: 9.x 12 de enero de 2012 31 de diciembre de 2016
  • Mecanismo de seguridad basado en la capacidad de Capsicum
  • UFS SoftUpdates + Diario
  • ZFS actualizado a la versión 28
  • bsdconfig, utilidad de configuración del sistema
  • bsdinstall, el nuevo programa de instalación del sistema
  • RCTL, un mecanismo flexible de límites de recursos
  • GRAID, implementación de RAID de software flexible
  • conductores virtio
  • pkgng
  • vt, la nueva implementación de terminal virtual
Versión antigua, ya no se mantiene: 10.x 20 de enero de 2014 31 de octubre de 2018
  • BHyVe hipervisor
  • Clang reemplazó a GCC en arquitecturas compatibles
  • Nueva pila iSCSI
  • Soporte agregado para Raspberry Pi
  • Arranque UEFI para amd64
  • Arranque ZFS a través de UEFI
  • ZFS en el sistema de archivos raíz
  • Mejoras de rendimiento y confiabilidad de ZFS
  • Implementación de pkgun nuevo administrador de paquetes FreeBSD, también conocido como pkgng
  • Soporte para el protocolo UDP Lite (RFC 3828)
  • Soporte SMP para armv6
  • Basado en autofs nuevos montador
  • Código DRM actualizado para que coincida con Linux 3.8.13, lo que permite múltiples servidores X simultáneos
  • Soporte para binarios de Linux de 64 bits a través de la capa de compatibilidad
Versión antigua, ya no se mantiene: 11.x 10 de octubre de 2016 30 de septiembre de 2021
  • Nueva versión de NetMap
  • Soporte para la arquitectura ARM de 64 bits
  • umount (8) -N nueva bandera que se usa para desmontar forzosamente un sistema de archivos montado en NFS
  • crontab -f nueva bandera agregada
  • El sistema de archivos ZFS se ha actualizado para implementar el montaje en paralelo.
  • Se ha agregado la utilidad trim (8), que elimina el contenido de los bloques en dispositivos de almacenamiento basados ​​en flash que utilizan algoritmos de nivelación de desgaste.
Versión anterior, pero aún se mantiene: 12.x 11 de diciembre de 2018
  • El sistema de archivos ext2fs (5) se ha actualizado para admitir el soporte completo de lectura / escritura para ext4
  • FreeBSD ha cambiado la forma en que se manejan los controladores de gráficos en amd64 e i386. Los controladores de gráficos para las tarjetas gráficas ATI-AMD e Intel modernas ahora están disponibles en la colección de puertos.
  • El sistema de archivos UFS / FFS se ha actualizado para admitir hashes de verificación en mapas de grupos de cilindros.
Versión estable actual: 13.x 13 de abril de 2021
  • Las utilidades clang, lld y lldb y las bibliotecas compiler-rt, llvm, libunwind y libc ++ se han actualizado a la versión 11.0.1.
  • Se eliminaron las obsoletas binutils 2.17 y gcc (1) 4.2.1 del árbol. Todas las arquitecturas compatibles ahora usan la cadena de herramientas LLVM / clang.
  • El kernel ahora admite el entramado y el cifrado dentro del kernel de los datos de Transport Layer Security (TLS) en sockets TCP para las versiones de TLS 1.0 a 1.3. La descarga de transmisión a través de controladores de cifrado en el kernel es compatible con los conjuntos de cifrado MtE que utilizan AES-CBC, así como los conjuntos de cifrado AEAD que utilizan AES-GCM. La descarga de recepción a través de controladores de cifrado en el kernel es compatible con los conjuntos de cifrado AES-GCM para TLS 1.2. El uso de KTLS requiere el uso de una biblioteca SSL de usuario compatible con KTLS. La biblioteca OpenSSL incluida en el sistema base no habilita la compatibilidad con KTLS de forma predeterminada, pero la compatibilidad se puede habilitar compilando con la opción WITH_OPENSSL_KTLS
  • La arquitectura ARM de 64 bits conocida como arm64 o AArch64 se promueve al estado de Nivel 1 para FreeBSD 13.
Versión Fecha de lanzamiento Soportado hasta Cambios significativos

Ver también

Referencias

Citas

Fuentes

enlaces externos