La conexión de Newcastle (o UNIX Unidas ) fue un subsistema de software a partir de la década de 1980 que podrían añadirse a cada uno de un conjunto de interconectados sistemas similares a Unix para construir un sistema distribuido. Este último sería funcionalmente indistinguible, tanto a nivel de usuario como de sistema, de un sistema UNIX convencional. [1] [2] Se convirtió en un precursor de Sun Microsystems ' Network File System (NFS). El nombre deriva del grupo de investigación de la Universidad de Newcastle , bajo la dirección de Brian Randell , que lo desarrolló.
El término "UNIX United" describe el esquema de combinación de los sistemas de archivos generales de las máquinas UNIX participantes; "Newcastle Connection" describe la capa de comunicación subyacente que permite esto. [3] Un sistema UNIX United construido con Newcastle Connection es funcionalmente indistinguible de un sistema UNIX centralizado en el nivel de llamada al sistema. [4]
En esencia, el concepto de "directorio principal" fue reinterpretado en la raíz del sistema de archivos, donde originalmente no tenía un significado significativo, para significar "este directorio está en una máquina remota", similar al subsiguiente " Super-root ( Unix) "uso.
UNIX United
Como recordatorio, un árbol de directorios único típico de UNIX podría parecerse a:
- /
- casa
- brian (directorio actual '.')
- a
- B
- brian (directorio actual '.')
- casa
UNIX United actúa como un nivel adicional por encima de la /
raíz. Si la máquina de ejemplo se llama "unix1", un esquema general de UNIX United con una segunda máquina adicional, "unix2", se vería así:
- / ..
- unix1
- casa
- brian (el directorio actual '.')
- a
- B
- brian (el directorio actual '.')
- casa
- unix2
- casa
- Brian
- B
- C
- Brian
- casa
- unix1
Si deseamos copiar el archivo a
de "unix1" a "unix2" para colocarlo junto a los archivos b
y c
, los comandos equivalentes de ejemplo podrían ser:
cp /home/brian/a /../unix2/home/brian/a
cp a /../unix2/home/brian/a
( cd /../unix2/home/brian ; cp /../unix1/home/brian/a a )
Internos
No requirió cambios en el kernel de UNIX. Más bien, se ejecutó en el espacio de usuario, utilizando una versión modificada de la biblioteca estándar de C de su época que era capaz de reconocer esta nueva semántica. En una primera aproximación, esto fue reconocer los nombres de ruta que comienzan con "/.."
. Una coincidencia desviaría dicha referencia al nuevo software, que luego utilizó llamadas de procedimiento remoto a la máquina remota. Todos los demás nombres de ruta simplemente pasarían al kernel local como de costumbre. (Si el directorio de trabajo actual era en sí mismo remoto, esto debe tenerse en cuenta).
Sin embargo, sí requería que todo el software destinado a usarlo, incluidos los shells, el comando "cp", etc., debían volver a vincularse con esta nueva biblioteca.
Continuando con uno de los ejemplos anteriores, el comando "cp" intenta, como se esperaba, abrir los dos archivos:
open("a", ...)
open("/../unix2/home/brian/a", ...)
Suponiendo que el comando se ha vuelto a vincular con la biblioteca C revisada, lo primero open()
ocurre normalmente en el sistema local. El segundo, sin embargo, se desvía al software "Newcastle Connection" debido a que el nombre de archivo es " /..
" inicial .
Portabilidad
La implementación original en Newcastle fue para UNIX V7 en un conjunto de computadoras PDP-11 conectadas por una red Cambridge Ring . [3] Las implementaciones posteriores agregaron soporte para otras versiones de UNIX (incluyendo BSD 4.2 y System V ), tecnologías de red, protocolos y arquitectura de hardware ( VAX , Motorola 68000 ). [4]
Referencias
- ^ Brownbridge, David R .; Marshall, Lindsay F .; Randell, Brian (1982). "La conexión de Newcastle" (PDF) . Software: práctica y experiencia . 12 : 1147-1162. doi : 10.1002 / spe.4380121206 . Archivado desde el original (PDF) el 16 de agosto de 2016 . Consultado el 23 de diciembre de 2018 .
- ^ Callaghan, Brent (2000). NFS ilustrado . Addison Wesley . ISBN 0-201-32570-5.
- ^ a b "La conexión de Newcastle" (PDF) . Universidad de Newcastle . Consultado el 24 de diciembre de 2018 .
- ^ a b Borghoff, Uwe M. Catálogo de sistemas operativos / archivos distribuidos . Saltador. pag. 49. ISBN 3642768806.