This chapter is an overview of migrating from the ULTRIX and ULTRIX Worksystem Software (UWS) operating system, Version 4.2 and higher, to the DIGITAL UNIX operating system, Version 3.0 and higher. It begins by describing some DIGITAL UNIX features that are unavailable on ULTRIX systems. Then, it gives brief information about features that are common to both systems, followed by a list of ULTRIX features that are unavailable on DIGITAL UNIX systems.
This chapter also mentions each of the migration issues that can affect you as you move to a DIGITAL UNIX system. You can use this information to assess the effort involved in migration. Detailed information about migration from ULTRIX to DIGITAL UNIX systems is provided in the rest of this manual.
The following DIGITAL UNIX system features are unavailable on ULTRIX systems:
OSF/1 kernel
Real-time kernel
Improved standards conformance
Shared libraries
Increased number of per-process open file descriptors
Logical storage management
Streams
Memory-mapped files
Sixty-four bit data types and addresses
Security integration architecture (SIA)
Increased number of pseudoterminals (ptys)
Debugging support for multithreading
Increased file system sizes
The following sections describe these DIGITAL UNIX features in more detail.
The OSF/1 kernel is based on the Mach kernel developed at Carnegie-Mellon University. This kernel consists of a compact, extensible system kernel designed to support distributed and parallel computing services for single and multiprocessor systems. The OSF/1 kernel provides the basic operating system services, including virtual memory management and interprocess communications.
Additional code implements UNIX services as extensions to the kernel. These extensions to the kernel are designed as kernel subsystems. File systems, network protocol families and pseudodevice drivers, and STREAMS drivers are some of the supported subsystems. Each subsystem is configured into the kernel by an existing kernel-supported framework, which provides the mechanism for registering the driver entry routines. For example, the operating system supports the virtual file system framework, the network framework, the device switch framework, the interrupt dispatch framework, and the STREAMS framework.
The DIGITAL UNIX real-time kernel and environment provides you with the capability of developing and running portable applications in a POSIX environment. POSIX 1003.4 Draft 11 is a set of functions and calls that can be used in the design and creation of real-time applications.
The DIGITAL UNIX real-time environment offers the following POSIX features:
Process synchronization. Processes can be synchronized by using the following methods:
Real-time clocks and timers
Priority scheduling
Semaphores
Shared memory
Process memory locking
Asynchronous I/O
For more information on real-time programming, see the Guide to Realtime Programming.
Using programming standards enhances the portability of your application. Standard-compliant code is independent of the hardware or even the operating system on which the application runs.
Both the ULTRIX and UWS system and the DIGITAL UNIX system have programming environments that allow you to develop applications that conform to the major industry standards.
The Software Product Description (SPD) for the ULTRIX product, the UWS product, and the DIGITAL UNIX product each contain detailed lists of the standards they support. Refer to the SPDs for this information. For information about specific migration issues, see Chapter 7.
The DIGITAL UNIX system provides programming interfaces that are defined in the OSF Application Environment Specification (AES) standard. Although the AES is not a formal standard, using AES-conformant library routines helps ensure the portability of your program between products based on the OSF/1 operating system. The Application Environment Specification Operating System Programming Interfaces Volume (AES/OS) specifies programming interfaces for the operating system portion of the OSF applications environment.
The DIGITAL UNIX system includes dynamic, shared libraries as part of the programming environment. That is, the libraries contain no fixed base addresses. When you link your application with a shared library, the executable application does not contain the library; instead, it contains the information needed to load the shared library at startup time and to access the shared routines at execution time.
Because shared libraries allow several applications to use a single copy of a library routine, they can help save disk space and memory, and improve system performance.
For more information about shared libraries, see Section 6.6 and Section 8.1.
Both the ULTRIX and UWS and the DIGITAL UNIX systems allow you to configure the number of open file descriptors a process can use. By default, the number for ULTRIX and UWS systems is 64, for DIGITAL UNIX systems, 4096. For information about how to configure this feature, see the System Administration manual. For information about modifying an application to use a different number of open file descriptors, see Section 8.3.
The Logical Storage Manager (LSM) subsystem is a replacement for the Logical Volume Manager of previous DIGITAL UNIX systems. See Chapter 4 for more information.
System V Release 3.2 STREAMS is included in the DIGITAL UNIX system. STREAMS is a kernel mechanism that supports development of network services and data communications drivers. The STREAMS mechanism consists of a set of system calls, kernel resources, and kernel routines that can create, use, and dismantle a stream. A stream is a full-duplex processing and data transfer path between a driver in kernel space and a process in user space.
The DIGITAL UNIX system includes the Berkeley
mmap
function,
which allows an application to access files with memory operations rather
than file I/O operations.
See
mmap
(2)
for more information.
The Alpha architecture is based on a 64-bit microprocessor. As such, it introduces a number of extended capabilities beyond 32-bit architectures. For example, 64-bit addressing allows the DIGITAL UNIX system to support file system sizes greater than 2 gigabytes (GB). Most applications only require a recompilation in order to run on a DIGITAL UNIX system. However, if you want your application to be portable (run on both 32-bit and 64-bit systems) and to interoperate with programs on other systems, you must check the C coding techniques. Chapter 7 describes specific aspects of the C language and explains certain programming techniques that will help both new program development and the migration of existing programs from ULTRIX to DIGITAL UNIX systems.
The DIGITAL UNIX system includes the security integration architecture (SIA). SIA is a framework that can support multiple, layered security mechanisms on a system.
SIA can be employed in base or enhanced security modes.
By using the
SIA routines, the security commands access a
matrix.conf
file.
Which
matrix.conf
file is accessed depends on the
security mode employed (basic or enhanced) and the security mechanisms that
are enabled through SIA.
This information is contained in the
Security
manual.
In the DIGITAL UNIX system, SIA routines, through the appropriate
matrix.conf
file, also control the access and manipulation of both
passwd
and
group
entries, employing several of
the security-related programming routines.
See the
Security
manual
for more information.
The DIGITAL UNIX
login
,
su
, and
passwd
commands, and
xdm
(the workstation login
box) use the SIA interfaces.
The
passwd
and
group
entries in the
/etc/svc.conf
file are provided
in the DIGITAL UNIX system for archival library (like those in the ULTRIX system)
compatibility.
SIA log information is written to the
/var/adm/sialog
file, whenever the
sialog
file is present and enabled.
If you want to manipulate password or group information, contact your Digital Equipment Corporation representative for information on obtaining SIA interface information.
The DIGITAL UNIX system includes most features that are available on typical UNIX systems, such as the ULTRIX system. In many cases, you use the DIGITAL UNIX system in the same way that you use the ULTRIX system. This section briefly describes the DIGITAL UNIX system features. Differences between how DIGITAL UNIX features operate and how the ULTRIX equivalent features operate are described in other chapters of this manual.
The DIGITAL UNIX system has most of the user commands, such as
grep
,
who
,
man
, and
more
, that are available on the ULTRIX system.
In most cases, you
use the same command options and arguments on ULTRIX and DIGITAL UNIX systems.
The DIGITAL UNIX
system also provides the
vi
and
ex
text
editors, among others (such as Emacs).
The interfaces to the editors are the
same, so you need not learn new editing commands to edit files on a DIGITAL UNIX system.
Workstation applications that you use on the ULTRIX system are also available
on the DIGITAL UNIX system; for example, the DIGITAL UNIX system provides the Bookreader software,
the Calendar and Clock software, and the visual differences program,
dxdiff
.
For complete information about user applications and commands,
see
Section 2.3
and
Appendix A.
The DIGITAL UNIX system provides three shells: the C shell (csh
),
the Bourne shell (sh
), and the Korn shell (ksh
).
For information about how these shells compare to the ULTRIX
equivalent shells, see
Section 2.4.
For information about
migrating shell scripts, see
Section 3.2.
The DIGITAL UNIX development environment is similar to the ULTRIX development environment. Both the DIGITAL UNIX system and the ULTRIX system (for RISC users) offer an ANSI C compliant compiler. In addition to compiling ANSI C programs, the compiler includes a compilation mode that allows you to compile programs written in traditional Kernighan and Ritchie (K&R) C.
The programming tools that are available on the DIGITAL UNIX system are traditional
UNIX programming tools and new tools.
You can use the
dbx
debugger on DIGITAL UNIX systems to find errors in your program.
The system includes
the
make
utility for building your application and the
sccs
utility for storing your application's source files.
You can
purchase the DEC FUSE software for use on the DIGITAL UNIX system; DEC FUSE includes
a computer-aided software engineering (CASE) environment for developing software.
Using the DIGITAL UNIX programming software, you can write programs that communicate over a network, that provide windowing user interfaces, that are portable to multiple systems, and that are adaptable to multiple locales.
Once your application is fully developed, you can use the
setld
utility to package the application as a kit for installation
on DIGITAL UNIX systems.
For more information about the DIGITAL UNIX development environment,
see
Chapter 6.
For information on building installable
software kits, see the
Programming Support Tools
manual.
The DIGITAL UNIX system supports the following file systems:
Advanced File System (AdvFS)
UNIX File System (UFS)
Network File System (NFS)
CD-ROM (compact disc read-only memory) File System (CDFS)
Conforms to the ISO 9660 standard.
See
cdfs
(4)
for more information.
Virtual File System (VFS) interface and framework
The VFS interface enables transparent access to UFS and NFS file systems and allows both file systems to run in parallel. Transparent access is accomplished by retaining the traditional operating system interfaces on top of the VFS layer. Therefore, the file system types are not apparent to the user.
A debugging file system that is compatible with the System V, Release
4 specification.
This file system is a development tool that allows any process
to control and monitor the execution of another unrelated process.
See
proc
(4)
for more information.
You set up, check, and maintain DIGITAL UNIX file systems in much the same way that you perform these tasks on ULTRIX systems. For information about administering file systems, see Section 4.8.
System and network administration tasks on a DIGITAL UNIX system are comparable to those on an ULTRIX system.
You can set up your system so that users can print files on local and remote printers. Users can also print PostScript files on local or remote PostScript printers. The remote printing occurs over a Transmission Control Protocol/Internet Protocol (TCP/IP) network.
The DIGITAL UNIX system includes TCP/IP for use on a local area network (LAN)
or wide area network (WAN).
You manage the network components by using many
of the same commands that you use on an ULTRIX system, such as the
arp
,
ifconfig
, and
hostid
commands.
The system also includes the Simple Network Management Protocol
(SNMP) Agent, which gives information to an SNMP network management station.
The DIGITAL UNIX system includes many of the distributed system services available on ULTRIX. In particular, it includes the Berkeley Internet Name Domain (BIND) service and the Network Information Service (NIS, formerly called YP). For time synchronization, the DIGITAL UNIX system includes the Network Time Protocol (NTP).
Like the ULTRIX system, the DIGITAL UNIX system uses the
sendmail
utility as the general-purpose internet mail router.
The system also includes
the
uucp
utility.
You can use
uucp
to copy files between UNIX systems and to execute commands on remote UNIX
systems.
For more information about how the DIGITAL UNIX system and network management environment compares to the same environment on ULTRIX systems, see Chapter 4.
In many cases, you can exchange data easily between DIGITAL UNIX and ULTRIX
systems.
For example, you can mount an ULTRIX file system on a DIGITAL UNIX system.
(For information about performing this task, see
Section 5.1.)
In addition, you can use DIGITAL UNIX commands to read tapes you create with the ULTRIX
tar
and
pxtar
commands.
(For information about
using these commands on a DIGITAL UNIX system, see
Section 5.3.)
You can also use the
cpio
and
ltf
commands
to read and write tape archives.
You can use the
dump
command on an ULTRIX system and the
restore
command to
restore the dump on a DIGITAL UNIX system.
In addition, you can use TCP/IP network
copying facilities.
Users on an ULTRIX system can also exchange data with a DIGITAL UNIX system provided that files are less than 2 gigabytes (GB) in size.
The DIGITAL UNIX system supports Symmetric Multiprocessing (SMP). SMP is a modification to the kernel that allows multiple processors to execute the kernel code simultaneously. SMP activity is accomplished safely by means of locks, which are used to control the concurrent access of shared data structures within the kernel.
The SMP software on DIGITAL UNIX systems has a high degree of commonality with the ULTRIX SMP software. You can migrate your ULTRIX SMP applications to DIGITAL UNIX systems as long as you ensure that the applications conform to the migration information in this manual. There are no specific SMP migration considerations for users or system managers, and the only programming considerations are:
ULTRIX SMP applications can use two system calls,
startcpu
and
stopcpu
, which have no equivalent
calls on DIGITAL UNIX systems.
ULTRIX SMP applications employ the
cpustat
command to display information about the use and state of each CPU in a SMP
system.
The DIGITAL UNIX system employs the
kdbx
debugger
for the same purposes.
See
kdbx
(8)
for more information.
The DIGITAL UNIX system provides many ULTRIX features, but it omits some ULTRIX features. The following list shows features that are available on ULTRIX systems but not on DIGITAL UNIX systems:
Support for VAX hardware
Support for the MIPS RISC hardware
Support for most terminals or printers not manufactured by DIGITAL
Diskless Management Services (DMS) (although there is some support for a dataless environment in DIGITAL UNIX systems)
DECwindows
debugger,
dxdb
(although the DEC FUSE programming environment
is supported)
Kerberos software (see Section 6.9.2)
The DIGITAL Remote Procedure Calling package, DEC RPC (see Section 6.9.1)
Migrating from an ULTRIX system to a DIGITAL UNIX system involves:
Migrating a user from an ULTRIX to a DIGITAL UNIX system
Migrating an ULTRIX system and network management environment to a DIGITAL UNIX system
Migrating an application from an ULTRIX to a DIGITAL UNIX system
You might be involved in one or more of these types of migration.
This section gives a brief overview of the three migration paths, including brief descriptions of the issues involved in migration.
As a user of the DIGITAL UNIX system, you will notice few differences between the DIGITAL UNIX system and the ULTRIX system. Most commands and tools are the same or similar on the two systems. For information about the differences that do exist between the DIGITAL UNIX and ULTRIX user environments, see Chapter 2.
The following list describes the major tasks involved in migrating from an ULTRIX to a DIGITAL UNIX system:
Using commands
Most commands are similar on the DIGITAL UNIX and ULTRIX systems. For a list of specific differences between commands, see Appendix A.
Using shells
You should notice few differences in how the shell you use operates. You might need to modify shell scripts to use them on a DIGITAL UNIX system. For information about porting shell scripts, see Section 3.2.
Setting environment variables
You might need to set the
PATH
,
filec
,
or international environment variables on your DIGITAL UNIX system.
For information
about setting these environment variables, see
Section 3.1.
The system and network administration tasks on both systems are similar. Many of the commands, setup scripts, and utilities you use on an ULTRIX system are available on a DIGITAL UNIX system. The following list describes some of the tasks you might need to perform on a DIGITAL UNIX system as you migrate from an ULTRIX system:
Mount ULTRIX file systems on a DIGITAL UNIX system (as described in Section 5.1).
Read information from tape archives by using the DIGITAL UNIX
tar
command (as described in
Section 5.3).
Add devices to your system after you configure the system (as described in Section 5.4).
Configure daemons for ULTRIX compatibility (as described in Section 5.7 and Section 5.8).
You can migrate an application from an ULTRIX to a DIGITAL UNIX system in one of two ways: either as source code (recommended) or as executable code, as described in the following sections. If the source code is unavailable or you need an operating version of the program while you are migrating source code, you can migrate an executable.
To migrate source code from an ULTRIX to a DIGITAL UNIX system, follow these steps:
Copy your program source files (and
make
files, if any) to the DIGITAL UNIX system.
If you require additional development environment tools to build your application, migrate those tools to the DIGITAL UNIX system.
Modify your
make
files, if necessary, so
that they work on the DIGITAL UNIX system.
Select the appropriate compilation mode and correct any C syntax errors.
Evaluate changes in symbols (undefined symbols, multiply defined symbols) and modify the source code appropriately.
Evaluate your header files (missing header files, changed header file names) and modify the source code appropriately.
Evaluate differences between a 32-bit and 64-bit programming environment and modify the source code appropriately.
Run
lint
, if possible, to identify other
errors.
Correct the errors as you find them.
Evaluate and modify references to libraries and library routines that are provided on ULTRIX systems but not on DIGITAL UNIX systems.
Run your program and correct semantic errors.
Test your program thoroughly on the DIGITAL UNIX system.
For more information about the work needed to complete these tasks, see Chapter 7.
You can migrate a MIPS ULTRIX executable by using the DECmigrate for
DEC OSF/1 Alpha product.
This product is made up of the
mx
translator and the
mxr
run-time system.
The
mx
translator translates only user mode programs.
It does not:
Translate kernel code.
Support applications that read system memory by using
/dev/kmem
or
/dev/mem
.
Support applications that depend on exact memory layout or file formats of system-provided files.
Translate ULTRIX executables older than ULTRIX Version 4.0.
Translate MIPS executables other than ULTRIX and DIGITAL UNIX Version 1.0 executables.
Translate big endian MIPS programs.
Provide precise exception behavior.
Emulate MIPS instruction atomicity.
Translate MIPS II or MIPS III programs (no R4000 processor support).
Enable translated programs to use the DIGITAL UNIX shared libraries.
For more information on the
mx
translator and the
mxr
run-time environment, see the
DECmigrate for DEC
OSF/1 V1.2: Translating Executables
manual.