Go Solo 2 - Contents


Go Solo 2
The Authorized Guide to Version 2 of the Single UNIX®  Specification
ISBN: 0-13-575689-8
Document Number: X909P


Published in the U.K. by The Open Group.

____________________________________________________


         Contents
____________________________________________________



         About the Authors... xv
         About The Open Group.. xvii
         The Business Case for Open Systems. xxi
         About This Document .... xxxi

 Part    1          Introduction .... 1
 Chapter 1          The Single UNIX Specification ...   3
         1.1           Introduction...   3
         1.2           History and Timeline ...   5
         1.2.1            Timeline.....     7
         1.3           The Single UNIX Specification (1994) ......    8
         1.4           The Single UNIX Specification, Version 2 ... 10
         1.5           The X/Open UNIX Brand.... 11
         1.6           Summary ...... 12

 Chapter 2          Product Standards and Brands...... 13
         2.1           The Brand..... 13
         2.2           Product Standards ...... 13
         2.2.1            Components ..... 14
         2.2.2            Profiles ...... 15
         2.3           Conformance Statements .. 15
         2.4           Testing.. 15
         2.5           UNIX 98 16
         2.5.1            The UNIX 98 Product Standard...... 16
         2.5.2            The UNIX 98 Workstation Product Standard. 17

 Chapter 3          The Single UNIX Environment. 19
         3.1           Introduction... 19
         3.2           Formal Standards Alignment...... 20
         3.3           Portability Codes.. 20
         3.4           Common Directories and Devices ..... 22
         3.5           Environment Variables  22
         3.6           YACC Grammars as Specifications... 23
         3.7           Regular Expressions... 23
         3.8           File Access ... 24
         3.9           Programming Environment. 24
         3.9.1            C-language Support. 24
         3.9.2           Feature Test Macros and Name Space Issues ..... 24
         3.9.3           Error Numbers .. 25
         3.9.4           Standard I/O Streams ..... 25
         3.9.5           STREAMS . 25
         3.9.6           Interprocess Communication... 26
         3.9.7           Realtime .... 26
         3.9.8           Threads ..... 26
         3.9.9           General Terminal Interface...... 26
         3.9.10          How to Read an XSH Reference Page.. 27
         3.10         Commands and Utilities Environment 27
         3.10.1          X/Open Shell Command Language  27
         3.10.2          Symbolic Links.. 28
         3.10.3          File Format Notation. 28
         3.10.4          How to Read an XCU Reference Page.. 28
         3.11         X/Open Networking Services ..... 29
         3.12         X/Open Curses Interfaces.. 29
         3.13         Internationalization...... 30

 Chapter 4         System Interfaces .. 31
         4.1          Feature Groups.... 31
         4.2          POSIX.1 System Interfaces  32
         4.3          ISO C Standard Library...... 34
         4.4          POSIX.2 C-language Interfaces . 35
         4.5          IPC Interfaces...... 35
         4.6          General Base Interfaces .... 36
         4.7          Application Internationalization Support.... 39
         4.8          Encryption .... 41
         4.9          Legacy.. 41

 Chapter 5         Commands and Utilities...... 43
         5.1          Options in XCU.... 43
         5.2          Functional Overview.... 43

 Chapter 6         Networking Interfaces . 47
         6.1          Functional Overview.... 47
         6.1.1           X/Open Transport Interface (XTI) ... 47
         6.1.2           Sockets Interfaces ... 48
         6.1.3           IP Address Resolution Interface..... 48
         6.2          Networking Services, Issue 5 Migration.... 48
         6.2.1           Change of size_t to socklen_t . 48
         6.2.2           Introduction of t_scalar_t and t_uscalar_t for XTI . 49
         6.2.3           Introduction of uint16_t and uint32_t for Sockets.. 49
         6.2.4           Thread-safety ... 49
         6.2.5           Scatter/Gather Support ... 50

 Chapter 7          Terminal Interfaces 51
         7.1           Functional Overview.... 51

 Part    2          What s New in Version 2. 53
 Chapter 8          Overview ..... 55
         8.1           Introduction... 55
         8.2           New Interfaces in XSH, Issue 5.. 56
         8.2.1            POSIX Realtime Extension ..... 56
         8.2.1.1             Functional Overview..... 56
         8.2.1.2             Mandatory Functionality  57
         8.2.1.3             Optional Functionality... 57
         8.2.2            POSIX Threads Extension ...... 58
         8.2.2.1             Functional Overview..... 58
         8.2.2.2             Mandatory Functionality  58
         8.2.2.3             Optional Functionality... 59
         8.2.3            X/Open Threads Extension ..... 60
         8.2.4            Dynamic Linking Extensions ... 60
         8.2.5            ISO C Amendment 1 (MSE).... 61
         8.2.6            Data Size Neutrality and 64-bit Support. 61
         8.2.7            Large File Support ... 61
         8.2.8            Miscellaneous ... 61
         8.3           Major Changes in XCU, Issue 5 . 62
         8.3.1            Legacy 62
         8.3.2            Large File Support ... 62
         8.3.3            New Utilities...... 62
         8.4           New Interfaces in Networking Services, Issue 5 ...... 63
         8.5           New Curses Interfaces 63

 Chapter 9          POSIX Realtime ...... 65
         9.1           Introduction... 65
         9.2           Realtime Signals.. 69
         9.3           Synchronized Input and Output.. 70
         9.4           Asynchronous Input and Output. 71
         9.5           Semaphores . 72
         9.6           Memory Locking .. 75
         9.7           Memory Mapped Files and Shared Memory .... 76
         9.8           Priority Scheduling...... 78
         9.9           High-resolution Clocks and Timers.... 79
         9.10          Message Passing. 80

 Chapter 10         POSIX Threads. 83
         10.1          Introduction... 83
         10.2          Thread Management... 85
         10.3          Thread-specific Data... 87
         10.4          Thread Cancellation.... 89
         10.5          Thread Synchronization ..... 90
         10.6          Thread Execution Scheduling..... 92
         10.7         Thread Synchronization Scheduling .. 94
         10.8         Process Creation . 95
         10.9         Signal Interfaces .. 96
         10.10        Thread Creation... 98
         10.11        Blocking Functions...... 98
         10.12        Thread-safe POSIX.1 and C-language Functions .... 99
         10.13        Redefinition of errno.... 102

 Chapter 11        X/Open Threads...... 103
         11.1         Introduction... 103
         11.2         The Aspen Group. 103
         11.3         Extended Mutex Attributes . 104
         11.4         Read-Write Locks and Attributes  106
         11.5         Thread Concurrency Level. 108
         11.6         Thread Stack Guard Size... 108
         11.7         Parallel I/O.... 109
         11.8         Functional Overview.... 109

 Chapter 12        Dynamic Linking..... 113
         12.1         Introduction... 113
         12.2         Functional Overview.... 113

 Chapter 13        ISO C Amendment 1 (MSE) 115
         13.1         Introduction... 115
         13.2         Extended Characters .. 115
         13.2.1          Multibyte Characters 116
         13.3         Headers 118
         13.4         Character Classification ..... 119
         13.5         Mapping Functions...... 121
         13.6         Number Conversion Functions ... 122
         13.7         String Handling .... 122
         13.8         The Input/Output Model ..... 125
         13.8.1          Wide-character Input Functions...... 125
         13.8.2          Wide-character Output Functions ... 126
         13.9         Conversion Functions . 127
         13.10        Miscellaneous Functions .... 130
         13.11        Compatibility Issues.... 130

 Chapter 14        Data Size Neutrality and 64-bit Support..... 133
         14.1         Introduction... 133
         14.2         64-bit Data Models...... 134
         14.3         Data Size Neutrality .... 138
         14.3.1          System Interface Definitions, Issue 5 (XBD). 138
         14.3.2          System Interfaces and Headers, Issue 5 (XSH) ... 138
         14.3.3          Commands and Utilities, Issue 5 (XCU)  141
         14.4         Porting Issues...... 142
         14.4.1          General...... 142
         14.4.2          Declarations...... 142
         14.4.3           Assignments and Function Parameters . 143
         14.4.4           External Interfaces... 144
         14.4.5           Format Strings .. 144
         14.4.6           Constants .. 144
         14.4.7           Pointers ..... 144
         14.4.8           Sizeof( ) ..... 145
         14.4.9           Structures and Unions .... 145

 Chapter 15         Large File Support . 147
         15.1          Introduction... 147
         15.2          Changes to XBD, Issue4, Version 2 .. 147
         15.3          Changes to XSH, Issue4, Version 2 .. 148
         15.4          Changes to XCU, Issue4, Version 2 .. 154
         15.5          Rationale for Changes  156
         15.5.1           Functions not Modified.... 156
         15.5.2           Functions Modified... 156
         15.5.3           General Porting Suggestions... 161
         15.5.4           Considerations for Utilities in Support of Files of Arbitrary Size.. 162
         15.6          Further Information ..... 163

 Chapter 16         Year 2000: The Millennium Rollover.... 165
         16.1          Introduction... 165
         16.2          Preparation... 166
         16.3          API Usage .... 166
         16.4          Command Usage. 167

 Chapter 17         POSIX Software Administration..... 169
         17.1          Introduction... 169
         17.2          History .. 170
         17.3          Scope of POSIX .. 171
         17.3.1           Components ..... 171
         17.3.2           Distributed Roles ..... 172
         17.4          Defining and Creating Software Packages ...... 173
         17.4.1           Defining Software Structures... 174
         17.4.2           Compatibility Matching.... 176
         17.4.3           Dependencies... 176
         17.4.4           Control Scripts .. 177
         17.4.5           Packaging Software . 178
         17.5          Distributing, Installing and Managing Software  179
         17.5.1           Command Overview  179
         17.5.2           Copying Software .... 182
         17.5.3           Installing Software ... 182
         17.5.4           Requesting Responses from the User... 186
         17.5.5           Configuring Software ...... 186
         17.5.6           Listing Software  186
         17.5.7           Verifying Software.... 186
         17.5.8           Modifying Software .. 187
         17.5.9           Removing Software.. 187
         17.6          Extensions to the Standard  187
         17.6.1           Distributed Interoperability 187
         17.6.2           Patching .... 188
         17.6.3           Other Extensions ..... 188

