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 . El término "BSD" comúnmente se refiere a 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, los proveedores de estaciones de trabajo adoptaron ampliamente BSD en forma de variantes patentadas de Unix, como DEC Ultrix y Sun Microsystems SunOS, debido a sus licencias permisivas y su familiaridad con muchos fundadores e ingenieros de empresas de tecnología. Estos derivados patentados de BSD fueron reemplazados en gran medida en la década de 1990 por UNIX SVR4 y OSF/1 .
Las versiones posteriores de BSD sirvieron de 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, entre ellos macOS e iOS de Apple , que derivaron de ellos [2] y Microsoft Windows (al menos desde el año 2000 y XP ), que utilizó (al menos) parte de su TCP. /Código IP, que era legal. [3] [ se necesita mejor fuente ] El código de FreeBSD también se utilizó 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 los Laboratorios Bell 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ó por primera vez Unix. 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ística de Berkeley, que usaban RSTS , de modo que Unix sólo funcionaba en la máquina ocho horas al día (a veces durante el día, a veces durante la noche). Al año siguiente se instaló un PDP-11/70 más grande en Berkeley, utilizando dinero del proyecto de base de datos Ingres . [10]
BSD nació como una variante de Unix que los programadores de la Universidad de California en Berkeley, inicialmente dirigidos por Bill Joy, comenzaron a desarrollar a finales de los años 1970. Incluía funciones adicionales, que estaban entrelazadas con el código propiedad de AT&T.
En 1975, Ken Thompson se tomó un año sabático en los Laboratorios Bell y vino 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 Pascal de Thompson e implementaron un editor de texto mejorado, ex . [10] Otras universidades se interesaron en el software de Berkeley, por lo que en 1977 Joy comenzó a compilar la primera distribución de software de Berkeley (1BSD), que se lanzó el 9 de marzo de 1978. [11] 1BSD era un complemento de la versión 6. 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), lanzada en mayo de 1979, [12] incluía versiones actualizadas del software 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]
Se instaló una computadora VAX en Berkeley en 1978, pero la adaptación de Unix a la arquitectura VAX, UNIX/32V , no aprovechó las capacidades de memoria virtual del VAX . El núcleo de 32V fue reescrito en gran medida para incluir la implementación de memoria virtual del estudiante graduado de Berkeley Özalp Babaoğlu , y un sistema operativo completo que incluye el nuevo núcleo, puertos de las utilidades 2BSD al VAX, y las utilidades de 32V se lanzaron como 3BSD en el finales de 1979. 3BSD también se llamaba alternativamente Virtual VAX/UNIX o VMUNIX (para Virtual Memory Unix), y las imágenes del kernel BSD normalmente se llamaban /vmunix
hasta 4.4BSD.
Después del lanzamiento de 4.3BSD en junio de 1986, se determinó que BSD se alejaría de la antigua 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 4.3BSD-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 kernel 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 costosas y varias partes externas habían expresado interés en una versión separada del código de red, que se había desarrollado completamente fuera de AT&T y no estaría sujeto al requisito de licencia. Esto llevó a Networking Release 1 ( Net/1 ), que se puso a disposición de quienes no tenían licencia del código de AT&T y se podía redistribuir libremente según los términos de la licencia BSD . Fue lanzado en junio de 1989.
Después de Net/1, el desarrollador de BSD Keith Bostic propuso que se publicaran más secciones del sistema BSD que no fueran de AT&T 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. Al cabo de 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 se eliminaron 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 gratuito de William y Lynne Jolitz , y el BSD/386 propietario (posteriormente rebautizado como BSD/OS) de Berkeley Software Design (BSDi). 386BSD en sí duró poco, pero se convirtió en la base del código inicial de los proyectos NetBSD y FreeBSD que se iniciaron poco después.
BSDi pronto se encontró en problemas legales con la subsidiaria Unix System Laboratories (USL) de AT&T, entonces propietarios de los derechos de autor System V y la marca registrada Unix. La demanda USL contra BSDi se presentó en 1992 y dio lugar a una orden judicial sobre la distribución de Net/2 hasta que se pudiera determinar la validez de los derechos de autor de USL sobre la fuente. La demanda ralentizó el desarrollo de los descendientes de BSD durante casi dos años mientras su estatus legal estaba en duda, y como resultado los sistemas basados en el kernel de 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, sólo hubo que eliminar tres y modificar 70 para mostrar avisos de copyright de la USL. Otra condición del acuerdo fue que USL no presentaría más demandas contra usuarios y distribuidores del código propiedad de Berkeley en la próxima versión 4.4BSD. [14]
La versión final de Berkeley fue 4.4BSD-Lite Release 2 de 1995 , después de lo cual el CSRG se disolvió 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] y agrupa 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 comerciales Unix, como Solaris , también incorporan código BSD.
A partir de la octava edición, las versiones de Research Unix en Bell Labs tenían una estrecha relación con BSD. Esto comenzó cuando se utilizó 4.1cBSD para VAX como base para Research Unix 8th Edition. Esto continuó en versiones posteriores, como la novena edición, que incorporó código fuente y mejoras de 4.3BSD. El resultado fue que estas últimas versiones de Research Unix estaban más cerca de BSD que de System V. En una publicación en 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ó (creo) con BSD 4.1c, pero con enormes cantidades extraídas y reemplazadas por nuestro propio material. Esto continuó con el noveno y el décimo. Supongo que el conjunto de comandos del usuario normal tenía un poco más de sabor BSD que 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 aproximadamente entre los de pelo largo y los de pelo corto; los programadores y 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ó al System V como a menudo considerado como el "Unix estándar". Sin embargo, describió a BSD como más popular entre los centros informáticos universitarios y gubernamentales, debido a sus características avanzadas y su rendimiento: [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 importantes 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 . En 1975 se había producido en la Universidad de Illinois una implementación Unix del predecesor de IP, el NCP de ARPAnet , con clientes FTP y Telnet , y estaba disponible en Berkeley. [20] [21] Sin embargo, la escasez de memoria en el PDP-11 obligó a un diseño complicado y problemas de rendimiento. [22]
Al integrar sockets con los descriptores de archivos del sistema operativo Unix , leer y escribir datos a través de una red se volvió casi tan fácil 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 en la misma arquitectura , utilizando una capa de compatibilidad binaria . Esto es mucho más sencillo y rápido que la emulación ; por ejemplo, permite que las aplicaciones destinadas a Linux se ejecuten a toda velocidad. Esto hace que los BSD no sólo sean adecuados para entornos de servidores, sino también para estaciones de trabajo, dada la creciente disponibilidad de software comercial o de código cerrado únicamente para Linux. Esto también permite a los administradores migrar aplicaciones comerciales heredadas, que pueden haber soportado sólo variantes comerciales de Unix, a un sistema operativo más moderno, conservando la funcionalidad de dichas aplicaciones hasta que puedan ser reemplazadas por una alternativa mejor.
Las variantes actuales del sistema operativo BSD admiten muchos de los estándares IEEE , ANSI , ISO y POSIX comunes , al tiempo que conservan la mayor parte del comportamiento tradicional de BSD. Al igual que AT&T Unix , el kernel BSD es monolítico , lo que significa que los controladores de dispositivos en el kernel se ejecutan en modo privilegiado , como parte del núcleo del sistema operativo.
Varios sistemas operativos están basados en BSD, incluidos 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 4.4BSD-Lite en 1994. OpenBSD se bifurcó de NetBSD en 1995, y DragonFly BSD se bifurcó de NetBSD. 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 ). Más tarde, NeXTSTEP se convirtió en la base de macOS de Apple Inc ..