# Berkeley Software Distribution

Berkeley Software Distribution, o Berkeley Standard Distribution (BSD), en español, Distribución de software Berkeley) fue un sistema operativo derivado de Unix que nace a partir de los aportes realizados a ese sistema por la Universidad de California en Berkeley.
En los primeros años del sistema Unix sus creadores, los Laboratorios Bell de la compañía AT&T, autorizaron a la Universidad de California en Berkeley y a otras universidades, a utilizar el código fuente y adaptarlo a sus necesidades. Durante los años 1970 y 1980 Berkeley utilizó el sistema para sus investigaciones en materia de sistemas operativos. Cuando AT&T retiró el permiso de uso a la universidad por motivos comerciales, la universidad promovió la creación de una versión inspirada en el sistema Unix utilizando los aportes que ellos habían realizado, permitiendo luego su distribución con fines académicos y al cabo de algún tiempo reduciendo al mínimo las restricciones referente a su copia, distribución o modificación.
BSD inicialmente se llamó Berkeley Unix porque estaba basado 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 patentadas de Unix como DEC Ultrix y SunOS de Sun Microsystems, debido a su concesión de licencias permisivas y familiaridad con muchos fundadores e ingenieros de empresas de tecnología.
Aunque estos derivados de BSD patentados fueron reemplazados en gran medida en la década de 1990 por UNIX SVR4 y OSF/1, las versiones posteriores proporcionaron la base para varios sistemas operativos de código abierto, incluidos SunOS, FreeBSD, NetBSD, OpenBSD, DragonFly BSD, Darwin y TrueOS. Estos, a su vez, han sido utilizados por sistemas operativos propietarios, incluidos los macOS y iOS de Apple, que se derivaron de ellos, y Microsoft Windows, que usaba (al menos) parte de su código TCP/IP, que era legal. El código de FreeBSD también se utilizó para crear el sistema operativo para la PlayStation 4 y Nintendo Switch.
BSD también ha hecho grandes contribuciones en el campo de los sistemas operativos en general, como por ejemplo:
* El manejo de memoria virtual paginado por demanda.
* El control de trabajos.
* El Fast FileSystem.
* El protocolo de sockets TCP/IP que forman la base del Internet (casi todas las implementaciones de TCP derivan de la 4.4 BSD-Lite).

## Historia

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, y fue utilizado desde entonces por el departamento de ciencia computacional para sus investigaciones. Otras universidades empezaron a interesarse en el software de Berkeley, y por ello en 1977 Bill Joy, entonces un estudiante de grado en Berkeley, grabó y envió cintas del primer Berkeley Software Distribution (BSD). 1BSD era un complemento de la versión 6 de Unix en lugar de un sistema operativo completo por derecho propio. Se vendieron unas treinta copias.
La segunda distribución de software de Berkeley (2BSD), lanzada en mayo de 1979, incluyó 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 C shell. Bill Joy vendió unas 75 copias de 2BSD.
Se instaló un ordenador VAX en Berkeley en 1978, pero la portació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 para VAX y las utilidades de 32V se lanzaron como 3BSD a finales de 1979. 3BSD también se llamaba alternativamente Virtual VAX/UNIX o VMUNIX (para Memoria Virtual 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 fue abandonada por sus desarrolladores 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 al sistema de memoria virtual del kernel y (con Van Jacobson del LBL) nuevos algoritmos TCP/IP para adaptarse al crecimiento de Internet.
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 la Networking Release 1 (Net/1), que se puso a disposición de quienes no tenían licencia del código de AT&T y era libremente redistribuible según los términos de la licencia BSD. Fue lanzado en junio de 1989.

## Relación con Research Unix

A partir de la 8a Edición de Unix, 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 la Version 8 Unix. Esto continuó en versiones posteriores, como la Version 9 Unix, 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 de Usenet de 2000, Dennis Ritchie describió esta relación entre BSD y Research Unix

## Relación con UNIX System V

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 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."
En 1989, David A. Curry escribió sobre las diferencias entre BSD y System V. Caracterizó a 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 funciones y rendimiento avanzados:

## Tecnología
### Sockets de Berkeley

El Unix de Berkeley fue el primer Unix en incluir bibliotecas compatibles con la arquitectura de Internet Protocol: Berkeley sockets. Una implementación de Unix del predecesor de IP, el NCP de ARPAnet, con clientes FTP y Telnet fue producido en la Universidad de Illinois en 1975, y estaba disponible en Berkeley. Sin embargo, la escasez de memoria en el PDP-11 forzó un diseño complicado y problemas de rendimiento.
Al integrar 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 incorporó 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 usaron para formar SunOS de Sun Microsystems, fundando la primera ola de estaciones de trabajo Unix populares.

### Compatibilidad binaria

Algunos sistemas operativos BSD pueden ejecutar software nativo de varios otros sistemas operativos en la misma arquitectura informática, utilizando una capa de compatibilidad binaria. Esto es mucho más simple y rápido que emular; por ejemplo, permite que las aplicaciones diseñadas para Linux se ejecuten efectivamente a toda 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 admitido 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.

### Estándares

Las variantes actuales del sistema operativo BSD son compatibles con muchos de los estándares de IEEE, ANSI, ISO y POSIX, manteniendo la mayor parte del comportamiento tradicional de BSD. Al igual que UNIX System V, 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.

## Descendientes de BSD

Varios sistemas operativos se basan 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 FreeBSD en 2003. BSD también se usó como base para varias versiones propietarias de Unix, como Sun OS 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 para macOS de Apple Inc..