Historia de la Berkeley Software Distribution
# Historia de la Berkeley Software Distribution

La Historía de la Berkeley Software Distribution (BSD) comienza en la década de 1970.

## 1BSD (PDP-11)

Las primeras distribuciones de Unix de los laboratorios Bell en los años 70 incluían el código fuente del sistema operativo, permitiendo a los desarrolladores de las universidades modificar y extender Unix.

El primer sistema Unix de Berkeley fue el PDP-11, que fue instalado en 1974, a pedido del profesor de ciencias de la computación Bob Fabry, quien había estado en el comité del programa del Simposio sobre Principios de Sistemas Operativos donde se presentó por primera vez Unix; y fue utilizado desde entonces por el departamento de ciencia computacional para sus investigaciones.

BSD 1 era un añadido a la 6a Versión de Unix, más que un sistema operativo completo estaba compuesto principalmente de un compilador Pascal y un editor de texto creado por el propio Joy llamado «ex».

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 solo funcionaba 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 al año siguiente, usando dinero del proyecto de base de datos Ingres.

También en 1975, Ken Thompson se tomó un año sabático de Bell Labs y vino a Berkeley como profesor invitado. 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.

Otras universidades se interesaron en el software de Berkeley, por lo que en 1977 Bill Joy, entonces un estudiante de grado en Berkeley, comenzó a compilar la primera distribución de software de Berkeley (1BSD), la que grabó y envió cintas del primer Berkeley Software Distribution (BSD), que se lanzó el 9 de marzo de 1978. 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..

## 2BSD (PDP-11)

La Second Berkeley Software Distribution (2BSD), fue lanzada en mayo de 1979,​ 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 la C shell. Bill Joy envió unas 75 copias de 2BSD.6​ Otra característica fue un paquete de red 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.

​Después de que salió 3BSD (ver más abajo) para la línea de computadoras VAX, todavía se emitieron y distribuyeron nuevas versiones de 2BSD para el PDP-11 a través de USENIX; por ejemplo, 2.8.1BSD de 1982 incluía una colección de correcciones para problemas de rendimiento en la UNIX Versión 7, y 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 distribución considerada como 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.​ En el siglo XXI, continuaron las actualizaciones de mantenimiento de los voluntarios: el parche 481 se lanzó el 28 de abril de 2023.

## 3BSD

Se instaló una computadora VAX en Berkeley en 1978, pero el port de Unix a la arquitectura VAX, UNIX/32V, no aprovechó las capacidades de memoria virtual de VAX. El kernel de 32V fue reescrito en gran medida por el estudiante graduado de Berkeley Özalp Babaoğlu para incluir una implementación de memoria virtual y un sistema operativo completo que incluye el nuevo kernel, los ports 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 núcleo BSD normalmente se llamaban /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 (CSRG) de Berkeley, que desarrollaría una plataforma Unix estándar para futuras investigaciones de DARPA en el Proyecto VLSI.

* La VAX-11/780, una minicomputadora típica utilizada para los primeros sistemas de tiempo compartido BSD.
* Interior de la VAX-11/780.

## 4BSD

4BSD (noviembre de 1980) ofreció una serie de mejoras sobre 3BSD, en particular el control de trabajos en csh lanzado anteriormente, en:delivermail (el antecedente de sendmail), una señal "confiable" y la biblioteca de programación Curses. En una revisión de 1985 de los lanzamientos de BSD, John Quarterman et al., escribió:

## 4.1BSD

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. Bill Joy afinó sistemáticamente el kernel 4.1BSD hasta que pudo funcionar tan bien como VMS en varios puntos de referencia. El lanzamiento se habría llamado 5BSD, pero después de las objeciones de AT&T, se cambió el nombre; AT&T temía confusión con UNIX System V de AT&T.

## 4.2BSD

4.2BSD (agosto de 1983) tardaría más de dos años en implementarse y contenía varias revisiones importantes. Antes de su lanzamiento oficial, surgieron tres versiones intermedias:

* 4.1a de abril de 1982, que incorporó una versión modificada de la implementación preliminar de TCP/IP de BBN.
* 4.1b de junio de 1982 incluía el nuevo Berkeley Fast File System, implementado por Marshall Kirk McKusick.
* 4.1c en abril de 1983 fue una versión provisional durante los últimos meses del desarrollo de 4.2BSD.

De vuelta en Bell Labs, 4.1cBSD se convirtió en la base de la 8a Edición de Research Unix, y mt Xinu disponía de una versión con soporte comercial.

Para guiar el diseño de 4.2BSD, Duane Adams de DARPA formó un "comité directivo" compuesto por:

* Bob Fabry, Bill Joy y Sam Leffler de UCB;
* Alan Nemeth y en:Rob Gurwitz de BBN;
* Dennis Ritchie de Bell Labs;
* Keith Lantz de Stanford;
* Rick Rashid de Carnegie Mellon;
* Bert Halstead de MIT;
* en:Dan LynchDan Lynch de ISI
* Gerald J. Popek de UCLA.

El comité se reunió desde abril de 1981 hasta junio de 1983.

Además del sistema de archivos rápido, se aceptaron varias funciones de colaboradores externos, incluidas las cuotas de disco y el control de trabajos. Sun Microsystems proporcionó pruebas en sus máquinas Motorola 68000 antes del lanzamiento, lo que garantiza la portabilidad del sistema.

