ian@utcs.UUCP (Ian F. Darwin) (12/25/84)
Here is a detailed TOC of the BLTJ UNIX issue. In accordance with the notice printed with each article, to wit, `The title and abstract, but no further portions, of this paper may be copied or distributed royalty-free by computer-based and other information-service systems without further permission.' I am including the abstract of each article where one was provided. All are complete except the article on VPM; that abstract was over a page so I truncated it somewhat. I have tried to preserve the original line breaks as much as possible, but have not preserved hyphenation. I also left out a bunch of little (TM) symbols for UNIX, VAX, Intel, 5ESS, and so on, all of which I'm sure everybody knows are trademarks of the respective multinationals. Hope somebody finds this useful. Ian F. Darwin | Today is the first day Toronto, Canada | of the best ihnp4!darwin!ian | of your life. ------------------------|------------------------------- %A A. V. Aho %T Foreword %J BLTJ %V 63 %N 8 %D October, 1984 %P 1573 %O Provides an overview of this special BLTJ issue on the UNIX operating system. %A M. J. Bach %A S. J. Buroff %T Multiprocessor UNIX Systems %J BLTJ %V 63 %N 8 %D October, 1984 %P 1733 %O `This paper describes the problems posed by running the UNIX operating system on multiprocessors, as well as some solutions. The resulting systems function like their single-processor counterparts but yield 70 percent better throughput for two-processor configurations. Closely coupled microprocessor UNIX systems currently run on IBM and AT&T Technologies hardware, but the implementation described in this paper ports to other architectures as well, and the design is not limited to two-processor configurations.'' %A D. E. Bodenstab %A T. F. Houghton %A K. A. Kelleman %A G. Ronkin %A E. P. Schan %T UNIX Operating System Porting Experiences %J BLTJ %V 63 %N 8 %D October, 1984 %P 1769 %O ``One of the reasons for the dramatic growth in popularity of the UNIX operating system is the portability of both the operating system and its associated user-level programs. This paper highlights the portability of the UNIX operating system, presents some general porting considerations, and shows how some of the ideas were used in actual UNIX operating system porting efforts. Discussions of the efforts associated with porting the UNIX operating system to an Intel 8086-based system, two UNIVAC 1100 Series processors, and the AT&T 3B20S and 3B5 minicomputers are presented.'' %A T. Cargill %T Debugging C Programs With the Blit %J BLTJ %V 63 %N 8 %D October, 1984 %P 1633 %O ``The Blit terminal is changing the way we debug C programs. Using multiple virtual terminals on the Blit, a programmer can interact simultaneously with several of the tools needed when debugging. This makes existing tools more useful and influences the design of new tools. In particular, the Blit cleanly separates the programmer's communication with a debugger from communication with the program being debugged. Moreover, \fIjoff\fR, a debugger for C programs that run in the Blit, demonstrates the advantage of operating a debugger asynchronously with the subject process and the effectiveness of a source-level user interface based on pop-up menus. The graphics user interface supports ``pointer chasing'' through arbitrary data structures and graphical display of graphics data objects.'' %A J. Feder %T The Evolution of UNIX System Performance %J BLTJ %V 63 %N 8 %D October, 1984 %P 1791 %O ``Performance has motivated much of the change in the UNIX operating system over the years. This paper gives the results of measurements of system performance taken over time and links the measured improvements to the algorithmic changes that gave rise to them. The most notable improvements have occurred in methods for performing table searches, disk input/output, and terminal handling; these have been driven heavily by the release from address space and memory restrictions in recent 32-bit hardware. Overall, the changes on 32-bit machines have yielded more than 25-percent improvement in the system's ability to support time-sharing users.'' %A W. A. Felton %A G. L. Miller %A J. M. Milner %T A UNIX System Implementation for System/370 %J BLTJ %V 63 %N 8 %D October, 1984 %P 1751 %O ``This paper describes an implementation of the UNIX operating system for IBM System/370 computers. In this implementation an underlying Resident Supervisor, adapted from an existing IBM control program, provides machine control and multiprogramming; while a UNIX System Supervisor, adapted from the standard UNIX system kernel, provides the UNIX system environment. This implementation supports multiprocessing, paging and large-process, virtual address spaces. Terminal handling is done through an outboard terminal processor. This paper describes the software structure, with emphasis on unique aspects of this implementation: multiprocessing and process synchronization, process creation, and outboard terminal handling. Capacity and performance of the UNIX system on large mainframes is also discussed. The first and principle user of the UNIX system for System/370 is the development project for the 5ESS switching system. This paper also discusses the use of a large mainframe UNIX system for this development. Included in this discussion are the reasons for selecting this system for development, applications software porting, and general experience with mainframe UNIX systems.'' %A M. J. Fitton %A C. J. Harkness %A K. A. Kelleman %A P. F. Long %A C. Mee III %T The Virtual Protocol Machine %J BLTJ %V 63 %N 8 %D October, 1984 %P 1859 %O ``The UNIX operating system Virtual Protocol Machine (VPM) is a package of software tools that allows a wide variety of link-level data communications protocols to be implemented efficiently in a high-level language. The resulting protocol implementations are independent of the particular communications hardware, the host machine architecture, and the host operating system, and therefore can be ported easily from one hardware/software environment to another. An extension to VPM, the Common Synchronous Interface (CSI), provides similar benefits for the higher-level protocol software that runs in the UNIX system host. The implementation of VPM use Programmable Communications Devices (PCDs) to off[-]load the link-level communications processing from the host CPU. A high-level language protocol description is translated by a protocol compiler that runs on the host machine. The resulting module is then loaded into the PCD and executed. The other components of VPM are a transparent protocol driver that allows user processes to interact directly with a link-level protocol implementation, a real-time trace capability to facilitate debugging, and several utility programs. VPM has been implemented on several different PCDs and several types of host computers [...]'' %A T. E. Fritz %A J. E. Hefner %A T. M. Raleigh %T A Network of Computers Running the UNIX System %J BLTJ %V 63 %N 8 %D October, 1984 %P 1877 %O ``This paper discusses experience in designing software to interconnect large numbers of processors that are based on the UNIX operating system over a high-speed local area network. The paper discusses portability of the implementation between different processors and operating systems based on the UNIX system, the influence of different schedulers, input\/output subsystems, and different speed processors on the implementation and performance of the network. Also discussed are characteristics of network usage, such as traffic patterns, throughput, and response.'' %A F. T. Grampp %A R. H. Morris %T UNIX Operating System Security %J BLTJ %V 63 %N 8 %D October, 1984 %P 1649 %O ``Computing systems that are easy to access and that facilitate communication with other systems are by their nature difficult to secure. Most often, though, the level of security that is actually achieved is far below what it could be. This is due to many factors, the most important of which are the knowledge and attitudes of the administrators and users of such systems. We discuss here some of the security hazards of the UNIX operating system, and we suggest ways to protect against them, in the hope that an educated community of users will lead to a level of protection that is stronger, but far more importantly, that represents a reasonable and thoughtful balance between security and ease of use of the system. We will not construct parallel examples for other systems, but we encourage readers to do so for themselves.'' %A G. J. Henry %T The Fair Share Scheduler %J BLTJ %V 63 %N 8 %D October, 1984 %P 1845 %O ``The Fair Share Scheduler (FSS) is a process scheduling scheme within the UNIX operating system that controls the distribution of resources to sets of related processes. This control offers features that are useful to many applications, including user control of service level, execution predictability, fair resource allocation, predictable and fair billing, and load insulation between user communities. This paper discusses the concepts of a fair share scheduler, the motivation for and history behind FSS, some practical FSS applications, the user and administrator interfaces to FSS, and the design philosophy of FSS.'' %A J. P. Linderman %T Theory and Practice in the Construction of a Working Sort Routine %J BLTJ %V 63 %N 8 %D October, 1984 %P 1827 %O ``Because comparison in the standard UNIX operating system sort routine, \fI/bin/sort\fR, is interpretive, it is generally more time-consuming than the standard paradigm of comparing two integers. When a colleague and I modified \fIsort\fR to improve readability and efficiency, we found that techniques that improved performance for other sorting applications sometimes degraded the performance of \fIsort\fR. Input and output are important when comparisons are simple, but as comparisons become more complex, the number of comparisons quickly dominates the performance of \fIsort\fR.'' %A R. L. Martin %T Preface %J BLTJ %V 63 %N 8 %D October, 1984 %P 1571 %O ``Major technical breakthroughs, like the transistor, are rare events. These breakthroughs have far-reaching effects on science, business, and, at times, society. The UNIX operating system is such a breakthrough.'' %A R. Pike %A B. W. Kernighan %T Program Design in the UNIX System Environment %J BLTJ %V 63 %N 8 %D October, 1984 %P 1595 %O ``Much of the power of the UNIX operating system comes from a style of program design that makes programs easy to use and, more importantly, easy to combine with other programs. This style is distinguished by the use of software tools, and depends more on how the programs fit into the programming environment \- how they can be used with other programs \- than on how they are designed internally. But as the system has become commercially successful and has spread widely, this style has often been compromised, to the detriment of all users. Old programs have become encrusted with dubious features. Newer programs are not always written with attention to proper separation of function and design for interconnection. This paper discusses the elements of program design, showing by example good and bad design, and indicates some possible trends for the future.'' %A R. Pike %T The Blit: A Multiplexed Graphics Terminal %J BLTJ %V 63 %N 8 %D October, 1984 %P 1607 %O ``The Blit is a programmable bitmaps graphics terminal designed specifically to run with the UNIX operating system. The software in the terminal provides an asynchronous multiwindow environment, and thereby exploits the multiprogramming capabilities of the UNIX system, which have been largely under-utilized because of the restrictions of conventional terminals. This paper discusses the design motivation of the Blit, gives an overview of the user interface, mentions some of the novel uses of multiprogramming made possible by the Blit, and describes the implementation of the multiplexing facilities on the host and in the terminal. Because most of the functionality is provided by the terminal, the discussion focuses on the structure of the terminal's software.'' %A J. A. Reeds %A P. J. Weinberger %T File Security and the UNIX System Crypt Command %J BLTJ %V 63 %N 8 %D October, 1984 %P 1673 %O ``Sufficiently large files encrypted with the UNIX system \fIcrypt\fR command can be deciphered in a few hours by algebraic techniques and human interaction. We outline such a decryption method and show it to be applicable to a proposed strengthened algorithm as well. We also discuss the role of encryption in file security.'' %A D. M. Ritchie %T The Evolution of the UNIX Time-sharing System %J BLTJ %V 63 %N 8 %D October, 1984 %P 1577 %O ``This paper presents a brief history of the early development of the UNIX operating system. It concentrates on the evolution of the file system, the process-control mechanism, and the idea of pipelined commands. Some attention is paid to social conditions during the development of the system. This paper is reprinted from \fILecture Notes in Computer Science, No. 79, Language Design and Programming Methodology\fR, Springer-Verlag, 1980. %A D. M. Ritchie %T A Stream Input/Output System %J BLTJ %V 63 %N 8 %D October, 1984 %P 1897 %O ``In a new version of the UNIX operating system, a flexible coroutine-based design replaces the traditional rigid connection between processes and terminals or networks. Processing modules may be inserted dynamically into the stream that connects a user's program to a device. Programs may also connect directly to programs, providing interprocess communication.'' %A L. Rosler %T The Evolution of C %J BLTJ %V 63 %N 8 %D October, 1984 %P 1685 %O ``The C programming language was developed originally to implement UNIX operating systems and their utilities. It has become a mainstay of systems and applications programming at AT&T Bell Laboratories, and is rapidly growing in commercial importance. It continues to evolve in response to the needs of new environments, spanning the range from tiny peripheral controllers to huge electronic switching systems written and maintained by hundreds of programmers. There are severe reliability and real-time constraints throughout this spectrum. This paper reports changes made so far to meet the needs of these new environments and indicates the directions of current developments.'' %A B. Stroustrup %T Data Abstraction in C %J BLTJ %V 63 %N 8 %D October, 1984 %P 1701 %O ``C++ is a superset of the C programming language; it is fully implemented and has been used fro nontrivial projects. There are now more than one hundred C++ installations. This paper describes the facilities for data abstraction provided in C++. These include Simula-like classes providing (optional) data hiding, (optional) guaranteed initialization of data structures, (optional) implicit type conversion for user-defined types, and (optional) dynamic typing; mechanisms for overloading function names and operators; and mechanisms for user-controlled memory management. It is shown how a new data type, like complex numbers, can be implemented, and how an ``object-based'' graphics package can be structured. A program using these data abstraction facilities is at least as efficient as an equivalent program not using them, and the compiler is faster than older C compilers.'' %A P. J. Weinberger %T Cheap Dynamic Instruction Counting %J BLTJ %V 63 %N 8 %D October, 1984 %P 1815 %O ``There are two ways to profile the behaviour of a program: timing and counting. Timing is traditional in UNIX operating systems. This paper describes an easy implementation of count profiling, and gives several examples and applications. It has been implemented on the Motorla 68000, VAX, and AT&T 3B20 computers.'' -- Ian Darwin, Toronto {ihnp4|decvax}!utcs!ian