About This Volume

On This Page

Introduction to Volume 2 Introduction to Volume 2
Layout of the Guide: Volume 2 Layout of the Guide: Volume 2
Organization of Content Organization of Content
Resources Resources

Introduction to Volume 2

Volume 1 of the UNIX Custom Application Migration Guide discussed how to apply the Envisioning and Planning Phases of the Microsoft® Solutions Framework (MSF) Process Model when conducting a UNIX to Microsoft Windows® migration project. This volume, Volume 2: Migrate Using Windows Services for UNIX 3.5, applies the next phases in the Process Model, the Developing Phase and the Stabilizing Phase, and directs it specifically for using Windows Services for UNIX 3.5. This volume describes the architectural differences between UNIX and Microsoft Interix environments and the features of Interix. Because there are certain differences between UNIX and Microsoft Interix, the UNIX code must be modified for it to work in the Microsoft Windows environment using Windows Services for UNIX 3.5. This volume addresses these potential coding differences by looking at the solution from various categories.

These categories are:

  • Process management.

  • Thread management.

  • Memory management.

  • File management.

  • Infrastructure services.

  • User interface migration.

  • Development considerations for deployment.

  • Functions to change for Interix.

  • Deployment considerations and testing activities.

  • Stabilizing Phase activities.

For each of these categories, this volume:

  • Describes the coding differences between UNIX and Interix.

  • Outlines options for converting the code.

  • Illustrates the options with source code examples.

This information helps you choose the solution that is appropriate to your application; you can use these examples as the basis for constructing your Windows code. This volume provides sufficient information so that you can choose the best method of converting the code. After choosing a method, refer to the standard documentation for details of the Interix functions and application programming interfaces (APIs). References are provided throughout this volume for information on the recommended coding changes.

For more information on activities in the Developing Phase as they relate to a migration project, refer to Chapter 2, “Developing Phase: Process Milestones and Technology Considerations” of this volume.

Intended Audience

This volume is for UNIX developers and testers who are responsible for migrating UNIX code to Windows Services for UNIX 3.5. These developers are UNIX programmers involved in developing the solution on Windows using Windows Services for UNIX 3.5. Various advantages that the developers and testers would gain from this volume are:

  • Developers. Developers can learn about the various alternative methods for migrating from UNIX to Windows and how to choose the best strategy to fit their environment and the application types.

  • Testers. Testers can gain more insight on the testing methodology that is best suited for their migration scenario. Using this guide, they can test the application for various aspects, such as functionality, management, performance, and stability.

Knowledge Prerequisites

The readers of this volume should possess the following knowledge prerequisites:

  • Basic knowledge of UNIX and Windows internals.

  • Hands-on experience on Windows environments.

  • Familiarity with UNIX administration skills.

  • Understanding the configurations with Windows Services for UNIX 3.5.

It is also suggested that you read “About This Guide” (the master preface) as well as the rest of Volume 1, Plan before reading this volume.

Layout of the Guide: Volume 2

The following diagram depicts the layout of the guide and how the volumes of the guide correlate with the components of the MSF Process Model. The white-shaded portion indicates the position of the current volume in the layout of the entire guide.

Figure 0.1. UCAMG organization

Figure 0.1. UCAMG organization

Organization of Content

