1    Introduction to Migrating from ULTRIX to DIGITAL UNIX Systems

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.


1.1    DIGITAL UNIX Features Unavailable on ULTRIX Systems

The following DIGITAL UNIX system features are unavailable on ULTRIX systems:

The following sections describe these DIGITAL UNIX features in more detail.


1.1.1    OSF/1 Kernel

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.


1.1.2    Real-Time Kernel

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:

For more information on real-time programming, see the Guide to Realtime Programming.


1.1.3    Standards Compliance

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.


1.1.4    Shared Libraries

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.


1.1.5    Per-Process Open File Descriptors

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.


1.1.6    Logical Storage Manager

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.


1.1.7    Streams Kernel Mechanism

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.


1.1.8    Memory-Mapped Files

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.


1.1.9    Sixty-Four Bit Data Types and Addresses

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.


1.1.10    Security Integration Architecture

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.


1.2    Features Common to ULTRIX and DIGITAL UNIX Systems

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.


1.2.1    User Applications, Commands, and Shells

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.


1.2.2    Development Tools

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.


1.2.3    File Systems

The DIGITAL UNIX system supports the following file systems:

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.


1.2.4    System and Network Administration Tools

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.


1.2.5    Data Interoperability

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.


1.2.6    Symmetric Multiprocessing

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:


1.3    ULTRIX Features Unavailable on DIGITAL UNIX Systems

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:


1.4    Migrating from ULTRIX to DIGITAL UNIX Systems

Migrating from an ULTRIX system to a DIGITAL UNIX system involves:

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.


1.4.1    Migrating as a User

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:


1.4.2    Migrating Your System and Network Administration Environment

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:


1.4.3    Migrating Your Application

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.


1.4.3.1    Migrating Source Code

To migrate source code from an ULTRIX to a DIGITAL UNIX system, follow these steps:

  1. Copy your program source files (and make files, if any) to the DIGITAL UNIX system.

  2. If you require additional development environment tools to build your application, migrate those tools to the DIGITAL UNIX system.

  3. Modify your make files, if necessary, so that they work on the DIGITAL UNIX system.

  4. Select the appropriate compilation mode and correct any C syntax errors.

  5. Evaluate changes in symbols (undefined symbols, multiply defined symbols) and modify the source code appropriately.

  6. Evaluate your header files (missing header files, changed header file names) and modify the source code appropriately.

  7. Evaluate differences between a 32-bit and 64-bit programming environment and modify the source code appropriately.

  8. Run lint, if possible, to identify other errors. Correct the errors as you find them.

  9. Evaluate and modify references to libraries and library routines that are provided on ULTRIX systems but not on DIGITAL UNIX systems.

  10. Run your program and correct semantic errors.

  11. Test your program thoroughly on the DIGITAL UNIX system.

For more information about the work needed to complete these tasks, see Chapter 7.


1.4.3.2    Migrating Executables

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:

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.