Part     3         Migration ... 189
Chapter  18        Program Migration and Portability  191
         18.1          Feature Groups.... 191
         18.2          The Compilation Environment .... 192
         18.3          Determining the Platform Support ..... 193
         18.4          Functional Duplication. 195
         18.5          Other Programming Considerations .. 197
         18.5.1           Argument Type Changes. 198
         18.5.2           Prototype Changes and Movement  198
         18.5.3           Process Environment Access.. 198
         18.5.4           Pseudo-terminals..... 198
         18.6          Interprocess Communication (IPC) ... 201
         18.7          STREAMS .... 201
         18.8          Threads-safety..... 201
         18.9          Makefile Portability...... 203

 Chapter 19        Interface Tables ...... 205
         19.1         System Service Table . 205
         19.2         Commands and Utilities Table.... 232

 Chapter 20        System Interfaces .. 237

 Chapter 21        Headers  377
         21.1         Header and Name Space Rules. 377
         21.1.1          ISO C Headers . 377
         21.1.2          POSIX.1 and POSIX.2 Headers..... 378
         21.1.3          X/Open UNIX Headers.... 379
         21.2         Names Safe to Use..... 379
         21.2.1          ISO C Reserved Names.. 380
         21.2.2          X/Open Reserved Names  380
         21.3         Header Migration Information..... 383

 Chapter 22        Utilities. 405
         22.1         Introduction... 405
         22.2         Utility Migration Information 405

