Ir al contenido

Berkeley Software Distribution

De Wikipedia, la enciclopedia libre
(Redirigido desde «BSD»)
BSD
Parte de Unix-like
Información general
Tipo de programa Unix
Desarrollador Computer Systems Research Group, Universidad de California en Berkeley
Modelo de desarrollo Originalmente software privativo; después software libre desde 1991.
Lanzamiento inicial 9 de marzo de 1978 (46 años, 9 meses y 12 días)
Licencia BSD
Estado actual Descontinuado
Idiomas Inglés
Información técnica
Programado en C
Núcleo Monolítico
Plataformas admitidas PDP-11, VAX, Intel 80386
Versiones
Última versión estable 4.4 BSD-Lite 2, Junio de 1995. ()
Serie Unix-like
Unix
BSD
BSD
NetBSD

OpenBSD

FreeBSD

DragonFly BSD

Enlaces

Berkeley Software Distribution, o Berkeley Standard Distribution (BSD), en español, Distribución de software Berkeley)[1]​ 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,[2]​ y Microsoft Windows, que usaba (al menos) parte de su código TCP/IP, que era legal.[3]​ El código de FreeBSD también se utilizó para crear el sistema operativo para la PlayStation 4[4]​ y Nintendo Switch.[5][6]

BSD también ha hecho grandes contribuciones en el campo de los sistemas operativos en general, como por ejemplo:

Historia

[editar]
Diagrama de los sistemas Unix y similares a Unix

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).[7]​ 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.[8]

La segunda distribución de software de Berkeley (2BSD), lanzada en mayo de 1979,[9]​ 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.[8]

El VAX-11/780, un miniordenador típico utilizado para los primeros sistemas de tiempo compartido BSD.

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.

Captura de pantalla de inicio de sesión de emulación VAX 4.3 BSD UWisc en blanco y negro
"4.3 BSD UNIX" de la Universidad de Wisconsin alrededor de 1987. Arranque e inicio de sesión del sistema.

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.[10]

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

[editar]

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[11]

Research Unix 8th Edition comenzó desde (creo) BSD 4.1c, pero con enormes cantidades extraídas y reemplazadas por nuestro propio material. Esto continuó con el 9 y el 10. El conjunto de comandos de usuario ordinario era, supongo, un poco más con sabor a BSD que SysVish, pero era bastante ecléctico.

Relación con UNIX System V

[editar]

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."[12]

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:[13]

La mayoría de los centros informáticos universitarios y gubernamentales que utilizan UNIX utilizan Berkeley UNIX, en lugar de System V. Esto se debe a varias razones, 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 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, mejor manejo de memoria virtual y una mayor variedad de lenguajes de programación.

Tecnología

[editar]

Sockets de Berkeley

[editar]
Captura de pantalla del manual de Emulación Lisp en Blanco y negro 4.3 de BSD UWisc VAX
BSD 4.3 de la Universidad de Wisconsin mostrando la página del manual para Franz Lisp
SunOS 4.1.1 P1270750 Cinta de 1/4 de pulgada
Cinta para SunOS 4.1.1, un derivado de 4.3BSD
estación de trabajo Sony NEWS que ejecuta el sistema operativo NEWS-OS basado en BSD

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.[14]​ Sin embargo, la escasez de memoria en el PDP-11 forzó un diseño complicado y problemas de rendimiento.[15]

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

[editar]

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

[editar]

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

[editar]
Captura de pantalla de la instalación de 386BSD Release 0.1

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..

Véase también

[editar]

Referencias

[editar]
  1. «Why you should use a BSD style license for your Open Source Project». The FreeBSD Project (en inglés). BSD (Berkeley Standard Distribution). Consultado el 3 de agosto de 2021. 
  2. «Apple Kernel Programming Guide: BSD Overview». Consultado el 27 de marzo de 2021. 
  3. «Actually, Windows DOES use some BSD code». Archivado desde el original el 25 de marzo de 2018. Consultado el 24 de marzo de 2018. 
  4. «Open Source Software used in PlayStation 4». Archivado desde el original el 12 de diciembre de 2017. Consultado el 3 de octubre de 2019. 
  5. «任天堂製品に関連するオープンソースソフトウェアのソースコード配布ページ|サポート情報|Nintendo». www.nintendo.co.jp. Archivado desde el original el 26 de julio de 2020. Consultado el 26 de julio de 2020. 
  6. Cao (8 de marzo de 2017). «Nintendo Switch runs FreeBSD». FreeBSDNews.com (en inglés estadounidense). Archivado desde el original el 26 de julio de 2020. Consultado el 26 de julio de 2020. 
  7. Salus (1994), p. 142
  8. a b Salus, Peter H. (2005). «Chapter 7. BSD and the CSRG». The Daemon, the Gnu and the Penguin. Groklaw. Archivado desde el original el 14 de junio de 2020. Consultado el 6 de septiembre de 2017. 
  9. Toomey, Warren. «Details of the PUPS archives». tuhs.org. The Unix Heritage Society. Archivado desde el original el 9 de julio de 2006. Consultado el 6 de octubre de 2010. 
  10. M.K. McKusick, M.J. Karels, Keith Sklower, Kevin Fall, Marc Teitelbaum and Keith Bostic (1989). Current Research by The Computer Systems Research Group of Berkeley. Proc. European Unix Users Group.
  11. Dennis Ritchie (26 de octubre de 2000). «alt.folklore.computers: BSD (Dennis Ritchie)». Archivado desde el original el 14 de julio de 2014. Consultado el 3 de julio de 2014. 
  12. Raymond, Eric S. The Art of Unix Programming. 2003. p. 38
  13. Curry, David. Using C on the UNIX System: A Guide to System Programming. 1989. pp. 2–3
  14. Chesson, G. L. (1976). «The network Unix system». ACM SIGOPS Operating Systems Review 9 (5): 60-66. doi:10.1145/1067629.806522. 
  15. Quarterman, John S.; Silberschatz, Abraham; Peterson, James L. (December 1985). «4.2BSD and 4.3BSD as examples of the Unix system». Computing Surveys 17 (4): 379-418. 

Bibliografía

[editar]
  • Samuel J. Leffler, Marshall K. McKusick, Michael J. Karels, John S. Quarterman, The Design and Implementation of the 4.3BSD UNIX Operating System (Addison Wesley, November, 1989; ISBN 978-0-201-06196-3)
  • Marshall K. McKusick, Keith Bostic, Michael J. Karels, John S. Quartermain, The Design and Implementation of the 4.4BSD Operating System (Addison Wesley, 1996; ISBN 978-0-201-54979-9)
  • Marshall K. McKusick, George V. Neville-Neil, The Design and Implementation of the FreeBSD Operating System (Addison Wesley, August 2, 2004; ISBN 978-0-201-70245-3)

Bibliografía adicional

[editar]

Enlaces externos

[editar]