.if n .pH port.preface @(#)preface	40.4
.\" Porting manual:  Preface
.\"
.\" Ps = POSTSCRIPT
.\" Sd = NeWS
.\" Cs = CSCRIPT
.ds Ps P\s-2OST\s+2S\s-2CRIPT\s+2
.ds Sd \s-2X11/Ne\h'-0.2n'WS\s+2
.ds Cs \CS\s-2CRIPT\s+2
.BK "Porting the X11/NeWS Server"
.CH "Preface"
.H 1 "Preface"
.H 2 "\f3Audience\fP"
This document is written for experienced window system
developers who want to port \f3\*(Sd\fP\u\s-3\(tm\s0\d 
to a hardware platform.
Users attempting to port \*(Sd should be familiar with 
porting windowing systems to hardware platforms.
.H 2 "\f3Scope\fP"
This document covers the information necessary to
port \*(Sd to a non-Sun hardware platform.  It does not 
cover programming in the \*(Sd environment, nor does it
describe the architecture or process flow of the \*(Sd 
environment.  Although porting \*(Sd to a non-Sun workstation
is not a trivial task, we have attempted to present the 
information in a logical step by step 
manner.
.H 2 "\f3Reference Documentation\fP"
Adobe Systems, \f3\*(Ps\fP\u\s-3\(rg\s0\d Language 
Reference Manual, Addison-Wesley, July 1985.\**
.H 2 "\f3Notational Conventions\fP"
.P
This manual uses the following notational conventions:
.BL
.LI
\f4constant width font\f1 
.P
This font indicates information displayed by the computer.
It also used in code examples and textual passages to
indicate use of the \f2C\fP programming language.
.P
This font is also used in textual passages to indicate 
names of system-defined \*(Ps or \*(Sd objects.
Xlib routines and types also use bold font in textual passages.
.LI
\f2italic font\f1 
.P
This font is used in code examples and textual passages to indicate
user-specified parameters for insertion into programs or command
lines.  It is also used to indicate special terms or phrases used in 
textual descriptions of \*(Sd.
.LE
.H 1 "Programmer's Comments"
\*(Sd is a very complex program using technologies such as
lightweight processing threads, complex data structures including refs
and objects, multiple stacks (operand, dictionary, graphics, and context), 
interactions with multiple input and output devices (keyboard, mouse, 
lightpen, framebuffers), and complex graphical manipulation.
\*(Sd was developed over many years and porting it requires a 
significant effort.  This manual has been written to minimize
that effort by distilling the experience of the original porting team. (This
porting team ported the product from SunOS running on SPARC and
Motorola 68K processors, to AT&T's System V 3.2 and 4.0 running on
their own 6386 computer based on the Intel 80386 processor.)
.P
In addition to the normal integration problems, many other obstacles,
including compiler bugs and kernal bugs were encountered and 
subsequently overcome.  The lack of a porting manual, made it necessary for
us to develop a methodology for porting.  This methodology is presented here, 
and it may be useful to your porting effort.
.P
The initial \*(Sd port was on a 6386 computer running System
V Release 3.2.  Many problems involved getting the 
non-portable system interface code (NPSI) working in a new
environment.  A few compiler bugs were also found. The final port was
to the same hardware platform running System V Release 4.0--a new
operating system.  Most of the problems in this port had to do with
operating system issues.  

