Resumen

  • En 1996, Duane Wessels bifurcó la última versión precomercial de Harvest Cache Daemon, dio a la rama independiente el nombre Squid y publicó la versión 1.0.0 en julio.
  • Los primeros cambios de Squid muestran continuidad mediante mantenimiento: peticiones HTTP condicionales, objetos HTTPS y reconstrucción del caché en disco mientras seguía atendiendo solicitudes.

Un proyecto de investigación puede terminar mientras una de sus herramientas sigue respondiendo peticiones. Esa era la cuestión práctica del caché web de Harvest en 1996. Harvest había desarrollado varios componentes, incluido el caché de objetos, pero algunos integrantes pasaron a trabajar en la industria justo cuando empezaba otro estudio sobre cachés financiado por la NSF. Duane Wessels, que había trabajado en Harvest, necesitaba software público para ese despliegue y esa investigación.

En su relato técnico posterior cuenta que partió de la última versión precomercial de Harvest, la amplió y llamó Squid a la rama para distinguirla de otra derivación comercial.

La bifurcación respondía a una necesidad operativa concreta. El caché se situaba entre el usuario y los servidores web distantes; guardaba copias de objetos populares para servir solicitudes repetidas desde un punto más cercano. Harvest también permitía jerarquías de cachés. La demanda ya trascendía el laboratorio: un artículo de 1996 sobre Nueva Zelanda dice que Harvest Cache se usaba en producción desde octubre de 1995. En febrero, un solo servidor procesaba un volumen equivalente a aproximadamente el cinco por ciento del tráfico de Internet del país con el resto del mundo.

Es una estimación de un operador en un lugar concreto, no una medida de adopción mundial.

La primera versión de Squid no consistió en cambiar el nombre a un archivo intacto. El registro de cambios de la beta 1.0, fechado el 19 de abril de 1996, identifica Harvest cached-1.4.pl3 como base y enumera soporte añadido para peticiones If-Modified-Since, objetos SSL y reconstrucción en segundo plano del almacén en disco mientras el caché seguía atendiendo solicitudes. Son cambios ligados a la operación de un proxy: comprobar si un objeto guardado había cambiado, manejar más clases de conexión y mantener el servicio durante las tareas de almacenamiento. La versión oficial 1.0.0 salió en julio.

Wessels describe en su relato posterior un año de contribuciones, parches, solicitudes de funciones y avisos de errores. El registro de cambios ofrece una vista más cercana de esa tarea: los arreglos aparecen en versiones sucesivas y Squid conserva trabajo de compatibilidad con cachés vecinos de Harvest. En 1997, la RFC 2186 documentó ICP, un protocolo rápido de consulta y respuesta entre cachés vecinos, y atribuyó sus raíces al almacenamiento jerárquico de Harvest. Una bifurcación podía modificar el programa y, a la vez, mantener formas de interacción que otros cachés entendieran.

El origen de Squid muestra una forma concreta de continuidad. Para que los operadores siguieran utilizando un caché, no era necesario que sobreviviera intacto el nombre del proyecto Harvest. Un mantenedor podía tomar una base conocida, publicar una rama diferenciada y ajustarla a necesidades observadas. Eso no aseguraba soporte indefinido: el nuevo proyecto aún dependía de personas, financiación e instalaciones compatibles. Sí convirtió un resultado de investigación en software que podía recibir cambios en versiones sucesivas.

Fuentes