El lanzamiento oficial de 4.2BSD se produjo en agosto de 1983. Fue notable como la primera versión lanzada 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 una nota más ligera, también marcó el debut de la mascota daemon de BSD en un dibujo de John Lasseter que apareció en la portada de los manuales impresos distribuidos por USENIX.

## 4.3BSD

4.3BSD se lanzó en junio de 1986. Sus principales cambios fueron mejorar el rendimiento de muchas de las nuevas contribuciones de 4.2BSD que no habían sido tan ajustadas como el código 4.1BSD. Antes del lanzamiento, la implementación de TCP/IP de BSD se había desviado 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 4.3BSD. (Véase también Historia de Internet).

Después de 4.3BSD, se determinó que BSD se alejaría de la antigua plataforma VAX. La plataforma Power 6/32 (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, el port de 4.3BSD-Tahoe (junio de 1988) resultó valioso, ya que condujo a una separación del código independiente y dependiente de la máquina en BSD, lo que mejoraría la futura portabilidad 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.

### 4.3BSD Net/1

Hasta entonces, todas las versiones de BSD incorporaban el código propietario de AT&T Unix y, por lo tanto, estaban sujetas a una licencia de software de AT&T. Las licencias del 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 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 redistribuyó libremente según los términos de la licencia BSD. Fue lanzado en junio de 1989.

### 4.3BSD-Reno

4.3BSD-Reno llegó a principios de 1990. Fue un lanzamiento provisional durante el desarrollo inicial de 4.4BSD, y su uso se consideró una "apuesta", de ahí el nombre del centro de juego de Reno, Nevada. Esta versión avanzó explícitamente hacia el cumplimiento de POSIX.​ Entre las nuevas características fueron 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, originadas en el puerto "HPBSD" de la Universidad de Utah.

En agosto de 2006, la revista InformationWeek calificó a 4.3BSD como el "mejor software jamás escrito"., comentaron:

* Captura de pantalla del inicio del sistema e inicio de sesión del emulación en 4.3 BSD UNIX de la Universidad de Wisconsin alrededor de 1987.
* Captura de pantalla de LS de emulación VAX UWisc, navegando en "/usr/ucb" y "/usr/games", en 4.3 BSD UNIX de la Universidad de Wisconsin.

### 4.3BSD-Net/2

Después de Net/1, el desarrollador de BSD, Keith Bostic, propuso que se lanzaran 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. Por ejemplo, vi, que se había basado en la versión Unix original de ed, se reescribió como nvi (nuevo vi). En dieciocho meses, se reemplazaron todas las utilidades de AT&T y se determinó que solo quedaban unos pocos archivos de AT&T en el kernel. 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 distribuía libremente.

Net/2 fue la base para dos ports separados de BSD a la arquitectura Intel 80386: el 386BSD gratuito/libre de William Jolitz y el propietario BSD/386 (más tarde rebautizado como BSD/OS) de Berkeley Software Design (BSDi). 386BSD en sí tuvo una vida corta, pero se convirtió en el código base inicial de los proyectos NetBSD y FreeBSD que se iniciaron poco después.

**Problemas legales**

Después de eso, BSDi pronto se encontró en problemas legales con la subsidiaria Unix System Laboratories (USL) de AT&T, entonces los propietarios de los derechos de autor de System V y la marca Unix. La demanda USL contra BSDi se presentó en abril de 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 la fuente.

La demanda ralentizó el desarrollo de los descendientes de software libre de BSD durante casi dos años mientras su estado legal estaba en duda y, como resultado, los sistemas basados ​​en el kernel Linux, que no tenían tanta ambigüedad legal, obtuvieron un 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 GNU kernel hubieran estado disponibles en ese momento, probablemente no habría creado Linux.

* Captura de pantalla del instalador de 386BSD. 386BSD fue uno de los primeros port de BSD en la arquitectura Intel 80386.

## 4.4BSD

    Véase también: Anexo:Lista de productos basados en FreeBSD
* En agosto de 1992, se lanzó 4.4BSD-Alpha.
* En junio de 1993, 4.4BSD-Encumbered se lanzó solo para los licenciatarios de Unix System Laboratories (USL).

La demanda se resolvió en enero de 1994, en gran parte a favor de Berkeley. De los 18.000 archivos en la distribución de Berkeley, solo tres tuvieron que ser eliminados y 70 modificados para mostrar avisos de derechos de autor de la 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 el próximo lanzamiento de 4.4BSD. Marshall Kirk McKusick resume la demanda y su resultado:

* En marzo de 1994, se lanzó 4.4BSD-Lite que ya no requiere una licencia de fuente USL y también contenía muchos otros cambios sobre la versión original 4.4BSD-Encumbered.
* El lanzamiento final de Berkeley fue 4.4BSD-Lite Release 2 de 1995, después de lo cual se disolvió el Computer Systems Research Group (CSRG) y cesó el desarrollo de BSD en Berkeley.

### Descendientes

Desde la disolución del CSRG y el cese de desarrollo de BSD, 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 gratuitos como propietarios, incorporen código BSD. Por ejemplo, Microsoft Windows ha utilizado código derivado de BSD en su implementación de TCP/IP y paquetes de versiones recompiladas de las herramientas de red de línea de comandos de BSD desde Windows 2000. 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.

