Newcastle Connection

Last updated

The Newcastle Connection (or UNIX United) was a software subsystem from the early 1980s that could be added to each of a set of interconnected UNIX-like systems to build a distributed system. The latter would be functionally indistinguishable, at both user- and system-level, from a conventional UNIX system. [1] [2] It became a forerunner of Sun Microsystems' Network File System (NFS). The name derives from the research group at Newcastle University, under Brian Randell, which developed it.

Contents

The term "UNIX United" describes the scheme of combining the overall filesystems of the participating UNIX machines; "Newcastle Connection" describes the underlying communication layer which enables this. [3] A UNIX United system constructed with the Newcastle Connection is functionally indistinguishable from a centralised UNIX system at the system-call level. [4]

In essence, the concept of the "parent directory" was re-interpreted at the root of the filesystem, where it originally had no significant meaning, to mean "this directory is on a remote machine", similar to subsequent "Super-root (Unix)" usage.

UNIX United

As a reminder, a typical single UNIX directory tree might resemble:

UNIX United acts as an extra level above the / root. If the example machine is named "unix1", an overall UNIX United scheme with an additional second machine, "unix2", would look like:

If we wish to copy file a from "unix1" to "unix2" to sit alongside files b and c, example equivalent commands might be:

Internals

It required no changes to the UNIX kernel. Rather, it ran in user-space, using a modified version of the C standard library of its day which was capable of recognising these new semantics. To a first approximation this was to recognise pathnames beginning with "/..". A match would divert such a reference through to the new software, which then used remote procedure calls to the remote machine. All other pathnames would simply go through to the local kernel as usual. (If the current working directory was itself remote, this needed to be taken into account.)

It did, however, require that all software intended to use it, including shells, the "cp" command, etc. needed to be re-linked with this new library.

Continuing one of the previous examples, the "cp" command attempts, as expected, to open the two files:

Assuming the command has been relinked with the revised C-library, the first open() happens as normal on the local system. The second, however, is diverted into the "Newcastle Connection" software because of the filename's leading "/..".

Portability

The original implementation at Newcastle was for UNIX V7 on a set of PDP-11 computers connected by a Cambridge Ring network. [3] Subsequent implementations added support for other versions of UNIX (including BSD 4.2 and System V), network technologies, protocols and hardware architecture (VAX, Motorola 68000). [4]

Related Research Articles

<span class="mw-page-title-main">GNU Hurd</span> Operating system kernel designed as a replacement for Unix

GNU Hurd is a collection of microkernel servers written as part of GNU, for the GNU Mach microkernel. It has been under development since 1990 by the GNU Project of the Free Software Foundation, designed as a replacement for the Unix kernel, and released as free software under the GNU General Public License. When the Linux kernel proved to be a viable solution, development of GNU Hurd slowed, at times alternating between stasis and renewed activity and interest.

<span class="mw-page-title-main">Plan 9 from Bell Labs</span> Distributed operating system

Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has been free and open-source. The final official release was in early 2015.

Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call system. NFS is an open IETF standard defined in a Request for Comments (RFC), allowing anyone to implement the protocol.

Linux has several filesystem drivers for the File Allocation Table (FAT) filesystem format. These are commonly known by the names used in the mount command to invoke particular drivers in the kernel: msdos, vfat, and umsdos.

<span class="mw-page-title-main">Root directory</span> First or top-most directory in a hierarchy

In a computer file system, and primarily used in the Unix and Unix-like operating systems, the root directory is the first or top-most directory in a hierarchy. It can be likened to the trunk of a tree, as the starting point where all branches originate from. The root file system is the file system contained on the same disk partition on which the root directory is located; it is the filesystem on top of which all other file systems are mounted as the system boots up.

In computing, a symbolic link is a file whose purpose is to point to a file or directory by specifying a path thereto.

Unix security refers to the means of securing a Unix or Unix-like operating system. A secure environment is achieved not only by the design concepts of these operating systems, but also through vigilant user and administrative practices.

The Filesystem Hierarchy Standard (FHS) is a reference describing the conventions used for the layout of a UNIX system. It has been made popular by its use in Linux distributions, but it is used by other UNIX variants as well. It is maintained by the Linux Foundation. The latest version is 3.0, released on 3 June 2015.

