La historia de Berkeley Software Distribution comenzó en la década de 1970, cuando la Universidad de California, Berkeley, recibió una copia de Unix . Los profesores y estudiantes de la universidad comenzaron a agregar software al sistema operativo y lo lanzaron como BSD a universidades seleccionadas. Dado que contenía código propietario de Unix, originalmente tuvo que distribuirse sujeto a licencias de AT&T. El software incluido de AT&T fue luego reescrito y lanzado como software libre bajo la licencia BSD . Sin embargo, esto resultó en una demanda con Unix System Laboratories, la subsidiaria de AT&T responsable de Unix. Finalmente, en la década de 1990, las versiones finales de BSD se lanzaron públicamente sin ninguna licencia propietaria, lo que dio lugar a muchos descendientes del sistema operativo que aún se mantienen en la actualidad.
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 . [1]
También 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 . [1] 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. [2] 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. [1]
La segunda distribución de software de Berkeley (2BSD), publicada en mayo de 1979, [3] 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. [1] Otra característica era un paquete de redes llamado Berknet , desarrollado por Eric Schmidt como parte de su trabajo de tesis de maestría , que podía conectar hasta veintiséis computadoras y proporcionaba correo electrónico y transferencia de archivos. [4]
Después de que 3BSD (ver abajo) saliera para la línea de computadoras VAX , nuevas versiones de 2BSD para PDP-11 todavía se emitían y distribuían a través de USENIX ; por ejemplo, 2.8.1BSD de 1982 incluía una colección de correcciones para problemas de rendimiento en Unix Versión 7 , [5] y las versiones posteriores contenían puertos de cambios de las versiones de BSD basadas en VAX a la arquitectura PDP-11. 2.9BSD de 1983 incluía código de 4.1cBSD, y fue la primera versión que era un sistema operativo completo (un Unix V7 modificado) en lugar de un conjunto de aplicaciones y parches.
La versión más reciente, 2.11BSD , se publicó por primera vez en 1991. [6] A diferencia de las versiones anteriores, requería dividir el espacio de instrucciones y datos para adaptarse al tamaño cada vez mayor de sus programas de utilidad. En el siglo XXI, las actualizaciones de mantenimiento realizadas por voluntarios continuaron: el parche n.° 482 se lanzó el 27 de septiembre de 2024. [7]
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 fue reescrito en gran parte por el estudiante de posgrado de Berkeley Özalp Babaoğlu para incluir una implementación de memoria virtual, y a finales de 1979 se lanzó 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 de forma alternativa Virtual VAX/UNIX o VMUNIX (por Virtual Memory Unix), y las imágenes del núcleo BSD se denominaban normalmente /vmunix
hasta 4.4BSD.
El éxito de 3BSD fue un factor importante en la decisión de la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA) de financiar el Grupo de Investigación de Sistemas Informáticos de Berkeley (CSRG), que desarrollaría una plataforma Unix estándar para futuras investigaciones de DARPA en el Proyecto VLSI .
4BSD (noviembre de 1980) ofrecía una serie de mejoras con respecto a 3BSD, en particular el control de tareas en el csh publicado anteriormente , delivermail (el antecesor de sendmail ), señales "fiables" y la biblioteca de programación Curses . En una revisión de las versiones de BSD de 1985, John Quarterman et al. escribió: [8]
4BSD fue el sistema operativo elegido por los VAX desde el principio hasta el lanzamiento del System III (1979-1982) [...] La mayoría de las organizaciones compraban una licencia de 32 V y pedían 4BSD a Berkeley sin molestarse en conseguir una cinta de 32 V. Muchas instalaciones dentro del Bell System ejecutaban 4.1BSD (muchas todavía lo hacen, y muchas otras ejecutan 4.2BSD).
4.1BSD (junio de 1981) fue una respuesta a las críticas sobre el rendimiento de BSD en relación con el sistema operativo VAX dominante, VMS . El núcleo 4.1BSD fue ajustado sistemáticamente por Bill Joy hasta que pudiera funcionar tan bien como VMS en varias pruebas comparativas. La versión se habría llamado 5BSD , pero después de las objeciones de AT&T, se cambió el nombre; AT&T temía una confusión con UNIX System V de AT&T . [9] Se han encontrado varias cintas, todas con una etiqueta que dice 4.1BSD, aunque hay diferencias entre las cintas. [10] El desarrollo del software que llevaría de 4.1BSD a 4.2BSD fue financiado por fuentes que incluían ARPA, número de orden 4031, contrato N00039-82-C-0235 que estuvo en vigor al menos desde el 15 de noviembre de 1981 hasta el 30 de septiembre de 1983. [11] [12]
La versión 4.2BSD (agosto de 1983) tardó más de dos años en implementarse y contenía varias revisiones importantes. Antes de su lanzamiento oficial, aparecieron tres versiones intermedias: la 4.1a de abril de 1982 [13] incorporaba una versión modificada de la implementación preliminar de TCP/IP de BBN ; la 4.1b de junio de 1982 incluía el nuevo Berkeley Fast File System , implementado por Marshall Kirk McKusick ; y la 4.1c de abril de 1983 fue una versión provisional durante los últimos meses del desarrollo de la 4.2BSD. De vuelta en los Laboratorios Bell, la 4.1cBSD se convirtió en la base de la octava edición de Research Unix , y una versión con soporte comercial estaba disponible en mt Xinu .
Para guiar el diseño de 4.2BSD, Duane Adams de DARPA formó un "comité directivo" formado por Bob Fabry , Bill Joy y Sam Leffler de UCB , Alan Nemeth y Rob Gurwitz de BBN, Dennis Ritchie de Bell Labs , Keith Lantz de Stanford , Rick Rashid de Carnegie Mellon , Bert Halstead de MIT , Dan Lynch de ISI y Gerald J. Popek de UCLA . El comité se reunió desde abril de 1981 hasta junio de 1983.
Aparte del Fast File System, se aceptaron varias características de colaboradores externos, incluidas las cuotas de disco y el control de tareas. Sun Microsystems proporcionó pruebas en sus máquinas Motorola 68000 antes del lanzamiento, lo que mejoró la portabilidad del sistema. [8] El soporte de hardware de Sun es claramente visible en los artefactos de BSD 4.1c en la ISO de CSRG. [14]
El lanzamiento oficial de 4.2BSD se produjo en agosto de 1983. Fue la primera versión publicada después de la partida de Bill Joy en 1982 para cofundar Sun Microsystems; Mike Karels y Marshall Kirk McKusick asumieron roles de liderazgo dentro del proyecto a partir de ese momento. En un tono más ligero, también marcó el debut de la mascota demonio de BSD en un dibujo de John Lasseter que apareció en la portada de los manuales impresos distribuidos por USENIX .
La versión 4.3BSD se publicó en junio de 1986. Sus principales cambios fueron mejorar el rendimiento de muchas de las nuevas contribuciones de la versión 4.2BSD que no habían sido tan perfeccionadas como el código de la versión 4.1BSD. Antes de la publicación, la implementación de TCP/IP de BSD se había alejado considerablemente de la implementación oficial de BBN. Después de varios meses de pruebas, DARPA determinó que la versión 4.2BSD era superior y permanecería en la versión 4.3BSD. (Véase también Historia de Internet .)
Después de 4.3BSD, 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 al sistema de memoria virtual del núcleo y (con Van Jacobson de LBL ) nuevos algoritmos TCP/IP para adaptarse al crecimiento de Internet. [15]
Hasta entonces, todas las versiones de BSD incorporaban 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 había sido desarrollado completamente fuera de AT&T y no estaría sujeto al requisito de licencia. Esto condujo a 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.
4.3BSD-Reno llegó a principios de 1990. Fue una versión provisional durante el desarrollo inicial de 4.4BSD, y su uso se consideró una "apuesta", de ahí el nombre del centro de juegos de azar de Reno, Nevada . Esta versión se movió explícitamente hacia la compatibilidad con POSIX . [15] Entre las nuevas características se encontraba una implementación de NFS de la Universidad de Guelph , una tecla de estado ("Ctrl-T") y soporte para la gama de computadoras HP 9000 , que se originó en el puerto "HPBSD" de la Universidad de Utah . [16]
En agosto de 2006, la revista InformationWeek calificó a 4.3BSD como el "mejor software jamás escrito". [17] Comentaron: "BSD 4.3 representa el mayor soporte teórico de Internet".
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. Por ejemplo, vi , que se había basado en la versión original de Unix de ed , se reescribió como nvi (nuevo vi). En dieciocho meses, se habían reemplazado todas las utilidades de AT&T y se determinó que solo 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 , también conocido como Network(ing) 2 o 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 Jolitz y el BSD/386 propietario (posteriormente 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 vio 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 abril de 1992 y dio lugar a una orden judicial que impedía 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 BSD en software libre durante casi dos años mientras su estatus legal estaba en tela de juicio, y como resultado, los sistemas basados en el núcleo Linux , que no tenían tal ambigüedad legal, ganaron mayor apoyo. Aunque no se lanzó hasta 1992, el desarrollo de 386BSD fue anterior al de Linux. Linus Torvalds ha dicho que si 386BSD o el núcleo GNU hubieran estado disponibles en ese momento, probablemente no habría creado Linux. [18] [19]
En agosto de 1992 se publicó la versión 4.4BSD-Alpha . En junio de 1993, se publicó la versión 4.4BSD-Encumbered sólo para licenciatarios de la USL.
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 tres tuvieron que ser eliminados y 70 modificados para mostrar los avisos de copyright de USL. Otra condición 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. Marshall Kirk McKusick resume la demanda y su resultado: [20]
Se alegó que se había copiado el código y robado secretos comerciales. El código infractor no se identificó hasta casi dos años después. La demanda podría haberse prolongado mucho más tiempo si no fuera por el hecho de que Novell compró USL a AT&T y buscó un acuerdo. Al final, se eliminaron tres archivos de los 18.000 que componían la distribución y se realizaron varios cambios menores en otros archivos. Además, la Universidad aceptó añadir los derechos de autor de USL a unos 70 archivos, con la condición de que esos archivos siguieran siendo redistribuidos libremente.
En marzo de 1994, se lanzó 4.4BSD-Lite , que ya no requería una licencia de fuente USL y también contenía muchos otros cambios con respecto a la versión original 4.4BSD-Encumbered.
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 ).
Además, la naturaleza permisiva de la licencia BSD ha permitido que muchos otros sistemas operativos, tanto libres como propietarios, incorporen código BSD. Por ejemplo, Microsoft Windows ha utilizado código derivado de BSD en su implementación de TCP/IP [21] y agrupa versiones recompiladas de las herramientas de red de línea de comandos de BSD desde Windows 2000. [ 22] También Darwin , el sistema en el que se basa macOS de Apple , es un derivado de 4.4BSD-Lite2 y FreeBSD. Varios sistemas operativos Unix comerciales, como Solaris , también contienen cantidades variables de código BSD.
BSD ha sido la base de un gran número de sistemas operativos. Los más notables entre ellos hoy en día son quizás los principales BSD de código abierto : FreeBSD, NetBSD y OpenBSD, que se derivan de 386BSD y 4.4BSD -Lite por diversas vías. Tanto NetBSD como FreeBSD comenzaron su vida en 1993, inicialmente derivados de 386BSD, pero en 1994 migraron a una base de código 4.4BSD-Lite. OpenBSD se bifurcó en 1995 de NetBSD. Varios sistemas operativos comerciales también se basan parcial o totalmente en BSD o sus descendientes, incluidos SunOS de Sun y macOS de Apple Inc.
La mayoría de los sistemas operativos BSD actuales son de código abierto y están disponibles para su descarga gratuita bajo la licencia BSD , siendo la excepción más notable macOS . Por lo general, también utilizan una arquitectura de núcleo monolítica , aparte de macOS y DragonFly BSD, que cuentan con núcleos híbridos . Los diversos proyectos BSD de código abierto generalmente desarrollan los programas y bibliotecas del núcleo y del espacio de usuario en conjunto, y el código fuente se administra mediante un único repositorio de código fuente central.
En el pasado, 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 ). Partes del software de NeXT se convirtieron en la base de macOS , una de las variantes de BSD con mayor éxito comercial en el mercado general.
Una selección de versiones importantes de Unix y sistemas operativos similares a Unix que descienden de BSD incluye:
Parece que no había una única imagen oficial de la versión 4.1BSD.
El soporte de hardware de Sun se agregó temporalmente a 4.1BSD y luego se eliminó antes del lanzamiento de 4.2BSD.