The content of this volume is organized into the following chapters:

  • About This Volume. This chapter provides information about the organization of the guide and about its intended audience. It also lists the knowledge prerequisites required for this volume and provides resources, such as document conventions, used in this guide.

  • Chapter 1: Introduction to Windows Services for UNIX 3.5. This chapter provides an overview of Windows Services for UNIX 3.5, including its installation and configuration. It also discusses the architectural differences that exist between UNIX and Interix, the core subsystem of Windows Services for UNIX 3.5, to support the UNIX environment on Windows.

  • Chapter 2: Developing Phase: Process Milestones and Technology Considerations. This chapter describes Developing Phase activities and the tools used in the development environment of the Planning Phase for Interix migration. This chapter provides the instructions for developing the solution components in the Interix environment. It also details the application build instruction and debugging techniques, as well as providing a comparison of the source code header files shipped with Interix and other environments.

  • Chapter 3: Developing Phase: Process and Thread Management. This chapter discusses process and thread management in Interix. It also discusses the differences in the process and thread management models of UNIX and Interix environments, providing the suggested workarounds for them.

  • Chapter 4: Developing Phase: Memory and File Management. This chapter discusses memory and file management in Interix and the functions that are used to implement them. It also provides information on file security in the Interix and Windows environments.

  • Chapter 5: Developing Phase: Infrastructure Services. This chapter provides information on the different infrastructure services for Interix, such as signals, IPC components, networking protocols, and sockets.

  • Chapter 6: Developing Phase: Migrating the User Interface. This chapter describes the process of migrating from a UNIX user interface (UI) to a Windows UI. It also guides readers through the steps required to migrate X Windows, Motif, and POSIX applications to the Windows UI.

  • Chapter 7: Developing Phase: Functions to Change for Interix. This chapter describes the functions that need to be changed or removed so that the code compiles under Interix. It also describes the list of C library functions and other APIs along with their recommended replacements in the Interix environment.

  • Chapter 8: Developing Phase: Deployment Considerations and Testing Activities. This chapter discusses the activities to be performed before closing the Developing Phase. It also discusses the Interix development considerations for deployment and the various testing activities in the Developing Phase. It also discusses the key activities that a developer needs to perform in order to prepare the Interix migrated application for a smooth deployment.

  • Chapter 9: Stabilizing Phase. This chapter discusses the different levels of testing and tuning that must be administered to the applications that are migrated to Windows using Windows Services for UNIX 3.5.

Resources

Acronyms

See the acronyms list accompanying this guide for a list of the acronyms and their meanings used in this volume.

Document Conventions

The document conventions used in this volume are primarily designed to help you quickly identify the operating system and the interface (command line or graphical) being discussed—Windows or UNIX. In general, Windows operating-system commands are executed by clicking user interface (UI) elements, and these elements are visually distinguishable by the use of bold text. In contrast, the UNIX operating system typically uses a command-line interface, and these instructions are visually distinguished by the use of Monospace font.

These interface and execution differences are not absolute; and in case visual cues do not unambiguously delineate between operating systems, the text will clearly make this distinction.

Table 0.1 lists the document conventions used in this guide.

Table 0.1. Document Conventions

Text Element

Meaning

Bold text

Used in the context of paragraphs for commands; literal arguments to commands (including paths when they form part of the command); switches; and programming elements, such as methods, functions, data types, and data structures.

Also used to identify UI elements.

Italic text

Used in the context of paragraphs for variables to be replaced by the user.

Also used to emphasize important information.

Monospace font

Used for excerpts from configuration files, code examples, and terminal sessions.

Monospace bold font

Used to represent commands or other text that the user types.

Monospace italic font

Used to represent variables the reader supplies in command-line examples and terminal sessions.

Shell prompts

The Ksh prompt is used in Windows.

Note

Represents a note.

Code

Represents code.

Code Samples and Source Files

This volume contains several code samples to illustrate certain programming concepts. These code samples are available as source files in a folder labeled "src" in the download version of this guide available at https://go.microsoft.com/fwlink/?LinkId=30864.

Chapter 1: Introduction to Windows Services for UNIX 3.5

Chapter 2: Developing Phase: Process Milestones and Technology Considerations

Chapter 3: Developing Phase: Process and Thread Management

Chapter 4: Developing Phase: Memory and File Management

Chapter 5 Developing Phase: Infrastructure Services

Chapter 6: Developing Phase: Migrating the User Interface

Chapter 7 Developing Phase: Functions to Change for Interix

Chapter 8: Developing Phase: Deployment Considerations and Testing Activities

Chapter 9: Stabilizing Phase

Download

Get the UNIX Custom Application Migration Guide

Update Notifications

Sign up to learn about updates and new releases

Feedback

Send us your comments or suggestions