stringtranslate.com

Historia de la distribución de software de Berkeley

La historia de la distribución de software de Berkeley comienza en la década de 1970.

1BSD (PDP-11)

Las primeras distribuciones de Unix de los Laboratorios Bell 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ó por primera vez Unix. 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 sólo funcionaba en la máquina ocho horas al día (a veces durante el día, a veces durante la noche). Al año siguiente se instaló un PDP-11/70 más grande en Berkeley, utilizando dinero del proyecto de base de datos Ingres . [1]

También en 1975, Ken Thompson se tomó un año sabático en los Laboratorios Bell y vino 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 Pascal de Thompson e implementaron un editor de texto mejorado, ex . [1] Otras universidades se interesaron en el software de Berkeley, por lo que en 1977 Joy comenzó a compilar la primera distribución de software de Berkeley (1BSD), que se lanzó el 9 de marzo de 1978. [2] 1BSD era un complemento de la versión 6 Unix en lugar de un sistema operativo completo por derecho propio. Se enviaron unas treinta copias. [1]

2BSD (PDP-11)

La Segunda Distribución de Software de Berkeley (2BSD), lanzada en mayo de 1979, [3] 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 el shell C . Bill Joy envió unas 75 copias de 2BSD. [1] Otra característica era 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. [4]

Después de que 3BSD (ver más abajo) salió 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 Versión 7 de Unix , [5] y las versiones posteriores contenían puertos de cambios desde 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] En el siglo XXI, las actualizaciones de mantenimiento realizadas por voluntarios continuaron: el parche n.° 481 se lanzó el 28 de abril de 2023. [7]

3BSD

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

Se instaló una computadora VAX en Berkeley en 1978, pero la adaptación de Unix a la arquitectura VAX, UNIX/32V , no aprovechó las capacidades de memoria virtual del 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, puertos 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 kernel BSD normalmente se llamaban /vmunixhasta 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 .

4BSD

4BSD (noviembre de 1980) ofreció una serie de mejoras sobre 3BSD, en particular el control de trabajos en el csh lanzado anteriormente , deliverymail (el antecedente de sendmail ), señales "confiables" y la biblioteca de programación Curses . En una revisión de 1985 de las versiones de BSD, 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 comprarían una licencia de 32 V y pedirían 4BSD a Berkeley sin siquiera molestarse en conseguir una cinta de 32 V. Muchas instalaciones dentro del Bell System ejecutaron 4.1BSD (muchas todavía lo hacen y muchas otras ejecutan 4.2BSD).

4.1BSD

4.1BSD (junio de 1981) fue una respuesta a las críticas al desempeño de BSD en relación con el sistema operativo VAX dominante, VMS . Bill Joy ajustó sistemáticamente el kernel 4.1BSD hasta que pudiera 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 el UNIX System V de AT&T . [9] Han aparecido varias cintas, todas con una etiqueta que dice 4.1BSD, pero existen diferencias entre las cintas. [10] El desarrollo de software que llevaría de 4.1BSD a 4.2BSD fue financiado por fuentes como ARPA, número de pedido 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]

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 llegaron tres versiones intermedias: 4.1a de abril de 1982 [13] incorporó una versión modificada de la implementación TCP/IP preliminar de BBN ; 4.1b de junio de 1982 incluía el nuevo Berkeley Fast File System , implementado por Marshall Kirk McKusick ; y 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 octava edición de Research Unix , y una versión comercialmente compatible 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 del MIT , Dan Lynch del ISI y Gerald J. Popek de UCLA . El comité se reunió desde abril de 1981 hasta junio de 1983.

Además del Fast File System, se aceptaron varias funciones de contribuyentes externos, incluidas cuotas de disco y control de trabajos. Sun Microsystems realizó pruebas en sus máquinas Motorola 68000 antes del lanzamiento, mejorando la portabilidad del sistema. [8] La compatibilidad con el hardware de Sun es claramente visible en los artefactos BSD 4.1c en CSRG ISO. [14]

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 demonio de BSD en un dibujo de John Lasseter que apareció en la portada de los manuales impresos distribuidos por USENIX .

