Operating systems - Personal Distributed Computing: The Alto and Ethernet Software
The first Alto operating system , usually called the OS, is derived from Stoy and Strachey’s OS6 . It provides a disk file and directory system, a keyboard handler, a teletype simulator for the screen, a standard stream abstraction for input-output, a program loader, and a free storage allocator. There is no provision for multiple processes, virtual memory, or protection, although the first two were provided (several times, in fact) by software or microcode packages. The OS is written entirely in bcpl . It was designed by Butler Lampson, and implemented by him, Gene McDaniel, Bob Sproull, and David Boggs.
The distinctive features of the Alto OS are:
The OS is organized as a set of standard packages, one providing each of the functions mentioned (except for the stream abstraction, which is entirely a matter of programming convention). When it is initialized, all the packages are present and can be called by any program that is loaded. However, there is a junta procedure that can be used to remove any number of the pre-loaded packages and recover the space they occupy. Thus a program can take over nearly the whole machine. bcpl programs can include any subset of the standard packages to replace the ones removed by the junta. Alternatively, they can provide their own implementation of a function that has been removed by a junta, or do without it altogether. Thus the system is entirely open, offering services to its client programs but preempting none of the machine’s resources. Other packages not normally loaded as part of the system, but available to be included in any user program, provide non-preemptive concurrent processes, Internet datagrams and byte streams, program overlays, and other facilities that might have been part of the standard system.
At the base of the OS is a world-swap function that saves the entire state of the machine on a disk file and restores it from another file; this allows an arbitrary program to take control of the machine. The new program communicates with the old one only through the file system and a few bytes of state that are saved in memory across the world swap. The world-swap takes about two seconds; it is used for bootstrapping, checkpointing, debugging (to switch between the program and the debugger), and switching back and forth between two major activities of a program.
The file system represents a file as a sequence of disk blocks linked by forward and backward pointers. By careful integration with the disk controller, it is able to transfer consecutive file blocks that are contiguous on the disk at the full disk speed of 1 MBit/second, while leaving time for nontrivial client computing; this performance allows world swapping, program overlaying, and other sequential file transfers to be fast. In addition, each disk block contains the file identifier and block number in a label field of its header; this information is checked whenever the block is read or written. As a result, the disk addresses of file blocks can be treated as hints by the system, rather than being critical to its correct functioning and to the integrity of other files. If a disk address is wrong, the label check will detect the error, and various recovery mechanisms can be invoked. A Scavenger program, written by Jim Morris, takes about a minute to check or restore the consistency of an Alto file system; it can be routinely run by nonprofessional users. As a result of this conservative design, the file system has proved to be very reliable; loss of any information other than bits physically damaged on the disk is essentially unheard of. This reliability is achieved in spite of the fact that many programs besides the standard operating system have access to the disk.
The file system also runs on the 80 and 300 MByte disks that are interfaced to some Altos, and in this form is the basis of a successful file server (see section 4.2).
The Alto has a conventional hierarchical directory system that allows multiple versions of each file, with provisions for keeping a prespecified number of versions. The subdirectory and version facilities were added late, however, and did not enjoy widespread use. A directory is stored as an ordinary file that is processed by a variety of programs in addition to the file system.
A program called the Executive processes command lines and invokes other programs; it is much like the Unix Shell, but with far more primitive facilities for programming at the command level. From the point of view of the OS it is just another program, the one normally invoked when the machine is booted. From the point of view of a user it is the visible form of the OS.
Some of the design choices of the Alto OS would not be made in an operating system for a 1985 workstation, whose much greater computing power and especially memory capacity make them unattractive. Separate address spaces simplify program development and concurrent execution of separate applications; virtual memory simplifies programming; a clean virtual machine makes it easier to port client programs to a new machine. But these comforts have a significant cost in machine resources: memory and response time. The open and unprotected character of the Alto OS were essential to the success of many Alto applications, both interactive programs like editors and illustrators, and real-time programs like the file, print, and gateway servers.
Distinct operating systems evolved for other programming environments. The Alto Lisp and Smalltalk operating systems were built using many of the Alto OS packages. Over time, these packages were replaced by new code native to the Lisp and Smalltalk environments. Mesa had its own operating system on the Alto from the start, but it was modeled closely on the OS.
For the Xerox 8000 products, the Alto OS was replaced by a considerably bigger system called Pilot, which supports virtual memory, multiple processes, and a more elaborate file system . Pilot was also used in the Cedar system, but was eventually supplanted by the Cedar nucleus, a much simpler system quite similar in spirit to the Alto OS. Cedar also has CFS, the Cedar File System , which provides a network-wide file system to Cedar programs by caching files from a server on the workstation. In CFS modified files are written back only by explicit request. This arrangement supports about 20 Dorados from a single Alto-based file server, using about 30 MBytes of local disk on each Dorado for the cache. Almost any file server will do, since it need only support full file transfers.
Dostları ilə paylaş:
©2018 Учебные документы
Рады что Вы стали частью нашего образовательного сообщества.