Berkeley Software Distribution
BSD | |||||
---|---|---|---|---|---|
Parte de Unix-like | |||||
Información general | |||||
Tipo de programa | Unix | ||||
Desarrollador | Computer Systems Research Group, University of California, Berkeley | ||||
Modelo de desarrollo | Históricamente software privativo; transición a software libre desde 1991. | ||||
Lanzamiento inicial | 1977; hace 41 años. | ||||
Licencia | BSD | ||||
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/1995 hace 26 años. () | ||||
Serie Unix-like | |||||
| |||||
Enlaces | |||||
Berkeley Software Distribution o 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 Berkeley en California 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.
Algunos sistemas operativos descendientes del sistema desarrollado por Berkeley son SunOS, FreeBSD, NetBSD y OpenBSD. 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:
- 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
Los comienzos con 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, 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).
BSD 1 era un añadido a la sexta edición 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».
BSD 2 fue lanzada en 1978, incluía versiones actualizadas de BSD 1 y además dos nuevos programas creados por Joy que perduran en los sistemas Unix hasta hoy día. El editor de textos vi y el shell de C. Las siguientes versiones de BSD 2 contenían adaptaciones de las distribuciones de BSD basadas en la arquitectura VAX, para hacerlos compatibles con la arquitectura PDP-11.
BSD 2.9 desde 1983 incluye código de BDS 4.1c y fue la primera distribución considerada como un sistema operativo completo (Una modificación de Unix 7). La distribución más reciente, la BSD 2.11 fue lanzada en 1992, y con la ayuda de voluntarios continuó actualizándose hasta 2003.
BSD 4
Lanzado en noviembre de 1980, ofrecía muchas mejoras sobre el BSD 3, incluyendo sobre todo en el trabajo de control de la anterior versión del csh, delivermail (el presente de sendmail), señales “confiables”, y la biblioteca de programación Curses.
BSD 4.1, lanzado en junio de 1981, fue la respuesta a las críticas hacia BSD en comparación con el sistema operativo dominante para la arquitectura VAX, el VMS. BSD 4.1 fue mejorado por Bill Joy hasta que consiguió las mismas prestaciones que el VMS. La distribución iba a llamarse en un principio BSD 5, pero fue cambiado para evitar posibles confusiones con el lanzamiento del Unix System V de AT&T.
BSD 4.2 llevó dos años para su implementación, y contenía grandes mejoras. Antes de su lanzamiento oficial aparecieron tres versiones intermedias 4.1a incorporó una versión modificada de la puesta en práctica preliminar del TCP/IP de BBN. 4.1b incluyó el nuevo Berkeley Fast File System, implementado por Marshall Kira McKusick, y la 4.1c era una versión a nivel interno que se utilizó durante los últimos meses del desarrollo del BSD 4.2. La distribución oficial de BSD 4.2 se lanzó en agosto de 1983. Fue la primera distribución de BSD desde que Bill Joy se fuera y cofundara Sun Microsystems. Mike Karels y Marshall Kira MacKusick tomaron el control del proyecto desde ese momento. En una nota, se remarca el debut del demonio y mascota de BSD, mediante dibujo hecho por McKusick que aparecía en las portadas de los manuales impresos distribuidos por USENIX.
BSD4.3 fue lanzado en junio de 1986. Sus principales cambios eran la mejora de muchas de las nuevas contribuciones hechas por BSD 4.2 que no fueron mejoradas como lo fue el código del BSD4.3. Antes de su lanzamiento, la implementación TCP/IP que contenía BSD divergía considerablemente de la oficial realizada por BBN. Es por ello que después de muchas pruebas realizadas por DARPA, este concluyó que la versión incluida en BSD 4.2 era superior a la nueva, y que por ello debería mantenerse en la nueva distribución. Después de la versión 4.3, se determinó que las futuras versiones deberían ser construidas basándose en otra arquitectura diferente de la ya entonces vieja VAX. En aquel momento, Power 6/32, desarrollada por Computer Consoles Inc, parecía una plataforma con más futuro, aunque fue abandonada por sus desarrolladores al poco tiempo. No obstante, la adaptación a esta plataforma realizada por BSD, el BSD 4.3-Tahoe probó la valía de la separación entre el código dependiente de la máquina y el código independiente, lo que permitía una futura portabilidad.
Hasta este momento, todas las versiones de BSD había incorporado código propietario de AT&T, lo que requería licencias para su uso. Estas comenzaron a ser muy caras, por lo que muchas entidades externas expresaron su interés en una distribución separada del código de red propietario desarrollado por AT&T, para que no estuviera sujeto al pago de esas licencias. Esto se consiguió con Network Tape 1 (Net/1), lanzada en 1989 y creada sin código propietario de AT&T que fue libremente distribuida sobre los términos de la permisiva licencia BSD.
BSD 4.3-Reno se lanzó en 1990. Era una versión para uso interno utilizada durante la construcción de BSD 4.4. Esta distribución se movía claramente hacia la compatibilidad con POSIX, y, según algunos, lejos de la filosofía de BSD, ya que POSIX se basa en el sistema V.
Net/2 y problemas legales
Después de Net/1, Keith Bostic propuso que más secciones de BSD no relacionadas con AT&T fueran lanzadas con la misma licencia de Net/1. Con esta intención empezó un proyecto que tenía como fin implementar muchas de las utilidades estándar de Unix sin código de AT&T. En un plazo de 18 meses, todas la utilidades propietarias de AT&T fueron reemplazadas, y tan solo quedaron unos pocos archivos privativos en el kernel. Estos ficheros fueron finalmente eliminados, dando lugar a Net/2, prácticamente un sistema operativo completo y además, libremente distribuible.
Net/2 fue la base para dos adaptaciones independientes de BSD para la arquitectura 80386 de Intel, el 386BSD de William Jolliz y el propietario BSD/386 (renombrado posteriormente como BSD/OS) de Berkeley Software Design (BSDi). 386BSD tuvo poca vida, pero fue el punto de partida de FreeBSD y NetBSD.
BSDi tuvo al poco tiempo un problema legal con AT&T, propietarios de los derechos de System V y la marca Unix. El pleito fue archivado en 1992, bajo la prescripción de no distribuir Net/2 hasta que la validez de las demandas pudiera ser determinada.
El pleito ralentizó el desarrollo de los descendientes libres de BSD durante cerca de dos años, durante los cuales su estatus legal estuvo en cuestión, y, posiblemente a causa de esto, otros sistemas basados en Unix adquirieron mayor relevancia. Linux y 386BSD empezaron su desarrollo al mismo tiempo, e incluso Linus Torvalds dijo que si hubiera habido un sistema operativo basado en Unix libre para la arquitectura 386, probablemente no habría creado Linux. Aunque es debatible qué efecto habría tenido en el campo del software, es seguro que habría sido sustancial.
BSD 4.4 y descendientes
El pleito finalizó en enero de 1994 a favor de Berkeley. De los 18000 archivos que contenía la distribución, tan solo tres fueron eliminados y 70 modificados para que mostraran los derechos propietarios de AT&T.
En junio de 1994 se lanzó BSD 4.4 con dos versiones: una libremente distribuible llamada BSD 4.4-Lite, sin código propietario, y la BSD 4.4-Encumbered, solamente para los concesionarios de AT&T.
La última distribución creada por Berkeley fue el BSD 4.4-Lite Release 2, lanzado en 1995, después de que el CSRG fuera disuelto y el desarrollo de BSD en Berkeley fuera cesado. Desde entonces han aparecido muchas distribuciones basadas en BSD 4.4, tales como FreeBSD, OpenBSD y NetBSD
Además, la licencia permisiva de BSD ha permitido que otros sistemas operativos, tanto libres como propietarios incorporaran código BSD. Por ejemplo, Microsoft Windows ha utilizado código derivado de BSD en su implementación de TCP/IP, y utiliza versiones recompiladas de la línea de comandos BSD para las herramientas de redes. También Darwin, el sistema experimental sobre el cual se construye Mac OS X, está derivado en parte de FreeBSD 5 y del núcleo Mach. Otros sistemas basados en Unix comerciales como Solaris también utilizan código BSD.
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.[7][8] Sin embargo, la escasez de memoria en el PDP-11 forzó un diseño complicado y problemas de rendimiento.[9]
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 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.
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..
Referencias
- ↑ «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.
- ↑ «Apple Kernel Programming Guide: BSD Overview». Consultado el 27 de marzo de 2021.
- ↑ «Actually, Windows DOES use some BSD code». Archivado desde el original el 25 de marzo de 2018. Consultado el 24 de marzo de 2018.
- ↑ «Open Source Software used in PlayStation 4». Archivado desde el original el 12 de diciembre de 2017. Consultado el 3 de octubre de 2019.
- ↑ «任天堂製品に関連するオープンソースソフトウェアのソースコード配布ページ|サポート情報|Nintendo». www.nintendo.co.jp. Archivado desde el original el 26 de julio de 2020. Consultado el 26 de julio de 2020.
- ↑ 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.
- ↑ Chesson, G. L. (1976). «The network Unix system». ACM SIGOPS Operating Systems Review 9 (5): 60-66. doi:10.1145/1067629.806522.
- ↑ RFC 681
- ↑ 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. S2CID 5700897. doi:10.1145/6041.6043. Parámetro desconocido
|citeseerx=
ignorado (ayuda)
Bibliografía
- 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
- McKusick, Marshall Kirk (January 1999). «Twenty Years of Berkeley Unix – From AT&T-Owned to Freely Redistributable». En DiBona, Chris; Ockman, Sam; Stone, Mark, eds. Open Sources: Voices from the Revolution (en inglés) (first edición). O'Reilly. ISBN 978-1-56592-582-3.
- Peter H. Salus, The Daemon, the GNU & The Penguin (Reed Media Services, September 1, 2008; ISBN 978-0-9790342-3-7) (en inglés)
- Peter H. Salus, A Quarter Century of UNIX (Addison Wesley, June 1, 1994; ISBN 978-0-201-54777-1) (en inglés)
- Peter H. Salus, Casting the Net (Addison-Wesley, March 1995; ISBN 978-0-201-87674-1) (en inglés)
Véase también
- Portal:Software libre. Contenido relacionado con Software libre.
- Licencia BSD
- BSD
- NeXTStep
- FreeBSD
- NetBSD
- OpenBSD
- DragonFlyBSD
Enlaces externos
- TUHS, The UNIX Heritage Society contiene documentación y el código fuente de numerosas versiones antiguas de UNIX (tanto de ATT como BSD y variantes).
- FreeBSD en español
- Wikimedia Commons alberga una categoría multimedia sobre Berkeley Software Distribution.