4.3BSD

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. Inicio e inicio de sesión del sistema.
Captura de pantalla de emulación LS 4.3 BSD UWisc VAX en blanco y negro
4.3 BSD de la Universidad de Wisconsin . Navegando por "/usr/ucb" y "/usr/games"

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 por parte de BSD había divergido 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. (Ver 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 (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 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 en el sistema de memoria virtual del kernel 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 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 Networking Release 1 ( Net/1 ), que se puso a disposición de quienes no tenían licencia del código de AT&T y se podía redistribuir libremente según los términos de la licencia BSD . Fue lanzado 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 consideraba una "apuesta", de ahí el nombre del centro de juego de Reno, Nevada . Esta versión avanzó explícitamente hacia el cumplimiento de POSIX . [15] Entre las nuevas características se encuentran una implementación NFS de la Universidad de Guelph , una clave de estado ("Ctrl-T") y soporte para la gama de computadoras HP 9000 , originada en el puerto "HPBSD" de la Universidad de Utah . [dieciséis]

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 fundamento teórico de Internet".

Net/2 y problemas legales

Captura de pantalla del instalador 386BSD en blanco y negro
Instalación de 386BSD . 386BSD fue una de las primeras versiones de BSD para la arquitectura Intel 80386 .

Después de Net/1, el desarrollador de BSD Keith Bostic propuso que se publicaran 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 original de Unix de ed , fue reescrito como nvi (nuevo vi). Al cabo de dieciocho meses, todas las utilidades de AT&T habían sido reemplazadas y se determinó que sólo 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 gratuito de William Jolitz y el BSD/386 propietario (posteriormente rebautizado como BSD/OS) de Berkeley Software Design (BSDi). 386BSD en sí duró poco, pero se convirtió en la base del código inicial de los proyectos NetBSD y FreeBSD que se iniciaron poco después.

BSDi pronto se encontró en problemas legales con la subsidiaria Unix System Laboratories (USL) de AT&T, entonces propietarios de los derechos de autor System V y la marca registrada Unix. La demanda USL contra BSDi se presentó en abril de 1992 y dio lugar a una orden judicial sobre la distribución de Net/2 hasta que se pudiera determinar la validez de los derechos de autor de USL sobre la fuente.

La demanda ralentizó el desarrollo de los descendientes de BSD durante casi dos años mientras su estatus legal estaba en duda, y como resultado los sistemas basados ​​en el kernel de Linux , que no tenían tal ambigüedad legal, obtuvieron un mayor apoyo. Aunque no se lanzó hasta 1992, el desarrollo de 386BSD es anterior al de Linux. Linus Torvalds ha dicho que si 386BSD o el kernel GNU hubieran estado disponibles en ese momento, probablemente no habría creado Linux. [18] [19]

4.4BSD y descendientes

Un diagrama de flujo simple que muestra la historia y la línea de tiempo del desarrollo de Unix comenzando con una burbuja en la parte superior y 13 afluentes en la parte inferior del flujo.
Evolución simplificada de los sistemas Unix.

En agosto de 1992, se lanzó 4.4BSD-Alpha . En junio de 1993, 4.4BSD-Encumbered se lanzó sólo para licenciatarios de 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 hubo que eliminar tres y modificar 70 para mostrar avisos de copyright de la USL. Otra condición del acuerdo fue que USL no presentaría más demandas contra 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ó copia de códigos y robo de secretos comerciales. El código infractor real no fue identificado durante casi dos años. La demanda podría haberse prolongado mucho más 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 una serie de cambios menores en otros archivos. Además, la Universidad acordó agregar derechos de autor de la USL a unos 70 archivos, con la estipulación de que esos archivos continuarían redistribuyéndose 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 versión final de Berkeley fue 4.4BSD-Lite Release 2 de 1995 , después de lo cual el CSRG se disolvió 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] Además , Darwin , el sistema en el que se construye macOS de Apple , es un derivado de 4.4BSD-Lite2 y FreeBSD. Varios sistemas operativos comerciales Unix, como Solaris , también contienen cantidades variables de código BSD.

Descendientes importantes de BSD

Gráfico de barras coloreadas del uso de distribuciones BSD
Gráfico de barras que muestra la proporción de usuarios de cada variante de BSD de una encuesta de uso de BSD realizada en 2005. [23] [ necesita actualización ] A cada participante se le permitió indicar múltiples variantes de BSD

BSD ha sido la base de una gran cantidad de sistemas operativos. Los más notables hoy en día son quizás los principales BSD de código abierto : FreeBSD, NetBSD y OpenBSD, todos ellos derivados de 386BSD y 4.4BSD -Lite por varias rutas. 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 a partir 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, de forma gratuita, bajo la licencia BSD , siendo la excepción más notable macOS . También suelen utilizar 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 kernel y del 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 de 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:

Ver también

Referencias

  1. ^ abcd Salus, Peter H. (2005). "Capítulo 7. BSD y CSRG". El Demonio, el Gnu y el Pingüino. Groklaw .
  2. ^ Salus, Peter H. (1 de junio de 1994). Un cuarto de siglo de UNIX . Addison Wesley . pag. 142.ISBN _ 978-0-201-54777-1.
  3. ^ Toomey, Warren. "Detalles de los archivos de PUPS". tuhs.org . La sociedad del patrimonio de Unix . Consultado el 6 de octubre de 2010 .
  4. ^ Shacklette, Mark (2004). "Sistema operativo Unix". La enciclopedia de Internet . Wiley. pag. 497.ISBN _ 9780471222019.
  5. ^ Salus, Peter H. (2005). "Capítulo 6. 1979". El Demonio, el Gnu y el Pingüino. Groklaw .
  6. ^ "Internet, Unix, BSD y Linux".
  7. ^ "Índice de /Archive/Distributions/UCB/2.11BSD/Patches".
  8. ^ ab Quarterman, John S.; Silberschatz, Abraham; Peterson, James L. (diciembre de 1985). "4.2BSD y 4.3BSD como ejemplos del sistema Unix". Encuestas Informáticas . 17 (4): 379–418. CiteSeerX 10.1.1.117.9743 . doi :10.1145/6041.6043. S2CID  5700897. 
  9. ^ McKusick, Marshall Kirk (enero de 1999). "Veinte años de Berkeley Unix: de propiedad de AT&T a libremente redistribuible". En DiBona, Chris; Ockman, Sam; Piedra, Mark (eds.). Fuentes abiertas: Voces de la revolución (primera ed.). O'Reilly. ISBN 978-1-56592-582-3.
  10. ^ Haertel, Mike (sin fecha). "Esta es una reconstrucción de la versión 4.1BSD del 1 de septiembre de 1981". La sociedad del patrimonio de Unix . Parece que no había una sola imagen oficial de la cinta de lanzamiento de 4.1BSD.
  11. ^ Fabry, Robert S. (1980). «Propuesta de Control de Configuración para la Versión Estándar ARPA del Sistema Operativo UNIX» (PDF) . Centro de Información Técnica de Defensa . Departamento de Defensa de EE. UU . Consultado el 12 de julio de 2023 .
  12. ^ Fabry, Robert S.; Lentejuela, Carlo H. (1983). "Informe técnico AD-A142 177". Centro de Información Técnica de Defensa . Departamento de Defensa de EE. UU . Consultado el 12 de julio de 2023 .
  13. ^ "Fuentes abiertas: voces de la revolución del código abierto". 29 de marzo de 1999.
  14. ^ Mason, Amberelle (20 de junio de 2023). "Explore el código fuente BSD 4.1c.1 usando Git". GitHub . Consultado el 18 de julio de 2023 . El soporte de hardware de Sun se agregó temporalmente a 4.1BSD y luego se eliminó antes de que se lanzara 4.2BSD.
  15. ^ ab McKusick, MK ; Karels, MJ ; Sklower, Keith; Caída, Kevin; Teitelbaum, Marc; Bostic, Keith (1989). "Investigación actual realizada por el Grupo de Investigación de Sistemas Informáticos de Berkeley" (PDF) . Proc. Grupo europeo de usuarios de Unix .
  16. ^ Hibler, Mike (julio de 1999). "HPBSD: puerto 4.3bsd de Utah para máquinas de la serie HP9000" . Consultado el 10 de febrero de 2014 .
  17. ^ Babcock, Charles (14 de agosto de 2006). "¿Cuál es el mejor software jamás escrito?". Semana de la Información . Archivado desde el original el 21 de octubre de 2012 . Consultado el 20 de enero de 2009 .
  18. ^ Linksvayer, Mike (1993). "La elección de una generación GNU: una entrevista con Linus Torvalds". Revista Meta . Consultado el 20 de enero de 2009 .
  19. ^ L. Torvalds (29 de enero de 1992). "Re: LINUX está obsoleto". Grupo de noticias : comp.os.minix. Usenet:  [email protected] . Consultado el 11 de mayo de 2006 .
  20. ^ Eric S. Raymond. "El arte de la programación Unix: orígenes e historia de Unix, 1969-1995" . Consultado el 18 de julio de 2014 .
  21. ^ Barr, Adam (19 de junio de 2001). "Microsoft, TCP/IP, código abierto y licencias". Archivado desde el original el 14 de noviembre de 2005.
  22. ^ "Código BSD en Windows". todo2.com . 20 de marzo de 2001 . Consultado el 20 de enero de 2009 .
  23. ^ "Encuesta sobre el uso de BSD" (PDF) . Grupo de Certificación BSD. 31 de octubre de 2005. Archivado desde el original (PDF) el 18 de enero de 2012 . Consultado el 20 de enero de 2009 .
  24. ^ "Guía de implementación del dispositivo Netflix Open Connect" (PDF) . 29 de mayo de 2012.

enlaces externos