<span class="mw-page-title-main">Virtual file system</span> Abstract layer on top of a more concrete file system

A virtual file system (VFS) or virtual filesystem switch is an abstract layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way. A VFS can, for example, be used to access local and network storage devices transparently without the client application noticing the difference. It can be used to bridge the differences in Windows, classic Mac OS/macOS and Unix filesystems, so that applications can access files on local file systems of those types without having to know what type of file system they are accessing.

OpenSSI is an open-source single-system image clustering system. It allows a collection of computers to be treated as one large system, allowing applications running on any one machine access to the resources of all the machines in the cluster.

The Berkeley r-commands are a suite of computer programs designed to enable users of one Unix system to log in or issue commands to another Unix computer via TCP/IP computer network. The r-commands were developed in 1982 by the Computer Systems Research Group at the University of California, Berkeley, based on an early implementation of TCP/IP.

du (Unix) Standard Unix program

du is a standard Unix program used to estimate file space usage—space used under a particular directory or files on a file system. A Windows commandline version of this program is part of Sysinternals suite by Mark Russinovich.

Linux Terminal Server Project (LTSP) is a free and open source terminal server for Linux that allows many people to simultaneously use the same computer. Applications run on the server with a terminal known as a thin client handling input and output. Generally, terminals are low-powered, lack a hard disk and are quieter and more reliable than desktop computers because they do not have any moving parts.

The jail mechanism is an implementation of FreeBSD's OS-level virtualisation that allows system administrators to partition a FreeBSD-derived computer system into several independent mini-systems called jails, all sharing the same kernel, with very little overhead. It is implemented through a system call, jail(2), as well as a userland utility, jail(8), plus, depending on the system, a number of other utilities. The functionality was committed into FreeBSD in 1999 by Poul-Henning Kamp after some period of production use by a hosting provider, and was first released with FreeBSD 4.0, thus being supported on a number of FreeBSD descendants, including DragonFly BSD, to this day.

mount (Unix) Unix command to mount a filesystem

In computing, mount is a command in various operating systems. Before a user can access a file on a Unix-like machine, the file system on the device which contains the file needs to be mounted with the mount command. Frequently mount is used for SD card, USB storage, DVD and other removable storage devices. The command is also available in the EFI shell.

Remote File Sharing (RFS) is a Unix operating system component for sharing resources, such as files, devices, and file system directories, across a network, in a network-independent manner, similar to a distributed file system. It was developed at Bell Laboratories of AT&T in the 1980s, and was first delivered with UNIX System V Release 3 (SVR3). RFS relied on the STREAMS Transport Provider Interface feature of this operating system. It was also included in UNIX System V Release 4, but as that also included the Network File System (NFS) which was based on TCP/IP and more widely supported in the computing industry, RFS was little used. Some licensees of AT&T UNIX System V Release 4 did not include RFS support in SVR4 distributions, and Sun Microsystems removed it from Solaris 2.4.

The following tables compare general and technical information for a number of file systems.

An automounter is any program or software facility which automatically mounts filesystems in response to access operations by user programs. An automounter system utility, when notified of file and directory access attempts under selectively monitored subdirectory trees, dynamically and transparently makes local or remote devices accessible.

Toybox is a free and open-source software implementation of over 200 Unix command line utilities such as ls, cp, and mv. The Toybox project was started in 2006, and became a 0BSD licensed BusyBox alternative. Toybox is used for most of Android's command line tools in all currently supported Android versions, and is also used to build Android on Linux and macOS. All of the tools are tested on Linux, and many of them also work on BSD and macOS.

References

  1. Brownbridge, David R.; Marshall, Lindsay F.; Randell, Brian (1982). "The Newcastle Connection" (PDF). Software: Practice and Experience. 12: 1147–1162. doi:10.1002/spe.4380121206. S2CID   1840438. Archived from the original (PDF) on 16 August 2016. Retrieved 23 December 2018.
  2. Callaghan, Brent (2000). NFS Illustrated. Addison Wesley. ISBN   0-201-32570-5.
  3. 1 2 "The Newcastle Connection" (PDF). Newcastle University. Retrieved 21 December 2021.
  4. 1 2 Borghoff, Uwe M. (6 December 2012). Catalogue of Distributed File/Operating Systems. Springer. p. 49. ISBN   978-3642768804.