A TECHNICAL GUIDE TO OS/2 2.0 January 1993 Martin McElroy European Personal Systems Center (EPSC) Basingstoke UK MCELROM at NHBVM7 +44 (0)256 343204 A TECHNICAL GUIDE TO OS/2 2.0 IBM A TECHNICAL GUIDE TO OS/2 2.0 ii NOTICES _______ TRADEMARKS __________ The following terms are trademarks or registered trademarks of the IBM Corporation in the United States and/or other countries: OS/2 Extended Services Presentation Manager NetView WIN-OS/2 Workplace Shell AIX IBM DB2 DDCS/2 Operating System/2 SQL/DS OS/400 RISC PS/2 RISC System/6000 Systems Application Architecture SAA SAA Distributed Database Connection Services/2 SQL System/370 Audio Visual Connection All trademarks appearing in this document are owned by their respective companies. DISCLAIMER __________ Some of the information in this paper concerns future products, or future releases of products currently commercially available. The discussion regarding Microsoft Windows is based upon information which the Microsoft Corporation has made publically available, and is subject to change. The description and discussion of IBM's future products, performance, functions and availability are based upon IBM's current intent and are subject to change. SPECIAL NOTICES _______________ References in this publication to IBM products, programs, or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM program, product or service is not intended to imply that only IBM's program, product or service may be used. Any functionally equivalent program, product or service may be used instead. IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not imply giving any license under any patent or pending patent. Notices iii PREFACE _______ This document describes the features and benefits of OS/2 Version 2.0 from a technical perspective. It is aimed at customer technical staff, software developers, IBM staff, dealers and business partners, and anyone else who needs to understand the detail of how OS/2 2.0 has been designed and implemented. Its primary aim is to help those evaluating the product to understand why OS/2 2.0 is the platform of choice for the 90s. The structure of the document is designed to lead the reader from an awareness of the needs of the PC systems of the 90s, to an understanding of how OS/2 2.0 meets those needs. It therefore covers the design of OS/2 as well as its key features, and goes on to discuss future directions for OS/2. The guide can either be read sequentially, in its entirety, or individual sections may be used for reference purposes, relating to specific aspects of OS/2 (such as DOS compatibility). To help in the latter use, here is a summary of the aim and contents of each section: OS/2 VERSION 2.0 sets the background against which OS/2 has been developed. ________________ It describes how the PC environment is radically different from that of the 80s, and the resulting needs of customers deploying PC systems. It also recounts how OS/2 has been designed to address those needs, culminating in release 2.0. WHY OS/2? outlines the most important reasons why OS/2 is the platform of _________ choice for the 90s. It is a summary of the arguments provided in the rest of the document. It can be regarded as a management summary, and as such is designed so that it can also be used standalone, separate from the rest of the document. It is suitable for use in proposals, or customer reports on OS/2 2.0. OS/2 2.0 KEY ELEMENTS prefaces the three chapters on DOS, Windows and OS/2 _____________________ support that follow, by describing some of the technologies that underpin the whole system. Features such as multi-tasking, hardware support, 32-bit design and Multiple Virtual DOS Machines (MVDM) are the foundation for many of the specific aspects described in the three sections that follow. They are also fundamental to understanding OS/2's superiority to DOS-based systems. BETTER DOS describes the extensive support for DOS applications, and the ways __________ in which OS/2 2.0 provides a better environment for running DOS applications than DOS itself. This section includes discussion of the memory usage, protection and the steps taken to ensure the widest possible compatibility with existing DOS applications. BETTER WINDOWS begins by explaining some of the aspects of DOS/Windows 3.x, ______________ in order to show how OS/2 2.0 provides a better Windows environment. An important factor is the discussion of how DOS/Windows 3.x is used widely for running multiple DOS applications, perhaps even more than for running Windows applications. This leads on to a description of how OS/2 2.0 is a superior multi-DOS environment, which also runs Windows applications, supporting Preface iv Windows features such as DDE, clipboard and OLE. The section concludes with a brief discussion of why many developers are already porting their Windows applications to OS/2, and some of the tools available to help. BETTER OS/2 describes some of the additional features in OS/2 2.0 compared ___________ with OS/2 1.3. It illustrates the benefits of a 32-bit OS/2, and discusses migration from 16-bit OS/2 1.x. WORKPLACE SHELL discusses the user interface of OS/2 2.0. It begins by _______________ outlining the reasons why OS/2 2.0 uses a new user interface model, and the benefits it provides. Emphasis is placed on the fact that users have greater flexibility to work the way they want, and concentrate on the information they are working with, not the steps the computer needs to follow. This section also describes some of the components and features of the Workplace Shell, comparing them with older GUI systems like DOS/Windows. OS/2 IN A CONNECTED ENVIRONMENT points out how OS/2 2.0 is the client of _______________________________ choice in client-server systems, and is the base for a family of products which connect the OS/2 client into LAN, mini and host based systems, including open systems. Some of the OS/2 products that offer these features (Extended Services, OS/2 LAN Server, TCP/IP for OS/2) are briefly described. Another crucial element in considering connected, rather than standalone systems, is the ability to support systems management tools, so that the cost of maintaining and managing the system does not exceed the benefits. This section also discusses migrating from older connectivity products such as DOS-based terminal emulators and networking products. FUTURES describes some of the areas in which OS/2 is expected to be enhanced _______ to address the growing sophistication of PC usage, and emerging technologies such as distributed computing, multimedia and object-oriented technology. It aims to provide an understanding of the framework within which OS/2 will continue to develop throughout the 90s. The APPENDICES give some background information on OS/2 2.0 and comparisons __________ with other environments. APPENDIX A compares OS/2 2.0 features with those of DOS/Windows 3.x, including a detailed comparison of support for DOS applications APPENDIX B discusses the hardware requirements for OS/2 2.0 and gives a summary of performance considerations and tuning hints. APPENDIX C gives a guide to other books, publications and materials relating to OS/2 2.0, where the reader may find more information. To use the guide most effectively, it is important not only to understand its contents, but also its purpose. Although the document is technical in nature, it does not aim to be a technical reference. This is beyond the scope of a document of this length. Those looking for such details should consult the OS/2 Technical Compendium referenced in the Appendices (see Appendix C, "Further reference materials" on page 153). This guide stands in technical content and level of detail, between the product information brochure, and the comprehensive discussion of the OS/2 Technical Compendium. The guide covers OS/2 function in the release made generally available at the end of March 1992. It gives some discussion of planned updates to be made Preface v available during 1992, but details may change before such updates are available. Readers are advised to check with IBM representatives or Authorised Dealers for specific dates and functions. Although this guide is suitable as an introduction to OS/2 for software developers, it is NOT intended as a developers' guide. Issues for programmers ___ are dealt with only as they affect the fundamental OS/2 architecture or in as much as they concern the OS/2 user. More detailed information for OS/2 programmers may be obtained from your local IBM contacts or via the OS/2 Developer Assistance Program, or on local bulletin boards or Compuserve. No guide to OS/2 can pretend that the product exists only in a standalone environment. The chapter OS/2 IN A CONNECTED ENVIRONMENT discusses how OS/2 _______________________________ 2.0 is ideally suited to the needs of the connected PC, whether it be LAN-based, or integrated within an enterprise network. It also describes in brief some of the other members of the OS/2 family, such as Extended Services for OS/2, or OS/2 LAN Server. However, detailed discussion of these products would probably double the size of the document. A separate technical guide covering the OS/2 systems extensions is planned (contact your IBM representative for more information). References to Microsoft Windows 3.x are made to denote the versions of Windows currently available (3.0 and 3.1) which act as an extension to DOS, running on a DOS base. The term, "Windows 3.x" is used throughout the guide where the comment is applicable to both 3.0 and 3.1. A specific version number is used when talking only about one or other release. References in this document to Windows/NT (which Microsoft has announced they expect to ship in 1993) are based on information which the Microsoft Corporation has made publicly available. Preface vi CONTENTS ________ NOTICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Special notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIII TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIII OS/2 VERSION 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 The changing PC environment . . . . . . . . . . . . . . . . . . . . . . . 1 Cheaper processors and memory . . . . . . . . . . . . . . . . . . . . . . 3 OS/2 so far . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 WHY OS/2? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 The best of both worlds . . . . . . . . . . . . . . . . . . . . . . . . . 5 Broad appeal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Freedom of choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 A productive environment for the user . . . . . . . . . . . . . . . . . . 6 Better DOS, Windows and OS/2 . . . . . . . . . . . . . . . . . . . . . . 6 A platform you can rely on . . . . . . . . . . . . . . . . . . . . . . . 7 Superior connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . 7 The integrated system . . . . . . . . . . . . . . . . . . . . . . . . . . 8 32-bit power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Platform for growth . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Value for money . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Exploits today's investment, and is a base for the future . . . . . . . 10 OS/2 2.0 KEY ELEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . 11 32-bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Flat memory model . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Large memory address space . . . . . . . . . . . . . . . . . . . . . 12 Virtual memory . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Mixed 16-/32-bit environment . . . . . . . . . . . . . . . . . . . . 12 Intel 386/486 exploitation . . . . . . . . . . . . . . . . . . . . . . 13 Growth in processor power . . . . . . . . . . . . . . . . . . . . . . 13 386/486 now majority of shipments . . . . . . . . . . . . . . . . . . 14 386SX versus DX . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 486SX and DX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Features of 386 chip used by OS/2 2.0 . . . . . . . . . . . . . . . . 14 Multiple Virtual DOS Machines (MVDM) . . . . . . . . . . . . . . . . . 18 Contrast with OS/2 1.3 DOS support . . . . . . . . . . . . . . . . . 18 Memory: Conventional, Expanded, Extended . . . . . . . . . . . . . . 21 MVDM memory management . . . . . . . . . . . . . . . . . . . . . . . 23 Virtual Device Drivers (VDDs) . . . . . . . . . . . . . . . . . . . . 24 Multi-tasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Contents vii Why do I need multi-tasking? . . . . . . . . . . . . . . . . . . . . 28 What is pre-emptive multi-tasking? . . . . . . . . . . . . . . . . . 29 Why is it important? . . . . . . . . . . . . . . . . . . . . . . . . 30 Multi-tasking and the user interface . . . . . . . . . . . . . . . . 33 File systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 High Performance File System (HPFS) . . . . . . . . . . . . . . . . . 34 Enhanced FAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 SCB exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Broad hardware support . . . . . . . . . . . . . . . . . . . . . . . . 35 BETTER DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Multiple DOS applications . . . . . . . . . . . . . . . . . . . . . . . 38 Application integration . . . . . . . . . . . . . . . . . . . . . . . . 39 Multi-tasking of DOS applications . . . . . . . . . . . . . . . . . . . 40 Pre-emptive multi-tasking . . . . . . . . . . . . . . . . . . . . . . 40 Overlapped I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Access to OS/2 file system . . . . . . . . . . . . . . . . . . . . . 41 Memory usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Comparison with memory usage under DOS . . . . . . . . . . . . . . . 41 Expanded and Extended Memory . . . . . . . . . . . . . . . . . . . . 43 Multiple DOS applications - effect on memory . . . . . . . . . . . . 44 Reliability and protection . . . . . . . . . . . . . . . . . . . . . . 44 Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Overcoming OS/2 1.3 limitations . . . . . . . . . . . . . . . . . . . 45 DOS device drivers . . . . . . . . . . . . . . . . . . . . . . . . . 46 What DOS version? . . . . . . . . . . . . . . . . . . . . . . . . . . 47 DOS Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Migrating applications . . . . . . . . . . . . . . . . . . . . . . . 51 Virtual Machine Boot (VMB) . . . . . . . . . . . . . . . . . . . . . 51 DOS extenders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 BETTER WINDOWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 What is MS-Windows? . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Windows 3.x modes . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Windows 3.x key aspects . . . . . . . . . . . . . . . . . . . . . . . 55 OS/2 versus Windows as a multi-DOS environment . . . . . . . . . . . . 60 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Running Windows applications under OS/2 . . . . . . . . . . . . . . . . 65 Standard mode support . . . . . . . . . . . . . . . . . . . . . . . . 65 386 Enhanced mode . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Contrast with previous approaches (BCL) . . . . . . . . . . . . . . . 67 How they run . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Full Screen or Seamless . . . . . . . . . . . . . . . . . . . . . . . 69 Clipboard/DDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Windows 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 A better Windows? . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Porting Windows applications to OS/2 . . . . . . . . . . . . . . . . . 75 IBM/Micrografx porting tools . . . . . . . . . . . . . . . . . . . . 77 BETTER OS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Contents viii Graphical installation . . . . . . . . . . . . . . . . . . . . . . . . 78 Boot Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 OS/2.0 - the 32-bit system . . . . . . . . . . . . . . . . . . . . . . 80 Why 32-bit OS/2? . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Migration 16- to 32-bit . . . . . . . . . . . . . . . . . . . . . . . 84 OS/2 - a 32-bit API - TODAY . . . . . . . . . . . . . . . . . . . . . 84 WORKPLACE SHELL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Why another user interface? . . . . . . . . . . . . . . . . . . . . . . 87 An INFORMATION-oriented user interface . . . . . . . . . . . . . . . . 89 Workplace Shell components . . . . . . . . . . . . . . . . . . . . . . 90 User interface elements . . . . . . . . . . . . . . . . . . . . . . . 90 Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Extra facilities . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Adobe Type Manager (ATM) . . . . . . . . . . . . . . . . . . . . . . 99 LAN-independent shell . . . . . . . . . . . . . . . . . . . . . . . . 101 System Object Model (SOM) . . . . . . . . . . . . . . . . . . . . . . 103 Moving from a previous GUI . . . . . . . . . . . . . . . . . . . . . . 104 Benefits of the Workplace Shell . . . . . . . . . . . . . . . . . . . . 107 Easy to learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Flexible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Compatible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Consistent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Information-oriented . . . . . . . . . . . . . . . . . . . . . . . . 108 Integrating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 OS/2 IN A CONNECTED ENVIRONMENT . . . . . . . . . . . . . . . . . . . . 109 OS/2 for client-server . . . . . . . . . . . . . . . . . . . . . . . . 109 The OS/2 family of networking extensions . . . . . . . . . . . . . . . 111 Extended Services for OS/2 . . . . . . . . . . . . . . . . . . . . . 111 DDCS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 OS/2 LAN Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 NetWare from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . 114 LAN Enabler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 IBM Network Transport Services/2 . . . . . . . . . . . . . . . . . . 115 Open systems connectivity . . . . . . . . . . . . . . . . . . . . . . 115 Systems management . . . . . . . . . . . . . . . . . . . . . . . . . . 116 IBM LAN NetView family . . . . . . . . . . . . . . . . . . . . . . . 117 Configuration, Installation, Distribution (CID) . . . . . . . . . . . 118 Commitment to open standards . . . . . . . . . . . . . . . . . . . . 120 Migration from existing connectivity products . . . . . . . . . . . . . 120 Networking on OS/2 . . . . . . . . . . . . . . . . . . . . . . . . . 120 DOS communications applications under OS/2 . . . . . . . . . . . . . 121 FUTURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 OS/2 1992 developments . . . . . . . . . . . . . . . . . . . . . . . . 123 32-bit system extensions (communications, database, LAN) . . . . . . . 124 Multimedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Pen-based computing . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Systems management . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Presentation Manager futures . . . . . . . . . . . . . . . . . . . . . 127 Contents ix 32-bit implementation . . . . . . . . . . . . . . . . . . . . . . . . 127 Continuing object-oriented direction . . . . . . . . . . . . . . . . 128 Distributed PM . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Object-oriented environments . . . . . . . . . . . . . . . . . . . . . 128 Distributed computing . . . . . . . . . . . . . . . . . . . . . . . . . 130 AIX interoperability . . . . . . . . . . . . . . . . . . . . . . . . . 132 Future Windows compatibility . . . . . . . . . . . . . . . . . . . . . 132 Portable version of OS/2 . . . . . . . . . . . . . . . . . . . . . . . 133 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 ----------------------------------------------------------------------------- APPENDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 APPENDIX A. COMPARISON TABLES . . . . . . . . . . . . . . . . . . . . 136 DOS environments . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 OS/2 2.0 compared with Windows 3.0/3.1 . . . . . . . . . . . . . . . . 139 APPENDIX B. HARDWARE REQUIREMENTS AND PERFORMANCE . . . . . . . . . . 146 Minimum requirements . . . . . . . . . . . . . . . . . . . . . . . . . 146 Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Memory size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Disk space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Performance considerations . . . . . . . . . . . . . . . . . . . . . . 150 Tuning hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 APPENDIX C. FURTHER REFERENCE MATERIALS . . . . . . . . . . . . . . . 153 IBM ITSC OS/2 2.0 Technical Compendium ("Red Books") . . . . . . . . 153 The OS/2 Developer (previously Personal Systems Developer) . . . . . 154 Personal Systems Technical Solutions . . . . . . . . . . . . . . . . 154 OS/2 White Papers . . . . . . . . . . . . . . . . . . . . . . . . . . 154 IBM OS/2 Information . . . . . . . . . . . . . . . . . . . . . . . . 155 IBM OS/2 Applications Solutions Directory . . . . . . . . . . . . . . 156 CUA Vision materials . . . . . . . . . . . . . . . . . . . . . . . . 156 OS/2 in the Corporate Environment . . . . . . . . . . . . . . . . . . 157 OS/2 Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 The Design of OS/2 . . . . . . . . . . . . . . . . . . . . . . . . . 157 Other OS/2 Books . . . . . . . . . . . . . . . . . . . . . . . . . . 158 OS/2 Monthly . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Moving to the Workplace Shell video . . . . . . . . . . . . . . . . . 160 OS/2 Frequently Asked Questions (FAQ) . . . . . . . . . . . . . . . . 160 OS/2 2.0 Information and Planning Guide . . . . . . . . . . . . . . . 160 APPENDIX D. OS/2 BULLETIN BOARD SYSTEMS . . . . . . . . . . . . . . . 161 IBM Bulletin Boards . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Other BBSs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Contents x FIGURES _______ 1. Processor shipments and decreasing memory prices . . . . . . . . . . 3 2. Memory: Conventional, Expanded, Extended . . . . . . . . . . . . . 21 3. How VDDs work . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4. Multi-tasking under Windows 3.x . . . . . . . . . . . . . . . . . 30 5. Multi-tasking under OS/2 . . . . . . . . . . . . . . . . . . . . . 31 6. Multiple DOS applications in windows on the Workplace Shell desktop 38 7. DOS application memory space - a comparison . . . . . . . . . . . 41 8. DOS Settings notebook . . . . . . . . . . . . . . . . . . . . . . 47 9. Migrate Applications object . . . . . . . . . . . . . . . . . . . 51 10. Windows application sales as a proportion of total PC application sales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 11. Number of Windows applications in the top 20 selling applications 58 12. Windows user survey quoted in PC Magazine June 11, 1991 issue . . 59 13. Single and Multiple application Windows groups . . . . . . . . . . 68 14. Windows Full Screen and Seamless Sessions . . . . . . . . . . . . 70 15. How Seamless Windows works . . . . . . . . . . . . . . . . . . . . 71 16. Installation program - progress indicator . . . . . . . . . . . . 79 17. Comparison of 32- and 16-bit performance - REXX . . . . . . . . . 81 18. OS/2 Workplace Shell . . . . . . . . . . . . . . . . . . . . . . . 88 19. Development of user interface . . . . . . . . . . . . . . . . . . 89 20. Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 21. Slider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 22. Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 23. Master Help Index . . . . . . . . . . . . . . . . . . . . . . . . 98 24. LAN Server Tree view . . . . . . . . . . . . . . . . . . . . . . . 101 25. Folder with network resources . . . . . . . . . . . . . . . . . . 102 26. Dragging a shadow of a network resource to the desktop . . . . . . 102 27. Drag and drop printing on the network . . . . . . . . . . . . . . 102 28. The OS/2 family of networking extensions . . . . . . . . . . . . . 109 29. OS/2 - an object-oriented future . . . . . . . . . . . . . . . . . 130 Figures xi TABLES ______ 1. Memory management models . . . . . . . . . . . . . . . . . . . . . 15 2. DOS environments - OS/2 1.3 and 2.0 compared . . . . . . . . . . . 19 3. Virtual Device Drivers . . . . . . . . . . . . . . . . . . . . . . 27 4. Multi-tasking - Windows 3.x and OS/2 2.0 . . . . . . . . . . . . . 32 5. Memory comparison: OS/2 2.0, DOS 5.0, Windows 3.1 enhanced mode . 42 6. Some VDM DOS Settings . . . . . . . . . . . . . . . . . . . . . . 48 7. Windows 3.x and OS/2 1.3 vs. Workplace Shell . . . . . . . . . . . 105 8. OS/2 systems management tools . . . . . . . . . . . . . . . . . . 116 9. Comparison of DOS environments . . . . . . . . . . . . . . . . . . 138 10. OS/2 2.0 compared to Windows 3.0/3.1 . . . . . . . . . . . . . . . 139 11. OS/2 product information . . . . . . . . . . . . . . . . . . . . . 156 Tables xii OS/2 VERSION 2.0 ________________ THE CHANGING PC ENVIRONMENT ___________________________ In 1981, when IBM introduced the first IBM Personal Computer, no-one anticipated how much it would change the face of the computer industry. In the first half of the 1980s, PC use was mainly confined to improving personal productivity by using spreadsheets, word processors and other widely available applications. However, it has been clear from the mid-1980s and beyond that the PC needs to perform a broader role in the organisation. As greater amounts are spent on PC technology, more is being demanded, and increasingly the PC is being seen as a "window" on the enterprise, a single screen from which company-wide information resources can be accessed, and a base for mission critical, "line-of-business" applications that previously would only have run on a mainframe. Thus, PCs have been increasingly connected together in Local Area Networks (LANs) and to host computers, making them a critical part of the corporate data network. In addition, new technologies like Graphical User Interfaces (GUIs) and multimedia, along with greater connectivity, offer the potential to provide even more information in an easily accessible manner, so that not only can more USES be found for PCs, but also more USERS. In this way, PCs can be used ____ _____ to transform the business, not just increase productivity or automate existing processes. And the trend towards "rightsizing" applications continues, moving critical applications to PCs on a LAN, using a client-server approach. The market analysts Forrester Research published a report in May 1992, identifying the growth in demand for a new "super client," driven by the migration of business applications towards LANs and client-server. Unfortunately, much of this remains an aspiration, rather than reality. An article in a June 1990 issue of PC Week said that the PC must now "grow up," _______ saying that PCs must be considered as "business tools," not "microcomputers." But a number of requirements must be in place before the PC can "grow up" and before the "super client" can emerge: o "INDUSTRIAL STRENGTH" RELIABILITY: unless the PC can demonstrate itself __________________________________ to be as robust an environment as the host computer, it cannot expect to take over some of the applications the host runs today, nor even participate fully in sharing those applications via a client-server or co-operative processing setup. There is little point in having a reliable server or host if the client platform is unstable. o NETWORKING "BUILT IN": the PC environment needs to allow straightforward ______________________ and simultaneous connection to a variety of other platforms: LAN, OS/2 Version 2.0 1 mid-range, UNIX and mainframe, and to be able to handle the variety of communications protocols that results from the multi-vendor environment in most companies. o PERFORMANCE: the PC platform must demonstrate that it can adequately ____________ share the processing load, by exploiting the power of the base hardware. Since most client-server and connectivity applications will require multiple processes, the ability to run several concurrent tasks efficiently is fundamental. In this respect, the requirement for performance measurement goes beyond the simple benchmarking of one application at a time, and leads towards determining overall throughput and concurrency. o WIDE APPLICATION CHOICE: the platform of the 90s should build on ________________________ compatibility with existing productivity applications, and allow "mission-critical" applications to be developed for the same platform, so that the user's system can handle both business and productivity applications. o EASE OF USE AND LOW TRAINING COSTS: in expanding the use of the PC, ___________________________________ additional complexity in terms of communications and multiple applications are inevitably introduced. These must be implemented while presenting the user with a way of working the system that is as easy to learn and adapt to as possible, both for the user's sake (for better user adoption) and for the organisation's (in less "down time" while learning the system). This applies not only to existing users: to expand the use of the PC and bring in more users, to make it a truly business system, barriers to learning the system must be lowered. o EASILY MANAGED: put simply, the costs of installation, integration, _______________ maintenance and updates most not exceed the benefits of running the system. o INVESTMENT PROTECTION: all of these aims must be achieved without ______________________ completely starting from scratch. To retain users' comfort and capitalise on the existing investment in applications and hardware, maximum use must be made of the systems and applications in place, where possible integrating them with the new systems. But the design of such a system should offer compatibility, but not be constrained by the past. Investment EXPLOITATION is as important as protection in the long term. ____________ All in all, the requirements of the PC systems of the 90s can be summed up in one word: INTEGRATION. The means of integration will be software, and in ___________ particular the operating environment. Once the basis is there, applications to exploit it will follow. In short, an advanced operating system is needed for the PC of the 1990s, one that can exploit the benefits of the ten years' worth of productivity applications, while moving the PC platform forward to address the needs of the 1990s and become a "business" machine, rather than just a productivity tool. OS/2 Version 2.0 2 CHEAPER PROCESSORS AND MEMORY _____________________________ Some of the obstacles to the widespread use of an advanced platform, such as high memory costs and insufficient processor capacity, are now being removed. Memory prices have fallen dramatically over the last three or four years, and the recent development of the 16 megabit DRAM chip means that memory is being packaged in ever larger units (4MB or in future 8MB at a time). This will continue the rise in the average amount of memory installed in PCs: in 1992, nearly all IBM PS/2s using an Intel i386SX processor or above, ship with at least 4MB of memory installed as standard, and nearly all other PC vendors are doing the same. Indeed, 8MB is no longer an unusual configuration, and many high end machines can be installed with 16 and even 32MB of memory. Furthermore, processor power is increasing rapidly, and Intel's i386 processor family (i386SX and i386DX) has become the largest volume Intel processor shipped in PCs. According to industry estimates, in 1991, the majority of new PC shipments had a 386SX or above, and by the mid-1990s this figure will increase to over 90% as the i486 ships in greater volume. In fact, recent changes in the competitive microprocessor market, have led to large reductions in prices on even 486 chips, particularly the 486SX, so that some vendors are even using the 486SX as the mainstream processor across their product range. Therefore, 32-bit processors, whether 386 or 486, completely dominate new shipments of PCs. The result of this is that the new PCs shipped have a minimum of a 386SX and 4MB of memory, and commonly a 486SX and perhaps 8MB. This enables substantially more to be done with the PC platform and, in particular, an advanced operating system base that can really begin to fulfil the PC's potential. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 1. Processor shipments and decreasing memory prices OS/2 SO FAR ___________ In the mid-1980s, IBM realised the need for an advanced platform, and saw that single-tasking DOS was not likely to be able to meet these demands. IBM therefore set out with Microsoft to develop OS/2. In 1987, the first character-based version, OS/2 1.0 appeared, followed by the inclusion of the Presentation Manager GUI in Version 1.1 (1988), and by Version 1.2 in 1989. These were all based on the Intel 80286 (286) processor's protected mode, and were therefore 16-bit releases. Intel 386-based machines were supported, but their full 32-bit potential was not exploited because of the requirement to support the large base of 286 machines at the time. These first releases provided the basis for a "platform of the 1990s," but the learning curve involved in providing the operating system function itself and in developing applications to exploit it, proved a greater challenge than expected. OS/2 Version 2.0 3 In 1990, IBM took over chief responsibility for the 16-bit versions of OS/2, and later that year, produced Version 1.3, which has become a widely used platform among companies who are beginning to develop in-house "line-of-business" applications, benefiting from its multi-tasking, large memory, industrial strength robustness and protection between processes. In addition, 1.3 provided these capabilities with lower memory requirements than previous releases, while adding extra features such as high quality font support via the built-in Adobe Type Manager. Although OS/2 1.3 has been highly regarded as a platform for line-of-business applications, limits in the capability of the 286 processor set bounds on what could be achieved in terms of compatibility with the existing range of DOS productivity applications. This, in turn, placed limits on the level of integration between new applications and the existing, extensive installed base of DOS applications. OS/2 2.0, which first shipped in March 1992, has been designed to build on the strengths of OS/2 1.3, such as multi-tasking and threading, robust protection between applications, and large memory support. It adds to those facilities, greater compatibility with the existing installed base of DOS and Windows applications, so that users can choose from the widest range of applications on an Intel-based platform. Because it is designed for 32-bit processors like the 386 and 486, it can escape the limitations of the 286, and provide not only a better platform for supporting old applications, but a new foundation for 32-bit applications which can fully exploit the capabilities of the 32-bit hardware. That is why OS/2 2.0 is the INTEGRATING ___________ PLATFORM, bringing together the investments of the past, and providing a base ________ for the future. OS/2 Version 2.0 4 WHY OS/2? _________ This section summarises the reasons why OS/2 is the platform of choice for the 1990s: THE BEST OF BOTH WORLDS _______________________ In the PC environment of the 90s, where both personal productivity and line-of-business applications are required, only OS/2 can satisfy both needs. It provides a better platform for DOS applications than DOS itself, and runs the widest range of DOS and Windows applications, as well as being the best platform for running in-house mission critical applications, with its industrial strength, robust protection, and powerful multi-tasking. You don't have to choose between different systems for your different needs - OS/2 can do both. BROAD APPEAL ____________ OS/2 2.0 is, therefore, a platform of broad appeal, not just for high end usage, or for niche applications like servers, but as a client system, and a productivity machine. You do not need to be a "power user" to appreciate the benefit of running several DOS and Windows applications on a reliable base. Not only the features of the product, and the applications it can run, but its price and the breadth of PC systems it can run on, have been planned to address the widest possible audience of PC users. And this has already been proved to be true. On August 12th, 1992, IBM announced that it had shipped one million copies of OS/2 2.0 since its initial shipment in March. This represents, according to data from independent estimates, an initial success comparable to that claimed for DOS/Windows 3.0 in 1990. During the first ten years of the PC, users, IS staff, and developers found it difficult to arrive at a common platform: DOS and Windows satisfied the users's needs for productivity applications, but lacked the reliability and full connectivity support to be trusted in mission-critical environments by IS staff and developers, whose systems remained mostly on the mini and mainframe. However, OS/2 2.0 is a platform that can appeal to all three communities; the right choice for the IS strategy, can now also be the platform that developers and users can choose for themselves. FREEDOM OF CHOICE _________________ Today's computing environment can be confusing: the sheer variety of options can be overwhelming. And in making choices about hardware and software platforms, it is difficult to follow a path which keeps a wide range of options open. Too often choices can be constrained by compatibility issues or by a limited growth path. OS/2 2.0 aims to simplify the decision by providing a free choice: the widest range of applications on a wide range of hardware. Why OS/2? 5 OS/2 2.0 can run DOS, Windows and OS/2 16-bit applications; it provides the widest choice of applications on an Intel-based platform. More and more 32-bit OS/2 applications are appearing, making the choice even greater. In fact, OS/2 2.0 is such a good environment for DOS and Windows applications, that even if you only use DOS applications on a 386-based machine, OS/2 2.0 is the best environment to run them in. Furthermore, all applications running under OS/2 2.0, whether DOS, Windows or OS/2 applications, gain added value from working together; they can share information and be run from the common Workplace Shell desktop. This not only protects your current investment in DOS, Windows and OS/2 applications, but adds value to them by integrating them together. OS/2 2.0, and Extended Services and OS/2 LAN Server, are supported on a wide range of IBM-compatible hardware as well as IBM PS/2s. This means you can run OS/2 with confidence on hundreds of machines from vendors including Compaq, Olivetti, Dell, Hewlett Packard and Toshiba, and with IBM support. In fact, even though IBM cannot test OS/2 on all the models and manufacturers in the market, it is likely that most PCs equipped with an Intel 386SX or above processor, will work. A PRODUCTIVE ENVIRONMENT FOR THE USER _____________________________________ OS/2 provides an object-oriented user interface, the Workplace Shell, which allows users to think of the information they want to work with, not think first of what application needs to be loaded. This is a business-oriented, rather than computer-oriented way of working. In this way, users become more productive. They can concentrate more on what they want to do, and less on how to do it. The Workplace Shell also provides a single, consistent environment in which multiple applications can be loaded from different sources. It is an easy environment to learn, since once you know how to drag a file's icon with the mouse to put it into a folder, you can use the same operation to print it, and to copy it to another disk or folder. In addition, companies can benefit from a standard interface, which complies with IBM's Common User Access (CUA) definition for user interface design. Also, since many applications can be loaded and running at the same time, users can be more productive, especially in work that involves much interruption and switching from one task to another. OS/2's true multi-tasking means that long-running processes can simply be switched to the background, while the user continues with something else. This results in less "wait time" for the user. At the same time, more can be done with the existing set of applications by allowing them to share information easily via consistent interfaces like the clipboard. BETTER DOS, WINDOWS AND OS/2 ____________________________ OS/2 2.0 doesn't just run the widest range of applications on an Intel platform. It also aims to improve even on the native environment of each application, and provide a better environment for that application to work in: Why OS/2? 6 A BETTER DOS: it adds to the DOS environment: multi-tasking, more memory and application integration (see "Better DOS" on page 38 ). A BETTER WINDOWS: it provides a superior environment for running DOS applications than either Windows 3.0 or Windows 3.1, and also runs a wide range of Windows applications with no loss of function, as well as taking advantage of the better multi-tasking, memory support, and reliability of OS/2 (see "Better Windows" on page 53). A BETTER OS/2: it improves even on previous releases of OS/2 itself, providing a new object-oriented user interface, a graphical install program, and access to powerful 32-bit applications (see "Better OS/2" on page 78). A PLATFORM YOU CAN RELY ON __________________________ When the PC becomes the focal point of information processing, as in today's environment it often is, then the PC platform must show the stability and reliability of the host environment. The main reason why the PC has not been trusted to fulfil this crucial role to date, is because its operating system - DOS - was not designed for "mission critical" use, but as a personal productivity environment. Nor can extensions to DOS such as Microsoft Windows, offer the required stability while they continue to be based on DOS. Only OS/2, which has been designed to protect applications from one another, ________ can deliver the stable platform required for full multi-tasking and greater protection from system crashes. It is no use having the most fault tolerant server or host, if the client keeps going down. And even the productivity user's PC is "mission critical" from that user's perspective, so that reliability is a requirement for every PC. SUPERIOR CONNECTIVITY _____________________ OS/2 2.0 is both the server and the client platform of choice. Its strong multi-tasking and robust protection make it the best available base for working in a connected environment, in client-server and distributed processing. It provides a consistent platform for both server and client, can handle multiple concurrent communications protocols (eg NETBIOS, APPC, IPX, TCP/IP) with ease, and even provides a LAN-independent user interface to mixed vendor networks. It is enabled for automated LAN-based installation. But most important, OS/2 offers the stability and reliability in a client to match the reliability of the server or host. The result is that "mission critical" applications which depend on communications with various systems can be implemented much more safely on OS/2 than on DOS or any of its extensions. OS/2 2.0 is also the base system for a family of networking and communications products from IBM, including Extended Services for OS/2 and OS/2 LAN Server. Extended Services for OS/2 provides powerful communications and database function in a single integrated package. It supports multiple communications protocols (EHLLAPI, NETBIOS, APPC, X.25 and asynchronous) and terminal emulators (3270, 5250, ASCII, VT100). It includes a full function Why OS/2? 7 client-server relational database management system (RDBMS). This RDBMS is part of an SAA family of relational databases which also includes DB2 and SQL/DS. Extended Services for OS/2 also includes query and database management tools. OS/2 LAN Server works with OS/2 to provide Local Area Network support to DOS and OS/2 machines. It includes facilities for sharing resources such as files and printers, and to manage those shared resources, providing security control, applications management, and network statistics. Both Extended Services for OS/2 and OS/2 LAN Server 2.0 run on both OS/2 2.0 32-bit and the 16-bit OS/2 1.3.1 bases. OS/2 LAN Server 3.0 runs only on the OS/2 2.0 base. Both Extended Services for OS/2 and OS/2 LAN Server are also supported on selected non-IBM as well as IBM equipment. More details on these and other networking products are available in the chapter on OS/2 in a connected environment (see "OS/2 in a connected environment" on page 109). THE INTEGRATED SYSTEM _____________________ OS/2 not only makes DOS, Windows and OS/2 applications run together, but also provides a GUI, and, with Extended Services for OS/2 and LAN Server, database, communications, and LAN support. For developers, all the Application Programming Interfaces (APIs) and services have been designed to work together. This means customers don't have to do the systems integration work with a variety of DOS-based packages to include all the function required, and work around any incompatibilities or problems. Instead, the OS/2 function has been designed and tested to work together - IBM has already done the integration work. OS/2 also has advanced features built in and integrated with the rest of the system: the Presentation Manager GUI itself, font handling with Adobe Type Manager (ATM) (now for both OS/2 applications and Windows applications), REXX (the extended batch language which can be used to integrate different applications and automate common routines) The Workplace Shell environment integrates DOS, Windows and OS/2 applications and makes them work together, even though they may have been written by different vendors and never designed to do so. Also, OS/2 can permit working combinations (such as a 32-bit OS/2 word processor and a 16-bit DOS spreadsheet) that would never have been possible before. In summary, the whole is greater than the sum of the parts: in running not only OS/2, but DOS and Windows applications, OS/2 makes them work together from the same user interface. This helps reduce the differences between applications, and between the local machine and the network, and make it all act as one system. That's why OS/2 is the INTEGRATING platform. ___________ Why OS/2? 8 32-BIT POWER ____________ OS/2 2.0 is the first mainstream 32-bit platform for Intel-based PCs. It offers the ability to take full advantage of the performance of today's 32-bit PCs. And over over 1000 32-bit OS/2 applications are being developed (several hundred of which had already shipped by September 1992), to demonstrate what can be achieved with a 32-bit system. The OS/2 32-bit API also allows developers to create richer, more sophisticated applications. It overcomes the constraints imposed by existing 16-bit systems (see "Why 32-bit OS/2?" on page 81). This allows applications like multimedia to exploit their full potential and power. OS/2 provides this foundation TODAY. Moving to the OS/2 32-bit API now, gets developers _____ ready for future developments in OS/2, such as object-oriented technology, distributed computing and portability to RISC. So 32-bit is not just about exploiting the power of today's environments, but also to move forward to build for the future. But most of all, OS/2 2.0 gives you the benefits of a 32-bit system NOW - no need to wait for other alternatives with uncertain delivery dates. PLATFORM FOR GROWTH ___________________ The design of OS/2 not only preserves the investments of the past, but allows maximum flexibility for future growth. It also makes the OS/2 system itself ready to develop further (for portability to other processors, for example). OS/2 will be the base of new developments for many of the features that will be a requirement for the workstation of the mid-90's, such as multimedia, object-oriented systems, support for the Distributed Computing Environment (DCE) and portability across different processors. It has the extra power to support such advanced features as they emerge. Requirements of this kind will demand a robust, architected and powerful 32-bit system, and that system is OS/2. With OS/2 2.0, IBM has reaffirmed its commitment to OS/2, and its conviction that the workstation of the 1990s requires a real advanced platform, not a series of extensions to DOS, which is fundamentally ill-equipped for these requirements. VALUE FOR MONEY _______________ OS/2 2.0 offers a "3 in 1" environment, with everything you need to run DOS, Windows and OS/2 applications in the one package. It also includes a series of productivity applications, utilities and games for which you need to pay extra in the DOS world. OS/2 provides scalable font support for both Windows and OS/2 applications with Adobe Type Manager at no extra charge. OS/2 2.0 offers all this function at a price less than the combined cost of DOS and Windows 3.1, even before taking into account the extra utilities you would need to buy under DOS or Windows to achieve the same function. Upgrading from DOS or Windows makes the cost of moving to OS/2 even less. Why OS/2? 9 EXPLOITS TODAY'S INVESTMENT, AND IS A BASE FOR THE FUTURE _________________________________________________________ OS/2 supports the widest choice of applications from the PAST ten years of ____ the PC, and is the best platform for the PRESENT requirement of client-server _______ and reliable connectivity. It also provides the best base for FUTURE ______ technologies. That's how OS/2 2.0 can integrate past, present and future requirements. It already has NOW what other environments can only promise for ___ the future, with the best and most reliable migration path - why wait? Why OS/2? 10 OS/2 2.0 KEY ELEMENTS _____________________ This section examines some of the key technologies and features of OS/2 2.0, which affect all applications running in the system. The following sections cover OS/2 from an application point of view, showing how it exceeds the capabilities of DOS, Windows 3.x and previous releases of OS/2. 32-BIT ______ OS/2 2.0 is the first version of OS/2 to support a 32-bit addressing system and programming model. Although implemented on the Intel 386 and 486 family of processors, it is really a 32-bit system rather than an Intel-specific system. Mike Kogan, one of the lead designers of 32-bit OS/2 has said in his book The Design of OS/2 2.0 (see Appendix C, "Further reference materials" on ______________________ page 153), "OS/2 2.0 was not designed to be 386-specific, but rather 32-bit OS/2 implemented on the 80386 platform." Part of the design of OS/2 2.0 has been to leave the maximum possible scope for future portability, both in the API and the subsystems like Presentation Manager (PM). OS/2 2.0's 32-bit design provides significant benefits to the user and the programmer, including better performance, simpler programming and ease of migration from 16-bit applications, as well as reinforcing the benefits of inter-process protection associated with previous releases of OS/2. FLAT MEMORY MODEL OS/2 2.0 features a different memory addressing model from 1.3 - the flat memory model. This enables each process to look at memory as a large linear address space which can be addressed by a simple 32-bit offset (sometimes referred to as "0:32"), as opposed to the segment/offset combination ("16:16") required by OS/2 1.3 and other 16-bit systems like DOS and Windows. The 0:32 model therefore hides all details of segmented memory management from the 32-bit programmer, resulting in : - much simpler programming - better performing code - greater portability to other instruction sets (ie non-Intel). One example of better performance is in calling Dynamic Link Libraries (DLLs), which are common in both the OS/2 system and OS/2 applications. Since all code and data are addressable within the same linear address space, there is no longer any need for segment switching. OS/2 2.0 key elements 11 LARGE MEMORY ADDRESS SPACE Using the 32-bit flat memory model, the 386 processor supports up to a 4 gigabytes (GB) linear address space. In fact, up to 64 terabytes can be addressed by the processor using a non-linear addressing model. To get some idea of the enormity of such numbers, this means that, if an average page in a book contained 2000 characters, and each book 500 pages, a task could address any character in any book in a library with more than 70 million books (70,368,744,177,664 characters to be precise)! For reasons of compatibility with OS/2 1.x 16-bit applications, the address space per process in OS/2 2.0 is restricted to 512MB (since this is the maximum address space possible for 16:16 applications). This is addressed using the flat memory model, allowing programmers to reference memory under OS/2 2.0 as one single huge address space. Although 512MB is hardly likely to be a limitation in practice, this memory limit will be removed in a future release of OS/2. Within a given process, memory objects can be allocated for any size, no longer limited to the 64KB segment maximum, but any size between 1 byte and 512MB. This gives the programmer much greater flexibility in memory management. For the user, this means that programmers can spend more time on making their programs more powerful and even easier to use, and less on segmented memory management. VIRTUAL MEMORY OS/2 2.0 can use more memory than is physically installed in most PCs, by using the hard disk for additional memory, usually referred to as virtual memory. Although 16-bit systems like OS/2 1.3 and Windows 3.x also offer memory overcommit via swapping segments to disk, the larger process address space available under OS/2 2.0 means that virtual memory is effectively limited only to available disk space, whereas Windows 3.x can offer only 16MB maximum, or four times the physical memory installed in the machine, whichever is less. OS/2 2.0 takes advantage of the 386 processor's support for fast and effective paging of memory to and from disk (see "4KB demand paging" on page 17). It is also not limited to the segment-based swapping of OS/2 1.3. MIXED 16-/32-BIT ENVIRONMENT Not only are OS/2 1.x applications supported, and are binary-compatible with 2.0, but OS/2 2.0 can support mixed model programming. In order to support applications written for 16-bit, the OS/2 designers had to develop an architecture in which 16- and 32-bit modules could reside simultaneously. This was not only for ease of conversion from 16-bit programs, but also because the system itself contains a mixture of 16- and 32-bit service routines. This is a difficult task because segmented and flat memory models are so different. OS/2 provides address conversion between 16:16 and 0:32 addresses, to allow 16-bit API calls to be serviced internally by 32-bit routines, and vice OS/2 2.0 key elements 12 versa. A series of procedures called "thunks" within the system facilitate this process, by handling any necessary parameter conversion for APIs. This technique is used internally between 16- and 32-bit parts of the system itself, but the user never notices - the system takes care of it. They are tools internal to the system, and not APIs for the programmer to learn and use - and certainly no user needs to know how to handle them. Note that the mixed model gives great flexibility, both in migrating applications from 16- to 32-bit, and also in allowing 32-bit applications to make the best possible use of existing 16-bit service routines, window classes etc., developed for previous releases of OS/2. The important point here is how OS/2 2.0 helps the migration process to 32-bit. INTEL 386/486 EXPLOITATION __________________________ Since OS/2 2.0's 32-bit capabilities are implemented on Intel's i386 and i486(1) family of processors, it is not surprising that the system takes advantage of some of the processor's features. Indeed, some of them (especially virtual 8086 mode) are vital to some of the most notable features of the system. It is for that reason that OS/2 2.0 requires a 386SX processor or higher to run. Unlike OS/2 1.3, it will not run on machines equipped with an 80286, nor will it run on 8088 and 8086 machines supported by DOS. GROWTH IN PROCESSOR POWER It is widely recognised how substantial have been the improvements in processor speed and capacity, even since 1981 and the launch of the first IBM PC. Since then, processor clock speed has increased by a factor of seven, and memory address space by four thousand to one. This growth in processor power lowers the cost of the hardware technology to run advanced operating systems and applications. The software and hardware are now at a sufficiently advanced stage, to enter a new phase of personal computing, beyond the basic productivity applications that have characterised its usage to date (see "Cheaper processors and memory" on page 3). --------------- (1) In this document, the i386 and i486 processors will often be referred to as 386 and 486 respectively. Where discussion relates to 386 or 486 SX or DX models specifically, terms such as 386SX will be used. Otherwise the terms will be used to refer to any member of the 386 or 486 family as appropriate. The term 80X86 is sometimes used to denote the range of 32 bit processors currently shipped by Intel (ie 386 and 486 together, but NOT the 80286). OS/2 2.0 key elements 13 386/486 NOW MAJORITY OF SHIPMENTS PCs using the i386 family (which includes the SX as well as DX models) are now shipping in greater volumes than any other Intel processor. Add to the number of 386s the growing volumes in 486SX and DX processors, and there are a growing number of 32-bit processors in the marketplace. Until OS/2 2.0, there has not been a 32-bit system for Intel processors which has provided sufficient compatibility with existing 16-bit applications, to become a standard. 386SX VERSUS DX It is important to understand that both 386SX and 386DX processors are supported by OS/2. Even though the 386SX has a 16-bit external data bus, it is a 32-bit processor internally, fully compatible with the 386DX processor's instruction set, supporting multiple Virtual 8086 sessions (essential for the Multiple Virtual DOS Machines features of OS/2 2.0), protected mode operation and full 32-bit addressing. It can therefore support all of the features that OS/2 2.0 provides, just as the 386DX does. The main difference is in the throughput for I/O, owing to the 16-bit data bus. Nevertheless, many users find it an excellent combination of 386 function, compatibility and performance at a reasonable price. IBM's own 386SLC chip, which appears in, among others, some models of the PS/2 Model 57, adds performance features such as caching to the basic 386SX design; it represents an excellent platform for OS/2 2.0. 486SX AND DX All the 386 features used by OS/2 2.0 are also supported by the 486. Therefore machines using a 486SX or 486DX will also run OS/2 2.0. In many operations, the 486 is faster than the 386, which will provide performance benefits to users of OS/2 2.0 on 486-based machines. The 486SX is very similar to the 486DX, but does not have the built-in math co-processor function which the 486DX has. The price of the 486SX processor has fallen rapidly during 1992, so that machines using 486SX can often be obtained at prices competitive with 386DX machines. The 486SX therefore represents an economical entry into 486 power for OS/2 2.0. FEATURES OF 386 CHIP USED BY OS/2 2.0 Among the specific features of the 386/486 processors supported by OS/2 2.0, and used to provide additional function beyond OS/2 1.3, are: Protected mode operation Virtual 8086 mode 4KB demand paging Numeric co-processor support OS/2 2.0 key elements 14 Protected mode operation To understand the significance of protected mode, let us briefly review some of the different models of memory management which the 386 processor can use: +---------------------------------------------------------------------------+ | Table 1. Memory management models | +-----------+------------+------------+------------+------------+-----------+ | MODEL | PROCESSOR | MAX | ADDRESSING | PROTECTION | SYSTEM | | | ARCHITECTUR| PHYSICAL | STYLE | BETWEEN | SOFTWARE | | | | ADDRESS | (SEGMENTED | PROCESSES | EXAMPLE | | | | SPACE | VS. FLAT) | | | +-----------+------------+------------+------------+------------+-----------+ | Real mode | 8086 | 1MB | segmented | none | DOS | | | | | (64KB) | | | +-----------+------------+------------+------------+------------+-----------+ | Segmented | 80286 | (on 286) | segmented | yes | OS/2 1.3, | | Memory | | 16MB | (64KB) | | Windows | | Model | | | | | 3.x | +-----------+------------+------------+------------+------------+-----------+ | Flat | i386 | 4GB (16MB | flat | yes | OS/2 2.0 | | Memory | | on 386SX) | | | | | Model | | | | | | +-----------+------------+------------+------------+------------+-----------+ In reality, operating systems like OS/2 create an architecture with indirect selectors/descriptors rather than direct segment/offset addressing. This provides memory protection between processes to support multi-tasking. This is just one example of the ways in which an operating system builds on the base capabilities of the processor. Virtual memory is another function provided by the operating system but relying on a processor feature (in this case on the 286 and above). In OS/2, all process address spaces are kept separate from each other. This allows OS/2 to maintain protection between different processes running in the system, whether they be DOS, Windows or OS/2 applications, or other parts of the system itself. The result is that, if a process attempts to reference memory outside its own address space, it is trapped by the system. In contrast, multi-tasking systems based on single-tasking DOS, such as Windows, cannot always offer protection. Windows applications, for example, share the same Local Descriptor Table as Windows itself, which limits the memory protection Windows can provide to its applications (see "Reliability" on page 61 and "Reliability and protection" on page 44). OS/2 2.0 key elements 15 Virtual 8086 mode The 386 offers a mode called virtual 8086 (V8086) mode, which emulates multiple instances of an Intel 8086 processor to provide some compatibility with real mode applications (such as most DOS applications) under a protected mode system (like OS/2 2.0). Applications running in V8086 mode, can run concurrently with other 8086 applications and protected mode applications, and take advantage of the virtual memory and paging facilities of the 386. V8086 mode is a superset of protected mode. The CPU provides high performance hardware support to enable switching between V8086 and protected mode - this eliminates the performance overhead of mode switching associated with lower processors such as the 286. This is why multiple DOS capability can be provided so much more easily and more effectively in OS/2 2.0, which requires the 386 facilities, than in OS/2 1.3 which was based on a 286-style architecture. V8086 processes are protected from each other in OS/2 2.0. This gives compatibility with the real mode world of DOS applications while providing greater address space and protection. In OS/2 2.0, each Virtual DOS Machine (VDM) is encapsulated in its own unique linear address space, and thus cannot corrupt another application's code or data. Traps or exceptions are handled by the VDM Manager in OS/2 2.0, and execution is passed to an exception handler, or the VDM terminated. Therefore, OS/2 2.0 runs in protected mode all time, even for DOS applications, hence the greater protection of the system against application errors or failures. In real mode, an application can directly address any object in memory between 0 and 1MB, including portions of the operating system (whether this be DOS, DOS/Windows, or OS/2 1.3, all of which provide varying amounts of real mode execution). A DOS program that accidentally wrote to a system area, or directly addressed a hardware device and left it in an unknown state, could cause system integrity problems. Real mode is less of an issue in a single-tasking system like DOS, where it is more than likely that the application is the only one executing in the system; but in a multi-tasking system, it represents a "trap door," which can endanger system integrity. This is part of the difficulty in running a multi-DOS environment like Windows 3.0 or 3.1 on a DOS base; as long as there is real mode access (as long as it runs on DOS as we know it today), there is a potential risk. In fact, even Windows 3.1 , which is claimed to offer greater protection and stability, does not change the design of Windows in this respect. It is still possible for a DOS Terminate-and-Stay-Resident (TSR) program to switch the system into real mode and open up the potential for endangering system integrity (see "Reliability" on page 61 for more on this). The only solution is to run the operating system in protected mode, and provide a multi-DOS mode using features like V8086, so that the system never runs in real mode. This is exactly what OS/2 2.0 does, and it is one of the key differences between it and Windows 3.x in terms of overall integrity: Windows implements V8086 function in a system running on DOS, and some real mode access is inevitable - hence its occasional fragility when working with DOS applications or TSRs; OS/2 2.0 never executes in real mode. OS/2 2.0 key elements 16 4KB demand paging Demand paging is the 386's method of providing virtual memory to the system; when physical memory is exhausted (memory "overcommitment"), the disk may be used to provide additional virtual memory. Memory overcommit is provided on 286-based operating systems such as OS/2 1.3 as well, but is usually based on a segment-swapping mechanism. As the name suggests, segment swapping is closely tied to the segmented model used in OS/2 1.3, and the swapper algorithm has to do much work to compact segments of varying sizes into a unit capable of being swapped to disk, or much I/O work in swapping large segments. OS/2 2.0 manages memory internally using pages, each of which is 4KB in size. Each memory object handled by the system is regarded as a set of one or more pages, and therefore memory is allocated in units of 4KB (although to optimise memory management, programmers may handle a page as multiple smaller objects). Paging offers a number of advantages over swapping, which was the mechanism used in OS/2 1.3: BETTER GRANULARITY: when memory becomes over-committed (ie there is no more real memory left to load applications), individual 4KB pages may be swapped to and from disk, rather than entire memory objects (or segments as in OS/2 1.x). In turn, this will improve performance, especially in terms of the lower I/O cost of moving 4KB pages as opposed to whole segments. Programmers can write their applications to take advantage of the smaller granularity of memory object (ie 4KB page as opposed to a whole segment). This will reduce the working set (overall memory usage) of applications and thence improve performance. Memory objects can be allocated in logical units, without the artificial constraints of segment sizes; this means that you can allocate smaller or larger memory objects according to the needs of the application, rather than the constraints of the system. Once again, this makes programming much simpler. It is important to remember that paging is carried out without any awareness on the part of the application. Programmers may allocate memory to co-operate with this mechanism for performance reasons, but the user need not be aware of the paging system at all. It will simply translate into the performance benefits mentioned above. SIMPLER SWAP ALGORITHM: because of the more granular paging, OS/2 2.0 does not need to move around different sized segments to compact them into a single swap segment of the right size, as was done in 1.x. This makes the swap algorithm simpler and therefore faster, improving overall system performance. Indeed, unlike OS/2 1.x, the swapper file, SWAPPER.DAT is designed to actually shrink as well as grow during use of OS/2 2.0. This is in order that applications requiring high availability (such as LAN servers) do not need to be rebooted to recover swap disk space. The 386 has hardware support, such as buffering and caching, to support paging. Once again, OS/2 is taking advantage of the processor's built-in features. OS/2 2.0 key elements 17 Numeric co-processor support Some OS/2 applications can make use of an i387 numeric co-processor if one is installed in a 386 PC running OS/2 2.0 (or 486DX systems, which have co-processor function built in). Where a 387 is not installed, OS/2 2.0 provides a 387 emulator to all applications running in protected mode, available to both 32-bit and 16-bit applications, but not VDMs running DOS applications. DOS applications must continue to use whatever mechanisms they are currently using to detect co-processor presence. MULTIPLE VIRTUAL DOS MACHINES (MVDM) ____________________________________ OS/2 2.0 features a totally redesigned environment for DOS compatibility. It is based on the Virtual 8086 mode of the 386 processor, and results in a DOS environment where multiple DOS applications can be run, each in their own separate "virtual machine." "Virtual machine" means that the virtual 8086 mode process simulates a self-contained DOS environment, in which the application runs. Access to I/O resources is usually not done directly to the physical device, but via a virtual device; this virtualisation allows the DOS application to believe it owns all the system resources, just as it does under DOS. Behind the scenes, the OS/2 system manages concurrent access to these physical resources, from both DOS and OS/2 applications. Each Virtual DOS Machine, or VDM, emulates an entirely independent instance of DOS. It is in fact a generic emulated version of DOS (which resembles DOS 5.0), not the real DOS retail product. Each VDM is a separate process, protected from the others, and multi-tasking alongside the others. This design allows OS/2 to provide superior support for DOS applications than in previous releases of OS/2. CONTRAST WITH OS/2 1.3 DOS SUPPORT It is useful to look at the OS/2 2.0 DOS support in the light of 1.3's DOS support. The following table gives a summary of the key difference in DOS support between 1.3 and 2.0: OS/2 2.0 key elements 18 +---------------------------------------------------------------------------+ | Table 2. DOS environments - OS/2 1.3 and 2.0 compared | +--------------------------------+---------------------+--------------------+ | | OS/2 1.3 | OS/2 2.0 | +--------------------------------+---------------------+--------------------+ | Processor mode | Real mode | V8086 mode | +--------------------------------+---------------------+--------------------+ | Protection/Integrity | Low | High | +--------------------------------+---------------------+--------------------+ | Number of DOS applications | 1 | up to 12 full | | | | screen; up to 240 | | | | windowed | +--------------------------------+---------------------+--------------------+ | Background execution | No | Yes | +--------------------------------+---------------------+--------------------+ | Windowed | No | Yes | +--------------------------------+---------------------+--------------------+ | Cut and Paste | No | Yes | +--------------------------------+---------------------+--------------------+ | Conventional memory free | 512KB | 633KB | +--------------------------------+---------------------+--------------------+ | DOS Extended Memory | None | 16MB per | | | | application (XMS) | +--------------------------------+---------------------+--------------------+ | EMS/XMS | No | Yes | +--------------------------------+---------------------+--------------------+ | DPMI | No | Yes | +--------------------------------+---------------------+--------------------+ | Overcommit | Swap | Page - Available | | | | disk | +--------------------------------+---------------------+--------------------+ | Timing Dependent applications | Foreground | Foreground / | | | | Background | +--------------------------------+---------------------+--------------------+ | Recover from hang/crash | Sometimes | Usually | +--------------------------------+---------------------+--------------------+ Let's take a look at some of these aspects in more detail: 286-based architecture OS/2 1.3 On the 286, there is no V8086 mode, so 1.x had to run DOS applications in real mode, thus requiring a protect-to-real mode switch when moving from an OS/2 to DOS application. This involves significant performance degradation (see below). OS/2 2.0 DOS applications run in V8086 mode. No protect-to-real mode switching is needed. Relative performance OS/2 2.0 key elements 19 OS/2 1.3 A switch from real mode to protected can be done on a 286 (though it costs many CPU cycles). A switch the other way, from protected to real, means effectively rebooting the CPU, but OS/2 has to preserve all the system control information, process states etc, at the same time, so that the normal processing can continue after the switch. This switching back and forth from real (DOS box) to protected (rest of 1.x) generates significant overhead. This can mean that OS/2 background tasks are slowed significantly when running a DOS application in the foreground. OS/2 2.0 DOS applications run in V8086 mode. No protect-to-real mode switching is needed. System integrity OS/2 1.3 Since 1.3 does not run always in protected mode (unlike 2.0), any switch into real mode allows an errant DOS application to directly address any object in memory under 1MB, including portions of the OS/2 1.x kernel (the same is true in Windows 3, hence its comparative lack of integrity.) Also, DOS applications could directly address a hardware device and leave it in an unknown state, which may cause OS/2 device drivers to fail. Either of these scenarios could cause the whole system to crash. OS/2 2.0 All OS/2 2.0 processes, including DOS applications in VDMs, are protected from each other, and cannot write outside their own address space. Hardware access is controlled through Virtual Device Drivers (see "Virtual Device Drivers (VDDs)" on page 24), which handle the DOS-OS/2 hardware concurrency problem. Background execution OS/2 1.3 DOS applications are suspended when not in the foreground. This was a decision made in 1.x, mainly to avoid the overhead in real-protected-real mode switching; it means that timing dependent applications like communications programs are unsuitable for running in an OS/2 1.3 DOS box, as they cannot receive interrupts while suspended. OS/2 2.0 In 2.0, the virtualisation of interrupts and hardware access allows most communications programs to run in background in a VDM. Amount of memory OS/2 1.3 Since DOS applications run in real mode, some of the OS/2 device driver and kernel code has to be located below 1MB to service the real-mode (DOS box) requests. This has an inevitable result on OS/2 2.0 key elements 20 the amount of memory available below 1MB, and therefore on DOS application space, which, in 1.3, depending on the configuration, is about 520KB. This prevents some larger DOS applications from even loading. No EMS or XMS support is provided in 1.3. OS/2 2.0 OS/2 2.0 locates most driver and even DOS emulation code outside the DOS application's address space in a VDM. This provides even more conventional memory than under standalone DOS, and full support for EMS and XMS (see below). MEMORY: CONVENTIONAL, EXPANDED, EXTENDED Memory management under DOS today is quite complex, and often requires the user to know about various different memory types. To support some DOS applications, OS/2 2.0 needs to provide more than just conventional memory. Definitions The diagram below shows some of the types of memory commonly referred to, and is a useful reference for the discussion below: +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 2. Memory: Conventional, Expanded, Extended CONVENTIONAL MEMORY is the name given to the memory area up to 640KB ___________________ accessible by DOS applications. EXTENDED MEMORY refers to any memory above the 1MB line addressed by the _______________ processor in protected mode. (1MB is the normal limit addressable by the processor in real mode). The LIMA (Lotus/Intel/Microsoft/AST) Extended Memory Specification (XMS) version 2.0 provides a standard for the use of extended memory on 80286 and above computers. The specification provides for moving code and data objects to and from extended memory to base (conventional) memory, and is operating system independent (even though the technique for determining that XMS is present relies on the DOS interrupt vector 2Fh). XMS manages 3 different kinds of memory, described below: - High Memory Area (HMA) - Extended Memory Blocks (EMBs) - Upper Memory Blocks (UMBs) HIGH MEMORY AREA (HMA) is the region of memory between 1MB and the 64KB above ______________________ it (minus 16 bytes). This can be addressed by enabling one of the processor's address lines to allow the processor to access an extra 64KB beyond the normal 1MB limit in real mode. Its operation is due to an anomaly in the 286 and above, which has been exploited by this technique to give a valuable extra address space. Drivers like HIMEM.SYS, which appear in DOS 5.0 and MS-Windows 3.x, exploit this technique. OS/2 2.0 key elements 21 EXTENDED MEMORY BLOCKS (EMBS) are blocks of extended memory above the HMA, _____________________________ not accessible from real mode and serve usually as data storage. An XMS driver can move memory between extended and conventional memory to offer up to 64MB of extended memory in up to 255 blocks. UMA, UMBS: between 640KB and 1MB (the limit addressable by the processor in __________ real mode) lies the Upper Memory Area (UMA). In this area are reserved portions of memory for BIOS, video buffers etc. Usually, however, there are a number of address ranges not used (for example, since there are address ranges for monochrome, CGA and EGA adapters, it is not possible to use all of these ranges at the same time. Thus there will be a number of "gaps" in the UMA. These can be used by memory managers such as exist in DOS 5.0 itself, or by third party utilities such as Quarterdeck's QEMM product. They can be used to load various drivers, or in DOS 5.0's case, even part of the system itself, to free more memory below the 640KB line. The address ranges used in this manner are usually called Upper Memory Blocks or UMBs. The number and size of UMBs will depend on the hardware configuration. EXPANDED MEMORY (EMS) is a page mapping technique that provides additional _____________________ memory support, by allowing DOS applications to allocate and access up to 32MB of additional memory. This is done by creating memory objects in expanded memory that can be mapped into the real mode 1MB address space, thus allowing DOS applications to access address spaces beyond 640KB at the cost of having to quickly remap the memory that is to be accessed. In effect, parts of the 8086 address space become moving "windows" into larger virtual memory objects in an expanded memory area. The expanded memory specification was developed by Lotus, Intel and Microsoft, and is thus known as LIM EMS. The latest version of the specification is 4.0. EMS is provided under DOS either by a special memory adapter and driver, or by defining portions of memory above 1MB for use as expanded memory by a driver that sometimes ships with DOS (eg EMM386.EXE with DOS 5.0). DOS PROTECT MODE INTERFACE (DPMI): The DPMI specification provides a standard _________________________________ interface that can access memory above 1MB and is addressable by computers with an Intel 80x86 (or later) microprocessor. The specification was created by a group of eleven companies in the industry (including Microsoft, Lotus and Intel, as well as Quarterdeck, Rational Systems and Phar Lap), to allow multiple DOS extender applications to multi-task reliably under a multi-tasking environment. It superceded the VCPI specification (see below). DPMI is a specification that exists in two versions. The 0.9 version was implemented in Windows 3.0. The 1.0 specification added new features while remaining fully compatible with 0.9. OS/2 2.0 is compatible with the 0.9 level, and adds some 1.0 features. VIRTUAL CONTROL PROGRAM INTERFACE (VCPI) is an earlier DOS extender ________________________________________ specification, created by Phar Lap and Quarterdeck. While it allowed 386 expanded memory managers and DOS extenders to coexist, it did not address the problem of DOS extenders coexisting within a multi-tasking environment. Examples of applications written to this specification include Lotus 1-2-3 version 3.0 and Autocad/386 (Lotus 1-2-3 3.1+ changed the type of extender used from VCPI to DPMI). OS/2 2.0 key elements 22 MVDM MEMORY MANAGEMENT MVDMs support all of the above types of memory, providing Virtual Device Drivers for both EMS and XMS functions, thus allowing DOS applications all the memory management functionality possible under DOS, including use of UMBs for the DOS 5.0 LOADHIGH, DEVICEHIGH commands and for TSRs. Indeed, DOS emulation in OS/2 2.0 VDMs owns the UMBs, but can free them for application use with statements in CONFIG.SYS or in DOS Settings. Note that the availability and size of UMBs depends on the same principle as under DOS (ie configuration of that DOS virtual machine). VDM DOS settings like MEM_INCLUDE_REGIONS and MEM_EXCLUDE_REGIONS allow some detailed configurable control over UMBs for separate VDMs. This is an advantage over DOS itself, which for obvious reasons can only apply one UMB configuration for all DOS applications that load, leading to many DOS users maintaining multiple CONFIG.SYS files for their different required configurations, and rebooting between them. OS/2 2.0 provides Virtual Device Drivers (VDDs) for both EMS and XMS. The Virtual Expended Memory driver (VEMM.SYS) supports up to 32 MB of expanded memory per VDM, and the Virtual Extended Memory driver (VXMS.SYS) up to 16MB per VDM. These figures could be made higher, but are restricted for compatibility with EMS and XMS support under DOS. DPMI applications can access up to 512MB in OS/2 2.0. In contrast, DOS and DOS extenders like Windows 3.x can offer extended memory only up to four times the physical memory in the machine or 16MB, whichever is less. Virtualising EMS, XMS access means one VDM's use of memory does not affect others - more than one VDM can use XMS and EMS. EMS and XMS memory is mapped into the system's linear address space, and managed just like any other allocated memory. VEMM is compatible with LIM EMS 4.0 specification, and VXMS compatible with LIMA version 2.0 functions. The amount of EMS or XMS is configurable in CONFIG.SYS or in DOS settings. Protection VDMs operate in entirely separate process address spaces, and are controlled by a VDM Manager. They can thus be terminated on detection of illegal instructions without affecting the rest of system, or when the application is "hung." Thus problems in one VDM do not corrupt others, nor the system. Memory management Since VDMs take advantage of the virtual memory and paging facilities of the 386, they are swappable and, therefore, starting several DOS sessions will not significantly increase system memory requirements. Note, also, that each DOS session is individually configurable, so that EMS and XMS support can be switched off if not required, reducing overall virtual memory requirements. As always, of course, there is a balance to be made between memory usage and performance when overcommitting memory. OS/2 2.0 key elements 23 DOS emulation All DOS services (eg I/O) are emulated within the MVDM kernel or passed to the OS/2 kernel (eg file services). Most of this emulation runs in protected mode outside the VDM (hence the large amount of DOS memory available). All documented (and some undocumented) DOS features are supported (such as device driver loading/support, program loading and execution, memory management) as well as all documented (and some undocumented) DOS interrupts (INT 20h, INT 21h, INT 27h etc). This provides a highly compatible "DOS 5.0-like" environment. Input/Output File Input/Output (I/O) in VDMs is made through the OS/2 file system, which, via VDM DOS emulation, provides a compatible interface to file I/O for DOS applications. Thus DOS applications can, without modification, take advantage of OS/2's Installable File Systems (IFS) like HPFS, and the enhanced FAT (see "File systems" on page 34). Other I/O is performed either by DOS emulation or via Virtual Device Drivers (VDDs), such as BIOS, video, printer, keyboard (see below). DOS applications may continue to run and access system resources quite unaware that those resources are virtual, and real access to devices is provided by OS/2 2.0 itself. This guarantees compatibility but also allows DOS applications to take advantage of the inherent strengths of the OS/2 environment. VIRTUAL DEVICE DRIVERS (VDDS) OS/2 2.0 isolates DOS and Windows applications from I/O devices that are controlled by OS/2 device drivers, by emulating, or virtualising them for one or more DOS or Windows applications. This is done by Virtual Device Drivers (VDDs). VDDs provide a virtual instance of the real hardware, which is controlled by a physical protected mode driver (PDD - see "PDDs" on page 25 below). VDD features VDDs therefore provide the following support: 1. PROTECTION: VDDs allow DOS applications to access hardware and BIOS without affecting other VDMs or other protected mode processes. This prevents VDMs from corrupting each other, or the system. 2. VIRTUALISATION: VDDs avoid direct hardware access from DOS applications, but provide a virtual, or emulated, hardware state that lets the application think it is doing so. To do this, they maintain a virtual hardware state for each VDM. This means applications can, for example, access BIOS and video RAM (as Lotus 1-2-3 does), and receive hardware and software interrupts. In addition, VDDs can either perform I/O through a PDD, or directly address an I/O device itself for greater performance. In this way, virtual video drivers can support fast screen I/O to match performance expectations of DOS users working with programs like 1-2-3. OS/2 2.0 key elements 24 3. SHARING: VDDs allow sharing of devices across the system between DOS and OS/2 applications where there is a VDD/PDD combination for that device. There is also support for many DOS device drivers, to allow devices that do not have a VDD/PDD combination, to be supported in a VDM, for access exclusive to that VDM. 4. MEMORY: the VDD is a protected mode driver which allows virtual device driver support to be loaded above the VDM's first megabyte of address space. This means that there is no memory impact on the use of VDDs for DOS applications. Only where DOS device drivers need to be loaded is there any impact under 1MB, and then the same as in DOS. PDDs Physical Device Drivers (PDDs) correspond to OS/2 device drivers in 1.3, but with an important difference: they execute entirely in protected mode, unlike the bimodal 1.x device drivers. Real mode interrupt handling is no longer required since VDMs run in V8086 mode - all interrupt processing is therefore done in protected mode. Most OS/2 1.x device drivers work "as is": the part of the driver capable of being run in real mode (needed for the 1.x DOS compatibility box) is not supported, but their protected mode portion will usually work. However, an old 1.x device driver is unlikely to service VDMs, because the VDD requires support from the PDD that does not exist in older drivers. This also means that no portion of the OS/2 device drivers needs to be located below the 1MB line, and therefore increases the size of the environment available to DOS applications. But DOS applications may still make use of these PDDs through the VDD interface. How VDDs work VDDs work by facing two ways: to the application, providing a virtual hardware state, and to the PDD or device, performing the physical I/O. At boot time, VDDs are loaded, and many establish communications with the corresponding PDD via a direct call interface. The list in the section "VDD examples" on page 26 shows which VDDs have a direct interface with an OS/2 PDD. The VDD controls the DOS application's access to the device, and relies on the PDD to manage the physical hardware operations. The example below, and the accompanying diagram, show how the virtual COM driver (VCOM.SYS) works. 1. The COM PDD services all hardware interrupts from the asynchronous ports, and buffers the data being transmitted or received. 2. The direct call interface between the VDD and PDD allows the VCOM to emulate asynchronous BIOS functions to send and receive characters, or to set and query the state of a COM port, as well as receive the interrupts passed on by the PDD. OS/2 2.0 key elements 25 3. All of the time, the DOS application believes it is controlling these functions itself (just like it would under DOS), and is having interrupts and data from the PDD and the COM port reflected back to it by the VDD to maintain the illusion. The DOS application is therefore accessing only a virtual copy of the COM port. The VDD gets control when a DOS application performs direct I/O to a port (IN our OUT instructions), or via BIOS or other software interrupts (INT instructions). 4. OS/2 applications can simultaneously access the COM functions via the PDD using normal OS/2 function calls like DosOpen. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 3. How VDDs work Not all VDDs need to operate with a PDD in this way. Some VDDs (eg video) directly access the device for performance reasons. DOS applications still do not address the device directly themselves - the VDD still virtualises the I/O to the DOS application. The VDD/PDD interface is required where hardware interrupts need to be simulated into one or many VDMs (COM is a good example). This is important so that DOS applications that want to control the hardware device directly, do not need to get control at interrupt time, but can be deferred until the OS/2 kernel dispatches the VDM task. This preserves system integrity and maintains overall system performance. This interrupt latency, as it is called, may cause problems for a minority of applications that are highly dependent on real-time interrupts. But the vast majority of DOS applications, even high speed communications, can be dealt with successfully. VDDs can be made swappable, and are installed using DEVICE= statements in CONFIG.SYS. Additional VDDs can be written by third parties for their devices, via a published programming interface, using the Virtual Device Helper (VDH) services provided by the MVDM kernel. A VDD is required only if a device will be shared with other VDMs or OS/2 processes. If a particular device is to be used exclusively by one DOS application, the DOS device driver may be used. Thus, OS/2 2.0 can provide "generic" support to most DOS device drivers, but such support is limited to that VDM. It does provide greater compatibility and a wider support of devices, enhancing the DOS compatibility of OS/2 2.0 (see "DOS device drivers" on page 46 for more). DOS Device drivers can be loaded via the DOS Settings (see "DOS Settings" on page 47). VDD examples VDDs exist for most of the common device types. The following table lists some of the ones that are included in OS/2 2.0: OS/2 2.0 key elements 26 +---------------------------------------------------------------------------+ | Table 3 (Page 1 of 2). Virtual Device Drivers | +-------------+-----------------------------------------+-------------------+ | NAME | DESCRIPTION | INTERFACES WITH | | | | PDD | +-------------+-----------------------------------------+-------------------+ | VBIOS | DOS system areas like ROM BIOS and | | | &CLUB. | interrupt vector tables are mapped from | | | | physical memory into the VDM address | | | | space by VBIOS.SYS. | | +-------------+-----------------------------------------+-------------------+ | VCDROM | CD-ROM support | * | +-------------+-----------------------------------------+-------------------+ | VCMOS | CMOS data area and Real time clock | | | &CLUB. | support | | +-------------+-----------------------------------------+-------------------+ | VCOM | Asynchronous COM ports | * | +-------------+-----------------------------------------+-------------------+ | VDMA | Direct Memory Access (DMA) | | | &CLUB. | | | +-------------+-----------------------------------------+-------------------+ | VDPMI | DOS Protect Mode Interace - used in | | | | WIN-OS/2 and applcations like Lotus | | | | 1-2-3 3.1+ | | +-------------+-----------------------------------------+-------------------+ | VDPX | DOS Protect Mode Extender | | +-------------+-----------------------------------------+-------------------+ | VDSK | Disk/diskette, only for INT 13 | * | | &CLUB. | copy-protection | | +-------------+-----------------------------------------+-------------------+ | VEMM | Expanded memory support - up to 32MB | | | | per VDD | | +-------------+-----------------------------------------+-------------------+ | VFLPY | Floppy disk interface | * | | &CLUB. | | | +-------------+-----------------------------------------+-------------------+ | VKBD | Keyboard - also has INT 9h emulation | * | | &CLUB. | code to perform functions usually | | | | performed by CBIOS, such as key and | | | | scan code queuing, update of keyboard | | | | LEDs, and processing for Print Screen, | | | | SysReq, Break and Pause (INT 5h, INT | | | | 15h, INT 1Bh respectively). | | +-------------+-----------------------------------------+-------------------+ | VLPT | Printer | * | | &CLUB. | | | +-------------+-----------------------------------------+-------------------+ | VMOUSE | Mouse | * | +-------------+-----------------------------------------+-------------------+ | &CLUB. refers to base set of VDDs automatically loaded at system | | initialisation time; others can be loaded via DEVICE= statements in | | CONFIG.SYS. | +---------------------------------------------------------------------------+ OS/2 2.0 key elements 27 +---------------------------------------------------------------------------+ | Table 3 (Page 2 of 2). Virtual Device Drivers | +-------------+-----------------------------------------+-------------------+ | NAME | DESCRIPTION | INTERFACES WITH | | | | PDD | +-------------+-----------------------------------------+-------------------+ | VNPX | Numeric co-processor (x87) | | | &CLUB. | | | +-------------+-----------------------------------------+-------------------+ | VPIC | Programmable Interrupt Controller | | | | (8259) | | +-------------+-----------------------------------------+-------------------+ | VTIMER | Timer | * | | &CLUB. | | | +-------------+-----------------------------------------+-------------------+ | VWIN | For WIN-OS/2 "seamless" support | * | +-------------+-----------------------------------------+-------------------+ | VXMS | Extended Memory (XMS) specification - | | | | up to 16MB per VDD | | +-------------+-----------------------------------------+-------------------+ | Video | Supports all documented video modes | * | | (VCGA, | from mono to XGA, including the | | | VMGCA, | documented modes of VGA and 8514/A. | | | VEGA, VVGA, | | | | V8514, | | | | VXGA, | | | | VSVGA) | | | +-------------+-----------------------------------------+-------------------+ | &CLUB. refers to base set of VDDs automatically loaded at system | | initialisation time; others can be loaded via DEVICE= statements in | | CONFIG.SYS. | +---------------------------------------------------------------------------+ MULTI-TASKING _____________ OS/2 has always been highly regarded for its industrial-strength multi-tasking design. OS/2 2.0 continues those strengths, harnessing the CPU-level support of the 386 processor for even more efficient multi-tasking. WHY DO I NEED MULTI-TASKING? Some people believe that they do not need multi-tasking, on the premise that "I can only manage one thing at a time myself." However, the simplest way of understanding the need for multi-tasking is to imagine what happens when you get an interruption at work. Consider this simple scenario: You are working on a report (using your word processor) when the telephone rings. It's the boss, and he wants the latest sales figures from you NOW. ___ Quickly, you stop what you're doing, put aside the word processor, and connect to the database to run the report routine. While logging on and running the report, you start your spreadsheet program, so you can put the report from the database into the spreadsheet, to make some extra OS/2 2.0 key elements 28 calculations that are required. When the report has run and the spreadsheet has recalculated, you take the figures into your charting program to make a graph. You may also wish to cut and paste this graph into a new document that you create with your word processor (which you call up quickly after you put it aside) to explain the figures to the boss. In addition, if you are a cautious person, you may back up the report you have created and keep your own copy on diskette (in which case it would have been nice to have started that formatting five minutes ago when you were logging on!) Once you've created the new document, with the latest sales figures and calculations shown in a graph, you may wish to send it to the boss via electronic mail. Finally, you can return, after a brief rush of activity, to your original report where you left it. Such a scenario is characteristic of much of our work. Many of us are driven by interruptions. In fact, it is not an exaggeration to say that any PC user who has a phone can benefit from multi-tasking. The benefits are obvious: o handle interruptions o less waiting for one operation to complete (the "hourglass" in Windows 3.x is a sign of a platform with only limited multi-tasking) o let the computer do the work while you stay productive ___ o handle "beneath the covers" function like logging on, printing and running database reports o give smooth, even performance between different tasks But perhaps the most persuasive argument is to imagine how the above scenario would have been achieved using DOS! WHAT IS PRE-EMPTIVE MULTI-TASKING? Most users understand that multi-tasking allows more than one application to run at once. Of course, without multiple processors, they do not actually execute instructions simultaneously - the CPU still only processes one instruction at a time, but the operating system can divide CPU time between several processes to make it appear to the user that those processes are executing simultaneously. Therefore most multi-tasking operates on the basis of some form of CPU time-slicing. Furthermore, it is important to distinguish between multi-tasking, where applications continue to execute when in the background, and context switching, where they lie dormant until given the user focus. Some environments (such as OS/2 1.3 DOS Box, Windows 3.x standard mode, and DOS 5.0's Task Switcher) are only context switching. In these cases, the background task does not receive CPU cycles, and time is devoted only to foreground tasks. Some of the tasks in the scenario outlined above can be achieved using systems that offer only context-switching, or non-pre-emptive multi-tasking. But a pre-emptive multi-tasking system would allow the whole job to be OS/2 2.0 key elements 29 achieved faster and more efficiently, because the overall performance of the system would be more balanced (see "Why is it important?" on page 30). Systems management tasks like background "agents" to collect configuration and performance data, are very difficult to implement except in a pre-emptive multi-tasking system (see "OS/2 for client-server" on page 109). Multi-tasking is pre-emptive when the processor allocates a finite time to each task, and then switches the processor to another task, even if the first task is not "ready" to give up the processor. Non-pre-emptive implies that tasks can "hold on" to the processor within certain limits. WHY IS IT IMPORTANT? To understand the significance of the difference between pre-emptive and non-pre-emptive multi-tasking, it is useful to contrast the approach taken by a DOS multi-tasker like Windows 3.x, with OS/2's approach. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 4. Multi-tasking under Windows 3.x Windows 3.x implements a time-slicing scheduler on top of DOS, which is in itself a single-tasking operating system. In Windows Enhanced mode (which requires a 386 or above - see "Windows 3.x modes" on page 54), DOS applications run in virtual machines which are pre-emptively multi-tasked; Windows applications run together in one separate virtual machine; this process is pre-emptively multi-tasked in relation to the other DOS sessions. However, Windows applications themselves only support co-operative multi-tasking, which means that Windows applications need to be "well behaved" to give up the processor attention to allow other tasks to proceed, with specific use of functions such as yield(). Windows applications are therefore pre-emptively multi-tasked with respect to the rest of the system, but only co-operatively among Windows applications. When a Windows program needs to do some lengthy processing, or is waiting for I/O, it needs to take special precautions against halting all other Windows programs for this duration. Needless to say, some do not, and that is why the user can be frequently faced with the hourglass icon for periods of time when doing extensive processing or I/O. Furthermore, a Windows application has no guarantee of processor time within any period, which can potentially cause problems for applications needing regular processor attention, such as communications programs. Even though DOS applications are pre-emptively multi-tasked in Windows, the scheduler algorithm is fairly unsophisticated, time-slicing on a static allocation basis (the proportions can be tuned by the user, but they remain static). This means that, even though an application may be unable to make any effective use of its processor share (for example when it is tied up with an I/O request), it will get it anyway, even though more deserving candidates are waiting their turn. Thus the multi-tasking can be bogged down with OS/2 2.0 key elements 30 applications that are "I/O bound," like Application 1 in the above diagram, waiting for an I/O device to respond. Finally, since DOS itself is single-tasking, it has only one I/O queue, and cannot therefore easily handle multiple I/O requests except by processing them serially. So extenders like Windows that rely on DOS may be further weighed down by the single-tasking character of the operating system. One of the best illustrations of the I/O limitations of Windows 3.0 or 3.1 is to try running a spreadsheet recalculation, and a download from a host machine to the hard disk, while also attempting to format a floppy disk from the DOS prompt (not unlike the scenario we discussed previously). You will see that at least one of the tasks (usually the diskette format if it is not in the foreground) will process in a very "jumpy" way, and often will pause for very long periods. It is not unusual in such a scenario, to see one of the tasks come to a near standstill as the others progress. If one of the background applications is a communications program, the lack of processing time available to the background application may even result in loss of data. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 5. Multi-tasking under OS/2 In contrast, OS/2 pre-emptively multi-tasks all processes, and also provides another, more granular unit of execution - the thread. Threads can be thought of as distinct subroutines within a process, which can execute without immediate reference to the main logic, such as file I/O, database read/write, recalculation. In OS/2 these threads can be dispatched separately, and be multi-tasked with each other, and along with other processes. In fact, the basic unit of execution for the scheduler is the thread, and all processes contain at least one thread. The advantage of threads is that more time-consuming operations can be put into separate threads, and the main thread of the program devoted to user input; this helps the application to maintain an interactive and responsive feel even when processing other sub-tasks in the background (see Application 1 in the diagram). In this way, threads help prevent the kind of "I/O bound" feel to many DOS and Windows programs. But it should be noted that use of threads applies to more than just I/O operations: it is a powerful tool that can be used for any operation that can be run in background while allowing the user to regain control of the application, for further input. Threads do not exist in any currently available version of Windows (at the time of writing). Indeed, though the promised future product, Windows/NT (a different operating system) is claimed to offer multi-threading, Windows applications will need to be rewritten to take advantage of this facility, since Windows 3.x programs are inherently single-threaded. Porting from a Windows 16-bit program to a future 32-bit version of the Windows API will not be enough, nor can threads be easily added later; they must be woven into the basic design of the program to be used effectively. In fact, another promised feature of Windows/NT, symmetric multiprocessing, may have little value until multi-threaded Windows programs exist. Symmetric multiprocessing is the OS/2 2.0 key elements 31 ability of a system to run multiple threads of execution on different processors concurrently (eg on multiple 486s within the same machine). By definition it requires a multi-threaded system, and therefore, to take full advantage of it, multi-threaded applications, and Windows today is only single-threaded. So this feature will need new versions of applications to show its advantage. In fact, the most likely early candidates for multi-threaded Windows/NT programs are those (like Sybase SQL Server and Oracle) that are already multi-threaded by design because they exist today as multi-threaded OS/2 programs. It is one of many examples where Windows/NT promises little that is not already available with OS/2 Version 2.0. Again, in contrast with DOS and Windows 3.x, the OS/2 scheduler is much more intelligent than a simple time-slicer. It can detect when applications are I/O bound (like Application 2 in the diagram), and shift CPU time to another thread or process. Thus, priorities can be changed dynamically to preserve overall system responsiveness. And, to complete the picture, since OS/2 itself has a multi-tasking, multi-threaded design, it can provide multiple I/O queues and therefore overlapped I/O between processes. This helps to improve the perceived performance, especially in heavy system loads. The following table summarises the differences between Windows 3.x and OS/2 2.0: +---------------------------------------------------------------------------+ | Table 4. Multi-tasking - Windows 3.x and OS/2 2.0 | +------------------------+-------------------------+------------------------+ | | WINDOWS 3.X | OS/2 2.0 | +------------------------+-------------------------+------------------------+ | Multi-tasking DOS | pre-emptive | pre-emptive | | applications | | | +------------------------+-------------------------+------------------------+ | Multi-tasking Windows | co-operative | pre-emptive (if in | | applications | | separate VDMs) | +------------------------+-------------------------+------------------------+ | Priority | static | dynamic | +------------------------+-------------------------+------------------------+ | I/O processing | serial, single queue | overlapped, multiple | | | | queues | +------------------------+-------------------------+------------------------+ What this means to the user is that OS/2's multi-tasking is smoother, more consistent, less likely to be bogged down by I/O or by an application attempting to monopolise the processor, and more responsive and interactive in feel. OS/2 2.0 key elements 32 MULTI-TASKING AND THE USER INTERFACE One of the advantages of a graphical environment is that it can represent concurrent tasks by icons and windows on the screen, thereby giving a visual indication of the number and variety of tasks. This is true of both Windows and OS/2. However, OS/2 2.0 builds on the basic benefits of the "first generation" GUIs like Windows 3.x and OS/2 1.3, and adds some features specifically designed to aid smoother multi-tasking and switching between tasks: o the "Window List" is more functional than the Windows 3.x task list, allowing several applications to be "resurfaced" on the screen, or closed, at once, rather than moving to and clicking on discrete icons for each task o the ability to "hide" windows when not in use, rather than reducing to an icon on the screen(2) , results in a less cluttered desktop, making it easier to find what you want quicker, especially in screen resolutions with limited screen "real estate," such as VGA. o OS/2 2.0 allows whole groups of applications and data to be grouped together in a logical unit (a "project," as it were) by putting them together in a common folder. This is more convenient and flexible than just creating directories and copying files manually, as you would have to in DOS and Windows. (You can also be more flexible in naming such folders, going beyond the eight character limits even in a FAT file system - see "Descriptive names" on page 92) o Each folder can also be given a "workarea" property. This allows several applications to be opened, hidden or closed, together, simply by opening or closing the folder, rather than going to each window individually. For example, a folder containing a spreadsheet, word processor and graphics applications may have all these programs running together, but then close them or hide them in a single operation on the folder, and restore them all to the state they were in previously, in another single operation. This means the whole state of work in progress can be quickly set aside, and another begun or resumed easily. OS/2's ability to save and restore what you were doing from one boot to another is a specific example of this workarea feature None of these user interface features appear in either Windows 3.x or in the current beta test releases of Windows/NT. The result of all of this is that the Workplace Shell is much easier to use in a multi-tasking scenario than older GUIs. The user interface matches the internal design in being optimised for multiple tasks, making it easy to move from one task to the next. --------------- (2) Windows can either be hidden (the installed default), minimised to the desktop, as happens in Windows 3.x and OS/2 1.3, or minimised to a Minimised Window Viewer, according to the user's preference. This can be set on a per-object basis. OS/2 2.0 key elements 33 FILE SYSTEMS ____________ OS/2 offers superior file system support, which leads to increased performance. The OS/2 architecture also allows other file systems to be installed in a modular fashion (Installable File Systems or IFS). It is therefore more flexible in design to accommodate future enhancements; for example, OS/2 now includes CD-ROM support via an IFS. OS/2 also provides support for very large disks, a consideration that is particularly relevant to server environments. OS/2 supports hard drives up to 2GB in size. In Windows 3.1 the limit is only 1GB. OS/2 2.0 provides file I/O services not only to OS/2 applications, but to DOS and Windows applications running in VDMs. Therefore, DOS and Windows applications can take advantage of the advanced function, without having to be modified, since the DOS emulation of MVDM provides a compatible interface to the file system for DOS applications. Both major OS/2 file systems have been improved under OS/2 2.0, allowing better performance not only for applications themselves, but also in the paging performed by the system when using virtual memory. HIGH PERFORMANCE FILE SYSTEM (HPFS) HPFS was first introduced to OS/2 in version 1.2, and is an example of the kind of advanced function that has not yet been implemented in less sophisticated systems like DOS. It was introduced as an alternative to the File Allocation Table (FAT) system which came from DOS. HPFS is particularly good for managing large disks and partitions or large files. It provides fast and consistent performance, outperforming DOS-based FAT systems in tests run by IBM, in nearly all cases. (OS/2 2.0 implements an enhanced FAT system that uses some similar caching features as HPFS, which can also give high performance in many circumstances - see below). HPFS is particularly good in disk utilisation (compared to FAT). It uses a highly contiguous file allocation system, which results in especially good performance (relative to FAT) in accessing files or data in a cluttered or full partition. It implements a B-Tree directory structure and search algorithm, as opposed to sequential under FAT. HPFS also allows for multi-threaded I/O, caching of directory pointers in memory for quicker access of last directories used, and read-ahead and lazy write (lazy write buffers up write requests from applications and commits them to disk after a given time or during disk inactivity.) These advanced features allow for substantial performance increases and greater tuning. HPFS can also provide write error recovery on the fly with "hotfix" facilities. Since it is FAT-compatible at API level, applications running under OS/2 can use either system, and do not have to be written specifically for one or the other. It also presents a consistent interface to other components of OS/2 like MVDM, to allow DOS and Windows to use HPFS volumes as if they were FAT. HPFS also supports the use of long file names, for greater usability, so instead of having LJS1290.TXT, you can have a file name "Letter to John Smith OS/2 2.0 key elements 34 December 90." Obviously applications need to be coded with this in mind. DOS and Windows applications can use files that adhere to the 8.3 naming system on HPFS without any difficulty. HPFS has been enhanced in version 2.0 to add performance-related features such as command chaining (providing a list of contiguous sector requests required to fulfil an I/O request) and scatter/gather facilities such as are supported in Small Computer Systems Interface (SCSI) adapters to gather physically discontiguous pages in a data buffer, and perform I/O in a single operation. ENHANCED FAT OS/2 2.0 includes an enhanced version of the FAT file system which is completely compatible with the FAT system under DOS. This gives greater performance but full compatibility with existing FAT systems. It adds features like lazy write and improved caching to FAT. This means that DOS applications running with a FAT file system under OS/2 2.0 will be substantially faster for disk-based operations than under DOS. All of these benefits can be obtained without having to reformat your hard disk - the OS/2 enhanced FAT driver works with existing DOS FAT volumes. SCB EXPLOITATION OS/2 2.0 implements the Subsystem Control Block (SCB) architecture for more intelligent and efficient disk access. SCB defines a standard way of communicating between device drivers running on the main system CPU, and I/O processors located on advanced function adapters (like SCSI) that are capable of operating independently from the CPU. SCB therefore fits naturally with the use of SCSI adapters, and will allow better exploitation of SCSI functions like scatter/gather and command chaining. The implementation is transparent to the OS/2 user and the developer; there are no application considerations, simply improved performance. It is simply a means of getting more out of a system that provides advanced intelligent adapters for disk I/O. Exploitation of newer, more advanced devices such as SCSI is better under OS/2 than under Windows, which does not provide such features. BROAD HARDWARE SUPPORT ______________________ OS/2 1.x was separately distributed by both IBM and Microsoft. IBM delivered IBM OS/2, which was specifically optimised for and supported on IBM equipment (AT and PS/2 family), while Microsoft distributed MS OS/2 to its OEMs like Compaq and Olivetti (many of these versions had manufacturer-specific modifications too). This meant that there were different versions of OS/2 according to the machine it ran on. Although this was not in essence any different than had always been the case for DOS, the perception was that supporting OS/2 in a mixed hardware environment was hampered by the lack of a "generic" version of OS/2. This problem has been overcome in OS/2 2.0, which supports a broad range of machines with an Intel 386SX or above, with a single version of OS/2. This OS/2 2.0 key elements 35 shows that OS/2 2.0 does not run only on IBM equipment. Open hardware support applies not only to the base system, but also to Extended Services for OS/2 and OS/2 LAN Server (some models may require more memory installed to run the systems extensions). IBM supplies regularly updated lists of the models it has tested via bulletin boards (see the list in Appendix D, "OS/2 Bulletin Board Systems" on page 161) and IBM representatives. Among the vendors whose models are supported, are Compaq, AST, Olivetti, Toshiba, Hewlett Packard, Dell, Gateway, Wang, DEC, NCR, Tandy, ACER, CompuAdd and many others. Ask your IBM representative to look for the PCMTABLE package on the MKTTOOLS disk. In fact, even though IBM cannot test OS/2 on all the models and manufacturers in the market, it is likely that most PCs equipped with an Intel 386SX or above processor, will work. More models are being tested all the time, and IBM is committed to working with as many manufacturers as possible to determine OS/2 compatibility. Indeed, the evidence from user registrations for OS/2 2.0 in Europe alone, suggests that users are already running OS/2 2.0 on hundreds of machines that have not yet appeared on any "official" list. By 2 September, 1992, 802 models had been recorded from registration cards that do not appear on the list of tested models. OS/2 is not limited to machines with Micro Channel architecture. Even the supported PS/2 models include AT-bus machines like the Model 40, as well as Micro Channel machines like the Model 57. AT-bus, Micro channel and EISA machines from a variety of vendors are supported. Furthermore, IBM is now making OS/2 2.0 available, preloaded on the hard disk of selected IBM PS/2 models, including the Models 56 and 57. This is a convenience for users, who do not need to install the operating system at all, but can switch on the PC to discover the system already set up for their use, along with a number of new applets and help on using the system. IBM is making this facility available to other IBM-compatible hardware manufacturers, and arrangements have already been made with a number of vendors, including Dell and Olivetti, to provide OS/2 2.0 with selected models in their hardware range. Contact your supplier for the latest information. OS/2 also has broad support for different displays, disks and printers. Most of the major display standards (VGA, 8514, XGA) have full support. SuperVGA (SVGA) support exists for some adapter types already (some existed in OS/2 1.3), and more drivers are appearing from the SVGA chip set vendors like Trident and Tseng. Many SVGA DOS and Windows drivers are also supported in full screen DOS and WIN-OS/2 sessions, even if the main desktop has to run in VGA mode if there is no PM screen driver. IBM plans further enabling of SuperVGA support in an update option to be made available by the end of 1992. OS/2 supports 205 models of printer, which covers over 90% of the printer market, from dot matrix, to inkjet and laser printers. Models from the major vendors like Epson, Hewlett Packard and IBM receive wide coverage (look at the file PMSETUP.INF in the \OS2 directory for the complete list). There is also generic text printing support which should work on any printer. Furthermore, if a Windows driver exists for a device, it can be installed in WIN-OS/2, and used for Windows applications running under OS/2 2.0 (the product includes additional Windows printer drivers for Canon, HP and NEC OS/2 2.0 key elements 36 printers). Where both a Windows and an OS/2 printer driver exist, they can both be installed in one step at installation time. Generic INT13 disk support is provided in OS/2 2.0, which should allow most of the common drive types to work. IBM and Adaptec have developed a common specification which will make the development of vendor-specific SCSI drives much easier. Drivers already exist for some of the OEM SCSI adapter vendors. More are in development, and IBM is producing tools to help support the development of drivers for displays, printers and disks. OS/2 1.x suffered from a relative lack of OS/2 device driver support, but OS/2 2.0 can make use of many devices via their DOS device driver (see "DOS device drivers" on page 46). Devices such as hand scanners and fax cards can often be supported in this way, broadening the range of devices available to OS/2 users. OS/2 device support is broadening as the industry increases its support, but IBM continues to develop drivers itself and work with other vendors to ensure that even wider support is provided. OS/2 2.0 key elements 37 BETTER DOS __________ There are over 20,000 DOS applications available today. In order to be an integrating platform for PC-based applications, the primary task for OS/2 2.0 is to fully support that wide range of applications. OS/2 version 1.3 was limited in the support it could provide for DOS applications, mainly due to the limitations of the 286 architecture on which the OS/2 1.x base was designed. However, use of the 386, and in particular the virtual 8086 mode of the processor, allows DOS applications support to be much more extensive in version 2.0 - indeed, a better DOS than DOS itself. MULTIPLE DOS APPLICATIONS _________________________ Several DOS applications can be run at once in OS/2 2.0. All DOS applications can be invoked from an icon on the Workplace Shell desktop, or from any DOS or OS/2 command prompt. They can be run in a full screen session (rather like they were in 1.3), or windowed on the Workplace Shell desktop. Both text-based applications (such as Lotus 1-2-3 v2.2 and WordPerfect) and applications that run in graphics mode (such as Lotus Freelance Plus or Harvard Graphics, as well as the Microsoft Flight Simulator or other games programs) can be run. Graphics mode applications can be run windowed alongside text-based applications running in windows. This cannot be done without restrictions in Windows 3.0, and although Windows 3.1 does allow VGA graphics to run in a window, this feature will not be available under Windows/NT, where, according to Microsoft, the application will have to run full screen. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 6. Multiple DOS applications in windows on the Workplace Shell desktop DOS applications running in a window on the Workplace Shell desktop can take advantage of many of the ease of use features of the Workplace Shell, such as sizing the window to a convenient size, tiling windows so several applications can appear alongside each other, and hiding them to make more space on the screen while leaving the application running. Furthermore, many DOS applications will be able to take advantage of the font support in PM windows: you can change the font size to better suit the size of the window you are running in (the range of sizes available is determined by the display adapter you are using - on VGA, for example, there are 10). Again, all of this support is provided by PM: no modification is required to the DOS application. Contrast this with DOS, where getting a small font size for applications like Lotus 1-2-3, requires re-running the Install program, and the risk of creating an invalid setup. Better DOS 38 DOS applications that support the mouse get use of the mouse, even when running in a window (there are DOS settings to give the DOS application exclusive use of the mouse pointer while in the application window - see "DOS Settings" on page 47). This is much easier to set up in OS/2 2.0 than it is under Windows 3.1 (Windows 3.0 did not support DOS windowed applications using a mouse), as it only requires one change to the DOS settings (which are automatically set up for many programs via the Migrate option - see "Migrating applications" on page 51); in Windows 3.1, you need to have already installed the DOS mouse driver in AUTOEXEC.BAT or CONFIG.SYS (thus reducing the memory available to all DOS applications whether or not they use the mouse). All of this means that, without changing any of your DOS applications, the Workplace Shell environment can "add value" to the applications while preserving full compatibility with the way they are used under DOS. APPLICATION INTEGRATION _______________________ OS/2's DOS support is not simply a question of compatibility - under OS/2 2.0, you can make your applications work together in a way that is not possible under plain DOS. It is possible to copy information from one application to the clipboard, and paste it into another. This can be between two DOS applications, between a DOS application and an OS/2 application, or any combination of DOS, Windows and OS/2 applications. Moreover, both text and graphics can be cut and pasted between applications, (although graphics can only be received by those applications that are capable of handling bitmap data - mainly OS/2 and Windows applications). This allows two-way sharing of data between applications. This means that DOS applications not only integrate better with GUI applications written for Windows and OS/2, but also with other DOS applications, even though they may not have been written to work together. Imagine, for example, if you were using the DOS versions of Lotus 1-2-3 and WordPerfect, and you wanted to incorporate some figures from your spreadsheet into the report you are writing on the word processor. Under DOS, you would need to quit one application (the word processor) to load another (the spreadsheet), retrieve the spreadsheet file and make the conversion into a file format the word processor understands (perhaps plain ASCII, thus losing any formatting you have created in the spreadsheet), exit the spreadsheet application, load the word processor and the report again, and import the data into your report. Whereas in OS/2 2.0, you can simply use the clipboard. With the applications running side by side in windows on the desktop, mark some data from the spreadsheet, copy it to the clipboard, and paste it into the word processor - all without closing files or applications. The clipboard takes care of any data conversion. As the number of applications you need to integrate grows, so the difficulty of remembering different methods of data conversion grows, but in OS/2 2.0, the user simply works with copy and paste each time. Thus, standard, unmodified DOS applications can be integrated under the OS/2 Workplace Shell. DOS applications can also be written to take advantage of Better DOS 39 the OS/2 environment, or OS/2 applications written to start DOS applications. One example of this is the OS/2 command prompt in OS/2 2.0, which can start DOS applications simply by typing the name of the .EXE file, just as one would from a DOS command prompt. This helps to reduce the need to differentiate between DOS and OS/2 applications, from the user's point of view. Another method of integration is via the named pipes mechanism, which allows DOS and OS/2 applications to be written to communicate with each other. MULTI-TASKING OF DOS APPLICATIONS _________________________________ Not only can several DOS applications run at the same time, in separate windows on the Workplace Shell desktop, but each continues to run in the background while you are working on another. In this way, DOS applications can take advantage of OS/2's pre-emptive multi-tasking, overlapped I/O, and OS/2 file system performance. Let's take a look at each of these in turn: PRE-EMPTIVE MULTI-TASKING As was explained earlier ("Multi-tasking" on page 28), OS/2 was designed to manage processor time smoothly between multiple applications, not only OS/2 applications, but also DOS and Windows applications running in Virtual DOS Machines (VDMs). This is more sophisticated than the simple time-slicing mechanism employed by Windows 3.x, and takes into account, for example, when applications are "I/O bound," waiting for an I/O device to respond. In OS/2 priorities can be changed dynamically by the processor according to such criteria, in contrast to the static approach employed by Windows 3.x. Therefore, even though both environments employ pre-emptive multi-tasking for DOS applications, the OS/2 scheduler is more sophisticated than Windows' scheduler. Relative performance between applications can be tuned by a number of DOS settings (see "DOS Settings" on page 47 for some examples of DOS settings). The result of all of this, is that OS/2 provides a more balanced performance between applications, not only those from DOS, but between them and Windows and OS/2 applications. OVERLAPPED I/O All DOS applications have their I/O requests serviced by OS/2 (although the application makes calls to DOS I/O in the same way as usual, they are trapped and serviced by OS/2). This allows DOS applications to take advantage of OS/2's better I/O capabilities without needing to be rewritten. Just by running under OS/2 they can benefit from OS/2's ability to overlap I/O requests and services. This improves performance in many scenarios, particularly where multiple applications are running. Better DOS 40 ACCESS TO OS/2 FILE SYSTEM Although DOS applications have not been written to use the OS/2 file systems, they can without modification use them and derive the same benefits as OS/2 applications do. All file access uses the OS/2 file system. Both the HPFS and enhanced FAT file systems under OS/2 provide superior performance compared to DOS(3) Therefore despite the inevitable multi-tasking overhead, many applications will perform just as well, and some will perform better, than under native DOS. In test cases run by IBM, multi-tasking performance of DOS applications was superior to that under Windows 3.x. MEMORY USAGE ____________ Memory has been one of the biggest constraints on the development of the DOS environment. The 640KB limit was for a long time an inhibiting factor for many users and application developers. Despite many workarounds, such as the LIM expanded memory, use of the HMA area, and the growth of DOS extenders (see "Memory: Conventional, Expanded, Extended" on page 21 for a more detailed discussion), memory management under DOS is a complex and frustrating task, and there still remain limitations for the large number of DOS applications written to use only conventional memory below the 640KB mark. COMPARISON WITH MEMORY USAGE UNDER DOS Part of the problem has been that successive releases of DOS have added function, but removed some of the vital conventional address space. The following chart shows the relative memory sizes free under various versions of DOS: +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 7. DOS application memory space - a comparison As the chart also shows, OS/2 Version 2.0 provides a DOS conventional memory of 633KB, at least as good, if not better, than even DOS 5.0 or DR-DOS 6.0. (The respective vendors of both of the latter products promote the amount of memory free as key selling points for their systems). And that is only for default configurations. In the real world, many device drivers are needed for various applications, whether for memory (expanded or extended), connectivity (LAN, 3270), or mouse. In OS/2 2.0 these features are supported without taking precious conventional memory away, whereas, even in --------------- (3) See, for example, the benchmarks run by NSTL in their Software Digest Ratings Report Volume 9, Number 4 Better DOS 41 systems like DOS 5.0 that can move certain device drivers into the HMA area, there is nearly always a conventional memory impact. The following table shows some sample configurations which illustrate this point vividly: +---------------------------------------------------------------------------+ | Table 5. Memory comparison: OS/2 2.0, DOS 5.0, Windows 3.1 enhanced mode | +-------------------------------------+------------+------------+-----------+ | | OS/2 2.0 | DOS 5.0 | WINDOWS | | | | | 3.1 | +-------------------------------------+------------+------------+-----------+ | Conventional DOS memory after | 633KB | 622KB | 577KB | | default install | | | | +-------------------------------------+------------+------------+-----------+ | Various scenarios, built on default configuration: | __________________________________________________ +---------------------------------------------------------------------------+ | CONFIG #1 - POPULAR FEATURES | +-------------------------------------+------------+------------+-----------+ | file I/O | YES | 1 | 1 | +-------------------------------------+------------+------------+-----------+ | EMS | YES | 8 | 8 | +-------------------------------------+------------+------------+-----------+ | mouse | YES | 14 | 14 | +-------------------------------------+------------+------------+-----------+ | fast file access | YES | 20 | 20 | +-------------------------------------+------------+------------+-----------+ | REMAINING APPLICATION MEMORY | 633KB | 579KB | 534KB | ____________________________ +-------------------------------------+------------+------------+-----------+ | CONFIG #2 - LAN CONNECTIVITY | +-------------------------------------+------------+------------+-----------+ | LAN adapter drivers and LAN | YES | 100 | 100 | | requester | | | | +-------------------------------------+------------+------------+-----------+ | REMAINING APPLICATION MEMORY | 633KB | 522KB | 477KB | ____________________________ +-------------------------------------+------------+------------+-----------+ | CONFIG #3 - 3270 CONNECTIVITY | +-------------------------------------+------------+------------+-----------+ | 3270 adapter drivers and emulator | YES | 28 | 28 | +-------------------------------------+------------+------------+-----------+ | REMAINING APPLICATION MEMORY | 633KB | 594KB | 549KB | ____________________________ +-------------------------------------+------------+------------+-----------+ | CONFIG #4 - NLS PACKAGE/COUNTRY SUPPORT | +-------------------------------------+------------+------------+-----------+ | NLS keyboard | YES | 7 | 7 | +-------------------------------------+------------+------------+-----------+ | NLS display | YES | 8 | 8 | +-------------------------------------+------------+------------+-----------+ | NLS printer | YES | 11 | 11 | +-------------------------------------+------------+------------+-----------+ | NLS other (eg codepage) | YES | 5 (min) | 5 (min) | +-------------------------------------+------------+------------+-----------+ | REMAINING APPLICATION MEMORY | 633KB | 591KB | 546KB | ____________________________ +-------------------------------------+------------+------------+-----------+ Better DOS 42 Of course, the above configurations are by no means mutually exclusive: it will be very common to have elements from at least two of the configuration groups above. Indeed, groups 1, 2 and 3 together could be considered a fairly essential configuration for a corporate, connected workstation, running any modern DOS applications. That means the difference between OS/2 and DOS grows greater. Note also, of course, that because Windows 3.1 and 3.0 are DOS extenders, and run on top of DOS, that any reductions in the memory available for DOS will be passed on to Windows, and to any DOS applications executing under Windows. While it may not be a problem for Windows applications running in standard or enhanced mode, which use extended memory anyway, it will substantially reduce the effectiveness of most DOS applications running under Windows because of the constraints on conventional memory. The reason OS/2 can provide all these features without loss of DOS application space is because many features are supported by OS/2 device drivers, which are available to OS/2 and DOS applications, and which do not affect the amount of application space available to DOS applications. Only the DOS emulation kernel resides below 1MB. In this way, the MVDM architecture makes available to DOS applications the maximum amount of conventional memory. In fact, if that were not enough, it is possible to increase DOS application space still further. One of the DOS settings is VIDEO_MODE_RESTRICTION (see "DOS Settings" on page 47). This frees much of the video buffer space above the 640KB line by restricting applications to text or CGA graphics mode only, allowing more than 720KB memory free - an unheard of figure for DOS users! This increased size of conventional memory space may even mean that, where DOS users could not load TSR programs with larger DOS applications, they can under OS/2! Furthermore, there are many scenarios encountered by Windows 3.x users today, where they require access to a network, and a Windows application, at the same time as using a DOS application that requires 590K or more memory (the latter is not uncommon with the more modern DOS applications). This combination is usually not possible under Windows 3.x, and the user has to exit Windows to run the DOS application, or remove network support. Under OS/2 2.0, this setup can be achieved easily. And, of course, more conventional memory means more space for data and, for some DOS applications, better performance, making OS/2 a better DOS environment than DOS itself, by overcoming one of DOS's most fundamental limitations - memory. EXPANDED AND EXTENDED MEMORY OS/2 also supports the full range of other memory types supported under DOS and Windows 3.x: HMA, XMS, expanded and extended memory and DPMI (see "Memory: Conventional, Expanded, Extended" on page 21 for an explanation of these memory types). This means that not only do all DOS applications have more conventional memory available, but those which have been written to access more memory can work in the same way under OS/2 2.0. Better DOS 43 For example, expanded memory conforms to the LIM 4.0 specification, and will provide expanded memory to applications like Lotus 1-2-3 release 2 using the standard DOS INT 67h services. Each VDM is provided with a separate EMS emulation, so each can access as much expanded memory as necessary, and not conflict with each other. The amount of expanded memory is configurable by the user in DOS settings, as well as a limit set across all VDMs if required. In Windows 3.x, expanded memory can only be used if a physical expanded memory adapter is in the machine, therefore limiting the number of users who can mix applications needing expanded and extended memory. XMS support (LIMA version 2.0 level) is provided via a virtual device driver (the same is true of EMS), and manages three types of memory: High Memory Area (HMA), Upper Memory Blocks (UMBs) in the Upper Memory Area (UMA) and Extended Memory Blocks (EMBs). These are used by various DOS applications and TSRs, and by Windows 3.x and DOS 5.0. Just as DOS 5.0 can load part of the system into the HMA, and device drivers into UMBs, so can OS/2 2.0 via the statements DOS=HIGH and DEVICEHIGH= in CONFIG.SYS; these settings can also be made for an individual VDM by changing the DOS Settings DOS_HIGH and DOS_UMB (see "DOS Settings" on page 47). Furthermore, more extended memory can be provided to DOS applications under OS/2. DPMI-compliant applications such as Lotus 1-2-3 version 3.1+ can access up to 512MB of extended memory in an OS/2 VDM. The key point is that OS/2 provides compatible services for extended and expanded memory for DOS applications, as well as a larger conventional address space, and also provides higher limits for many of the DOS applications that use extended memory. And this can usually be provided as default without any configuration effort on the user's part. MULTIPLE DOS APPLICATIONS - EFFECT ON MEMORY Runing several DOS applications will not cause an excessive effect on memory use or performance. Because OS/2 operates a virtual memory system, you do not need to have extra physical memory to have large memory applications, nor to run several of them at once. Any memory required above what is physically installed will be found by using the disk as virtual memory. VDMs are swappable when inactive, reducing the overall overhead on physical memory. Furthermore, applications that do not use EMS, XMS or DPMI, can have the default VDM settings changed to remove any expanded/extended memory requirements, thus reducing the overall virtual memory required. RELIABILITY AND PROTECTION __________________________ In DOS, most applications run in the real mode of the processor. DOS extender applications execute mainly in protected mode, but still have to switch back to real mode to perform certain I/O instructions (such as most calls to DOS services) or when passing control to TSRs like device drivers. Protected mode, as its name suggests, provides a measure of protection in the CPU between processes, but while in real mode, applications can write to any area of memory. Errors can exist even in the best-written and well tested of DOS applications, which can cause such system corruption under DOS, often leading to a system crash or hang, forcing the machine to be rebooted. Windows 3.x, Better DOS 44 as a DOS extender, can be prone to some of these problems. The problem can be particularly acute under Windows, since one application that crashes may affect all the programs running at that time. Therefore, the potential for data loss and for wasted time in resetting the system, is even greater. That is why it is crucial that a multi-tasking environment provides as much protection as is possible. There is a limit to how much can be achieved under DOS or a DOS extender. In fact, although Windows 3.1 is claimed to provide greater protection than Windows 3.0, by "rebooting" individual DOS sessions and adding parameter checking, it is still as prone as before to the risk of a DOS TSR (such as a DOS network driver) taking the system out of protected mode into real mode (see "Reliability" on page 61). Neither Windows 3.0 nor 3.1 can prevent this "trap door" in its system integrity as long as they run on DOS. It is, in architectural terms, fundamentally prone to such problems, no matter what error checking code is implemented at higher levels. In OS/2 2.0, each VDM emulates an entirely independent instance of DOS, and each VDM has its own separate address space (just like other processes under OS/2), applications are protected from one another, and the system is protected from applications. The VDM Manager (VDMM) within the OS/2 kernel can terminate VDMs when an application or device driver performs an illegal operation, while allowing other VDMs to continue running. While it is not impossible to crash OS/2 (no system is secure from applications designed specifically to subvert the normal means of protection), it provides a higher degree of crash protection than any alternatives running on DOS. Therefore, OS/2 is better protected than DOS, and provides all the benefits of a DOS extender, including multi-tasking of DOS applications, without the uncertainty of using an operating system (DOS) that was never designed for multi-tasking. COMPATIBILITY _____________ Of course, none of the benefits of extra memory, application protection, integration, multi-tasking and so on, are of much value to users unless they can be certain that their DOS application will run. It is impossible to guarantee all applications will run, of course (there are more than 20,000 commercial applications without even counting the investment made by in-house corporate developers - an impossible testing task!). But it is worth understanding how OS/2 2.0 has been designed to provide the maximum compatibility possible in a multi-tasking environment. OVERCOMING OS/2 1.3 LIMITATIONS Since OS/2 2.0 is not constrained by some of the limitations of the OS/2 1.3 DOS box, particularly with regard to more memory (some DOS applications simply did not have enough memory free to run in the OS/2 1.3 DOS Box), and support for interrupt-dependent programs like communications, it is able to offer wider compatibility for DOS applications. However, OS/2 2.0 has taken compatibility still further, and has been designed to take into account some of the aspects of DOS applications which show their single-tasking heritage. Better DOS 45 For example, some so-called "bad" applications directly address hardware devices, and assume they have sole control over them. Many applications write directly to the video memory buffer to improve screen refresh performance. Perhaps the best known example of such an application is Lotus 1-2-3. In a multi-tasking environment, it is important to be able to handle multiple applications wanting to write to the screen at once, and maintain visual consistency on the screen, while keeping maximum compatibility with existing applications. OS/2 does this via its virtual device drivers. There is a virtual video device driver, and also a virtual COM driver, which handles contentions between applications wanting to use the COM port, and provides all DOS applications with COM services at the same time. The video virtual device driver is of further interest in that it provides applications with fast screen I/O by allowing the foreground application to write directly to the video hardware, but still insulating the physical hardware from background VDM screen activity. It also provides services for DOS applications that use BIOS video routines, by intercepting the ROM BIOS video interrupt (INT 10h) and performing the requested operations directly, thus improving performance. DOS DEVICE DRIVERS Many common device types (video, keyboard, mouse, COM, EMS, printer) are supported by virtual device drivers. If neither a virtual device driver nor OS/2 protected mode device driver is available, OS/2 2.0 can still provide support for many DOS device drivers via a "generic" DOS device support. This would usually entail exclusive access to that adapter and device driver from one single VDM. This will be more than adequate for many DOS applications, which use many device drivers for only one application anyway. And it has the great advantage of allowing the large number of DOS device drivers, for the plethora of adapters now available for PCs, to be used "as-is" under OS/2 2.0. Scarcity of protected mode device drivers was an inhibitor to adoption of OS/2 1.x; it need not be for 2.0. IBM has demonstrated how DOS device drivers for scanners, FAX cards, MIDI adapters can all be supported, and DOS applications that depend on them work unmodified. Furthermore, there are a variety of devices in the banking and manufacturing industries that can also be supported via this approach. Even 3270 applications can be supported with the DOS device driver in this way.(4) However, a better approach would be to use an OS/2 device driver, as provided with Extended Services for OS/2, for example, which can support both DOS and OS/2 3270 applications simultaneously. This is better than running the DOS driver in a VDM, which only allows access exclusive to that VDM. A similar restriction exists in the March General Availability code, with DOS network drivers (eg for Token Ring adapter). These can often be used, but allow the adapter only to be used within a single VDM (so that, for example, DOS 3270 --------------- (4) The Microsoft document "Microsoft Windows/NT Operating System - An Overview" confirms that "...OS/2 supports some MS-DOS programs requiring some special-purpose, custom device drivers, whereas Windows NT does not. Examples are 3270 emulators, fax boards, scanners and MIDI boards." (p13) Better DOS 46 communications via Token Ring cannot be used concurrently with DOS-based networking through the same Token Ring adapter). This restriction can be overcome for Token Ring using the Network Transport Services/2 product (NTS/2) - see "IBM Network Transport Services/2" on page 115 running on an OS/2 2.0 base. This product provides a virtual device driver (VDD) for 802.2 access. This VDD allows 802.2 device sharing between VDMs so that, for example, Personal Communications/3270 and program using the LAN can run together. Even so, not all DOS device drivers are supported. Some block device drivers (usually disk and tape drivers) are not supported, though some can run by booting the "real" DOS inside a VDM (see "Virtual Machine Boot (VMB)" on page 51). The result of this is that OS/2 opens the door to an even wider range of DOS applications and devices that can run as before, but taking advantage of the OS/2 benefits described here. WHAT DOS VERSION? OS/2's DOS emulation is just that - an OS/2-specific DOS kernel that emulates DOS services. It is "DOS 5.0 - like," in that it should run all applications supported by DOS 5.0. Should applications require dependencies on a specific version of DOS there are a number of strategies available to the OS/2 2.0 user. First of all, it is possible to "fake out" the DOS version, in other words, fool the application into thinking you are using a specific version of a DOS component. This is using the DOS_VERSION setting in DOS Settings (see below). If this is not enough, it is possible to boot the real version of DOS inside that VDM only (see "Virtual Machine Boot (VMB)" on page 51). DOS SETTINGS The DOS_VERSION option described above is just one of a number of "DOS Settings" that can be changed to control the environment in each VDM. These are set for that VDM only. Some settings can be made for all VDMs via AUTOEXEC.BAT and CONFIG.SYS, such as DEVICE=... statements (ANSI, VXMS, VEMM, VMOUSE, VVGA, VCOM), and some (though not all) can be changed while the application is running. Several of these settings can also have an effect on DOS compatibility, others can improve performance. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 8. DOS Settings notebook This means that each individual VDM can have its own optimised settings: some with EMS, others without; some have DOS loaded high, others have special DOS device drivers loaded in that VDM only. This gives great flexibility in configuration, and allows the user to run different DOS applications Better DOS 47 concurrently without having to maintain different CONFIG.SYS files and reboot between them. Among the commonly used or interesting settings are: +---------------------------------------------------------------------------+ | Table 6 (Page 1 of 3). Some VDM DOS Settings | +----------------------+-----------------------------------------+----------+ | SETTING | DESCRIPTION | DEFAULT | | | | SETTING | +----------------------+-----------------------------------------+----------+ | DOS_BACKGROUND_EXECUT|OWhen set off, suspends execution of the | On | | | program when it is in the background. | | | | Useful for preventing degradation of | | | | multi-tasking performance when a single | | | | application is polling heavily for | | | | keyboard input. Rather less fine | | | | control than using IDLE_SENSITIVITY and | | | | IDLE_SECONDS, which should be attempted | | | | first (see below). | | +----------------------+-----------------------------------------+----------+ | DOS_DEVICE | Allows DOS device drivers to be loaded | Existing | | | in an individual VDM, rather than | drivers | | | across all DOS sessions. It adds to the | from | | | drivers specified in CONFIG.SYS, which | CONFIG | | | apply to all DOS sessions. The path and | SYS are | | | name of the device driver are entered, | listed | | | and this driver is available only for | | | | that VDM. | | +----------------------+-----------------------------------------+----------+ | DOS_UMB | Gives the DOS emulation kernel use of | On | | | Upper Memory Blocks, so that DOS TSRs | | | | and device drivers can be loaded into | | | | addresses between 640 and 1024KB, thus | | | | freeing memory for DOS applications | | | | below 640KB. This is similar to the DOS | | | | 5.0 function, allowing use of the | | | | DEVICEHIGH and LOADHIGH commands. The | | | | UMB ownership can be relinquished by | | | | turning this feature off, if an | | | | application program needs to manage | | | | UMBs. This setting can also be made | | | | globally in CONFIG.SYS. | | +----------------------+-----------------------------------------+----------+ Better DOS 48 +---------------------------------------------------------------------------+ | Table 6 (Page 2 of 3). Some VDM DOS Settings | +----------------------+-----------------------------------------+----------+ | SETTING | DESCRIPTION | DEFAULT | | | | SETTING | +----------------------+-----------------------------------------+----------+ | DOS_VERSION | Allows OS/2 to report a "fake" DOS | 20 (ie | | | version number to a request from a | OS/2 | | | program in the VDM, in order to support | Version | | | applications that check for a specific | 2.0) | | | DOS version number. This is important | | | | for applications such as Lotus 1-2-3 | | | | version 3.1+, which look for the | | | | presence of DOS 3.3 or above. The | | | | parameters set are the name of the DOS | | | | executable (eg 123DOS.EXE) followed by | | | | the DOS major and minor version number | | | | (eg 3,30 for DOS 3.3), then the number | | | | of times to "fool" the application (255 | | | | means "every time") | | +----------------------+-----------------------------------------+----------+ | DPMI_MEMORY_LIMIT | Specifies the maximum amount of | 2 | | | protected mode memory available to DPMI | | | | applications running in a VDM (in MB). | | | | It is important to set this figure high | | | | enough for a WIN-OS/2 VDM running | | | | multiple Windows applications in the | | | | same VDM. | | +----------------------+-----------------------------------------+----------+ | IDLE_SECONDS | Disables the IDLE_SENSITIVITY (see | 0 | | | below) setting for a period of time | | | | after "useful" work by the application | | | | has been detected. Some programs | | | | appear to be waiting for input, but | | | | then change and continue other work. | | | | The setting needs to be made high | | | | enough to allow the application to run | | | | fast enough, but not too high as to | | | | give the program more resources than it | | | | needs | | +----------------------+-----------------------------------------+----------+ | IDLE_SENSITIVITY | Sets a threshold for judging when | 75% | | | applications will be deemed idle (ie | (refers | | | waiting for I/O, polling etc). OS/2 2.0 | to % of | | | can detect idle programs, especially | maximum | | | those with a high rate of polling for | possible | | | input, and gives them less time to run, | polling | | | assigning the CPU to more "deserving" | rate) | | | applications. This setting allows a | | | | user to modify OS/2's "best guess" at | | | | what it considers idle. The lower the | | | | number, the more likely OS/2 will judge | | | | the application idle. | | +----------------------+-----------------------------------------+----------+ Better DOS 49 +---------------------------------------------------------------------------+ | Table 6 (Page 3 of 3). Some VDM DOS Settings | +----------------------+-----------------------------------------+----------+ | SETTING | DESCRIPTION | DEFAULT | | | | SETTING | +----------------------+-----------------------------------------+----------+ | MOUSE_EXCLUSIVE_ACCES| Allows a VDM to run applications that | Off | | | maintain their own mouse pointers, and | | | | which manage their own mouse positions | | | | and movements, by forcing the physical | | | | mouse driver to send its movements | | | | directly to the virtual mouse driver | | | | (and therefore to the DOS application) | | | | rather than going through PM. Only one | | | | mouse pointer appears when that VDM | | | | window has the focus. Useful when | | | | running DOS applications that require | | | | use of the mouse, in windows on the | | | | Workplace Shell desktop, and prevents | | | | the situation where you can see 2 mouse | | | | pointers, one for the DOS application, | | | | and one for PM, and have difficulty | | | | synchronising them. An example of a DOS | | | | application that can use a mouse in a | | | | VDM is WordPerfect 5.1 for DOS. | | +----------------------+-----------------------------------------+----------+ | PRINT_TIMEOUT | Sets the time in seconds after which | 15 | | | the spooler will close a print job | | | | initiated by the VDM, and begin to | | | | print. This means that printing can | | | | begin from DOS applications that do not | | | | close their print jobs, without having | | | | to exit the DOS application | | +----------------------+-----------------------------------------+----------+ | VIDEO_FASTPASTE | Improves the speed of paste operations | Off | | | from the clipboard to a DOS | | | | application. Not all applications can | | | | support this. | | +----------------------+-----------------------------------------+----------+ | VIDEO_MODE_RESTRICTIO| Extends DOS address space beyond 640KB | None | | | by limiting video mode support to CGA, | | | | providing up to 96KB (depending on | | | | video adapter installed) extra for DOS | | | | applications | | +----------------------+-----------------------------------------+----------+ Help is provided with OS/2 2.0 to guide users in modifying these settings, but it should be noted that much of the time, DOS settings will neither need to be examined nor changed. The vast majority of applications will work with the default settings. Many of the most common DOS applications can have their settings automatically created by the Migrate program (see below). Better DOS 50 MIGRATING APPLICATIONS OS/2 2.0 provides a migration database (DATABASE.DAT) that contains parameters and settings for commonly used DOS, Windows and OS/2 programs. This binary database file is used by the MIGRATE APPLICATIONS object to place the program icons onto the desktop and customise their DOS or WIN-OS/2 settings to the recommended values (which have been determined during pre-release testing). This means that for many common DOS and Windows programs, there will be no need to modify DOS settings, since the Migrate program will automatically place a program object on the desktop with the optimal settings. These are placed in a "DOS Programs" folder and a "Windows programs" folder as appropriate. Migrate also allows applications not in the migration database to be migrated, but with the default DOS settings, which can then be modified manually if preferred. These programs are placed in folders called "Additional DOS programs" and "Additional Windows programs" as appropriate. All folders created by Migrate are given the appearance of the group icons used in Windows 3.x and OS/2 1.3, for visual familiarity. This aim is furthered by the fact that Migrate detects the presence of the program icon for a Windows application, and adds it to the program reference it creates in the OS/2 folder. This means that Windows applications appear in OS/2 with their normal icon. DOS applications are given the standard DOS icon for full screen or windowed sessions as appropriate. The settings for each object can be modified to add a user-defined icon as necessary. Many tools, such as CVTICO, exist on bulletin board systems, to convert icons from Windows format to OS/2 format, so that any public-domain icons that exist in Windows format for common DOS applications, may be used in OS/2. Migrate can be run during the install process or at any time after (the Migrate object is found in the System Setup folder). +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 9. Migrate Applications object System Administrators can set up their own custom migration database, to set up applications unique to their environment, using the PARSEDB tool supplied with OS/2 2.0. Thus, an optimal collection of DOS Settings can be determined for a given program, and then supplied to other users. VIRTUAL MACHINE BOOT (VMB) Should neither the basic DOS emulation of OS/2 2.0 nor any DOS settings provide an answer to compatibility problems with a given DOS application, the ultimate recourse is to boot the real version of DOS on which it depends, in a VDM. This can be done either from the DOS boot diskette or from an image file created on the hard disk. This applies not only to PC-DOS and MS-DOS versions, but also non-IBM systems such as DR-DOS (and in theory any 8086 operating system kernel). A VMDISK utility is supplied with OS/2 to create disk images. Better DOS 51 Once booted, the VDM is running that real copy of DOS, and the boot image path or drive becomes the A: drive for that VDM. The VMB feature, by booting the "real" DOS, provides the maximum achievable compatibility in a multi-tasking environment. Even so, there will be some architectural compatibility issues that even VMB cannot address. Most of these are limitations that arise from application or device driver features that are fundamentally at odds with the principles of a multi-tasking system. These issues include VDM interrupt latency (which may prevent some DOS "real-time" applications from giving sufficient performance), support for VCPI DOS extender applications (see below), and I/O to system-managed DASD that bypasses the file system (the latter is prohibited for obvious reasons - this could pose a threat to the integrity of the whole file system and affect other applications.) But these are fairly minor restrictions in an immensely wide scope of compatibility. DOS EXTENDERS _____________ OS/2 2.0 can support DOS extender applications, those applications that have broken the 640KB limit by running in protected mode and including their own memory manager which "takes over" from DOS's. These include DOS multi-tasking environments such as DESQview or Windows 3.x, as well as applications that include DOS extender code, such as 1-2-3 3.1+. OS/2 2.0 supports the DPMI (DOS Protected Mode Interface) specification for extender applications, allowing applications written to this specification to run under OS/2 2.0 and access up to 512MB of extended memory (see the description of DPMI in "Definitions" on page 21). OS/2 2.0 is a DPMI HOST, ____ which provides DPMI services to DOS extender applications (DPMI CLIENTS). _______ VCPI applications will not run under OS/2 2.0 because they are architecturally incompatible with a multi-tasking operating system (see "Definitions" on page 21). VCPI applications do not run under Windows 3.0 or 3.1 either. However, many VCPI applications have been rewritten to support DPMI, in order to support Windows 3, and OS/2 2.0 can take advantage of all of these. Better DOS 52 BETTER WINDOWS ______________ One of the most popular DOS extenders is Microsoft Windows. Windows 3.0 shipped in May 1990, and gained a lot of media attention in the market. In April 1992, Microsoft shipped an updated version, Windows 3.1, which was originally described by Microsoft as a "maintenance" update, but has added a number of new features, to address some of Windows 3.0's limitations. In this chapter, most discussion will refer to both Windows 3.0 and 3.1 together as Windows 3.x, since, except for some details, they compare to OS/2 2.0 in roughly the same way. Though Windows has undoubtedly had a significant impact on the market, there has been considerable speculation in the press about how successful it has been. Microsoft claims that over ten million copies of Windows 3.0 were sold up to March 1992 (although IDC estimate that more than half of these may have been shipped with the purchase of a new machine, of which they and Creative Strategies estimate only 30 and 55% respectively, are in use). The company also said that it shipped 3 million copies of Windows 3.1 in the first three months after its shipment. However, in a report in the Wall Street Journal ___________________ in August, a spokesperson for the software retailer, Egghead, commented that the preloading of systems like Windows with hardware, had affected retail sales. She said that the company overstocked Windows 3.1 in anticipation of a heavy retail demand for the system that failed to materialize. "We bought strong quantities of Windows 3.1 and they've been selling at a slower rate than we anticipated," she said.(5) Windows Magazine, in its October 92 issue, estimated that the "real ________________ situation" with regards to the number of Windows users was around 4.5 million. A recent Dataquest study estimated that as of September 1992, 18% of the PCs in the US are running Windows, which equates to around 2.6 million users. This concurs with figures quoted in OS/2 Magazine from ADAPSO/ITAA, _____________ saying that Windows has penetrated only just over 10% of the total DOS market. Whatever figures are used, Windows Magazine says that "financial ________________ analysts and software companies...uniformly dismiss [Microsoft's figure of 13 million Windows users] as meaningless."(6) There have also been a number of ISVs developing applications for Windows. According to Microsoft, over 4,500 applications had been developed for the Windows environment by March 1992. Windows 3.x is, of course, in one sense an alternative or competitive solution, since it provides a GUI and a basic multi-tasking environment. On the other hand, some customers require IBM to support the Windows --------------- (5) Quoted in Wall Street Journal, 6th August, 1992 ___________________ (6) Windows Magazine, October 1992, p16 ________________ Better Windows 53 applications that they have purchased, under OS/2 2.0. This section examines OS/2's relationship to Windows 3.x, and how OS/2 can be a "better Windows." WHAT IS MS-WINDOWS? ___________________ First of all, it is important to understand what Windows is. When it was first released in 1985, it provided a GUI environment running under DOS, for which applications had to be specially written to take full advantage. Although versions before version 3.0 had gained some developer support, market success was comparatively limited, and many of the major ISVs (eg Lotus, WordPerfect, Borland) had not developed Windows-specific applications. Some of the reasons for this were perhaps the lack of Windows-capable machines, the limited multi-tasking, and the fact that it provided only limited relief for the two main perceived limitations of DOS: the 640KB memory barrier, and multi-tasking the DOS applications that people already had. Windows 3.0 overcame many of these problems, especially in being able to multi-task DOS applications and allowing Windows itself to take advantage of extended memory. WINDOWS 3.X MODES The Windows environment itself has three modes, though the options available to any user depend upon machine processor and installed memory. These modes are important to mention here as they are relevant to the discussion later of how OS/2 runs Windows applications. The italicised description of the three modes comes from the MS-Windows User's Guide: Real mode (NOT AVAILABLE IN WINDOWS 3.1) An operating mode that Windows runs in to provide maximum compatibility with ____________________________________________________________________________ versions of Windows applications prior to 3.0. Real mode is the only mode __________________________________________________________________________ available for computers with less than 1MB of extended memory. ______________________________________________________________ Real Mode is equivalent to previous versions of Windows (2.x), and can address 640KB conventional memory, plus LIM 4.0 expanded memory (extended memory can be used for a virtual disk or disk-caching only). Real Mode requires an 8088 processor or above, and 640KB memory (384KB free conventional memory after DOS and other memory resident software including network drivers). Microsoft withdrew support for real mode in Windows 3.1, so that only standard mode and 386 enhanced mode are now available. This means that programs requiring Windows real mode (eg programs written for Windows 2.x) will not run in Windows 3.1. However, Windows real mode programs (including Windows 2.x applications) WILL run under OS/2 2.0. In this respect, OS/2 ____ 2.0 is providing better support for Windows programs than Windows 3.1 itself. Note that although Windows real mode runs in the real mode of the processor (see "Protected mode operation" on page 15), the two are not identical terms; even though Windows 3.1 has eliminated WINDOWS real mode, it cannot by its _______ very design prevent the system moving out of protected mode into the real Better Windows 54 mode of the PROCESSOR, and this represents a potential hole in system _________ integrity (see "Reliability and protection" on page 44 and "Reliability" on page 61 for more on this subject). Standard mode The normal operating mode for running Windows. This mode provides access to ____________________________________________________________________________ extended memory and also lets you switch among non-Windows applications. ________________________________________________________________________ Standard Mode uses 286 protect-mode to give Windows and Windows applications direct access to up to 16MB extended memory. Expanded memory for DOS applications is only supported with physical expanded memory cards (not emulation of expanded memory using extended memory). Standard Mode requires a 286 processor or above, 1MB memory (minimum 256KB of free extended memory), and the XMS driver HIMEM.SYS loaded. Windows applications need to be written to comply with the memory management rules for Windows 3.x to run in Standard Mode. Standard mode is recommended by Microsoft when running only Windows applications (ie no DOS applications) in certain configurations, even on a 386. 386 Enhanced mode A mode that Windows runs in to access the virtual memory capabilities of the ____________________________________________________________________________ Intel 80386 processor. This mode allows Windows to use more memory than is __________________________________________________________________________ physically available and to provide multi-tasking for non-Windows _________________________________________________________________ applications. _____________ 386 Enhanced Mode uses protected mode to give Windows and Windows applications direct access to up to 16MB extended memory. The Virtual-8086 mode of the 386 is used to provide multiple DOS environments for non-Windows applications, and virtual memory support is provided (for Windows applications only) using the demand paging feature of the 386 processor. Most DOS applications can be run in a window. 386 Enhanced Mode requires a 386 processor or above, 2MB memory (minimum 1024KB of free extended memory), and the XMS driver HIMEM.SYS loaded. Windows applications need to be written to comply with the memory management rules for Windows 3.x to run in 386 Enhanced Mode. WINDOWS 3.X KEY ASPECTS Windows 3.0 added a number of extra features to previous Windows releases, but many people believe that its three main features are as follows: Better Windows 55 DOS extender (memory > 640KB) Windows 3.x is first and foremost a DOS extender. It is itself a DPMI host application running on top of DOS, which provides applications (in this case Windows applications written specially for that environment) with extended memory support to break the 640KB DOS limit. Windows can provide additional memory for applications that have been written to take advantage of this capability. But the vast majority of applications still are written for the DOS environment, and even under Windows can only address up to 640KB. In fact, as we saw in our discussion on memory available under OS/2 2.0 and Windows earlier, since Windows inherits the DOS environment for each DOS application it runs, it provides less memory in most scenarios than would be available under OS/2 2.0, for the same DOS application in the same configuration. Nevertheless, since Windows, in standard and enhanced modes, runs much of the time in protected mode (requiring a 286 or 386 processor for these modes), it can itself take advantage of extended memory to run, leaving conventional memory free for DOS applications (but at the cost of some overhead in conventional memory for Windows itself - see "Comparison with memory usage under DOS" on page 41). Multi-DOS environment Windows 3.x also offers, in its 386 enhanced mode, multi-tasking of DOS applications. Several DOS applications can be run at once, and most text-based applications can appear in a window alongside other DOS or Windows applications, in 386 enhanced mode. However, Windows 3.0 enhanced mode does not offer as flexible support as OS/2 2.0 does, for running graphics-based applications - like Microsoft Flight Simulator - in windows on the screen alongside text-based applications. DOS applications running in VGA mode can be displayed in a window on the Windows 3.1 desktop, but according to Microsoft, Windows/NT will not support windowed DOS VGA graphics at all.(7) In enhanced mode, Windows also provides a pre-emptive time-slicing mechanism to multi-task between these DOS applications, though, as we saw before ("Multi-tasking of DOS applications" on page 40), OS/2 2.0's mechanism is more sophisticated and will tend to provide a more balanced performance when multi-tasking DOS applications. For many users of 386 machines running on a DOS base, Windows enhanced mode provides welcome additional function, and the ability to swap between their DOS applications. Standard mode allows multiple DOS applications to be loaded, but they do not run in background nor can they be windowed. --------------- (7) See Microsoft's document entitled "Microsoft Windows NT Operating System" Better Windows 56 Windows applications Of course, there have also been a number of applications written specifically for Windows 3.x. These are graphical applications written to the Windows APIs, and can take advantage of extended memory (up to 16MB), the GUI environment, as well as Windows system-supported functions like DDE (Dynamic Data Exchange). Although the Windows environment was ignored by many of the major vendors at first, there are now many applications developed specifically for Windows 3.x. Applications developed for previous releases of Windows cannot run reliably under the two higher modes of Windows, but only under real mode. This means that if you are running Windows 3.0 in standard or enhanced mode, and wish to run, for example Excel 2.1, you must close all your Windows and DOS applications, exit Windows and restart in real mode. Windows 3.1, because it does not support real mode, will not run Windows 2.x applications at all. OS/2 2.0 can run real and standard mode Windows applications side by side on the Workplace Shell desktop. Although Microsoft claims that there are over 5,000 Windows applications in the market, the majority of applications sales are still in DOS applications (to say nothing of the installed base). There are many items of evidence to back up this statement: o Sales of DOS applications were still $112 million more than those of Windows applications in the second quarter of 1992 (Software Publishers' Association - SPA)(8) o In figures quoted in Windows Magazine, based on projections by Dataquest, ________________ Windows applications still represent less than 25% of the market in most application categories, and never as much as half in any (see the graph below which illustrates these figures in detail)(9) o Even in 1997, DOS applications will outsell Windows applications (Dataquest)(10) +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 10. Windows application sales as a proportion of total PC application sales o Many PC publications both in Europe and the US track sales of applications from a variety of channels, in order to determine a "Top 20" list of applications. The trend since May 1990 is clear: despite the apparent success of Windows in the market, few Windows applications make it into the Top 20, as the graph below shows. In fact, there are rarely --------------- (8) SPA figures quoted in Windows Magazine, November 1992 ________________ (9) Quoted in Windows Magazine, February 1992 ________________ (10) Quoted in Computing (UK), April 23, 1992 _________ Better Windows 57 more than 5 Windows applications in the top 20, and only two of them regularly appear - Excel for Windows and Word for Windows by Microsoft. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 11. Number of Windows applications in the top 20 selling applications o There have also been several news items showing how the Windows applications market may not be as large as some vendors may have suggested. Here are some references from recent reports: - "The smaller software companies are not making money out of Windows, and Windows 3.1 is not going to change that" (International Data Corp.)(11) - "The Windows market is really only the size of the Macintosh market" (Gordon Eubanks, CEO of Symantec, who produce Norton Desktop for Windows, one of the best selling Windows applications)(12) - Lotus warned analysts of lower than expected revenues in June 1992, blaming "weakness in the market for Windows spreadsheets rather than loss of [market] share."(13) "We're disappointed that the overall Windows apps market didn't explode like the channel thought it would" (Robert Weiler, Senior VP, Lotus)(14) - Lotus is not the only major Windows vendor to suffer falls in share prices owing to lower sales of Windows applications: Aldus reported lower earnings at the end of June 1992, owing to, among other reasons, "lower than expected sales of its Windows-based products."(15) - Ruthann Quindlen, a software industry analyst, was quoted in an interview with Infoworld's editor, that she "regret[ted] saying... _________ that Windows was going to create opportunities for small PC software companies." Listing many software companies suffering from slowing growth, earnings shortfalls, falling stock prices, she "had hoped that Windows would grow the market...But no." She concluded that "the only Windows apps doing well are Microsoft's"(16) --------------- (11) Quoted in PC Week, March 30, 1992 - p131 _______ (12) Quoted in PC Week, March 30, 1992 - p132 _______ (13) Reported in Computergram Online Issue #1952 - 29th June 1992 ___________________ (14) Quoted in PC Week, March 30, 1992 - p132 _______ (15) Reported in Computergram Online Issue #1949 - 24th June 1992 ___________________ (16) Article in Infoworld, September 14th, 1992 - p51 _________ Better Windows 58 - "Companies that have invested a lot of money in developing Windows applications are battling for a small share of what is a very small pie" (Personal Computer Magazine (UK), May 1992) __________________________ o Windows applications are still heavily outnumbered by the 20,000 or more DOS applications, which also tend to have been longer in the market and built up a substantial installed base. In fact, there is also much evidence to suggest that Windows itself is outselling Windows applications by a factor of three or four to one: o in the year to March 1992, when Microsoft claimed there were ten million copies of Windows shipped, IDC estimated 3.5 million Windows applications were sold. o In early 1992, Microsoft stated that there had been $1.6 billion of Windows applications sold. If we take an average price of $500, this would give just over three million copies of all Windows applications together. o In October 1991, Windows annual run rate, according to Microsoft, was 7.8 million. The SPA's estimate of the volume of Windows application sales for 1991 was $1000 million. This could mean that for every copy of Windows shipped, there was just over $120 spent on Windows applications, or about one quarter of a copy of Lotus 1-2-3 for Windows at its current recommended retail price! If Windows were being used primarily to run Windows applications, one might expect the user to have more than one Windows application. On this assumption, the number of Windows application users may be only 15% or less of the total of Windows users. Either many people have bought Windows and are not using it, or they are using it for something else. A study of PC Magazine subscribers indicates a possible answer. The study ___________ was conducted in the US by Ziff Davis Research Department and Alpert Research, Inc., of 1840 PC Magazine readers. The study has been reviewed by ___________ William Zachmann, a well known independent commentator on the industry, in the June 11, 1991 issue of PC Magazine (Volume 10, Number 11, Page 97). ___________ Zachmann reported that respondents who personally used or were familiar with Windows, confirmed that the most desirable features of Windows were its memory management, multi-tasking and extended memory capabilities. GUI capabilities, and the availability of Windows applications were of only secondary importance. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 12. Windows user survey quoted in PC Magazine June 11, 1991 issue Zachmann's conclusion was: "All of this strongly supports my contention that Windows 3.0's _______________________________________________________________ success is due more to its usefulness as a reasonably good DOS memory _____________________________________________________________________ Better Windows 59 manager and multi-tasker, than to any groundswell of support for GUIs _____________________________________________________________________ and Windows applications. The study results also corroborate my ________________________________________________________________ observation that sales of Windows applications lag far behind _____________________________________________________________ reported sales of Windows itself." __________________________________ Many observers agree with Zachmann, that it has been the combination of DOS extender and basic DOS multi-tasking, implemented on a DOS base, that has been the principal factor in Windows' success. This indicates that Windows is being used more as a DOS extender and multi-tasker than as an environment to run Windows applications. Even vendors such as Lotus, who are developing a suite of applications for Windows, have claimed that Windows is being used to run DOS applications more than it is used for Windows applications. This is an important consideration when we look at what it means to be a better Windows than Windows. It seems as if many users look to Windows as a DOS environment first, and that Windows applications are currently a secondary issue. Therefore, to be a better Windows than Windows, OS/2 2.0 needs to: o first, be a better DOS extender/multi-tasker o and run Windows applications, first ensuring compatibility and, if possible, some advantages over running it under Windows. As it happens, OS/2 2.0 is able to do both: create a better DOS environment for DOS applications, as well as provide full compatibility for Windows applications, and even some advantages in that respect. OS/2 VERSUS WINDOWS AS A MULTI-DOS ENVIRONMENT ______________________________________________ It is clear that any discussion of Windows cannot ignore its DOS heritage. In fact, this is both its great advantage, but also the source of most of its shortcomings. Windows runs under DOS, which is an advantage from the point of view of migration from DOS, but is also a disadvantage in the limitations that DOS imposes on it. MEMORY For example, we have already seen that since each DOS session created in Windows inherits the whole DOS environment in place before Windows loaded, DOS programs may have limited space in which to load. Although the combination of DOS 5.0 and Windows 3.x helps to relieve some of the pressure on conventional memory, most DOS applications have significantly less memory under Windows than they do under OS/2 2.0 (see "Comparison with memory usage under DOS" on page 41 for details.) Better Windows 60 RELIABILITY DOS was designed as a single-tasking environment. Although DOS extenders like Windows can provide multi-tasking under DOS, the base system was never designed for it, and many of the applications running under such an environment assume they are the only application in the system. DOS runs in real mode, and does not provide protection between processes. Windows provides this protection instead, allowing a measure of multi-tasking. However, Windows still needs to use DOS for certain system functions, and so do many of the DOS-based TSRs (eg Network and Communications drivers) that are needed to run alongside Windows, and hence real mode is difficult to avoid when running Windows 3.x. Any time that is spent in real mode is a potential "trap door" for application errors to violate the system's integrity. Even though DOS applications run in separate address spaces in enhanced mode, DOS and DOS TSRs still require access to real mode, and the potential remains for an application conflict or bad pointer to corrupt the DOS system area or Windows itself. Furthermore, Windows applications all run in the same address space under Windows 3.x, and therefore it is possible for an error in a Windows program, to take down all the Windows applications together, and sometimes the whole system, thereby affecting the DOS applications as well. These symptoms occur in a variety of ways, not always a "crash" or "hang" but sometimes messages like "This application has violated system integrity" or "Unrecoverable Application Error." Windows 3.1 is claimed by Microsoft to provide greater protection from these errors, by checking the parameters passed by applications, The users of Windows 3.1 will judge how effective this will prove, but it is a significant technical challenge to provide full protection under DOS, unless an attempt is made to eliminate real mode (of the processor, not Windows real mode) execution altogether. Indeed, although the message "Unrecoverable Application Error" no longer appears, it has been replaced in many scenarios by "Application Error" or "General Protection Fault." In some circumstances, Microsoft still advise that data in other sessions be saved, but then to exit and restart Windows, perhaps even reboot. In this case, the effects on a user would be little less drastic than before. In fact, though some have claimed that Windows 3.1 heralds "the demise of the UAE," the essential aspects of the Windows architecture remain unchanged. Windows applications still execute in the same address space, still sharing a common Local Descriptor Table, or LDT (this is why parameter checking is needed, but it only attempts to catch problems to which the basic architecture leaves the system prone). Parameter checking is much more important to Windows than it is for OS/2, which has other mechanisms (notably separate address spaces) to protect the system from wayward applications. Furthermore, although many I/O and other functions are taken over by Windows (leading Microsoft to call Windows 3.1 an "operating system"(17) ), DOS and DOS TSRs are still available (and indeed required if you want to run Windows --------------- (17) Though how this "operating system" is able to load without DOS, has not been made clear by Microsoft. Better Windows 61 on a network, or with host communications), so the system still does not close the real mode "trap door." Any access to real mode is a potential danger; this is true even in OS/2 1.3, where the DOS compatibility box ran in real mode and was therefore a potential danger to system integrity. The only certain way to high reliability is to run the operating system only in protected mode. No current version of DOS can do this, but OS/2 2.0 runs entirely in protected mode: even when running DOS applications, there is no real mode operation. OS/2 has been designed for high reliability from the start, and version 1.3 is already widely respected for its industrial strength design. In OS/2 2.0, all applications, both DOS and OS/2, and even Windows applications, run in separate process address spaces, protected from each other, and much care has been taken in the design to avoid giving wayward applications the potential to corrupt any other applications or the system. Usually in OS/2 2.0, the worst a "bad" application can do is to cause an error that will cause the kernel to have that process stopped and closed. In these circumstances, the other applications continue running unaffected. This is why OS/2 has already been chosen by many companies as the development environment for line of business, mission critical applications. If your business depends on your application, you do not want to see it brought down with a UAE. Some have tried to show that OS/2 can be "broken" by wayward applications, but no operating system is safe from code written with inside knowledge of the system internals, designed specifically to manipulate parts of the system in a destructive way that mainstream applications would never attempt. The added protection OS/2 offers compared to other DOS extender alternatives, is against the occasional bugs in applications that cause them to write to memory where they should not. The issue is not really whether either environment is totally "crash-proof" but the overall integrity of the operating system in day-to-day usage. In this case, we are not really comparing OS/2 to Windows, but OS/2 to DOS. PERFORMANCE OS/2's multi-tasking design is more sophisticated than Windows, allowing DOS applications to multi-task more smoothly. Windows has only a simple time-slicing algorithm, which can be adjusted by the user to give "bias" to certain applications. This means that priority levels are static, and do not take into account, for example, when applications are I/O bound. On the other hand, OS/2 can set priority levels dynamically, detecting when applications are "idle" through polling or waiting for I/O, and assigning CPU cycles to other applications. This advanced scheduler works in a similar way with OS/2 applications, pre-emptively multi-tasking them alongside the DOS applications. Even Windows applications running in VDMs take advantage of this superior scheduling mechanism for smoother multi-tasking. Windows 3.x offers only co-operative multi-tasking between Windows applications, but pre-emptive with respect to the rest of the system. This means that applications have to be specifically written to give the processor up, with yield() calls, to allow other Windows applications to have their fair share of the processor. (See "Multi-tasking of DOS applications" on page 40 and "Multi-tasking" on page 28 for a more complete discussion of this topic.) In Better Windows 62 OS/2 2.0, Windows applications can be pre-emptively multi-tasked by running them in separate VDMs. OS/2 offers a choice of two superior file systems, which DOS applications running under OS/2 use whenever they do file I/O. OS/2 2.0 has the High Performance File System (HPFS) and an enhanced FAT file system, both of which provide superior performance than under DOS in nearly all situations. This means that in file-based operations, OS/2 will nearly always be quicker than DOS or Windows running the same combination of applications under the normal DOS-based FAT system. Furthermore, OS/2 is able to overlap I/O requests to the system, taking advantage of its own multi-tasking design, allowing the system to be more responsive to I/O request and keep applications waiting less. The result of this is that the same combination of multiple DOS applications is likely to run faster under OS/2 than under either DOS or any DOS extender like Windows, if it does any significant disk-based I/O. Applications that are more compute-bound may show less difference (and in single tasking, DOS itself is obviously likely to be faster in all except file-intensive operations). And when more than one task is being done, OS/2's performance advantage becomes evident. Because of OS/2's superior multi-tasking, it can run background tasks, such as file copying, communications, or spreadsheet recalculation, with no visible impact on foreground work. With Windows, the cursor movement can lag behind the mouse movement, and displaying of characters can lag behind keyboarding to the point where system becomes almost unusable until the background job is done. Here is an illustrative scenario from the testing of National Software Testing Laboratories (NSTL), and independent testing and evaluation organisation: to load MS Word for Windows on a PS/2 Model 57 with 8MB, with nothing else running takes 7.2 seconds with Windows 3.1 and 9.3 seconds with OS/2 2.0. If you do the same load with an XCOPY in the background, Windows load time jumps to 41.1 seconds, compared with 15.3 seconds for OS/2. Again, the comparison is really between OS/2 and DOS - Windows simply runs on DOS and inherits its limitations. INTEGRATION One of the other big differences between the DOS compatibility provided by OS/2 compared to that of Windows is in the area of how easy it is to set up DOS applications to work. There are many ways in which DOS applications integrate much more easily into the OS/2 environment than they do under Windows: o DOS SETTINGS VS PIF FILES: Many have commented that Windows's method of __________________________ assigning special settings to a DOS program via a Program Information File (PIF) is cumbersome. This is even more so compared to the consistency of the way the DOS Settings option is implemented in OS/2 2.0. Compare, for example, WordPerfect 5.1 for DOS. Both Windows 3.1 and OS/2 2.0 detect the program's presence on the disk, and create a unique Better Windows 63 set of program settings. But with OS/2 2.0, all of these settings are easily found together by clicking on the settings of the program object's icon. In Windows, clicking on the icon in Program Manager allows you to select its basic properties from the File Properties menu in Program Manager. But the dialog allows you only to change the command invoked, the working directory and icon. To change other options, you need to find the PIF file referenced in File Properties and edit the PIF file with the PIF editor (which by default is also in another program group). The PIF file contains all the other settings such as video mode, EMS/XMS settings, priority and idle detection, but also confusingly has options for startup directory and shortcut key, which are equivalent to (but overridden by) the settings in File Properties in Program Manager. So there are two places to look for settings, and sometimes two places to set the same setting. Furthermore, some important options are missing altogether from the PIF or Program Manager; mouse access in a windowed DOS application, for example, can only be achieved by first loading the DOS mouse driver (which is distinct from the Windows mouse driver - you need two mouse drivers if you want to use the mouse for both Windows and DOS applications) before starting the application. Searching on "mouse" in the Windows help system does not yield this information. OS/2 allows the user to find all customisation for a given program in one settings notebook: command, working directory, icon, EMS, mouse access and so on. o MULTIPLE WORKING COMBINATIONS: The amount of memory available when ______________________________ running a DOS program in Windows 3.1 enhanced mode is at most about 580K, and can be considerably less than 500K in a LAN-connected environment. And the more features that are required (eg 3270 access, country settings) means less memory for DOS sessions. This can mean that larger DOS programs, including many newer DOS programs or latest versions, do not have enough memory to run. Thus, users are faced with having to run different combinations of applications: DOS program plus network but not with Windows; a Windows program with the network, but not the DOS application, and so on. Some users even have to maintain different CONFIG.SYS and AUTOEXEC.BAT combinations, rebooting between them according to the combination of applications they are running. Many users also have to buy third party utilities such as QEMM, and experiment with various settings, to get the amount of memory they need. Use of such utilities sometimes creates new integration issues, such as getting memory managers, disk cache programs and network drivers to co-exist. In OS/2 2.0, not only can different applications be run at the same time as well as the network, but also any different combinations of settings can be easily maintained in DOS settings, and different configurations run at the same time. o SWAP FILE: To allow for better performance in swapping to and from disk __________ in a memory-constrained environment, Windows 3.x offers a permanent swap file. This is a contiguous area of disk, usually not accessible via DOS commands, and therefore preventing other files making any use of that space. Indeed, even if Windows does not need the full amount of space, it cannot be regained for application use until the feature is disabled. The OS/2 SWAPPER.DAT file is designed to shrink as well as grow, so it is more flexible in allowing other files to be created alongside it. Better Windows 64 These are a just a few examples of the way in which OS/2's integration of DOS applications is superior to that of Windows 3.1, and such integration translates into lower running and support costs. In conclusion, we can certainly say that as a DOS environment, which appears to be the most important consideration even to many Windows users, OS/2 is a better Windows than Windows. Now let's take a look at the other consideration, compatibility with Windows applications. RUNNING WINDOWS APPLICATIONS UNDER OS/2 _______________________________________ STANDARD MODE SUPPORT As far as OS/2 2.0 is concerned, Windows applications are just a special case of DOS applications, which need a special environment (Windows 3.x) to run. The key, therefore, to Windows applications compatibility, is to provide those applications with as similar an environment as possible to what they have under DOS, while taking advantage of the inherent design superiority of OS/2. First of all, it should be understood that the Windows 3.0 shrinkwrapped, retail package, can be run in a VDM in Windows real mode, (though Windows 3.1 cannot be run in this way because it does not support real mode) and Windows applications started from within this VDM by the Windows Program Manager. It cannot be run in standard or enhanced mode because of the way Windows has implemented the DPMI memory management scheme (it assumes it is a DPMI host and cannot act as a DPMI client - see "DOS extenders" on page 52). Many Windows applications run in real mode quite adequately. In fact, applications written for Windows 2 cannot run in any other mode, and therefore will not run in Windows 3.1. It may be true that many Windows applications have been upgraded for Windows 3, but this forces an upgrade on users who may be quite happy with the function in their current package. It means that the Windows upgrade path is now closed to users of Windows 2 based applications. OS/2 2.0 does not force such a choice, and will run Windows 2 and Windows 3 applications side by side, without having to exit and run in another mode. In fact, some have commented that it is ironic that OS/2 2.0 runs a wider range of Windows applications than Windows 3.1 itself. Standard mode is needed for many Windows applications (eg Excel 3.0 and 4.0). To accommodate these applications, OS/2 needs to provide additional support. Basically, these applications need to access DPMI services for extended memory support, which is usually supplied by Windows 3.x running in standard mode or above. As we have seen already, OS/2 2.0 offers DPMI services and the ability to access extended memory. The other requirement is to supply Windows services to Windows applications. This is done in OS/2 2.0 by modifying the Windows kernel and running it in standard mode in a VDM. As part of the joint development and cross-licensing agreement between IBM and Microsoft, IBM has access to both the Windows 3.0 and 3.1 source code. IBM has modified the source to provide a Windows kernel capable of running as a well-behaved DPMI client within an OS/2 VDM (the retail version of Windows 3.0 can only be a DPMI host). This means that OS/2 Better Windows 65 2.0 includes all the necessary Windows code to run Windows applications. A separate copy of Windows 3.x is not required. The Windows environment in OS/2 is called WIN-OS/2. Since Windows 3.1 shipped after OS/2 2.0, OS/2 provides a modified Windows 3.0 kernel in the release made generally available in March 1992. IBM has the ability to, and intends to, include Windows 3.1 support in a future update, even though there are very few applications that require this support (see "Windows 3.1" on page 74). OS/2 therefore supports Windows applications running in standard mode in a VDM. This means that the Windows kernel that runs under OS/2 runs in standard mode, and Windows applications run just as they would under DOS Windows 3.x in standard mode. The use of the VDM design, which provides a self-contained DOS environment, means that the environment is identical, from the application's point of view, to running under Windows loaded in standard mode, on DOS. This design therefore provides the maximum compatibility with the DOS/Windows environment. In fact, it offers a wider range of compatibility, since Windows 2 applications, which require real mode operation under Windows 3.0 in DOS, can be run alongside Windows 3.0 applications running in standard mode. This combination is not possible at the same time in Windows 3.0, and is not possible at all in Windows 3.1, since Windows real mode has been discontinued in Windows 3.1. 386 ENHANCED MODE Windows has another mode - 386 enhanced mode, which requires the 386 processor. OS/2 2.0 does not need to support enhanced mode for Windows applications, since for most Windows applications, there is no difference between standard and enhanced as far as the application itself is concerned. Standard mode provides Windows applications with all the memory management and other functions they need. Enhanced mode adds to standard mode the capability for multi-tasking DOS sessions and demand paging for efficient virtual memory, both of which are provided (in a superior fashion) by OS/2 2.0 itself. Indeed, Microsoft recommends in the Windows 3.0 manual on page 429, that users running only Windows 3.0 applications should run in standard mode, even on 386 systems with 2-3MB of memory, as there is a performance improvement in doing so. Therefore, OS/2 2.0 provides equivalent function to enhanced mode for most users. There are, however, a small number of Windows applications which require enhanced mode to run. These are not supported in the first release of OS/2 2.0. It is believed that there are only at maximum three or four of these in the market, which represents less than 0.1% of Windows 3.x applications, if we take Microsoft's figure of 5,000 Windows applications. Such applications require enhanced mode either because they rely on features only available in enhanced mode, or have been coded using the WINMEM32.DLL, a set of routines that provide some 32-bit functions for Windows applications, such as Wolfram Research's Mathematica and Caere Omnipage Professional. It is unlikely there will ever be many in the latter category of applications, since the WINMEM32.DLL is very difficult to use, and Microsoft themselves warn in Appendix E of the Windows Programmers Reference: "only experienced Windows application programmers with extensive experience writing assembly-level code Better Windows 66 should attempt to use these functions in an application." That is because even something as basic as memory management using these routines can be very complex, requiring the programmer to create his own assembly language interfaces between the 16 and 32-bit parts of his program (note that such "thunks" are provided by OS/2 2.0 between 16 and 32-bit modules - see "Mixed 16-/32-bit environment" on page 12). Charles Petzold, possibly the most widely respected authority on Windows programming, whose book on the subject is a standard reference work, concluded on this subject that "something is seriously wrong when memory access becomes difficult," and contrasted the current Windows approach with the ease of 32-bit memory management under OS/2 2.0. At the time of writing, Microsoft had not stated whether WINMEM32.DLL applications would be able to run under a 32-bit Windows environment and have said that it is unlikely that such Intel-specific applications would run unchanged in a future version of Windows/NT running on a RISC processor. So, although there are a very small minority of Windows applications that will not run under OS/2 2.0, the vast majority will run, and in a mode which allows access to their full function. Indeed, to the Windows application, the environment will appear exactly the same as under DOS/Windows standard mode, but there will be greater overall protection, and the ability to pre-emptively multitask such applications along with DOS, OS/2 and other Windows applications. CONTRAST WITH PREVIOUS APPROACHES (BCL) It should be emphasised that IBM's approach of building Windows code into OS/2 is quite different from previous approaches by Microsoft, which have included a Binary Compatibility Layer (BCL) which attempted to translate Windows calls to PM calls in real time. By providing the "real" Windows code, modified mostly for memory management purposes, the potential for performance degradation is greatly minimised. Those who previously suggested that IBM's approach is "impossible" may have been thinking of a BCL-type approach, rather than the method actually used in OS/2 2.0. HOW THEY RUN Single session or separate session Windows applications can be started from an icon in the Workplace Shell, just like other applications: OS/2 16 and 32-bit, DOS etc. They are launched into a VDM which is, like other VDMs, protected from the rest of the system. Users have a choice of loading the Windows application into its own VDM (even if other Windows applications are already running in separate VDMs) or being loaded into a VDM which contains other Windows applications. These are termed Single application and Multiple application VDMs (SAVDM/MAVDM) respectively. This is controlled in the settings for the program object: when choosing "WIN-OS/2 window," you can check (SAVDM) or leave empty (MAVDM) the check box entitled "Separate Session"; or if running in a WIN-OS/2 Full Screen session, simply load the program from the Program Manager in the Full Screen session in the normal way. Better Windows 67 +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 13. Single and Multiple application Windows groups Single application Windows sessions load the application executable (eg EXCEL.EXE for Excel 3.0) along with a modified WIN.COM file (WINOS2.COM). This is exactly the same effect as typing "WIN EXCEL" when running DOS/Windows 3.x. The Windows application then runs under the WIN-OS/2 environment, in its own VDM. As far as the application is concerned, this is exactly the same as running under DOS/Windows; the modified Windows kernel provides the same services in a compatible way. Additional Windows applications can be loaded into separate VDMs in the same way. Multiple application Windows sessions allow the user to run several Windows applications within the same VDM. This is the closest possible fit to the DOS/Windows usage, especially when run in a separate WIN-OS/2 Full Screen session, when it is difficult to tell you are not running under DOS. In this way, users migrating to OS/2 from Windows are able to run under OS/2 but have the general "look and feel" of their DOS-based Windows environment. Single application VDMs provide the best protected way to run Windows applications under OS/2. Since the application runs in a self-contained Windows environment in its own VDM, it is fully protected from other applications, and the system is protected from it. This means that if the application crashes for any reason, it only affects that VDM, and in fact only that one application. Even other Windows applications running in other VDMs are not affected. This is a significant improvement in reliability over Windows under DOS (both 3.0 and 3.1), in which, since all Windows applications and Windows itself share the same Local Descriptor Table (LDT), a failure in one Windows application may bring down the entire Windows system or corrupt the data areas of other Windows programs. But even though the SAVDM is fully protected, it can still share data via clipboard or DDE with other Windows applications or PM applications (see "Clipboard/DDE" on page 72). However, each SAVDM must load its own copy of WIN-OS/2, and will therefore increase the overall working set of OS/2, affecting memory requirements and performance. If memory is limited, MAVDMs provide the ability to run several Windows applications with less resources required. But this is at the cost of losing the additional protection of the separate VDM. If one Windows application crashes within a Multiple application Windows session, it may cause all the applications within that VDM to fail; but the effect is only within that VDM - the other VDMs running DOS or Windows applications within other VDMs are not affected and continue executing. So even here there are benefits running Windows applications under OS/2, for greater reliability from system crashes. MAVDM will also lose the additional WIN-OS/2 benefit of pre-emptive multi-tasking for the Windows applications within that VDM (but not any other WIN-OS/2 sessions). MAVDM is also a requirement where Windows applications need to communicate with each other via shared memory, and where applications want to use OLE between each other (see "OLE" on page 73). Better Windows 68 FULL SCREEN OR SEAMLESS In the Limited Availability version of OS/2 2.0 which shipped in December 1991, a WIN-OS/2 VDM ran only in a separate Full Screen session. The user clicked on an icon (eg WordPerfect for Windows) in the Workplace Shell, and a separate Full Screen WIN-OS/2 VDM was launched along with the Windows application. The user could toggle back and forth using Alt-Esc, Ctrl-Esc, or a little OS/2 icon that appeared in the corner of the Windows screen. But this was the only visual clue that you were in OS/2 at all: the screen looked exactly like DOS/Windows 3.0. This Full Screen function is still provided in the product shipped in March 1992 (there is an icon marked "WIN-OS/2 Full Screen" in the Command Prompts Folder). There are some minor differences between the icons that appear in the WIN-OS/2 Full Screen environment versus DOS/Windows: many of the Windows mini-applications and utilities (eg Notepad, games, PIF editor) have OS/2 equivalents or are no longer relevant; others, such as the clock, are retained for compatibility. OS/2 adds icons for returning to PM from a WIN-OS/2 Full Screen session (since the Windows user wants to have access to either Ctrl-Esc or Alt-Esc key combinations for compatibility with his Windows environment) and for DDE management (see later). The Windows print manager is retained, and Windows printer device drivers supported. The Windows Control Panel can be used to install Windows printer drivers not supported by OS/2, and to configure other Windows printer drivers, just as in DOS/Windows. This full screen Windows function fulfilled the commitment made in April to provide Windows compatibility in 1991 (completed in the Limited Availability (LA) product shipped in December 1991). But during the early autumn of 1991, IBM received feedback from many of its beta testers to bring forward the functions it had been discussing for a future version to run Windows applications on the same screen as other DOS and OS/2 applications. The decision was taken to move the GA (General Availability) date to March 1992 to allow this function (and others) to be added. It was first shown in Lee Reiswig's "OS/2 live" show at Fall Comdex in October 1991. This latter function has since been called "Seamless Windows." But the term is not very accurate; it was chosen by the marketplace, not by IBM. It is important, in fact, to note that most of what makes OS/2 2.0 "a better Windows" was already delivered with the LA product in December: protection between applications, pre-emptive rather than co-operative multi-tasking for better and more consistent multi-tasking performance, integration with other DOS and OS/2 PM applications via clipboard and DDE, with no loss of compatibility. Many people still run their Windows applications full screen, even with the GA version, as it does what they need. In fact, full screen has some benefits over Seamless operation (better performance, especially for clipboard and DDE, and more visually compatible with DOS/Windows). In any case, much of the WIN-OS/2 environment represents a "seamless" migration from the DOS/Windows environment anyway: automatic installation of Windows printer drivers, re-creation of existing Windows program groups and WIN.INI settings. Better Windows 69 Also, for most users, the most important aspects of integration are to be able to run all applications from the same user interface, and to allow all applications to share data. These benefits apply to Full Screen and Seamless operation alike. Windows applications can be loaded from the same folders as DOS and OS/2 applications, from the new Workplace Shell, and data can be shared via clipboard and DDE. But in the context in which it refers to the opposite of "Full Screen," "Seamless" operation merely refers to the way the WIN-OS/2 application is displayed on the screen, in its own window on the Workplace Shell desktop as opposed to in a separate Full Screen session (see the diagram below, using Excel 3.0 for Windows): +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 14. Windows Full Screen and Seamless Sessions Note that the fundamental way the WIN-OS/2 application works is the same whether it runs Full Screen or Seamless: it runs in its own protected VDM; it runs with the modified Windows code, it runs in standard mode. But the additional element is the way the screen output is mapped on to the Workplace Shell screen. Also, you can have any combination of SAVDM/MAVDM, or Full screen/Seamless: o SAVDM Full Screen (WIN-OS/2 Full Screen in DOS Settings) o SAVDM Seamless (WIN-OS/2 window in DOS Settings - "Separate Session" checked) o MAVDM Full Screen (WIN-OS/2 Full Screen object in "Command Prompts") o MAVDM Seamless (WIN-OS/2 Window - "Separate Session" unchecked; the default for most applications) How does it work? Please note that what follows is a simplified explanation. There are no specific considerations for users or programmers in the way the Seamless WIN-OS/2 operation works. The two key considerations in the design of the "Seamless" function were: 1. Maintain compatibility 2. Retain high performance This resulted in a more "low level" implementation to avoid the limitations inherent in attempting to map Windows calls to PM. Instead, both the PM and Windows screen device communicate with each other via a Virtual Device Driver (VDD), VWIN, providing synchronisation of access to the video display hardware. Each device driver "owns" its section of the screen. (This was a significant task in the time available, even for VGA; it can easily be understood why Seamless function is only available for VGA in the GA March 92 release, but drivers for above VGA are in development and will be delivered later in 1992). A new entry in WIN.INI, SDISPLAY.DRV= , denotes the change. ______________ Better Windows 70 The best way to understand the way it all works is to consider an example. Refer to the numbered diagram below while reading the following explanation: +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 15. How Seamless Windows works When a WIN-OS/2 application creates a window, the Windows screen device driver requests the PM screen device driver to open up a "black hole" of the same dimensions (see step 1 in the diagram). The Windows device driver then has control of the video hardware and paints into this space (step 2).The result is that the WIN-OS/2 application (which is completely unaware of this process) creates its main and secondary windows on the Workplace Shell screen alongside (and sometimes overlapping) other OS/2 application windows. Notice this means that the WIN-OS/2 application paints its own frame controls and mouse pointer (eg title bar, minimise/maximise buttons) and even the infamous Windows hourglass!), and these controls will therefore look like Windows controls, not PM ones. If you put Excel for Windows and Excel for OS/2 side by side, you'll see the difference. Although this creates some minor visual inconsistencies (most users don't even notice!), it preserves compatibility and performance. The WIN-OS/2 application window can be sized and moved as normal merely changing the co-ordinates of the "black hole" into which it paints (see steps 3A and 3B). The PM screen device driver repaints any part of the PM screen space previously governed by the WIN-OS/2 window. Other WIN-OS/2 applications (whether launched from the same WIN-OS/2 VDM or not) can create their own main windows (see step 4), or the existing applications can create secondary windows which can extend beyond the original window's co-ordinates. Corel DRAW! for Windows creates a main window with a tool bar which hangs below the bottom of the window if resized, resulting in a non-rectangular window. OS/2 2.0 handles such exceptions without a problem. If an OS/2 application window is created, moved or resized to overlap a WIN-OS/2 application's window (see step 5A) the PM screen device driver will cause a "white hole" to be created in the "virtual" screen space of the WIN-OS/2 session (step 5B). This causes the WIN-OS/2 application to avoid painting the part of the window that has been "covered" by the OS/2 application, and restrict repainting to the portion which is still "visible" under or around the "white hole" (see step 5C). If the OS/2 application window is subsequently closed, moved or resized, the screen drivers communicate again to change the size of the "white hole" (in a similar way that the co-ordinates of the "black hole" are changed in step 3B). The use of "black" and "white" holes means that WIN-OS/2 and OS/2 (including DOS) application windows can overlap each other normally, without one incorrectly painting over the other. The two screen drivers keep a record of each other's state without affecting any of the OS/2 or WIN-OS/2 applications. This means there are no significant compatibility or programming considerations. Since the PM screen device driver is always aware of the changes made by WIN-OS/2 applications' windows, there is no impact to OS/2 applications, and likewise for WIN-OS/2 applications which Better Windows 71 create, move, resize and destroy windows in the normal way. Performance is good, because communication is at a low level between screen drivers, not an API mapping layer, and compatibility is excellent because no fundamental changes occur to either the Windows GDI or PMWIN (the main window-creating components of WIN-OS/2 and PM respectively). And as far as the user is concerned - it just works, minimising the difference between DOS, Windows and OS/2 applications. In fact, it achieves the aim of "seamlessness" by making applications behave in similar ways, whether DOS, Windows or OS/2 applications. To the user, it appears easy, but the technical accomplishment behind it is considerable. High resolution support At General Availability time in March 1992, Seamless drivers were only available in VGA. This means that the whole system (including PM) must run in VGA if Seamless operation is required. The installation program gives users with 8514/A or XGA adapters the choice between high resolution WIN-OS/2 in full screen, or Seamless in VGA. Remember that the choice also affects the resolution PM appears in. This choice will become redundant once Seamless drivers for resolutions higher than VGA appear. Drivers for XGA and SVGA will become available by the end of 1992 (see "OS/2 1992 developments" on page 123). Since OS/2 2.0 shipped in March, IBM and other vendors have continued work on drivers at resolutions higher than VGA. Drivers for XGA and some SVGA chip sets will be made available in a service pack by the end of 1992, rather than than waiting for a new version of OS/2. It is to be remembered that to enable Seamless operation, both Windows and PM screen drivers need to be modified, for each resolution. CLIPBOARD/DDE An important benefit of the Windows environment is the inter-application communications it offers to Windows applications, allowing them to share data. The two most common methods for achieving this are via the clipboard, and Dynamic Data Exchange (DDE). The Windows clipboard, like PM's clipboard, usually allows applications to share data on a "once only" basis. Data is "cut" from one application to the clipboard, and "pasted" from the clipboard into another application. Applications that support the clipboard sometimes allow a link to be set up between applications, using the same or similar commands, and that link is usually handled via DDE. DDE is a message-based protocol allowing applications to pass information back and forth, updating items as they choose. For example, an information feed like a stock market ticker, can be linked via DDE to a spreadsheet, and update it with the latest information as the data changes. Both clipboard and DDE are supported for Windows applications in OS/2 2.0. Since OS/2 already supports both of these functions (OS/2 1.3 provided similar functions for OS/2 16-bit applications), it is mainly a matter of Better Windows 72 integrating the Windows support within OS/2 so that Windows and OS/2 applications can access the same function. The way in which this is done in OS/2 2.0 is quite similar for clipboard and DDE. Each requires one protected mode (OS/2) program acting as a "server" for messages between applications. Also, in each VDM running a Windows application, a pair of applications needs to be running: a modified version of the Windows clipboard viewer program for clipboard, and a "ServerAgent" program for DDE. The ServerAgent, which is started when the VDM is started, takes DDE messages from the Windows application and routes them to the DDEServer and receives messages from the DDEServer and passes them to the application running in the VDM. Clipboard and DDE are also available between applications running in the same VDM. This works in exactly the same way as today under DOS/Windows; the local VDM-based clipboard or ServerAgent programs are not needed unless clipboard and DDE are required outside the VDM. Users can also specify that their clipboard and DDE is local to that VDM only, or "public" to the whole system. If sharing between Windows and OS/2 applications is not required, the clipboard should be kept "private," to improve overall performance. The result of this is that clipboard and DDE are supported in OS/2 2.0 between Windows applications, and between Windows and OS/2 applications. DOS applications can also participate in clipboard sharing. Thus, there is a consistent way of sharing text and graphical data between DOS, Windows and OS/2 applications. OLE Object Linking and Embedding (OLE) is a mechanism created by Microsoft and endorsed by other vendors, to extend the data sharing currently possible in Windows. It is intended to support the creation and editing of "compound documents," where elements may come from a number of different applications, and still be editable by the source application, even when linked in another document or application. Several ISVs are intending to support OLE, but today only a minority of applications actually support it. Examples include Microsoft Excel version 3.0, and Lotus Notes version 2.0. Windows 3.1 is expected to simplify the enabling of this function, because it includes the necessary support in the product, but applications still need to be rewritten to take advantage of it. Therefore, OLE is more of a potential standard in the Windows world, than a current, widely-used one. In addition, it has some technical limitations which preclude its widespread use in a networked environment in its current form. Microsoft had previously announced their intention to provide OLE libraries for OS/2 in mid-1991, but no toolkit has yet been shipped. OS/2 2.0 supports OLE between Windows applications in the same Multiple application Windows session, as long as the applications include their own OLE DLLs. An example of such an application is Microsoft Word for Windows version 2.0, which includes its own "mini-applications" for functions like charting and drawing, and links to the main word processing module using OLE. Since there is not Better Windows 73 yet any equivalent function in OS/2, OLE will currently work between Windows applications only. IBM is currently investigating a superset of current Windows OLE function for a future release of OS/2. WINDOWS 3.1 In April 1992, Microsoft shipped an updated version of Windows, Windows 3.1. It offers a number of new functions, and a substantially expanded API set, including Multimedia and Pen extensions (although the latter functions require separate add on products). Since OS/2 2.0 had already shipped by the time Windows 3.1 shipped, IBM has no specific support for Windows 3.1 APIs in the first release of OS/2 2.0, nor is it certain how important such support is. IBM's aim is to run Windows applications, not Windows. Windows 3.1 support is only an issue if it enables new windows applications to be developed which may not run under the current level of WIN-OS/2. Whether developers will build in functions requiring Windows 3.1, will depend on how they view the risk of only targeting part of the Windows installed base (those who have moved up to 3.1). Microsoft promised compatibility between Windows 3.0 and 3.1, and are offering developers the opportunity to ship the extra 3.1 function in DLLs along with the application. If this enables the application to run under Windows 3.0, it should do for WIN-OS/2, by the same logic. If developers follow this path, the need for Windows 3.1 support in OS/2 2.0 may not be as urgent as some suggest. Indeed, there have been very few Windows 3.1-specific applications appearing in the first few months after the shipment of DOS/Windows 3.1. At one time, Microsoft had announced that they would make Windows 3.1 capable of being a DPMI client, and thus run under OS/2 2.0. However, Windows 3.1 does not possess this capability. Nevertheless, IBM has the Windows 3.1 source code through the joint licensing agreement and will continue to monitor the need for additional levels of Windows support. IBM is fully able to provide such support without help from anyone else, as it has done so far with the development of OS/2 2.0. On April 6th 1992 Microsoft shipped Windows 3.1. On April 7th, IBM showed the Windows 3.1 Program Manager running in a Seamless window under OS/2 2.0 (not the GA version). This was not an announcement of Windows 3.1 support, merely an indication that it could be done. Work is now taking place on updating WIN-OS/2 support (see "OS/2 1992 developments" on page 123) and is in beta test at the time of writing. The main part of the work is extensive compatibility testing with Windows 3.0 applications. The aim is to ensure that the change to Windows 3.1 level of support, does not lead to the kind of compatibility problems that were reported in PC Week soon after the release _______ of DOS/Windows 3.1, and referenced in the Windows 3.1 APPS.HLP file. Because of these compatibility problems, and the withdrawal of support for Windows real mode by Microsoft, it is true to say, at the time of writing, that OS/2 2.0 runs a wider range of Windows applications than DOS/Windows 3.1. Better Windows 74 A BETTER WINDOWS? _________________ So, in conclusion, the approach taken to running Windows applications under OS/2 2.0 has a number of benefits: o COMPATIBILITY: gives high compatibility with the widest range of Windows _____________ applications, since the applications are running under the real Windows code, modified only for compatibility with OS/2. o PERFORMANCE: since the applications run under a modified version of ___________ Windows itself, it does not suffer from the performance limitations of a Binary Compatibility Layer (BCL) approach, such as was previously attempted (and subsequently abandoned) by Microsoft. Although single tasking scenarios may be up to 20% slower, multi-tasking performance is comparable to that under Windows and in many scenarios better, because of the superior multi-tasking design of OS/2. Indeed, the more the system is loaded, the faster Windows performance will tend to deteriorate in comparison with the same configuration under WIN-OS/2. Even the example quoted earlier from NSTL's independent benchmarking (see "Performance" on page 62) shows Windows performance less than WIN-OS/2 even with only one background process. o PROTECTION: since Windows applications can run in separate VDMs, they are __________ better protected from each other, so that errant applications cannot bring down the system. Windows applications themselves are protected from DOS applications more than is possible under DOS/Windows. And, as we have already seen, OS/2 2.0 represents a superior environment for multiple DOS applications (see "OS/2 versus Windows as a multi-DOS environment" on page 60), since there is more memory, better multi-tasking, and more protection than under any DOS or DOS extender. Therefore, in being a better multi-DOS environment, and running Windows applications with full compatibility and extra protection, OS/2 2.0 is a better Windows environment overall. PORTING WINDOWS APPLICATIONS TO OS/2 ____________________________________ Of course, although OS/2 can offer excellent compatibility with Windows applications, those applications still remain Windows applications, and they are therefore limited in the extent to which they can integrate with OS/2. For example, full drag and drop functionality and other exploitation of the Workplace Shell, is only possible if you write for that environment, and that means OS/2. OS/2 applications have full access to a 32-bit API, 32-bit memory management, and multi-threading capability, allowing the same application to be much more responsive to the user (for example, retrieving a new file while saving the old one, rather than having to wait with the hourglass showing, as you might in a 16-bit, single-threaded environment like DOS/Windows.) Minor issues of look and feel are also different (as is apparent when the application is run in a window alongside OS/2 applications). Compatibility with existing Windows applications is important: but it does not mean that users should not be offered the chance of using better, more powerful and more responsive applications by using native OS/2 applications. Better Windows 75 Some have tried to suggest that having a Windows application is enough, since it will run under OS/2 anyway, and therefore one version will cover both markets. Developers who have followed this "lowest common denominator" approach, are now finding themselves unable to differentiate themselves from the competition, and indeed at a disadvantage in the OS/2 marketplace. Increasingly, users who migrate to OS/2 2.0, are demanding "native" OS/2 applications, and vendors who can only offer Windows applications running under WIN-OS/2 are finding themselves uncompetitive if they do not supply a real 32-bit OS/2 version. WIN-OS/2 may be a "better Windows," but it is not as good as real 32-bit OS/2 and the Workplace Shell. Therefore, vendors have considerable incentive to write for OS/2 and not keep only to Windows support. And over 1000 OS/2 32-bit applications are in development: more than 150 shipped within three months of the release of OS/2 version 2.0. Vendors who have committed to OS/2, or who already have products available, include Lotus, Borland, Software Publishing Corp., Novell, Corel Systems, Micrografx, WordPerfect, DeScribe, ZSoft, Oracle, Gupta and Computer Associates. And IBM is also delivering a number of applications (in addition to the systems extensions described in "OS/2 in a connected environment" on page 109) including Personal AS/2, and ImagePlus/2. Writing for OS/2, and in particular using the OS/2 32 bit API, positions the software developer to take advantage of the developments in the OS/2 environment, including multimedia, distributed computing and the increasing use of object technology (see "Futures" on page 123). However, possibly the most convincing argument for developers now, is the fact that over one million copies of OS/2 2.0 have been shipped within six months of its first availability, and OS/2 2.0 looks set to continue its success. The one million mark is for many commercial developers, a sign of viability for a platform. Ed Zander, president of SunSoft, Inc., the software subsidiary of Sun Microsystems, was quoted in PC Week about Microsoft's views _______ on porting its applications to SunOS: "Microsoft tells every company that walks in there that it won't do the ports until the architecture has an installed base of 1 million"(18) Microsoft's Bill Gates was quoted by PC __ Magazine as saying he would only consider developing for OS/2 when it shipped ________ more than 2 million units.(19) OS/2 has already passed the one million mark and is heading towards the second. Whether the report in PC Magazine has any ___________ relevance to any future plans Microsoft may have for OS/2 2.0 applications, is unknown. Although the Windows and PM APIs are in some respects different, porting tools like the Developers' Migration Kit (see below) are being developed which aid the migration of Windows applications to OS/2, to allow them to take advantage of OS/2 benefits. These are tools at the developer rather --------------- (18) Quoted in PC Week, July 29, 1991 - p111 _______ (19) The report in PC Magazine, May 12, 1992 - p32, said : "When CEO Bill ___________ Gates was asked what it would take for Microsoft to write for OS/2, he said 2 million copies in the first year - but they'll sell less than 10% of that" Better Windows 76 than user level: the Windows applications compatibility solution described above is a user-oriented solution, to gain maximum compatibility with existing shrink-wrap applications and derive some inherent OS/2 benefits like true multi-tasking and reliability; there are also developer tools, which allow applications to be ported from Windows to OS/2 and add OS/2 functionality in the process. Among such tools are those being produced by IBM and Micrografx. IBM/MICROGRAFX PORTING TOOLS In April 1991, IBM announced a joint development and licensing agreement with Micrografx, Inc., a leading vendor of Windows and OS/2 applications. Part of that agreement included IBM's and Micrografx's intention to produce a porting toolkit to help move Windows applications to OS/2. The Developers' Migration Kit/2, announced in July 1992, allows developers to port applications and drivers from Windows to OS/2 with little or no code changes. There are tools for applications and for device drivers. The applications porting kit, and the device driver kit are based on the Mirrors technology from Micrografx. Developers can maintain a common code base between Windows and OS/2, or OS/2 specific functionality as they port. The latter is recommended to enable better integration with the Workplace Shell (see "Workplace Shell exploitation" on page 82) Drivers ported with the driver tools, such as the HP Paintjet driver, are already part of the OS/2 2.0 base printer driver suite. This will increase the number of OS/2 applications by leveraging the Windows application base, and make it easier for developers to participate in both opportunities. This in turn will give the user another option to take advantage of his existing investment, but also have a wider choice of real OS/2 applications. The way in which the porting process takes place is similar to a product previously distributed by Microsoft, the Windows Libraries for OS/2 (WLO). WLO was derived from Micrografx Mirrors technology, but IBM and Micrografx are now using a more mature version of the technology in the Developers' Migration Kit/2. Furthermore, the philosophy of the Developers' Migration Kit is somewhat different to that of WLO: the latter retained something of the original BCL approach (see "Contrast with previous approaches (BCL)" on page 67), allowing a Windows application to run on OS/2 by emulating Windows on top of OS/2, providing OS/2 versions of the Windows libraries the application usually links to. Although the porting process is similar, the Developers' Migration Kit is designed specifically to produce applications for OS/2 2.0 (not both 16- and 32-bit as was WLO's aim), and has a number of additional tools to help optimise the port for the OS/2 environment. The result is likely to be better performing OS/2 2.0 applications than were possible using the WLO approach. Better Windows 77 BETTER OS/2 ___________ OS/2 1.3 has been widely respected and well received. Nevertheless, as well as being a better DOS than DOS, and a better Windows than Windows, OS/2 2.0 is even a better OS/2 than OS/2 1.3. This section will show why. COMPATIBILITY _____________ OS/2 allows applications written for previous releases of OS/2 to work without modification on version 2.0. The design of OS/2 always took this into account, and provides binary compatibility not only for the commercial applications written by ISVs, such as Lotus 1-2-3 for OS/2, but also the "line of business" applications written in-house by various companies to support their key business activities. It is estimated by one independent source that as much as $4 billion of investment has been made in such systems running on OS/2. Compatibility with these applications is a statement of IBM's intention to protect that investment while migrating forwards to new and better environments. The OS/2 design had to take account of 16-bit applications running in a 32-bit system, and the system itself provides many services to allow 32-bit modules to call existing 16-bit modules, thus allowing for mixed 16/32-bit applications. This means that the mixed model gives great flexibility, both in migrating applications from 16- to 32-bit, and also in allowing 32-bit applications to make the best possible use of existing service routines, window classes etc, developed for previous releases of OS/2. (See "Mixed 16-/32-bit environment" on page 12). Furthermore, the consistency of the API between 16- and 32-bit, allows relatively easy migration to 32-bit. The PM API in particular was designed with 32-bit in mind, and this makes the 16- to 32-bit conversion relatively straightforward. Conversion can be done in stages if preferred, the mixed 16:32 model allowing a variety of approaches from recompiling and relinking, to full rewrite for critical sections, optimising for 32-bit. GRAPHICAL INSTALLATION ______________________ The user's first view of the system, at installation time, is very different from 1.3. Instead of being entirely text-based, after the first disks, installation is done in a graphical mode. This is more consistent with the main user interface, and provides better feedback to the user: a progress indicator bar shows how far through the installation the user has got, and pictures of disks appear at the bottom to show how many disks have been used and how many remain. The Install program is more intelligent; it can figure out your mouse, display, keyboard and country setup, and offer defaults for you to choose. For those who need more detailed control over their system, the selective Better OS/2 78 install which first appeared in 1.3 is also in 2.0, but as a graphical dialog box with check boxes to select the options and buttons to indicate how much each item takes up on disk, as well as a cumulative indication of the total disk space required for the components chosen. Among the options that can be chosen or left are the on-line documentation, REXX, fonts, HPFS, and MVDM/DOS support. These options allow further selection at a more granular level. For example, many people install DOS support but not Windows support, since they have no Windows applications. Even individual utilities and applications can be selected or not; and the size of each component is listed to help you determine whether or not you want to spare the disk space. This can make a difference, as the Tools and Games "applets" (see "Applets" on page 96) take up to 5.7Mb of disk space. But a listing of the individual utilities and games allows you to see what each item takes (eg games: JIGSAW 68K, SOLITAIRE 375K; applets: TERMINAL 1501K, PM CHART 1159K). +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 16. Installation program - progress indicator The user is given an easier and less error-prone way to control some of the parameters in CONFIG.SYS, by cycling through valid options. Once the product is installed, further customisation is possible via the OS/2 system folder (which contains options similar to the OS/2 1.x Control Panel). Options can be added individually at a later point with the "Selective Install" object in the "System Setup" folder. For users wanting to install OS/2 over an existing DOS system, OS/2 install offers migration of existing DOS, Windows and OS/2 applications. If the install program detects applications it recognises on the disk, it will offer the user the option to put them in a folder. This way, the system can come up with the user's existing applications already available. These applications are also set up with an optimal collection of DOS and Windows settings. System Administrators can create their own custom database of applications to migrate in a similar way (see "Migrating applications" on page 51). When installing over a Windows 3.0 or OS/2 1.3 machine, the program groups are migrated into folders so that the groupings of programs are the same in the new environment. Device drivers from either DOS or OS/2 CONFIG.SYS files can be migrated too, as well as printer definitions from either Windows 3.0 or OS/2 1.3. For new users, the install can give a tutorial on use of the mouse in order to guide the user through installation. As well as being simpler and more appealing to look at, installation is faster, due to an enhanced compression/uncompression algorithm for unpacking files from the disks. Install can be done from any drive to any drive, allowing OS/2 2.0 to be installed, in future, from CD-ROM, or any other media that can be accessed as a normal drive letter, including across a LAN if required. In addition, tools and services are available from IBM to assist the automated installation of many machines. Remote installation and systems Better OS/2 79 management is a major area of development for OS/2, but many basic tools and facilities are here today (see "Configuration, Installation, Distribution (CID)" on page 118). Most important of all, is that OS/2 2.0 is already enabled for automated LAN-based installation. See the publication OS/2 2.0 ________ Technical Compendium, Volume 5: Remote Installation and Maintenance ____________________________________________________________________ (GG24-3780-00), for more details. Such automated installation tools can substantially reduce the amount of time taken to install OS/2 on a number of machines, since installation can take place simultaneously on several machines without operator intervention. The option for automated, LAN-based install, reduces objections to the amount of time taken to install the operating system. Even in a standalone environment, installation is straightforward, and though the number of disks required for an OS/2 installation does mean that a manual install will usually take at least 20 minutes, it is usually one single operation to install the system, with one reboot in the middle. Many people forget that although Windows comes on less diskettes, it does require DOS to be installed first, causing a two-stage installation process, and, for certain requirements, some co-ordination between the DOS and Windows installations is required (for example, if you want to use a mouse in a DOS window inside Windows 3.x - see "Integration" on page 63). BOOT MANAGER For users who wish to retain more than one operating system on their disk, OS/2 includes a multiple boot facility (Boot Manager). This allows different operating systems to be placed on separate partitions, in order to select which partition to boot at power-on or reset time. Since OS/2 can support the vast majority of DOS, Windows and OS/2 16-bit applications, it is not anticipated that this will be needed by many people for booting DOS or OS/2 1.3 instead of 2.0, but instead may be used with other systems such as AIX, or as a testing tool for developers or technical support staff. It works by allocating a 1MB primary disk partition to a Master Boot Block (MBB) which contains code that is always executed first at boot time and handles further access to the hard disk. It displays a menu allowing the user to select the logical drive from which to start the system. Once this logical drive is selected, the operating system loader for the appropriate system is loaded as normal. New versions of FDISK and FDISKPM allow the user to select the logical drive for use. DOS and OS/2 1.3 have to be installed on a primary partition on the first hard disk, but OS/2 2.0 can be booted from any partition on any drive. This gives greater flexibility in planning installation than is possible using DOS, or Windows, which is dependent on DOS for booting. OS/2.0 - THE 32-BIT SYSTEM __________________________ There are a number of obvious benefits to users in working with OS/2 2.0. There are also many benefits for developers. Developer benefits can also be relevant to users: anything that helps developers ultimately helps users, since it becomes easier to write better and more powerful applications, and provide the opportunity for applications that could not be produced before. Better OS/2 80 WHY 32-BIT OS/2? First, it is worth examining why it is significant that OS/2 is a 32-bit system, and what benefits this can provide. Better performance One of the most obvious benefits of a 32-bit OS/2 program is that it will almost certainly perform faster than a 16-bit equivalent. An OS/2 32-bit application can make use of the full 32-bit instruction set and extended registers of the Intel processor. Some 32-bit compiled programs will also be smaller in size because of the smaller number of CPU instructions needed to complete certain tasks. Low level functions such as string manipulation, data movement and pointer operations will often be twice as fast under 32-bit. Furthermore, if the application is coded to the flat memory model, there are none of the overheads of segmented programming, such as the need to reload segment registers every time a different 64KB of memory needs to be accessed. This is slow and also an inconvenience and wasted code for the developer. The system itself provides more efficient paging than both the swapping mechanism of OS/2 1.3, and the memory paging used in the 16-bit Windows system (even on a 386). Applications that take advantage of the smaller memory granularity (memory can be swapped out to disk in 4KB pages) by intelligent organisation of code and collaboration with the paging mechanism by allocating memory in page size units, can show a significant performance improvement. The performance improvements that are possible depend on the changes made: they range between 5% and up to around 40%. An example of the improvements possible is in the REXX interpreter, part of the OS/2 base system. Performance has been dramatically improved since it was changed to run in 32-bit mode, as the graph below shows: +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 17. Comparison of 32- and 16-bit performance - REXX Even more encouraging is how such benefits can be achieved with relatively little additional development time. since OS/2 was designed with 32-bit in mind, migration from 16-bit has been made as straightforward as possible (see "Migration 16- to 32-bit" on page 84). The difference between 16-bit and 32-bit can be significant, especially when it is comparing Windows and OS/2 capabilities at the same time. DeScribe is a graphical word processing application which exists for 16-bit OS/2 (OS/2 1.x) and for 16-bit Windows (Windows 3.x). The company has, in the past, demonstrated beta test versions of its 32-bit OS/2 release (which shipped soon after OS/2 2.0's March availability), comparing it with its own 16-bit Windows version. Comparisons made by Describe, Inc., show that the 32-bit OS/2 version can be anything between 30 and 300% faster than the 16-bit Better OS/2 81 Windows version, to complete the same operation. In addition, the OS/2 32-bit version implements features like multi-threading which cannot be offered in the Windows version (since Windows 3.x cannot provide multi-threading). This makes it possible, for example, to save one file and then start loading another while the previous file is being saved to disk, or looking at one document while another is repaginating. This results in even higher PERCEIVED performance to the user, because the application is more _________ responsive, and less time is spent looking at an hourglass icon. More sophisticated applications Applications that may need space and better ability to handle large data objects (eg DTP, CAD/CAM, financial modelling, multimedia, database) will be easier to develop in a 32-bit system. Indeed, some may not be possible or feasible in a 16-bit system. In a segmented environment, programmers have to develop their own algorithms to use multiple segments to implement a single logical structure, which is complex and may make it difficult to achieve performance objectives. This is another issue that may help some applications move from the Unix environment to OS/2, since they have not been feasible on an Intel platform till now. Also, OS/2's support for overlapped I/O enables support for more sophisticated applications, like multimedia, where it allows better synchronisation between audio and video. Workplace Shell exploitation Windows and DOS applications will load from the Workplace Shell, but not take full advantage of the drag and drop capabilities and other methods of participating in the shell. It is possible to provide compatibility, but not full integration, since Windows applications remain Windows applications (see "Porting Windows applications to OS/2" on page 75). Some of the examples of what can be achieved by integrating the application with the Workplace Shell include: o drag and drop printing, and file loading o drag and drop installation o consistency of user interface with the rest of shell - ease of learning applications o registration of application objects, so they can appear as templates and have their own file associations o interaction with other Workplace Shell objects o more powerful user navigation: context menus, settings controls, views etc o on line documentation, including integration with the Master Help Index if required Better OS/2 82 o shutdown notification (eg start up with same collection of views and objects next time - pick up from where you left off) Although the benefits of Workplace Shell integration do not specifically arise from the fact that the system is 32-bit, they can only be achieved today by coding to the OS/2 32-bit API. 16-bit Windows can provide very little of this function today. Portability Applications written for OS/2 2.0 will be much easier to port to other 32-bit systems like AIX than applications written for 16-bit systems, as dependencies on processor specifics (such as the Intel segmented model) are eliminated. Ports from other environments (Unix etc) will be easier for the same reason. This will give the user an even wider choice of applications. Applications written for OS/2 2.0 will also be better prepared for systems as yet unreleased such as a future portable version of OS/2. Simpler programming model In OS/2 2.0, there is no need to take into account the requirements of the Intel segmented model, calling for code to be broken down into 64KB segments, and also no need for segment manipulation when passing control between threads or calling DLLs, for example, as is currently the case in 16-bit systems like OS/2 1.3 and Windows. Instead, memory is allocated with a 32-bit pointer that maps into an address space of 512MB, with no 64KB limit on the size of individual segments. Memory can therefore be allocated in logical units dictated by the requirements of the application rather than the constraints of the segmented memory model. This leads not only to better performance (reduced segment reloading), but reduced application development time (less code needed to do the same job, since segment handling code is no longer necessary). 32-bit OS/2 coding is also simpler because there is only one memory model, instead of the many (small, medium, huge) under the segmented application model (represented by OS/2 1.3, DOS, Windows). The result for the user is that powerful and sophisticated applications will appear quicker, and some will be feasible for the first time, because they are easier to develop. Also more programming time can be spent on providing better function or usability rather than managing memory segments, which should also benefit the user. Better OS/2 83 Exploit hardware investment 32-bit programs allow companies to take advantage of the investment in 32-bit hardware systems that they have been purchasing for several years. Currently, 32-bit hardware is, in most cases, running 16-bit software. 16-bit software does not take advantage of the features of the hardware that have been optimised for 32-bit operation. 386 machines have simply been used as "go faster" 286 or 8086 machines, until a 32-bit system has become available to take advantage of it. As we have seen, the benefits of 32-bit are not just in performance, but in broadening the scope of what can be done. Waiting any longer for 32-bit alternative systems to become available, simply increases the length of time that the investment is left unexploited. All in all, 32-bit equals a richer set of applications, which are faster, and allow more choice and more function for users; in this way, developer benefits become user benefits. MIGRATION 16- TO 32-BIT Best of all, migration from 16- to 32-bit OS/2 applications can often be accomplished relatively easily. PM was designed with 32-bit use in mind, and the design of OS/2 2.0 has taken into account the need, not only to run OS/2 1.3 applications unmodified, but also to make it straightforward to change the 16-bit OS/2 application to exploit 32-bit. In some cases, little more than a few function call changes are required. In many cases, changes will be needed to change from a segmented 16-bit memory management to the flat memory model of 2.0. How much work is involved here depends on how many dependencies the existing 16-bit application has on segment manipulation. What certainly can be said is that movement from 16- to 32-bit OS/2 will be no more difficult than changes to other 32-bit APIs (such as a future 32-bit Windows API), when they appear. Windows 3.x is based on an inherently 16-bit segmented model; unlike OS/2, it did not have the benefit of being designed with 32-bit migration in mind. OS/2 - A 32-BIT API - TODAY Some arguments against OS/2 rest on claims that OS/2 is not a full 32-bit system, or that other DOS-based alternatives provide a 32-bit system today. Such claims are based on misconception. The essence of whether a system is 32-bit or not, does not lie in how its internals are coded, but in the benefits it offers to users and programmers. In fact, even to developers, the key issue is not what the system looks like internally, but what kind of programming interface is offered. And, in this respect, OS/2 already offers a full 32-bit API, which has been designed to offer the maximum ease of migration from 16-bit (see above). The OS/2 32-bit API enables developers to escape from the limitations of 16-bit segmented memory management to a flat memory model, but also offers multi-threading, advanced graphics support, and powerful interprocess communicatons. The OS/2 32-bit API is also enabled to accommodate extensions like multimedia and pen-based computing. It therefore opens up the future path not only for multimedia and pen, but also portability to RISC, and for increasing use of object-oriented technology, distributed networking and other developments. Better OS/2 84 In contrast, Microsoft offers today only a 16-bit API for Windows 3.x. The only 32-bit function currently available is the sparse set of functions in the WINMEM32.DLL, which even Microsoft itself warns, requires advanced Windows and assembly level programming skills. Applications coded in this way may not be easily portable to other processors, if extensive use is made of Intel assembly language. Since WINMEM32.DLL is a set of eight 32-bit function calls grafted on to a 16-bit DOS extender, the 32-bit code cannot make calls to 16-bit Windows or DOS functions, and therefore the WINMEM32 program has to create its own interfaces between the 16- and 32-bit code segments, with address and parameter translation, ie the application must implement its own thunks, and they must be implemented in assembler. This is in contrast with OS/2 2.0, which is designed to allow easy mixed model programming, and provides thunk controls to move between 16- and 32-bit modules. This makes developing 32-bit applications much easier, and much easier to migrate from 16-bit. Microsoft has announced that when Windows/NT ships, it will implement a 32 bit API, referred to as Win32. Publicly available specifications of the Win32 API show it to be very similar in principle to the OS/2 32-bit API, with few extra features. But since Windows/NT is not scheduled to ship before the first half of 1993 at the earliest, Microsoft has announced a subset of the Win32 API, Win32s, will be available for developers working on Windows 3.1. This is understood to offer flat memory model programming (although details of the thunking that will be required are as yet unavailable), but will not offer advanced features like multi-threading and advanced graphics, which Microsoft says will not be available until Windows/NT appears. Industry commentators have pointed out that the result of this is that developers will have to consider three different Windows APIs: o Win16 (Windows 3.x) o Win32s (Windows 3.1) o Win32 (Windows/NT) and have to consider how they can design programs across three APIs, which can meet the stated Microsoft goal of scalability across the various future Windows offerings. On the other hand, OS/2 is available TODAY, and the 32-bit API has been _____ available to developers for several years now, offering all the features promised across the three separate future Windows offerings, in one single API. And the target platform has sold over a million units, several months before any alternative is due to appear. Internally, OS/2 is a hybrid 16-/32-bit system. The majority of the system code (including most of the kernel, VDDs and the Workplace Shell) is 32-bit. Some other parts are obviously 16-bit as they aim to provide compatibility with older 16-bit software: for example, WIN-OS/2 is a modification of 16-bit Windows code, and is therefore as 16-bit under OS/2 as it is under DOS! Also, OS/2 maintains 16-bit code where it has been designed to accommodate 16-bit modules and DLLs, offering support for mixed 16- and 32-bit code that is not apparent in Microsoft's stated aims for Windows/NT. Device drivers and parts of the file system are also still 16-bit. Other 16-bit parts would gain little benefit from being adapted to 32-bit (such as Better OS/2 85 the command line utilities like TREE and SORT). In general, OS/2's mixture of 16-bit and 32-bit code is well suited to the range of today's applications where 16-bit calls predominate. It remains to be seen how well Windows/NT will be optimised for the 16-bit applications which will still be the majority (especially as it will not be able to run any of the OS/2 32-bit applications which will comprise the majority of 32-bit applications when NT finally ships). As 32-bit applications grow in popularity, OS/2's mixture will become more 32-bit. But it must be stressed that the internals of the system are irrelevant to both users and programmers. Programmers care about a 32-bit API: OS/2 offers a shipping product with a 32-bit API; Microsoft only currently supplies a beta version of Windows/NT. Users care about compatibility and performance, and OS/2 provides both of these within its design. Where 32-bit can offer potential benefits (eg performance or future portability), the system components either have been moved to 32-bit or will be over time (for example, the 32-bit PM graphics engine and screen device drivers, which will be delivered by the end of 1992 as an update pack). On the other hand, though Microsoft claims that Windows 3.1 has significant 32-bit code internally (though only when running in 386 enhanced mode), it does not offer any 32-bit API nor multi-threading, so the benefits of 32-bit are only partly realised. One of the key issues in the "32-bit" debate is portability to and from other processor families such as RISC. But such portability for OS/2 or Windows requires two things: the operating system kernel and subsystems, and the applications. If the API is not 32-bit, there is little point in having a portable kernel, since the applications cannot move without the API. OS/2 has a mature 32-bit API TODAY, and it has been available for over 4 years (since _____ the original Microsoft OS/2 2.0 SDK). This API was designed to accommodate the future directions of OS/2, including portability to RISC, a promise we made together with Microsoft in 1989. Although Windows 3.1 contains some 32-bit modules internally in some of its components (eg FastDisk) some of these are so Intel-specific that moving them to RISC will be difficult, if they are attempted at all. So once again, the issue of the internals of a system is an irrelevance, and moreover a distraction from the real issue: the key factor in a 32-bit design is balancing the aims of portability and performance, but most of all, ensuring that applications can be delivered to exploit the system via the 32-bit API. Today, OS/2 delivers such an API, with features that are only promised for the future by Microsoft. Better OS/2 86 WORKPLACE SHELL _______________ The new user interface for OS/2 2.0 is one of the more obvious ways in which the new OS/2 is better than before. But because it is a new interface, some aspects need some discussion as to why they are new and what benefits they bring. WHY ANOTHER USER INTERFACE? ___________________________ The new look of OS/2 2.0 sets it apart visually not only from previous versions of OS/2, but also from other GUI environments on Intel-based PCs, such as Windows. To some, a new look presents opportunity; for others, who do not like change, the difference can seem a problem. It is worth examining some of the reasons why OS/2 2.0 presents a new look and feel, rather than just continuing with the OS/2 1.x look. o MOVE TO THE FUTURE __________________ OS/2 is not only a system that protects past investments in DOS, Windows and OS/2 1.x, but is also a platform for the future. It aims to provide the kind of object-based interface that will be the norm in tomorrow's object-oriented systems, but can deliver this function today, since 386-based platforms have the power to support it. This is the new look defined in IBM's Common User Access (CUA) 1991 guidelines for the "workplace" model. But CUA is not just a set of rules - it is based on a VISION of how computers can really become more useful and useable. Ask ______ your IBM contact about the "CUA Vision" disk-based presentation and video (see "CUA Vision materials" on page 156), to see where the workplace model is heading in future, and what sort of applications can be developed. o NEED TO ATTRACT NEW USERS _________________________ The PC marketplace is beginning to slow in growth. Vendors end up selling more hardware and software to the same people, and IS departments find it difficult to broaden the base of computer usage. That is because apart from the pioneers and early adopters, PCs are still too difficult to use for too many people. Current users would like to do more with their existing systems, but are constrained by the difficulties of learning so many different applications, each with their own unique way of working. And the fact that we are finding neither new uses nor new users for PCs, means that the return on our investment is limited, and the benefits are not being fully realised. o FOCUS ON INFORMATION, NOT THE COMPUTER ______________________________________ Too much of today's use of PCs requires the user to know a lot about the way the computer handles the data. Even GUIs like Windows and OS/2 1.x are basically a graphical representation of the same old Workplace Shell 87 computer-oriented way of working. Instead of worrying about different and inconsistent "managers" (File Manager, Program Manager, Desktop Manager), with some handling files, others programs etc, the user can focus on the information he wants to work with, and let the system worry about file and programs. You can have icons representing a report, and have the system associate that with a given application (such as a word processor) so that clicking on the icon loads the application. In this way, programs become tools to achieve the real desired result - working with INFORMATION. o 2ND GENERATION GUI __________________ OS/2 2.0's user interface, and the design principles behind it, is the result of more than five years of analysis, prototyping and testing in IBM's usability laboratories. The results of the tests indicate that an information-oriented user interface like the Workplace Shell is more productive and easier to pick up for first time users. Once the basic principles are learned, even experienced users of old GUIs like Windows, find they prefer the Workplace Shell, since more complex tasks can be accomplished easier and it is more flexible. It is an interface that builds on the achievements of "first generation" GUIs like OS/2 1.x and Windows, and moves users on to the "second generation." +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 18. OS/2 Workplace Shell o HARMONISE DIFFERENT USER INTERFACES ___________________________________ People who have been using PCs for some time will have acquired knowledge of many different types of user interface: DOS applications have very few standards in user interface terms, and even Windows adds another dimension and another set of standards to learn. The Workplace Shell does not eliminate these differences (it must retain them for compatibility), but does offer a user interface layer above the individual differences, to provide a level of consistency and integration. For example, all applications, whether DOS, Windows or OS/2, can: - be launched from icons on a common desktop - appear in windows which can be sized, moved and hidden - share data via a consistent set of commands (Mark/Edit/Copy/Paste) - retrieved from the background, or closed via a common Window List The migration towards future object-based systems such as those based on the Taligent venture (see "Object-oriented environments" on page 128), provides the potential for convergence of ideas from the Workplace Shell, Motif, and the Apple Macintosh desktop. o NEW, BUT EVOLUTIONARY _____________________ This progress can be made now without compromising compatibility with the past. The old ways of working with the PC can be kept alongside new ways: Workplace Shell 88 - the C:\> command prompt can be retained as an icon or even a menu item from the desktop context menu. - you can use folders just like Windows 3.x or OS/2 1.x groups, and use the icons within them just like programs, thus treating the Workplace Shell like the graphical program loader that Windows is for many users. This allows the user to take what he knows and apply it immediately, while learning new skills that will make his work more productive. This mix and match of new and old knowledge makes evolution towards the 2nd generation GUI much easier. The key is to provide compatibility, but not to let the past bar your way to the future. AN INFORMATION-ORIENTED USER INTERFACE ______________________________________ The first generation GUIs like Windows and OS/2 1.x have been a good introduction to the benefits of GUI for many people, but they are also a constraining factor on the progress of the man-machine interface. This is because the user interface design relies heavily on computer-oriented concepts like files, programs and directories. The user interface (UI) model is built around various "managers": File, Print, Program and Desktop. To navigate through the system, the user must know about the difference between a file and a program, about the physical layout and organisation of data on the disk, and to understand some of the constraints this imposes (for example, you cannot put files in a program group, only programs, but programs can be loaded from the File Manager). There were other usability constraints which related more to the implementation of the user interface, rather than the design itself. In the Windows 3.0 and OS/2 1.3 File Managers, only one directory tree window could be opened, even on a system with multiple drives. The Print Manager only interacted directly with the File Manager via drag and drop, but other applications either could not, or implemented their own drag and drop protocol. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 19. Development of user interface Moreover, this style of user interface imposes an application-oriented way of working, or an "action-object" paradigm: a user wanting to create a report will load his word processor, then look for the file containing the report. The ideal for the user would be to encourage an INFORMATION-oriented way of ___________ working, or one that uses the "object-action" paradigm, as this is the way we work more naturally when away from the computer. Moreover, it is important not to forget the computer is an item of INFORMATION technology. It is the ___________ information that the user wants to work with, that is why he uses the computer in the first place. The Workplace Shell does not make the user look for the word processor to create a report, but rather allows him to click on an icon representing the Workplace Shell 89 report, and automatically load the application (the word processor) associated with it. This use of the object-action paradigm, and the focus on information, is why the Workplace Shell is sometimes called an OBJECT-ORIENTED USER INTERFACE (OOUI). It means that you create a letter by _____________________________________ dragging a new copy from a "template" (see "Templates" on page 93), and regard the application as a tool to work with the information, rather than a program which you must "feed" with data. The new shell is designed to provide a more task-oriented, not process-oriented way of working, allowing the user to focus on what they want, not how to do it. The new shell will also reduce the amount of system-specific knowledge needed, by being more analogous to the manual way of performing tasks (using the physical desktop analogy). Notice, however, that the new object-oriented way does not preclude the old ways of working. If you need the C:\> prompt, it is available; if you want folders full of program icons, which you click on to load, and then go through the "File Open" menu to find your data, that can be done too. You can mix and match the action-object and object-action techniques as you wish. But even with older DOS programs, some of the benefits of an OOUI (such as clicking on an icon representing a report, and having the system load the appropriate application), can be realised very easily without a radical change to working style. In fact, even if the Workplace Shell is used as a graphical program loader, there are features in it (such as workareas) which make it a better one than Windows (see "Multi-tasking and the user interface" on page 33). WORKPLACE SHELL COMPONENTS __________________________ Not only do the design principles of the Workplace Shell differ from the older GUI models, but it is also visually different, and it includes a number of new features that did not appear in previous versions of OS/2. USER INTERFACE ELEMENTS In this section we will look at some of the user interface elements that contribute to the new look and feel. Desktop If you are familiar with OS/2 1.x or Windows 3.x, the first thing you will notice about OS/2 2.0 is that there is no obvious Desktop Manager, Task List or Groups. Instead, the screen represents your desktop, and everything on the desktop is an object - files, devices, programs etc. This means the desktop is the background of activity, and items can be placed on the desktop or in folders - in fact, anywhere you want; there is no restriction on where icons are placed as there is in Windows or OS/2 1.x. This means you can have either a "tidy" or a "messy" desktop according to the way you work. Although the desktop is meant to give you a visual association with a familiar idea (your own desk), the Workplace Shell desktop is not meant to be exactly the same as your real desktop; it offers a bit more than your real desktop. After all, Workplace Shell 90 if the computer only did the same things as you could do manually, why use a computer at all? Objects and folders The items on the desktop are objects: files, programs, devices (such as disk drives, the shredder and printers). Objects reside in folders or on the desktop (which is actually just the highest level folder). Folders are used instead of group windows, and are more powerful and flexible. Folders can contain any object, including other folders (again, just like the physical desktop), and can group items according to a given project or activity (features like workareas take this even further - see "Multi-tasking and the user interface" on page 33) You can also have more than one view of a folder, allowing you to look at the same information from different perspectives ; a simple example is in the Drives object, which lists the files by drive and directory; this allows multiple simultaneous views - Tree, Details, Icon views - of the same directory. Each object is visually represented by an icon. You work with objects by DIRECT MANIPULATION - ie by pointing at it with the mouse (see below). ___________________ Notice that sometimes only the terminology is different: what OS/2 2.0 calls a "Program object," Windows and OS/2 1.x might have called a "Program reference" or "Program icon." Direct manipulation Direct Manipulation is the act of working with an object by pointing at it with the mouse, double clicking to load it or open it, or dragging it somewhere else. Since most older user interface models worked by an action-object paradigm, experienced computer users are used to a certain level of indirection in using a computer (ie you go through a menu to invoke a command to work on an object). But the Workplace Shell allows users to work with objects more naturally, as they would on a real desktop - directly. So, although experienced users may be tempted to think of direct manipulation as a gimmick, it is in fact a much more natural, consistent, and, in most cases, effective way of working with the system. A specific example of direct manipulation is drag and drop. This is where one icon is "picked up" with the mouse and moved somewhere else, often to another icon or folder. Note that this use implies that objects can be programmed to understand what it means to have something dropped on them, or for them to be dropped on something. In fact, there are APIs supplied for programmers to set the behaviour of their own icons (eg for selection, dragging and dropping). Use of these APIs allows greater consistency between the shell and applications, and also greater integration. Developers can now register their objects (ie applications) with the system and have them used as an integrated part of the system. This all results in a more powerful and consistent interface for the user. Workplace Shell 91 Although Windows 3.x offers some direct manipulation facilities and some APIs, its use in the system is currently limited mainly to the File Manager. Interaction between different parts of the system is therefore more limited than in OS/2 2.0, compromising the benefits of consistency. Descriptive names Objects and folders can be given any descriptive name. For example, the user may have a folder called "Annual Report to the Shareholders," which may contain an icon called "Shareholder Report Draft 14 dated 6th March." This may be a document created using a Word Processing program. Another icon may represent a spreadsheet containing the latest financial results. Notice that icons can represent data files, and to edit them, the user can simply click on the object to invoke the application that created that file, and edit it further. Even though files are physically stored by their old 8.3 file names (at least using the FAT file system), they can be represented on the desktop or in a folder by the more descriptive long name. It is easier to see that "Letter to Joe" would be more meaningful to any user (even the creator of the file!) than LJB0905.TXT. This feature is implemented at the file system level, so that even data files relating to old DOS applications can be given long names in this way - applications do not need to be rewritten. The use of descriptive names is in keeping with the principle of allowing the user to focus on the information, not the computer's way of working. In this way, OS/2 offers more fexibility than Windows, in which the computer-oriented way of working still shows through in the retention of 8.3 file names, despite the graphical veneer on the surface. Associations Associations can be created between files and programs, on a file-by-file or wild card basis. This means that simply by double clicking on a data file, it can be loaded into the associated application. OS/2 applications can also create their own file types and associations which are created automatically when the program is installed (DeScribe and Excel for OS/2 are just two of the applications that do this already). Associations can also allow a data object to be dropped on a program icon and have the program loaded with the data file. Multiple associations can be created per object. Shadows Since object icons can be placed anywhere on the desktop or in folders, this flexibility encourages different arrangements of programs, data and devices into "projects." This may mean that the user wishes to place a given object in more than one folder. Instead of physically copying an object from one folder to another, which can waste disk space and also cause maintenance problems if the object is subsequently changed, the Workplace Shell allows the user to set up a "shadow" of that object. (Apple Macintosh users will be familiar with the idea which they call an alias.) The shadow is linked to the original object such that changes in the original are rippled through to the shadows. Workplace Shell 92 Shadows allow different uses of the same object, and allows work to be organised without regard to the physical location of data (they are particularly useful for working with data or devices located on a server). In this respect the combination of folders and shadows is much more powerful than the use of group folders and specially created directories in Windows or OS/2 1.x. Templates Templates are a means of easily creating new objects. Most objects can be defined from an existing type, or template. The system provides templates for the common objects such as data files, program objects, folders, printers and so on. For example, program objects are created by dragging a program template from the Templates folder, and entering the information about the program executable and working directory. But users and programmers may define their own templates. Programmers can create new file types (eg a Customer Invoice) and define templates via their own applications. Users can create templates themselves. For example, a "memo pad" template can be created, to use to create new memos, each of which may be automatically associated with a chosen word processor, and would contain a department logo, and headings for the "To:," "From:" and "Subject" parts of the memo. Or a chart template could be created, so that each new chart created inherited the default characteristics: a logo and given fonts and colours. Since many business processes are repetitive, templates match many users' work very well. Any kind of information that has the same basic structure in each instance, and only the specifics beneath the "headings" change, is suitable for creating templates. Templates provide a consistent way of creating new objects, whether data, program, folder or device. Pop-Up menus Clicking with Mouse Button 2 on an object's icon, or on an open folder, displays a menu of options to work on the object. These pop-up menus display only the actions appropriate to the current state of that object. This reduces screen clutter and increases ease of use by eliminating redundant or inapplicable options. This menu can be customised by the user (for example, to change the application loaded from the "Open" menu, or to add user-defined commands). The use of Mouse Button 2 is one example of the UI innovations that has received some criticism in the computer press, though it is not clear why. Indeed, it is somewhat ironic that when Borland's Quattro Pro for Windows was reviewed in beta test, one reviewer praised its' use of Mouse Button 2 as a "Property Inspector." In fact, the Property Inspector provides very similar functions for a spreadsheet or graph element (otherwise known as an object!) as the Workplace Shell's pop-up menus do for object icons. While it is likely that Borland's UI designers came up with the idea independently, it is strange that what is a virtue from one vendor can be criticised in another. It is an illustration of how perception, rather than objective evaluation, is a danger when considering user interface design. (At least there is now the Workplace Shell 93 potential for some consistency in the use of Mouse Button 2 to work on an individual object - previously it was not used at all under Windows or OS/2.) Visual Clues It is important, for the user's comfort and satisfaction, that clues are supplied to aid learning and provide a context for what the user is doing. A major principle in the Workplace Shell is to provide visual feedback where possible, to keep the user informed about what is happening. These are often ignored by the casual reviewer, but they contribute to the usability of the system. Among the examples of such visual clues are: o change of mouse pointer between clock icon, normal pointer, I-beam for editing, according to the context o half-toned icon during copy of object (as opposed to normal tone for a move operation) o a line drawn between a shadow and its original during the shadow operation o a box drawn round an object which would be the target of a drag-drop operation o shading behind the icon of an object that is in use o "no-entry" sign on an icon when it cannot be dropped on a given object o highlight of the object or objects (by darker shading) which are currently selected (and for which the current pop-up menu is valid) These visual clues are more widespread and more subtle than in less sophisticated GUIs such as Windows, where it is sometimes difficult to determine the context of an operation or an object, because of the lack of visual clues. (Consider, for example, how the new user reacts to an icon in the Program Manager and another, for the minimised application, at the bottom of the screen, with no apparent difference between them, yet they behave differently.) Consistency One of the most important aspects of the Workplace Shell is its consistency. Not only does it provide a consistent means of loading programs from different origins (DOS, Windows, OS/2) and make them work together, but it also provides a standardised interface to different tasks, through the use of drag and drop. For example, OS/2 allows drag and drop to be used for copying, deleting and printing a file, where DOS uses three different commands (COPY, ERASE, PRINT), each with their own set of parameters. As stated before, it also provides a consistent interface (Mark/Edit/Copy/Paste) to sharing data between applications, whether DOS, Windows or OS/2 applications. And drag and drop is applied to many other actions throughout the shell, such as setting colours and fonts. This consistency is reinforced Workplace Shell 94 when using programs that integrate with the Workplace Shell and use the same manipulation techniques (see "Workplace Shell exploitation" on page 82). The consistency of the Workplace Shell (where drag and drop are pervasive) can be contrasted with the rather superficial use of such techniques in Windows 3.1. Consistency is not achieved where drag and drop can only be done from the File Manager, and not throughout the shell. Consistency means that not only is the environment easier to use, but new actions are learned quicker, often by experimentation. In fact, the key to judging a user interface is not how easy it is to do something in an hour or a day (after all, no user interface is completely intuitive), but what extra can be achieved after the basics have been learned, and how easy it is to do more. Flexibility The user has complete freedom to set the look and behaviour of the shell. Colours, fonts and even background images can be set for the desktop, and for each folder individually. Icons and descriptive text can be set for each object, and even the behaviour of objects and their windows (such as whether a window is hidden or minimised to the desktop) and the use of mouse buttons can be customised, where appropriate on an object-by-object basis. This flexibility is important, because users rarely agree on what is preferable. The Workplace Shell reinforces the truth that the PC is a PERSONAL computer. ________ CONTROLS As well as providing a different way of working, the new look and feel of the Workplace Shell is established by a number of new user interface controls, including the following: CONTAINER described above as folders, used to logically group objects on the desktop. It can provide multiple views of the objects (icon, text, tree, details). NOTEBOOK an easy way to navigate through a complex dialog. It looks like the paper notebook you may use at your desk. It supersedes separate dialog boxes by providing multiple pages, selectable by tabs. The notebook control is used to allow the user to tailor the settings of each object. SLIDER allows the user to select a quantity from a range of possible values, by using a control very similar in appearance to that found on many electronic devices - a "sliding" button. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 20. Container Workplace Shell 95 +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 21. Slider +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 22. Notebook There are also standard dialogs for open and save file, and font selection. All of these controls have programming interfaces, so that developers can use them in their own applications, to allow a common look and feel between applications and the shell. APPLETS OS/2 2.0 also ships with a number of mini-applications and utilities, ("Applets") which give some basic functionality to get started immediately, as well as acting as a learning aid, particularly for manipulating objects with the mouse. (They also provide a bit of fun!). These range from productivity applications like an editor, simple spreadsheet, calendar and card file, to a charting program and terminal emulator. There is also a utility that allows the user to search through the disks for files matching a file specification or even a given item of text. Of course, there are also a number of games including an OS/2 version of Solitaire that allows you to cheat if the game is not going in your favour! Applets are not intended as full function applications, but as a means of getting productive use of the system even without installing extra software. However, many of them are powerful enough in their own right to serve the occasional user of, for example with PM Chart, a charting package, without needing to invest in more software. They help to make the system appealing to both the first time and the less experienced user. EXTRA FACILITIES There are a number of extra features contained in the shell to help overall productivity, or improve ease of use: SYSTEM SETUP This object allows the system to be easily configured and changed to suit the individual. Not only does it contain options for installing new features or adding drivers, and for setting colours and fonts, but also for modifying some of the default behaviour of the system (eg whether windows are hidden or minimised to the desktop; whether clicking on an icon creates a new instance or Workplace Shell 96 retrieves a running instance of a program; whether to prompt when deleting an object, and so on). DRIVES This object replaces the File Manager from previous releases. It provides similar function to the OS/2 1.3 File Manager. It has a multi-threaded design to give good performance even in large directories. It is no longer restricted by the Multiple Document Interface (MDI)(20) design of the OS/2 1.3 File Manager (which is still evident in the Windows 3.1 File Manager), but instead creates a series of modeless(21) windows, which can be moved wherever the user wishes. Drives offers all of the function commonly used by the File Manager in either Windows 3.x or OS/2 1.3, with the addition of greater flexibility in certain operations. For example, in keeping with the rest of the shell, it offers different simultaneous views of any drive or directory, either icon view, tree view, or details view (the latter lists file size, creation date, and other details). Since the windows created by the Drives object are just like any others in the shell, files can be dragged between the desktop and different directories, and to the printer or any folder. PRINTERS The ease with which OS/2 handles printing (with drag and drop) is one of its strongest features, but equally impressive is the flexibility of printer setup and customisation of settings. Different print objects may be set up, not only to represent each physical printer, but also to represent a particular combination of settings: for example, you can set up the same printer to print portrait Times Roman (represented by one icon, which you can give a descriptive name such as "Portrait - for letters") and create another icon to represent the same printer running in Landscape mode with a small font --------------- (20) MDI means that multiple child windows are contained within the bounds of the parent window, and no child window can be sized beyond the bounds of the parent. The Windows 3.1 File Manager and the behaviour of the directory windows within it, provide an example of MDI. (21) Modeless (as opposed to modal) refers to the behaviour of child windows in a GUI. Modal windows have to be closed or the dialog within them completed before the parent window can be accessed. They tend to enforce a particular pattern of progressing through several windows (an example is in the use of error dialogs, which tend to be modal.) Modeless means that the user may move from the child window back to the parent without closing intermediate windows or dialogs. An example is the "Find" dialog in the OS/2 System Editor. Workplace Shell 97 for those wide spreadsheet reports (to which you give another name). Both these printer objects can be kept on the desktop or in a given folder, and print output can be directed to either according to the results required. CONVENIENCE FEATURES The shell also includes several features for greater user convenience. The user can set his own background ("Wallpaper") for the desktop, or any folder, as well as a keylock security feature (blanks the screen and locks up the keyboard and mouse after a user-specified period). The desktop layout (positions of folders, applications loaded etc), can be autosaved at shutdown and restored when next starting the system. The workarea feature (see "Multi-tasking and the user interface" on page 33) makes it possible to do this on a folder by folder basis. This means that different projects (or even different users sharing the same PC) can be kept logically separate. All of these features help make the system easier and more enjoyable to use. TUTORIAL The default action after installation is to start the tutorial, so that the first time user is taken through the key elements of using the Workplace Shell. The tutorial is highly recommended, even for an experienced user of DOS Windows, or OS/2 1.x, to familiarise oneself with the differences from the previous environment. The tutorial can be revisited at any time; it usually resides in the Information folder. ONLINE HELP The tutorial is just one of the items of information that the OS/2 user has available. As well as context-sensitive help being always available through the F1 key, there is also a Master Help Index, which gives a "how to" reference guide to using the system. The Command Reference from version 1.3 is also retained, and there is in addition, a glossary of terms. The ability of the shell to keep multiple modeless windows open, allows the help text to remain on screen while an operation is performed, to guide the user through the process. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 23. Master Help Index The Master Help Index and Glossary use a variety of techniques to present information to the user: text in different colours and fonts, hyperlinks and even pictures. The Help facility also includes an Workplace Shell 98 indexing and searching system, to help users find the help they need. All of these facilities are open to the OS/2 developer as well, using the Information Presentation Facility (IPF). This allows online help to be created very simply from text files containing a tag language. New functions in OS/2 2.0 include the ability to predefine the help window size and its position relative to the parent window; multiple help pages (windows), called viewports; support for multiple fonts, and easy setup of tables of information; "tear off" help pages, allowing a user to retain the help on screen as he follows an example; and hypergraphics - the ability to click on a graphic and be linked to text or more graphics. All of these facilities are available to application programmers, so that on-line help for applications can be created to have a consistent look and feel with the rest of the shell. Some developers are creating on-line guides for their applications, and by placing them in the Information folder on the OS/2 desktop, creating an "on-line bookcase." In fact, the IPF facility can be used even more widely than just online help for a program; in IBM it is used as a general information delivery tool, for online documents and reference guides - sometimes it can be easier to use the computer to search for information and then browse or print it, especially if (as with most reference information) there are a lot of cross-references. One of the help items added after feedback from the OS/2 beta test program was the "Start Here" object. This was in response to customers who asked that the shell provide the user with a visual focal point, in case, looking at a desktop with no open windows and no menus, he became confused and did not know what to do next. The Start Here object allows a first time user (or an occasional user) to find a focal point to go and retrieve information about common operations. It is not a replacement for the help system, but an easy starting point to find out more. ADOBE TYPE MANAGER (ATM) One of the most important aspects of a graphical environment is, of course, that it continue to handle text well, and provide the benefits of different fonts and typefaces. OS/2 2.0 continues the innovation of OS/2 1.3, in including the Adobe Type Manager (ATM) as an integrated part of PM. ATM provides scalable font technology, to display and print high quality type on a variety of screens and printers (not just PostScript printers, but laser Workplace Shell 99 printers, inkjets and even dot matrix printers). ATM is closely related to Adobe's PostScript printer language, and both use the same Type 1 font format. This means that companies with an investment in PostScript on printers or on other platforms (such as Macintosh, AIX, VAX/VMS and IBM System/370) can be assured of a compatible use of fonts in OS/2. ATM is a widely used font standard, with over 12,000 fonts available and over $4 billion invested. It is under consideration as an ISO standard. Indeed, for SAA systems, Type 1 is the standard font format, and included in OS/2 2.0 are 13 Type 1 fonts from 4 families (Times Roman, Helvetica, Courier and Symbol) that will be implemented as "core fonts" across all SAA platforms. Any of the 12,000 fonts available in Type 1 format can be installed and used with OS/2 applications, via the Font Palette. ATM allows OS/2 applications to render fonts in any size on the screen and printer, retaining the high quality of the typeface. It allows WYSIWYG (What You See Is What You Get) between screen and printer, which is important not only for Desktop Publishing, but even for word processing and spreadsheets. ATM is also available for DOS/Windows 3.x as a separate product, ATM for Windows, but OS/2 includes this utility at no extra charge in OS/2 2.0, so that users running Windows applications may take advantage of Type 1 fonts in their OS/2 and in their WIN-OS/2 sessions. However, in OS/2 it is not a separate utility, but an integral part of the PM system. OS/2 applications can use Type 1 fonts without any changes to the applications. Windows 3.0 had no in-built scalable font technology, and ATM for Windows was a popular product in that environment. However, in Windows 3.1, Microsoft introduced their own proprietary font technology, TrueType. This is not available on other platforms, except for Apple System 7, and according to Microsoft has 600 fonts available (compared to Type 1's 12,000 or more). OS/2 has the ability to include support for other font formats such as TrueType, through an open font interface which is available to font providers; such support would usually be provided by the owner of the technology (in this case Microsoft). This would allow TrueType support to be provided in OS/2 in an integrated way, like ATM, if Microsoft wishes to expand the platforms on which TrueType is available. OS/2's aim is to provide open font support, not be tied to a proprietary font technology. In summary, the benefits of using ATM and Type 1 in OS/2 include: o better quality screens and printouts o WYSIWYG between screen and printer o improved output even on less expensive printers o wide choice of fonts o investment protection in Type 1 fonts and PostScript o a compatible font technology between OS/2 and WIN-OS/2 o integrated font technology available to OS/2 applications without change o font portability to other platforms (Macintosh, VAX/VMS, AIX, S/370) Workplace Shell 100 LAN-INDEPENDENT SHELL As well as being a powerful and easy interface for working with data held locally, the Workplace Shell has a degree of "LAN-awareness" built in. Although it does not include requester code in the base system, the Workplace Shell is able to recognise the presence of network requester software such as the OS/2 LAN Requester for OS/2 LAN Server, or the NetWare requester for OS/2. It provides an API which other network providers can write to, to integrate more fully with the Workplace Shell. In this respect, it is not tied to any single LAN system, but can provide a graphical view of data held on different networks - it is "LAN-independent." OS/2 has provided access to multiple LAN systems at the same time (eg NetWare and OS/2 LAN Server) since OS/2 1.3: not only does it handle the concurrent protocols required (eg NETBIOS, IPX etc) but now, in OS/2 2.0, can offer a graphical view of network resources (files, printers etc) consistent with the rest of the shell. By providing the same constructs for remote as for local data (folders, icons, printer and file objects), data can be moved between one folder and another, without the need to know the precise location of the data or which server software is running. This makes access in multi-vendor networks much easier. Among the features it provides are: o ability to login/logout to network servers through a graphical dialog - this includes presenting an appropriate login dialog (if necessary) before a network object can be accessed; this means that, for objects that have specific login requirements, prompts for login are displayed, even if the main login is completed. - an extra item on context menus for network objects is Login or Logout - provides consistent login (though NOT a single login) between NetWare and OS/2 LAN Server - the difference between LOGIN (NetWare) and _____ LOGON (OS/2 LAN Server) are minimised _____ o browse available servers and resources (subject to logon viewing permission) - A "Network" folder contains an icon for each requester installed (for example, one for NetWare and one for OS/2 LAN Server); clicking on the icon provides a view of the servers available +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 24. LAN Server Tree view - shared directories and printers are given similar icons to standalone objects, but have a mini-network icon to distinguish if necessary, as shown in the folder below. This folder is from a NetWare server, but Workplace Shell 101 it is impossible to distinguish between NetWare and LAN Server - that's what is meant by LAN-independent: +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 25. Folder with network resources o resources can be moved onto the desktop, or any folder, for easy and convenient access - servers, shared disks, files or printers can be shadowed into any folder including the desktop (see "Shadows" on page 92) - this is not just for the current session, but the icons representing the remote objects will be retained on the desktop at next boot, and the appropriate login dialog presented when the icon is next used o seamless access to network folders, files and printers - remote disk resources can be opened (if appropriate access privilege in force) to show folders and files (behaves just like the Drives object for local data). Programs and data can be used and copied or shadowed from this network disk (without having first to assign the network directory a drive letter such as X:). - shared printers are easy to set up (prompts to install matching local device driver if not already installed, and sets up rest of configuration) - printer object can be opened to show queued jobs and job status (just like local printer), but user can only manipulate (hold, release, cancel) his own jobs; administrator can manipulate all jobs - network printer can be the default (no need for local printer to be defined) +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 26. Dragging a shadow of a network resource to the desktop +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 27. Drag and drop printing on the network Disk and printer resources set up for use by an administrator will appear as drive objects and printer objects, like local resources. Thus, once a user has logged on, he can see a P: drive and an X: drive, if these have been set Workplace Shell 102 up for him by the LAN administrator. In addition, the user can assign his own drive letters and logical ports to network objects that he has access rights to (similar to doing a NET ALIAS command in OS/2 LAN Server). But the key point of the LAN-independent shell, is that all access is graphical, through the Workplace Shell. There is no need for the command prompt or for character-based menus. This helps to bridge the gap between the LAN and local resources, and provide a more consistent and seamless access to both. SYSTEM OBJECT MODEL (SOM) One of the most significant elements of the Workplace Shell is something that users never see - the System Object Model (SOM). SOM is an object model - a way of defining objects to the system. It is the foundation of the object-oriented design of the Workplace Shell. In fact, the Workplace Shell itself is built on SOM: Workplace Shell objects (folders, the shredder, the clock and so on) are SOM objects. This means that the Workplace Shell is object-oriented, not only in its user interface, but also in the way it is built. It is built on an object foundation - quite literally, built with objects. The fact that the Workplace Shell is built on objects, means that it can take advantage of the benefits of object-oriented design: it is extendable. Suitably written programs can add their own user defined objects or evolve them from the base classes provided with the system. The result can be that the distinction between application objects and system objects becomes blurred - the applications blend with the rest of the shell to provide a seamless set of services to the user. This is the starting point for evolution towards a full object-oriented environment, where distinctions between applications and the system cease to exist, and objects can be combined in different ways to accomplish user tasks. The way in which such objects are built in OS/2 2.0 is via SOM. SOM tools are provided with the OS/2 2.0 developers' toolkit. SOM is not a programming language, but a system for defining and manipulating object class libraries. It provides a set of APIs and a run-time library to allow object-oriented programs to be written to interface with the Workplace Shell. In fact, SOM has a wider scope even than the Workplace Shell objects you see on the desktop. It is a means of implementing object-oriented constructs, and is designed to be system and language-independent. This is an important feature, because most object-oriented development environments today are language specific (eg you can use either C++, or Smalltalk, but not mix both), and therefore it is difficult to share or subclass objects or classes from other environments. Note that you do not need to develop SOM objects to get a high degree of integration with the Workplace Shell. Many features such as drag and drop are provided in standard PM APIs. The significance of SOM, rather, is in providing an object-based layer on today's generation of operating system. This allows many of the benefits of object-oriented programming to be realised on a platform that also provides Workplace Shell 103 compatibility with older applications. As such, SOM provides the architectural foundation today, for OS/2 to move in future towards increasing object-oriented content. The Taligent joint venture (see "Object-oriented environments" on page 128) is another potential source of object technology. As object-oriented development becomes increasingly important throughout the 90s, OS/2 and SOM will evolve to meet the need to use such techniques in developing OS/2 applications. MOVING FROM A PREVIOUS GUI __________________________ The design of the Workplace Shell has been tested for several years in IBM's usability laboratories, and the beta test of OS/2 2.0 provided more information on how easy it is to learn and use. In general, people who had little experience of computers found the Workplace Shell easy to pick up and use, once the basic principles had been explained. For DOS users who have not been exposed to GUI before, and for Macintosh users, the transition is not very difficult either. IBM's tests, and the evidence of the OS/2 2.0 beta test, showed that the main category of users who encountered difficulties, were those who had used a previous PC-based GUI, such as Windows 3.x or OS/2 1.x. During the beta test, as a direct result of customer feedback, some changes were made to improve the migration for this latter class of user. These included the ability to predefine the look and feel of the shell to be more like that of Windows 3.x or OS/2 1.x, and individual features such as the choice of minimising windows to icons on the desktop, rather than "hiding" the window, which is the default Workplace Shell behaviour. In fact, though the default look and feel can appear different on first view, most items are very familiar to the Windows or OS/2 1.x user once the connection is made between the old style and the new: Workplace Shell 104 +---------------------------------------------------------------------------+ | Table 7. Windows 3.x and OS/2 1.3 vs. Workplace Shell | +-----------------------------+---------------------------------------------+ | WINDOWS 3.X - OS/2 1.3 | OS/2 2.0 WORKPLACE SHELL | +-----------------------------+---------------------------------------------+ | Groups | Folders (offers more function - see | | | "Objects and folders" on page 91) | +-----------------------------+---------------------------------------------+ | Desktop Manager/Program | None. Instead, a random "messy desk" | | Manager | assortment of objects (files, programs or | | | devices). This can be made as "messy" or as | | | "tidy" as you wish. | +-----------------------------+---------------------------------------------+ | Icons | Objects. This is an important distinction. | | | An icon now represents the object (file, | | | program or device) and not a running | | | program. The main consequence of this is | | | in the way minimised windows are treated | | | (usually they are hidden, but you can | | | choose to represent them as icons on the | | | desktop - this can be set on a per-object | | | basis) | +-----------------------------+---------------------------------------------+ | Print Manager | Now separate print objects for each printer | | | (see "Extra facilities" on page 96) | +-----------------------------+---------------------------------------------+ | File Manager | Now a "Drives" object for each drive (see | | | "Extra facilities" on page 96) | +-----------------------------+---------------------------------------------+ | Control Panel | Separate objects for colour, fonts, mouse | | | etc. | +-----------------------------+---------------------------------------------+ | Task List | Window List (also accessible via Ctrl-Esc) | +-----------------------------+---------------------------------------------+ | Menus | Pop-up menus, see "Pop-Up menus" on page 93 | | | | +-----------------------------+---------------------------------------------+ | Minimise button | This "hides" the window rather than places | | | an icon on the desktop, but the behaviour | | | can be customised to iconise the window if | | | required. | +-----------------------------+---------------------------------------------+ | Adding Programs | Use Templates, see "Templates" on page 93 | +-----------------------------+---------------------------------------------+ | Mouse usage | Two button mouse usage. In general, button | | | 1 selects and button 2 drags. Use the | | | Tutorial to learn more about the mouse. | | | Mouse button behaviour can be changed to | | | suit the user | +-----------------------------+---------------------------------------------+ But in nearly every case, not only does the Workplace Shell equivalent provide the Windows function, but it also offers more flexibility. For example, folders offer far more function than the simple group windows in Workplace Shell 105 OS/2 1.x or Windows 3.x (see "Objects and folders" on page 91 for more information): o allows data files, programs and devices to be grouped together o allows long descriptive names o colours, fonts and icons can be easily changed on a per-folder basis o the workarea property can be set to enable groups of applications to be opened and closed together Furthermore, much of the new function provides a powerful incentive to learn because of the many benefits, for example: TEMPLATES A consistent way of creating new objects, whether programs, data files or folders. In Windows 3.x these would take a different procedure for each item. (See "Templates" on page 93) HIDING WINDOWS Although this behaviour takes some getting used to for the Windows or OS/2 1.x user, the experience of the beta test program suggests that most people never wish to go back to the old way, in which the desktop is cluttered with minimised icons. Hiding reduces clutter from the screen, and the Window list (see below) is a much more effective and consistent way of retrieving open windows. Tests show that minimising a running program to an icon is confusing for users who have not used a computer before, as there are often two copies of the icon, one to represent the program reference, and the other the running program, and the user does not know how to differentiate between them. WINDOW LIST This is a more powerful tool than the Task List, as groups of applications can be resurfaced, closed or tiled in one step (see "Multi-tasking and the user interface" on page 33) MOUSE BUTTONS Since Mouse Button 2 is unused in Windows, there is no comparison, except that there is a happy coincidence of use between IBM and Borland in their use of the Mouse Button 2 to produce a pop-up menu on a given object (see "Pop-Up menus" on page 93) FLEXIBLE DESKTOP Objects and windows can be placed where the user wishes, and the action of the desktop is modeless - there is no need to close certain windows before others can be opened. There are therefore no artificial restrictions in the user's movement around the desktop. But, even if the new function does not attract, it is not necessary to learn all of the new ways at once. OS/2 provides all the old function too: there is an object for the DOS or OS/2 command prompt, for those users addicted to Workplace Shell 106 the C:\> prompt; and Windows users can select a WIN-OS/2 Full Screen session if the familiarity of the Windows environment is required (see "Full Screen or Seamless" on page 69). But the most important difference from Windows is the Workplace Shell's flexibility: you can put icons where you choose, not where the Program Manager or File Manager allow you; you can change the look or behaviour of almost any aspect of the system if the default does not suit you; and you can use drag and drop across most of the system, not just the File Manager. BENEFITS OF THE WORKPLACE SHELL _______________________________ But all of the function and power of the Workplace Shell would be useless unless it provided tangible benefits over other GUIs. This section lists some of the advantages. EASY TO LEARN No system is totally intuitive, but the Workplace Shell offers a number of aids to quick and effective learning. The tutorial gives most of the basic elements, and can be revisited at any time. There are productivity applications and games to get productive quickly, and have fun while learning. And the online help system is comprehensive as a reference, or as immediate help when required. The "Start Here" icon gives a focal point if you ever get completely lost! FLEXIBLE Almost anything can be changed if the default does not suit. You can change colours, fonts and background images, not just for the system as a whole, but for each folder. The behaviour of mouse and keyboard, of how windows work, and most other system defaults are all configurable. And the workarea principle can make each project have a different combination of icons and folders, to suit the job you are doing. PERSONAL The Workplace Shell returns to the principle that the PC is a PERSONAL ________ computer. Its' motto could be "have it your way." A secretary's desktop can look different from a manager's desktop, and each different from an engineer's. You can have as many or as few icons as you wish. You can change the look and feel to behave more like OS/2 1.x or Windows 1.x. Workplace Shell 107 SIMPLE Though the Workplace Shell is a powerful environment, it does not overwhelm the user. You can start by using what you know and are familiar with (including the C:\> prompt if you wish!), and move on to learn new function as you need it. Much of the new function and tasks can be learned by experimentation, as the consistency of the shell, and the visual feedback (eg "no-entry" signs where icons cannot be dropped) allows users to teach themselves. COMPATIBLE The Workplace Shell offers the old ways of working like the DOS prompt and the Windows Full Screen. It takes nothing away. But it also provides a standard way of running applications without compromising any compatibility. It does not enforce a way of working with older applications that is foreign to the user. You can either close applications in the consistent OS/2 way by double clicking on the system icon, or use the application commands (such as / Quit for Lotus 1-2-3). CONSISTENT The Workplace Shell provides the same way of working whether your resources are local or on the LAN. It allows you to use techniques like drag and drop consistently across the system, where you would need three different commands in DOS, and would be restricted to doing things from the File Manager only in Windows. INFORMATION-ORIENTED The Workplace Shell allows users to work in a more natural way, by focusing on the information they need to work with. There is less need to worry about the computer's housekeeping, like files and directories. All in all, you work the way YOU want to work, not the way the computer forces you. ___ INTEGRATING Applications are loaded in the same way, data objects are treated in the same way, whether they come from a DOS, Windows or OS/2 program. The Workplace Shell integrates local and remote resources. The whole purpose is to present as seamless an interface as possible to the variety of tools, application and data that users need to do their job. in this respect, it is a UNIFYING ________ interface, and reinforces the key aim of OS/2 2.0 as the integrating platform. Workplace Shell 108 OS/2 IN A CONNECTED ENVIRONMENT _______________________________ OS/2 is the critical component in IBM's vision of the complete, managed, client-server system. It is the key element which allows the PC to become the focal point of information processing. Instead of in the past, where key data processing was performed at a remote host, and information provided to users from the central system, the OS/2 vision moves the PC to the centre, and places the user in control of the information. This vision lies at the heart not only of IBM's user interface design (see "Workplace Shell" on page 87), but also of its strategy to make OS/2 the base for an integrated family of networking extensions, that allows OS/2 to be a completely network-aware system. This makes OS/2 the INTEGRATING PLATFORM, not only for local ____________________ productivity applications, but for the other components of the enterprise system. It is no longer realistic to view the PC in isolation from the rest of the corporate network. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 28. The OS/2 family of networking extensions The systems extensions to OS/2 complete the picture of the full function OS/2, designed to address the needs of the PC platform of the 90s, as discussed in the section "The changing PC environment" on page 1 . They add to the wide application choice, ease of use, investment protection and reliability of the base system, by providing extensive connectivity, management tools and exploitation of the existing corporate network. This section expands on the strengths of OS/2 2.0 as an easy-to-use productivity platform, and shows how, as a base platform, and with its extensions, OS/2 is enabled to act as the "super client" of today, and the future. OS/2 FOR CLIENT-SERVER ______________________ OS/2 is not only today's server platform of choice (acknowledged by both IBM and Microsoft), but the best available client. These are some of the reasons why: o CONSISTENT PLATFORM FOR BOTH CLIENT AND SERVER: It is clear that if the ______________________________________________ same platform can be used for both the client and the server, then the benefits of consistency will lead to a much more manageable platform, with only one operating system to support. OS/2 is the only operating system available that is consistent across client and server. o MULTIPLE CONCURRENT NETWORK PROTOCOLS: OS/2's great strength in _____________________________________ communications is acknowledged across the industry. In particular, OS/2's multi-tasking design allows it to handle multiple communications protocols (eg NETBIOS, 3270, IPX, TCP/IP) with ease. This ease of integration is in contrast with the problems of attempting such OS/2 in a connected environment 109 concurrency under DOS or Windows, such as lack of memory, poor multi-tasking performance and the instability of DOS-based multi-tasking. In a world where heterogeneous or mixed-vendor connectivity is becoming the norm (a recent report estimated that 70% of LANs run more than one protocol), OS/2 is today's only reliable client choice. At the Networld trade show in early 1992, IBM demonstrated a single OS/2 client machine with one Token Ring card, connected to a "wall of servers," which included three LAN servers, one running NetWare, another Banyan Vines, and another OS/2 LAN Server; a RISC System/6000 running AIX, an AS/400 and an ES/9000. One client was connected simultaneously to all these shared resources - it was, of course, an OS/2 2.0 client. o ENABLED FOR LAN-BASED INSTALL: OS/2 can be installed from a server to _____________________________ multiple clients, allowing faster and more controlled installation, with the added benefits of greater automation. Future tools will be available from IBM to ease the system administrator's job still further (see "Graphical installation" on page 78 for more information on installation). o LAN-INDEPENDENT SHELL: OS/2's Workplace Shell provides a graphical view _____________________ of resources, whether on the local machine or on the LAN. Remote drives can be set on the LAN from products including NetWare, OS/2 LAN Server, Banyan VINES, or TCP/IP for OS/2, and also on host systems using Virtual Disk facilities in products like PC Support/400 and Workstation LAN File Services/VM. The Workplace Shell gives seamless access to different server environments, making multiple connectivity easier to implement, and provides consistent access to network files and printers (see "LAN-independent shell" on page 101) o EASIER TO MANAGE: OS/2 provides the ability to allow administrative tasks ________________ (such as collection of local configuration data and performance measurement) to be run on the client while preventing excessive impact on local performance and usability. Such tasks are becoming increasingly important in a highly distributed PC client-server environment, and particularly where PCs are being rolled out into mission-critical usage in remote locations where on-site support cannot be provided. Remote diagnosis and support is therefore critical in such environments. But background monitoring and data collection cannot be achieved easily on a single-tasking platform like DOS. And the limitations of environments like Windows, that attempt to graft a multi-tasking layer on top of single-tasking DOS, are revealed when such systems management functions are attempted. Even if such tasks could be run in the background on Windows (not always the case), the lack of true multi-tasking would cause the background "probe" to be intrusive to the user's foreground activity. Only a pre-emptive multi-tasking environment like OS/2 can offer these benefits. o SUPPORTS BOTH PRODUCTIVITY AND LINE-OF-BUSINESS APPLICATIONS: Today's ____________________________________________________________ client-server environments are moving beyond the simple file and print sharing of the first LANs, towards applications like Lotus Notes, and SQL database applications, that can deliver competitive edge through enabling workgroup communication. In this environment, it is important to deliver not only the support for in-house "line-of-business" applications, but leverage the investment in client productivity applications. OS/2 2.0 is OS/2 in a connected environment 110 the only platform that delivers industrial strength reliability AND wide ___ application compatibility. o RELIABILITY: This is perhaps the most critical issue of all. Many of ___________ the reported problems with Windows 3.0 occurred in networking environments. It is clear that although Windows 3.1 may have improved reliability in some areas, it has not changed any of the architectural deficiencies that cause its limitations in networking; most of the problems stem from the fact that Windows continues to run on DOS (see "Reliability and protection" on page 44 and "Reliability" on page 61). The issue can be summed up thus: what use is it having a fault-tolerant server if you cannot rely on your client? Forrester Research's May 1992 report on the growth of the "super client" (see "The changing PC environment" on page 1) identifies OS/2 2.0 as being a leading candidate to satisfy the demand for a highly protected, network-aware, true multi-tasking client platform, for use in "line-of-business" applications. According to Forrester, the "super client" role is beyond the scope of either Windows 3.1 or Windows/NT, and predicts for the latter "product delays...and bloated hardware requirements." That independent analysts should make such statements is not surprising, given the difference in protection between OS/2 2.0 and Windows 3.1, and the difference in hardware requirements and availability of OS/2 2.0 and Windows/NT. OS/2 2.0 is the platform that meets the exacting requirements of the modern client platform (see "The changing PC environment" on page 1) in an acceptable configuration, and is available today, not promised for the future. THE OS/2 FAMILY OF NETWORKING EXTENSIONS ________________________________________ OS/2 2.0 is part of a family of products and systems extensions, which are designed to work together. In other environments, customers have to buy third party software (if it is available) and hope it will all work together; with IBM these extensions are tested together and integrated. Here are some of the systems extensions from IBM which complement the OS/2 base system: EXTENDED SERVICES FOR OS/2 Extended Services for OS/2 is a separate product which provides communications and database functions. It includes Communications Manager, which offers a wide range of connectivity and protocols (all of which can be active at the same time ); and also provides Database Manager, a powerful client-server SQL relational database, part of the SAA family of relational databases that includes DB2 and SQL/DS. Extended Services for OS/2 release 1.0 works with both the OS/2 Version 1.3.1 16-bit base and OS/2 Version 2.0 32-bit base. This will be an advantage in mixed 286 and 386 environments. Extended Services is supported on a selected range of IBM-compatible PCs, not just PS/2s. In keeping with the intention to offer modular options to customers, Extended Services comes in two forms, which differ only in their database function: Extended Services for OS/2 delivers Communications Manager and Database Manager in a single package, providing an "all-in-one" complete connectivity OS/2 in a connected environment 111 solution; Extended Services with Database Server for OS/2 adds the ability to create databases on a server, and offers cost-effective client functions for DOS, Windows and OS/2 clients. Extended Services is a key component for OS/2's participation in the SAA standards, particularly for communications protocols (APPC, CPI-C, and APPN) and relational database (SQL, DRDA). It is one of the key building blocks for the SAA co-operative processing applications of the future, both by third party applications vendors and by customers themselves. DDCS/2 SAA Distributed Database Connection Services/2 (DDCS/2) is a complement to Extended Services. It offers host database connectivity to an OS/2 client and, working with Database Manager, allows DOS, Windows and OS/2 clients to access host databases conforming to the Distributed Relational Database Architecture (DRDA), which includes not only IBM's DB2, SQL/DS and OS/400, but potentially third party database products too. DDCS/2 widens the scope of the OS/2 client, and is part of the wider SAA distributed database direction. OS/2 LAN SERVER OS/2 LAN Server version 2.0 is a powerful platform for providing LAN services to DOS, Windows and OS/2 clients. Entry and Advanced levels are available. Entry provides an economical base system for both the 16-bit and 32-bit bases while Advanced adds features like a high performance 386 file system (HPFS386) and additional error recovery, on the 16-bit base. OS/2 LAN Server 3.0, which at the time of writing had entered beta test, will offer, among other new features, the ability to run Advanced level function like HPFS386 on the OS/2 32-bit base. Other new features in LAN Server 3.0 include: o high level of NetWare and OS/2 LAN Requester client co-existence, on the client desktop, and when integrating NetWare resources into an OS/2 LAN Server domain as externally defined resources o peer Services, which allows a OS/2 requester to share resources with one peer o redirected Install, delivering unattended install within the CID process o 802.2 Virtual Device Driver (VDD), enables DOS 802.2 applications to share an adapter with other DOS and OS/2 applications (this function is also included in NTS/2 - see "IBM Network Transport Services/2" on page 115) o OS/2 TCP/IP coexistence via support of NETBIOS over TCP/IP, allowing support of a greater range of protocols OS/2 in a connected environment 112 o improved disk fault tolerance, mirroring without the need for rebooting the server, and mirroring of the boot drive o support for Apple Macintosh clients via an add-on product Like Extended Services, OS/2 LAN Server is supported on a range of selected IBM-compatible equipment as well as PS/2s. OS/2 LAN Server is a robust, scalable solution, from the small LAN, to the large and complex. It makes life easy for the user, the LAN administrator, and the systems manager: o for the user - a single view of all resources available, and automatic ____________ allocation of resources. Combined with the Workplace Shell, this becomes even easier. o for the administrator - the Domain feature makes management of large LANs _____________________ much easier, and allows location-independent resource naming, making changes easier to implement. o for the systems manager - performance and management tools, including _______________________ integration with the SAA host-based NetView. OS/2 LAN Server provides excellent performance. In tests run by LANQuest Labs, an independent benchmarking company (report dated June 1992), OS/2 LAN Server Version 2.0 had the best overall performance compared to Novell NetWare 3.11 and Microsoft LAN Manager. In the future, IBM plans to enhance OS/2 LAN Server towards full distributed function for the LAN environment, including common distributed services, common developer infrastructure, and open industry standards. OS/2 LAN Server and Microsoft LAN Manager In 1989, IBM and Microsoft made a commitment to work towards greater commonality between Microsoft LAN Manager and OS/2 LAN Server. The original scope of work has now been completed, and commonality has been achieved at the API and functional level. This means that applications can be written to run on both platforms. OS/2 LAN Server clients and Microsoft's LAN Manager clients can coexist and interoperate on the same LAN. Both clients can logon and access resources at either or both servers. OS/2 LAN Server and LAN Manager utilise a common underlying security system as well, which includes common user domains, access control and server local security. OS/2 LAN Server's support for selected non-IBM equipment means that customers can now buy LAN Server on both IBM and OEM machines, and also achieve consistency that way. Microsoft has not, at the time of writing, committed support in Microsoft LAN Manager for OS/2 2.0, either as a server or as a client, although they have access to the OS/2 2.0 code. Nevertheless, customers using LAN Manager 2.0 may obtain OS/2 2.0 client access to the server, using IBM LAN Enabler version 2.0 (see "LAN Enabler" on page 114). OS/2 in a connected environment 113 Although the current release of OS/2 LAN Server contains code licenced from Microsoft, future OS/2 LAN Server plans (see above) have no dependency on Microsoft, whose declared future plans for LAN Manager place little emphasis on OS/2. NETWARE FROM IBM IBM, as an open vendor, provides its customers with the two major options for server software: OS/2 LAN Server and NetWare from IBM. OS/2 LAN Server is an excellent platform in an environment requiring IBM host connectivity today, and complements the use of Extended Services, but many customers have NetWare-based LANs, for application, historical and functional reasons. They therefore require co-existence and interoperability between the two standards. NetWare expands IBM's ability to offer better solutions in a mixed networking environment, where support of diverse clients (Unix, Macintosh) are required in addition to DOS, Windows and OS/2. OS/2 2.0 is an excellent client for NetWare. OS/2 1.3 plus the OS/2 NetWare Requester offered access to services on the various NetWare platforms. For OS/2 2.0, the NetWare Workstation Kit for OS/2 Version 2.0 includes the requester code and utilities required for a fully functional NetWare client. A separate product, NetWare Services for OS/2, adds to the requester code, a MAP utility for network management. IBM offers co-existence between LAN Server and NetWare. With the OS/2 LAN Requester and the NetWare OS/2 requester installed, the same OS/2 workstation can log on to both types of server. This allows customers to use both products according to immediate requirements and installed base. Greater interoperability is planned. One key element in achieving this is the commitment by Novell to move NetWare to the 32-bit OS/2 base. This will combine the strengths of NetWare with the power of 32-bit OS/2 as a server platform. Novell's plans amount to a key endorsement of OS/2 as both a server and client platform. IBM will continue to offer interoperability with NetWare systems as we incorporate more distributed services into the OS/2 LAN Server. LAN ENABLER IBM LAN Enabler version 2.0 offers the OS/2 requester, LAN Support Program and DOS LAN Requester (DLR), identical in function to that provided with OS/2 LAN Server 2.0, in a separate product. The package includes requesters for DOS, Windows, OS/2 1.3 and OS/2 2.0, as well as protocol support, NDIS-compliant network adapter drivers, LAN API support, and a VDD for NETBIOS applications. This product will allow 286 and 386 PCs to connect to servers including OS/2 LAN Server 2.0 and Microsoft LAN Manager 2.0, and other compatible servers, without having to buy a separate copy of LAN Server, or Extended Services for OS/2. It also allows OS/2 2.0 client access to NETBIOS, 802.2 and NDIS applications without buying LAN Server or Extended Services. OS/2 in a connected environment 114 This enhances the function of OS/2 2.0 as a client to different networks by providing the necessary function in a package separate from the server, at an economical price. IBM NETWORK TRANSPORT SERVICES/2 IBM Network Transport Services/2 (NTS/2) provides networking support on an OS/2 2.0 base, without requiring OS/2 LAN Server or Extended Services for OS/2. It provides the LAN adapter and protocol support (LAPS) to support networking applications on an OS/2 2.0 machine, and to enable automated installation of OS/2 and other CID(22) -enabled software across a LAN. NTS/2 is a combination of: 1. Network Driver Interface Specification (NDIS) compliant transport protocol and network adapter software 2. OS/2 2.0 support for DOS programs requiring NETBIOS and IEEE 802.2 APIs, by providing a VDD/PDD combination for NETBIOS and 802.2. This allows DOS applications using a Token Ring adapter, to share that adapter with other DOS and OS/2 applications running on the same machine. For example, this allows DOS and Windows 3270 emulation programs using Token Ring to share the adapter with OS/2 LAN Requester. 3. Configuration Installation Distribution (CID) enabling software, including a LAN CID utility (LCU) to manage the automated installation process. Note that the LAPS function was also released earlier in the LAN Enabler/2 v2.0 product. NTS/2 adds to LAN Enabler/2, the CID support to allow automated installation of OS/2 in a LAN environment. In this respect, NTS/2 is more akin to the DOS-based LAN Support Program, with the addition of CID support (ie it provides the network transports and APIs to enable LAN support), whereas LAN Enabler/2 can be thought of as related to the OS/2 LAN Requester (since it provides command line and menu interfaces to manage LAN-based resources). OPEN SYSTEMS CONNECTIVITY Although OS/2 is the SAA client platform, it is also vital that it embraces the open systems world. IBM's strategy is to enable OS/2 and AIX in particular, to interoperate as much as possible. TCP/IP for OS/2 is one product that provides significant networking co-existence with UNIX-based systems, providing support for many open standards such as TCP/IP, NFS, TELNET and X-Windows. This allows OS/2 to extend its client capability into the open systems arena. IBM's strategy is to link the OS/2 and open systems --------------- (22) CID stands for Configuration, Installation, Distribution - see "Configuration, Installation, Distribution (CID)" on page 118 OS/2 in a connected environment 115 worlds closer together through common systems extensions, connectivity and management tools (see "AIX interoperability" on page 132) The combination of the OS/2 2.0 base, and TCP/IP for OS/2, means that the OS/2 2.0 user can today view, on the same screen, DOS, Windows, and OS/2 __________________ applications as well as Unix applications through X terminal or TELNET. This widens still further the range of application support OS/2 2.0 can provide. SYSTEMS MANAGEMENT __________________ Connecting PCs together is only one part of the process of integrating the PC into the enterprise system. The more PCs are installed in a company, the harder it is to control their installation, maintenance, problem solving and performance tuning. IBM has proven strength in handling complex, distributed networks, and therefore understands the importance of providing tools to help manage these tasks. To date, systems management for OS/2 has been provided by two means: o by functions integrated directly into OS/2 and extensions like Extended Services (such as the First Failure Support Technology - FFST/2) o by separate standalone products which address a specific and distinct aspect of the overall task of managing OS/2 systems In the latter category, IBM has already produced a variety of products, based on OS/2, to assist various aspects of systems management. The table below lists a few of them: +---------------------------------------------------------------------------+ | Table 8. OS/2 systems management tools | +----------------+----------------------------------------------------------+ | SPM/2 | System Performance Monitor/2 (SPM/2) tracks key aspects | | | of a system's use: CPU, disk etc, to identify | | | performance problems. This can be used in both server | | | and client environments. | +----------------+----------------------------------------------------------+ | NetView | an installation management tool, working in conjunction | | Distribution | with the host-based NetView, that includes a LAN | | Manager/2 | Download Utility to install or upgrade software via a | | | LAN server to LAN-connected PCs. | +----------------+----------------------------------------------------------+ | SAA Delivery | allows host-connected OS/2 machines to receive software | | Manager | updates from the host | +----------------+----------------------------------------------------------+ | DCAF | Distributed Console Access Facility (DCAF) allows remote | | | diagnosis and management, by receiving screens from and | | | controlling the keyboard of a remote OS/2 machine. | +----------------+----------------------------------------------------------+ IBM is continuing to expand on this range of management tools, and to integrate them more closely. IBM's long term goal is the provision of an architected management platform which adheres to indistry standards from organisations such as ISO, X/Open and OSF. OS/2 in a connected environment 116 IBM's strategy for systems management is based on the belief that in establishing the true cost of a PC system, the initial hardware and software cost is only a small proportion. The extra costs, what many independent analysys call "cost of ownership," relate to issues like integration, support and systems management; or, as it was stated in "The changing PC environment" on page 1, the costs of maintaining the systems should not exceed the benefits it provides. With the growth in the size and complexity of LANs and client/server systems, planning and managing these systems has become increasingly difficult, time-consuming and expensive. In a report in April 1992, Gartner Group said that "Costs surrounding product updates represent the largest component of PC software life-cycle costs." Customers are therefore investing a growing amount of resources into distributed systems management (DSM) and are demanding that they be simplified and automated. On October 6th, 1992, IBM responded to customer demands for solutions to DSM problems with 2 major announcements: o the IBM LAN NetView family of DSM products o a generalized solution for configuration, installation, and distribution (CID) of OS/2, its subsystems, and application software. IBM LAN NETVIEW FAMILY The IBM LAN NetView family of products is an OS/2-based platform for performing DSM functions in enterprise-wide, multivendor local area networks (LANs). The LAN NetView platform provides the ability to monitor and control information processing resources, including hardware and software, throughout an enterprise. Information is collected from monitored resources (managed systems) and sent to other resources (managing systems). The offerings allow the management of OS/2 2.0, DOS 5.0, and DOS 5.0 with Windows 3.1 clients. The new platform allows the LAN administrator at a workstation to access different systems management applications using the same screen. It provides enhanced automation and greater integration among products to streamline such management tasks as detecting hardware or software failures on the network - which often require the combined efforts of users and trained personnel at both remote and central locations. The set of LAN NetView distributed system management applications being developed by IBM include: o LAN NetView Manage, the platform product that provides system services for LAN NetView management applications. o LAN NetView Start, LAN NetView Monitor and LAN NetView Fix, three management applications designed to run on that platform. They provide, respectively, configuration, systems performance and fault-management services. o LAN NetView Tie, which provides a LAN-to-NetView link for customers who prefer to divide management of system resources between LAN- and OS/2 in a connected environment 117 host-based products, or who prefer to centralize all management on the host processor. IBM is encouraging vendors to provide agents for their system resources to allow LAN NetView products to manage them, and is encouraging vendors to provide additional system management applications on this platform. Among the vendors who have declared their support are Novell, Microcom, Computer Associates and Ungermann-Bass. Customers may also choose to implement their own LAN NetView compliant distributed system management applications. To encourage the development of third-party systems management applications, LAN NetView provides a set of common application programming interfaces (APIs) that have been accepted by key industry organizations that further standards, such as the Open Software Foundation (OSF) and X/Open, and accepted by IBM's SystemView. One of these interfaces, named the X/Open Management Protocol (XMP), allows developers to create applications without having to know the underlying management and transport protocols, such as CMIP and SNMP. SystemView has adopted XMP as its Common Management Interface Protocol (CMIP), and the LAN NetView products are among the first management products in the industry to incorporate elements of the OSF's Distributed Management Environment (DME) technology. CONFIGURATION, INSTALLATION, DISTRIBUTION (CID) IBM also recognises the need to provide a generalised solution to the problem of automated installation and configuration of multiple PCs. On October 6, IBM announced its CID strategy. CID is not a single product, but a collection of processes with supporting products. It automates the processes of configuration, installation and distribution in the DSM environment and dramatically improves productivity for system administrators. This allows both standalone LAN and host-attached LAN customers to realize dramatic resource savings by using the CID processes. Though there are several aspects to CID enablement, its primary objective is to provide unattended, remote installation of OS/2, its subsystems, and application software on LAN attached workstations. Customers with both large and small networks will be able to remotely install and manage software such as OS/2 or OS/2 applications from a single location, without requiring the involvement of the desktop workstation user. The CID process can apply to installing not only OS/2 system code, but also supported application code. Each system requires a physical LAN connection, but is not reliant upon a file server like OS/2 LAN Server or Novell NetWare for the distribution mechanism. The installation process is performed by an individual who initiates the installation process at their workstation and performs other tasks such as removing/replacing diskettes when prompted and rebooting the system when prompted. This individual would not be required to know the responses to detailed product installation questions. The answers to the product installation questions are kept in response files which contain specific responses to each installation question. The response files are unique to each product. Each product provides either a utility or a model which the OS/2 in a connected environment 118 system administrator can use to generate the response files. A procedure file which may be tailored is set up by a system administrator and stored on the code server. This procedure file contains the commands which initiate product installations for other CID enabled products such as IBM LAN Server 3.0. CID provides the ability to individually tailor PCs or groups of PCs. Previous solutions allowed for cloning, where software is distributed by duplicating the files across the network. These duplicated files did not always fit individual workstation environments and sometimes required extensive changes from the local user. With CID technology, individualized support is now enabled for OS/2 products and applications, so that users can automatically receive new software already configured for their computers. DOS and Windows users will continue to be supported in the short term by cloning, with integrated support for DOS clients to be provided by mid-1993. Among the products that are being delivered to implement the CID process are: o LAN NetView Start, which allows administrators to manage and plan the configuration and installation of OS/2 software across the network. o Network Transport Services (NTS/2), which provides NetBIOS connectivity and helps execute instructions generated by Start about installing software on the workstation. o NetView Distribution Manager/2 (NetView DM/2), which will now provide expanded software distribution and installation capabilities, including change management and recovery, across standalone or interconnected LANs from a single site on the LAN. o Enhancements to NetView Distribution Manager (NetView DM) for an MVS host, which, in conjunction with Netview DM/2, will now allow centrally controlled distribution and installation, as needed, of system software, user and vendor software, software changes and data files. o Software Profile Management Facility, which works with NetView DM to store descriptions, or "profiles," of groups of users with similar characteristics, simplifying software installation and updates for a large number of workstations. All system and application software to be installed using this method must be CID enabled. OS/2 Version 2.0, OS/2 LAN Server 3.0, NTS/2 v1.0 and OS/2 Extended Services Database Manager are all CID enabled. Enabling consists of allowing installation to be redirected to a network drive, and the ability to provide user input through a response file. In addition to CID enabling our own products, IBM is encouraging vendors to provide CID enabled applications. IBM also announced agreements with independent software vendors (ISVs) who intend to enable selected products to take advantage of CID. To date, a total of 164 vendors have committed their products to become CID-enabling, including Computer Associates, Describe, Lotus, Micrografx, Novell, Software Publishing Corp., Symantec and WordPerfect. OS/2 in a connected environment 119 COMMITMENT TO OPEN STANDARDS One of the most important aspects of IBM's systems management strategy, including OS/2 systems management, is IBM's intention to esnure interoperability with a broad range of other vendors' systems management products. That is why the IBM systems management products aim to support industry standards such as CMIP and SNMP, and are based on the OSI Management Framework standards implemented by Hewlett Packard's Open View Network Management Server Product version 3.1. Thus the IBM tools will be able to take advantage of a programming interface consistent with the Open Software Foundation Distributed Management Environment (OSF/DME), as well as being part of SystemView, IBM's strategy for enterprise-wide systems management. OS/2 is the base platform for all of these management extensions, because it is only OS/2 that is extendable in this way, and can provide the support for these management functions (see "OS/2 for client-server" on page 109). It is further illustration that OS/2 is the true client of choice, as well as the server. MIGRATION FROM EXISTING CONNECTIVITY PRODUCTS _____________________________________________ IBM recognises that customers who wish to move towards the "super client" platform, still have signficant investments in older connectivity products. OS/2 2.0, as the integrating platform, provides a wide degree of support for DOS-based connectivity products, as well as supporting other existing networking products. NETWORKING ON OS/2 Not only does OS/2 provide support for the two most popular network server products, NetWare and OS/2 LAN Server, but it is also a platform that runs a large range of the other major LAN software products, either as client, or server, or both. Many of these products had support for OS/2 1.3, but new versions are being produced for OS/2 2.0 from vendors such as Banyan (who are developing a requester for their VINES network system) and Digital (who are planning support for their Pathworks product). This makes OS/2 not only the client of choice in these networks, but also, for many of them, the base server platform. DOS requester products for some of these products can be supported, running in a VDM, though this often (as in the case of IBM DOS LAN Requester for OS/2 LAN Server) requires booting the real version of DOS in a VDM (see "Virtual Machine Boot (VMB)" on page 51). Although DOS network drivers can often be run in a VDM, they can only provide services to that individual VDM, since there is usually no Virtual Device Driver for the protocol stack or the Media Access Control driver (eg 802.2). Obviously, this restriction is usual for OS/2 2.0 (see "DOS device drivers" on page 46), and in most cases causes no loss of function where a device is dedicated to a single application (as it usually is for fax cards and scanners). However, it tends to defeat the purpose of networks to have the resources available to only one application, and therefore OS/2-based network requesters and drivers are recommended whenever they are available (many vendors already have or are working on OS/2 OS/2 in a connected environment 120 2.0 requester code for their server product; contact your vendor for details). DOS COMMUNICATIONS APPLICATIONS UNDER OS/2 Because of OS/2's extensive compatibility with existing DOS and Windows applications, it can even run DOS-based communications applications. This includes not only popular asynchronous communications products such as ProComm Plus, but also IBM's own DOS 3270 and 5250 products, Personal Communications/3270 and DOS PC Support/400. The communications aspects are straightforward, as OS/2 is designed to handle multiple concurrent protocols and even background communications with more reliability than is possible under DOS extender environments such as DOS/Windows 3.x (see "Virtual Device Drivers (VDDs)" on page 24 for more discussion of how it does this). However, both Personal Communications/3270 and DOS PC Support/400 require some customisation before they can be made to run satisfactorily under OS/2 2.0: the first requires tailoring the DOS Settings, the second requires booting the "real" DOS in a VDM to support special functions like shared folders (which uses a block device driver) - see Appendices A and B in OS/2 ____ Technical Compendium - Volume 2: DOS and Windows Environment (GG24-3731-00) ____________________________________________________________ for more details. There are, even with these settings, some restrictions when running these applications: o File transfer must be executed from the same VDM as the emulator runs in (you may need to enable session switching to the VDM DOS prompt via the DOS Setting KBD_CTRL_BYPASS) o Limitations in PC Support function (only Basic DOS, not Extended DOS support; other DOS, Windows or OS/2 applications cannot access PC Support/400 facilities) o Sharing of Token-Ring Adapter (if using Token Ring rather than DFT or Twinax) with other applications is not possible without an 802.2 VDD. This restriction disappears if the 802.2 VDD from NTS/2 is installed (see "DOS device drivers" on page 46 and "IBM Network Transport Services/2" on page 115). Because of these restrictions, it is recommended to use OS/2 versions of these emulators and communications functions, which appear in Extended Services for OS/2, because of the higher function, easier installation and access of resources across DOS, Windows and OS/2 applications. Nevertheless, the support of most functions for the DOS applications under OS/2 enables, for many users, a more than adequate migration. This is in contrast to some of the press reports concering Windows/NT, which warn that compatibility with existing DOS-based connectivity programs and device drivers is likely to be extremely limited, forcing users to consider buying new connectivity software if it is available by the time Windows/NT ships.(23) This is, of course, one OS/2 in a connected environment 121 of the many compatibility issues that have to be encountered when a new platform is introduced. --------------- (23) See PC Week July 27, 1992 - page 1. The lack of support for DOS device _______ drivers is confirmed in the Microsoft document "Microsoft Windows NT Operating System". OS/2 in a connected environment 122 FUTURES _______ It is of course important, as well as examining the strengths of OS/2 2.0, the current release, to look at the future of OS/2 and some of the areas in which it will develop. OS/2 will continue to evolve to satisfy new requirements and bring forward new technologies. With OS/2 2.0 we have designed the system not just for 1992, but as a platform for many developments throughout the 90s. The OS/2 32-bit architecture (OS/2 2.x) represents the base for the immediate future. OS/2 2.0 has the functions that customers need today, and has been designed to carry through to the next major steps, into the world of object-oriented technology and distributed systems. This section examines some of the areas in which OS/2 will be enhanced to meet the needs not only of today's "super client" (see "The changing PC environment" on page 1 and "OS/2 for client-server" on page 109), but of the long term vision of the "window on the world." The OS/2 direction is towards a single client system, encompassing existing investments and harnessing new technologies like object and multimedia, and a scalable, robust server platform exploiting the increasing power of the hardware, and distributed networking support based on open standards. OS/2 1992 DEVELOPMENTS ______________________ By the middle of 1992, IBM had delivered: o OS/2 2.0 base system o Extended Services for OS/2 o OS/2 LAN Server 2.0 By the end of 1992 and into early 1993, IBM intends to consolidate on the early success of OS/2 2.0, by delivering updates to address the following issues: o improved device driver support o enhanced "Seamless Windows" capability o performance and memory enhancements o enhanced WIN-OS/2 support o extensions for multimedia and pen The current hybrid 16-/32-bit PM graphics engine will be replaced by more 32-bit technology. This will allow at the same time 32-bit screen device drivers to be delivered for VGA, SVGA and XGA. It is intended that these drivers will not only improve screen performance, but also deliver high Futures 123 resolution "Seamless Windows" capability for resolutions above VGA (see "High resolution support" on page 72). IBM plans to update WIN-OS/2 function to include Windows 3.1 features. Work is continuing to reduce the memory requirements of the system, and to improve performance in low-end configurations. Such work will produce performance benefits in all configurations. Further multimedia extensions (MMPM/2) releases will ship in 1993, adding video and image capabilities to the audio functions shipped in the first release, which became available in June 1992. OS/2 Pen extensions and a developers' toolkit are planned for late 1992 or early 1993. During the same period, IBM will produce device adaptation kits to ensure that more drivers for disks, displays and printers will appear from third party vendors. Some of these may be available via IBM and public bulletin boards. If you have a query about a specific device, you are advised to contact the vendor in question first, to understand their development timeframes and proposed distribution methods. Many of the individual changes described above will be made available in a service pack before the end of 1992. Some selective fixes are already being made available through bulletin boards and via Compuserve. Other function, such as the WIN-OS/2 3.1 support, is currently in beta test. These are just the enhancements in the base product. Also planned are a series of enhancements to the systems extensions, including a new release of OS/2 LAN Server, enhancements to Communications Manager and the LAN Enabler, as well as further developments in automated configuration, installation and distribution. These will take place between the end of 1992 and early 1993. 32-BIT SYSTEM EXTENSIONS (COMMUNICATIONS, DATABASE, LAN) ________________________________________________________ OS/2 2.0 is the base for Extended Services for OS/2, which provides a powerful set of communications and database functions, and for OS/2 LAN Server version 2.0. The first releases of Extended Services for OS/2 and LAN Server (versions 1.0 and 2.0 respectively) on the OS/2 2.0 base are 16-bit only, in order to provide the same system on both OS/2 2.0 and 1.x. This will allow customers to standardise on common systems extensions across mixed 1.x and 2.0 (16- and 32-bit) bases. However, future releases of both Extended Services for OS/2 and LAN Server will be full 32-bit products, taking advantage of the 32-bit environment to allow even better performance, concurrency and throughput. In addition, Novell will provide a 32-bit version of NetWare on the OS/2 2.0 base, fulfilling the commitment made in the IBM-Novell February 1991 joint announcement. Using these 32-bit extensions will allows customers to fully exploit 32-bit performance and throughput across the entire system. Futures 124 MULTIMEDIA __________ As applications become more sophisticated, multimedia technology embedded in mainstream applications as well as in separate applications will become increasingly important. OS/2 is already an excellent platform for multimedia, as products such as IBM's Audio Visual Connection (AVC), M-Motion and the ActionMedia II Developer's Toolkit have shown. But the 32-bit OS/2 environment allows easier development of more sophisticated multimedia applications, and will give the potential to include multimedia features in many other applications, thus making its use more widespread. In particular, the multi-tasking and overlapped I/O capabilities of OS/2 will allow the kind of applications to be developed that are not feasible under environments like Windows, that are based on DOS. Multimedia Presentation Manager/2 (MMPM/2) is a series of extensions to OS/2 enabling it to handle multiple media (audio, images and video) in a consistent way. Current DOS, Windows and OS/2 multimedia applications (IBM examples include Storyboard Live!, AVC and Linkway) all include their own multimedia device support and use their own unique data formats. MMPM/2 provides a level of standardisation by offering: o a hardware-independent layer, the Media Control Interface (MCI), which allows new functions, devices and data formats to be added in a modular way o a common data specification (RIFF) agreed by both IBM and Microsoft, and common between the OS/2 and Windows multimedia extensions MMPM/2 provides data streaming and synchronisation services to enable easy management of and transfer of data between devices. MMPM/2 also presents a series of "applets" which control and play devices like MIDI devices, digital audio, and Compact Disc. The Multimedia Presentation Manager Toolkit/2 (MMPMTK/2) is also available to help programmers write OS/2 multimedia applications. It includes language bindings for C and MASM, sample programs and documentation. The MCI has both a procedural message interface for C and MASM, and an interactive string interface. The latter allows easy incorporation of multimedia function into a variety of applications (including productivity applications like spreadsheets and word processors). The multimedia extensions for Windows will run under the WIN-OS/2 environment, but users and developers of multimedia may prefer to use the OS/2 facilities, which provide as wide a range of device support, data compatibility through formats like RIFF, but greater function, performance, and device utilisation. For example, OS/2's support for sharing of media devices between multimedia applications is superior to that possible under Windows. Overall, OS/2 provides a better multimedia environment that Windows, because of: Futures 125 o Better encapsulation of system resources by OS/2. Under Windows 3.x the programmer needs to be aware of directly controlling the system resources. o Better stability of OS/2, especially in the area of multi-tasking which provides improved coexistence of applications with less coding effort. For example, yield points required under Windows 3.x are not necessary with OS/2. o Better graphics, such as Bezier functions, on OS/2. o Better performance, through use of the flat memory model and pre-emptive multi-tasking. o more capacity for large data objects (image, sound) through the flat memory model The combination of better multi-tasking and the support for threads leads to better synchronisation of the multiple data streams needed for multimedia. An example is synchronising digital audio with analog video for a firing cannon or a talking head. OS/2 "fast threads" are an enhancement specifically added to improve the performance of threads for multimedia applications. In Windows 3.x, synchronisation is left entirely to the application. Developers have to write it themselves, thus increasing development time and cost. OS/2 controls multiple accesses to resources more effectively than Windows, so that audio and video can run without noticeable interruption while loading other applications. Such seamless integration of multimedia into the normal business desktop is more difficult to achieve in an environment like Windows, that does not provide pre-emptive multi-tasking. Multimedia applications frequently need to deal with large memory objects for bit maps, audio streams, or even streams of bit maps. These objects are much easier to manipulate in the flat 32-bit memory model provided by OS/2 2.0. All of these features will make OS/2 2.0 the multimedia platform of choice. IBM and Apple announced, in July 1991, the two companies' intention to collaborate on multimedia standards. In October 1991, IBM and Apple announced the formation of an independent, joint venture company, Kaleida, to develop multimedia specifications and technologies. This brings two of the leaders in the multimedia industry together, and increases the possibility of a broad-based industry standard. PEN-BASED COMPUTING ___________________ Pen-based computing is likely to be an important means of expanding the use of computers in the next few years. IBM has explored the use of Go Corporation's PenPoint operating system for dedicated pen-based portable systems. IBM believes that some new applications may require the use of technology specifically designed to exploit the pen interface. Nevertheless, applications for existing systems may also benefit from pen-based extensions, particularly on desktop machines, where the pen may prove, in some circumstances, to be a better input tool than those currently available. IBM Futures 126 is exploring these options through technology which we have demonstrated publicly, using pen extensions for OS/2. In future, as the technology develops, the tablet and desktop systems will both offer OS/2 and Pen extensions. It shows once again how OS/2 is the base for most of IBM's innovative new technology in software. SYSTEMS MANAGEMENT __________________ Some companies in the desktop marketplace operate only in the PC arena, and their strategies display little understanding of the difficulties of configuring, maintaining and managing large volumes of PCs in a highly connected environment. As companies' use of PCs grows, and their importance in the corporate network increases, systems management of these distributed PCs becomes of fundamental importance. The business platform of the 90s will need to be a manageable platform, else the costs of keeping the system running will endanger the benefits. There is already a range of products available for OS/2 to support the systems manager, including NetView Distribution Manager/2 and LAN Automated Distribution/2 to help automated installation, SPM/2 for performance and resource management, and DCAF for remote diagnosis (see "Systems management" on page 116). OS/2 will also become a full participant in IBM's SystemView strategy and more products will be delivered to support the process of fault reporting, remote diagnosis, asset management, software delivery and maintenance. It is easier to provide this support on a true multi-tasking platform, which can accommodate administrative processes or threads capturing management data, while processing its normal local applications. The limitations of DOS (and therefore of Windows) confine the function that can be provided to such systems. PRESENTATION MANAGER FUTURES ____________________________ PM is the strategic SAA API for GUI development. IBM is fully committed to its continued support and future enhancements. It has not been announced yet how and in what timeframe the following will be delivered in product form, but they represent some of the areas for future development: 32-BIT IMPLEMENTATION It is planned that the internals of PM will be migrated to a full 32-bit implementation. (In OS/2 2.0, a full 32-bit API is already provided - future changes simply affect the way PM works internally). This will give improved performance (it is anticipated that this change may improve performance for many applications running on the Workplace Shell desktop). The first stage of this is being provided in the Service Pack available by the end of 1992, with the 32 bit PM Graphics Engine. Later work will move the PMWIN subsystem to a full 32 bit implementation. In addition, parts of PM are currently written in 16-bit Assembler, and are being rewritten in C for greater portability in preparation for a move to a portable version of OS/2. Futures 127 CONTINUING OBJECT-ORIENTED DIRECTION PM already exhibits some characteristics of an object-oriented environment, especially in programming for the Workplace Shell and the System Object model (SOM) - see "System Object Model (SOM)" on page 103 . This direction will continue, not only in the method of programming, but also in the user interface, driven by the increasing object-orientation of SAA Common User Access (CUA). SOM itself will evolve to offer increasing object content to OS/2. DISTRIBUTED PM This technology will allow an OS/2 PM application to be distributed across a network to other OS/2 PM systems, to X Terminals or workstations running the X Window system, or to DOS/Windows machines running an X server. This means that 32-bit OS/2 PM applications will be made available to 286 based DOS/Windows or OS/2 1.x PCs, and X terminals or workstations connected to the OS/2 PM application via a network using the X11 protocol. In essence, the OS/2 PM application acts, in X terminology, as an X client. X server function (where an application running on a UNIX RISC machine can appear in a window on a PC running OS/2) has already been delivered with TCP/IP for OS/2 v1.2. These developments allow OS/2 to integrate more fully into the open systems world as well as providing a wider user base for OS/2 PM applications. OBJECT-ORIENTED ENVIRONMENTS ____________________________ In looking ahead to the future, a key challenge to the IT industry, customer and commercial developers alike, is the ability to deliver software solutions in a more timely and cost effective manner. Object-oriented (OO) technologies have proven to make software development and maintenance easier, faster, less prone to error, and therefore less expensive. Object-oriented programming is now being endorsed by the software industry as a more productive programming approach, encouraging greater re-use of code. It is also more suitable for object-oriented user interfaces, like OS/2 2.0's Workplace Shell. One of IBM's goals for Personal Systems operating systems is to provide an object-oriented development and operational environment that is customisable, allowing developers and users to take incremental advantage of new technologies, while protecting their investments in existing applications. We are well on our way to achieving this with OS/2 2.0. OS/2 itself already exhibits many aspects of object-oriented programming, particularly in the System Object model (SOM), the object model that underpins the Workplace Shell (see "System Object Model (SOM)" on page 103). Furthermore, the Workplace Shell itself has many characteristics of an object-oriented user interface (see "An INFORMATION-oriented user interface" on page 89) IBM also intends to encourage object-oriented development for OS/2 2.0. OS/2 will continue to be enhanced with extensions to improve support for object-oriented programming languages, as well as enhancing SOM. SOM is a Futures 128 technology for packaging software objects. It allows objects to interoperate without requiring that they be written in the same language or compiled together. SOM is the key element which allows applications to integrate with the desktop facilities of the Workplace Shell. It supports objects written in C today. C++ and other languages will be supported in the future. IBM intends to extend SOM, to provide application frameworks to further increase programmer productivity, and to provide tools to assist end users with visual programming (assembly of objects). IBM will enhance SOM to be compliant with the Object Management Group's (OMG's) Common Request Broker Architecture (CORBA). OMG is the leading object technology consortium that has published CORBA. Adherence to this standard will provide management for distributed heterogeneous networks comprised of multivendor operating platforms. Customers can start to build applications with object-oriented tools today under OS/2, not only with C using SOM, but also with products like Enfin/2 and Digitalk's Smalltalk/V PM . Furthermore, Borland have announced an agreement with IBM under which Borland will supply their C++ object-oriented development tools for OS/2 2.0, thus helping programmers who want to use C++ for object-oriented development under OS/2 2.0. Other object-oriented development tools vendors are also endorsing the OS/2 environment by supplying their tools for OS/2 2.0. IBM has made significant investments of its own in object-oriented programming, of which SOM and the Workplace Shell are clear examples. Through alliances, IBM is supplementing its own technology with that of the leaders in the object-oriented industry, in order to provide for the future development of OS/2. The agreement between IBM and Apple, announced in October 1991, included both companies' intention to form a joint venture company, Taligent, to develop a next-generation operating environment based entirely on object-oriented (OO) technology. IBM and Apple had independently come to the conclusion that object-oriented technology is key to solving the ever-increasing application development challenge. The two companies had been involved in developing object-oriented technology in-house for some time. One of the key objectives in forming Taligent was to bring the benefits of this technology to customers sooner than either partner could have achieved alone. IBM will licence Taligent's system, as will Apple and other hardware system manufacturers. IBM and Apple are both contributing technology to the Taligent venture. Among Apple's contributions was their "Pink" technology and among IBM's offerings was SOM. Taligent's technology will be used separately by both Apple and IBM as the core of new products expected in the mid- to late-90s. These products will operate in parallel to, and complement the evolution of, OS/2 and AIX. Over time IBM intends to utilize a subset of Taligent's object services and frameworks to benefit OS/2 application development and enable future compatibility with Taligent's environment. Taligent's system software environment will emerge in the mid-90s, targeted at specific market segments that can readily leverage this technology. Once the Taligent system is available, IBM intends to create an OS/2 "personality" Futures 129 as a vehicle for protecting application investments. This will provide a path for customers who want to take advantage of the Taligent system. Therefore, in the mid to late 90s, OS/2 and the new object-oriented environment will co-exist, and customers will be able to choose between an OS/2 system or a full object-oriented environment. But even then, not all customers may need or want to adopt a full object-oriented environment, and will stay with OS/2 as OS/2's object-oriented content increases. OS/2 will remain the mainstream IBM Personal Systems operating system, and will continue to be developed and enhanced through the 90s. Since OS/2 itself will become increasingly more object-oriented, and its applications will run in the new environment, evolution towards a full object-oriented environment can be made gradually and seamlessly over time. IBM believes there will continue to be many customer and hardware requirements that demand OS/2, after the availability of Taligent. +---------------------------------------------------------------------------+ | | | | +---------------------------------------------------------------------------+ Figure 29. OS/2 - an object-oriented future This approach is possible because OS/2 2.0 already contains many object-oriented features, such as the System Object Model, and the Workplace Shell user interface. Because of OS/2's object-oriented content, and because OS/2 applications will continue to run in the new system, OS/2 is the platform best suited to evolve towards a fully object-oriented environment. Some have tried to suggest that IBM's direction towards a future object-oriented environment in some way threatens OS/2. The opposite is the case: the IBM-Apple announcement endorses and strengthens the OS/2 strategy. Since OS/2 already displays significant object-oriented content, and since OS/2 applications will be fully supported in the new object-oriented environment, it follows that using, programming for and deploying OS/2 is an excellent way to secure an object-oriented direction. If the future is object-oriented, OS/2 is the way to get there. DISTRIBUTED COMPUTING _____________________ IBM recognises the increasing importance of open networking, linking to mixed vendor environments, both clients and servers. In May 1990 the Open Software Foundation (OSF) announced the Distributed Computing Environment (DCE), a group of technologies aimed at simplifying the work for users and application developers in these complex computing environments. In endorsing DCE, IBM subsequently announced not only support for DCE on AIX but also the intent to extend the Systems Application Architecture (SAA) to incorporate key elements of DCE. As one of the SAA systems, OS/2 will be a platform for the delivery of the key elements of DCE. For those not familiar with DCE, it consists of a number of key technologies. Of these, six are of particular interest for distributed environments including OS/2, and can be summarised as follows: Futures 130 REMOTE PROCEDURE CALL (RPC) The basic notion is that procedures called by an application may actually be run on a computer somewhere else in the network. The RPC mechanism takes care of the communications details so that writing distributed applications approaches the simplicity of applications on a single machine. DISTRIBUTED NAMING SERVICE This provides a single naming model throughout the distributed environment. Resources such as servers, files, disks, or print queues are identified by name independent of the physical location in the network. Full X.500 support is provided. TIME SERVICE Many distributed applications need a single time reference to properly determine event sequencing and duration. The time service provides a mechanism for synchronising each computer in the network to a recognised time standard. SECURITY SERVICE Provides the network with authentication, authorisation, and user account management. Authentication validates the identity of a user or service to prevent fraudulent requests. Authorisation is the process of determining whether an authenticated user should have access to a resource. These facilities are made available through a secure communications capability provided by the RPC. THREADS SERVICE A facility to support concurrent programming, much like threads in OS/2. This will be used by other DCE components to implement their services. DISTRIBUTED FILE SYSTEM Joins the file systems of the nodes in the network through a consistent interface that makes global file access as easy as local file access. The Distributed File System should provide users with a uniform name space, file location transparency, and high availability. IBM's intention is that OS/2 LAN Server will evolve towards a full distributed LAN system, providing DCE services as described above. OS/2 LAN Server will incorporate architectures and industry standards which fully meet customer requirements and will include technologies such as: o Distributed Relational Database Architecture (DRDA) o Open Software Foundation (OSF) Distributed Management Environment (DME) o OSF's Distributed Computing Environment (DCE) o Transarc/ENCINA Online Transaction Processing OS/2 is a key part of IBM's plans for the delivery of key elements of distributed computing. IBM has already shown technology demonstrations of OS/2 participating in a distributed environment along with AIX. Distributed computing support will make OS/2 an even more open platform, as both a client and a server. Futures 131 AIX INTEROPERABILITY ____________________ IBM is committed to providing greater co-existence and interoperability between SAA and AIX systems. OS/2 will participate in this strategy. This does not involve merging function, but retaining the unique strengths of the two systems. The aim is to make it easier for customers to build mixed networks combining the best of both OS/2 and AIX, RISC and Intel hardware, according to their applications. Part of this strategy involves putting compatible key systems components, such as relational database, on both platforms. As well as providing a 32-bit database on OS/2 in future, IBM will also provide a compatible 32-bit database for AIX, and support client operations between AIX and OS/2 databases. Another element of the strategy is to improve co-existence by providing networking support. Products like TCP/IP for OS/2, already exist to fulfil this requirement, and IBM intends to strengthen OS/2-AIX inter-networking in future through DCE, DME and other technologies. FUTURE WINDOWS COMPATIBILITY ____________________________ OS/2 2.0 supports Windows 3.0 applications by including modified Windows code under the cross-licencing agreement with Microsoft. The March 1992 release of OS/2 2.0 does not contain support for Windows 3.1, since at the time when OS/2 2.0 shipped, Windows 3.1 was not available. It would be impossible to plan support for a product that had not shipped by the time OS/2 2.0 was available. IBM plans, and is able, to support Windows 3.1 at a later point, if it proves necessary (see "OS/2 1992 developments" on page 123 and "Windows 3.1" on page 74). In fact, on April 7th, 1992, the day after Microsoft shipped Windows 3.1, IBM demonstrated the Windows 3.1 Program Manager running under OS/2 2.0. It is important to understand that OS/2 2.0 supports Windows APPLICATIONS, ____________ not Windows. Windows support in OS/2 is only relevant for the Windows applications that OS/2 customers wish to use. IBM continues to licence the DOS/Windows source code, and has rights to all source code in development until September 1993, in order to continue to provide support for 16-bit Windows applications. Microsoft has not made its future plans clear on 16-bit Windows application support, but it may be difficult for Microsoft to persuade its customers to accept future versions of 16-bit Windows that do not support today's 16-bit Windows applications. IBM considers that it has the ability to provide support for today's generation of Windows 16-bit applications, as long as is necessary. There are, as yet, no 32-bit Windows applications available, because Microsoft does not plan to ship its first 32-bit Windows platform until some time in 1993. However, there are a growing number of OS/2 applications: hundreds are already shipping, and over 1000 have been announced for shipment by the end of 1992 or early 1993. OS/2 will therefore have the largest number of 32-bit applications for some time. Therefore, the trend in the marketplace towards real 32-bit applications, and the continuing success of OS/2, may make Windows support a moot point. The issue may be rather what levels of OS/2 32-bit compatibility can Microsoft build into their future products. Futures 132 Since many of the applications currently available or under development for 16-bit Windows 3.x will also be available for 32-bit OS/2, future Windows compatibility may cease to be an issue, since running native OS/2 versions of applications will be superior to running the Windows versions even in WIN-OS/2 (see "Porting Windows applications to OS/2" on page 75). Support for Windows applications is intended mainly as a migration to OS/2 2.0, but investment in Windows applications should not be considered a long-term strategy for customers planning an OS/2 future. Many vendors now understand the need to provide real OS/2 versions of their software for competitiveness' sake, and are not relying on running their Windows version under OS/2 to address the OS/2 opportunity properly. Furthermore, the evidence suggests (see "Windows applications" on page 57) that Windows applications have not made anything like the same impact on the market as Windows itself. IBM will continue to monitor the continued need for supporting Windows applications, and will exercise its skills and intellectual rights to do what its customers require. PORTABLE VERSION OF OS/2 ________________________ The joint IBM-Microsoft statement at Comdex in November 1989, indicated that both companies were committed to producing a version of OS/2 that could run on non-Intel processors such as RISC, and include US Department of Defense security at the C2 level and symmetric multiprocessing. IBM remains committed to this direction. The most important part of the work in portability lies in ensuring that APPLICATIONS are easily portable to any new platform. The other element of ____________ portability is to provide a portable operating system kernel (the low level code that interfaces with the processor). In fact, the importance of the latter has often been exaggerated in relation to the former: there is no point in having a portable kernel if you cannot move your applications easily. IBM has already made great progress in the first step with the 32-bit OS/2 API, which eliminates many of the dependencies of the 16-bit Intel-based architecture. This provides the potential of a 32-bit code base which is ready to take advantage of a future move of the kernel to other processors. The kernel may change underneath, but the API must be established and preserved. It is also clear in the design of OS/2 2.0 how IBM is already preparing many of the key components of OS/2 (such as the subsystems like PM and the Workplace Shell, and the API set) for easier portability and to accommodate future directions. In contrast, although Microsoft has publicised its portable kernel, the other elements required for portability, specifically a full 32-bit API with multi-threading, interprocess communications and advanced graphics, are not yet delivered. And it is unclear from their public disclosures about Win32s (see "OS/2 - a 32-bit API - TODAY" on page 84) how to make a straightforward migration to take advantage of RISC, without changes to the code base. The Windows API today remains 16-bit, and 32-bit exploitation, including the full benefits of portability, remain a future promise. As for the choice of kernel, IBM has a variety of options, through licencing agreements. IBM is working on a range of technologies, and will announce its Futures 133 direction when it has fully evaluated the available technology in the light of customer requirements. Suffice it to say that although the "NT" in Microsoft's future system, Windows/NT, stands for "New Technology," the idea of a portable micro-kernel is not new, and other examples already exist in a mature form, including the OSF's micro-kernel based on the Carnegie-Mellon Mach technology. IBM has chosen not to integrate Windows/NT code into its future offerings. But NT is by no means the only way of achieving the objectives stated in November 1989. As far as customers and application developers are concerned, if portability is a key issue, 32-bit application development under OS/2, rather than migration from 16-bit DOS and its extensions, is the clearer path. CONCLUSION __________ OS/2 is therefore not only taking advantage of today's requirements, and the wide range of DOS, Windows and OS/2 applications that already exist, but provides an immediate future for powerful 32-bit developments, including a 32-bit API and the potential to integrate with the new OS/2 Workplace Shell user interface. The requirements of the workstation of the late 1990s for an object-oriented platform supporting multimedia, DCE and systems management, can only be served by a robust, architected 32-bit platform. That platform is OS/2. Futures 134 APPENDICES __________ Appendices 135 APPENDIX A. COMPARISON TABLES ______________________________ DOS ENVIRONMENTS ________________ The following notes refer to the table on the next page. NOTES: 1. See "Comparison with memory usage under DOS" on page 41, "Amount of memory" on page 20 and "Memory" on page 60. 2. See "MVDM memory management" on page 23 and "Expanded and Extended Memory" on page 43. Also see "Standard mode" on page 55 for Windows 3.x's EMS support. 3. The phrase "none/switch" means that no individual DOS application can overcommit memory, but the real mode portion can be moved to disk to make room for another DOS application. However, extended or EMS memory allocated by the application is not switched to disk. OS/2 1.3 can swap the DOS application to disk when running protected mode applications. Windows 3.x 386 enhanced mode can overcommit up to four times the physical memory on the machine. OS/2 2.0 is limited only by the amount of available disk space. 4. Although the default is to swap through the file system, Windows 3.x 386 enhanced mode does allow swap space to be pre-allocated, and gain improved performance by avoiding the DOS file system. Because this disk space is pre-allocated, none of it is available to be shared dynamically for any other use. OS/2 2.0 implements access to the swap space via the file system for both FAT and the HPFS. The OS/2 2.0 implementation provides the flexibility of a dynamically sized swap file combined with good performance. 5. OS/2 2.0 and Windows 3.1 provide windowing of DOS applications on the Workplace Shell desktop in all text and VGA graphics modes, while Windows 3.0 only supports windowing of text and CGA modes. According to Microsoft, Windows/NT will not support windowed VGA graphics. 6. Although Windows 3.x does include a print spooler, and printing concurrently from DOS applications is not supported. Windows permits only one DOS application to print and requires that other DOS applications be suspended if they attempt to print concurrently. Use of a DOS print spooler (loaded prior to Windows 3.x.) is not a viable solution, since printing concurrently from multiple DOS sessions causes all the output to be jumbled together on the same page. Windows does warn of a device conflict in use of the printer in the latter case and offers a choice on how to proceed, but whatever the choice made, the same incorrect output results. OS/2 2.0 provides correct spooling of printer output from concurrent DOS applications. Appendix A. Comparison tables 136 7. Some DOS applications are extremely timing sensitive, mostly communications applications using high data rates. These are supported in all systems when the application is in the foreground. However, in DOS, OS/2 1.3., Windows 3.0 real mode, and Windows 3.x standard mode, the application is suspended while in the background and so cannot satisfy any timing constraint. In 386 enhanced mode, Windows 3.x provides the option of setting exclusive mode, so a timing sensitive application can be run in the foreground without interference due to time slicing. However, all other applications are suspended while this DOS application is running in this mode. In some cases the need for exclusive mode can be avoided by manually adjusting the relative priorities. The ability to dynamically manage priorities permits OS/2 2.0 to multi-task timing critical applications both in the foreground and background. Detailed configuration of idle time detection is also possible in the DOS Settings (see "DOS Settings" on page 47). 8. Although Windows 3.1 has addressed some of Windows' limitations in terms of stability, it is still based on DOS, and therefore still prone to problems caused by DOS-based TSRs which take the system out of protected mode into real mode (see "Reliability and protection" on page 44 and "Reliability" on page 61). Appendix A. Comparison tables 137 +---------------------------------------------------------------------------+ | Table 9 (Page 1 of 2). Comparison of DOS environments | +-------------------------+------+------+---------------------+------+------+ | | | | WINDOWS 3.0 ON IBM | WIN | | | | | | DOS 5.0 | 3.1 | | | | | +------+-------+------+ ENH | | | | | | | | | MODE | | | | IBM | | | | | WITH | | | | DOS | OS/2 | | | | DOS | OS/2 | | | 5.0 | 1.3 | REAL | STANDA|DENHAN|ED5.0 | 2.0 | +-------------------------+------+------+------+-------+------+------+------+ | Conventional Memory | 622 K| 529 K| 558 K| 571 KB| 569 K| 577 K| 633 K| | - with EMS & Mouse (1) | 601 K| | | | | | | ___ +-------------------------+------+------+------+-------+------+------+------+ | Memory w/ LAN Attach | 543 K| 486 K| 386 K| 391 KB| 441 K| 477 K| 633 K| | - configured as PCLP Rec|iver | | | | | | | +-------------------------+------+------+------+-------+------+------+------+ | Memory w/3270 Attach | 522 K| 495 K| 486 K| 492 KB| 541 K| 549 K| 633 K| +-------------------------+------+------+------+-------+------+------+------+ | Extended Memory (XMS) | 16 MB| none | 16 MB|(16tMB)|t16aMB|(16tMB|(16tMB|per app) +-------------------------+------+------+------+-------+------+------+------+ | EMS 4.0 Memory(2) | 16 MB| none | 16 MB|(nonel)| 16 MB|(16tMB|(32tMB|per app) ___ +-------------------------+------+------+------+-------+------+------+------+ | | +-------------------------+------+------+------+-------+------+------+------+ | Physical RAM for DOS | 0-1 M| 0-640|K0-1 M| 0-1 MB| Any/P|gAny/P|gAny/P|ged +-------------------------+------+------+------+-------+------+------+------+ | Memory Overcommit(3) | None/|wNone/|wNone/|wNone/S|i4c* R|M4 * R|MAvail|Disk ___ +-------------------------+------+------+------+-------+------+------+------+ | Swap File(4) | File |yFile |yFile |yFile S|sPhysi|aPhysi|aFile |ystem ___ | | | | | | (Prea|l(Prea|l(Dyna|ic) | | | | | | or Fi|eoryFi|e Syst|m +-------------------------+------+------+------+-------+------+------+------+ | | +-------------------------+------+------+------+-------+------+------+------+ | Number of DOS Apps | 16 | 1 | 16 | 16 | 16 | 16 | >32 | +-------------------------+------+------+------+-------+------+------+------+ | Background Execution | No | No | No | No | Yes | Yes | Yes | +-------------------------+------+------+------+-------+------+------+------+ | | +-------------------------+------+------+------+-------+------+------+------+ | Invocation | Shell|CIcon | Icon | Icon | Icon | Icon | Icon | +-------------------------+------+------+------+-------+------+------+------+ | Windowed(5) | No | No | No | No | Yes | Yes | Yes | ___ | | | | | | (Text| (Text| (Text| VGA) +-------------------------+------+------+------+-------+------+------+------+ | Cut & Paste | No | No | Yes | Yes | Yes | Yes | Yes | +-------------------------+------+------+------+-------+------+------+------+ | Print Spooling(6) | Yes | Yes | No | No | No | Yes | Yes | ___ +-------------------------+------+------+------+-------+------+------+------+ | Installable File System | No | Yes | No | No | No | No | Yes | +-------------------------+------+------+------+-------+------+------+------+ | | +---------------------------------------------------------------------------+ Appendix A. Comparison tables 138 +-------------------------+------+------+------+-------+------+------+------+ | Direct Hardware Access | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +-------------------------+------+------+------+-------+------+------+------+ | Timing Dependent Apps.(7| Foreg|oForeg|oForeg|oForegr|uExclu|iExclu|iForeg|ound/ ___ | | | | | | (Manu|l(Manu|lBackg|ound | | | | | | | | (Auto|atic) +-------------------------+------+------+------+-------+------+------+------+ | | +-------------------------+------+------+------+-------+------+------+------+ | DPMI | No | No | No | No | Yes | Yes | Yes | +-------------------------+------+------+------+-------+------+------+------+ | VCPI and DOS Extenders | Yes | No | No | No | No | No | No | +-------------------------+------+------+------+-------+------+------+------+ | | +-------------------------+------+------+------+-------+------+------+------+ | Continues after serious | Rarel| Rarel| Rarel| Rarely| Somet|mOften| Yes | | Application errors (8) | | | | | | | | ___ +-------------------------+------+------+------+-------+------+------+------+ OS/2 2.0 COMPARED WITH WINDOWS 3.0/3.1 ______________________________________ +---------------------------------------------------------------------------+ | Table 10 (Page 1 of 6). OS/2 2.0 compared to Windows 3.0/3.1 | +-------------------------------------+------------------+------------------+ | | WINDOWS 3.1 | OS/2 2.0 | +-------------------------------------+------------------+------------------+ | Hardware | ________ +-------------------------------------+------------------+------------------+ | Processor | 286; 386SX+ (1) | 386SX+ | ___ +-------------------------------------+------------------+------------------+ | Minimum hard drive | Approx 9MB | Approx 13MB | +-------------------------------------+------------------+------------------+ | Hard drive for Full install | 11MB - plus 50% | 27.6MB | | | of remaining | | | | partition for | | | | swap file | | | | (default) (2) | | ___ +-------------------------------------+------------------+------------------+ | Largest hard drive | 1GB | 64GB (HPFS) | +-------------------------------------+------------------+------------------+ | Largest file size | 1GB | 2GB | +-------------------------------------+------------------+------------------+ | SCSI exploitation | No | Yes | +-------------------------------------+------------------+------------------+ | File System options | FAT only | Enhanced FAT or | | | | HPFS | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ | Memory | ______ +-------------------------------------+------------------+------------------+ | Physical Memory Limit | > 16 MB | > 16 MB | +-------------------------------------+------------------+------------------+ Appendix A. Comparison tables 139 +---------------------------------------------------------------------------+ | Table 10 (Page 2 of 6). OS/2 2.0 compared to Windows 3.0/3.1 | +-------------------------------------+------------------+------------------+ | | WINDOWS 3.1 | OS/2 2.0 | +-------------------------------------+------------------+------------------+ | Virtual Memory Limit | 4 x Physical | 512 MB per | | | | process (or Disk | | | | space) | +-------------------------------------+------------------+------------------+ | Memory Model | Segmented (64 | Flat memory | | | KB) | objects | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ | Multi-tasking (3) | _____________ ___ +-------------------------------------+------------------+------------------+ | Multi-tasking - DOS Applications | Time Slicing | Pre-emptive Time | | | | Slicing | +-------------------------------------+------------------+------------------+ | Multi-tasking - Windows & OS/2 Apps | Co-operative | Pre-emptive | +-------------------------------------+------------------+------------------+ | Priority | Static (set by | Dynamic | | | user) | | +-------------------------------------+------------------+------------------+ | Dispatchability | Process | Thread | +-------------------------------------+------------------+------------------+ | System Services | Serial | Parallel / | | | | Overlapped | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ | Reliability/Protection (4) | ______________________ ___ +-------------------------------------+------------------+------------------+ | Protection between Applications | Limited | Protected | +-------------------------------------+------------------+------------------+ | Kernel protection - DOS | Limited | Protected | | Applications | | | +-------------------------------------+------------------+------------------+ | Kernel protection - Windows & OS/2 | Limited | Protected | | Apps | | | +-------------------------------------+------------------+------------------+ | Remains in protected mode (5) | No - access to | Yes | ___ | | real mode | | | | possible | | +-------------------------------------+------------------+------------------+ | Reliability/Availability/Service | None in 3.0. In | Standalone Dump, | | (RAS) Support (6) | 3.1: Error | Error Logging, | ___ | | Logging/Dump via | Trace Utilities | | | Dr.Watson; No | & APIs | | | Trace APIs or | | | | Trace formatting | | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ Appendix A. Comparison tables 140 +---------------------------------------------------------------------------+ | Table 10 (Page 3 of 6). OS/2 2.0 compared to Windows 3.0/3.1 | +-------------------------------------+------------------+------------------+ | | WINDOWS 3.1 | OS/2 2.0 | +-------------------------------------+------------------+------------------+ | Compatibility | _____________ +-------------------------------------+------------------+------------------+ | Multiple Concurrent DOS | Yes (enhanced | Yes | | Applications | mode only) | | +-------------------------------------+------------------+------------------+ | Windows 2.x Applications | No | Yes | +-------------------------------------+------------------+------------------+ | Windows 3.0 Applications | Most (7) | Most | ___ +-------------------------------------+------------------+------------------+ | Clipboard support | Windows and DOS | Windows, DOS and | | | only | OS/2 | +-------------------------------------+------------------+------------------+ | DDE support | Windows apps | Windows and OS/2 | | | only | apps | +-------------------------------------+------------------+------------------+ | OLE support | Yes | Yes | +-------------------------------------+------------------+------------------+ | 16-bit OS/2 Applications | No | Yes | +-------------------------------------+------------------+------------------+ | 32-bit OS/2 Applications | No | Yes | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ | Printing and Fonts | __________________ +-------------------------------------+------------------+------------------+ | Print spooling | Limited (8) | Yes, for all | ___ | | | applications | +-------------------------------------+------------------+------------------+ | Adobe Type Manager standard | No | Yes | +-------------------------------------+------------------+------------------+ | Network printing support | Some | Full (9) | ___ +-------------------------------------+------------------+------------------+ | Background printing performance | Unpredictable | Predictable (10) | ____ +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ | National Language Support | _________________________ +-------------------------------------+------------------+------------------+ | Number of Language Versions | 12 | 16 | +-------------------------------------+------------------+------------------+ | Data Interchange | ISO8859/CP819 | CP850 | | | (different from | (consistent | | | DOS) | throughout OS/2) | +-------------------------------------+------------------+------------------+ | Host connectivity/Interchange | 3rd party | Included in | | | | Extended | | | | Services for | | | | OS/2 | +-------------------------------------+------------------+------------------+ Appendix A. Comparison tables 141 +---------------------------------------------------------------------------+ | Table 10 (Page 4 of 6). OS/2 2.0 compared to Windows 3.0/3.1 | +-------------------------------------+------------------+------------------+ | | WINDOWS 3.1 | OS/2 2.0 | +-------------------------------------+------------------+------------------+ | Code Page | Single | Selectable | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ | Other Factors | _____________ +-------------------------------------+------------------+------------------+ | Full 32-bit APIs | No | Yes | +-------------------------------------+------------------+------------------+ | Concurrent High Speed Comms | Unreliable | Yes | +-------------------------------------+------------------+------------------+ | Background Comms (11) | Unreliable | Yes | ____ +-------------------------------------+------------------+------------------+ | OEM Hardware Support | Yes | Yes | +-------------------------------------+------------------+------------------+ | Development Tools | Yes | Yes | +-------------------------------------+------------------+------------------+ | Command Language | .BAT | .BAT, .CMD and | | | | REXX | +-------------------------------------+------------------+------------------+ | Installation migration for existing | Limited | Yes | | apps | | | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ | User Interface | ______________ +-------------------------------------+------------------+------------------+ | CUA compliance | Graphical Model | Workplace Model | | | ('89) | ('91) | +-------------------------------------+------------------+------------------+ | Icons representing non-loaded files | No (3rd party) | Yes | | on desktop | | | +-------------------------------------+------------------+------------------+ | Place icons anywhere on desktop | No (files in | Yes | | | File Manager, | | | | programs in | | | | Program Manager, | | | | printers - no | | | | icons) | | +-------------------------------------+------------------+------------------+ | Group windows | Single-layer | Multi-layer, | | | (can't put group | hierarchical | | | inside another | folders | | | group) | | +-------------------------------------+------------------+------------------+ | Customise GUI look/feel | No | Yes (Workplace | | | | Shell, Windows | | | | 3.x, OS/2 1.x) | +-------------------------------------+------------------+------------------+ Appendix A. Comparison tables 142 +---------------------------------------------------------------------------+ | Table 10 (Page 5 of 6). OS/2 2.0 compared to Windows 3.0/3.1 | +-------------------------------------+------------------+------------------+ | | WINDOWS 3.1 | OS/2 2.0 | +-------------------------------------+------------------+------------------+ | Context Menus | No | Yes | +-------------------------------------+------------------+------------------+ | Drag/Drop across entire Shell | Windows 3.0 - | Yes | | environment | No. Windows 3.1 | | | | - File Manager | | | | only | | +-------------------------------------+------------------+------------------+ | Object Management | No | Yes | +-------------------------------------+------------------+------------------+ | Graphical Install | Yes | Yes | +-------------------------------------+------------------+------------------+ | Intelligent fonts | Windows 3.0 - No | Yes (Adobe Type | | | (ATM separate | Manager for OS/2 | | | purchase). | & Windows - 1200 | | | Windows 3.1 - | fonts) | | | Yes (TrueType - | | | | 650 fonts) | | +-------------------------------------+------------------+------------------+ | Long file names | No | Yes | +-------------------------------------+------------------+------------------+ | Applets | Yes | Yes | +-------------------------------------+------------------+------------------+ | Consistent GUI logon | No - requires | Yes | | | Network vendor | | | | utility | | +-------------------------------------+------------------+------------------+ | Interactive Tutorial | Yes | Yes | +-------------------------------------+------------------+------------------+ | Command Reference | No | Yes | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ | Advanced Connectivity(12) | ____ +-------------------------------------+------------------+------------------+ | Client and Server platform | No | Yes | +-------------------------------------+------------------+------------------+ | Multiple Concurrent Protocols | Limited | Yes | +-------------------------------------+------------------+------------------+ | SNA LU6.2 | 3rd party | Yes | +-------------------------------------+------------------+------------------+ | APPN | 3rd party | Yes | +-------------------------------------+------------------+------------------+ | TCP-IP | 3rd party | IBM TCP-IP for | | | | OS/2 | +-------------------------------------+------------------+------------------+ | Systems Management | 3rd party | Various from IBM | | | | (13) | ____ +-------------------------------------+------------------+------------------+ Appendix A. Comparison tables 143 +---------------------------------------------------------------------------+ | Table 10 (Page 6 of 6). OS/2 2.0 compared to Windows 3.0/3.1 | +-------------------------------------+------------------+------------------+ | | WINDOWS 3.1 | OS/2 2.0 | +-------------------------------------+------------------+------------------+ | SQL Database Server | MS SQL Server | Yes | | | (requires OS/2) | | +-------------------------------------+------------------+------------------+ | SQL Database Client | 3rd party | Yes | +-------------------------------------+------------------+------------------+ | NFS | 3rd party | IBM TCP-IP for | | | | OS/2 | +-------------------------------------+------------------+------------------+ | X-Windows server | 3rd party | IBM TCP-IP for | | | | OS/2 | +-------------------------------------+------------------+------------------+ | | | | +-------------------------------------+------------------+------------------+ NOTES: 1. Although Windows 3.1 will run on a 286, this does not enable enhanced mode support, which is required to be competitive with OS/2 function (multi-tasking DOS applications, demand paging, 32-bit support). 2. See "Disk space" on page 149 3. See "Multi-tasking of DOS applications" on page 40, "Multi-tasking" on page 28 and "Performance" on page 62 4. See "Reliability" on page 61, "Reliability and protection" on page 44 and "Protected mode operation" on page 15. 5. See "Reliability" on page 61, "Reliability and protection" on page 44 6. Windows 3.1 uses Dr.Watson, OS/2 2.0 uses SYSLOG and Standalone Dump 7. Windows 3.1 will not run some Windows 3.0 applications, which will need updates. Compatibility notes are listed in the APPS.HLP file. Several Windows 3.0 applications need updated versions to run on Windows 3.1. OS/2 2.0 runs all but a very small minority of Windows 3.0 applications, as well as all the Windows 2.x applications that Windows 3.1 will no longer support (no real mode support provided) - see "Real mode (NOT AVAILABLE IN WINDOWS 3.1)" on page 54 and "386 Enhanced mode" on page 66 8. Print spooling is not provided by Windows 3.1 for DOS applications, only for Windows applications. OS/2 2.0 provides print spooling for DOS, Windows and OS/2 applications 9. OS/2 2.0 has extensive user print management capabilities (40 APIs vs 12 APIs in Windows 3.1) for querying, holding, releasing and deleting jobs (including a graphical view of job and queue status). Appendix A. Comparison tables 144 10. OS/2 consistently outperforms Windows with background print operations, in multi-tasking environments 11. See notes on Background Execution in Appendix A on DOS applications. 12. OS/2 2.0's "Yes" answers here are all using Extended Services for OS/2 except where stated. It is important to note that the Windows column refers to Windows specific programs (i.e. written to explicitly take advantage of Windows GUI, memory addressability, or time-slicing). Although there are many DOS connectivity options, and they may be usable under Windows, the integration of these complex subsystems and any co-residency of two or more options (eg TCP/IP and SNA) is completely the responsibility of the customer as a custom integration effort. Moreover, Windows on DOS has substantial architectural limitations which make multiple network connections difficult to integrate than under OS/2 (lack of memory, lack of protection, and weak multi-tasking support). OS/2's base environment provides tools and system support designed to allow this type of multi-connectivity installation. Besides, all the extra software required for these functions under OS/2 comes from IBM, and one can therefore anticipate a greater degree of integration (see "OS/2 for client-server" on page 109). 13. See "Systems management" on page 116 Appendix A. Comparison tables 145 APPENDIX B. HARDWARE REQUIREMENTS AND PERFORMANCE __________________________________________________ The main reference to OS/2 system requirements is the OS/2 2.0 Information and Planning Guide (G326-0160-00), and the equivalent guides for Extended Services for OS/2 and OS/2 LAN Server. Anyone planning installation of OS/2 across several workstations should obtain these guides. In this section we will discuss only the key issues - for the detail, you should consult the Information and Planning Guide. This section only discusses issues relating to the base system, not to the extensions, though many of the principles apply to both. MINIMUM REQUIREMENTS ____________________ OS/2 2.0 is designed for personal computers with the following minimum requirements: o Intel (or compatible) i386SX microprocessor or above o 4MB of memory o 60MB hard disk with 15-30MB of free disk space o 2-button mouse or other pointing device Please note that this is a minimum. Many will be satisfied with this __ configuration if simple tasks are undertaken, but for more powerful multi-tasking and larger applications, more memory may be required. There is a trade-off to be made between memory and performance, in particular: OS/2 can work around a limit in physical memory by swapping to disk, but since disk access is slower than memory access, this will tend to reduce overall performance, which will show itself more in switching between applications than in the performance of an individual session. OS/2 2.0 will not run on machines equipped with an Intel 80286 processor. Therefore, computers such as the IBM PC AT, PS/2 Model 30-286, and Models 50, 50Z, and 60 cannot be used with OS/2 2.0. However, OS/2 2.0 does support non-386 based machines that have been upgraded with a 386 or 486 processor using the Aox Micromaster, Intel SnapIn, or Kingston SX/Now! card. In addition, OS/2 2.0 is supported on a broad range of IBM-compatible systems, including models from Compaq, AST, Olivetti, Toshiba, Hewlett Packard, Dell, Gateway, Wang, DEC, NCR, Tandy, ACER, CompuAdd and many others. The certification of compatibility is based on IBM's tests of key functions of OS/2 2.0, based on selected model configurations provided by the manufacturers of these non-IBM hardware systems. Test results are available on CompuServe, IBM Forums (OEM and OS2ARENA), and other bulletin boards. If you need additional information, please consult your hardware supplier. If you are using a specific model, and wish to have it certified, please check with your IBM representative or Authorised Dealer. If it has not been tested by IBM, IBM welcomes your help in making contact with the manufacturer to Appendix B. Hardware requirements and performance 146 have the machine tested. IBM wishes to make the range of OS/2 compatibility as broad as is possible. In practice, OS/2 has been designed to operate correctly with a wide range of hardware, and the evidence from many of the users who have registered their copies already (see "Broad hardware support" on page 35) indicates that OS/2 2.0 is already running on a large number of different machines. PROCESSOR _________ Because of its 32-bit addressing power, the OS/2 2.0 operating system requires a computer that has a system unit equipped with an Intel (or compatible) i386 (or higher) microprocessor. The i386SX microprocessor provides adequate performance for those who work in lower-demand application environments. In most environments that demand multiple concurrent processes, the i386DX will be adequate for satisfactory performance. The IBM 386SLC chip offers high performance from a 386SX design, and along with the new 486SLC chip, offers outstanding price-performance for an OS/2 system. Systems equipped with the 386SLC represent a viable entry point for a multi-tasking OS/2 client. 486SLC-based systems represent an excellent option for throughput even of heavy multi-tasking loads. With prices of 486SX systems being reduced, they can be a cost-effective option for client workstations. For computers that will be used as network servers, consider the i486 series. Also consider the 486 as a base processor for those who expect to switch frequently and rapidly among a large number of concurrent tasks. MEMORY SIZE ___________ Memory and disk storage are closely related because of the ability of the operating system to manage the allocation of memory resources between real physical memory and hard disk space. In general, it is important, when calculating memory and disk requirements, to work on the concept of "working set," in simple terms the sum of physical memory and swap file size. The balance of physical memory installed versus swap space is key to determining overall performance - the more working set is gained from swap space rather than physical memory, the lower overall system performance. 4MB is adequate for an entry-level workstation running few tasks. This enables users to run applications or other system utility programs concurrently, but it presents a constrained environment (limited memory) for some large applications. In limited memory configurations, performance of applications might be reduced, particularly when the operating system is loading an application or switching from one application to another or to the desktop. This is as a result of paging, as the code required is loaded to memory from disk, and the least recently used memory is paged to disk to make room. Although more tasks can be accommodated by swapping, performance degradation would suggest more memory would be required for more intensive multi-tasking. However, an OS/2-only workstation (ie no DOS or Windows applications) with a LAN requester can perform acceptably in a 4-5MB configuration. This Appendix B. Hardware requirements and performance 147 indicates that the entry level configurations are suitable for some client scenarios. To estimate probable working set requirements, estimate 2.5MB for the base system without any applications, 0.6MB per concurrent DOS session, and 1MB per concurrent WIN-OS/2 session. (The latter two figures assume the default amounts of XMS, EMS and DPMI memory installed, which are 2048K, 2048K and 2MB respectively - the actual figure may therefore be more, or less, depending on the settings chosen.) Thus a system running DOS and Windows applications can run satisfactorily in 6MB. A connected workstation (eg LAN requester plus 3270 emulators) will require around 8MB (though note the low entry point above for OS/2-only clients with just a LAN requester). The amount of memory installed can be an important factor in performance, particularly when swapping between applications. Since working sets of 1-2MB or more are being switched, the performance difference between a 4MB and a 6MB configuration can be substantial; a further increase to 8MB is appreciable, but not usually to the same extent. The system tends to handle overcommitment on memory well above the 8MB point. Large applications and heavy multi-tasking will benefit from 8MB or more. Though adding more memory inevitably adds to the cost of the system, it is to be remembered that the cost of memory is decreasing. Although OS/2 2.0 will tend to require more memory than Windows 3.1 for equivalent software configurations, the cost of the memory will often be less than $100 at today's memory prices. Many customers are finding that the extra costs for memory are compensated by the increased function and stability that OS/2 offers. Customers hoping to achieve the combination of a 32 bit, stable multitasking platform, on an affordable hardware configuration, may consider this trade-off between function and system requirements. Furthermore, independent analysts have predicted that Windows/NT will require an even higher configuration than OS/2 2.0. Gartner Group has told its customers that it believes "a mainstream platform for Windows/NT will be a 486DX with 12 to 16 megabytes of RAM (and up) on the workstation"(24). It is to be remembered that in all the above estimates for OS/2 memory requirements, results will vary with the configuration of the machine and the applications run. Also, performance is a subjective matter - few people agree on what is acceptable relative to the cost of a configuration. Customers are recommended to carry out their own benchmarks to assess the most suitable configuration for their requirements. --------------- (24) Gartner Group - Personal Computer Research Notes, P-230-853, July 31, 1992 Appendix B. Hardware requirements and performance 148 DISK SPACE __________ The requirements stated in this section are for the operating system, swap space, and print spool jobs. They do not consider space required for extra applications and data. Although the maximum space required for OS/2 installation is 27.6MB plus swap space, the minimum installation can be as little as 12.7MB (no DOS or Windows support), 14.6MB (DOS, but no Windows support) and 16.9MB (DOS and Windows support). These are taken from the cumulative total in the selective install option; the total in each of these scenarios can be lower still by eliminating selected files after installation. Typical scenarios will require less than 20MB and sometimes only 15MB. The decision of whether to install certain components can make a large difference to the space taken: WIN-OS/2 requires 3MB, Productivity applications 1.3MB, tools and utilities 3.6MB and games 0.8MB. The optional systems utilities (eg BACKUP, ATTRIB, TREE, RECOVER, SORT), which are often removed after installation on both OS/2 and DOS machines, take up 1.2MB. The amount required for swap space will vary according to system load. The system allocates a minimal swap file on loading; this defaults to a figure based on the physical installed memory (the Information and Planning Guide has a table with the detailed figures), for example, a 6MB swap file for a system with 4MB of memory, a 4MB swap file for an 8MB machine. The figure can be modified by the user at installation time, or later by modifying the SWAPPATH parameter in CONFIG.SYS. The installation program also allows the user to set the location of the SWAPPATH to a different partition. This can be a good idea if the main partition is 30MB or less. If you are choosing the type of machines to use as OS/2 machines, remember that for any environment that uses virtual memory (swapping to disk to create more memory), a fast disk is recommended. This is an important factor, especially for those who expect to switch frequently and rapidly among a large number of concurrent tasks. Some figures in the industry have criticised the amount of space taken by OS/2 2.0, but there is always a cost associated with high function. In fact, if you consider what OS/2 offers: o a full DOS environment o a complete Windows environment o a copy of the OS/2 kernel and system, with compatibility for both 16- and 32-bit applications o a font manager for both OS/2 and Windows (ATM), plus associated fonts o a series of utilities, including a file search tool, a charting package, and a personal organiser o an object-oriented graphical shell and then compare the likely disk space required to assemble all this function under either DOS or Windows (here are some suggested equivalents): o DOS version 5.0 o Windows 3.0 or 3.1 Appendix B. Hardware requirements and performance 149 o ATM for Windows o (For example) XTree Gold, Micrografx Charisma, and Polaris Packrat o Norton Desktop for Windows then it is likely you have taken at least as much space (and probably more) than OS/2 2.0. (And that's ignoring the extra monetary cost of acquiring these separate third party applications.) Furthermore, the differences between Windows 3.1 and OS/2 2.0 in disk space are exaggerated. Although Windows will nearly always take less for the base installation, you can see from the above figures that OS/2 2.0 can come within 3 or 4MB of the Windows total. Moreover, the figures quoted by many people do not mention the fact that if you choose, during Windows installation, to have a permanent swap file (chosen by many Windows users to gain acceptable performance), the default is to take 50% of the free space on your partition. This can result in an OVERALL disk usage (system plus _______ swapper) of close to OS/2's and sometimes more (dependent on the size of the partition). OS/2 allows detailed and granular control over what is installed, so it is at least easy to know what your likely requirements are. Furthermore, many newer applications take large amounts of disk space anyway. A full installation of Word for Windows version 2.0 takes up to 15Mb of disk space. This puts the requirements for the operating system into some perspective. For those concerned about disk space in general, data compression tools such as Stacker, which are available on DOS, are under development for OS/2. Stac Electronics have announced their intention to produce an OS/2 version of Stacker, which will be available before the end of 1992. Other vendors are producing OS/2 disk compression tools, which are expected to ship in 1992. PERFORMANCE CONSIDERATIONS __________________________ IBM's performance aims for OS/2 2.0 are as follows: o Close to DOS for single tasking DOS applications o Close to Windows 3.x for single tasking Windows applications o Superior to Windows for multi-tasking o Equivalent to or better than OS/2 1.3 It is very important to understand that achieving these aims is subject to the obvious limits on comparing single tasking performance: o DOS applications which are processor-intensive, or require continual servicing of interrupts, are always going to perform better in DOS where they do not have to share the CPU with other processes. However, despite this, there is little performance loss for most DOS applications in a single tasking scenario in a full screen DOS session. In a windowed session, screen scrolling and update will be affected by runnning the application within a window, and the extra virtualisation that needs to occur. This will particularly affect applications running in graphics mode. If higher performance is required, switch to full screen (the Alt-Home toggle allows flexibility: use full screen most of the time for Appendix B. Hardware requirements and performance 150 maximum performance, but switch to windowed when interaction with the rest of the system (eg clipboard) is needed. On the other hand, DOS applications that are disk and I/O-intensive (such as database programs) can perform as much as 200-300% faster, due to the superior caching in the OS/2 FAT system, or using HPFS (see "Enhanced FAT" on page 35). As most applications are a mix of disk and processor operations, comparisons will differ according to the application chosen. o Although for Windows applications, single tasking scenarios may be between 5 and 20% slower, this is hardly the best basis on which to compare performance (since Windows is supposed to be a multi-tasking environment as well). The differences mainly relate to application load time (usually caused by the fact that the Windows application often loads into a separate VDM, and then loads its own instance of WIN-OS/2. (A real comparison would be to add the time to load Windows under DOS to the load time of the Windows application, and compare it to the total under OS/2 2.0). Running the application in a Full Screen WIN-OS/2 session rather than Seamless sometimes yields better performance. o In fact, DOS applications often run faster under OS/2 2.0 than under Windows 3.1, particularly disk-intensive applications, due to the superior FAT implementation (see above). o When considering multiple application scenarios, OS/2 shows its superiority. Even running two applications together can show a big difference between OS/2 2.0 and Windows 3.1. Try, for example, formatting a diskette from the DOS prompt while running another application under Windows 3.1, and compare the operation in OS/2 2.0. In Windows, if the format operation is in foreground, it can starve the background process of processor time, and if put to background, may scarcely progress at all. Under OS/2 2.0 the share of processor load is much more even. This is hardly a heavy processing load. Another illustrative scenario comes from the testing of National Software Testing Laboratories (NSTL), an independent testing and evaluation organisation: to load MS Word for Windows on a PS/2 Model 57 with nothing else running takes 7.2 seconds with Windows 3.1 and 9.3 seconds with OS/2 2.0. If you do the same load with an XCOPY in the background, Windows load time jumps to 41.1 seconds, compared with 15.3 seconds for OS/2. When more than one task is being done, OS/2's performance advantage becomes evident. Because of OS/2's superior multi-tasking, it can run background tasks, such as file copying, communications, or spreadsheet recalculation, with no visible impact on foreground work. With Windows, the cursor movement can lag behind the mouse movement, and displaying of characters can lag behind keyboarding to the point where system becomes almost unusable until the background job is done. Benchmarks from some sources are misleading, and are easily skewed by the choice of scenario. The best guide is to run your own, to simulate your own usage. Appendix B. Hardware requirements and performance 151 TUNING HINTS ____________ When considering overall performance, there are many variables, including how balanced a processing load you want to achieve, or whether you want to give one process as much CPU as possible. Therefore hints can only be generic, and must be considered in the light of specific application requirements. Nevertheless, here are a few basic ideas. More are contained in the chapter on "Optimising Performance" in the OS/2 2.0 Installation and Planning Guide. o To conserve OS/2 system resources and reduce memory requirements: - close applications when they are not going to be used again. - close folders if they are not needed. - move commonly used functions out of folders and to the desktop, and close the folder that contained the object. - However, be careful not to overload the desktop - keep only as many objects as you really need o If certain applications are always used, put them in the Startup folder. This will increase boot time but have everything ready to run o Pre-initialising the SWAPPER.DAT file at boot time will help if a certain group of applications are always loaded. The setting can be made in the SWAPPATH parameter in CONFIG.SYS. You should be careful to observe swap growth beforehand, and not set the initial swapper too large, lest you have a detrimental effect. o The cache sizes for FAT and HPFS can improve performance if increased. Experimentation is the best way to discover the right results for your configuration o Set the system path statements (PATH and LIBPATH especially) based on usage patterns, so that applications are quicker to load. o Turn off public clipboard and DDE if sharing between Windows and OS/2 applications is not required o Load Windows programs into a single WIN-OS/2 session, except those that require greater protection. Ensure that the DPMI_MEMORY_LIMIT is set appropriately o If XMS, EMS and DPMI memory are not required (as is the case for many DOS applications), set them to zero in DOS Settings o DOS Settings parameters can have substantial effect on relative performance of individual applications, and on their effect on others when running in the background. See "DOS Settings" on page 47 and Version 2.0 Volume 2: DOS and Windows Environment (GG24-3731-00). _________________________________________________________________ Remember that many applications require little attention when in background, as they are usually waiting for input, and can therefore safely be given little CPU. Appendix B. Hardware requirements and performance 152 APPENDIX C. FURTHER REFERENCE MATERIALS ________________________________________ Here are some useful publications on OS/2 2.0 that are either already available or about to be published: IBM ITSC OS/2 2.0 TECHNICAL COMPENDIUM ("RED BOOKS") This is a detailed and comprehensive description of OS/2 2.0 in five volumes, published by the IBM International Technical Support Center in Boca Raton, Florida (the same location as the development laboratory for OS/2 2.0). It is essential reading for anyone needing to understand OS/2 2.0 in depth. This guide has borrowed much material from the Red Books. They can be ordered together, as OS/2 Technical Compendium (GBOF-2254), or separately, _________________________ as follows: Volume 1: Control Program (GG24-3730-00) Volume 2: DOS and Windows Environment (GG24-3731-00) Volume 3: Presentation Manager (GG24-3732-00). Volume 4: Application Development (GG24-3774-00) Volume 5: Print Subsystem (GG24-3775-00) Another important Red Book is OS/2 Remote Installation and Maintenance ________________________________________ (GG24-3780-00). This contains practical instructions on how to install OS/2 across a LAN, discussing the various approaches. It will be supplemented, by the end of 1992, by two other books: Automated CID Installation of OS/2 V2.0 (GG24-3783) Automated CID Install of ES 1.0, NTS, LS (GG24-3781) Other red books may be of interest. Here is a selection of some of the ones covering OS/2 and its extensions: GG24-3875-00 LAN SERVER 2.0 NEW FUNCTIONS AND FEATURES GG24-3890-00 NETWARE FROM IBM: NETWORK PROTOCOLS & STANDARDS GG24-3794-00 EXTENDED SERVICES FOR OS/2 DATABASE MGR NEW FEATURES GG24-3781-00 AUTOMATED INSTALL FOR CID ENABLED EXT SERVICES... GG24-3580-01 DEVELOPING A CUA WORKPLACE APPLICATION ZZ81-0295-00 EVALUATION OF OS/2 APPLICATION DEVELOPMENT TOOLS GG24-3641-01 PRACTICAL INTRO TO OBJECT-ORIENTED PROGRAMMING GG24-3822-00 MIGRATING FROM A DOS/WINDOWS ENVIRONMENT TO OS/2 GG24-3749-00 MULTIMEDIA APPLICATION ENABLERS & PS/2 ULTIMEDIA GG24-3653-01 IBM PERSONAL SYSTEM/2 MULTIMEDIA FUNDAMENTALS Copies can be ordered through IBM via the publication numbers in parentheses. Appendix C. Further reference materials 153 THE OS/2 DEVELOPER (PREVIOUSLY PERSONAL SYSTEMS DEVELOPER) This is a quarterly publication from IBM's US Developer Assistance Program (DAP). Subscriptions can be made direct with the publishers in the US. Contact your local IBM office for details. Its publication number is G362-0001. The OS/2 Developer contains many articles on a wide variety of OS/2 topics, __________________ and there have been many articles on OS/2 2.0, and on the system extensions like Database Manager and LAN Server, as well as material on OS/2 applications and development tools. PERSONAL SYSTEMS TECHNICAL SOLUTIONS This publication comes from the Personal Systems Competency Center in Dallas, USA. It covers both hardware and software, and contains many useful articles on OS/2 2.0. It is published quarterly. The publication number is different for each issue, but all are of the type G325-50xx-00, where xx is a two digit number. Issues 5012, 5014, 5015, 5016 and 5017 all contain useful articles on OS/2 2.0 OS/2 WHITE PAPERS These papers were first issued by IBM in April 1991, and a second set appeared in January 1992. They are an excellent guide to IBM's OS/2 strategy and future product directions. They include: o OS/2 2.0 Considerations: an excellent guide to OS/2 2.0's features, _______________________ market positioning, application migration, and future directions (reprinted in the Personal Systems Developer Summer 1991 issue). This __________________________ guide makes use of some of the material in this paper. o OS/2 LAN Server: a summary of current LAN offerings and future _______________ directions. o OS/2 System Performance Management: an overview of current OS/2 and LAN __________________________________ Server parameters and tuning facilities as well as future directions. o OS/2 System Management: a good overview of current IBM SAA SystemView ______________________ facilities in OS/2 environments and future directions. o OS/2 Database Manager Highlights and Directions: an overview of current _______________________________________________ database offerings and future directions. o OS/2 Communications Manager Highlights and Direction: a detailed overview ____________________________________________________ of Communications Manager function. o OS/2 Performance Considerations: a guide to some of the issues involved _______________________________ in tuning performance for OS/2 2.0 Appendix C. Further reference materials 154 o OS/2 2.0 Windows environment: an explanation of how the WIN-OS/2 ____________________________ environment is architected, and what benefits the environment has versus Windows 3.x o OS/2 LAN Server Positioning: a guide to the relative strengths and ___________________________ weaknesses of LAN Server versus Microsoft LAN Manager 2.0 and Novell NetWare 3.11 o OS/2 LAN Server Migration: how to move both clients and servers to OS/2 _________________________ LAN Server 2.0 from various previous IBM LAN products. o OS/2: The Bigger Picture: an overview of IBM's OS/2 strategy and future ________________________ directions o Upgrading to OS/2 2.0: a review of the various options in upgrading from _____________________ DOS, Windows or OS/2 1.3 to OS/2 2.0, and what is required for each migration path o Getting Started with the OS/2 Workplace Shell: a brief introduction to _____________________________________________ the capabilities of the Workplace Shell. This is worth a read before starting on the shell for the first time o Client-Server Computing: an overview of the various IBM products that _______________________ address the client server environment, including Extended Services for OS/2 and OS/2 LAN Server o OS/2 2.0: the Development Platform of Choice: reasons why OS/2 2.0 is an ____________________________________________ excellent target for developers, including a review of the range of various development tools available The White Papers can be obtained from your IBM representative. They are on the IBM MKTTOOLS disk as WPAPERS and WPAPERS2 packages. They can be copied and distributed to anyone who wants to understand about OS/2. IBM OS/2 INFORMATION IBM has published a variety of brochures and information about OS/2. Here is a selection, with the publication numbers. These can be obtained from your dealer or IBM representative. Please note the following list is specific to those issued in Europe. Local publication numbers may vary, and some brochures may not be available in all countries. Contact your local IBM representative for a list relating to your country. Appendix C. Further reference materials 155 +---------------------------------------------------------------------------+ | Table 11. OS/2 product information | +-----------+--------------------------------------+------------+-----------+ +-----------+--------------------------------------+------------+-----------+ | | IBM OS/2 V2.0 Product Information | G 511 | | | | | 1545-01 | | +-----------+--------------------------------------+------------+-----------+ | | Extended Services for OS/2 Spec | G 511 1546 | | | | sheet | | | +-----------+--------------------------------------+------------+-----------+ | | OS/2 Local Area Network Server 2.0 | G 511 1554 | | | | Spec sheet | | | +-----------+--------------------------------------+------------+-----------+ | | OS/2 2.0 Decision Maker's Brochure | G 511 1548 | | +-----------+--------------------------------------+------------+-----------+ | | The OS/2 partnership | G 511 1738 | | +-----------+--------------------------------------+------------+-----------+ | | OS/2 - The Customer's Choice | G 511 1739 | | +-----------+--------------------------------------+------------+-----------+ | | The New OS/2: Wouldn't it be great | G U20 2020 | | | | if... | | | +-----------+--------------------------------------+------------+-----------+ +-----------+--------------------------------------+------------+-----------+ IBM OS/2 APPLICATIONS SOLUTIONS DIRECTORY This is a guide, published in the US, listing most of the applications available for OS/2 today. There are thousands to choose from! The main guide is orderable through IBM as G362-0002-02, and there is a supplement of 32-bit applications (G362-0029) which are either in development or already shipping. CUA VISION MATERIALS This is a video and a companion booklet outlining IBM's vision for the way user interfaces will develop. The booklet includes a demonstration diskette with a graphical demonstration of the principles discussed. Both the video and the diskette offer a fascinating insight into the principles behind the OS/2 Workplace Shell, which embodies the first stages of the vision, and into where the Workplace Shell may be headed in future. The video is orderable as GV26-1004-00 (VHS PAL) or GV26-1003-00 (VHS NTSC) and the booklet as G242-0215-00. Appendix C. Further reference materials 156 OS/2 IN THE CORPORATE ENVIRONMENT This is a short book published by Intelligent Environments Ltd, one of the leading vendors of OS/2 developement tools. It is an independent view of where OS/2 fits in the corporate computing world, including specific examples of where customers are implementing client-server solutions using OS/2 today. Contact Intelligent Environments for details. They are based at: Intelligent Environments Europe Ltd., Intelligent Environments Inc. Crystal house 2 Highwood Drive PO Box 51 Tewkesbury Sunbury-on-Thames MA 01876 Middlesex USA TW16 7UL United Kingdom Tel: +44 (0)932 772266 Tel: +1 508 640 1080 Fax: +44 (0)932 771499 Fax: +1 508 640 1090 OS/2 NOTEBOOK This is a book from Microsoft Press, edited by Dick Conklin, who is the editor of the Personal Systems Developer, containing the best of articles __________________________ from that publication. It includes a wide range of articles on OS/2 2.0 and its extensions like Extended Services and OS/2 LAN Server. Its ISBN number is 1-55615-316-3. THE DESIGN OF OS/2 This book is co-written by Mike Kogan, one of the OS/2 2.0 System Architects, and H.M. Deitel. It is published by Addison-Wesley (ISBN 0-201-54889-5). The following paragraph is from the publisher's abstract: The primary goal of The Design Of OS/2 is to provide insights into __________________ the design decisions and philosophy of the OS/2 operating system. It discusses the motivation, architecture, and realization of OS/2 in the personal computing marketplace. The design of the major components of OS/2 are described in terms of their API architecture, internal data structures, and algorithms. Each area focuses on bridging operating systems theory to the realization of the design and implementation of OS/2. Where it is significant, an objective comparison of the technical aspects of OS/2 and other operating environments is provided. A key thrust is to describe the evolution of personal computer operating systems from DOS through 16-bit OS/2 and 32-bit OS/2. Appendix C. Further reference materials 157 OTHER OS/2 BOOKS There are a variety of books published on OS/2, including many new titles for OS/2 2.0. Here are a few of the titles: o Using OS/2 by Barry Nance and Greg Chicares, from Que books (ISBN __________ 0-88022-863-6) o Now that I have OS/2 2.0 on my Desk - What do I do next? by Stephen ________________________________________________________ Levenson and Eli Hertz, published by Van Nostrand Reinhold (ISBN 0-442-01227-6) o Inside OS/2 2.0, by Mark Minasi, John W. Little, Marlene Semple and Bill _______________ Camarda, from New Riders Publishing (ISBN 1-56205-045-1) o OS/2 2.0 Quick Reference, by Barry Nance, from Que books (ISBN ________________________ 1-56529-068-2) o Stepping Up To OS/2 2.0, by Robert Albrecht and Michael Plura, from _______________________ Abacus (ISBN 1-55755-160-X) o OS/2 2.0 Complete, by Peter Franken, from Abacus (ISBN 1-55755-157-X) _________________ o Integrating Applications with OS/2 2.0, by William Zach, from Van ______________________________________ Nostrand Reinhold (ISBN 0-44201-234-9) o Client-Server Programming with OS/2 2.0 by Bob Orfali and Dan Harkey, _______________________________________ from Van Nostrand Reinhold (ISBN 0 442-01219-5) o Writing OS/2 Device Drivers in C, by Steve Mastrianni, from Van Nostrand ________________________________ Reinhold (ISBN 0 442-01141-5) o OS/2 Presentation Manager GPI, by Graham Winn, from Van Nostrand Reinhold _____________________________ (ISBN 0-442-00468-0) o Learning to Program OS/2 2.0 PM by Example, by Stephen A. Knight, from __________________________________________ Van Nostrand Reinhold (ISBN 0-442-01292-6) o OS/2 Application Development Tools by Brian Proffit, from Premier __________________________________ Publishing (ISBN 1-881899-00-4) o Converting Applications to OS/2, by David Moskowitz et al, from Brady _______________________________ Press (ISBN 0-13-171943-2) o OS/2 2.0: The Usable, Portable Guide, by John Haber and Herbert R. Haber, ____________________________________ from Usable Portable Publications Inc., (ISBN 0-945965-27-4) At the time of writing, four other books were about to made available. ISBN numbers were not obtainable, but IBM order numbers are supplied here: G362-0014 THE OS/2 2.0 USER'S GUIDE FOR THE WORKPLACE SHELL by Maria Tyne from Computer Information Associates, G362-0010 THE COBOL PRESENTATION MANAGER PROGRAMMING GUIDE by David M.Dill Published by Van Nostrand Reinhold G362-0012 COMPREHENSIVE PERFORMANCE FOR THE OS/2 2.0 DATABASE MANAGER by Bruce Tate, Tim Malkemus, and Terry Gray (IBM, Austin, TX). Published by Van Nostrand Reinhold G362-0013 C PROGRAMMING IN THE OS/2 2.0 ENVIRONMENT by V. Mitra Gopaul. Published by Van Nostrand Reinhold The book by Barry Nance sold its first print run in a few weeks, and moved into the top ten computer titles. Even Steve Mastrianni's book, which Appendix C. Further reference materials 158 addresses a more specific audience, is already into its first reprint. In October, it was announced that the Barnes and Noble computer book bestseller list contained three of the above OS/2 books, for 17 consecutive weeks. The books were the ones by Orfali and Harkey, Minasi et al., and Levenson and Hertz. Sales of books are often regarded as one of the signs of a flourishing platform (witness the sales in books about Lotus 1-2-3, WordPerfect, and Windows). This indicator also shows the amount of interest there is now in OS/2. In fact, OS/2 books are not only appearing in English. An indicator of the success of OS/2 is that books in national languages are appearing, a testimony not only to the strength of OS/2 in the countries involved, but also of its widespread appeal (books in English would usually be considered to reach a wider market, especially among computer experts, but OS/2's appeal to end users means a viable market at which to target books in the native language.) Here is a list of some OS/2 books written and published in Germany: "OS/2 2.0, Grundlagen und Praxis" von Hans Fremuth (mit Vorwort von H. Kahl) im tewi Verlag (in deutscher Sprache) ISBN 3-89362-212-8 "OS/2 2.0, Das Kompendium" von Olaf Koch, Norbert Meder und Peter Scheuber (mit Beitrugen von Whittle und Pignatelli) im Verlag Markt & Technik (in deutscher Sprache) ISBN 3-87791-302-2 "OS/2 - 2.0, Der Data Becker Fuhrer" im Verlag DATA BECKER (in deutscher Sprache) ISBN 3-89011-637-X "OS/2 Version 2 deutsch, Das Data Becker Handbuch" von Peter Franken im Verlag DATA BECKER (in deutscher Sprache) ISBN 3-89011-505-5 "Von DOS und Windows nach OS/2 2.0, Tips & Tricks" von Robert M. Albrecht und Michael Plura im Verlag DATA BECKER (in deutscher Sprache) ISBN 3-89011-543-8 Appendix C. Further reference materials 159 "Schnell Anleitung OS/2 Version 2 deutsch" im Verlag DATA BECKER (in deutscher Sprache) ISBN 3-89011-658-2 "QuickStart OS/2 2.0, Der Einsteig in 20 Schritten" von Harald Babiel im SYBEX Verlag (in deutscher Sprache) ISBN 3-88745-859-1 OS/2 MONTHLY This is an independent magazine dedicated to news, views and technical information about OS/2. It is published by: JDS Publishing PO Box 4351 Highland Park NJ 08904 USA Tel: +1-908-247-0952 MOVING TO THE WORKPLACE SHELL VIDEO This video (part number 41G5097) guides the new user of OS/2 2.0 through the Workplace Shell. It is meant to be a light and enjoyable introduction to the capabilities of the shell, to encourage you to explore for yourself. OS/2 FREQUENTLY ASKED QUESTIONS (FAQ) This document, maintained by Timothy F. Sipples (sip1@ellis.uchicago.edu), is an excellent basic reference to many common questions and answers about OS/2. It is available in electronic form on most of the bulletin board systems mentioned in Appendix D, "OS/2 Bulletin Board Systems" on page 161. It is just one example of many of the excellent reference materials and tools made available by OS/2 enthusiasts around the world, on bulletin board systems. OS/2 2.0 INFORMATION AND PLANNING GUIDE This publication (G326-0160-00) gives an overview of OS/2 2.0 function, as well as assistance in estimating memory and disk space requirements. It is recommended for anyone planning to install OS/2 2.0 on a number of machines. Guides are also available for Extended Services for OS/2 (G326-0161-00) and OS/2 LAN Server (G326-0162-00). Appendix C. Further reference materials 160 APPENDIX D. OS/2 BULLETIN BOARD SYSTEMS ________________________________________ Bulletin board systems (BBS) are often a good way of getting information about OS/2, whether technical support, news or useful utilities. In many countries, IBM runs a BBS as a means of customer support; but there are also many other BBSs run by OS/2 enthusiasts. Here is a list of some of the BBSs: IBM BULLETIN BOARDS ___________________ Not all countries operate a BBS. Here is a list of some of the countries that do, with the connection details: IBM Sweden Phone: 46+8-7932200 Dealers 46+8-7934222 Customers Lines: 10 Lines Speed: 1200-14400 Connection rate (V.32 and MNP) 10 USR DS 14400 modems ******************************************************** IBM Austria IBM Bulletin Board System Austria: Phone: 043-222-21145-6600 Speed: 9600 Lines: 2 ******************************************************** IBM Germany IBM Bulletin Board System Germany Fidonet : 2:241/7411.0@FIDONET Phone : 049-711-785-7777 ******************************************************** IBM Canada Canadian Sofware Support Center, specializing in OS/2 and OS/2 support. Vancouver - 604-664-6464 Montreal - 514-938-3122 Toronto - 416-946-4244 or 4255 ******************************************************** Appendix D. OS/2 Bulletin Board Systems 161 IBM Switzerland Name: IBM-BBS HITLINE Communications Phone: 0041 56 321 800 (16 lines/14000 Baud) ISDN: 0041 56 320 589 (1 line/128kBits/s) ********************************************************* IBM Denmark Name: IBM OS/2 BBS Phone: + 45 42 88 72 22 Lines: 3 lines Speed: 9600 (V32 and MNP) Location: Lyngby, Denmark ******************************************************** IBM Belgium International BBS name : The IBM Belgium BBS In country BBS name : End-User Node. Location: IBM Belgium s.a. J.F.Kennedylaan 2, B-1831 Diegem. Modem number : 32-2-725.60.10 8 lines, up to 9600 bps, 8,n,1, V32 24/24 No MNP4 no MNP4. ******************************************************** IBM USA IBM National Support Center BBS, located in Atlanta GA. 1-404-835-6600 => First available modem 1-404-835-6296 => First available Hayes Ultra 1-404-835-5300 => First available USR V.32bis with ASL 1-404-835-5578 => First available IBM 7855 model 10 ******************************************************** IBM Finland IBM OS/2 Bulletin Board System Phone: +358-0-480 422 Speed: 9600, 8, n, 1 ******************************************************** Appendix D. OS/2 Bulletin Board Systems 162 IBM Spain Bulletin Board System IBM OS/2 Phone: 34 1 397 55 80 34 1 397 58 73 34 1 397 55 81 34 1 397 59 63 Speed: 9600, 8, n, 1 ******************************************************** IBM UK Phone: +44-(0)256-336655 (>12000 - V.32 MNP-5) Lines: 15 ******************************************************** IBM Israel Phone: 049-711-785-7777 Additional Info: 2:241/7411.0@FIDONET ******************************************************** IBM Netherlands Phone: +31 (0)20-6974757 Additional Info: Lines 8 Courier Dual Standard 14K4 ******************************************************** IBM Norway Phone: 47-2-999450 ******************************************************** ISM South Africa Phone: 27.11.224.2000 Info - Lines: 47 55 81 Speed: 9600,8,n,1 (V32 and MNP) ******************************************************** OTHER BBSS __________ The following information was provided by the US OS/2 Support Line: Appendix D. OS/2 Bulletin Board Systems 163 O S / 2 B B S ' s A C R O S S T H E W O R L D ----------------------------------------------------- This list is a compilation of OS/2 BBS's across the world. If you wish to make an addition or correction to this list, please send the information to the following (as netmail or logged onto the BBS itself): BBS : LiveNet, 1:170/110@fidonet, (918) 481-5715 Location : Tulsa, OK, USA Sysop : Dave Fisher This list is distributed to many FidoNet nodes found in this OS/2 BBS listing via the Fernwood distribution system. All BBS's listed are in alphabetical order by country, and then by BBS name. Unless otherwise noted, all node addresses are FidoNet. A current list can always be file-requested from LiveNet as 'OS2WORLD'. Enjoy! Last Update: May 14, 1992 Legend: * : OS/2 is primary interest of board F : Board is a FidoNet node % : Entry is new or changed as of last list -A : HST, MNP modem -B : HST, MNP V.32 (and/or V.42) modem -C : HST, MNP V.32bis/V.42bis modem -D : MNP V.32/V.42bis modem -E : MNP V.32 modem USA BBS's show states, International BBS's show three letter country codes. ----------------------------------------------------------------------------- Graham Stair 3M Australia +61-2-498-9184 Aus 9600-E * F Ian Watson OZ-Share OS/2 BBS +61-7-398-3759 Aus 9600-E * F Alan Salmon PC User's Group +61-6-259-1244 Aus 2400 Felix Tsang Programmer's BBS +61-2-875-1296 Aus 9600-E * F Bill Bolton Software Tools Mail Exc +61-2-449-2618 Aus 9600-E * F +61-2-449-9477 Aus 9600-E * F John Della-Torre The Poet's Dilemma +61-2-804-6412 Aus 2400-E Norbert Fuerst The Styrian OS/2 Jumbo +43-316-673237 Aus 9600-A * F Danny Bruggeman Hellfire +32-2-7515203 Bel 9600-D * F Bas Heijermans Moving Sound OS/2 BBS +32-3-3850748 Bel 9600-D * F Benoit HUON Os/2 MANiA BELGIUM +32-2-3872021 Bel 9600-D * F Tony Bearman Bear Garden (604) 533-1867 Can 9600-C * F Chris Ange-Schultz Home Front BBS (514) 769-5174 Can 2400 * F Peter Fitzsimmons RT Labs (416) 867-9663 Can 9600-B * F Gerry Rozema The Idle Task (604) 273-5588 Can 14.4-B * F Jerry Stevens The Locutory (613) 722-0489 Can 9600-D * F Alec Herrmann The Nibble's Roost (604) 244-8009 Can 14.4-B * F Appendix D. OS/2 Bulletin Board Systems 164 Kevin Lowey University of Saskatche (306) 966-4857 Can 14.4-C * F Jorgen Ollgaard Josti-BBS +45-47-380120 Den 9600-C * F +45-47-380524 Den 9600-C * F Rene Carlsen OS/2 Task & FrontDoor H +45-98451070 Den 9600-A * F Emmanuel Sandorfi Os/2 MANiA (Help Maximu +33-164-090460 Fra 9600-C * F Romeo Bernreuther CCWN-BOX +49-7151-68434 Ger 14.4-B * F Peter Plischka IBM Mailbox +49-201-210744 Ger 9600-C * F +49-201-295181 Ger 9600-B * F Juergen Berger JERRY'S OS/2-BBS +49-6134-26563 Ger 2400-A * F % Oliver Lass LRZ-System +49-228-331214 Ger 2400 * +49-228-334372 Ger 9600-D * Oliver Schwabedissen MoonFlower +49-6145-31602 Ger 9600-C * F Richard Clement OS/2 Express +49-6183-74270 Ger 9600-D * F Harald Kipp OS/2 Point +49-234-9279222 Ger 9600-B * F Michael Breukel PC Softbox OS/2 +49-6196-27799 Ger 2400 * F Markus Noller Second Source +49-7191-56267 Ger 2400 * F Kalle Braun Terrania City +49-228-317752 Ger 14.4-B F Thomas Tegel The CAT +49-7971-72446 Ger 14.4-D * F % Karlheinz Kissel The_File_Store +49-6106-22266 Ger 9600-C * F Chris Leuder Zaphod BBS +49-228-262894 Ger 14.4-B F +49-228-229147 Ger 2400 F Joop Mellaart INFOBOARD +31-4752-6200 Hol 2400 * F Marcel Stikkelman PC-Square +31-79-424107 Hol 14.4-C * F Pasquale Cantiello FastForward BBS +39-823-812099 Ita 14.4-C * F Luigi Ravina Italy Network +39-11-8180069 Ita 9600-A * F Roberto Sonzogni Runnin' with The Devil +39-363-302798 Ita 9600-C * F Dave Jones The TJD Support BBS +31-1720-38558 Net 9600-A * Terje Slydahl PerlePorten +47-83-33003 Nor 9600-C * F +47-83-33003 Nor 2400 * F Alex Wyss Gepard's Oracle Zuerich +41-1-3637037 Swi 14.4-C * F Michael Buenter MICS OS/2 Paradise +41-41-538607 Swi 9600-C * F Ernesto Hagmann PC-Info +41-61-9412204 Swi 9600-C * F Mike Gove MonuSci CBCS +44-454-633197 UK 9600-C * F Phil Tuck The TJD Support BBS +44-535-665345 UK 9600-C * +44-535-665345 UK 9600-A * Patrick O'Riva AsmLang and OS/2 (408) 259-2223 CA 14.4-B * F Steve Lesner Bullet BBS (203) 329-2972 CT 9600-B * F % (203) 322-4135 CT 9600-B * F % Jim Dailey Cajon Zone OS/2 (619) 588-6634 CA 9600-D * F Bob Germer Capital City BBS (609) 386-1989 NJ 14.4-C * F Dennis Conley Communitel OS/2 BBS (702) 399-0486 NV 14.4-C * F Emmitt Dove Fernwood (203) 483-0348 CT 9600-C * F (203) 481-7934 CT 14.4-B * F Bill Cook GREATER CHICAGO Online! (708) 895-4042 IL 9600 * F Bogie Bugsalewicz I CAN! BBS (312) 736-7434 IL 9600-C F (312) 736-7388 IL 2400 F n/a IBM National Support Ce (404) 835-6600 GA 2400 (404) 835-5300 GA 9600-C Ed June Information Overload (404) 471-1549 GA 9600-A * F James Chance Lee's Lounge (410) 721-9452 MD 14.4-B * F Robert McA Live-Wire (214) 307-8119 TX 9600-B F Dave Fisher LiveNet (918) 481-5715 OK 16.8-C * F Chuck Gilmore Magnum BBS (805) 582-9306 CA 9600-C * Joe Salemi Max's Doghouse (703) 548-7849 VA 2400-A * F Appendix D. OS/2 Bulletin Board Systems 165 Paul Breedlove Multi-Net (503) 883-8197 OR 9600-C * Ron Bemis Nibbles & Bytes (214) 231-3841 TX 9600-A F Craig Swanson OS/2 Connection (619) 558-9475 CA 14.4-D * F Pete Norloff OS/2 Shareware (703) 385-4325 VA 9600-C * F (703) 385-0931 VA 9600-C * F Brady Flowers Oberon Software (507) 388-1154 MN 14.4-C * Unknown Omega-Point BBS (714) 963-8517 CA 2400 Paul Beverly PMSC OnLine Resource (803) 735-6101 SC 2400 * F Louis F. Ursini Quantum Leap (215) 967-9018 PA 2400 Ken Rucker RucK's Place/2 (817) 485-8042 TX 14.4-C * F Randy Edwards Socialism OnLine! (719) 392-7781 CO 9600-B * F Ed Barboni System-2 RBBS (215) 631-0685 PA 9600-D F (215) 584-1413 PA 9600-D F Mark Lehrer The Akron Anomoly (216) 688-6383 OH 9600-C F Bill Schnell The Asylum BBS (918) 832-1462 OK 9600-B * F Felix Tang The Excelsior (203) 466-1826 CT 14.4-C * F (203) 466-1892 CT 2400 * F Bob Hatton The Monster BBS (908) 382-5671 NJ 9600-A * Woody Sturges The OS/2 Woodmeister (314) 446-0016 MO 14.4-C * F Troy Kraser The Other World (904) 893-2404 FL 9600-D F Mark Wheeler The SandDollar (407) 784-4507 FL 9600-A * F Art Fellner The Soldier's Bored (713) 437-2859 TX 9600-C * F Bill Andrus The Systems Exchange (703) 323-7654 VA 9600-A * F Unknown WSI BBS (901) 386-4712 TN 2400 ------------------------------------------------------------------------------ Appendix D. OS/2 Bulletin Board Systems 166 IBM Printed in U.S.A. 'KP' WOULD EXCEED MAXIMUM SIZE. '.EDFETABL' LINE 140: .ta table off '.EDFETABL' WAS IMBEDDED AT LINE 6995 OF 'OS2TECH' TABLE SPLIT ON PAGE 138. '.EDFETABL' WAS IMBEDDED AT LINE 6995 OF 'OS2TECH' STARTING PASS 2 OF 2. 'KP' WOULD EXCEED MAXIMUM SIZE. '.EDFETABL' LINE 140: .ta table off '.EDFETABL' WAS IMBEDDED AT LINE 6995 OF 'OS2TECH' TABLE SPLIT ON PAGE 138. '.EDFETABL' WAS IMBEDDED AT LINE 6995 OF 'OS2TECH' TEXT EXCEEDS RIGHT PAGE BOUNDARY ON PAGE 138. TEXT EXCEEDS RIGHT PAGE BOUNDARY ON PAGE 139. TEXT EXCEEDS RIGHT PAGE BOUNDARY ON PAGE 165. TEXT EXCEEDS RIGHT PAGE BOUNDARY ON PAGE 166.