Unix Application Migration Guide (Patterns & Practices)
Preface
- Table 0.1: Document Conventions
Chapter 2: Windows and UNIX Compared
- Table 2.1: Windows and UNIX Processes and Threads
- Table 2.2: File System Characteristics
- Table 2.3: Summary of File Systems Differences
Chapter 4: Assessment and Analysis
- Table 4.1: Big-Endian and Little-Endian Byte Ordering Example
- Table 4.2: Hardware API Calls
- Table 4.3: Archived/Compressed File Suffixes
- Table 4.4: Application Category
- Table 4.5: Standards Supported in Windows Services for UNIX and Interix
- Table 4.6: Xlib and Win32 Event Handling Equivalencies
Chapter 5: Planning the Migration
- Table 5.1: Business Risks
- Table 5.2: Example Issues
- Table 5.3. Example Migration Schedule
Chapter 6: UNIX and Windows Interoperability
- Table 6.1: Security Model Differences
Chapter 7: Creating the Development Environment
- Table 7.1: Perfmtr Keyboard Commands
- Table 7.2: UNIX-like Development Tools Included with Interix
- Table 7.3: Application Decision Matrix
- Table 7.4: UNIX and Windows File Creation Comparison
- Table 7.5: Makefile Macro Examples
- Table 7.6: Makefile Dependency Rules
- Table 7.7: Options for Generating Debug Information
- Table 7.8: Debug Commands
- Table 7.9: gdb Commands
- Table 7.10: Compile Settings
- Table 7.11: Debug Output
Chapter 8: Preparing for Migration
- Table 8.1: Out-of-date Interix 3.0 Ports of Compilers and Tools
- Table 8.2: Macros that Define Systems Limits
- Table 8.3: APIs for File Locking
- Table 8.4: New Functions that Replace Terminal I/O ioctl Calls
Chapter 9: Win32 Code Conversion
- Table 9.1: Common Limit Names and Definitions
- Table 9.2: Job Objects
- Table 9.3: Windows Signals
- Table 9.4: UNIX Signals and Replacement Mechanisms
- Table 9.5: UNIX Thread Attributes
- Table 9.6: Thread-specific Access Rights
- Table 9.7: Process and Thread Priority
- Table 9.8: PriorityClass Values
- Table 9.9: UNIX User and Group Functions Security
- Table 9.10: Win32 User and Group Functions Security
- Table 9.11: Win32 Local Group Functions
- Table 9.12: Win32 Network Management (Global Group) Functions
- Table 9.13: Windows Access-Control Model Components
- Table 9.14: UNIX Standard File Descriptors
- Table 9.15: ioctlsocket Parameters and Semantics
- Table 9.16: File Control Commands and Semantics
- Table 9.17: UNIX Logging System Messages
- Table 9.18: Windows Event Logging Messages
Chapter 10: Interix Code Conversion
- Table 10.1: Interix Header Files in /usr/include, with Linux and Solaris Variants
- Table 10.2: Interix Header Files in /usr/include/sys, with Linux and Solaris Variants
- Table 10.3: BSD-style Calls and Interix Equivalents
- Table 10.4: Process Resource Limit Names
- Table 10.5: Process Resource Limit Names Not Available in Interix
- Table 10.6: Process Group Functions Not Supported by Interix
- Table 10.7: POSIX-supported Signals
- Table 10.8: Platform-Specific Signal Functions Not Supported by Interix
- Table 10.9: Platform-Specific Memory Management Functions
- Table 10.10: Domain and User Names in Interix
- Table 10.11: User and Group Calls Not Supported by Interix
- Table 10.12: User Account Database Functions Not Supported by Interix
- Table 10.13: File I/O APIs Not Supported by Interix
- Table 10.14: Directory Operations Routines Not Supported by Interix
- Table 10.15: Working Directory Routines Not Supported by Interix
- Table 10.16: File System Information Functions Not Supported by Interix
- Table 10.17: Differences Between UNIX statfs and Interix statvfs
- Table 10.18: Host Name Translation Routines Not Supported by Interix
- Table 10.19: Socket Calls Not Supported by Interix
- Table 10.20: Interix Replacements for Re-entrant Routines
- Table 10.21: Transport-level Interface Calls Not Supported by Interix
- Table 10.22: IEEE Floating-Point Environment Control Routines Not Supported by Interix
- Table 10.23: Conversion Routines Not Supported by Interix
- Table 10.24: Regular Expression Function Calls Not Supported by Interix
- Table 10.25: Functions to Implement the Command-Line and Shell APIs in Interix
- Table 10.26: String Handling Functions Not Supported by Interix
- Table 10.27: String Interfaces Found in the Strings.h File
- Table 10.28: System/C Library Functions Not Supported by Interix
Chapter 11: Migrating the User Interface
- Table 11.1: References for X/Motif and Microsoft Windows
- Table 11.2: Common Dialog Box Functions
- Table 11.3: Mouse Event Definitions
- Table 11.4: Functions for Getting Current Focus
- Table 11.5: Functions for Setting Current Focus
- Table 11.6: Fixed Font References
- Table 11.7: Windows Character Types
- Table 11.8: Functions that Replace Terminal I/O ioctl()
- Table 11.9: X Windows GC and Win32 DC Comparable Functions
Chapter 12: Testing the Migration
- Table 12.1: Test Pass and Fail Criteria
- Table 12.2: Test Roles and Responsibilities
- Table 12.3: Risks and Possible Contingencies
- Table 12.4: Testers Responsibility for Test Criteria
- Table 12.5: Bug Severity Guidelines
- Table 12.6: DTC Scenario 1: Left Mouse Button Is Clicked
Chapter 14: Migrating Fortran Code
- Table 14.1: Fortran, C/C++, and Win32 Calling and Naming Conventions