[net.mag] *detailed* TOC: BLTJ Oct 84 UNIX issue

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