Chapter  23        C-language Migration .. 439
         23.1         Introduction... 439
         23.2         Compiler  439
         23.3         Function Prototypes .... 440
         23.3.1          Function Declarations ..... 440
         23.3.2          Writing New Code .... 441
         23.3.3           Updating Existing Code... 442
         23.3.4           Mixing Old and New Styles ..... 442
         23.3.5           Variable Number of Arguments ...... 444
         23.4          Promotion ..... 446
         23.4.1           Converting Types..... 446
         23.4.2           Background ...... 446
         23.4.3           Using a Cast..... 446
         23.4.4           Same Result..... 447
         23.4.5           Integral Constants.... 447
         23.5          Tokenization and Preprocessing. 448
         23.5.1           ISO C Translation Phases 448
         23.5.2           Digraph Sequences . 449
         23.5.3           Trigraph Sequences. 449
         23.5.4           Common Usage C Translation Phases.. 449
         23.5.5           Logical Source Lines 450
         23.5.6           Macro Replacement. 450
         23.5.7           String Literal Production.. 450
         23.5.8           Token Pasting ... 451
         23.5.9           New Macros...... 451
         23.5.10          Changes to  define... 452
         23.6          Types.... 452
         23.6.1           Using Type Qualifiers ...... 452
         23.6.2           Incomplete Types..... 454
         23.6.3           Compatible and Composite Types.. 457
         23.7          Expressions .. 459
         23.7.1           Common Usage C Rearrangement  459
         23.7.2           ISO C Rules...... 460
         23.7.3           Advantages of Rearrangement 460
         23.7.4           Other Changes to Expressions 461
         23.7.5           Scope of Identifiers .. 461
         23.8          Internationalization...... 462
         23.8.1           Multi-byte Characters...... 462
         23.8.2           Encoding Variations . 463
         23.8.3           Wide-character Codes .... 463
         23.8.4           Conversion Functions ..... 463
         23.8.5           Features of the C Language.... 464

 Part    4          Case Studies .. 467
 Chapter 24         The Creation of OpenEdition MVS  469
         24.1          Introduction... 469
         24.2          Fork and the Process Model 471
         24.3          Exec and Contents Supervision . 473
         24.4          Signals.. 475
         24.5          Synchronous Signal Delivery...... 476
         24.6          Asynchronous Signal Delivery.... 477
         24.7          Security  479
         24.8          Thread Support.... 480
         24.9         Interprocess Communication...... 482
         24.10        Further Information ..... 485

 Chapter 25        The Mainframe Operating System BS2000/OSD ... 487
         25.1         Introduction... 487
         25.2         The POSIX Subsystem ...... 488
         25.2.1          Process Concept ..... 488
         25.2.2          POSIX Filesystem.... 489
         25.2.3          Coexistence of Interfaces 489
         25.2.4          User Access ..... 489
         25.2.5          ASCII versus EBCDIC .... 490
         25.2.6          Implementation of Network Interfaces ... 490
         25.3         Shell ..... 490
         25.4         Libraries 491
         25.5         Synergy between BS2000 and POSIX ..... 491
         25.6         Porting of Open Software to BS2000. 492
         25.6.1          The Porting Procedure .... 492
         25.7         Porting Experience...... 493
         25.7.1          RCS Source Management System. 493
         25.7.2          ARCIS Document Server  493
         25.7.3          WWW Server.... 494
         25.8         Summary of Porting Experience. 494

 Chapter 26        OpenNT 495
         26.1         A Brief History of OPENNT.. 495
         26.2         The OPENNT Extended POSIX Subsystem Architecture. 497
         26.2.1          Architecture ...... 497
         26.2.2          The Windows NT Filesystem... 498
         26.3         Performance Issues.... 499
         26.4         The WindowsNT Security Model and OPENNT. 500
         26.5         Interoperability with the Win32 Subsystem ...... 501
         26.5.1          NTFS. 502
         26.5.2          The Desktop and User Interface..... 502
         26.5.3          Win32 Application Execution... 502
         26.5.4          OPENNT Sockets and Win32 Winsock... 503
         26.5.5          X11R5 Clients and X11R6 Server .. 503
         26.6         Early Applications Porting Experiences .... 503
         26.6.1          4.4BSD-Lite Source Code 503
         26.6.2          GNU Code. 504
         26.6.3          Perl 5.0...... 504
         26.6.4          xv ...... 504
         26.6.5          Apache ...... 505
         26.7         In Summary .. 505

 Part    5          Appendices ..... 507
 Appendix A         CD-ROM Instructions... 509
          A.1           Contents  509
          A.2           Web Browsers ..... 510
          A.3           The HTML Version...... 510
          A.4           The PDF Version.. 511

 Appendix B          Go Solo 2 CD-ROM Terms and Conditions 513

 Appendix C          Glossary...... 515

 Appendix D          Referenced Documents ...... 549

          Index..... 553


Copyright © 1997 The Open Group.