Berkeley Software Distribution o Berkeley Standard Distribution [1] ( BSD ) es un sistema operativo descontinuado basado en Research Unix , desarrollado y distribuido por el Computer Systems Research Group (CSRG) de la Universidad de California, Berkeley . Dado que el original ha quedado obsoleto, el término "BSD" se utiliza comúnmente para sus descendientes de código abierto, incluidos FreeBSD , OpenBSD , NetBSD y DragonFly BSD .
BSD se llamó inicialmente Berkeley Unix porque se basaba en el código fuente del Unix original desarrollado en Bell Labs . En la década de 1980, BSD fue ampliamente adoptado por los proveedores de estaciones de trabajo en forma de variantes propietarias de Unix como DEC Ultrix y SunOS de Sun Microsystems debido a su licencia permisiva y familiaridad para muchos fundadores e ingenieros de empresas de tecnología. Estos derivados propietarios de BSD fueron reemplazados en gran medida en la década de 1990 por UNIX SVR4 y OSF/1 .
Las versiones posteriores de BSD proporcionaron la base para varios sistemas operativos de código abierto , incluidos FreeBSD, OpenBSD, NetBSD, DragonFly BSD, Darwin y TrueOS . Estos, a su vez, han sido utilizados por sistemas operativos propietarios, incluidos macOS e iOS de Apple , que derivaron de ellos [2] y Microsoft Windows (al menos desde 2000 y XP ), que usaba (al menos) parte de su código TCP/IP, que era legal. [3] [ Se necesita una mejor fuente ] El código de FreeBSD también se usó para crear los sistemas operativos para PlayStation 5 , [4] PlayStation 4 , [5] PlayStation 3 , [6] PlayStation Vita , [7] y Nintendo Switch . [8] [9]
Las primeras distribuciones de Unix de Bell Labs en la década de 1970 incluían el código fuente del sistema operativo, lo que permitía a los investigadores de las universidades modificar y ampliar Unix. El sistema operativo llegó a Berkeley en 1974, a petición del profesor de informática Bob Fabry , que había formado parte del comité de programa del Simposio sobre Principios de Sistemas Operativos donde se presentó Unix por primera vez. Se compró un PDP-11/45 para ejecutar el sistema, pero por razones presupuestarias, esta máquina se compartió con los grupos de matemáticas y estadísticas de Berkeley, que utilizaban RSTS , de modo que Unix solo se ejecutaba en la máquina ocho horas al día (a veces durante el día, a veces durante la noche). Un PDP-11/70 más grande se instaló en Berkeley el año siguiente, utilizando dinero del proyecto de base de datos Ingres . [10]
BSD comenzó como una variante de Unix que los programadores de la Universidad de California en Berkeley, inicialmente liderados por Bill Joy , comenzaron a desarrollar a fines de la década de 1970. Incluía características adicionales, que se entrelazaron con código propiedad de AT&T.
En 1975, Ken Thompson se tomó un año sabático de los Laboratorios Bell y llegó a Berkeley como profesor visitante. Ayudó a instalar la Versión 6 de Unix y comenzó a trabajar en una implementación de Pascal para el sistema. Los estudiantes de posgrado Chuck Haley y Bill Joy mejoraron el Pascal de Thompson e implementaron un editor de texto mejorado, por ejemplo . [10] Otras universidades se interesaron en el software de Berkeley, y así, en 1977, Joy comenzó a compilar la primera Berkeley Software Distribution (1BSD), que se lanzó el 9 de marzo de 1978. [11] 1BSD era un complemento de la Versión 6 de Unix en lugar de un sistema operativo completo por derecho propio. Se enviaron unas treinta copias. [10]
La segunda distribución de software de Berkeley (2BSD), publicada en mayo de 1979, [12] incluía versiones actualizadas del software de 1BSD, así como dos nuevos programas de Joy que persisten en los sistemas Unix hasta el día de hoy: el editor de texto vi (una versión visual de ex ) y el shell C. Bill Joy envió unas 75 copias de 2BSD. [10]
En 1978 se instaló en Berkeley un ordenador VAX , pero la adaptación de Unix a la arquitectura VAX, UNIX/32V , no aprovechó las capacidades de memoria virtual de VAX . El núcleo de 32V se reescribió en gran parte para incluir la implementación de memoria virtual del estudiante de posgrado de Berkeley Özalp Babaoğlu , y a finales de 1979 se publicó un sistema operativo completo que incluía el nuevo núcleo, las adaptaciones de las utilidades de 2BSD a VAX y las utilidades de 32V como 3BSD. 3BSD también se denominaba alternativamente Virtual VAX/UNIX o VMUNIX (por Virtual Memory Unix), y las imágenes del núcleo BSD se denominaban normalmente /vmunix
hasta 4.4BSD.
Después de que se lanzara 4.3BSD en junio de 1986, se decidió que BSD se alejaría de la obsoleta plataforma VAX. La plataforma Power 6/32 (con nombre en código "Tahoe") desarrollada por Computer Consoles Inc. parecía prometedora en ese momento, pero sus desarrolladores la abandonaron poco después. No obstante, la adaptación de 4.3BSD a Tahoe (junio de 1988) resultó valiosa, ya que condujo a una separación del código dependiente e independiente de la máquina en BSD, lo que mejoraría la portabilidad futura del sistema.
Además de la portabilidad, el CSRG trabajó en una implementación de la pila de protocolos de red OSI , mejoras en el sistema de memoria virtual del núcleo y (con Van Jacobson de LBL ) nuevos algoritmos TCP/IP para adaptarse al crecimiento de Internet. [13]
Hasta entonces, todas las versiones de BSD utilizaban código Unix propietario de AT&T y, por lo tanto, estaban sujetas a una licencia de software de AT&T. Las licencias de código fuente se habían vuelto muy caras y varias partes externas habían expresado su interés en una versión independiente del código de redes, que se había desarrollado completamente fuera de AT&T y no estaría sujeto al requisito de licencia. Esto condujo a la versión Networking Release 1 ( Net/1 ), que se puso a disposición de los no licenciatarios del código de AT&T y se podía redistribuir libremente según los términos de la licencia BSD . Se lanzó en junio de 1989.
Después de Net/1, el desarrollador de BSD Keith Bostic propuso que más secciones del sistema BSD que no fueran de AT&T se publicaran bajo la misma licencia que Net/1. Con este fin, inició un proyecto para reimplementar la mayoría de las utilidades estándar de Unix sin utilizar el código de AT&T. En dieciocho meses, todas las utilidades de AT&T habían sido reemplazadas y se determinó que sólo quedaban unos pocos archivos de AT&T en el núcleo. Estos archivos fueron eliminados y el resultado fue el lanzamiento en junio de 1991 de Networking Release 2 (Net/2), un sistema operativo casi completo que se podía distribuir libremente.
Net/2 fue la base para dos puertos separados de BSD para la arquitectura Intel 80386 : el 386BSD libre de William y Lynne Jolitz , y el BSD/386 propietario (más tarde renombrado BSD/OS) de Berkeley Software Design (BSDi). El 386BSD en sí tuvo una vida corta, pero se convirtió en la base de código inicial de los proyectos NetBSD y FreeBSD que comenzaron poco después.
BSDi pronto se encontró en problemas legales con la subsidiaria Unix System Laboratories (USL) de AT&T, entonces propietaria de los derechos de autor de System V y de la marca registrada Unix. La demanda USL contra BSDi se presentó en 1992 y condujo a una orden judicial sobre la distribución de Net/2 hasta que se pudiera determinar la validez de las reclamaciones de derechos de autor de USL sobre el código fuente. La demanda ralentizó el desarrollo de los descendientes de software libre de BSD durante casi dos años mientras su estatus legal estaba en duda y, como resultado, los sistemas basados en el núcleo Linux , que no tenían tal ambigüedad legal, obtuvieron un mayor apoyo. La demanda se resolvió en enero de 1994, en gran medida a favor de Berkeley. De los 18.000 archivos de la distribución de Berkeley, solo tres tuvieron que ser eliminados y 70 modificados para mostrar los avisos de derechos de autor de USL. Una condición adicional del acuerdo fue que USL no presentaría más demandas contra los usuarios y distribuidores del código propiedad de Berkeley en la próxima versión 4.4BSD. [14]
La última versión de Berkeley fue 4.4BSD-Lite Release 2 en 1995 , tras lo cual se disolvió el CSRG y cesó el desarrollo de BSD en Berkeley. Desde entonces, se han mantenido varias variantes basadas directa o indirectamente en 4.4BSD-Lite (como FreeBSD , NetBSD , OpenBSD y DragonFly BSD ).
La naturaleza permisiva de la licencia BSD ha permitido que muchos otros sistemas operativos, tanto de código abierto como propietarios, incorporen código fuente BSD. Por ejemplo, Microsoft Windows utilizó código BSD en su implementación de TCP/IP [15] e incluye versiones recompiladas de las herramientas de red de línea de comandos de BSD desde Windows 2000. [ 16] Darwin , la base de macOS e iOS de Apple , se basa en 4.4BSD-Lite2 y FreeBSD. Varios sistemas operativos Unix comerciales, como Solaris , también incorporan código BSD.
A partir de la 8.ª edición, las versiones de Research Unix en Bell Labs tenían una relación estrecha con BSD. Esto comenzó cuando se utilizó 4.1cBSD para VAX como base para Research Unix 8.ª edición. Esto continuó en versiones posteriores, como la 9.ª edición, que incorporó el código fuente y las mejoras de 4.3BSD. El resultado fue que estas versiones posteriores de Research Unix estaban más cerca de BSD que de System V. En una publicación de Usenet de 2000, Dennis Ritchie describió esta relación entre BSD y Research Unix: [17] [ se necesita una mejor fuente ]
Research Unix 8th Edition comenzó con (creo) BSD 4.1c, pero con enormes cantidades extraídas y reemplazadas por nuestro propio material. Esto continuó con las versiones 9 y 10. El conjunto de comandos de usuario normal tenía, supongo, un poco más de sabor a BSD que a SysVish, pero era bastante ecléctico.
Eric S. Raymond resume la relación de larga data entre System V y BSD, afirmando: "La división era más o menos entre los de pelo largo y los de pelo corto; los programadores y los técnicos tendían a alinearse con Berkeley y BSD, los tipos más orientados a los negocios con AT&T y System V". [18]
En 1989, David A. Curry escribió sobre las diferencias entre BSD y System V. Caracterizó a System V como el "Unix estándar", pero describió a BSD como más popular entre los centros informáticos universitarios y gubernamentales, debido a sus características y rendimiento avanzados: [19]
La mayoría de los centros informáticos universitarios y gubernamentales que utilizan UNIX utilizan Berkeley UNIX, en lugar de System V. Hay varias razones para esto, pero quizás las dos más significativas son que Berkeley UNIX proporciona capacidades de red que hasta hace poco (versión 3.0) no estaban disponibles en absoluto en System V, y que Berkeley UNIX es mucho más adecuado para un entorno de investigación, que requiere un sistema de archivos más rápido, un mejor manejo de la memoria virtual y una mayor variedad de lenguajes de programación .
El Unix de Berkeley fue el primer Unix que incluyó bibliotecas que soportaban las pilas de protocolos de Internet : los sockets de Berkeley . Una implementación Unix del predecesor de IP, el NCP de ARPAnet , con clientes FTP y Telnet , se había producido en la Universidad de Illinois en 1975, y estaba disponible en Berkeley. [20] [21] Sin embargo, la escasez de memoria en el PDP-11 forzó un diseño complicado y problemas de rendimiento. [22]
Al integrar los sockets con los descriptores de archivos del sistema operativo Unix , se volvió casi tan fácil leer y escribir datos a través de una red como acceder a un disco. El laboratorio de AT&T finalmente lanzó su propia biblioteca STREAMS , que incorporaba gran parte de la misma funcionalidad en una pila de software con una arquitectura diferente, pero la amplia distribución de la biblioteca de sockets existente redujo el impacto de la nueva API . Las primeras versiones de BSD se utilizaron para formar SunOS de Sun Microsystems , fundando la primera ola de estaciones de trabajo Unix populares.
Algunos sistemas operativos BSD pueden ejecutar software nativo de varios otros sistemas operativos sobre la misma arquitectura , utilizando una capa de compatibilidad binaria . Esto es mucho más simple y rápido que la emulación ; por ejemplo, permite que las aplicaciones destinadas a Linux se ejecuten a plena velocidad. Esto hace que los BSD no solo sean adecuados para entornos de servidor, sino también para estaciones de trabajo, dada la creciente disponibilidad de software comercial o de código cerrado solo para Linux. Esto también permite a los administradores migrar aplicaciones comerciales heredadas, que pueden haber soportado solo variantes comerciales de Unix, a un sistema operativo más moderno, conservando la funcionalidad de dichas aplicaciones hasta que puedan ser reemplazadas por una mejor alternativa.
Las variantes actuales del sistema operativo BSD son compatibles con muchos de los estándares IEEE , ANSI , ISO y POSIX más comunes , al tiempo que conservan la mayor parte del comportamiento tradicional de BSD. Al igual que AT&T Unix , el núcleo BSD es monolítico , lo que significa que los controladores de dispositivos del núcleo se ejecutan en modo privilegiado , como parte del núcleo del sistema operativo.
Varios sistemas operativos se basan en BSD, entre ellos FreeBSD , OpenBSD , NetBSD , MidnightBSD , MirOS BSD , GhostBSD , Darwin y DragonFly BSD . Tanto NetBSD como FreeBSD se crearon en 1993. Inicialmente se derivaron de 386BSD (también conocido como "Jolix") y fusionaron el código fuente de 4.4BSD-Lite en 1994. OpenBSD se bifurcó de NetBSD en 1995 y DragonFly BSD se bifurcó de FreeBSD en 2003.
BSD también se utilizó como base para varias versiones propietarias de Unix, como SunOS de Sun , DYNIX de Sequent , NeXTSTEP de NeXT , Ultrix de DEC y OSF / 1 AXP (ahora Tru64 UNIX ). NeXTSTEP luego se convirtió en la base de macOS de Apple Inc.