home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / os2 / os2tt.zip / OS2TECH.TXT < prev   
Text File  |  1993-01-22  |  554KB  |  12,311 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.                                                   A TECHNICAL GUIDE TO OS/2 2.0
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                                                                    January 1993
  22.  
  23.  
  24.                                                                  Martin McElroy
  25.  
  26.  
  27.                                         European Personal Systems Center (EPSC)
  28.                                                                     Basingstoke
  29.                                                                              UK
  30.                                                               MCELROM at NHBVM7
  31.                                                               +44 (0)256 343204
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.                          A TECHNICAL GUIDE TO OS/2 2.0
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.   IBM                    A TECHNICAL GUIDE TO OS/2 2.0
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                              ii
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.   NOTICES
  272.   _______
  273.  
  274.  
  275.  
  276.  
  277.  
  278.   TRADEMARKS
  279.   __________
  280.  
  281.   The following terms are trademarks or registered trademarks of the IBM
  282.   Corporation in the United States and/or other countries:
  283.  
  284.      OS/2                                              Extended Services
  285.      Presentation Manager                              NetView
  286.      WIN-OS/2                                          Workplace Shell
  287.      AIX                                               IBM
  288.      DB2                                               DDCS/2
  289.      Operating System/2                                SQL/DS
  290.      OS/400                                            RISC
  291.      PS/2                                              RISC System/6000
  292.      Systems Application Architecture                  SAA
  293.      SAA Distributed Database Connection Services/2    SQL
  294.      System/370                                        Audio Visual Connection
  295.  
  296.   All trademarks appearing in this document are owned by their respective
  297.   companies.
  298.  
  299.  
  300.   DISCLAIMER
  301.   __________
  302.  
  303.   Some of the information in this paper concerns future products, or future
  304.   releases of products currently commercially available. The discussion
  305.   regarding Microsoft Windows is based upon information which the Microsoft
  306.   Corporation has made publically available, and is subject to change.  The
  307.   description and discussion of IBM's future products, performance, functions
  308.   and availability are based upon IBM's current intent and are subject to
  309.   change.
  310.  
  311.  
  312.   SPECIAL NOTICES
  313.   _______________
  314.  
  315.   References in this publication to IBM products, programs, or services do not
  316.   imply that IBM intends to make these available in all countries in which IBM
  317.   operates.
  318.  
  319.   Any reference to an IBM program, product or service is not intended to imply
  320.   that only IBM's program, product or service may be used. Any functionally
  321.   equivalent program, product or service may be used instead.
  322.  
  323.   IBM may have patents or pending patent applications covering subject matter
  324.   in this document. The furnishing of this document does not imply giving any
  325.   license under any patent or pending patent.
  326.  
  327.  
  328.  
  329.  
  330.  
  331.                                                                    Notices  iii
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.   PREFACE
  342.   _______
  343.  
  344.  
  345.  
  346.  
  347.  
  348.   This document describes the features and benefits of OS/2 Version 2.0 from a
  349.   technical perspective.  It is aimed at customer technical staff, software
  350.   developers, IBM staff, dealers and business partners, and anyone else who
  351.   needs to understand the detail of how OS/2 2.0 has been designed and
  352.   implemented.  Its primary aim is to help those evaluating the product to
  353.   understand why OS/2 2.0 is the platform of choice for the 90s.
  354.  
  355.   The structure of the document is designed to lead the reader from an
  356.   awareness of the needs of the PC systems of the 90s, to an understanding of
  357.   how OS/2 2.0 meets those needs. It therefore covers the design of OS/2 as
  358.   well as its key features, and goes on to discuss future directions for OS/2.
  359.   The guide can either be read sequentially, in its entirety, or individual
  360.   sections may be used for reference purposes, relating to specific aspects of
  361.   OS/2 (such as DOS compatibility).  To help in the latter use, here is a
  362.   summary of the aim and contents of each section:
  363.  
  364.   OS/2 VERSION 2.0 sets the background against which OS/2 has been developed.
  365.   ________________
  366.   It describes how the PC environment is radically different from that of the
  367.   80s, and the resulting needs of customers deploying PC systems. It also
  368.   recounts how OS/2 has been designed to address those needs, culminating in
  369.   release 2.0.
  370.  
  371.   WHY OS/2? outlines the most important reasons why OS/2 is the platform of
  372.   _________
  373.   choice for the 90s. It is a summary of the arguments provided in the rest of
  374.   the document. It can be regarded as a management summary, and as such is
  375.   designed so that it can also be used standalone, separate from the rest of
  376.   the document. It is suitable for use in proposals, or customer reports on
  377.   OS/2 2.0.
  378.  
  379.   OS/2 2.0 KEY ELEMENTS prefaces the three chapters on DOS, Windows and OS/2
  380.   _____________________
  381.   support that follow, by describing some of the technologies that underpin the
  382.   whole system. Features such as multi-tasking, hardware support, 32-bit design
  383.   and Multiple Virtual DOS Machines (MVDM) are the foundation for many of the
  384.   specific aspects described in the three sections that follow.  They are also
  385.   fundamental to understanding OS/2's superiority to DOS-based systems.
  386.  
  387.   BETTER DOS describes the extensive support for DOS applications, and the ways
  388.   __________
  389.   in which OS/2 2.0 provides a better environment for running DOS applications
  390.   than DOS itself. This section includes discussion of the memory usage,
  391.   protection and the steps taken to ensure the widest possible compatibility
  392.   with existing DOS applications.
  393.  
  394.   BETTER WINDOWS begins by explaining some of the aspects of DOS/Windows 3.x,
  395.   ______________
  396.   in order to show how OS/2 2.0 provides a better Windows environment. An
  397.   important factor is the discussion of how DOS/Windows 3.x is used widely for
  398.   running multiple DOS applications, perhaps even more than for running Windows
  399.   applications. This leads on to a description of how OS/2 2.0 is a superior
  400.   multi-DOS environment, which also runs Windows applications, supporting
  401.  
  402.  
  403.                                                                     Preface  iv
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.   Windows features such as DDE, clipboard and OLE. The section concludes with a
  414.   brief discussion of why many developers are already porting their Windows
  415.   applications to OS/2, and some of the tools available to help.
  416.  
  417.   BETTER OS/2 describes some of the additional features in OS/2 2.0 compared
  418.   ___________
  419.   with OS/2 1.3.  It illustrates the benefits of a 32-bit OS/2, and discusses
  420.   migration from 16-bit OS/2 1.x.
  421.  
  422.   WORKPLACE SHELL discusses the user interface of OS/2 2.0. It begins by
  423.   _______________
  424.   outlining the reasons why OS/2 2.0 uses a new user interface model, and the
  425.   benefits it provides. Emphasis is placed on the fact that users have greater
  426.   flexibility to work the way they want, and concentrate on the information
  427.   they are working with, not the steps the computer needs to follow.  This
  428.   section also describes some of the components and features of the Workplace
  429.   Shell, comparing them with older GUI systems like DOS/Windows.
  430.  
  431.   OS/2 IN A CONNECTED ENVIRONMENT points out how OS/2 2.0 is the client of
  432.   _______________________________
  433.   choice in client-server systems, and is the base for a family of products
  434.   which connect the OS/2 client into LAN, mini and host based systems,
  435.   including open systems. Some of the OS/2 products that offer these features
  436.   (Extended Services, OS/2 LAN Server, TCP/IP for OS/2) are briefly described.
  437.   Another crucial element in considering connected, rather than standalone
  438.   systems, is the ability to support systems management tools, so that the cost
  439.   of maintaining and managing the system does not exceed the benefits.  This
  440.   section also discusses migrating from older connectivity products such as
  441.   DOS-based terminal emulators and networking products.
  442.  
  443.   FUTURES describes some of the areas in which OS/2 is expected to be enhanced
  444.   _______
  445.   to address the growing sophistication of PC usage, and emerging technologies
  446.   such as distributed computing, multimedia and object-oriented technology. It
  447.   aims to provide an understanding of the framework within which OS/2 will
  448.   continue to develop throughout the 90s.
  449.  
  450.   The APPENDICES give some background information on OS/2 2.0 and comparisons
  451.       __________
  452.   with other environments.
  453.  
  454.   APPENDIX A  compares OS/2 2.0 features with those of DOS/Windows 3.x,
  455.               including a detailed comparison of support for DOS applications
  456.   APPENDIX B  discusses the hardware requirements for OS/2 2.0 and gives a
  457.               summary of performance considerations and tuning hints.
  458.   APPENDIX C  gives a guide to other books, publications and materials relating
  459.               to OS/2 2.0, where the reader may find more information.
  460.  
  461.   To use the guide most effectively, it is important not only to understand its
  462.   contents, but also its purpose.  Although the document is technical in
  463.   nature, it does not aim to be a technical reference.  This is beyond the
  464.   scope of a document of this length.  Those looking for such details should
  465.   consult the OS/2 Technical Compendium referenced in the Appendices (see
  466.   Appendix C, "Further reference materials" on page 153).  This guide stands in
  467.   technical content and level of detail, between the product information
  468.   brochure, and the comprehensive discussion of the OS/2 Technical Compendium.
  469.  
  470.   The guide covers OS/2 function in the release made generally available at the
  471.   end of March 1992.  It gives some discussion of planned updates to be made
  472.  
  473.  
  474.                                                                      Preface  v
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.   available during 1992, but details may change before such updates are
  485.   available.  Readers are advised to check with IBM representatives or
  486.   Authorised Dealers for specific dates and functions.
  487.  
  488.   Although this guide is suitable as an introduction to OS/2 for software
  489.   developers, it is NOT intended as a developers' guide. Issues for programmers
  490.                     ___
  491.   are dealt with only as they affect the fundamental OS/2 architecture or in as
  492.   much as they concern the OS/2 user. More detailed information for OS/2
  493.   programmers may be obtained from your local IBM contacts or via the OS/2
  494.   Developer Assistance Program, or on local bulletin boards or Compuserve.
  495.  
  496.   No guide to OS/2 can pretend that the product exists only in a standalone
  497.   environment. The chapter OS/2 IN A CONNECTED ENVIRONMENT discusses how OS/2
  498.                            _______________________________
  499.   2.0 is ideally suited to the needs of the connected PC, whether it be
  500.   LAN-based, or integrated within an enterprise network. It also describes in
  501.   brief some of the other members of the OS/2 family, such as Extended Services
  502.   for OS/2, or OS/2 LAN Server. However, detailed discussion of these products
  503.   would probably double the size of the document. A separate technical guide
  504.   covering the OS/2 systems extensions is planned (contact your IBM
  505.   representative for more information).
  506.  
  507.   References to Microsoft Windows 3.x are made to denote the versions of
  508.   Windows currently available (3.0 and 3.1) which act as an extension to DOS,
  509.   running on a DOS base.  The term, "Windows 3.x"  is used throughout the guide
  510.   where the comment is applicable to both 3.0 and 3.1.  A specific version
  511.   number is used when talking only about one or other release.  References in
  512.   this document to Windows/NT (which Microsoft has announced they expect to
  513.   ship in 1993) are based on information which the Microsoft Corporation has
  514.   made publicly available.
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.                                                                     Preface  vi
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.   CONTENTS
  553.   ________
  554.  
  555.  
  556.  
  557.  
  558.  
  559.   NOTICES  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  III
  560.   Trademarks   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  iii
  561.   Disclaimer   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  iii
  562.   Special notices  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  iii
  563.  
  564.   PREFACE  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   IV
  565.  
  566.   FIGURES  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   VIII
  567.  
  568.   TABLES   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   VIII
  569.  
  570.   OS/2 VERSION 2.0   . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1
  571.   The changing PC environment  . . . . . . . . . . . . . . . . . . . . . . .  1
  572.   Cheaper processors and memory  . . . . . . . . . . . . . . . . . . . . . .  3
  573.   OS/2 so far  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
  574.  
  575.   WHY OS/2?  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
  576.   The best of both worlds  . . . . . . . . . . . . . . . . . . . . . . . . .  5
  577.   Broad appeal   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
  578.   Freedom of choice  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
  579.   A productive environment for the user  . . . . . . . . . . . . . . . . . .  6
  580.   Better DOS, Windows and OS/2   . . . . . . . . . . . . . . . . . . . . . .  6
  581.   A platform you can rely on   . . . . . . . . . . . . . . . . . . . . . . .  7
  582.   Superior connectivity  . . . . . . . . . . . . . . . . . . . . . . . . . .  7
  583.   The integrated system  . . . . . . . . . . . . . . . . . . . . . . . . . .  8
  584.   32-bit power   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
  585.   Platform for growth  . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
  586.   Value for money  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
  587.   Exploits today's investment, and is a base for the future  . . . . . . .   10
  588.  
  589.   OS/2 2.0 KEY ELEMENTS  . . . . . . . . . . . . . . . . . . . . . . . . .   11
  590.   32-bit   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  591.     Flat memory model  . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  592.     Large memory address space   . . . . . . . . . . . . . . . . . . . . .   12
  593.     Virtual memory   . . . . . . . . . . . . . . . . . . . . . . . . . . .   12
  594.     Mixed 16-/32-bit environment   . . . . . . . . . . . . . . . . . . . .   12
  595.   Intel 386/486 exploitation   . . . . . . . . . . . . . . . . . . . . . .   13
  596.     Growth in processor power  . . . . . . . . . . . . . . . . . . . . . .   13
  597.     386/486 now majority of shipments  . . . . . . . . . . . . . . . . . .   14
  598.     386SX versus DX  . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  599.     486SX and DX   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  600.     Features of 386 chip used by OS/2 2.0  . . . . . . . . . . . . . . . .   14
  601.   Multiple Virtual DOS Machines (MVDM)   . . . . . . . . . . . . . . . . .   18
  602.     Contrast with OS/2 1.3 DOS support   . . . . . . . . . . . . . . . . .   18
  603.     Memory: Conventional, Expanded, Extended   . . . . . . . . . . . . . .   21
  604.     MVDM memory management   . . . . . . . . . . . . . . . . . . . . . . .   23
  605.     Virtual Device Drivers (VDDs)  . . . . . . . . . . . . . . . . . . . .   24
  606.   Multi-tasking  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   28
  607.  
  608.  
  609.                                                                   Contents  vii
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.     Why do I need multi-tasking?   . . . . . . . . . . . . . . . . . . . .   28
  620.     What is pre-emptive multi-tasking?   . . . . . . . . . . . . . . . . .   29
  621.     Why is it important?   . . . . . . . . . . . . . . . . . . . . . . . .   30
  622.     Multi-tasking and the user interface   . . . . . . . . . . . . . . . .   33
  623.   File systems   . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   34
  624.     High Performance File System (HPFS)  . . . . . . . . . . . . . . . . .   34
  625.     Enhanced FAT   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   35
  626.     SCB exploitation   . . . . . . . . . . . . . . . . . . . . . . . . . .   35
  627.   Broad hardware support   . . . . . . . . . . . . . . . . . . . . . . . .   35
  628.  
  629.   BETTER DOS   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   38
  630.   Multiple DOS applications  . . . . . . . . . . . . . . . . . . . . . . .   38
  631.   Application integration  . . . . . . . . . . . . . . . . . . . . . . . .   39
  632.   Multi-tasking of DOS applications  . . . . . . . . . . . . . . . . . . .   40
  633.     Pre-emptive multi-tasking  . . . . . . . . . . . . . . . . . . . . . .   40
  634.     Overlapped I/O   . . . . . . . . . . . . . . . . . . . . . . . . . . .   40
  635.     Access to OS/2 file system   . . . . . . . . . . . . . . . . . . . . .   41
  636.   Memory usage   . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   41
  637.     Comparison with memory usage under DOS   . . . . . . . . . . . . . . .   41
  638.     Expanded and Extended Memory   . . . . . . . . . . . . . . . . . . . .   43
  639.     Multiple DOS applications - effect on memory   . . . . . . . . . . . .   44
  640.   Reliability and protection   . . . . . . . . . . . . . . . . . . . . . .   44
  641.   Compatibility  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   45
  642.     Overcoming OS/2 1.3 limitations  . . . . . . . . . . . . . . . . . . .   45
  643.     DOS device drivers   . . . . . . . . . . . . . . . . . . . . . . . . .   46
  644.     What DOS version?  . . . . . . . . . . . . . . . . . . . . . . . . . .   47
  645.     DOS Settings   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   47
  646.     Migrating applications   . . . . . . . . . . . . . . . . . . . . . . .   51
  647.     Virtual Machine Boot (VMB)   . . . . . . . . . . . . . . . . . . . . .   51
  648.   DOS extenders  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   52
  649.  
  650.   BETTER WINDOWS   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   53
  651.   What is MS-Windows?  . . . . . . . . . . . . . . . . . . . . . . . . . .   54
  652.     Windows 3.x modes  . . . . . . . . . . . . . . . . . . . . . . . . . .   54
  653.     Windows 3.x key aspects  . . . . . . . . . . . . . . . . . . . . . . .   55
  654.   OS/2 versus Windows as a multi-DOS environment   . . . . . . . . . . . .   60
  655.     Memory   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   60
  656.     Reliability  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   61
  657.     Performance  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   62
  658.     Integration  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   63
  659.   Running Windows applications under OS/2  . . . . . . . . . . . . . . . .   65
  660.     Standard mode support  . . . . . . . . . . . . . . . . . . . . . . . .   65
  661.     386 Enhanced mode  . . . . . . . . . . . . . . . . . . . . . . . . . .   66
  662.     Contrast with previous approaches (BCL)  . . . . . . . . . . . . . . .   67
  663.     How they run   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   67
  664.     Full Screen or Seamless  . . . . . . . . . . . . . . . . . . . . . . .   69
  665.     Clipboard/DDE  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   72
  666.     Windows 3.1  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   74
  667.   A better Windows?  . . . . . . . . . . . . . . . . . . . . . . . . . . .   74
  668.   Porting Windows applications to OS/2   . . . . . . . . . . . . . . . . .   75
  669.     IBM/Micrografx porting tools   . . . . . . . . . . . . . . . . . . . .   77
  670.  
  671.   BETTER OS/2  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   78
  672.   Compatibility  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   78
  673.  
  674.  
  675.                                                                  Contents  viii
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.   Graphical installation   . . . . . . . . . . . . . . . . . . . . . . . .   78
  686.     Boot Manager   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   80
  687.   OS/2.0 - the 32-bit system   . . . . . . . . . . . . . . . . . . . . . .   80
  688.     Why 32-bit OS/2?   . . . . . . . . . . . . . . . . . . . . . . . . . .   81
  689.     Migration 16- to 32-bit  . . . . . . . . . . . . . . . . . . . . . . .   84
  690.     OS/2 - a 32-bit API - TODAY  . . . . . . . . . . . . . . . . . . . . .   84
  691.  
  692.   WORKPLACE SHELL  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   87
  693.   Why another user interface?  . . . . . . . . . . . . . . . . . . . . . .   87
  694.   An INFORMATION-oriented user interface   . . . . . . . . . . . . . . . .   89
  695.   Workplace Shell components   . . . . . . . . . . . . . . . . . . . . . .   90
  696.     User interface elements  . . . . . . . . . . . . . . . . . . . . . . .   90
  697.     Controls   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   95
  698.     Applets  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   96
  699.     Extra facilities   . . . . . . . . . . . . . . . . . . . . . . . . . .   96
  700.     Adobe Type Manager (ATM)   . . . . . . . . . . . . . . . . . . . . . .   99
  701.     LAN-independent shell  . . . . . . . . . . . . . . . . . . . . . . . .  101
  702.     System Object Model (SOM)  . . . . . . . . . . . . . . . . . . . . . .  103
  703.   Moving from a previous GUI   . . . . . . . . . . . . . . . . . . . . . .  104
  704.   Benefits of the Workplace Shell  . . . . . . . . . . . . . . . . . . . .  107
  705.     Easy to learn  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  107
  706.     Flexible   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  107
  707.     Personal   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  107
  708.     Simple   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  108
  709.     Compatible   . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  108
  710.     Consistent   . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  108
  711.     Information-oriented   . . . . . . . . . . . . . . . . . . . . . . . .  108
  712.     Integrating  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  108
  713.  
  714.   OS/2 IN A CONNECTED ENVIRONMENT  . . . . . . . . . . . . . . . . . . . .  109
  715.   OS/2 for client-server   . . . . . . . . . . . . . . . . . . . . . . . .  109
  716.   The OS/2 family of networking extensions   . . . . . . . . . . . . . . .  111
  717.     Extended Services for OS/2   . . . . . . . . . . . . . . . . . . . . .  111
  718.     DDCS/2   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  112
  719.     OS/2 LAN Server  . . . . . . . . . . . . . . . . . . . . . . . . . . .  112
  720.     NetWare from IBM   . . . . . . . . . . . . . . . . . . . . . . . . . .  114
  721.     LAN Enabler  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  114
  722.     IBM Network Transport Services/2   . . . . . . . . . . . . . . . . . .  115
  723.     Open systems connectivity  . . . . . . . . . . . . . . . . . . . . . .  115
  724.   Systems management   . . . . . . . . . . . . . . . . . . . . . . . . . .  116
  725.     IBM LAN NetView family   . . . . . . . . . . . . . . . . . . . . . . .  117
  726.     Configuration, Installation, Distribution (CID)  . . . . . . . . . . .  118
  727.     Commitment to open standards   . . . . . . . . . . . . . . . . . . . .  120
  728.   Migration from existing connectivity products  . . . . . . . . . . . . .  120
  729.     Networking on OS/2   . . . . . . . . . . . . . . . . . . . . . . . . .  120
  730.     DOS communications applications under OS/2   . . . . . . . . . . . . .  121
  731.  
  732.   FUTURES  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  123
  733.   OS/2 1992 developments   . . . . . . . . . . . . . . . . . . . . . . . .  123
  734.   32-bit system extensions (communications, database, LAN)   . . . . . . .  124
  735.   Multimedia   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  125
  736.   Pen-based computing  . . . . . . . . . . . . . . . . . . . . . . . . . .  126
  737.   Systems management   . . . . . . . . . . . . . . . . . . . . . . . . . .  127
  738.   Presentation Manager futures   . . . . . . . . . . . . . . . . . . . . .  127
  739.  
  740.  
  741.                                                                    Contents  ix
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.     32-bit implementation  . . . . . . . . . . . . . . . . . . . . . . . .  127
  752.     Continuing object-oriented direction   . . . . . . . . . . . . . . . .  128
  753.     Distributed PM   . . . . . . . . . . . . . . . . . . . . . . . . . . .  128
  754.   Object-oriented environments   . . . . . . . . . . . . . . . . . . . . .  128
  755.   Distributed computing  . . . . . . . . . . . . . . . . . . . . . . . . .  130
  756.   AIX interoperability   . . . . . . . . . . . . . . . . . . . . . . . . .  132
  757.   Future Windows compatibility   . . . . . . . . . . . . . . . . . . . . .  132
  758.   Portable version of OS/2   . . . . . . . . . . . . . . . . . . . . . . .  133
  759.   Conclusion   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  134
  760.  
  761.   -----------------------------------------------------------------------------
  762.   APPENDICES   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  135
  763.  
  764.   APPENDIX A.  COMPARISON TABLES   . . . . . . . . . . . . . . . . . . . .  136
  765.   DOS environments   . . . . . . . . . . . . . . . . . . . . . . . . . . .  136
  766.   OS/2 2.0 compared with Windows 3.0/3.1   . . . . . . . . . . . . . . . .  139
  767.  
  768.   APPENDIX B.  HARDWARE REQUIREMENTS AND PERFORMANCE   . . . . . . . . . .  146
  769.   Minimum requirements   . . . . . . . . . . . . . . . . . . . . . . . . .  146
  770.   Processor  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  147
  771.   Memory size  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  147
  772.   Disk space   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  149
  773.   Performance considerations   . . . . . . . . . . . . . . . . . . . . . .  150
  774.   Tuning hints   . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  152
  775.  
  776.   APPENDIX C.  FURTHER REFERENCE MATERIALS   . . . . . . . . . . . . . . .  153
  777.     IBM ITSC OS/2 2.0 Technical Compendium ("Red Books")   . . . . . . . .  153
  778.     The OS/2 Developer (previously Personal Systems Developer)   . . . . .  154
  779.     Personal Systems Technical Solutions   . . . . . . . . . . . . . . . .  154
  780.     OS/2 White Papers  . . . . . . . . . . . . . . . . . . . . . . . . . .  154
  781.     IBM OS/2 Information   . . . . . . . . . . . . . . . . . . . . . . . .  155
  782.     IBM OS/2 Applications Solutions Directory  . . . . . . . . . . . . . .  156
  783.     CUA Vision materials   . . . . . . . . . . . . . . . . . . . . . . . .  156
  784.     OS/2 in the Corporate Environment  . . . . . . . . . . . . . . . . . .  157
  785.     OS/2 Notebook  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  157
  786.     The Design of OS/2   . . . . . . . . . . . . . . . . . . . . . . . . .  157
  787.     Other OS/2 Books   . . . . . . . . . . . . . . . . . . . . . . . . . .  158
  788.     OS/2 Monthly   . . . . . . . . . . . . . . . . . . . . . . . . . . . .  160
  789.     Moving to the Workplace Shell video  . . . . . . . . . . . . . . . . .  160
  790.     OS/2 Frequently Asked Questions (FAQ)  . . . . . . . . . . . . . . . .  160
  791.     OS/2 2.0 Information and Planning Guide  . . . . . . . . . . . . . . .  160
  792.  
  793.   APPENDIX D.  OS/2 BULLETIN BOARD SYSTEMS   . . . . . . . . . . . . . . .  161
  794.   IBM Bulletin Boards  . . . . . . . . . . . . . . . . . . . . . . . . . .  161
  795.   Other BBSs   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  163
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.                                                                     Contents  x
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.   FIGURES
  818.   _______
  819.  
  820.  
  821.  
  822.  
  823.  
  824.    1.  Processor shipments and decreasing memory prices  . . . . . . . . . .  3
  825.    2.  Memory: Conventional, Expanded, Extended  . . . . . . . . . . . . .   21
  826.    3.  How VDDs work   . . . . . . . . . . . . . . . . . . . . . . . . . .   26
  827.    4.  Multi-tasking under Windows 3.x   . . . . . . . . . . . . . . . . .   30
  828.    5.  Multi-tasking under OS/2  . . . . . . . . . . . . . . . . . . . . .   31
  829.    6.  Multiple DOS applications in windows on the Workplace Shell desktop   38
  830.    7.  DOS application memory space - a comparison   . . . . . . . . . . .   41
  831.    8.  DOS Settings notebook   . . . . . . . . . . . . . . . . . . . . . .   47
  832.    9.  Migrate Applications object   . . . . . . . . . . . . . . . . . . .   51
  833.   10.  Windows application sales as a proportion of total PC application
  834.        sales   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   57
  835.   11.  Number of Windows applications in the top 20 selling applications     58
  836.   12.  Windows user survey quoted in PC Magazine June 11, 1991 issue   . .   59
  837.   13.  Single and Multiple application Windows groups  . . . . . . . . . .   68
  838.   14.  Windows Full Screen and Seamless Sessions   . . . . . . . . . . . .   70
  839.   15.  How Seamless Windows works  . . . . . . . . . . . . . . . . . . . .   71
  840.   16.  Installation program - progress indicator   . . . . . . . . . . . .   79
  841.   17.  Comparison of 32- and 16-bit performance - REXX   . . . . . . . . .   81
  842.   18.  OS/2 Workplace Shell  . . . . . . . . . . . . . . . . . . . . . . .   88
  843.   19.  Development of user interface   . . . . . . . . . . . . . . . . . .   89
  844.   20.  Container   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   95
  845.   21.  Slider  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   96
  846.   22.  Notebook  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   96
  847.   23.  Master Help Index   . . . . . . . . . . . . . . . . . . . . . . . .   98
  848.   24.  LAN Server Tree view  . . . . . . . . . . . . . . . . . . . . . . .  101
  849.   25.  Folder with network resources   . . . . . . . . . . . . . . . . . .  102
  850.   26.  Dragging a shadow of a network resource to the desktop  . . . . . .  102
  851.   27.  Drag and drop printing on the network   . . . . . . . . . . . . . .  102
  852.   28.  The OS/2 family of networking extensions  . . . . . . . . . . . . .  109
  853.   29.  OS/2 - an object-oriented future  . . . . . . . . . . . . . . . . .  130
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.                                                                     Figures  xi
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.   TABLES
  885.   ______
  886.  
  887.  
  888.  
  889.  
  890.  
  891.    1.  Memory management models  . . . . . . . . . . . . . . . . . . . . .   15
  892.    2.  DOS environments - OS/2 1.3 and 2.0 compared  . . . . . . . . . . .   19
  893.    3.  Virtual Device Drivers  . . . . . . . . . . . . . . . . . . . . . .   27
  894.    4.  Multi-tasking - Windows 3.x and OS/2 2.0  . . . . . . . . . . . . .   32
  895.    5.  Memory comparison: OS/2 2.0, DOS 5.0, Windows 3.1 enhanced mode   .   42
  896.    6.  Some VDM DOS Settings   . . . . . . . . . . . . . . . . . . . . . .   48
  897.    7.  Windows 3.x and OS/2 1.3 vs. Workplace Shell  . . . . . . . . . . .  105
  898.    8.  OS/2 systems management tools   . . . . . . . . . . . . . . . . . .  116
  899.    9.  Comparison of DOS environments  . . . . . . . . . . . . . . . . . .  138
  900.   10.  OS/2 2.0 compared to Windows 3.0/3.1  . . . . . . . . . . . . . . .  139
  901.   11.  OS/2 product information  . . . . . . . . . . . . . . . . . . . . .  156
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.                                                                     Tables  xii
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.   OS/2 VERSION 2.0
  952.   ________________
  953.  
  954.  
  955.  
  956.  
  957.  
  958.   THE CHANGING PC ENVIRONMENT
  959.   ___________________________
  960.  
  961.   In 1981, when IBM introduced the first IBM Personal Computer, no-one
  962.   anticipated how much it would change the face of the computer industry. In
  963.   the first half of the 1980s, PC use was mainly confined to improving personal
  964.   productivity by using spreadsheets, word processors and other widely
  965.   available applications.
  966.  
  967.   However, it has been clear from the mid-1980s and beyond that the PC needs to
  968.   perform a broader role in the organisation. As greater amounts are spent on
  969.   PC technology, more is being demanded, and increasingly the PC is being seen
  970.   as a "window" on the enterprise, a single screen from which company-wide
  971.   information resources can be accessed, and a base for mission critical,
  972.   "line-of-business" applications that previously would only have run on a
  973.   mainframe. Thus, PCs have been increasingly connected together in Local Area
  974.   Networks (LANs) and to host computers, making them a critical part of the
  975.   corporate data network.
  976.  
  977.   In addition, new technologies like Graphical User Interfaces (GUIs) and
  978.   multimedia, along with greater connectivity, offer the potential to provide
  979.   even more information in an easily accessible manner, so that not only can
  980.   more USES be found for PCs, but also more USERS. In this way, PCs can be used
  981.        ____                                 _____
  982.   to transform the business, not just increase productivity or automate
  983.   existing processes.
  984.  
  985.   And the trend towards "rightsizing" applications continues, moving critical
  986.   applications to PCs on a LAN, using a client-server approach. The market
  987.   analysts Forrester Research published a report in May 1992, identifying the
  988.   growth in demand for a new "super client," driven by the migration of
  989.   business applications towards LANs and client-server.
  990.  
  991.   Unfortunately, much of this remains an aspiration, rather than reality. An
  992.   article in a June 1990 issue of PC Week said that the PC must now "grow up,"
  993.                                   _______
  994.   saying that PCs must be considered as  "business tools," not
  995.   "microcomputers."
  996.  
  997.   But a number of requirements must be in place before the PC can "grow up" and
  998.   before the "super client" can emerge:
  999.  
  1000.   o   "INDUSTRIAL STRENGTH" RELIABILITY:  unless the PC can demonstrate itself
  1001.       __________________________________
  1002.       to be as robust an environment as the host computer, it cannot expect to
  1003.       take over some of the applications the host runs today, nor even
  1004.       participate fully in sharing those applications via a client-server or
  1005.       co-operative processing setup.  There is little point in having a
  1006.       reliable server or host if the client platform is unstable.
  1007.  
  1008.   o   NETWORKING "BUILT IN": the PC environment needs to allow straightforward
  1009.       ______________________
  1010.       and simultaneous connection to a variety of other platforms:  LAN,
  1011.  
  1012.  
  1013.                                                             OS/2 Version 2.0  1
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.       mid-range, UNIX and mainframe, and to be able to handle the variety of
  1024.       communications protocols that results from the multi-vendor environment
  1025.       in most companies.
  1026.  
  1027.   o   PERFORMANCE:  the PC platform must demonstrate that it can adequately
  1028.       ____________
  1029.       share the processing load, by exploiting the power of the base hardware.
  1030.       Since most client-server and connectivity applications will require
  1031.       multiple processes, the ability to run several concurrent tasks
  1032.       efficiently is fundamental.  In this respect, the requirement for
  1033.       performance measurement goes beyond the simple benchmarking of one
  1034.       application at a time, and leads towards determining overall throughput
  1035.       and concurrency.
  1036.  
  1037.   o   WIDE APPLICATION CHOICE: the platform of the 90s should build on
  1038.       ________________________
  1039.       compatibility with existing productivity applications, and allow
  1040.       "mission-critical" applications to be developed for the same platform, so
  1041.       that the user's system can handle both business and productivity
  1042.       applications.
  1043.  
  1044.   o   EASE OF USE AND LOW TRAINING COSTS:  in expanding the use of the PC,
  1045.       ___________________________________
  1046.       additional complexity in terms of communications and multiple
  1047.       applications are inevitably introduced.  These must be implemented while
  1048.       presenting the user with a way of working the system that is as easy to
  1049.       learn and adapt to as possible, both for the user's sake (for better user
  1050.       adoption) and for the organisation's (in less "down time" while learning
  1051.       the system).  This applies not only to existing users: to expand the use
  1052.       of the PC and bring in more users, to make it a truly business system,
  1053.       barriers to learning the system must be lowered.
  1054.  
  1055.   o   EASILY MANAGED: put simply, the costs of installation, integration,
  1056.       _______________
  1057.       maintenance and updates most not exceed the benefits of running the
  1058.       system.
  1059.  
  1060.   o   INVESTMENT PROTECTION:  all of these aims must be achieved without
  1061.       ______________________
  1062.       completely starting from scratch.  To retain users' comfort and
  1063.       capitalise on the existing investment in applications and hardware,
  1064.       maximum use must be made of the systems and applications in place, where
  1065.       possible integrating them with the new systems. But the design of such a
  1066.       system should offer compatibility, but not be constrained by the past.
  1067.       Investment EXPLOITATION is as important as protection in the long term.
  1068.                  ____________
  1069.  
  1070.   All in all, the requirements of the PC systems of the 90s can be summed up in
  1071.   one word: INTEGRATION. The means of integration will be software, and in
  1072.             ___________
  1073.   particular the operating environment.  Once the basis is there, applications
  1074.   to exploit it will follow.  In short, an advanced operating system is needed
  1075.   for the PC of the 1990s, one that can exploit the benefits of the ten years'
  1076.   worth of productivity applications, while moving the PC platform forward to
  1077.   address the needs of the 1990s and become a "business" machine, rather than
  1078.   just a productivity tool.
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.                                                             OS/2 Version 2.0  2
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.   CHEAPER PROCESSORS AND MEMORY
  1097.   _____________________________
  1098.  
  1099.   Some of the obstacles to the widespread use of an advanced platform, such as
  1100.   high memory costs and insufficient processor capacity, are now being removed.
  1101.   Memory prices have fallen dramatically over the last three or four years, and
  1102.   the recent development of the 16 megabit DRAM chip means that memory is being
  1103.   packaged in ever larger units (4MB or in future 8MB at a time).  This will
  1104.   continue the rise in the average amount of memory installed in PCs:  in 1992,
  1105.   nearly all IBM PS/2s using an Intel i386SX processor or above, ship with at
  1106.   least 4MB of memory installed as standard, and nearly all other PC vendors
  1107.   are doing the same.  Indeed, 8MB is no longer an unusual configuration, and
  1108.   many high end machines can be installed with 16 and even 32MB of memory.
  1109.  
  1110.   Furthermore, processor power is increasing rapidly, and Intel's i386
  1111.   processor family (i386SX and i386DX) has become the largest volume Intel
  1112.   processor shipped in PCs.  According to industry estimates, in 1991, the
  1113.   majority of new PC shipments had a 386SX or above, and by the mid-1990s this
  1114.   figure will increase to over 90% as the i486 ships in greater volume. In
  1115.   fact, recent changes in the competitive microprocessor market, have led to
  1116.   large reductions in prices on even 486 chips, particularly the 486SX, so that
  1117.   some vendors are even using the 486SX as the mainstream processor across
  1118.   their product range.  Therefore, 32-bit processors, whether 386 or 486,
  1119.   completely dominate new shipments of PCs.
  1120.  
  1121.   The result of this is that the new PCs shipped have a minimum of a 386SX and
  1122.   4MB of memory, and commonly a 486SX and perhaps 8MB.  This enables
  1123.   substantially more to be done with the PC platform and, in particular, an
  1124.   advanced operating system base that can really begin to fulfil the PC's
  1125.   potential.
  1126.  
  1127.   +---------------------------------------------------------------------------+
  1128.   |                                                                           |
  1129.   |                                                                           |
  1130.   +---------------------------------------------------------------------------+
  1131.   Figure 1. Processor shipments and decreasing memory prices
  1132.  
  1133.   OS/2 SO FAR
  1134.   ___________
  1135.  
  1136.   In the mid-1980s, IBM realised the need for an advanced platform, and saw
  1137.   that single-tasking DOS was not likely to be able to meet these demands.  IBM
  1138.   therefore set out with Microsoft to develop OS/2.  In 1987, the first
  1139.   character-based version, OS/2 1.0 appeared, followed by the inclusion of the
  1140.   Presentation Manager GUI in Version 1.1 (1988), and by Version 1.2 in 1989.
  1141.   These were all based on the Intel 80286 (286) processor's protected mode, and
  1142.   were therefore 16-bit releases.  Intel 386-based machines were supported, but
  1143.   their full 32-bit potential was not exploited because of the requirement to
  1144.   support the large base of 286 machines at the time.
  1145.  
  1146.   These first releases provided the basis for a "platform of the 1990s," but
  1147.   the learning curve involved in providing the operating system function itself
  1148.   and in developing applications to exploit it, proved a greater challenge than
  1149.   expected.
  1150.  
  1151.  
  1152.  
  1153.  
  1154.                                                             OS/2 Version 2.0  3
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.   In 1990, IBM took over chief responsibility for the 16-bit versions of OS/2,
  1165.   and later that year, produced Version 1.3, which has become a widely used
  1166.   platform among companies who are beginning to develop in-house
  1167.   "line-of-business" applications, benefiting from its multi-tasking, large
  1168.   memory, industrial strength robustness and protection between processes. In
  1169.   addition, 1.3 provided these capabilities with lower memory requirements than
  1170.   previous releases, while adding extra features such as high quality font
  1171.   support via the built-in Adobe Type Manager.
  1172.  
  1173.   Although OS/2 1.3 has been highly regarded as a platform for line-of-business
  1174.   applications, limits in the capability of the 286 processor set bounds on
  1175.   what could be achieved in terms of compatibility with the existing range of
  1176.   DOS productivity applications. This, in turn, placed limits on the level of
  1177.   integration between new applications and the existing, extensive installed
  1178.   base of DOS applications.
  1179.  
  1180.   OS/2 2.0, which first shipped in March 1992, has been designed to build on
  1181.   the strengths of OS/2 1.3, such as multi-tasking and threading, robust
  1182.   protection between applications, and large memory support.  It adds to those
  1183.   facilities, greater compatibility with the existing installed base of DOS and
  1184.   Windows applications, so that users can choose from the widest range of
  1185.   applications on an Intel-based platform.  Because it is designed for 32-bit
  1186.   processors like the 386 and 486, it can escape the limitations of the 286,
  1187.   and provide not only a better platform for supporting old applications, but a
  1188.   new foundation for 32-bit applications which can fully exploit the
  1189.   capabilities of the 32-bit hardware.  That is why OS/2 2.0 is the INTEGRATING
  1190.                                                                     ___________
  1191.   PLATFORM, bringing together the investments of the past, and providing a base
  1192.   ________
  1193.   for the future.
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.                                                             OS/2 Version 2.0  4
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.   WHY OS/2?
  1233.   _________
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.   This section summarises the reasons why OS/2 is the platform of choice for
  1240.   the 1990s:
  1241.  
  1242.  
  1243.   THE BEST OF BOTH WORLDS
  1244.   _______________________
  1245.  
  1246.   In the PC environment of the 90s, where both personal productivity and
  1247.   line-of-business applications are required, only OS/2 can satisfy both needs.
  1248.   It provides a better platform for DOS applications than DOS itself, and runs
  1249.   the widest range of DOS and Windows applications, as well as being the best
  1250.   platform for running in-house mission critical applications, with its
  1251.   industrial strength, robust protection, and powerful multi-tasking.  You
  1252.   don't have to choose between different systems for your different needs -
  1253.   OS/2 can do both.
  1254.  
  1255.  
  1256.   BROAD APPEAL
  1257.   ____________
  1258.  
  1259.   OS/2 2.0 is, therefore, a platform of broad appeal, not just for high end
  1260.   usage, or for niche applications like servers, but as a client system, and a
  1261.   productivity machine.  You do not need to be a "power user" to appreciate the
  1262.   benefit of running several DOS and Windows applications on a reliable base.
  1263.   Not only the features of the product, and the applications it can run, but
  1264.   its price and the breadth of PC systems it can run on, have been planned to
  1265.   address the widest possible audience of PC users. And this has already been
  1266.   proved to be true. On August 12th, 1992, IBM announced that it had shipped
  1267.   one million copies of OS/2 2.0 since its initial shipment in March. This
  1268.   represents, according to data from independent estimates, an initial success
  1269.   comparable to that claimed for DOS/Windows 3.0 in 1990.
  1270.  
  1271.   During the first ten years of the PC, users, IS staff, and developers found
  1272.   it difficult to arrive at a common platform: DOS and Windows satisfied the
  1273.   users's needs for productivity applications, but lacked the reliability and
  1274.   full connectivity support to be trusted in mission-critical environments by
  1275.   IS staff and developers, whose systems remained mostly on the mini and
  1276.   mainframe.  However, OS/2 2.0 is a platform that can appeal to all three
  1277.   communities; the right choice for the IS strategy, can now also be the
  1278.   platform that developers and users can choose for themselves.
  1279.  
  1280.  
  1281.   FREEDOM OF CHOICE
  1282.   _________________
  1283.  
  1284.   Today's computing environment can be confusing: the sheer variety of options
  1285.   can be overwhelming. And in making choices about hardware and software
  1286.   platforms, it is difficult to follow a path which keeps a wide range of
  1287.   options open. Too often choices can be constrained by compatibility issues or
  1288.   by a limited growth path. OS/2 2.0 aims to simplify the decision by providing
  1289.   a free choice: the widest range of applications on a wide range of hardware.
  1290.  
  1291.  
  1292.                                                                    Why OS/2?  5
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.   OS/2 2.0 can run DOS, Windows and OS/2 16-bit applications; it provides the
  1303.   widest choice of applications on an Intel-based platform. More and more
  1304.   32-bit OS/2 applications are appearing, making the choice even greater. In
  1305.   fact, OS/2 2.0 is such a good environment for DOS and Windows applications,
  1306.   that even if you only use DOS applications on a 386-based machine, OS/2 2.0
  1307.   is the best environment to run them in.
  1308.  
  1309.   Furthermore, all applications running under OS/2 2.0, whether DOS, Windows or
  1310.   OS/2 applications, gain added value from working together; they can share
  1311.   information and be run from the common Workplace Shell desktop.  This not
  1312.   only protects your current investment in DOS, Windows and OS/2 applications,
  1313.   but adds value to them by integrating them together.
  1314.  
  1315.   OS/2 2.0, and Extended Services and OS/2 LAN Server, are supported on a wide
  1316.   range of IBM-compatible hardware as well as IBM PS/2s.  This means you can
  1317.   run OS/2 with confidence on hundreds of machines from vendors including
  1318.   Compaq, Olivetti, Dell, Hewlett Packard and Toshiba, and with IBM support.
  1319.   In fact, even though IBM cannot test OS/2 on all the models and manufacturers
  1320.   in the market, it is likely that most PCs equipped with an Intel 386SX or
  1321.   above processor, will work.
  1322.  
  1323.  
  1324.   A PRODUCTIVE ENVIRONMENT FOR THE USER
  1325.   _____________________________________
  1326.  
  1327.   OS/2 provides an object-oriented user interface, the Workplace Shell, which
  1328.   allows users to think of the information they want to work with, not think
  1329.   first of what application needs to be loaded.  This is a business-oriented,
  1330.   rather than computer-oriented way of working.  In this way, users become more
  1331.   productive. They can concentrate more on what they want to do, and less on
  1332.   how to do it.  The Workplace Shell also provides a single, consistent
  1333.   environment in which multiple applications can be loaded from different
  1334.   sources.  It is an easy environment to learn, since once you know how to drag
  1335.   a file's icon with the mouse to put it into a folder, you can use the same
  1336.   operation to print it, and to copy it to another disk or folder.  In
  1337.   addition, companies can benefit from a standard interface, which complies
  1338.   with IBM's Common User Access (CUA) definition for user interface design.
  1339.  
  1340.   Also, since many applications can be loaded and running at the same time,
  1341.   users can be more productive, especially in work that involves much
  1342.   interruption and switching from one task to another.  OS/2's true
  1343.   multi-tasking means that long-running processes can simply be switched to the
  1344.   background, while the user continues with something else.  This results in
  1345.   less "wait time"  for the user.  At the same time, more can be done with the
  1346.   existing set of applications by allowing them to share information easily via
  1347.   consistent interfaces like the clipboard.
  1348.  
  1349.  
  1350.   BETTER DOS, WINDOWS AND OS/2
  1351.   ____________________________
  1352.  
  1353.   OS/2 2.0 doesn't just run the widest range of applications on an Intel
  1354.   platform. It also aims to improve even on the native environment of each
  1355.   application, and provide a better environment for that application to work
  1356.   in:
  1357.  
  1358.  
  1359.  
  1360.                                                                    Why OS/2?  6
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.   A BETTER DOS:  it adds to the DOS environment:  multi-tasking, more memory
  1371.   and application integration (see "Better DOS" on page 38 ).
  1372.  
  1373.   A BETTER WINDOWS:  it provides a superior environment for running DOS
  1374.   applications than either Windows 3.0 or Windows 3.1, and also runs a wide
  1375.   range of Windows applications with no loss of function, as well as taking
  1376.   advantage of the better multi-tasking, memory support, and reliability of
  1377.   OS/2 (see "Better Windows" on page 53).
  1378.  
  1379.   A BETTER OS/2:  it improves even on previous releases of OS/2 itself,
  1380.   providing a new object-oriented user interface, a graphical install program,
  1381.   and access to powerful 32-bit applications (see "Better OS/2" on page 78).
  1382.  
  1383.  
  1384.   A PLATFORM YOU CAN RELY ON
  1385.   __________________________
  1386.  
  1387.   When the PC becomes the focal point of information processing, as in today's
  1388.   environment it often is, then the PC platform must show the stability and
  1389.   reliability of the host environment. The main reason why the PC has not been
  1390.   trusted to fulfil this crucial role to date, is because its operating system
  1391.   - DOS - was not designed for "mission critical" use, but as a personal
  1392.   productivity environment. Nor can extensions to DOS such as Microsoft
  1393.   Windows, offer the required stability while they continue to be based on DOS.
  1394.   Only OS/2, which has been designed to protect applications from one another,
  1395.                             ________
  1396.   can deliver the stable platform required for full multi-tasking and greater
  1397.   protection from system crashes. It is no use having the most fault tolerant
  1398.   server or host, if the client keeps going down.  And even the productivity
  1399.   user's PC is "mission critical" from that user's perspective, so that
  1400.   reliability is a requirement for every PC.
  1401.  
  1402.  
  1403.   SUPERIOR CONNECTIVITY
  1404.   _____________________
  1405.  
  1406.   OS/2 2.0 is both the server and the client platform of choice.  Its strong
  1407.   multi-tasking and robust protection make it the best available base for
  1408.   working in a connected environment, in client-server and distributed
  1409.   processing.  It provides a consistent platform for both server and client,
  1410.   can handle multiple concurrent communications protocols (eg NETBIOS, APPC,
  1411.   IPX, TCP/IP) with ease, and even provides a LAN-independent user interface to
  1412.   mixed vendor networks.  It is enabled for automated LAN-based installation.
  1413.   But most important, OS/2 offers the stability and reliability in a client to
  1414.   match the reliability of the server or host. The result is that "mission
  1415.   critical" applications which depend on communications with various systems
  1416.   can be implemented much more safely on OS/2 than on DOS or any of its
  1417.   extensions.
  1418.  
  1419.   OS/2 2.0 is also the base system for a family of networking and
  1420.   communications products from IBM, including Extended Services for OS/2 and
  1421.   OS/2 LAN Server.
  1422.  
  1423.   Extended Services for OS/2 provides powerful communications and database
  1424.   function in a single integrated package.  It supports multiple communications
  1425.   protocols (EHLLAPI, NETBIOS, APPC, X.25 and asynchronous) and terminal
  1426.   emulators (3270, 5250, ASCII, VT100).  It includes a full function
  1427.  
  1428.  
  1429.                                                                    Why OS/2?  7
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.   client-server relational database management system (RDBMS).  This RDBMS is
  1440.   part of an SAA family of relational databases which also includes DB2 and
  1441.   SQL/DS.  Extended Services for OS/2 also includes query and database
  1442.   management tools.
  1443.  
  1444.   OS/2 LAN Server works with OS/2 to provide Local Area Network support to DOS
  1445.   and OS/2 machines. It includes facilities for sharing resources such as files
  1446.   and printers, and to manage those shared resources, providing security
  1447.   control, applications management, and network statistics.
  1448.  
  1449.   Both Extended Services for OS/2 and OS/2 LAN Server 2.0 run on both OS/2 2.0
  1450.   32-bit and the 16-bit OS/2 1.3.1 bases.  OS/2 LAN Server 3.0 runs only on the
  1451.   OS/2 2.0 base.  Both Extended Services for OS/2 and OS/2 LAN Server are also
  1452.   supported on selected non-IBM as well as IBM equipment.  More details on
  1453.   these and other networking products are available in the chapter on OS/2 in a
  1454.   connected environment (see "OS/2 in a connected environment" on page 109).
  1455.  
  1456.  
  1457.   THE INTEGRATED SYSTEM
  1458.   _____________________
  1459.  
  1460.   OS/2 not only makes DOS, Windows and OS/2 applications run together, but also
  1461.   provides a GUI, and, with Extended Services for OS/2 and LAN Server,
  1462.   database, communications, and LAN support.  For developers, all the
  1463.   Application Programming Interfaces (APIs) and services have been designed to
  1464.   work together.  This means customers don't have to do the systems integration
  1465.   work with a variety of DOS-based packages to include all the function
  1466.   required, and work around any incompatibilities or problems.  Instead, the
  1467.   OS/2 function has been designed and tested to work together - IBM has already
  1468.   done the integration work.
  1469.  
  1470.   OS/2 also has advanced features built in and integrated with the rest of the
  1471.   system: the Presentation Manager GUI itself, font handling with Adobe Type
  1472.   Manager (ATM) (now for both OS/2 applications and Windows applications), REXX
  1473.   (the extended batch language which can be used to integrate different
  1474.   applications and automate common routines)
  1475.  
  1476.   The Workplace Shell environment integrates DOS, Windows and OS/2 applications
  1477.   and makes them work together, even though they may have been written by
  1478.   different vendors and never designed to do so.  Also, OS/2 can permit working
  1479.   combinations (such as a 32-bit OS/2 word processor and a 16-bit DOS
  1480.   spreadsheet) that would never have been possible before.  In summary, the
  1481.   whole is greater than the sum of the parts:  in running not only OS/2, but
  1482.   DOS and Windows applications, OS/2 makes them work together from the same
  1483.   user interface.  This helps reduce the differences between applications, and
  1484.   between the local machine and the network, and make it all act as one system.
  1485.   That's why OS/2 is the INTEGRATING platform.
  1486.                          ___________
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.                                                                    Why OS/2?  8
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.   32-BIT POWER
  1508.   ____________
  1509.  
  1510.   OS/2 2.0 is the first mainstream 32-bit platform for Intel-based PCs. It
  1511.   offers the ability to take full advantage of the performance of today's
  1512.   32-bit PCs. And over over 1000 32-bit OS/2 applications are being developed
  1513.   (several hundred of which had already shipped by September 1992), to
  1514.   demonstrate what can be achieved with a 32-bit system.
  1515.  
  1516.   The OS/2 32-bit API also allows developers to create richer, more
  1517.   sophisticated applications.  It overcomes the constraints imposed by existing
  1518.   16-bit systems (see "Why 32-bit OS/2?" on page 81).  This allows applications
  1519.   like multimedia to exploit their full potential and power.  OS/2 provides
  1520.   this foundation TODAY.  Moving to the OS/2 32-bit API now, gets developers
  1521.                   _____
  1522.   ready for future developments in OS/2, such as object-oriented technology,
  1523.   distributed computing and portability to RISC.  So 32-bit is not just about
  1524.   exploiting the power of today's environments, but also to move forward to
  1525.   build for the future.  But most of all, OS/2 2.0 gives you the benefits of a
  1526.   32-bit system NOW - no need to wait for other alternatives with uncertain
  1527.   delivery dates.
  1528.  
  1529.  
  1530.   PLATFORM FOR GROWTH
  1531.   ___________________
  1532.  
  1533.   The design of OS/2 not only preserves the investments of the past, but allows
  1534.   maximum flexibility for future growth. It also makes the OS/2 system itself
  1535.   ready to develop further (for portability to other processors, for example).
  1536.  
  1537.   OS/2 will be the base of new developments for many of the features that will
  1538.   be a requirement for the workstation of the mid-90's, such as multimedia,
  1539.   object-oriented systems, support for the Distributed Computing Environment
  1540.   (DCE) and portability across different processors. It has the extra power to
  1541.   support such advanced features as they emerge.  Requirements of this kind
  1542.   will demand a robust, architected and powerful 32-bit system, and that system
  1543.   is OS/2.
  1544.  
  1545.   With OS/2 2.0, IBM has reaffirmed its commitment to OS/2, and its conviction
  1546.   that the workstation of the 1990s requires a real advanced platform, not a
  1547.   series of extensions to DOS, which is fundamentally ill-equipped for these
  1548.   requirements.
  1549.  
  1550.  
  1551.   VALUE FOR MONEY
  1552.   _______________
  1553.  
  1554.   OS/2 2.0 offers a "3 in 1" environment, with everything you need to run DOS,
  1555.   Windows and OS/2 applications in the one package.  It also includes a series
  1556.   of productivity applications, utilities and games for which you need to pay
  1557.   extra in the DOS world.  OS/2 provides scalable font support for both Windows
  1558.   and OS/2 applications with Adobe Type Manager at no extra charge.  OS/2 2.0
  1559.   offers all this function at a price less than the combined cost of DOS and
  1560.   Windows 3.1, even before taking into account the extra utilities you would
  1561.   need to buy under DOS or Windows to achieve the same function.  Upgrading
  1562.   from DOS or Windows makes the cost of moving to OS/2 even less.
  1563.  
  1564.  
  1565.  
  1566.  
  1567.                                                                    Why OS/2?  9
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.   EXPLOITS TODAY'S INVESTMENT, AND IS A BASE FOR THE FUTURE
  1578.   _________________________________________________________
  1579.  
  1580.   OS/2 supports the widest choice of applications from the PAST ten years of
  1581.                                                            ____
  1582.   the PC, and is the best platform for the PRESENT requirement of client-server
  1583.                                            _______
  1584.   and reliable connectivity. It also provides the best base for FUTURE
  1585.                                                                 ______
  1586.   technologies. That's how OS/2 2.0 can integrate past, present and future
  1587.   requirements. It already has NOW what other environments can only promise for
  1588.                                ___
  1589.   the future, with the best and most reliable migration path - why wait?
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.                                                                   Why OS/2?  10
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.   OS/2 2.0 KEY ELEMENTS
  1649.   _____________________
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.   This section examines some of the key technologies and features of OS/2 2.0,
  1656.   which affect all applications running in the system.  The following sections
  1657.   cover OS/2 from an application point of view, showing how it exceeds the
  1658.   capabilities of DOS, Windows 3.x and previous releases of OS/2.
  1659.  
  1660.  
  1661.   32-BIT
  1662.   ______
  1663.  
  1664.   OS/2 2.0 is the first version of OS/2 to support a 32-bit addressing system
  1665.   and programming model.  Although implemented on the Intel 386 and 486 family
  1666.   of processors, it is really a 32-bit system rather than an Intel-specific
  1667.   system.  Mike Kogan, one of the lead designers of 32-bit OS/2 has said in his
  1668.   book The Design of OS/2 2.0 (see Appendix C, "Further reference materials" on
  1669.        ______________________
  1670.   page 153), "OS/2 2.0 was not designed to be 386-specific, but rather 32-bit
  1671.   OS/2 implemented on the 80386 platform."  Part of the design of OS/2 2.0 has
  1672.   been to leave the maximum possible scope for future portability, both in the
  1673.   API and the subsystems like Presentation Manager (PM).
  1674.  
  1675.   OS/2 2.0's 32-bit design provides significant benefits to the user and the
  1676.   programmer, including better performance, simpler programming and ease of
  1677.   migration from 16-bit applications, as well as reinforcing the benefits of
  1678.   inter-process protection associated with previous releases of OS/2.
  1679.  
  1680.  
  1681.   FLAT MEMORY MODEL
  1682.  
  1683.   OS/2 2.0 features a different memory addressing model from 1.3 - the flat
  1684.   memory model. This enables each process to look at memory as a large linear
  1685.   address space which can be addressed by a simple 32-bit offset (sometimes
  1686.   referred to as "0:32"), as opposed to the segment/offset combination
  1687.   ("16:16") required by OS/2 1.3 and other 16-bit systems like DOS and Windows.
  1688.   The 0:32 model therefore hides all details of segmented memory management
  1689.   from the 32-bit programmer, resulting in :
  1690.  
  1691.       - much simpler programming
  1692.       - better performing code
  1693.       - greater portability to other instruction sets (ie non-Intel).
  1694.  
  1695.   One example of better performance is in calling Dynamic Link Libraries
  1696.   (DLLs), which are common in both the OS/2 system and OS/2 applications. Since
  1697.   all code and data are addressable within the same linear address space, there
  1698.   is no longer any need for segment switching.
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.                                                       OS/2 2.0 key elements  11
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.   LARGE MEMORY ADDRESS SPACE
  1718.  
  1719.   Using the 32-bit flat memory model, the 386 processor supports up to a 4
  1720.   gigabytes (GB) linear address space.  In fact, up to 64 terabytes can be
  1721.   addressed by the processor using a non-linear addressing model.  To get some
  1722.   idea of the enormity of such numbers, this means that, if an average page in
  1723.   a book contained 2000 characters, and each book 500 pages, a task could
  1724.   address any character in any book in a library with more than 70 million
  1725.   books (70,368,744,177,664 characters to be precise)!
  1726.  
  1727.   For reasons of compatibility with OS/2 1.x 16-bit applications, the address
  1728.   space per process in OS/2 2.0 is restricted to 512MB (since this is the
  1729.   maximum address space possible for 16:16 applications).  This is addressed
  1730.   using the flat memory model, allowing programmers to reference memory under
  1731.   OS/2 2.0 as one single huge address space.  Although 512MB is hardly likely
  1732.   to be a limitation in practice, this memory limit will be removed in a future
  1733.   release of OS/2.
  1734.  
  1735.   Within a given process, memory objects can be allocated for any size, no
  1736.   longer limited to the 64KB segment maximum, but any size between 1 byte and
  1737.   512MB.  This gives the programmer much greater flexibility in memory
  1738.   management.  For the user, this means that programmers can spend more time on
  1739.   making their programs more powerful and even easier to use, and less on
  1740.   segmented memory management.
  1741.  
  1742.  
  1743.   VIRTUAL MEMORY
  1744.  
  1745.   OS/2 2.0 can use more memory than is physically installed in most PCs, by
  1746.   using the hard disk for additional memory, usually referred to as virtual
  1747.   memory.  Although 16-bit systems like OS/2 1.3 and Windows 3.x also offer
  1748.   memory overcommit via swapping segments to disk, the larger process address
  1749.   space available under OS/2 2.0 means that virtual memory is effectively
  1750.   limited only to available disk space, whereas Windows 3.x can offer only 16MB
  1751.   maximum, or four times the physical memory installed in the machine,
  1752.   whichever is less.  OS/2 2.0 takes advantage of the 386 processor's support
  1753.   for fast and effective paging of memory to and from disk (see "4KB demand
  1754.   paging" on page 17).  It is also not limited to the segment-based swapping of
  1755.   OS/2 1.3.
  1756.  
  1757.  
  1758.   MIXED 16-/32-BIT ENVIRONMENT
  1759.  
  1760.   Not only are OS/2 1.x applications supported, and are binary-compatible with
  1761.   2.0, but OS/2 2.0 can support mixed model programming. In order to support
  1762.   applications written for 16-bit, the OS/2 designers had to develop an
  1763.   architecture in which 16- and 32-bit modules could reside simultaneously.
  1764.   This was not only for ease of conversion from 16-bit programs, but also
  1765.   because the system itself contains a mixture of 16- and 32-bit service
  1766.   routines.  This is a difficult task because segmented and flat memory models
  1767.   are so different.
  1768.  
  1769.   OS/2 provides address conversion between 16:16 and 0:32 addresses, to allow
  1770.   16-bit API calls to be serviced internally by 32-bit routines, and vice
  1771.  
  1772.  
  1773.                                                       OS/2 2.0 key elements  12
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.   versa.  A series of procedures called "thunks"  within the system facilitate
  1784.   this process, by handling any necessary parameter conversion for APIs.  This
  1785.   technique is used internally between 16- and 32-bit parts of the system
  1786.   itself, but the user never notices - the system takes care of it.  They are
  1787.   tools internal to the system, and not APIs for the programmer to learn and
  1788.   use - and certainly no user needs to know how to handle them.
  1789.  
  1790.   Note that the mixed model gives great flexibility, both in migrating
  1791.   applications from 16- to 32-bit, and also in allowing 32-bit applications to
  1792.   make the best possible use of existing 16-bit service routines, window
  1793.   classes etc., developed for previous releases of OS/2. The important point
  1794.   here is how OS/2 2.0 helps the migration process to 32-bit.
  1795.  
  1796.  
  1797.   INTEL 386/486 EXPLOITATION
  1798.   __________________________
  1799.  
  1800.   Since OS/2 2.0's 32-bit capabilities are implemented on Intel's i386 and
  1801.   i486(1) family of processors, it is not surprising that the system takes
  1802.   advantage of some of the processor's features.  Indeed, some of them
  1803.   (especially virtual 8086 mode) are vital to some of the most notable features
  1804.   of the system.  It is for that reason that OS/2 2.0 requires a 386SX
  1805.   processor or higher to run.  Unlike OS/2 1.3, it will not run on machines
  1806.   equipped with an 80286, nor will it run on 8088 and 8086 machines supported
  1807.   by DOS.
  1808.  
  1809.  
  1810.   GROWTH IN PROCESSOR POWER
  1811.  
  1812.   It is widely recognised how substantial have been the improvements in
  1813.   processor speed and capacity, even since 1981 and the launch of the first IBM
  1814.   PC. Since then, processor clock speed has increased by a factor of seven, and
  1815.   memory address space by four thousand to one.  This growth in processor power
  1816.   lowers the cost of the hardware technology to run advanced operating systems
  1817.   and applications.  The software and hardware are now at a sufficiently
  1818.   advanced stage, to enter a new phase of personal computing, beyond the basic
  1819.   productivity applications that have characterised its usage to date (see
  1820.   "Cheaper processors and memory" on page 3).
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.   ---------------
  1830.  
  1831.   (1) In this document, the i386 and i486 processors will often be referred to
  1832.       as 386 and 486 respectively. Where discussion relates to 386 or 486 SX or
  1833.       DX models specifically, terms such as 386SX will be used. Otherwise the
  1834.       terms will be used to refer to any member of the 386 or 486 family as
  1835.       appropriate.  The term 80X86 is sometimes used to denote the range of 32
  1836.       bit processors currently shipped by Intel (ie 386 and 486 together, but
  1837.       NOT the 80286).
  1838.  
  1839.  
  1840.                                                       OS/2 2.0 key elements  13
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.   386/486 NOW MAJORITY OF SHIPMENTS
  1851.  
  1852.   PCs using the i386 family (which includes the SX as well as DX models) are
  1853.   now shipping in greater volumes than any other Intel processor.  Add to the
  1854.   number of 386s the growing volumes in 486SX and DX processors, and there are
  1855.   a growing number of 32-bit processors in the marketplace.  Until OS/2 2.0,
  1856.   there has not been a 32-bit system for Intel processors which has provided
  1857.   sufficient compatibility with existing 16-bit applications, to become a
  1858.   standard.
  1859.  
  1860.  
  1861.   386SX VERSUS DX
  1862.  
  1863.   It is important to understand that both 386SX and 386DX processors are
  1864.   supported by OS/2. Even though the 386SX has a 16-bit external data bus, it
  1865.   is a 32-bit processor internally, fully compatible with the 386DX processor's
  1866.   instruction set, supporting multiple Virtual 8086 sessions (essential for the
  1867.   Multiple Virtual DOS Machines features of OS/2 2.0), protected mode operation
  1868.   and full 32-bit addressing.  It can therefore support all of the features
  1869.   that OS/2 2.0 provides, just as the 386DX does.  The main difference is in
  1870.   the throughput for I/O, owing to the 16-bit data bus.  Nevertheless, many
  1871.   users find it an excellent combination of 386 function, compatibility and
  1872.   performance at a reasonable price.  IBM's own 386SLC chip, which appears in,
  1873.   among others, some models of the PS/2 Model 57, adds performance features
  1874.   such as caching to the basic 386SX design; it represents an excellent
  1875.   platform for OS/2 2.0.
  1876.  
  1877.  
  1878.   486SX AND DX
  1879.  
  1880.   All the 386 features used by OS/2 2.0 are also supported by the 486.
  1881.   Therefore machines using a 486SX or 486DX will also run OS/2 2.0.  In many
  1882.   operations, the 486 is faster than the 386, which will provide performance
  1883.   benefits to users of OS/2 2.0 on 486-based machines. The 486SX is very
  1884.   similar to the 486DX, but does not have the built-in math co-processor
  1885.   function which the 486DX has. The price of the 486SX processor has fallen
  1886.   rapidly during 1992, so that machines using 486SX can often be obtained at
  1887.   prices competitive with 386DX machines. The 486SX therefore represents an
  1888.   economical entry into 486 power for OS/2 2.0.
  1889.  
  1890.  
  1891.   FEATURES OF 386 CHIP USED BY OS/2 2.0
  1892.  
  1893.   Among the specific features of the 386/486 processors supported by OS/2 2.0,
  1894.   and used to provide additional function beyond OS/2 1.3, are:
  1895.  
  1896.       Protected mode operation
  1897.       Virtual 8086 mode
  1898.       4KB demand paging
  1899.       Numeric co-processor support
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.                                                       OS/2 2.0 key elements  14
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.   Protected mode operation
  1917.  
  1918.   To understand the significance of protected mode, let us briefly review some
  1919.   of the different models of memory management which the 386 processor can use:
  1920.  
  1921.  
  1922.   +---------------------------------------------------------------------------+
  1923.   | Table 1. Memory management models                                         |
  1924.   +-----------+------------+------------+------------+------------+-----------+
  1925.   | MODEL     | PROCESSOR  | MAX        | ADDRESSING | PROTECTION | SYSTEM    |
  1926.   |           | ARCHITECTUR| PHYSICAL   | STYLE      | BETWEEN    | SOFTWARE  |
  1927.   |           |            | ADDRESS    | (SEGMENTED | PROCESSES  | EXAMPLE   |
  1928.   |           |            | SPACE      | VS. FLAT)  |            |           |
  1929.   +-----------+------------+------------+------------+------------+-----------+
  1930.   | Real mode | 8086       | 1MB        | segmented  | none       | DOS       |
  1931.   |           |            |            | (64KB)     |            |           |
  1932.   +-----------+------------+------------+------------+------------+-----------+
  1933.   | Segmented | 80286      | (on 286)   | segmented  | yes        | OS/2 1.3, |
  1934.   | Memory    |            | 16MB       | (64KB)     |            | Windows   |
  1935.   | Model     |            |            |            |            | 3.x       |
  1936.   +-----------+------------+------------+------------+------------+-----------+
  1937.   | Flat      | i386       | 4GB (16MB  | flat       | yes        | OS/2 2.0  |
  1938.   | Memory    |            | on 386SX)  |            |            |           |
  1939.   | Model     |            |            |            |            |           |
  1940.   +-----------+------------+------------+------------+------------+-----------+
  1941.  
  1942.   In reality, operating systems like OS/2 create an architecture with indirect
  1943.   selectors/descriptors rather than direct segment/offset addressing. This
  1944.   provides memory protection between processes to support multi-tasking. This
  1945.   is just one example of the ways in which an operating system builds on the
  1946.   base capabilities of the processor. Virtual memory is another function
  1947.   provided by the operating system but relying on a processor feature (in this
  1948.   case on the 286 and above).
  1949.  
  1950.   In OS/2, all process address spaces are kept separate from each other. This
  1951.   allows OS/2 to maintain protection between different processes running in the
  1952.   system, whether they be DOS, Windows or OS/2 applications, or other parts of
  1953.   the system itself. The result is that, if a process attempts to reference
  1954.   memory outside its own address space, it is trapped by the system. In
  1955.   contrast, multi-tasking systems based on single-tasking DOS, such as Windows,
  1956.   cannot always offer protection.  Windows applications, for example, share the
  1957.   same Local Descriptor Table as Windows itself, which limits the memory
  1958.   protection Windows can provide to its applications (see "Reliability" on
  1959.   page 61 and "Reliability and protection" on page 44).
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.                                                       OS/2 2.0 key elements  15
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.   Virtual 8086 mode
  1983.  
  1984.   The 386 offers a mode called virtual 8086 (V8086) mode, which emulates
  1985.   multiple instances of an Intel 8086 processor to provide some compatibility
  1986.   with real mode applications (such as most DOS applications) under a protected
  1987.   mode system (like OS/2 2.0).  Applications running in V8086 mode, can run
  1988.   concurrently with other 8086 applications and protected mode applications,
  1989.   and take advantage of the virtual memory and paging facilities of the 386.
  1990.   V8086 mode is a superset of protected mode.
  1991.  
  1992.   The CPU provides high performance hardware support to enable switching
  1993.   between V8086 and protected mode - this eliminates the performance overhead
  1994.   of mode switching associated with lower processors such as the 286. This is
  1995.   why multiple DOS capability can be provided so much more easily and more
  1996.   effectively in OS/2 2.0, which requires the 386 facilities, than in OS/2 1.3
  1997.   which was based on a 286-style architecture.
  1998.  
  1999.   V8086 processes are protected from each other in OS/2 2.0. This gives
  2000.   compatibility with the real mode world of DOS applications while providing
  2001.   greater address space and protection. In OS/2 2.0, each Virtual DOS Machine
  2002.   (VDM) is encapsulated in its own unique linear address space, and thus cannot
  2003.   corrupt another application's code or data.  Traps or exceptions are handled
  2004.   by the VDM Manager in OS/2 2.0, and execution is passed to an exception
  2005.   handler, or the VDM terminated.  Therefore, OS/2 2.0 runs in protected mode
  2006.   all time, even for DOS applications, hence the greater protection of the
  2007.   system against application errors or failures.
  2008.  
  2009.   In real mode, an application can directly address any object in memory
  2010.   between 0 and 1MB, including portions of the operating system (whether this
  2011.   be DOS, DOS/Windows, or OS/2 1.3, all of which provide varying amounts of
  2012.   real mode execution).  A DOS program that accidentally wrote to a system
  2013.   area, or directly addressed a hardware device and left it in an unknown
  2014.   state, could cause system integrity problems.  Real mode is less of an issue
  2015.   in a single-tasking system like DOS, where it is more than likely that the
  2016.   application is the only one executing in the system; but in a multi-tasking
  2017.   system, it represents a "trap door," which can endanger system integrity.
  2018.   This is part of the difficulty in running a multi-DOS environment like
  2019.   Windows 3.0 or 3.1 on a DOS base; as long as there is real mode access (as
  2020.   long as it runs on DOS as we know it today), there is a potential risk.  In
  2021.   fact, even Windows 3.1 , which is claimed to offer greater protection and
  2022.   stability, does not change the design of Windows in this respect.  It is
  2023.   still possible for a DOS Terminate-and-Stay-Resident (TSR) program to switch
  2024.   the system into real mode and open up the potential for endangering system
  2025.   integrity (see "Reliability" on page 61  for more on this).
  2026.  
  2027.   The only solution is to run the operating system in protected mode, and
  2028.   provide a multi-DOS mode using features like V8086, so that the system never
  2029.   runs in real mode.  This is exactly what OS/2 2.0 does, and it is one of the
  2030.   key differences between it and Windows 3.x in terms of overall integrity:
  2031.   Windows implements V8086 function in a system running on DOS, and some real
  2032.   mode access is inevitable - hence its occasional fragility when working with
  2033.   DOS applications or TSRs; OS/2 2.0 never executes in real mode.
  2034.  
  2035.  
  2036.  
  2037.  
  2038.                                                       OS/2 2.0 key elements  16
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.   4KB demand paging
  2049.  
  2050.   Demand paging is the 386's method of providing virtual memory to the system;
  2051.   when physical memory is exhausted (memory "overcommitment"), the disk may be
  2052.   used to provide additional virtual memory. Memory overcommit is provided on
  2053.   286-based operating systems such as OS/2 1.3 as well, but is usually based on
  2054.   a segment-swapping mechanism. As the name suggests, segment swapping is
  2055.   closely tied to the segmented model used in OS/2 1.3, and the swapper
  2056.   algorithm has to do much work to compact segments of varying sizes into a
  2057.   unit capable of being swapped to disk, or much I/O work in swapping large
  2058.   segments.
  2059.  
  2060.   OS/2 2.0 manages memory internally using pages, each of which is 4KB in size.
  2061.   Each memory object handled by the system is regarded as a set of one or more
  2062.   pages, and therefore memory is allocated in units of 4KB (although to
  2063.   optimise memory management, programmers may handle a page as multiple smaller
  2064.   objects).  Paging offers a number of advantages over swapping, which was the
  2065.   mechanism used in OS/2 1.3:
  2066.  
  2067.   BETTER GRANULARITY: when memory becomes over-committed (ie there is no more
  2068.   real memory left to load applications), individual 4KB pages may be swapped
  2069.   to and from disk, rather than entire memory objects (or segments as in OS/2
  2070.   1.x).  In turn, this will improve performance, especially in terms of the
  2071.   lower I/O cost of moving 4KB pages as opposed to whole segments.
  2072.  
  2073.   Programmers can write their applications to take advantage of the smaller
  2074.   granularity of memory object (ie 4KB page as opposed to a whole segment).
  2075.   This will reduce the working set (overall memory usage) of applications and
  2076.   thence improve performance. Memory objects can be allocated in logical units,
  2077.   without the artificial constraints of segment sizes; this means that you can
  2078.   allocate smaller or larger memory objects according to the needs of the
  2079.   application, rather than the constraints of the system. Once again, this
  2080.   makes programming much simpler.
  2081.  
  2082.   It is important to remember that paging is carried out without any awareness
  2083.   on the part of the application.  Programmers may allocate memory to
  2084.   co-operate with this mechanism for performance reasons, but the user need not
  2085.   be aware of the paging system at all.  It will simply translate into the
  2086.   performance benefits mentioned above.
  2087.  
  2088.   SIMPLER SWAP ALGORITHM: because of the more granular paging, OS/2 2.0 does
  2089.   not need to move around different sized segments to compact them into a
  2090.   single swap segment of the right size, as was done in 1.x.  This makes the
  2091.   swap algorithm simpler and therefore faster, improving overall system
  2092.   performance.  Indeed, unlike OS/2 1.x, the swapper file, SWAPPER.DAT is
  2093.   designed to actually shrink as well as grow during use of OS/2 2.0.  This is
  2094.   in order that applications requiring high availability (such as LAN servers)
  2095.   do not need to be rebooted to recover swap disk space.
  2096.  
  2097.   The 386 has hardware support, such as buffering and caching, to support
  2098.   paging.  Once again, OS/2 is taking advantage of the processor's built-in
  2099.   features.
  2100.  
  2101.  
  2102.  
  2103.  
  2104.                                                       OS/2 2.0 key elements  17
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.   Numeric co-processor support
  2115.  
  2116.   Some OS/2 applications can make use of an i387 numeric co-processor if one is
  2117.   installed in a 386 PC running OS/2 2.0 (or 486DX systems, which have
  2118.   co-processor function built in).  Where a 387 is not installed, OS/2 2.0
  2119.   provides a 387 emulator to all applications running in protected mode,
  2120.   available to both 32-bit and 16-bit applications, but not VDMs running DOS
  2121.   applications.  DOS applications must continue to use whatever mechanisms they
  2122.   are currently using to detect co-processor presence.
  2123.  
  2124.  
  2125.   MULTIPLE VIRTUAL DOS MACHINES (MVDM)
  2126.   ____________________________________
  2127.  
  2128.   OS/2 2.0 features a totally redesigned environment for DOS compatibility. It
  2129.   is based on the Virtual 8086 mode of the 386 processor, and results in a DOS
  2130.   environment where multiple DOS applications can be run, each in their own
  2131.   separate "virtual machine."  "Virtual machine" means that the virtual 8086
  2132.   mode process simulates a self-contained DOS environment, in which the
  2133.   application runs. Access to I/O resources is usually not done directly to the
  2134.   physical device, but via a virtual device; this virtualisation allows the DOS
  2135.   application to believe it owns all the system resources, just as it does
  2136.   under DOS.  Behind the scenes, the OS/2 system manages concurrent access to
  2137.   these physical resources, from both DOS and OS/2 applications.
  2138.  
  2139.   Each Virtual DOS Machine, or VDM, emulates an entirely independent instance
  2140.   of DOS.  It is in fact a generic emulated version of DOS (which resembles DOS
  2141.   5.0), not the real DOS retail product.  Each VDM is a separate process,
  2142.   protected from the others, and multi-tasking alongside the others.  This
  2143.   design allows OS/2 to provide superior support for DOS applications than in
  2144.   previous releases of OS/2.
  2145.  
  2146.  
  2147.   CONTRAST WITH OS/2 1.3 DOS SUPPORT
  2148.  
  2149.   It is useful to look at the OS/2 2.0 DOS support in the light of 1.3's DOS
  2150.   support. The following table gives a summary of the key difference in DOS
  2151.   support between 1.3 and 2.0:
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.                                                       OS/2 2.0 key elements  18
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.   +---------------------------------------------------------------------------+
  2182.   | Table 2. DOS environments - OS/2 1.3 and 2.0 compared                     |
  2183.   +--------------------------------+---------------------+--------------------+
  2184.   |                                | OS/2 1.3            | OS/2 2.0           |
  2185.   +--------------------------------+---------------------+--------------------+
  2186.   | Processor mode                 | Real mode           | V8086 mode         |
  2187.   +--------------------------------+---------------------+--------------------+
  2188.   | Protection/Integrity           | Low                 | High               |
  2189.   +--------------------------------+---------------------+--------------------+
  2190.   | Number of DOS applications     | 1                   | up to 12 full      |
  2191.   |                                |                     | screen; up to 240  |
  2192.   |                                |                     | windowed           |
  2193.   +--------------------------------+---------------------+--------------------+
  2194.   | Background execution           | No                  | Yes                |
  2195.   +--------------------------------+---------------------+--------------------+
  2196.   | Windowed                       | No                  | Yes                |
  2197.   +--------------------------------+---------------------+--------------------+
  2198.   | Cut and Paste                  | No                  | Yes                |
  2199.   +--------------------------------+---------------------+--------------------+
  2200.   | Conventional memory free       | 512KB               | 633KB              |
  2201.   +--------------------------------+---------------------+--------------------+
  2202.   | DOS Extended Memory            | None                | 16MB per           |
  2203.   |                                |                     | application (XMS)  |
  2204.   +--------------------------------+---------------------+--------------------+
  2205.   | EMS/XMS                        | No                  | Yes                |
  2206.   +--------------------------------+---------------------+--------------------+
  2207.   | DPMI                           | No                  | Yes                |
  2208.   +--------------------------------+---------------------+--------------------+
  2209.   | Overcommit                     | Swap                | Page - Available   |
  2210.   |                                |                     | disk               |
  2211.   +--------------------------------+---------------------+--------------------+
  2212.   | Timing Dependent applications  | Foreground          | Foreground /       |
  2213.   |                                |                     | Background         |
  2214.   +--------------------------------+---------------------+--------------------+
  2215.   | Recover from hang/crash        | Sometimes           | Usually            |
  2216.   +--------------------------------+---------------------+--------------------+
  2217.  
  2218.   Let's take a look at some of these aspects in more detail:
  2219.  
  2220.  
  2221.   286-based architecture
  2222.  
  2223.   OS/2 1.3    On the 286, there is no V8086 mode, so 1.x had to run DOS
  2224.               applications in real mode, thus requiring a protect-to-real mode
  2225.               switch when moving from an OS/2 to DOS application. This involves
  2226.               significant performance degradation (see below).
  2227.  
  2228.   OS/2 2.0    DOS applications run in V8086 mode. No protect-to-real mode
  2229.               switching is needed.
  2230.  
  2231.  
  2232.   Relative performance
  2233.  
  2234.  
  2235.  
  2236.  
  2237.                                                       OS/2 2.0 key elements  19
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.   OS/2 1.3    A switch from real mode to protected can be done on a 286 (though
  2248.               it costs many CPU cycles). A switch the other way, from protected
  2249.               to real, means effectively rebooting the CPU, but OS/2 has to
  2250.               preserve all the system control information, process states etc,
  2251.               at the same time, so that the normal processing can continue
  2252.               after the switch. This switching back and forth from real (DOS
  2253.               box) to protected (rest of 1.x) generates significant overhead.
  2254.               This can mean that OS/2 background tasks are slowed significantly
  2255.               when running a DOS application in the foreground.
  2256.  
  2257.   OS/2 2.0    DOS applications run in V8086 mode. No protect-to-real mode
  2258.               switching is needed.
  2259.  
  2260.  
  2261.   System integrity
  2262.  
  2263.   OS/2 1.3    Since 1.3 does not run always in protected mode (unlike 2.0), any
  2264.               switch into real mode allows an errant DOS application to
  2265.               directly address any object in memory under 1MB, including
  2266.               portions of the OS/2 1.x kernel (the same is true in Windows 3,
  2267.               hence its comparative lack of integrity.)
  2268.  
  2269.               Also, DOS applications could directly address a hardware device
  2270.               and leave it in an unknown state, which may cause OS/2 device
  2271.               drivers to fail.
  2272.  
  2273.               Either of these scenarios could cause the whole system to crash.
  2274.  
  2275.   OS/2 2.0    All OS/2 2.0 processes, including DOS applications in VDMs, are
  2276.               protected from each other, and cannot write outside their own
  2277.               address space. Hardware access is controlled through Virtual
  2278.               Device Drivers (see "Virtual Device Drivers (VDDs)" on page 24),
  2279.               which handle the DOS-OS/2 hardware concurrency problem.
  2280.  
  2281.  
  2282.   Background execution
  2283.  
  2284.   OS/2 1.3    DOS applications are suspended when not in the foreground. This
  2285.               was a decision made in 1.x, mainly to avoid the overhead in
  2286.               real-protected-real mode switching; it means that timing
  2287.               dependent applications like communications programs are
  2288.               unsuitable for running in an OS/2 1.3 DOS box, as they cannot
  2289.               receive interrupts while suspended.
  2290.  
  2291.   OS/2 2.0    In 2.0, the virtualisation of interrupts and hardware access
  2292.               allows most communications programs to run in background in a
  2293.               VDM.
  2294.  
  2295.  
  2296.   Amount of memory
  2297.  
  2298.   OS/2 1.3    Since DOS applications run in real mode, some of the OS/2 device
  2299.               driver and kernel code has to be located below 1MB to service the
  2300.               real-mode (DOS box) requests. This has an inevitable result on
  2301.  
  2302.  
  2303.                                                       OS/2 2.0 key elements  20
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.               the amount of memory available below 1MB, and therefore on DOS
  2314.               application space, which, in 1.3, depending on the configuration,
  2315.               is about 520KB.  This prevents some larger DOS applications from
  2316.               even loading.  No EMS or XMS support is provided in 1.3.
  2317.  
  2318.   OS/2 2.0    OS/2 2.0 locates most driver and even DOS emulation code outside
  2319.               the DOS application's address space in a VDM. This provides even
  2320.               more conventional memory than under standalone DOS, and full
  2321.               support for EMS and XMS (see below).
  2322.  
  2323.  
  2324.   MEMORY: CONVENTIONAL, EXPANDED, EXTENDED
  2325.  
  2326.   Memory management under DOS today is quite complex, and often requires the
  2327.   user to know about various different memory types.  To support some DOS
  2328.   applications, OS/2 2.0 needs to provide more than just conventional memory.
  2329.  
  2330.  
  2331.   Definitions
  2332.  
  2333.   The diagram below shows some of the types of memory commonly referred to, and
  2334.   is a useful reference for the discussion below:
  2335.  
  2336.   +---------------------------------------------------------------------------+
  2337.   |                                                                           |
  2338.   |                                                                           |
  2339.   +---------------------------------------------------------------------------+
  2340.   Figure 2. Memory: Conventional, Expanded, Extended
  2341.  
  2342.   CONVENTIONAL MEMORY  is the name given to the memory area up to 640KB
  2343.   ___________________
  2344.   accessible by DOS applications.
  2345.  
  2346.   EXTENDED MEMORY refers to any memory above the 1MB line addressed by the
  2347.   _______________
  2348.   processor in protected mode.  (1MB is the normal limit addressable by the
  2349.   processor in real mode).  The LIMA (Lotus/Intel/Microsoft/AST) Extended
  2350.   Memory Specification (XMS) version 2.0 provides a standard for the use of
  2351.   extended memory on 80286 and above computers.  The specification provides for
  2352.   moving code and data objects to and from extended memory to base
  2353.   (conventional) memory, and is operating system independent (even though the
  2354.   technique for determining that XMS is present relies on the DOS interrupt
  2355.   vector 2Fh).  XMS manages 3 different kinds of memory, described below:
  2356.  
  2357.       -    High Memory Area (HMA)
  2358.       -    Extended Memory Blocks (EMBs)
  2359.       -    Upper Memory Blocks (UMBs)
  2360.  
  2361.   HIGH MEMORY AREA (HMA) is the region of memory between 1MB and the 64KB above
  2362.   ______________________
  2363.   it (minus 16 bytes).  This can be addressed by enabling one of the
  2364.   processor's address lines to allow the processor to access an extra 64KB
  2365.   beyond the normal 1MB limit in real mode.  Its operation is due to an anomaly
  2366.   in the 286 and above, which has been exploited by this technique to give a
  2367.   valuable extra address space.  Drivers like HIMEM.SYS, which appear in DOS
  2368.   5.0 and MS-Windows 3.x, exploit this technique.
  2369.  
  2370.  
  2371.  
  2372.                                                       OS/2 2.0 key elements  21
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.   EXTENDED MEMORY BLOCKS (EMBS) are blocks of extended memory above the HMA,
  2383.   _____________________________
  2384.   not accessible from real mode and serve usually as data storage. An XMS
  2385.   driver can move memory between extended and conventional memory to offer up
  2386.   to 64MB of extended memory in up to 255 blocks.
  2387.  
  2388.   UMA, UMBS: between 640KB and 1MB (the limit addressable by the processor in
  2389.   __________
  2390.   real mode) lies the Upper Memory Area (UMA).  In this area are reserved
  2391.   portions of memory for BIOS, video buffers etc.  Usually, however, there are
  2392.   a number of address ranges not used (for example, since there are address
  2393.   ranges for monochrome, CGA and EGA adapters, it is not possible to use all of
  2394.   these ranges at the same time.  Thus there will be a number of "gaps"  in the
  2395.   UMA.  These can be used by memory managers such as exist in DOS 5.0 itself,
  2396.   or by third party utilities such as Quarterdeck's QEMM product.  They can be
  2397.   used to load various drivers, or in DOS 5.0's case, even part of the system
  2398.   itself, to free more memory below the 640KB line.  The address ranges used in
  2399.   this manner are usually called Upper Memory Blocks or UMBs.  The number and
  2400.   size of UMBs will depend on the hardware configuration.
  2401.  
  2402.   EXPANDED MEMORY (EMS) is a page mapping technique that provides additional
  2403.   _____________________
  2404.   memory support, by allowing DOS applications to allocate and access up to
  2405.   32MB of additional memory.  This is done by creating memory objects in
  2406.   expanded memory that can be mapped into the real mode 1MB address space, thus
  2407.   allowing DOS applications to access address spaces beyond 640KB at the cost
  2408.   of having to quickly remap the memory that is to be accessed.  In effect,
  2409.   parts of the 8086 address space become moving "windows"  into larger virtual
  2410.   memory objects in an expanded memory area.  The expanded memory specification
  2411.   was developed by Lotus, Intel and Microsoft, and is thus known as LIM EMS.
  2412.   The latest version of the specification is 4.0.  EMS is provided under DOS
  2413.   either by a special memory adapter and driver, or by defining portions of
  2414.   memory above 1MB for use as expanded memory by a driver that sometimes ships
  2415.   with DOS (eg EMM386.EXE with DOS 5.0).
  2416.  
  2417.   DOS PROTECT MODE INTERFACE (DPMI): The DPMI specification provides a standard
  2418.   _________________________________
  2419.   interface that can access memory above 1MB and is addressable by computers
  2420.   with an Intel 80x86 (or later) microprocessor.  The specification was created
  2421.   by a group of eleven companies in the industry (including Microsoft, Lotus
  2422.   and Intel, as well as Quarterdeck, Rational Systems and Phar Lap), to allow
  2423.   multiple DOS extender applications to multi-task reliably under a
  2424.   multi-tasking environment.  It superceded the VCPI specification (see below).
  2425.  
  2426.   DPMI is a specification that exists in two versions. The 0.9 version was
  2427.   implemented in Windows 3.0. The 1.0 specification added new features while
  2428.   remaining fully compatible with 0.9. OS/2 2.0 is compatible with the 0.9
  2429.   level, and adds some 1.0 features.
  2430.  
  2431.   VIRTUAL CONTROL PROGRAM INTERFACE (VCPI) is an earlier DOS extender
  2432.   ________________________________________
  2433.   specification, created by Phar Lap and Quarterdeck.  While it allowed 386
  2434.   expanded memory managers and DOS extenders to coexist, it did not address the
  2435.   problem of DOS extenders coexisting within a multi-tasking environment.
  2436.   Examples of applications written to this specification include Lotus 1-2-3
  2437.   version 3.0 and Autocad/386 (Lotus 1-2-3 3.1+ changed the type of extender
  2438.   used from VCPI to DPMI).
  2439.  
  2440.  
  2441.  
  2442.  
  2443.                                                       OS/2 2.0 key elements  22
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.   MVDM MEMORY MANAGEMENT
  2454.  
  2455.   MVDMs support all of the above types of memory, providing Virtual Device
  2456.   Drivers for both EMS and XMS functions, thus allowing DOS applications all
  2457.   the memory management functionality possible under DOS, including use of UMBs
  2458.   for the DOS 5.0 LOADHIGH, DEVICEHIGH commands and for TSRs.  Indeed, DOS
  2459.   emulation in OS/2 2.0 VDMs owns the UMBs, but can free them for application
  2460.   use with statements in CONFIG.SYS or in DOS Settings.  Note that the
  2461.   availability and size of UMBs depends on the same principle as under DOS (ie
  2462.   configuration of that DOS virtual machine).  VDM DOS settings like
  2463.   MEM_INCLUDE_REGIONS and MEM_EXCLUDE_REGIONS allow some detailed configurable
  2464.   control over UMBs for separate VDMs.  This is an advantage over DOS itself,
  2465.   which for obvious reasons can only apply one UMB configuration for all DOS
  2466.   applications that load, leading to many DOS users maintaining multiple
  2467.   CONFIG.SYS files for their different required configurations, and rebooting
  2468.   between them.
  2469.  
  2470.   OS/2 2.0 provides Virtual Device Drivers (VDDs) for both EMS and XMS.  The
  2471.   Virtual Expended Memory driver (VEMM.SYS) supports up to 32 MB of expanded
  2472.   memory per VDM, and the Virtual Extended Memory driver (VXMS.SYS) up to 16MB
  2473.   per VDM.  These figures could be made higher, but are restricted for
  2474.   compatibility with EMS and XMS support under DOS.  DPMI applications can
  2475.   access up to 512MB in OS/2 2.0.  In contrast, DOS and DOS extenders like
  2476.   Windows 3.x can offer extended memory only up to four times the physical
  2477.   memory in the machine or 16MB, whichever is less.
  2478.  
  2479.   Virtualising EMS, XMS access means one VDM's use of memory does not affect
  2480.   others - more than one VDM can use XMS and EMS.
  2481.  
  2482.   EMS and XMS memory is mapped into the system's linear address space, and
  2483.   managed just like any other allocated memory. VEMM is compatible with LIM EMS
  2484.   4.0 specification, and VXMS compatible with LIMA version 2.0 functions. The
  2485.   amount of EMS or XMS is configurable in CONFIG.SYS or in DOS settings.
  2486.  
  2487.  
  2488.   Protection
  2489.  
  2490.   VDMs operate in entirely separate process address spaces, and are controlled
  2491.   by a VDM Manager.  They can thus be terminated on detection of illegal
  2492.   instructions without affecting the rest of system, or when the application is
  2493.   "hung."  Thus problems in one VDM do not corrupt others, nor the system.
  2494.  
  2495.  
  2496.   Memory management
  2497.  
  2498.   Since VDMs take advantage of the virtual memory and paging facilities of the
  2499.   386, they are swappable and, therefore, starting several DOS sessions will
  2500.   not significantly increase system memory requirements. Note, also, that each
  2501.   DOS session is individually configurable, so that EMS and XMS support can be
  2502.   switched off if not required, reducing overall virtual memory requirements.
  2503.   As always, of course, there is a balance to be made between memory usage and
  2504.   performance when overcommitting memory.
  2505.  
  2506.  
  2507.  
  2508.  
  2509.                                                       OS/2 2.0 key elements  23
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.   DOS emulation
  2520.  
  2521.   All DOS services (eg I/O) are emulated within the MVDM kernel or passed to
  2522.   the OS/2 kernel (eg file services). Most of this emulation runs in protected
  2523.   mode outside the VDM (hence the large amount of DOS memory available). All
  2524.   documented (and some undocumented) DOS features are supported (such as device
  2525.   driver loading/support, program loading and execution, memory management) as
  2526.   well as all documented (and some undocumented) DOS interrupts (INT 20h, INT
  2527.   21h, INT 27h etc).  This provides a highly compatible "DOS 5.0-like"
  2528.   environment.
  2529.  
  2530.  
  2531.   Input/Output
  2532.  
  2533.   File Input/Output (I/O) in VDMs is made through the OS/2 file system, which,
  2534.   via VDM DOS emulation, provides a compatible interface to file I/O for DOS
  2535.   applications.  Thus DOS applications can, without modification, take
  2536.   advantage of OS/2's Installable File Systems (IFS) like HPFS, and the
  2537.   enhanced FAT (see "File systems" on page 34).  Other I/O is performed either
  2538.   by DOS emulation or via Virtual Device Drivers (VDDs), such as BIOS, video,
  2539.   printer, keyboard (see below).  DOS applications may continue to run and
  2540.   access system resources quite unaware that those resources are virtual, and
  2541.   real access to devices is provided by OS/2 2.0 itself.  This guarantees
  2542.   compatibility but also allows DOS applications to take advantage of the
  2543.   inherent strengths of the OS/2 environment.
  2544.  
  2545.  
  2546.   VIRTUAL DEVICE DRIVERS (VDDS)
  2547.  
  2548.   OS/2 2.0 isolates DOS and Windows applications from I/O devices that are
  2549.   controlled by OS/2 device drivers, by emulating, or virtualising them for one
  2550.   or more DOS or Windows applications.  This is done by Virtual Device Drivers
  2551.   (VDDs).  VDDs provide a virtual instance of the real hardware, which is
  2552.   controlled by a physical protected mode driver (PDD - see "PDDs" on page 25
  2553.   below).
  2554.  
  2555.  
  2556.   VDD features
  2557.  
  2558.   VDDs therefore provide the following support:
  2559.  
  2560.   1.  PROTECTION:  VDDs allow DOS applications to access hardware and BIOS
  2561.       without affecting other VDMs or other protected mode processes. This
  2562.       prevents VDMs from corrupting each other, or the system.
  2563.  
  2564.   2.  VIRTUALISATION:  VDDs avoid direct hardware access from DOS applications,
  2565.       but provide a virtual, or emulated, hardware state that lets the
  2566.       application think it is doing so.  To do this, they maintain a virtual
  2567.       hardware state for each VDM.  This means applications can, for example,
  2568.       access BIOS and video RAM (as Lotus 1-2-3 does), and receive hardware and
  2569.       software interrupts.  In addition, VDDs can either perform I/O through a
  2570.       PDD, or directly address an I/O device itself for greater performance.
  2571.       In this way, virtual video drivers can support fast screen I/O to match
  2572.       performance expectations of DOS users working with programs like 1-2-3.
  2573.  
  2574.  
  2575.                                                       OS/2 2.0 key elements  24
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.   3.  SHARING:  VDDs allow sharing of devices across the system between DOS and
  2586.       OS/2 applications where there is a VDD/PDD combination for that device.
  2587.       There is also support for many DOS device drivers, to allow devices that
  2588.       do not have a VDD/PDD combination, to be supported in a VDM, for access
  2589.       exclusive to that VDM.
  2590.  
  2591.   4.  MEMORY:  the VDD is a protected mode driver which allows virtual device
  2592.       driver support to be loaded above the VDM's first megabyte of address
  2593.       space.  This means that there is no memory impact on the use of VDDs for
  2594.       DOS applications. Only where DOS device drivers need to be loaded is
  2595.       there any impact under 1MB, and then the same as in DOS.
  2596.  
  2597.  
  2598.   PDDs
  2599.  
  2600.   Physical Device Drivers (PDDs) correspond to OS/2 device drivers in 1.3, but
  2601.   with an important difference: they execute entirely in protected mode, unlike
  2602.   the bimodal 1.x device drivers.  Real mode interrupt handling is no longer
  2603.   required since VDMs run in V8086 mode - all interrupt processing is therefore
  2604.   done in protected mode.  Most OS/2 1.x device drivers work "as is":  the part
  2605.   of the driver capable of being run in real mode (needed for the 1.x DOS
  2606.   compatibility box) is not supported, but their protected mode portion will
  2607.   usually work.  However, an old 1.x device driver is unlikely to service VDMs,
  2608.   because the VDD requires support from the PDD that does not exist in older
  2609.   drivers.
  2610.  
  2611.   This also means that no portion of the OS/2 device drivers needs to be
  2612.   located below the 1MB line, and therefore increases the size of the
  2613.   environment available to DOS applications.  But DOS applications may still
  2614.   make use of these PDDs through the VDD interface.
  2615.  
  2616.  
  2617.   How VDDs work
  2618.  
  2619.   VDDs work by facing two ways: to the application, providing a virtual
  2620.   hardware state, and to the PDD or device, performing the physical I/O.
  2621.  
  2622.   At boot time, VDDs are loaded, and many establish communications with the
  2623.   corresponding PDD via a direct call interface.  The list in the section "VDD
  2624.   examples" on page 26 shows which VDDs have a direct interface with an OS/2
  2625.   PDD. The VDD controls the DOS application's access to the device, and relies
  2626.   on the PDD to manage the physical hardware operations.
  2627.  
  2628.   The example below, and the accompanying diagram, show how the virtual COM
  2629.   driver (VCOM.SYS) works.
  2630.  
  2631.   1.  The COM PDD services all hardware interrupts from the asynchronous ports,
  2632.       and buffers the data being transmitted or received.
  2633.  
  2634.   2.  The direct call interface between the VDD and PDD allows the VCOM to
  2635.       emulate asynchronous BIOS functions to send and receive characters, or to
  2636.       set and query the state of a COM port, as well as receive the interrupts
  2637.       passed on by the PDD.
  2638.  
  2639.  
  2640.  
  2641.                                                       OS/2 2.0 key elements  25
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.   3.  All of the time, the DOS application believes it is controlling these
  2652.       functions itself (just like it would under DOS), and is having interrupts
  2653.       and data from the PDD and the COM port reflected back to it by the VDD to
  2654.       maintain the illusion. The DOS application is therefore accessing only a
  2655.       virtual copy of the COM port. The VDD gets control when a DOS application
  2656.       performs direct I/O to a port (IN our OUT instructions), or via BIOS or
  2657.       other software interrupts (INT instructions).
  2658.  
  2659.   4.  OS/2 applications can simultaneously access the COM functions via the PDD
  2660.       using normal OS/2 function calls like DosOpen.
  2661.  
  2662.   +---------------------------------------------------------------------------+
  2663.   |                                                                           |
  2664.   |                                                                           |
  2665.   +---------------------------------------------------------------------------+
  2666.   Figure 3. How VDDs work
  2667.  
  2668.   Not all VDDs need to operate with a PDD in this way. Some VDDs (eg video)
  2669.   directly access the device for performance reasons. DOS applications still do
  2670.   not address the device directly themselves - the VDD still virtualises the
  2671.   I/O to the DOS application.
  2672.  
  2673.   The VDD/PDD interface is required where hardware interrupts need to be
  2674.   simulated into one or many VDMs (COM is a good example).  This is important
  2675.   so that DOS applications that want to control the hardware device directly,
  2676.   do not need to get control at interrupt time, but can be deferred until the
  2677.   OS/2 kernel dispatches the VDM task.  This preserves system integrity and
  2678.   maintains overall system performance.  This interrupt latency, as it is
  2679.   called, may cause problems for a minority of applications that are highly
  2680.   dependent on real-time interrupts.  But the vast majority of DOS
  2681.   applications, even high speed communications, can be dealt with successfully.
  2682.  
  2683.   VDDs can be made swappable, and are installed using DEVICE= statements in
  2684.   CONFIG.SYS.
  2685.  
  2686.   Additional VDDs can be written by third parties for their devices, via a
  2687.   published programming interface, using the Virtual Device Helper (VDH)
  2688.   services provided by the MVDM kernel.
  2689.  
  2690.   A VDD is required only if a device will be shared with other VDMs or OS/2
  2691.   processes.  If a particular device is to be used exclusively by one DOS
  2692.   application, the DOS device driver may be used.  Thus, OS/2 2.0 can provide
  2693.   "generic" support to most DOS device drivers, but such support is limited to
  2694.   that VDM. It does provide greater compatibility and a wider support of
  2695.   devices, enhancing the DOS compatibility of OS/2 2.0 (see "DOS device
  2696.   drivers" on page 46 for more).  DOS Device drivers can be loaded via the DOS
  2697.   Settings (see "DOS Settings" on page 47).
  2698.  
  2699.  
  2700.   VDD examples
  2701.  
  2702.   VDDs exist for most of the common device types.  The following table lists
  2703.   some of the ones that are included in OS/2 2.0:
  2704.  
  2705.  
  2706.  
  2707.                                                       OS/2 2.0 key elements  26
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716.  
  2717.   +---------------------------------------------------------------------------+
  2718.   | Table 3 (Page 1 of 2). Virtual Device Drivers                             |
  2719.   +-------------+-----------------------------------------+-------------------+
  2720.   | NAME        | DESCRIPTION                             | INTERFACES WITH   |
  2721.   |             |                                         | PDD               |
  2722.   +-------------+-----------------------------------------+-------------------+
  2723.   | VBIOS       | DOS system areas like ROM BIOS and      |                   |
  2724.   | &CLUB.      | interrupt vector tables are mapped from |                   |
  2725.   |             | physical memory into the VDM address    |                   |
  2726.   |             | space by VBIOS.SYS.                     |                   |
  2727.   +-------------+-----------------------------------------+-------------------+
  2728.   | VCDROM      | CD-ROM support                          |      *            |
  2729.   +-------------+-----------------------------------------+-------------------+
  2730.   | VCMOS       | CMOS data area and Real time clock      |                   |
  2731.   | &CLUB.      | support                                 |                   |
  2732.   +-------------+-----------------------------------------+-------------------+
  2733.   | VCOM        | Asynchronous COM ports                  |      *            |
  2734.   +-------------+-----------------------------------------+-------------------+
  2735.   | VDMA        | Direct Memory Access (DMA)              |                   |
  2736.   | &CLUB.      |                                         |                   |
  2737.   +-------------+-----------------------------------------+-------------------+
  2738.   | VDPMI       | DOS Protect Mode Interace - used in     |                   |
  2739.   |             | WIN-OS/2 and applcations like Lotus     |                   |
  2740.   |             | 1-2-3 3.1+                              |                   |
  2741.   +-------------+-----------------------------------------+-------------------+
  2742.   | VDPX        | DOS Protect Mode Extender               |                   |
  2743.   +-------------+-----------------------------------------+-------------------+
  2744.   | VDSK        | Disk/diskette, only for INT 13          |      *            |
  2745.   | &CLUB.      | copy-protection                         |                   |
  2746.   +-------------+-----------------------------------------+-------------------+
  2747.   | VEMM        | Expanded memory support - up to 32MB    |                   |
  2748.   |             | per VDD                                 |                   |
  2749.   +-------------+-----------------------------------------+-------------------+
  2750.   | VFLPY       | Floppy disk interface                   |      *            |
  2751.   | &CLUB.      |                                         |                   |
  2752.   +-------------+-----------------------------------------+-------------------+
  2753.   | VKBD        | Keyboard - also has INT 9h emulation    |      *            |
  2754.   | &CLUB.      | code to perform functions usually       |                   |
  2755.   |             | performed by CBIOS, such as key and     |                   |
  2756.   |             | scan code queuing, update of keyboard   |                   |
  2757.   |             | LEDs, and processing for Print Screen,  |                   |
  2758.   |             | SysReq, Break and Pause (INT 5h, INT    |                   |
  2759.   |             | 15h, INT 1Bh respectively).             |                   |
  2760.   +-------------+-----------------------------------------+-------------------+
  2761.   | VLPT        | Printer                                 |      *            |
  2762.   | &CLUB.      |                                         |                   |
  2763.   +-------------+-----------------------------------------+-------------------+
  2764.   | VMOUSE      | Mouse                                   |      *            |
  2765.   +-------------+-----------------------------------------+-------------------+
  2766.   | &CLUB. refers to base set of VDDs automatically loaded at system          |
  2767.   | initialisation time; others can be loaded via DEVICE= statements in       |
  2768.   | CONFIG.SYS.                                                               |
  2769.   +---------------------------------------------------------------------------+
  2770.  
  2771.  
  2772.  
  2773.                                                       OS/2 2.0 key elements  27
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.   +---------------------------------------------------------------------------+
  2784.   | Table 3 (Page 2 of 2). Virtual Device Drivers                             |
  2785.   +-------------+-----------------------------------------+-------------------+
  2786.   | NAME        | DESCRIPTION                             | INTERFACES WITH   |
  2787.   |             |                                         | PDD               |
  2788.   +-------------+-----------------------------------------+-------------------+
  2789.   | VNPX        | Numeric co-processor (x87)              |                   |
  2790.   | &CLUB.      |                                         |                   |
  2791.   +-------------+-----------------------------------------+-------------------+
  2792.   | VPIC        | Programmable Interrupt Controller       |                   |
  2793.   |             | (8259)                                  |                   |
  2794.   +-------------+-----------------------------------------+-------------------+
  2795.   | VTIMER      | Timer                                   |      *            |
  2796.   | &CLUB.      |                                         |                   |
  2797.   +-------------+-----------------------------------------+-------------------+
  2798.   | VWIN        | For WIN-OS/2 "seamless" support         |      *            |
  2799.   +-------------+-----------------------------------------+-------------------+
  2800.   | VXMS        | Extended Memory (XMS) specification -   |                   |
  2801.   |             | up to 16MB per VDD                      |                   |
  2802.   +-------------+-----------------------------------------+-------------------+
  2803.   | Video       | Supports all documented video modes     |      *            |
  2804.   | (VCGA,      | from mono to XGA, including the         |                   |
  2805.   | VMGCA,      | documented modes of VGA and 8514/A.     |                   |
  2806.   | VEGA, VVGA, |                                         |                   |
  2807.   | V8514,      |                                         |                   |
  2808.   | VXGA,       |                                         |                   |
  2809.   | VSVGA)      |                                         |                   |
  2810.   +-------------+-----------------------------------------+-------------------+
  2811.   | &CLUB. refers to base set of VDDs automatically loaded at system          |
  2812.   | initialisation time; others can be loaded via DEVICE= statements in       |
  2813.   | CONFIG.SYS.                                                               |
  2814.   +---------------------------------------------------------------------------+
  2815.  
  2816.  
  2817.   MULTI-TASKING
  2818.   _____________
  2819.  
  2820.   OS/2 has always been highly regarded for its industrial-strength
  2821.   multi-tasking design.  OS/2 2.0 continues those strengths, harnessing the
  2822.   CPU-level support of the 386 processor for even more efficient multi-tasking.
  2823.  
  2824.  
  2825.   WHY DO I NEED MULTI-TASKING?
  2826.  
  2827.   Some people believe that they do not need multi-tasking, on the premise that
  2828.   "I can only manage one thing at a time myself."  However, the simplest way of
  2829.   understanding the need for multi-tasking is to imagine what happens when you
  2830.   get an interruption at work.  Consider this simple scenario:
  2831.  
  2832.   You are working on a report (using your word processor) when the telephone
  2833.   rings.  It's the boss, and he wants the latest sales figures from you NOW.
  2834.                                                                         ___
  2835.   Quickly, you stop what you're doing, put aside the word processor, and
  2836.   connect to the database to run the report routine.  While logging on and
  2837.   running the report, you start your spreadsheet program, so you can put the
  2838.   report from the database into the spreadsheet, to make some extra
  2839.  
  2840.  
  2841.                                                       OS/2 2.0 key elements  28
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.   calculations that are required.  When the report has run and the spreadsheet
  2852.   has recalculated, you take the figures into your charting program to make a
  2853.   graph.  You may also wish to cut and paste this graph into a new document
  2854.   that you create with your word processor (which you call up quickly after you
  2855.   put it aside) to explain the figures to the boss.  In addition, if you are a
  2856.   cautious person, you may back up the report you have created and keep your
  2857.   own copy on diskette (in which case it would have been nice to have started
  2858.   that formatting five minutes ago when you were logging on!)  Once you've
  2859.   created the new document, with the latest sales figures and calculations
  2860.   shown in a graph, you may wish to send it to the boss via electronic mail.
  2861.   Finally, you can return, after a brief rush of activity, to your original
  2862.   report where you left it.
  2863.  
  2864.   Such a scenario is characteristic of much of our work. Many of us are driven
  2865.   by interruptions. In fact, it is not an exaggeration to say that any PC user
  2866.   who has a phone can benefit from multi-tasking. The benefits are obvious:
  2867.  
  2868.   o   handle interruptions
  2869.  
  2870.   o   less waiting for one operation to complete (the "hourglass" in Windows
  2871.       3.x is a sign of a platform with only limited multi-tasking)
  2872.  
  2873.   o   let the computer do the work while you stay productive
  2874.                                          ___
  2875.  
  2876.   o   handle "beneath the covers"  function like logging on, printing and
  2877.       running database reports
  2878.  
  2879.   o   give smooth, even performance between different tasks
  2880.  
  2881.   But perhaps the most persuasive argument is to imagine how the above scenario
  2882.   would have been achieved using DOS!
  2883.  
  2884.  
  2885.   WHAT IS PRE-EMPTIVE MULTI-TASKING?
  2886.  
  2887.   Most users understand that multi-tasking allows more than one application to
  2888.   run at once.  Of course, without multiple processors, they do not actually
  2889.   execute instructions simultaneously - the CPU still only processes one
  2890.   instruction at a time, but the operating system can divide CPU time between
  2891.   several processes to make it appear to the user that those processes are
  2892.   executing simultaneously.  Therefore most multi-tasking operates on the basis
  2893.   of some form of CPU time-slicing.
  2894.  
  2895.   Furthermore, it is important to distinguish between multi-tasking, where
  2896.   applications continue to execute when in the background, and context
  2897.   switching, where they lie dormant until given the user focus.  Some
  2898.   environments (such as OS/2 1.3 DOS Box, Windows 3.x standard mode, and DOS
  2899.   5.0's Task Switcher) are only context switching.  In these cases, the
  2900.   background task does not receive CPU cycles, and time is devoted only to
  2901.   foreground tasks.
  2902.  
  2903.   Some of the tasks in the scenario outlined above can be achieved using
  2904.   systems that offer only context-switching, or non-pre-emptive multi-tasking.
  2905.   But a pre-emptive multi-tasking system would allow the whole job to be
  2906.  
  2907.  
  2908.                                                       OS/2 2.0 key elements  29
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.   achieved faster and more efficiently, because the overall performance of the
  2919.   system would be more balanced (see "Why is it important?" on page 30).
  2920.   Systems management tasks like background "agents"  to collect configuration
  2921.   and performance data, are very difficult to implement except in a pre-emptive
  2922.   multi-tasking system (see "OS/2 for client-server" on page 109).
  2923.  
  2924.   Multi-tasking is pre-emptive when the processor allocates a finite time to
  2925.   each task, and then switches the processor to another task, even if the first
  2926.   task is not "ready" to give up the processor.  Non-pre-emptive implies that
  2927.   tasks can "hold on" to the processor within certain limits.
  2928.  
  2929.  
  2930.   WHY IS IT IMPORTANT?
  2931.  
  2932.   To understand the significance of the difference between pre-emptive and
  2933.   non-pre-emptive multi-tasking, it is useful to contrast the approach taken by
  2934.   a DOS multi-tasker like Windows 3.x, with OS/2's approach.
  2935.  
  2936.   +---------------------------------------------------------------------------+
  2937.   |                                                                           |
  2938.   |                                                                           |
  2939.   +---------------------------------------------------------------------------+
  2940.   Figure 4. Multi-tasking under Windows 3.x
  2941.  
  2942.   Windows 3.x implements a time-slicing scheduler on top of DOS, which is in
  2943.   itself a single-tasking operating system. In Windows Enhanced mode (which
  2944.   requires a 386 or above - see "Windows 3.x modes" on page 54), DOS
  2945.   applications run in virtual machines which are pre-emptively multi-tasked;
  2946.   Windows applications run together in one separate virtual machine; this
  2947.   process is pre-emptively multi-tasked in relation to the other DOS sessions.
  2948.  
  2949.   However, Windows applications themselves only support co-operative
  2950.   multi-tasking, which means that Windows applications need to be "well
  2951.   behaved" to give up the processor attention to allow other tasks to proceed,
  2952.   with specific use of functions such as yield(). Windows applications are
  2953.   therefore pre-emptively multi-tasked with respect to the rest of the system,
  2954.   but only co-operatively among Windows applications. When a Windows program
  2955.   needs to do some lengthy processing, or is waiting for I/O, it needs to take
  2956.   special precautions against halting all other Windows programs for this
  2957.   duration.  Needless to say, some do not, and that is why the user can be
  2958.   frequently faced with the hourglass icon for periods of time when doing
  2959.   extensive processing or I/O. Furthermore, a Windows application has no
  2960.   guarantee of processor time within any period, which can potentially cause
  2961.   problems for applications needing regular processor attention, such as
  2962.   communications programs.
  2963.  
  2964.   Even though DOS applications are pre-emptively multi-tasked in Windows, the
  2965.   scheduler algorithm is fairly unsophisticated, time-slicing on a static
  2966.   allocation basis (the proportions can be tuned by the user, but they remain
  2967.   static). This means that, even though an application may be unable to make
  2968.   any effective use of its processor share (for example when it is tied up with
  2969.   an I/O request), it will get it anyway, even though more deserving candidates
  2970.   are waiting their turn. Thus the multi-tasking can be bogged down with
  2971.  
  2972.  
  2973.  
  2974.                                                       OS/2 2.0 key elements  30
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.   applications that are "I/O bound," like Application 1 in the above diagram,
  2985.   waiting for an I/O device to respond.
  2986.  
  2987.   Finally, since DOS itself is single-tasking, it has only one I/O queue, and
  2988.   cannot therefore easily handle multiple I/O requests except by processing
  2989.   them serially. So extenders like Windows that rely on DOS may be further
  2990.   weighed down by the single-tasking character of the operating system.
  2991.  
  2992.   One of the best illustrations of the I/O limitations of Windows 3.0 or 3.1 is
  2993.   to try running a spreadsheet recalculation, and a download from a host
  2994.   machine to the hard disk, while also attempting to format a floppy disk from
  2995.   the DOS prompt (not unlike the scenario we discussed previously). You will
  2996.   see that at least one of the tasks (usually the diskette format if it is not
  2997.   in the foreground) will process in a very "jumpy" way, and often will pause
  2998.   for very long periods. It is not unusual in such a scenario, to see one of
  2999.   the tasks come to a near standstill as the others progress. If one of the
  3000.   background applications is a communications program, the lack of processing
  3001.   time available to the background application may even result in loss of data.
  3002.  
  3003.   +---------------------------------------------------------------------------+
  3004.   |                                                                           |
  3005.   |                                                                           |
  3006.   +---------------------------------------------------------------------------+
  3007.   Figure 5. Multi-tasking under OS/2
  3008.  
  3009.   In contrast, OS/2 pre-emptively multi-tasks all processes, and also provides
  3010.   another, more granular unit of execution - the thread.  Threads can be
  3011.   thought of as distinct subroutines within a process, which can execute
  3012.   without immediate reference to the main logic, such as file I/O, database
  3013.   read/write, recalculation.  In OS/2 these threads can be dispatched
  3014.   separately, and be multi-tasked with each other, and along with other
  3015.   processes.  In fact, the basic unit of execution for the scheduler is the
  3016.   thread, and all processes contain at least one thread.
  3017.  
  3018.   The advantage of threads is that more time-consuming operations can be put
  3019.   into separate threads, and the main thread of the program devoted to user
  3020.   input; this helps the application to maintain an interactive and responsive
  3021.   feel even when processing other sub-tasks in the background (see Application
  3022.   1 in the diagram).  In this way, threads help prevent the kind of "I/O bound"
  3023.   feel to many DOS and Windows programs.  But it should be noted that use of
  3024.   threads applies to more than just I/O operations:  it is a powerful tool that
  3025.   can be used for any operation that can be run in background while allowing
  3026.   the user to regain control of the application, for further input.
  3027.  
  3028.   Threads do not exist in any currently available version of Windows (at the
  3029.   time of writing). Indeed, though the promised future product, Windows/NT (a
  3030.   different operating system) is claimed to offer multi-threading, Windows
  3031.   applications will need to be rewritten to take advantage of this facility,
  3032.   since Windows 3.x programs are inherently single-threaded. Porting from a
  3033.   Windows 16-bit program to a future 32-bit version of the Windows API will not
  3034.   be enough, nor can threads be easily added later; they must be woven into the
  3035.   basic design of the program to be used effectively. In fact, another promised
  3036.   feature of Windows/NT, symmetric multiprocessing, may have little value until
  3037.   multi-threaded Windows programs exist.  Symmetric multiprocessing is the
  3038.  
  3039.  
  3040.                                                       OS/2 2.0 key elements  31
  3041.  
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.   ability of a system to run multiple threads of execution on different
  3051.   processors concurrently (eg on multiple 486s within the same machine).  By
  3052.   definition it requires a multi-threaded system, and therefore, to take full
  3053.   advantage of it, multi-threaded applications, and Windows today is only
  3054.   single-threaded. So this feature will need new versions of applications to
  3055.   show its advantage. In fact, the most likely early candidates for
  3056.   multi-threaded Windows/NT programs are those (like Sybase SQL Server and
  3057.   Oracle) that are already multi-threaded by design because they exist today as
  3058.   multi-threaded OS/2 programs. It is one of many examples where Windows/NT
  3059.   promises little that is not already available with OS/2 Version 2.0.
  3060.  
  3061.   Again, in contrast with DOS and Windows 3.x, the OS/2 scheduler is much more
  3062.   intelligent than a simple time-slicer.  It can detect when applications are
  3063.   I/O bound (like Application 2 in the diagram), and shift CPU time to another
  3064.   thread or process.  Thus, priorities can be changed dynamically to preserve
  3065.   overall system responsiveness.
  3066.  
  3067.   And, to complete the picture, since OS/2 itself has a multi-tasking,
  3068.   multi-threaded design, it can provide multiple I/O queues and therefore
  3069.   overlapped I/O between processes. This helps to improve the perceived
  3070.   performance, especially in heavy system loads.
  3071.  
  3072.   The following table summarises the differences between Windows 3.x and OS/2
  3073.   2.0:
  3074.  
  3075.   +---------------------------------------------------------------------------+
  3076.   | Table 4. Multi-tasking - Windows 3.x and OS/2 2.0                         |
  3077.   +------------------------+-------------------------+------------------------+
  3078.   |                        | WINDOWS 3.X             | OS/2 2.0               |
  3079.   +------------------------+-------------------------+------------------------+
  3080.   | Multi-tasking DOS      | pre-emptive             | pre-emptive            |
  3081.   | applications           |                         |                        |
  3082.   +------------------------+-------------------------+------------------------+
  3083.   | Multi-tasking Windows  | co-operative            | pre-emptive (if in     |
  3084.   | applications           |                         | separate VDMs)         |
  3085.   +------------------------+-------------------------+------------------------+
  3086.   | Priority               | static                  | dynamic                |
  3087.   +------------------------+-------------------------+------------------------+
  3088.   | I/O processing         | serial, single queue    | overlapped, multiple   |
  3089.   |                        |                         | queues                 |
  3090.   +------------------------+-------------------------+------------------------+
  3091.  
  3092.   What this means to the user is that OS/2's multi-tasking is smoother, more
  3093.   consistent, less likely to be bogged down by I/O or by an application
  3094.   attempting to monopolise the processor, and more responsive and interactive
  3095.   in feel.
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.                                                       OS/2 2.0 key elements  32
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.   MULTI-TASKING AND THE USER INTERFACE
  3117.  
  3118.   One of the advantages of a graphical environment is that it can represent
  3119.   concurrent tasks by icons and windows on the screen, thereby giving a visual
  3120.   indication of the number and variety of tasks. This is true of both Windows
  3121.   and OS/2.
  3122.  
  3123.   However, OS/2 2.0 builds on the basic benefits of the "first generation" GUIs
  3124.   like Windows 3.x and OS/2 1.3, and adds some features specifically designed
  3125.   to aid smoother multi-tasking and switching between tasks:
  3126.  
  3127.   o   the "Window List" is more functional than the Windows 3.x task list,
  3128.       allowing several applications to be "resurfaced" on the screen, or
  3129.       closed, at once, rather than moving to and clicking on discrete icons for
  3130.       each task
  3131.  
  3132.   o   the ability to "hide" windows when not in use, rather than reducing to an
  3133.       icon on the screen(2) , results in a less cluttered desktop, making it
  3134.       easier to find what you want quicker, especially in screen resolutions
  3135.       with limited screen "real estate," such as VGA.
  3136.  
  3137.   o   OS/2 2.0 allows whole groups of applications and data to be grouped
  3138.       together in a logical unit (a "project," as it were) by putting them
  3139.       together in a common folder. This is more convenient and flexible than
  3140.       just creating directories and copying files manually, as you would have
  3141.       to in DOS and Windows. (You can also be more flexible in naming such
  3142.       folders, going beyond the eight character limits even in a FAT file
  3143.       system - see "Descriptive names" on page 92)
  3144.  
  3145.   o   Each folder can also be given a "workarea" property.  This allows several
  3146.       applications to be opened, hidden or closed, together, simply by opening
  3147.       or closing the folder, rather than going to each window individually.
  3148.       For example, a folder containing a spreadsheet, word processor and
  3149.       graphics applications may have all these programs running together, but
  3150.       then close them or hide them in a single operation on the folder, and
  3151.       restore them all to the state they were in previously, in another single
  3152.       operation.  This means the whole state of work in progress can be quickly
  3153.       set aside, and another begun or resumed easily.  OS/2's ability to save
  3154.       and restore what you were doing from one boot to another is a specific
  3155.       example of this workarea feature
  3156.  
  3157.   None of these user interface features appear in either Windows 3.x or in the
  3158.   current beta test releases of Windows/NT.  The result of all of this is that
  3159.   the Workplace Shell is much easier to use in a multi-tasking scenario than
  3160.   older GUIs.  The user interface matches the internal design in being
  3161.   optimised for multiple tasks, making it easy to move from one task to the
  3162.   next.
  3163.  
  3164.   ---------------
  3165.  
  3166.   (2) Windows can either be hidden (the installed default), minimised to the
  3167.       desktop, as happens in Windows 3.x and OS/2 1.3, or minimised to a
  3168.       Minimised Window Viewer, according to the user's preference.  This can be
  3169.       set on a per-object basis.
  3170.  
  3171.  
  3172.                                                       OS/2 2.0 key elements  33
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.   FILE SYSTEMS
  3183.   ____________
  3184.  
  3185.   OS/2 offers superior file system support, which leads to increased
  3186.   performance.  The OS/2 architecture also allows other file systems to be
  3187.   installed in a modular fashion (Installable File Systems or IFS). It is
  3188.   therefore more flexible in design to accommodate future enhancements; for
  3189.   example, OS/2 now includes CD-ROM support via an IFS.
  3190.  
  3191.   OS/2 also provides support for very large disks, a consideration that is
  3192.   particularly relevant to server environments. OS/2 supports hard drives up to
  3193.   2GB in size. In Windows 3.1 the limit is only 1GB.
  3194.  
  3195.   OS/2 2.0 provides file I/O services not only to OS/2 applications, but to DOS
  3196.   and Windows applications running in VDMs. Therefore, DOS and Windows
  3197.   applications can take advantage of the advanced function, without having to
  3198.   be modified, since the DOS emulation of MVDM provides a compatible interface
  3199.   to the file system for DOS applications.
  3200.  
  3201.   Both major OS/2 file systems have been improved under OS/2 2.0, allowing
  3202.   better performance not only for applications themselves, but also in the
  3203.   paging performed by the system when using virtual memory.
  3204.  
  3205.  
  3206.   HIGH PERFORMANCE FILE SYSTEM (HPFS)
  3207.  
  3208.   HPFS was first introduced to OS/2 in version 1.2, and is an example of the
  3209.   kind of advanced function that has not yet been implemented in less
  3210.   sophisticated systems like DOS.  It was introduced as an alternative to the
  3211.   File Allocation Table (FAT) system which came from DOS.  HPFS is particularly
  3212.   good for managing large disks and partitions or large files.  It provides
  3213.   fast and consistent performance, outperforming DOS-based FAT systems in tests
  3214.   run by IBM, in nearly all cases. (OS/2 2.0 implements an enhanced FAT system
  3215.   that uses some similar caching features as HPFS, which can also give high
  3216.   performance in many circumstances - see below).
  3217.  
  3218.   HPFS is particularly good in disk utilisation (compared to FAT).  It uses a
  3219.   highly contiguous file allocation system, which results in especially good
  3220.   performance (relative to FAT) in accessing files or data in a cluttered or
  3221.   full partition.  It implements a B-Tree directory structure and search
  3222.   algorithm, as opposed to sequential under FAT.  HPFS also allows for
  3223.   multi-threaded I/O, caching of directory pointers in memory for quicker
  3224.   access of last directories used, and read-ahead and lazy write (lazy write
  3225.   buffers up write requests from applications and commits them to disk after a
  3226.   given time or during disk inactivity.)  These advanced features allow for
  3227.   substantial performance increases and greater tuning.  HPFS can also provide
  3228.   write error recovery on the fly with "hotfix"  facilities.
  3229.  
  3230.   Since it is FAT-compatible at API level, applications running under OS/2 can
  3231.   use either system, and do not have to be written specifically for one or the
  3232.   other.  It also presents a consistent interface to other components of OS/2
  3233.   like MVDM, to allow DOS and Windows to use HPFS volumes as if they were FAT.
  3234.  
  3235.   HPFS also supports the use of long file names, for greater usability, so
  3236.   instead of having LJS1290.TXT, you can have a file name "Letter to John Smith
  3237.  
  3238.  
  3239.                                                       OS/2 2.0 key elements  34
  3240.  
  3241.  
  3242.  
  3243.  
  3244.  
  3245.  
  3246.  
  3247.  
  3248.  
  3249.   December 90."  Obviously applications need to be coded with this in mind.
  3250.   DOS and Windows applications can use files that adhere to the 8.3 naming
  3251.   system on HPFS without any difficulty.
  3252.  
  3253.   HPFS has been enhanced in version 2.0 to add performance-related features
  3254.   such as command chaining (providing a list of contiguous sector requests
  3255.   required to fulfil an I/O request) and scatter/gather facilities such as are
  3256.   supported in Small Computer Systems Interface (SCSI) adapters to gather
  3257.   physically discontiguous pages in a data buffer, and perform I/O in a single
  3258.   operation.
  3259.  
  3260.  
  3261.   ENHANCED FAT
  3262.  
  3263.   OS/2 2.0 includes an enhanced version of the FAT file system which is
  3264.   completely compatible with the FAT system under DOS.  This gives greater
  3265.   performance but full compatibility with existing FAT systems.  It adds
  3266.   features like lazy write and improved caching to FAT.  This means that DOS
  3267.   applications running with a FAT file system under OS/2 2.0 will be
  3268.   substantially faster for disk-based operations than under DOS.  All of these
  3269.   benefits can be obtained without having to reformat your hard disk - the OS/2
  3270.   enhanced FAT driver works with existing DOS FAT volumes.
  3271.  
  3272.  
  3273.   SCB EXPLOITATION
  3274.  
  3275.   OS/2 2.0 implements the Subsystem Control Block (SCB) architecture for more
  3276.   intelligent and efficient disk access. SCB defines a standard way of
  3277.   communicating between device drivers running on the main system CPU, and I/O
  3278.   processors located on advanced function adapters (like SCSI) that are capable
  3279.   of operating independently from the CPU. SCB therefore fits naturally with
  3280.   the use of SCSI adapters, and will allow better exploitation of SCSI
  3281.   functions like scatter/gather and command chaining.  The implementation is
  3282.   transparent to the OS/2 user and the developer; there are no application
  3283.   considerations, simply improved performance.  It is simply a means of getting
  3284.   more out of a system that provides advanced intelligent adapters for disk
  3285.   I/O.  Exploitation of newer, more advanced devices such as SCSI is better
  3286.   under OS/2 than under Windows, which does not provide such features.
  3287.  
  3288.  
  3289.   BROAD HARDWARE SUPPORT
  3290.   ______________________
  3291.  
  3292.   OS/2 1.x was separately distributed by both IBM and Microsoft. IBM delivered
  3293.   IBM OS/2, which was specifically optimised for and supported on IBM equipment
  3294.   (AT and PS/2 family), while Microsoft distributed MS OS/2 to its OEMs like
  3295.   Compaq and Olivetti (many of these versions had manufacturer-specific
  3296.   modifications too). This meant that there were different versions of OS/2
  3297.   according to the machine it ran on. Although this was not in essence any
  3298.   different than had always been the case for DOS, the perception was that
  3299.   supporting OS/2 in a mixed hardware environment was hampered by the lack of a
  3300.   "generic" version of OS/2.
  3301.  
  3302.   This problem has been overcome in OS/2 2.0, which supports a broad range of
  3303.   machines with an Intel 386SX or above, with a single version of OS/2. This
  3304.  
  3305.  
  3306.                                                       OS/2 2.0 key elements  35
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.  
  3313.  
  3314.  
  3315.  
  3316.   shows that OS/2 2.0 does not run only on IBM equipment.  Open hardware
  3317.   support applies not only to the base system, but also to Extended Services
  3318.   for OS/2 and OS/2 LAN Server (some models may require more memory installed
  3319.   to run the systems extensions).  IBM supplies regularly updated lists of the
  3320.   models it has tested via bulletin boards (see the list in Appendix D, "OS/2
  3321.   Bulletin Board Systems" on page 161) and IBM representatives. Among the
  3322.   vendors whose models are supported, are Compaq, AST, Olivetti, Toshiba,
  3323.   Hewlett Packard, Dell, Gateway, Wang, DEC, NCR, Tandy, ACER, CompuAdd and
  3324.   many others.  Ask your IBM representative to look for the PCMTABLE package on
  3325.   the MKTTOOLS disk.
  3326.  
  3327.   In fact, even though IBM cannot test OS/2 on all the models and manufacturers
  3328.   in the market, it is likely that most PCs equipped with an Intel 386SX or
  3329.   above processor, will work.  More models are being tested all the time, and
  3330.   IBM is committed to working with as many manufacturers as possible to
  3331.   determine OS/2 compatibility.  Indeed, the evidence from user registrations
  3332.   for OS/2 2.0 in Europe alone, suggests that users are already running OS/2
  3333.   2.0 on hundreds of machines that have not yet appeared on any "official"
  3334.   list.  By 2 September, 1992, 802 models had been recorded from registration
  3335.   cards that do not appear on the list of tested models.
  3336.  
  3337.   OS/2 is not limited to machines with Micro Channel architecture.  Even the
  3338.   supported PS/2 models include AT-bus machines like the Model 40, as well as
  3339.   Micro Channel machines like the Model 57.  AT-bus, Micro channel and EISA
  3340.   machines from a variety of vendors are supported.
  3341.  
  3342.   Furthermore, IBM is now making OS/2 2.0 available, preloaded on the hard disk
  3343.   of selected IBM PS/2 models, including the Models 56 and 57. This is a
  3344.   convenience for users, who do not need to install the operating system at
  3345.   all, but can switch on the PC to discover the system already set up for their
  3346.   use, along with a number of new applets and help on using the system. IBM is
  3347.   making this facility available to other IBM-compatible hardware
  3348.   manufacturers, and arrangements have already been made with a number of
  3349.   vendors, including Dell and Olivetti, to provide OS/2 2.0 with selected
  3350.   models in their hardware range. Contact your supplier for the latest
  3351.   information.
  3352.  
  3353.   OS/2 also has broad support for different displays, disks and printers.  Most
  3354.   of the major display standards (VGA, 8514, XGA) have full support.  SuperVGA
  3355.   (SVGA) support exists for some adapter types already (some existed in OS/2
  3356.   1.3), and more drivers are appearing from the SVGA chip set vendors like
  3357.   Trident and Tseng.  Many SVGA DOS and Windows drivers are also supported in
  3358.   full screen DOS and WIN-OS/2 sessions, even if the main desktop has to run in
  3359.   VGA mode if there is no PM screen driver.  IBM plans further enabling of
  3360.   SuperVGA support in an update option to be made available by the end of 1992.
  3361.  
  3362.   OS/2 supports 205 models of printer, which covers over 90% of the printer
  3363.   market, from dot matrix, to inkjet and laser printers.  Models from the major
  3364.   vendors like Epson, Hewlett Packard and IBM receive wide coverage (look at
  3365.   the file PMSETUP.INF in the \OS2 directory for the complete list). There is
  3366.   also generic text printing support which should work on any printer.
  3367.   Furthermore, if a Windows driver exists for a device, it can be installed in
  3368.   WIN-OS/2, and used for Windows applications running under OS/2 2.0 (the
  3369.   product includes additional Windows printer drivers for Canon, HP and NEC
  3370.  
  3371.  
  3372.                                                       OS/2 2.0 key elements  36
  3373.  
  3374.  
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.   printers).  Where both a Windows and an OS/2 printer driver exist, they can
  3383.   both be installed in one step at installation time.
  3384.  
  3385.   Generic INT13 disk support is provided in OS/2 2.0, which should allow most
  3386.   of the common drive types to work.  IBM and Adaptec have developed a common
  3387.   specification which will make the development of vendor-specific SCSI drives
  3388.   much easier.  Drivers already exist for some of the OEM SCSI adapter vendors.
  3389.   More are in development, and IBM is producing tools to help support the
  3390.   development of drivers for displays, printers and disks.
  3391.  
  3392.   OS/2 1.x suffered from a relative lack of OS/2 device driver support, but
  3393.   OS/2 2.0 can make use of many devices via their DOS device driver (see "DOS
  3394.   device drivers" on page 46). Devices such as hand scanners and fax cards can
  3395.   often be supported in this way, broadening the range of devices available to
  3396.   OS/2 users.
  3397.  
  3398.   OS/2 device support is broadening as the industry increases its support, but
  3399.   IBM continues to develop drivers itself and work with other vendors to ensure
  3400.   that even wider support is provided.
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.                                                       OS/2 2.0 key elements  37
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.   BETTER DOS
  3449.   __________
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.   There are over 20,000 DOS applications available today. In order to be an
  3456.   integrating platform for PC-based applications, the primary task for OS/2 2.0
  3457.   is to fully support that wide range of applications.
  3458.  
  3459.   OS/2 version 1.3 was limited in the support it could provide for DOS
  3460.   applications, mainly due to the limitations of the 286 architecture on which
  3461.   the OS/2 1.x base was designed. However, use of the 386, and in particular
  3462.   the virtual 8086 mode of the processor, allows DOS applications support to be
  3463.   much more extensive in version 2.0 - indeed, a better DOS than DOS itself.
  3464.  
  3465.  
  3466.   MULTIPLE DOS APPLICATIONS
  3467.   _________________________
  3468.  
  3469.   Several DOS applications can be run at once in OS/2 2.0.  All DOS
  3470.   applications can be invoked from an icon on the Workplace Shell desktop, or
  3471.   from any DOS or OS/2 command prompt.  They can be run in a full screen
  3472.   session (rather like they were in 1.3), or windowed on the Workplace Shell
  3473.   desktop.  Both text-based applications (such as Lotus 1-2-3 v2.2 and
  3474.   WordPerfect) and applications that run in graphics mode (such as Lotus
  3475.   Freelance Plus or Harvard Graphics, as well as the Microsoft Flight Simulator
  3476.   or other games programs) can be run.  Graphics mode applications can be run
  3477.   windowed alongside text-based applications running in windows.  This cannot
  3478.   be done without restrictions in Windows 3.0, and although Windows 3.1 does
  3479.   allow VGA graphics to run in a window, this feature will not be available
  3480.   under Windows/NT, where, according to Microsoft, the application will have to
  3481.   run full screen.
  3482.  
  3483.   +---------------------------------------------------------------------------+
  3484.   |                                                                           |
  3485.   |                                                                           |
  3486.   +---------------------------------------------------------------------------+
  3487.   Figure 6. Multiple DOS applications in windows on the Workplace Shell desktop
  3488.  
  3489.   DOS applications running in a window on the Workplace Shell desktop can take
  3490.   advantage of many of the ease of use features of the Workplace Shell, such as
  3491.   sizing the window to a convenient size, tiling windows so several
  3492.   applications can appear alongside each other, and hiding them to make more
  3493.   space on the screen while leaving the application running.  Furthermore, many
  3494.   DOS applications will be able to take advantage of the font support in PM
  3495.   windows:  you can change the font size to better suit the size of the window
  3496.   you are running in (the range of sizes available is determined by the display
  3497.   adapter you are using - on VGA, for example, there are 10).  Again, all of
  3498.   this support is provided by PM:  no modification is required to the DOS
  3499.   application.  Contrast this with DOS, where getting a small font size for
  3500.   applications like Lotus 1-2-3, requires re-running the Install program, and
  3501.   the risk of creating an invalid setup.
  3502.  
  3503.  
  3504.  
  3505.  
  3506.                                                                  Better DOS  38
  3507.  
  3508.  
  3509.  
  3510.  
  3511.  
  3512.  
  3513.  
  3514.  
  3515.  
  3516.   DOS applications that support the mouse get use of the mouse, even when
  3517.   running in a window (there are DOS settings to give the DOS application
  3518.   exclusive use of the mouse pointer while in the application window - see "DOS
  3519.   Settings" on page 47). This is much easier to set up in OS/2 2.0 than it is
  3520.   under Windows 3.1 (Windows 3.0 did not support DOS windowed applications
  3521.   using a mouse), as it only requires one change to the DOS settings (which are
  3522.   automatically set up for many programs via the Migrate option - see
  3523.   "Migrating applications" on page 51); in Windows 3.1, you need to have
  3524.   already installed the DOS mouse driver in AUTOEXEC.BAT or CONFIG.SYS (thus
  3525.   reducing the memory available to all DOS applications whether or not they use
  3526.   the mouse).
  3527.  
  3528.   All of this means that, without changing any of your DOS applications, the
  3529.   Workplace Shell environment can "add value" to the applications while
  3530.   preserving full compatibility with the way they are used under DOS.
  3531.  
  3532.  
  3533.   APPLICATION INTEGRATION
  3534.   _______________________
  3535.  
  3536.   OS/2's DOS support is not simply a question of compatibility - under OS/2
  3537.   2.0, you can make your applications work together in a way that is not
  3538.   possible under plain DOS.  It is possible to copy information from one
  3539.   application to the clipboard, and paste it into another.  This can be between
  3540.   two DOS applications, between a DOS application and an OS/2 application, or
  3541.   any combination of DOS, Windows and OS/2 applications.
  3542.  
  3543.   Moreover, both text and graphics can be cut and pasted between applications,
  3544.   (although graphics can only be received by those applications that are
  3545.   capable of handling bitmap data - mainly OS/2 and Windows applications). This
  3546.   allows two-way sharing of data between applications.
  3547.  
  3548.   This means that DOS applications not only integrate better with GUI
  3549.   applications written for Windows and OS/2, but also with other DOS
  3550.   applications, even though they may not have been written to work together.
  3551.  
  3552.   Imagine, for example, if you were using the DOS versions of Lotus 1-2-3 and
  3553.   WordPerfect, and you wanted to incorporate some figures from your spreadsheet
  3554.   into the report you are writing on the word processor.  Under DOS, you would
  3555.   need to quit one application (the word processor) to load another (the
  3556.   spreadsheet), retrieve the spreadsheet file and make the conversion into a
  3557.   file format the word processor understands (perhaps plain ASCII, thus losing
  3558.   any formatting you have created in the spreadsheet), exit the spreadsheet
  3559.   application, load the word processor and the report again, and import the
  3560.   data into your report.  Whereas in OS/2 2.0, you can simply use the
  3561.   clipboard.  With the applications running side by side in windows on the
  3562.   desktop, mark some data from the spreadsheet, copy it to the clipboard, and
  3563.   paste it into the word processor - all without closing files or applications.
  3564.   The clipboard takes care of any data conversion.  As the number of
  3565.   applications you need to integrate grows, so the difficulty of remembering
  3566.   different methods of data conversion grows, but in OS/2 2.0, the user simply
  3567.   works with copy and paste each time.
  3568.  
  3569.   Thus, standard, unmodified DOS applications can be integrated under the OS/2
  3570.   Workplace Shell.  DOS applications can also be written to take advantage of
  3571.  
  3572.  
  3573.                                                                  Better DOS  39
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.   the OS/2 environment, or OS/2 applications written to start DOS applications.
  3584.   One example of this is the OS/2 command prompt in OS/2 2.0, which can start
  3585.   DOS applications simply by typing the name of the .EXE file, just as one
  3586.   would from a DOS command prompt.  This helps to reduce the need to
  3587.   differentiate between DOS and OS/2 applications, from the user's point of
  3588.   view.
  3589.  
  3590.   Another method of integration is via the named pipes mechanism, which allows
  3591.   DOS and OS/2 applications to be written to communicate with each other.
  3592.  
  3593.  
  3594.   MULTI-TASKING OF DOS APPLICATIONS
  3595.   _________________________________
  3596.  
  3597.   Not only can several DOS applications run at the same time, in separate
  3598.   windows on the Workplace Shell desktop, but each continues to run in the
  3599.   background while you are working on another.  In this way, DOS applications
  3600.   can take advantage of OS/2's pre-emptive multi-tasking, overlapped I/O, and
  3601.   OS/2 file system performance.  Let's take a look at each of these in turn:
  3602.  
  3603.  
  3604.   PRE-EMPTIVE MULTI-TASKING
  3605.  
  3606.   As was explained earlier ("Multi-tasking" on page 28), OS/2 was designed to
  3607.   manage processor time smoothly between multiple applications, not only OS/2
  3608.   applications, but also DOS and Windows applications running in Virtual DOS
  3609.   Machines (VDMs).  This is more sophisticated than the simple time-slicing
  3610.   mechanism employed by Windows 3.x, and takes into account, for example, when
  3611.   applications are "I/O bound," waiting for an I/O device to respond.  In OS/2
  3612.   priorities can be changed dynamically by the processor according to such
  3613.   criteria, in contrast to the static approach employed by Windows 3.x.
  3614.   Therefore, even though both environments employ pre-emptive multi-tasking for
  3615.   DOS applications, the OS/2 scheduler is more sophisticated than Windows'
  3616.   scheduler.  Relative performance between applications can be tuned by a
  3617.   number of DOS settings (see "DOS Settings" on page 47 for some examples of
  3618.   DOS settings).
  3619.  
  3620.   The result of all of this, is that OS/2 provides a more balanced performance
  3621.   between applications, not only those from DOS, but between them and Windows
  3622.   and OS/2 applications.
  3623.  
  3624.  
  3625.   OVERLAPPED I/O
  3626.  
  3627.   All DOS applications have their I/O requests serviced by OS/2 (although the
  3628.   application makes calls to DOS I/O in the same way as usual, they are trapped
  3629.   and serviced by OS/2).
  3630.  
  3631.   This allows DOS applications to take advantage of OS/2's better I/O
  3632.   capabilities without needing to be rewritten. Just by running under OS/2 they
  3633.   can benefit from OS/2's ability to overlap I/O requests and services. This
  3634.   improves performance in many scenarios, particularly where multiple
  3635.   applications are running.
  3636.  
  3637.  
  3638.  
  3639.  
  3640.                                                                  Better DOS  40
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.   ACCESS TO OS/2 FILE SYSTEM
  3651.  
  3652.   Although DOS applications have not been written to use the OS/2 file systems,
  3653.   they can without modification use them and derive the same benefits as OS/2
  3654.   applications do. All file access uses the OS/2 file system. Both the HPFS and
  3655.   enhanced FAT file systems under OS/2 provide superior performance compared to
  3656.   DOS(3)
  3657.  
  3658.   Therefore despite the inevitable multi-tasking overhead, many applications
  3659.   will perform just as well, and some will perform better, than under native
  3660.   DOS.  In test cases run by IBM, multi-tasking performance of DOS applications
  3661.   was superior to that under Windows 3.x.
  3662.  
  3663.  
  3664.   MEMORY USAGE
  3665.   ____________
  3666.  
  3667.   Memory has been one of the biggest constraints on the development of the DOS
  3668.   environment. The 640KB limit was for a long time an inhibiting factor for
  3669.   many users and application developers. Despite many workarounds, such as the
  3670.   LIM expanded memory, use of the HMA area, and the growth of DOS extenders
  3671.   (see "Memory: Conventional, Expanded, Extended" on page 21 for a more
  3672.   detailed discussion), memory management under DOS is a complex and
  3673.   frustrating task, and there still remain limitations for the large number of
  3674.   DOS applications written to use only conventional memory below the 640KB
  3675.   mark.
  3676.  
  3677.  
  3678.   COMPARISON WITH MEMORY USAGE UNDER DOS
  3679.  
  3680.   Part of the problem has been that successive releases of DOS have added
  3681.   function, but removed some of the vital conventional address space. The
  3682.   following chart shows the relative memory sizes free under various versions
  3683.   of DOS:
  3684.  
  3685.   +---------------------------------------------------------------------------+
  3686.   |                                                                           |
  3687.   |                                                                           |
  3688.   +---------------------------------------------------------------------------+
  3689.   Figure 7. DOS application memory space - a comparison
  3690.  
  3691.   As the chart also shows, OS/2 Version 2.0 provides a DOS conventional memory
  3692.   of 633KB, at least as good, if not better, than even DOS 5.0 or DR-DOS 6.0.
  3693.   (The respective vendors of both of the latter products promote the amount of
  3694.   memory free as key selling points for their systems).
  3695.  
  3696.   And that is only for default configurations. In the real world, many device
  3697.   drivers are needed for various applications, whether for memory (expanded or
  3698.   extended), connectivity (LAN, 3270), or mouse. In OS/2 2.0 these features are
  3699.   supported without taking precious conventional memory away, whereas, even in
  3700.  
  3701.   ---------------
  3702.  
  3703.   (3) See, for example, the benchmarks run by NSTL in their Software Digest
  3704.       Ratings Report Volume 9, Number 4
  3705.  
  3706.  
  3707.                                                                  Better DOS  41
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.   systems like DOS 5.0 that can move certain device drivers into the HMA area,
  3718.   there is nearly always a conventional memory impact. The following table
  3719.   shows some sample configurations which illustrate this point vividly:
  3720.  
  3721.   +---------------------------------------------------------------------------+
  3722.   | Table 5. Memory comparison: OS/2 2.0, DOS 5.0, Windows 3.1 enhanced mode  |
  3723.   +-------------------------------------+------------+------------+-----------+
  3724.   |                                     | OS/2 2.0   | DOS 5.0    | WINDOWS   |
  3725.   |                                     |            |            | 3.1       |
  3726.   +-------------------------------------+------------+------------+-----------+
  3727.   | Conventional DOS memory after       | 633KB      | 622KB      | 577KB     |
  3728.   | default install                     |            |            |           |
  3729.   +-------------------------------------+------------+------------+-----------+
  3730.   | Various scenarios, built on default configuration:                        |
  3731.     __________________________________________________
  3732.   +---------------------------------------------------------------------------+
  3733.   | CONFIG #1 - POPULAR FEATURES                                              |
  3734.   +-------------------------------------+------------+------------+-----------+
  3735.   |   file I/O                          | YES        | 1          | 1         |
  3736.   +-------------------------------------+------------+------------+-----------+
  3737.   |   EMS                               | YES        | 8          | 8         |
  3738.   +-------------------------------------+------------+------------+-----------+
  3739.   |   mouse                             | YES        | 14         | 14        |
  3740.   +-------------------------------------+------------+------------+-----------+
  3741.   |   fast file access                  | YES        | 20         | 20        |
  3742.   +-------------------------------------+------------+------------+-----------+
  3743.   | REMAINING APPLICATION MEMORY        | 633KB      | 579KB      | 534KB     |
  3744.     ____________________________
  3745.   +-------------------------------------+------------+------------+-----------+
  3746.   | CONFIG #2 - LAN CONNECTIVITY                                              |
  3747.   +-------------------------------------+------------+------------+-----------+
  3748.   |   LAN adapter drivers and LAN       | YES        | 100        | 100       |
  3749.   | requester                           |            |            |           |
  3750.   +-------------------------------------+------------+------------+-----------+
  3751.   | REMAINING APPLICATION MEMORY        | 633KB      | 522KB      | 477KB     |
  3752.     ____________________________
  3753.   +-------------------------------------+------------+------------+-----------+
  3754.   | CONFIG #3 - 3270 CONNECTIVITY                                             |
  3755.   +-------------------------------------+------------+------------+-----------+
  3756.   |   3270 adapter drivers and emulator | YES        | 28         | 28        |
  3757.   +-------------------------------------+------------+------------+-----------+
  3758.   | REMAINING APPLICATION MEMORY        | 633KB      | 594KB      | 549KB     |
  3759.     ____________________________
  3760.   +-------------------------------------+------------+------------+-----------+
  3761.   | CONFIG #4 - NLS PACKAGE/COUNTRY SUPPORT                                   |
  3762.   +-------------------------------------+------------+------------+-----------+
  3763.   |   NLS keyboard                      | YES        | 7          | 7         |
  3764.   +-------------------------------------+------------+------------+-----------+
  3765.   |   NLS display                       | YES        | 8          | 8         |
  3766.   +-------------------------------------+------------+------------+-----------+
  3767.   |   NLS printer                       | YES        | 11         | 11        |
  3768.   +-------------------------------------+------------+------------+-----------+
  3769.   |   NLS other (eg codepage)           | YES        | 5 (min)    | 5 (min)   |
  3770.   +-------------------------------------+------------+------------+-----------+
  3771.   | REMAINING APPLICATION MEMORY        | 633KB      | 591KB      | 546KB     |
  3772.     ____________________________
  3773.   +-------------------------------------+------------+------------+-----------+
  3774.  
  3775.  
  3776.  
  3777.  
  3778.                                                                  Better DOS  42
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.   Of course, the above configurations are by no means mutually exclusive:  it
  3789.   will be very common to have elements from at least two of the configuration
  3790.   groups above.  Indeed, groups 1, 2 and 3 together could be considered a
  3791.   fairly essential configuration for a corporate, connected workstation,
  3792.   running any modern DOS applications.  That means the difference between OS/2
  3793.   and DOS grows greater.  Note also, of course, that because Windows 3.1 and
  3794.   3.0 are DOS extenders, and run on top of DOS, that any reductions in the
  3795.   memory available for DOS will be passed on to Windows, and to any DOS
  3796.   applications executing under Windows.  While it may not be a problem for
  3797.   Windows applications running in standard or enhanced mode, which use extended
  3798.   memory anyway, it will substantially reduce the effectiveness of most DOS
  3799.   applications running under Windows because of the constraints on conventional
  3800.   memory.
  3801.  
  3802.   The reason OS/2 can provide all these features without loss of DOS
  3803.   application space is because many features are supported by OS/2 device
  3804.   drivers, which are available to OS/2 and DOS applications, and which do not
  3805.   affect the amount of application space available to DOS applications. Only
  3806.   the DOS emulation kernel resides below 1MB. In this way, the MVDM
  3807.   architecture makes available to DOS applications the maximum amount of
  3808.   conventional memory.
  3809.  
  3810.   In fact, if that were not enough, it is possible to increase DOS application
  3811.   space still further.  One of the DOS settings is VIDEO_MODE_RESTRICTION (see
  3812.   "DOS Settings" on page 47).  This frees much of the video buffer space above
  3813.   the 640KB line by restricting applications to text or CGA graphics mode only,
  3814.   allowing more than 720KB memory free - an unheard of figure for DOS users!
  3815.  
  3816.   This increased size of conventional memory space may even mean that, where
  3817.   DOS users could not load TSR programs with larger DOS applications, they can
  3818.   under OS/2! Furthermore, there are many scenarios encountered by Windows 3.x
  3819.   users today, where they require access to a network, and a Windows
  3820.   application, at the same time as using a DOS application that requires 590K
  3821.   or more memory (the latter is not uncommon with the more modern DOS
  3822.   applications).  This combination is usually not possible under Windows 3.x,
  3823.   and the user has to exit Windows to run the DOS application, or remove
  3824.   network support.  Under OS/2 2.0, this setup can be achieved easily.
  3825.  
  3826.   And, of course, more conventional memory means more space for data and, for
  3827.   some DOS applications, better performance, making OS/2 a better DOS
  3828.   environment than DOS itself, by overcoming one of DOS's most fundamental
  3829.   limitations - memory.
  3830.  
  3831.  
  3832.   EXPANDED AND EXTENDED MEMORY
  3833.  
  3834.   OS/2 also supports the full range of other memory types supported under DOS
  3835.   and Windows 3.x: HMA, XMS, expanded and extended memory and DPMI (see
  3836.   "Memory: Conventional, Expanded, Extended" on page 21 for an explanation of
  3837.   these memory types). This means that not only do all DOS applications have
  3838.   more conventional memory available, but those which have been written to
  3839.   access more memory can work in the same way under OS/2 2.0.
  3840.  
  3841.  
  3842.  
  3843.  
  3844.                                                                  Better DOS  43
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.   For example, expanded memory conforms to the LIM 4.0 specification, and will
  3855.   provide expanded memory to applications like Lotus 1-2-3 release 2 using the
  3856.   standard DOS INT 67h services. Each VDM is provided with a separate EMS
  3857.   emulation, so each can access as much expanded memory as necessary, and not
  3858.   conflict with each other. The amount of expanded memory is configurable by
  3859.   the user in DOS settings, as well as a limit set across all VDMs if required.
  3860.   In Windows 3.x, expanded memory can only be used if a physical expanded
  3861.   memory adapter is in the machine, therefore limiting the number of users who
  3862.   can mix applications needing expanded and extended memory.
  3863.  
  3864.   XMS support (LIMA version 2.0 level) is provided via a virtual device driver
  3865.   (the same is true of EMS), and manages three types of memory: High Memory
  3866.   Area (HMA), Upper Memory Blocks (UMBs) in the Upper Memory Area (UMA) and
  3867.   Extended Memory Blocks (EMBs).  These are used by various DOS applications
  3868.   and TSRs, and by Windows 3.x and DOS 5.0.  Just as DOS 5.0 can load part of
  3869.   the system into the HMA, and device drivers into UMBs, so can OS/2 2.0 via
  3870.   the statements DOS=HIGH and DEVICEHIGH= in CONFIG.SYS; these settings can
  3871.   also be made for an individual VDM by changing the DOS Settings DOS_HIGH and
  3872.   DOS_UMB (see "DOS Settings" on page 47).  Furthermore, more extended memory
  3873.   can be provided to DOS applications under OS/2.  DPMI-compliant applications
  3874.   such as Lotus 1-2-3 version 3.1+ can access up to 512MB of extended memory in
  3875.   an OS/2 VDM.
  3876.  
  3877.   The key point is that OS/2 provides compatible services for extended and
  3878.   expanded memory for DOS applications, as well as a larger conventional
  3879.   address space, and also provides higher limits for many of the DOS
  3880.   applications that use extended memory. And this can usually be provided as
  3881.   default without any configuration effort on the user's part.
  3882.  
  3883.  
  3884.   MULTIPLE DOS APPLICATIONS - EFFECT ON MEMORY
  3885.  
  3886.   Runing several DOS applications will not cause an excessive effect on memory
  3887.   use or performance.  Because OS/2 operates a virtual memory system, you do
  3888.   not need to have extra physical memory to have large memory applications, nor
  3889.   to run several of them at once.  Any memory required above what is physically
  3890.   installed will be found by using the disk as virtual memory.  VDMs are
  3891.   swappable when inactive, reducing the overall overhead on physical memory.
  3892.   Furthermore, applications that do not use EMS, XMS or DPMI, can have the
  3893.   default VDM settings changed to remove any expanded/extended memory
  3894.   requirements, thus reducing the overall virtual memory required.
  3895.  
  3896.  
  3897.   RELIABILITY AND PROTECTION
  3898.   __________________________
  3899.  
  3900.   In DOS, most applications run in the real mode of the processor. DOS extender
  3901.   applications execute mainly in protected mode, but still have to switch back
  3902.   to real mode to perform certain I/O instructions (such as most calls to DOS
  3903.   services) or when passing control to TSRs like device drivers. Protected
  3904.   mode, as its name suggests, provides a measure of protection in the CPU
  3905.   between processes, but while in real mode, applications can write to any area
  3906.   of memory.  Errors can exist even in the best-written and well tested of DOS
  3907.   applications, which can cause such system corruption under DOS, often leading
  3908.   to a system crash or hang, forcing the machine to be rebooted.  Windows 3.x,
  3909.  
  3910.  
  3911.                                                                  Better DOS  44
  3912.  
  3913.  
  3914.  
  3915.  
  3916.  
  3917.  
  3918.  
  3919.  
  3920.  
  3921.   as a DOS extender, can be prone to some of these problems.  The problem can
  3922.   be particularly acute under Windows, since one application that crashes may
  3923.   affect all the programs running at that time.  Therefore, the potential for
  3924.   data loss and for wasted time in resetting the system, is even greater.  That
  3925.   is why it is crucial that a multi-tasking environment provides as much
  3926.   protection as is possible.  There is a limit to how much can be achieved
  3927.   under DOS or a DOS extender.
  3928.  
  3929.   In fact, although Windows 3.1 is claimed to provide greater protection than
  3930.   Windows 3.0, by "rebooting" individual DOS sessions and adding parameter
  3931.   checking, it is still as prone as before to the risk of a DOS TSR (such as a
  3932.   DOS network driver) taking the system out of protected mode into real mode
  3933.   (see "Reliability" on page 61). Neither Windows 3.0 nor 3.1 can prevent this
  3934.   "trap door" in its system integrity as long as they run on DOS. It is, in
  3935.   architectural terms, fundamentally prone to such problems, no matter what
  3936.   error checking code is implemented at higher levels.
  3937.  
  3938.   In OS/2 2.0, each VDM emulates an entirely independent instance of DOS, and
  3939.   each VDM has its own separate address space (just like other processes under
  3940.   OS/2), applications are protected from one another, and the system is
  3941.   protected from applications. The VDM Manager (VDMM) within the OS/2 kernel
  3942.   can terminate VDMs when an application or device driver performs an illegal
  3943.   operation, while allowing other VDMs to continue running. While it is not
  3944.   impossible to crash OS/2 (no system is secure from applications designed
  3945.   specifically to subvert the normal means of protection), it provides a higher
  3946.   degree of crash protection than any alternatives running on DOS.
  3947.  
  3948.   Therefore, OS/2 is better protected than DOS, and provides all the benefits
  3949.   of a DOS extender, including multi-tasking of DOS applications, without the
  3950.   uncertainty of using an operating system (DOS) that was never designed for
  3951.   multi-tasking.
  3952.  
  3953.  
  3954.   COMPATIBILITY
  3955.   _____________
  3956.  
  3957.   Of course, none of the benefits of extra memory, application protection,
  3958.   integration, multi-tasking and so on, are of much value to users unless they
  3959.   can be certain that their DOS application will run. It is impossible to
  3960.   guarantee all applications will run, of course (there are more than 20,000
  3961.   commercial applications without even counting the investment made by in-house
  3962.   corporate developers - an impossible testing task!).  But it is worth
  3963.   understanding how OS/2 2.0 has been designed to provide the maximum
  3964.   compatibility possible in a multi-tasking environment.
  3965.  
  3966.  
  3967.   OVERCOMING OS/2 1.3 LIMITATIONS
  3968.  
  3969.   Since OS/2 2.0 is not constrained by some of the limitations of the OS/2 1.3
  3970.   DOS box, particularly with regard to more memory (some DOS applications
  3971.   simply did not have enough memory free to run in the OS/2 1.3 DOS Box), and
  3972.   support for interrupt-dependent programs like communications, it is able to
  3973.   offer wider compatibility for DOS applications.  However, OS/2 2.0 has taken
  3974.   compatibility still further, and has been designed to take into account some
  3975.   of the aspects of DOS applications which show their single-tasking heritage.
  3976.  
  3977.  
  3978.                                                                  Better DOS  45
  3979.  
  3980.  
  3981.  
  3982.  
  3983.  
  3984.  
  3985.  
  3986.  
  3987.  
  3988.   For example, some so-called "bad" applications directly address hardware
  3989.   devices, and assume they have sole control over them. Many applications write
  3990.   directly to the video memory buffer to improve screen refresh performance.
  3991.   Perhaps the best known example of such an application is Lotus 1-2-3. In a
  3992.   multi-tasking environment, it is important to be able to handle multiple
  3993.   applications wanting to write to the screen at once, and maintain visual
  3994.   consistency on the screen, while keeping maximum compatibility with existing
  3995.   applications. OS/2 does this via its virtual device drivers. There is a
  3996.   virtual video device driver, and also a virtual COM driver, which handles
  3997.   contentions between applications wanting to use the COM port, and provides
  3998.   all DOS applications with COM services at the same time.
  3999.  
  4000.   The video virtual device driver is of further interest in that it provides
  4001.   applications with fast screen I/O by allowing the foreground application to
  4002.   write directly to the video hardware, but still insulating the physical
  4003.   hardware from background VDM screen activity.  It also provides services for
  4004.   DOS applications that use BIOS video routines, by intercepting the ROM BIOS
  4005.   video interrupt (INT 10h) and performing the requested operations directly,
  4006.   thus improving performance.
  4007.  
  4008.  
  4009.   DOS DEVICE DRIVERS
  4010.  
  4011.   Many common device types (video, keyboard, mouse, COM, EMS, printer) are
  4012.   supported by virtual device drivers.  If neither a virtual device driver nor
  4013.   OS/2 protected mode device driver is available, OS/2 2.0 can still provide
  4014.   support for many DOS device drivers via a "generic"  DOS device support.
  4015.   This would usually entail exclusive access to that adapter and device driver
  4016.   from one single VDM.  This will be more than adequate for many DOS
  4017.   applications, which use many device drivers for only one application anyway.
  4018.   And it has the great advantage of allowing the large number of DOS device
  4019.   drivers, for the plethora of adapters now available for PCs, to be used
  4020.   "as-is"  under OS/2 2.0.  Scarcity of protected mode device drivers was an
  4021.   inhibitor to adoption of OS/2 1.x; it need not be for 2.0.
  4022.  
  4023.   IBM has demonstrated how DOS device drivers for scanners, FAX cards, MIDI
  4024.   adapters can all be supported, and DOS applications that depend on them work
  4025.   unmodified. Furthermore, there are a variety of devices in the banking and
  4026.   manufacturing industries that can also be supported via this approach. Even
  4027.   3270 applications can be supported with the DOS device driver in this way.(4)
  4028.   However, a better approach would be to use an OS/2 device driver, as provided
  4029.   with Extended Services for OS/2, for example, which can support both DOS and
  4030.   OS/2 3270 applications simultaneously. This is better than running the DOS
  4031.   driver in a VDM, which only allows access exclusive to that VDM. A similar
  4032.   restriction exists in the March General Availability code, with DOS network
  4033.   drivers (eg for Token Ring adapter).  These can often be used, but allow the
  4034.   adapter only to be used within a single VDM (so that, for example, DOS 3270
  4035.  
  4036.   ---------------
  4037.  
  4038.   (4) The Microsoft document "Microsoft Windows/NT Operating System - An
  4039.       Overview" confirms that "...OS/2 supports some MS-DOS programs requiring
  4040.       some special-purpose, custom device drivers, whereas Windows NT does not.
  4041.       Examples are 3270 emulators, fax boards, scanners and MIDI boards." (p13)
  4042.  
  4043.  
  4044.                                                                  Better DOS  46
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.   communications via Token Ring cannot be used concurrently with DOS-based
  4055.   networking through the same Token Ring adapter). This restriction can be
  4056.   overcome for Token Ring using the Network Transport Services/2 product
  4057.   (NTS/2) - see "IBM Network Transport Services/2" on page 115  running on an
  4058.   OS/2 2.0 base.  This product provides a virtual device driver (VDD) for 802.2
  4059.   access.  This VDD allows 802.2 device sharing between VDMs so that, for
  4060.   example, Personal Communications/3270 and program using the LAN can run
  4061.   together.
  4062.  
  4063.   Even so, not all DOS device drivers are supported. Some block device drivers
  4064.   (usually disk and tape drivers) are not supported, though some can run by
  4065.   booting the "real" DOS inside a VDM (see "Virtual Machine Boot (VMB)" on
  4066.   page 51).
  4067.  
  4068.   The result of this is that OS/2 opens the door to an even wider range of DOS
  4069.   applications and devices that can run as before, but taking advantage of the
  4070.   OS/2 benefits described here.
  4071.  
  4072.  
  4073.   WHAT DOS VERSION?
  4074.  
  4075.   OS/2's DOS emulation is just that - an OS/2-specific DOS kernel that emulates
  4076.   DOS services. It is "DOS 5.0 - like," in that it should run all applications
  4077.   supported by DOS 5.0.
  4078.  
  4079.   Should applications require dependencies on a specific version of DOS there
  4080.   are a number of strategies available to the OS/2 2.0 user.  First of all, it
  4081.   is possible to "fake out" the DOS version, in other words, fool the
  4082.   application into thinking you are using a specific version of a DOS
  4083.   component.  This is using the DOS_VERSION setting in DOS Settings (see
  4084.   below).  If this is not enough, it is possible to boot the real version of
  4085.   DOS inside that VDM only (see "Virtual Machine Boot (VMB)" on page 51).
  4086.  
  4087.  
  4088.   DOS SETTINGS
  4089.  
  4090.   The DOS_VERSION option described above is just one of a number of "DOS
  4091.   Settings" that can be changed to control the environment in each VDM.  These
  4092.   are set for that VDM only. Some settings can be made for all VDMs via
  4093.   AUTOEXEC.BAT and CONFIG.SYS, such as DEVICE=...  statements (ANSI, VXMS,
  4094.   VEMM, VMOUSE, VVGA, VCOM), and some (though not all) can be changed while the
  4095.   application is running.  Several of these settings can also have an effect on
  4096.   DOS compatibility, others can improve performance.
  4097.  
  4098.   +---------------------------------------------------------------------------+
  4099.   |                                                                           |
  4100.   |                                                                           |
  4101.   +---------------------------------------------------------------------------+
  4102.   Figure 8. DOS Settings notebook
  4103.  
  4104.   This means that each individual VDM can have its own optimised settings: some
  4105.   with EMS, others without; some have DOS loaded high, others have special DOS
  4106.   device drivers loaded in that VDM only. This gives great flexibility in
  4107.   configuration, and allows the user to run different DOS applications
  4108.  
  4109.  
  4110.                                                                  Better DOS  47
  4111.  
  4112.  
  4113.  
  4114.  
  4115.  
  4116.  
  4117.  
  4118.  
  4119.  
  4120.   concurrently without having to maintain different CONFIG.SYS files and reboot
  4121.   between them.
  4122.  
  4123.   Among the commonly used or interesting settings are:
  4124.  
  4125.   +---------------------------------------------------------------------------+
  4126.   | Table 6 (Page 1 of 3). Some VDM DOS Settings                              |
  4127.   +----------------------+-----------------------------------------+----------+
  4128.   | SETTING              | DESCRIPTION                             | DEFAULT  |
  4129.   |                      |                                         | SETTING  |
  4130.   +----------------------+-----------------------------------------+----------+
  4131.   | DOS_BACKGROUND_EXECUT|OWhen set off, suspends execution of the | On       |
  4132.   |                      | program when it is in the background.   |          |
  4133.   |                      | Useful for preventing degradation of    |          |
  4134.   |                      | multi-tasking performance when a single |          |
  4135.   |                      | application is polling heavily for      |          |
  4136.   |                      | keyboard input.  Rather less fine       |          |
  4137.   |                      | control than using IDLE_SENSITIVITY and |          |
  4138.   |                      | IDLE_SECONDS, which should be attempted |          |
  4139.   |                      | first (see below).                      |          |
  4140.   +----------------------+-----------------------------------------+----------+
  4141.   | DOS_DEVICE           | Allows DOS device drivers to be loaded  | Existing |
  4142.   |                      | in an individual VDM, rather than       | drivers  |
  4143.   |                      | across all DOS sessions. It adds to the | from     |
  4144.   |                      | drivers specified in CONFIG.SYS, which  | CONFIG   |
  4145.   |                      | apply to all DOS sessions. The path and | SYS are  |
  4146.   |                      | name of the device driver are entered,  | listed   |
  4147.   |                      | and this driver is available only for   |          |
  4148.   |                      | that VDM.                               |          |
  4149.   +----------------------+-----------------------------------------+----------+
  4150.   | DOS_UMB              | Gives the DOS emulation kernel use of   | On       |
  4151.   |                      | Upper Memory Blocks, so that DOS TSRs   |          |
  4152.   |                      | and device drivers can be loaded into   |          |
  4153.   |                      | addresses between 640 and 1024KB, thus  |          |
  4154.   |                      | freeing memory for DOS applications     |          |
  4155.   |                      | below 640KB. This is similar to the DOS |          |
  4156.   |                      | 5.0 function, allowing use of the       |          |
  4157.   |                      | DEVICEHIGH and LOADHIGH commands. The   |          |
  4158.   |                      | UMB ownership can be relinquished by    |          |
  4159.   |                      | turning this feature off, if an         |          |
  4160.   |                      | application program needs to manage     |          |
  4161.   |                      | UMBs. This setting can also be made     |          |
  4162.   |                      | globally in CONFIG.SYS.                 |          |
  4163.   +----------------------+-----------------------------------------+----------+
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.                                                                  Better DOS  48
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.   +---------------------------------------------------------------------------+
  4187.   | Table 6 (Page 2 of 3). Some VDM DOS Settings                              |
  4188.   +----------------------+-----------------------------------------+----------+
  4189.   | SETTING              | DESCRIPTION                             | DEFAULT  |
  4190.   |                      |                                         | SETTING  |
  4191.   +----------------------+-----------------------------------------+----------+
  4192.   | DOS_VERSION          | Allows OS/2 to report a "fake" DOS      | 20 (ie   |
  4193.   |                      | version number to a request from a      | OS/2     |
  4194.   |                      | program in the VDM, in order to support | Version  |
  4195.   |                      | applications that check for a specific  | 2.0)     |
  4196.   |                      | DOS version number. This is important   |          |
  4197.   |                      | for applications such as Lotus 1-2-3    |          |
  4198.   |                      | version 3.1+, which look for the        |          |
  4199.   |                      | presence of DOS 3.3 or above.  The      |          |
  4200.   |                      | parameters set are the name of the DOS  |          |
  4201.   |                      | executable (eg 123DOS.EXE) followed by  |          |
  4202.   |                      | the DOS major and minor version number  |          |
  4203.   |                      | (eg 3,30 for DOS 3.3), then the number  |          |
  4204.   |                      | of times to "fool" the application (255 |          |
  4205.   |                      | means "every time")                     |          |
  4206.   +----------------------+-----------------------------------------+----------+
  4207.   | DPMI_MEMORY_LIMIT    | Specifies the maximum amount of         | 2        |
  4208.   |                      | protected mode memory available to DPMI |          |
  4209.   |                      | applications running in a VDM (in MB).  |          |
  4210.   |                      | It is important to set this figure high |          |
  4211.   |                      | enough for a WIN-OS/2 VDM running       |          |
  4212.   |                      | multiple Windows applications in the    |          |
  4213.   |                      | same VDM.                               |          |
  4214.   +----------------------+-----------------------------------------+----------+
  4215.   | IDLE_SECONDS         | Disables the IDLE_SENSITIVITY (see      | 0        |
  4216.   |                      | below) setting for a period of time     |          |
  4217.   |                      | after "useful" work by the application  |          |
  4218.   |                      | has been detected.  Some programs       |          |
  4219.   |                      | appear to be waiting for input, but     |          |
  4220.   |                      | then change and continue other work.    |          |
  4221.   |                      | The setting needs to be made high       |          |
  4222.   |                      | enough to allow the application to run  |          |
  4223.   |                      | fast enough, but not too high as to     |          |
  4224.   |                      | give the program more resources than it |          |
  4225.   |                      | needs                                   |          |
  4226.   +----------------------+-----------------------------------------+----------+
  4227.   | IDLE_SENSITIVITY     | Sets a threshold for judging when       | 75%      |
  4228.   |                      | applications will be deemed idle (ie    | (refers  |
  4229.   |                      | waiting for I/O, polling etc). OS/2 2.0 | to % of  |
  4230.   |                      | can detect idle programs, especially    | maximum  |
  4231.   |                      | those with a high rate of polling for   | possible |
  4232.   |                      | input, and gives them less time to run, | polling  |
  4233.   |                      | assigning the CPU to more "deserving"   | rate)    |
  4234.   |                      | applications. This setting allows a     |          |
  4235.   |                      | user to modify OS/2's "best guess" at   |          |
  4236.   |                      | what it considers idle. The lower the   |          |
  4237.   |                      | number, the more likely OS/2 will judge |          |
  4238.   |                      | the application idle.                   |          |
  4239.   +----------------------+-----------------------------------------+----------+
  4240.  
  4241.  
  4242.                                                                  Better DOS  49
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248.  
  4249.  
  4250.  
  4251.  
  4252.   +---------------------------------------------------------------------------+
  4253.   | Table 6 (Page 3 of 3). Some VDM DOS Settings                              |
  4254.   +----------------------+-----------------------------------------+----------+
  4255.   | SETTING              | DESCRIPTION                             | DEFAULT  |
  4256.   |                      |                                         | SETTING  |
  4257.   +----------------------+-----------------------------------------+----------+
  4258.   | MOUSE_EXCLUSIVE_ACCES| Allows a VDM to run applications that   | Off      |
  4259.   |                      | maintain their own mouse pointers, and  |          |
  4260.   |                      | which manage their own mouse positions  |          |
  4261.   |                      | and movements, by forcing the physical  |          |
  4262.   |                      | mouse driver to send its movements      |          |
  4263.   |                      | directly to the virtual mouse driver    |          |
  4264.   |                      | (and therefore to the DOS application)  |          |
  4265.   |                      | rather than going through PM. Only one  |          |
  4266.   |                      | mouse pointer appears when that VDM     |          |
  4267.   |                      | window has the focus. Useful when       |          |
  4268.   |                      | running DOS applications that require   |          |
  4269.   |                      | use of the mouse, in windows on the     |          |
  4270.   |                      | Workplace Shell desktop, and prevents   |          |
  4271.   |                      | the situation where you can see 2 mouse |          |
  4272.   |                      | pointers, one for the DOS application,  |          |
  4273.   |                      | and one for PM, and have difficulty     |          |
  4274.   |                      | synchronising them. An example of a DOS |          |
  4275.   |                      | application that can use a mouse in a   |          |
  4276.   |                      | VDM is WordPerfect 5.1 for DOS.         |          |
  4277.   +----------------------+-----------------------------------------+----------+
  4278.   | PRINT_TIMEOUT        | Sets the time in seconds after which    | 15       |
  4279.   |                      | the spooler will close a print job      |          |
  4280.   |                      | initiated by the VDM, and begin to      |          |
  4281.   |                      | print. This means that printing can     |          |
  4282.   |                      | begin from DOS applications that do not |          |
  4283.   |                      | close their print jobs, without having  |          |
  4284.   |                      | to exit the DOS application             |          |
  4285.   +----------------------+-----------------------------------------+----------+
  4286.   | VIDEO_FASTPASTE      | Improves the speed of paste operations  | Off      |
  4287.   |                      | from the clipboard to a DOS             |          |
  4288.   |                      | application. Not all applications can   |          |
  4289.   |                      | support this.                           |          |
  4290.   +----------------------+-----------------------------------------+----------+
  4291.   | VIDEO_MODE_RESTRICTIO| Extends DOS address space beyond 640KB  | None     |
  4292.   |                      | by limiting video mode support to CGA,  |          |
  4293.   |                      | providing up to 96KB (depending on      |          |
  4294.   |                      | video adapter installed) extra for DOS  |          |
  4295.   |                      | applications                            |          |
  4296.   +----------------------+-----------------------------------------+----------+
  4297.  
  4298.   Help is provided with OS/2 2.0 to guide users in modifying these settings,
  4299.   but it should be noted that much of the time, DOS settings will neither need
  4300.   to be examined nor changed. The vast majority of applications will work with
  4301.   the default settings.  Many of the most common DOS applications can have
  4302.   their settings automatically created by the Migrate program (see below).
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.                                                                  Better DOS  50
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.   MIGRATING APPLICATIONS
  4319.  
  4320.   OS/2 2.0 provides a migration database (DATABASE.DAT) that contains
  4321.   parameters and settings for commonly used DOS, Windows and OS/2 programs.
  4322.   This binary database file is used by the MIGRATE APPLICATIONS object to place
  4323.   the program icons onto the desktop and customise their DOS or WIN-OS/2
  4324.   settings to the recommended values (which have been determined during
  4325.   pre-release testing).
  4326.  
  4327.   This means that for many common DOS and Windows programs, there will be no
  4328.   need to modify DOS settings, since the Migrate program will automatically
  4329.   place a program object on the desktop with the optimal settings.  These are
  4330.   placed in a "DOS Programs" folder and a "Windows programs" folder as
  4331.   appropriate.  Migrate also allows applications not in the migration database
  4332.   to be migrated, but with the default DOS settings, which can then be modified
  4333.   manually if preferred.  These programs are placed in folders called
  4334.   "Additional DOS programs" and "Additional Windows programs" as appropriate.
  4335.   All folders created by Migrate are given the appearance of the group icons
  4336.   used in Windows 3.x and OS/2 1.3, for visual familiarity. This aim is
  4337.   furthered by the fact that Migrate detects the presence of the program icon
  4338.   for a Windows application, and adds it to the program reference it creates in
  4339.   the OS/2 folder.  This means that Windows applications appear in OS/2 with
  4340.   their normal icon.  DOS applications are given the standard DOS icon for full
  4341.   screen or windowed sessions as appropriate. The settings for each object can
  4342.   be modified to add a user-defined icon as necessary. Many tools, such as
  4343.   CVTICO, exist on bulletin board systems, to convert icons from Windows format
  4344.   to OS/2 format, so that any public-domain icons that exist in Windows format
  4345.   for common DOS applications, may be used in OS/2.
  4346.  
  4347.   Migrate can be run during the install process or at any time after (the
  4348.   Migrate object is found in the System Setup folder).
  4349.  
  4350.   +---------------------------------------------------------------------------+
  4351.   |                                                                           |
  4352.   |                                                                           |
  4353.   +---------------------------------------------------------------------------+
  4354.   Figure 9. Migrate Applications object
  4355.  
  4356.   System Administrators can set up their own custom migration database, to set
  4357.   up applications unique to their environment, using the PARSEDB tool supplied
  4358.   with OS/2 2.0. Thus, an optimal collection of DOS Settings can be determined
  4359.   for a given program, and then supplied to other users.
  4360.  
  4361.  
  4362.   VIRTUAL MACHINE BOOT (VMB)
  4363.  
  4364.   Should neither the basic DOS emulation of OS/2 2.0 nor any DOS settings
  4365.   provide an answer to compatibility problems with a given DOS application, the
  4366.   ultimate recourse is to boot the real version of DOS on which it depends, in
  4367.   a VDM. This can be done either from the DOS boot diskette or from an image
  4368.   file created on the hard disk. This applies not only to PC-DOS and MS-DOS
  4369.   versions, but also non-IBM systems such as DR-DOS (and in theory any 8086
  4370.   operating system kernel).  A VMDISK utility is supplied with OS/2 to create
  4371.   disk images.
  4372.  
  4373.  
  4374.                                                                  Better DOS  51
  4375.  
  4376.  
  4377.  
  4378.  
  4379.  
  4380.  
  4381.  
  4382.  
  4383.  
  4384.   Once booted, the VDM is running that real copy of DOS, and the boot image
  4385.   path or drive becomes the A: drive for that VDM.
  4386.  
  4387.   The VMB feature, by booting the "real" DOS, provides the maximum achievable
  4388.   compatibility in a multi-tasking environment.
  4389.  
  4390.   Even so, there will be some architectural compatibility issues that even VMB
  4391.   cannot address.  Most of these are limitations that arise from application or
  4392.   device driver features that are fundamentally at odds with the principles of
  4393.   a multi-tasking system.  These issues include VDM interrupt latency (which
  4394.   may prevent some DOS "real-time" applications from giving sufficient
  4395.   performance), support for VCPI DOS extender applications (see below), and I/O
  4396.   to system-managed DASD that bypasses the file system (the latter is
  4397.   prohibited for obvious reasons - this could pose a threat to the integrity of
  4398.   the whole file system and affect other applications.)  But these are fairly
  4399.   minor restrictions in an immensely wide scope of compatibility.
  4400.  
  4401.  
  4402.   DOS EXTENDERS
  4403.   _____________
  4404.  
  4405.   OS/2 2.0 can support DOS extender applications, those applications that have
  4406.   broken the 640KB limit by running in protected mode and including their own
  4407.   memory manager which "takes over" from DOS's. These include DOS multi-tasking
  4408.   environments such as DESQview or Windows 3.x, as well as applications that
  4409.   include DOS extender code, such as 1-2-3 3.1+.
  4410.  
  4411.   OS/2 2.0 supports the DPMI (DOS Protected Mode Interface) specification for
  4412.   extender applications, allowing applications written to this specification to
  4413.   run under OS/2 2.0 and access up to 512MB of extended memory (see the
  4414.   description of DPMI in "Definitions" on page 21).  OS/2 2.0 is a DPMI HOST,
  4415.                                                                         ____
  4416.   which provides DPMI services to DOS extender applications (DPMI CLIENTS).
  4417.                                                                   _______
  4418.  
  4419.   VCPI applications will not run under OS/2 2.0 because they are
  4420.   architecturally incompatible with a multi-tasking operating system (see
  4421.   "Definitions" on page 21).  VCPI applications do not run under Windows 3.0 or
  4422.   3.1 either.  However, many VCPI applications have been rewritten to support
  4423.   DPMI, in order to support Windows 3, and OS/2 2.0 can take advantage of all
  4424.   of these.
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.  
  4435.  
  4436.  
  4437.  
  4438.  
  4439.  
  4440.  
  4441.  
  4442.  
  4443.                                                                  Better DOS  52
  4444.  
  4445.  
  4446.  
  4447.  
  4448.  
  4449.  
  4450.  
  4451.  
  4452.  
  4453.   BETTER WINDOWS
  4454.   ______________
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.   One of the most popular DOS extenders is Microsoft Windows. Windows 3.0
  4461.   shipped in May 1990, and gained a lot of media attention in the market.  In
  4462.   April 1992, Microsoft shipped an updated version, Windows 3.1, which was
  4463.   originally described by Microsoft as a "maintenance" update, but has added a
  4464.   number of new features, to address some of Windows 3.0's limitations.  In
  4465.   this chapter, most discussion will refer to both Windows 3.0 and 3.1 together
  4466.   as Windows 3.x, since, except for some details, they compare to OS/2 2.0 in
  4467.   roughly the same way.
  4468.  
  4469.   Though Windows has undoubtedly had a significant impact on the market, there
  4470.   has been considerable speculation in the press about how successful it has
  4471.   been.  Microsoft claims that over ten million copies of Windows 3.0 were sold
  4472.   up to March 1992 (although IDC estimate that more than half of these may have
  4473.   been shipped with the purchase of a new machine, of which they and Creative
  4474.   Strategies estimate only 30 and 55% respectively, are in use).  The company
  4475.   also said that it shipped 3 million copies of Windows 3.1 in the first three
  4476.   months after its shipment.  However, in a report in the Wall Street Journal
  4477.                                                           ___________________
  4478.   in August, a spokesperson for the software retailer, Egghead, commented that
  4479.   the preloading of systems like Windows with hardware, had affected retail
  4480.   sales.  She said that the company overstocked Windows 3.1 in anticipation of
  4481.   a heavy retail demand for the system that failed to materialize.  "We bought
  4482.   strong quantities of Windows 3.1 and they've been selling at a slower rate
  4483.   than we anticipated," she said.(5)
  4484.  
  4485.   Windows Magazine, in its October 92 issue, estimated that the "real
  4486.   ________________
  4487.   situation" with regards to the number of Windows users was around 4.5
  4488.   million. A recent Dataquest study estimated that as of September 1992, 18% of
  4489.   the PCs in the US are running Windows, which equates to around 2.6 million
  4490.   users.  This concurs with figures quoted in OS/2 Magazine from ADAPSO/ITAA,
  4491.                                               _____________
  4492.   saying that Windows has penetrated only just over 10% of the total DOS
  4493.   market. Whatever figures are used, Windows Magazine says that "financial
  4494.                                      ________________
  4495.   analysts and software companies...uniformly dismiss [Microsoft's figure of 13
  4496.   million Windows users] as meaningless."(6)
  4497.  
  4498.   There have also been a number of ISVs developing applications for Windows.
  4499.   According to Microsoft, over 4,500 applications had been developed for the
  4500.   Windows environment by March 1992.
  4501.  
  4502.   Windows 3.x is, of course, in one sense an alternative or competitive
  4503.   solution, since it provides a GUI and a basic multi-tasking environment.  On
  4504.   the other hand, some customers require IBM to support the Windows
  4505.  
  4506.  
  4507.   ---------------
  4508.  
  4509.   (5) Quoted in Wall Street Journal, 6th August, 1992
  4510.                 ___________________
  4511.  
  4512.   (6) Windows Magazine, October 1992, p16
  4513.       ________________
  4514.  
  4515.  
  4516.                                                              Better Windows  53
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.   applications that they have purchased, under OS/2 2.0.  This section examines
  4527.   OS/2's relationship to Windows 3.x, and how OS/2 can be a "better Windows."
  4528.  
  4529.  
  4530.   WHAT IS MS-WINDOWS?
  4531.   ___________________
  4532.  
  4533.   First of all, it is important to understand what Windows is. When it was
  4534.   first released in 1985, it provided a GUI environment running under DOS, for
  4535.   which applications had to be specially written to take full advantage.
  4536.   Although versions before version 3.0 had gained some developer support,
  4537.   market success was comparatively limited, and many of the major ISVs (eg
  4538.   Lotus, WordPerfect, Borland) had not developed Windows-specific applications.
  4539.   Some of the reasons for this were perhaps the lack of Windows-capable
  4540.   machines, the limited multi-tasking, and the fact that it provided only
  4541.   limited relief for the two main perceived limitations of DOS: the 640KB
  4542.   memory barrier, and multi-tasking the DOS applications that people already
  4543.   had. Windows 3.0 overcame many of these problems, especially in being able to
  4544.   multi-task DOS applications and allowing Windows itself to take advantage of
  4545.   extended memory.
  4546.  
  4547.  
  4548.   WINDOWS 3.X MODES
  4549.  
  4550.   The Windows environment itself has three modes, though the options available
  4551.   to any user depend upon machine processor and installed memory.  These modes
  4552.   are important to mention here as they are relevant to the discussion later of
  4553.   how OS/2 runs Windows applications.  The italicised description of the three
  4554.   modes comes from the MS-Windows User's Guide:
  4555.  
  4556.  
  4557.   Real mode (NOT AVAILABLE IN WINDOWS 3.1)
  4558.  
  4559.   An operating mode that Windows runs in to provide maximum compatibility with
  4560.   ____________________________________________________________________________
  4561.   versions of Windows applications prior to 3.0.  Real mode is the only mode
  4562.   __________________________________________________________________________
  4563.   available for computers with less than 1MB of extended memory.
  4564.   ______________________________________________________________
  4565.  
  4566.   Real Mode is equivalent to previous versions of Windows (2.x), and can
  4567.   address 640KB conventional memory, plus LIM 4.0 expanded memory (extended
  4568.   memory can be used for a virtual disk or disk-caching only).  Real Mode
  4569.   requires an 8088 processor or above, and 640KB memory (384KB free
  4570.   conventional memory after DOS and other memory resident software including
  4571.   network drivers).
  4572.  
  4573.   Microsoft withdrew support for real mode in Windows 3.1, so that only
  4574.   standard mode and 386 enhanced mode are now available. This means that
  4575.   programs requiring Windows real mode (eg programs written for Windows 2.x)
  4576.   will not run in Windows 3.1. However, Windows real mode programs (including
  4577.   Windows 2.x applications) WILL  run under OS/2 2.0.  In this respect, OS/2
  4578.                             ____
  4579.   2.0 is providing better support for Windows programs than Windows 3.1 itself.
  4580.  
  4581.   Note that although Windows real mode runs in the real mode of the processor
  4582.   (see "Protected mode operation" on page 15), the two are not identical terms;
  4583.   even though Windows 3.1 has eliminated WINDOWS real mode, it cannot by its
  4584.                                          _______
  4585.   very design prevent the system moving out of protected mode into the real
  4586.  
  4587.  
  4588.                                                              Better Windows  54
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.   mode of the PROCESSOR, and this represents a potential hole in system
  4599.               _________
  4600.   integrity (see "Reliability and protection" on page 44 and "Reliability" on
  4601.   page 61 for more on this subject).
  4602.  
  4603.  
  4604.   Standard mode
  4605.  
  4606.   The normal operating mode for running Windows.  This mode provides access to
  4607.   ____________________________________________________________________________
  4608.   extended memory and also lets you switch among non-Windows applications.
  4609.   ________________________________________________________________________
  4610.  
  4611.   Standard Mode uses 286 protect-mode to give Windows and Windows applications
  4612.   direct access to up to 16MB extended memory. Expanded memory for DOS
  4613.   applications is only supported with physical expanded memory cards (not
  4614.   emulation of expanded memory using extended memory). Standard Mode requires a
  4615.   286 processor or above, 1MB memory (minimum 256KB of free extended memory),
  4616.   and the XMS driver HIMEM.SYS loaded.  Windows applications need to be written
  4617.   to comply with the memory management rules for Windows 3.x to run in Standard
  4618.   Mode.
  4619.  
  4620.   Standard mode is recommended by Microsoft when running only Windows
  4621.   applications (ie no DOS applications) in certain configurations, even on a
  4622.   386.
  4623.  
  4624.  
  4625.   386 Enhanced mode
  4626.  
  4627.   A mode that Windows runs in to access the virtual memory capabilities of the
  4628.   ____________________________________________________________________________
  4629.   Intel 80386 processor. This mode allows Windows to use more memory than is
  4630.   __________________________________________________________________________
  4631.   physically available and to provide multi-tasking for non-Windows
  4632.   _________________________________________________________________
  4633.   applications.
  4634.   _____________
  4635.  
  4636.   386 Enhanced Mode uses protected mode to give Windows and Windows
  4637.   applications direct access to up to 16MB extended memory. The Virtual-8086
  4638.   mode of the 386 is used to provide multiple DOS environments for non-Windows
  4639.   applications, and virtual memory support is provided (for Windows
  4640.   applications only) using the demand paging feature of the 386 processor. Most
  4641.   DOS applications can be run in a window. 386 Enhanced Mode requires a 386
  4642.   processor or above, 2MB memory (minimum 1024KB of free extended memory), and
  4643.   the XMS driver HIMEM.SYS loaded.  Windows applications need to be written to
  4644.   comply with the memory management rules for Windows 3.x to run in 386
  4645.   Enhanced Mode.
  4646.  
  4647.  
  4648.   WINDOWS 3.X KEY ASPECTS
  4649.  
  4650.   Windows 3.0 added a number of extra features to previous Windows releases,
  4651.   but many people believe that its three main features are as follows:
  4652.  
  4653.  
  4654.  
  4655.  
  4656.  
  4657.  
  4658.  
  4659.  
  4660.  
  4661.                                                              Better Windows  55
  4662.  
  4663.  
  4664.  
  4665.  
  4666.  
  4667.  
  4668.  
  4669.  
  4670.  
  4671.   DOS extender (memory > 640KB)
  4672.  
  4673.   Windows 3.x is first and foremost a DOS extender. It is itself a DPMI host
  4674.   application running on top of DOS, which provides applications (in this case
  4675.   Windows applications written specially for that environment) with extended
  4676.   memory support to break the 640KB DOS limit.
  4677.  
  4678.   Windows can provide additional memory for applications that have been written
  4679.   to take advantage of this capability. But the vast majority of applications
  4680.   still are written for the DOS environment, and even under Windows can only
  4681.   address up to 640KB. In fact, as we saw in our discussion on memory available
  4682.   under OS/2 2.0 and Windows earlier, since Windows inherits the DOS
  4683.   environment for each DOS application it runs, it provides less memory in most
  4684.   scenarios than would be available under OS/2 2.0, for the same DOS
  4685.   application in the same configuration.
  4686.  
  4687.   Nevertheless, since Windows, in standard and enhanced modes, runs much of the
  4688.   time in protected mode (requiring a 286 or 386 processor for these modes), it
  4689.   can itself take advantage of extended memory to run, leaving conventional
  4690.   memory free for DOS applications (but at the cost of some overhead in
  4691.   conventional memory for Windows itself - see "Comparison with memory usage
  4692.   under DOS" on page 41).
  4693.  
  4694.  
  4695.   Multi-DOS environment
  4696.  
  4697.   Windows 3.x also offers, in its 386 enhanced mode, multi-tasking of DOS
  4698.   applications.  Several DOS applications can be run at once, and most
  4699.   text-based applications can appear in a window alongside other DOS or Windows
  4700.   applications, in 386 enhanced mode.  However, Windows 3.0 enhanced mode does
  4701.   not offer as flexible support as OS/2 2.0 does, for running graphics-based
  4702.   applications - like Microsoft Flight Simulator - in windows on the screen
  4703.   alongside text-based applications. DOS applications running in VGA mode can
  4704.   be displayed in a window on the Windows 3.1 desktop, but according to
  4705.   Microsoft, Windows/NT will not support windowed DOS VGA graphics at all.(7)
  4706.  
  4707.   In enhanced mode, Windows also provides a pre-emptive time-slicing mechanism
  4708.   to multi-task between these DOS applications, though, as we saw before
  4709.   ("Multi-tasking of DOS applications" on page 40), OS/2 2.0's mechanism is
  4710.   more sophisticated and will tend to provide a more balanced performance when
  4711.   multi-tasking DOS applications.  For many users of 386 machines running on a
  4712.   DOS base, Windows enhanced mode provides welcome additional function, and the
  4713.   ability to swap between their DOS applications.  Standard mode allows
  4714.   multiple DOS applications to be loaded, but they do not run in background nor
  4715.   can they be windowed.
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.   ---------------
  4723.  
  4724.   (7) See Microsoft's document entitled "Microsoft Windows NT Operating System"
  4725.  
  4726.  
  4727.                                                              Better Windows  56
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.   Windows applications
  4738.  
  4739.   Of course, there have also been a number of applications written specifically
  4740.   for Windows 3.x.  These are graphical applications written to the Windows
  4741.   APIs, and can take advantage of extended memory (up to 16MB), the GUI
  4742.   environment, as well as Windows system-supported functions like DDE (Dynamic
  4743.   Data Exchange).  Although the Windows environment was ignored by many of the
  4744.   major vendors at first, there are now many applications developed
  4745.   specifically for Windows 3.x.  Applications developed for previous releases
  4746.   of Windows cannot run reliably under the two higher modes of Windows, but
  4747.   only under real mode.  This means that if you are running Windows 3.0 in
  4748.   standard or enhanced mode, and wish to run, for example Excel 2.1, you must
  4749.   close all your Windows and DOS applications, exit Windows and restart in real
  4750.   mode.  Windows 3.1, because it does not support real mode, will not run
  4751.   Windows 2.x applications at all.  OS/2 2.0 can run real and standard mode
  4752.   Windows applications side by side on the Workplace Shell desktop.
  4753.  
  4754.   Although Microsoft claims that there are over 5,000 Windows applications in
  4755.   the market, the majority of applications sales are still in DOS applications
  4756.   (to say nothing of the installed base). There are many items of evidence to
  4757.   back up this statement:
  4758.  
  4759.   o   Sales of DOS applications were still $112 million more than those of
  4760.       Windows applications in the second quarter of 1992 (Software Publishers'
  4761.       Association - SPA)(8)
  4762.  
  4763.   o   In figures quoted in Windows Magazine, based on projections by Dataquest,
  4764.                            ________________
  4765.       Windows applications still represent less than 25% of the market in most
  4766.       application categories, and never as much as half in any (see the graph
  4767.       below which illustrates these figures in detail)(9)
  4768.  
  4769.   o   Even in 1997, DOS applications will outsell Windows applications
  4770.       (Dataquest)(10)
  4771.  
  4772.   +---------------------------------------------------------------------------+
  4773.   |                                                                           |
  4774.   |                                                                           |
  4775.   +---------------------------------------------------------------------------+
  4776.   Figure 10. Windows application sales as a proportion of total PC application
  4777.              sales
  4778.  
  4779.   o   Many PC publications both in Europe and the US track sales of
  4780.       applications from a variety of channels, in order to determine a "Top 20"
  4781.       list of applications.  The trend since May 1990 is clear:  despite the
  4782.       apparent success of Windows in the market, few Windows applications make
  4783.       it into the Top 20, as the graph below shows.  In fact, there are rarely
  4784.  
  4785.   ---------------
  4786.  
  4787.   (8) SPA figures quoted in Windows Magazine, November 1992
  4788.                             ________________
  4789.  
  4790.   (9) Quoted in Windows Magazine, February 1992
  4791.                 ________________
  4792.  
  4793.   (10) Quoted in Computing (UK), April 23, 1992
  4794.                  _________
  4795.  
  4796.  
  4797.                                                              Better Windows  57
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.       more than 5 Windows applications in the top 20, and only two of them
  4808.       regularly appear - Excel for Windows and Word for Windows by Microsoft.
  4809.  
  4810.   +---------------------------------------------------------------------------+
  4811.   |                                                                           |
  4812.   |                                                                           |
  4813.   +---------------------------------------------------------------------------+
  4814.   Figure 11. Number of Windows applications in the top 20 selling applications
  4815.  
  4816.   o   There have also been several news items showing how the Windows
  4817.       applications market may not be as large as some vendors may have
  4818.       suggested.  Here are some references from recent reports:
  4819.  
  4820.       -   "The smaller software companies are not making money out of Windows,
  4821.           and Windows 3.1 is not going to change that" (International Data
  4822.           Corp.)(11)
  4823.  
  4824.       -   "The Windows market is really only the size of the Macintosh market"
  4825.           (Gordon Eubanks, CEO of Symantec, who produce Norton Desktop for
  4826.           Windows, one of the best selling Windows applications)(12)
  4827.  
  4828.       -   Lotus warned analysts of lower than expected revenues in June 1992,
  4829.           blaming "weakness in the market for Windows spreadsheets rather than
  4830.           loss of [market] share."(13) "We're disappointed that the overall
  4831.           Windows apps market didn't explode like the channel thought it would"
  4832.           (Robert Weiler, Senior VP, Lotus)(14)
  4833.  
  4834.       -   Lotus is not the only major Windows vendor to suffer falls in share
  4835.           prices owing to lower sales of Windows applications:  Aldus reported
  4836.           lower earnings at the end of June 1992, owing to, among other
  4837.           reasons, "lower than expected sales of its Windows-based
  4838.           products."(15)
  4839.  
  4840.       -   Ruthann Quindlen, a software industry analyst, was quoted in an
  4841.           interview with Infoworld's editor, that she "regret[ted] saying...
  4842.                          _________
  4843.           that Windows was going to create opportunities for small PC software
  4844.           companies." Listing many software companies suffering from slowing
  4845.           growth, earnings shortfalls, falling stock prices, she "had hoped
  4846.           that Windows would grow the market...But no." She concluded that "the
  4847.           only Windows apps doing well are Microsoft's"(16)
  4848.  
  4849.   ---------------
  4850.  
  4851.   (11) Quoted in PC Week, March 30, 1992 - p131
  4852.                  _______
  4853.  
  4854.   (12) Quoted in PC Week, March 30, 1992 - p132
  4855.                  _______
  4856.  
  4857.   (13) Reported in Computergram Online Issue #1952 - 29th June 1992
  4858.                    ___________________
  4859.  
  4860.   (14) Quoted in PC Week, March 30, 1992 - p132
  4861.                  _______
  4862.  
  4863.   (15) Reported in Computergram Online Issue #1949 - 24th June 1992
  4864.                    ___________________
  4865.  
  4866.   (16) Article in Infoworld, September 14th, 1992 - p51
  4867.                   _________
  4868.  
  4869.  
  4870.                                                              Better Windows  58
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.       -   "Companies that have invested a lot of money in developing Windows
  4881.           applications are battling for a small share of what is a very small
  4882.           pie" (Personal Computer Magazine (UK), May 1992)
  4883.                 __________________________
  4884.  
  4885.   o   Windows applications are still heavily outnumbered by the 20,000 or more
  4886.       DOS applications, which also tend to have been longer in the market and
  4887.       built up a substantial installed base.
  4888.  
  4889.   In fact, there is also much evidence to suggest that Windows itself is
  4890.   outselling Windows applications by a factor of three or four to one:
  4891.  
  4892.   o   in the year to March 1992, when Microsoft claimed there were ten million
  4893.       copies of Windows shipped, IDC estimated 3.5 million Windows applications
  4894.       were sold.
  4895.  
  4896.   o   In early 1992, Microsoft stated that there had been $1.6 billion of
  4897.       Windows applications sold. If we take an average price of $500, this
  4898.       would give just over three million copies of all Windows applications
  4899.       together.
  4900.  
  4901.   o   In October 1991, Windows annual run rate, according to Microsoft, was 7.8
  4902.       million.  The SPA's estimate of the volume of Windows application sales
  4903.       for 1991 was $1000 million.  This could mean that for every copy of
  4904.       Windows shipped, there was just over $120 spent on Windows applications,
  4905.       or about one quarter of a copy of Lotus 1-2-3 for Windows at its current
  4906.       recommended retail price!
  4907.  
  4908.   If Windows were being used primarily to run Windows applications, one might
  4909.   expect the user to have more than one Windows application. On this
  4910.   assumption, the number of Windows application users may be only 15% or less
  4911.   of the total of Windows users.  Either many people have bought Windows and
  4912.   are not using it, or they are using it for something else.
  4913.  
  4914.   A study of PC Magazine subscribers indicates a possible answer.  The study
  4915.              ___________
  4916.   was conducted in the US by Ziff Davis Research Department and Alpert
  4917.   Research, Inc., of 1840 PC Magazine readers.  The study has been reviewed by
  4918.                           ___________
  4919.   William Zachmann, a well known independent commentator on the industry, in
  4920.   the June 11, 1991 issue of PC Magazine (Volume 10, Number 11, Page 97).
  4921.                              ___________
  4922.   Zachmann reported that respondents who personally used or were familiar with
  4923.   Windows, confirmed that the most desirable features of Windows were its
  4924.   memory management, multi-tasking and extended memory capabilities.  GUI
  4925.   capabilities, and the availability of Windows applications were of only
  4926.   secondary importance.
  4927.  
  4928.   +---------------------------------------------------------------------------+
  4929.   |                                                                           |
  4930.   |                                                                           |
  4931.   +---------------------------------------------------------------------------+
  4932.   Figure 12. Windows user survey quoted in PC Magazine June 11, 1991 issue
  4933.  
  4934.   Zachmann's conclusion was:
  4935.  
  4936.       "All of this strongly supports my contention that Windows 3.0's
  4937.       _______________________________________________________________
  4938.       success is due more to its usefulness as a reasonably good DOS memory
  4939.       _____________________________________________________________________
  4940.  
  4941.  
  4942.                                                              Better Windows  59
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.       manager and multi-tasker, than to any groundswell of support for GUIs
  4953.       _____________________________________________________________________
  4954.       and Windows applications.  The study results also corroborate my
  4955.       ________________________________________________________________
  4956.       observation that sales of Windows applications lag far behind
  4957.       _____________________________________________________________
  4958.       reported sales of Windows itself."
  4959.       __________________________________
  4960.  
  4961.   Many observers agree with Zachmann, that it has been the combination of DOS
  4962.   extender and basic DOS multi-tasking, implemented on a DOS base, that has
  4963.   been the principal factor in Windows' success. This indicates that Windows is
  4964.   being used more as a DOS extender and multi-tasker than as an environment to
  4965.   run Windows applications. Even vendors such as Lotus, who are developing a
  4966.   suite of applications for Windows, have claimed that Windows is being used to
  4967.   run DOS applications more than it is used for Windows applications.
  4968.  
  4969.   This is an important consideration when we look at what it means to be a
  4970.   better Windows than Windows.  It seems as if many users look to Windows as a
  4971.   DOS environment first, and that Windows applications are currently a
  4972.   secondary issue.  Therefore, to be a better Windows than Windows, OS/2 2.0
  4973.   needs to:
  4974.  
  4975.   o   first, be a better DOS extender/multi-tasker
  4976.   o   and run Windows applications, first ensuring compatibility and, if
  4977.       possible, some advantages over running it under Windows.
  4978.  
  4979.   As it happens, OS/2 2.0 is able to do both: create a better DOS environment
  4980.   for DOS applications, as well as provide full compatibility for Windows
  4981.   applications, and even some advantages in that respect.
  4982.  
  4983.  
  4984.   OS/2 VERSUS WINDOWS AS A MULTI-DOS ENVIRONMENT
  4985.   ______________________________________________
  4986.  
  4987.   It is clear that any discussion of Windows cannot ignore its DOS heritage. In
  4988.   fact, this is both its great advantage, but also the source of most of its
  4989.   shortcomings. Windows runs under DOS, which is an advantage from the point of
  4990.   view of migration from DOS, but is also a disadvantage in the limitations
  4991.   that DOS imposes on it.
  4992.  
  4993.  
  4994.   MEMORY
  4995.  
  4996.   For example, we have already seen that since each DOS session created in
  4997.   Windows inherits the whole DOS environment in place before Windows loaded,
  4998.   DOS programs may have limited space in which to load. Although the
  4999.   combination of DOS 5.0 and Windows 3.x helps to relieve some of the pressure
  5000.   on conventional memory, most DOS applications have significantly less memory
  5001.   under Windows than they do under OS/2 2.0 (see "Comparison with memory usage
  5002.   under DOS" on page 41  for details.)
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009.  
  5010.  
  5011.  
  5012.  
  5013.                                                              Better Windows  60
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  
  5021.  
  5022.  
  5023.   RELIABILITY
  5024.  
  5025.   DOS was designed as a single-tasking environment. Although DOS extenders like
  5026.   Windows can provide multi-tasking under DOS, the base system was never
  5027.   designed for it, and many of the applications running under such an
  5028.   environment assume they are the only application in the system. DOS runs in
  5029.   real mode, and does not provide protection between processes. Windows
  5030.   provides this protection instead, allowing a measure of multi-tasking.
  5031.   However, Windows still needs to use DOS for certain system functions, and so
  5032.   do many of the DOS-based TSRs (eg Network and Communications drivers) that
  5033.   are needed to run alongside Windows, and hence real mode is difficult to
  5034.   avoid when running Windows 3.x.  Any time that is spent in real mode is a
  5035.   potential "trap door" for application errors to violate the system's
  5036.   integrity.  Even though DOS applications run in separate address spaces in
  5037.   enhanced mode, DOS and DOS TSRs still require access to real mode, and the
  5038.   potential remains for an application conflict or bad pointer to corrupt the
  5039.   DOS system area or Windows itself.
  5040.  
  5041.   Furthermore, Windows applications all run in the same address space under
  5042.   Windows 3.x, and therefore it is possible for an error in a Windows program,
  5043.   to take down all the Windows applications together, and sometimes the whole
  5044.   system, thereby affecting the DOS applications as well.  These symptoms occur
  5045.   in a variety of ways, not always a "crash" or "hang" but sometimes messages
  5046.   like "This application has violated system integrity" or "Unrecoverable
  5047.   Application Error."
  5048.  
  5049.   Windows 3.1 is claimed by Microsoft to provide greater protection from these
  5050.   errors, by checking the parameters passed by applications, The users of
  5051.   Windows 3.1 will judge how effective this will prove, but it is a significant
  5052.   technical challenge to provide full protection under DOS, unless an attempt
  5053.   is made to eliminate real mode (of the processor, not Windows real mode)
  5054.   execution altogether.  Indeed, although the message "Unrecoverable
  5055.   Application Error" no longer appears, it has been replaced in many scenarios
  5056.   by "Application Error" or "General Protection Fault."  In some circumstances,
  5057.   Microsoft still advise that data in other sessions be saved, but then to exit
  5058.   and restart Windows, perhaps even reboot.  In this case, the effects on a
  5059.   user would be little less drastic than before.  In fact, though some have
  5060.   claimed that Windows 3.1 heralds "the demise of the UAE," the essential
  5061.   aspects of the Windows architecture remain unchanged.  Windows applications
  5062.   still execute in the same address space, still sharing a common Local
  5063.   Descriptor Table, or LDT (this is why parameter checking is needed, but it
  5064.   only attempts to catch problems to which the basic architecture leaves the
  5065.   system prone).  Parameter checking is much more important to Windows than it
  5066.   is for OS/2, which has other mechanisms (notably separate address spaces) to
  5067.   protect the system from wayward applications.
  5068.  
  5069.   Furthermore, although many I/O and other functions are taken over by Windows
  5070.   (leading Microsoft to call Windows 3.1 an "operating system"(17) ), DOS and
  5071.   DOS TSRs are still available (and indeed required if you want to run Windows
  5072.  
  5073.   ---------------
  5074.  
  5075.   (17) Though how this "operating system" is able to load without DOS, has not
  5076.       been made clear by Microsoft.
  5077.  
  5078.  
  5079.                                                              Better Windows  61
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.   on a network, or with host communications), so the system still does not
  5090.   close the real mode "trap door."
  5091.  
  5092.   Any access to real mode is a potential danger; this is true even in OS/2 1.3,
  5093.   where the DOS compatibility box ran in real mode and was therefore a
  5094.   potential danger to system integrity.  The only certain way to high
  5095.   reliability is to run the operating system only in protected mode.  No
  5096.   current version of DOS can do this, but OS/2 2.0 runs entirely in protected
  5097.   mode: even when running DOS applications, there is no real mode operation.
  5098.  
  5099.   OS/2 has been designed for high reliability from the start, and version 1.3
  5100.   is already widely respected for its industrial strength design.  In OS/2 2.0,
  5101.   all applications, both DOS and OS/2, and even Windows applications, run in
  5102.   separate process address spaces, protected from each other, and much care has
  5103.   been taken in the design to avoid giving wayward applications the potential
  5104.   to corrupt any other applications or the system.  Usually in OS/2 2.0, the
  5105.   worst a "bad" application can do is to cause an error that will cause the
  5106.   kernel to have that process stopped and closed.  In these circumstances, the
  5107.   other applications continue running unaffected.  This is why OS/2 has already
  5108.   been chosen by many companies as the development environment for line of
  5109.   business, mission critical applications.  If your business depends on your
  5110.   application, you do not want to see it brought down with a UAE.
  5111.  
  5112.   Some have tried to show that OS/2 can be "broken" by wayward applications,
  5113.   but no operating system is safe from code written with inside knowledge of
  5114.   the system internals, designed specifically to manipulate parts of the system
  5115.   in a destructive way that mainstream applications would never attempt. The
  5116.   added protection OS/2 offers compared to other DOS extender alternatives, is
  5117.   against the occasional bugs in applications that cause them to write to
  5118.   memory where they should not. The issue is not really whether either
  5119.   environment is totally "crash-proof" but the overall integrity of the
  5120.   operating system in day-to-day usage. In this case, we are not really
  5121.   comparing OS/2 to Windows, but OS/2 to DOS.
  5122.  
  5123.  
  5124.   PERFORMANCE
  5125.  
  5126.   OS/2's multi-tasking design is more sophisticated than Windows, allowing DOS
  5127.   applications to multi-task more smoothly. Windows has only a simple
  5128.   time-slicing algorithm, which can be adjusted by the user to give "bias" to
  5129.   certain applications. This means that priority levels are static, and do not
  5130.   take into account, for example, when applications are I/O bound. On the other
  5131.   hand, OS/2 can set priority levels dynamically, detecting when applications
  5132.   are "idle" through polling or waiting for I/O, and assigning CPU cycles to
  5133.   other applications. This advanced scheduler works in a similar way with OS/2
  5134.   applications, pre-emptively multi-tasking them alongside the DOS
  5135.   applications.  Even Windows applications running in VDMs take advantage of
  5136.   this superior scheduling mechanism for smoother multi-tasking. Windows 3.x
  5137.   offers only co-operative multi-tasking between Windows applications, but
  5138.   pre-emptive with respect to the rest of the system. This means that
  5139.   applications have to be specifically written to give the processor up, with
  5140.   yield() calls, to allow other Windows applications to have their fair share
  5141.   of the processor. (See "Multi-tasking of DOS applications" on page 40 and
  5142.   "Multi-tasking" on page 28 for a more complete discussion of this topic.) In
  5143.  
  5144.  
  5145.                                                              Better Windows  62
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.  
  5153.  
  5154.  
  5155.   OS/2 2.0, Windows applications can be pre-emptively multi-tasked by running
  5156.   them in separate VDMs.
  5157.  
  5158.   OS/2 offers a choice of two superior file systems, which DOS applications
  5159.   running under OS/2 use whenever they do file I/O.  OS/2 2.0 has the High
  5160.   Performance File System (HPFS) and an enhanced FAT file system, both of which
  5161.   provide superior performance than under DOS in nearly all situations.  This
  5162.   means that in file-based operations, OS/2 will nearly always be quicker than
  5163.   DOS or Windows running the same combination of applications under the normal
  5164.   DOS-based FAT system.  Furthermore, OS/2 is able to overlap I/O requests to
  5165.   the system, taking advantage of its own multi-tasking design, allowing the
  5166.   system to be more responsive to I/O request and keep applications waiting
  5167.   less.
  5168.  
  5169.   The result of this is that the same combination of multiple DOS applications
  5170.   is likely to run faster under OS/2 than under either DOS or any DOS extender
  5171.   like Windows, if it does any significant disk-based I/O.  Applications that
  5172.   are more compute-bound may show less difference (and in single tasking, DOS
  5173.   itself is obviously likely to be faster in all except file-intensive
  5174.   operations).
  5175.  
  5176.   And when more than one task is being done, OS/2's performance advantage
  5177.   becomes evident.  Because of OS/2's superior multi-tasking, it can run
  5178.   background tasks, such as file copying, communications, or spreadsheet
  5179.   recalculation, with no visible impact on foreground work.  With Windows, the
  5180.   cursor movement can lag behind the mouse movement, and displaying of
  5181.   characters can lag behind keyboarding to the point where system becomes
  5182.   almost unusable until the background job is done.
  5183.  
  5184.   Here is an illustrative scenario from the testing of National Software
  5185.   Testing Laboratories (NSTL), and independent testing and evaluation
  5186.   organisation: to load MS Word for Windows on a PS/2 Model 57 with 8MB, with
  5187.   nothing else running takes 7.2 seconds with Windows 3.1 and 9.3 seconds with
  5188.   OS/2 2.0.  If you do the same load with an XCOPY in the background, Windows
  5189.   load time jumps to 41.1 seconds, compared with 15.3 seconds for OS/2.
  5190.  
  5191.   Again, the comparison is really between OS/2 and DOS - Windows simply runs on
  5192.   DOS and inherits its limitations.
  5193.  
  5194.  
  5195.   INTEGRATION
  5196.  
  5197.   One of the other big differences between the DOS compatibility provided by
  5198.   OS/2 compared to that of Windows is in the area of how easy it is to set up
  5199.   DOS applications to work. There are many ways in which DOS applications
  5200.   integrate much more easily into the OS/2 environment than they do under
  5201.   Windows:
  5202.  
  5203.   o   DOS SETTINGS VS PIF FILES: Many have commented that Windows's method of
  5204.       __________________________
  5205.       assigning special settings to a DOS program via a Program Information
  5206.       File (PIF) is cumbersome. This is even more so compared to the
  5207.       consistency of the way the DOS Settings option is implemented in OS/2
  5208.       2.0. Compare, for example, WordPerfect 5.1 for DOS. Both Windows 3.1 and
  5209.       OS/2 2.0 detect the program's presence on the disk, and create a unique
  5210.  
  5211.  
  5212.                                                              Better Windows  63
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.       set of program settings. But with OS/2 2.0, all of these settings are
  5223.       easily found together by clicking on the settings of the program object's
  5224.       icon. In Windows, clicking on the icon in Program Manager allows you to
  5225.       select its basic properties from the File Properties menu in Program
  5226.       Manager. But the dialog allows you only to change the command invoked,
  5227.       the working directory and icon. To change other options, you need to find
  5228.       the PIF file referenced in File Properties and edit the PIF file with the
  5229.       PIF editor (which by default is also in another program group). The PIF
  5230.       file contains all the other settings such as video mode, EMS/XMS
  5231.       settings, priority and idle detection, but also confusingly has options
  5232.       for startup directory and shortcut key, which are equivalent to (but
  5233.       overridden by) the settings in File Properties in Program Manager. So
  5234.       there are two places to look for settings, and sometimes two places to
  5235.       set the same setting. Furthermore, some important options are missing
  5236.       altogether from the PIF or Program Manager; mouse access in a windowed
  5237.       DOS application, for example, can only be achieved by first loading the
  5238.       DOS mouse driver (which is distinct from the Windows mouse driver - you
  5239.       need two mouse drivers if you want to use the mouse for both Windows and
  5240.       DOS applications) before starting the application.  Searching on "mouse"
  5241.       in the Windows help system does not yield this information.  OS/2 allows
  5242.       the user to find all customisation for a given program in one settings
  5243.       notebook:  command, working directory, icon, EMS, mouse access and so on.
  5244.  
  5245.   o   MULTIPLE WORKING COMBINATIONS: The amount of memory available when
  5246.       ______________________________
  5247.       running a DOS program in Windows 3.1 enhanced mode is at most about 580K,
  5248.       and can be considerably less than 500K in a LAN-connected environment.
  5249.       And the more features that are required (eg 3270 access, country
  5250.       settings) means less memory for DOS sessions.  This can mean that larger
  5251.       DOS programs, including many newer DOS programs or latest versions, do
  5252.       not have enough memory to run.  Thus, users are faced with having to run
  5253.       different combinations of applications:  DOS program plus network but not
  5254.       with Windows; a Windows program with the network, but not the DOS
  5255.       application, and so on.  Some users even have to maintain different
  5256.       CONFIG.SYS and AUTOEXEC.BAT combinations, rebooting between them
  5257.       according to the combination of applications they are running.  Many
  5258.       users also have to buy third party utilities such as QEMM, and experiment
  5259.       with various settings, to get the amount of memory they need. Use of such
  5260.       utilities sometimes creates new integration issues, such as getting
  5261.       memory managers, disk cache programs and network drivers to co-exist.  In
  5262.       OS/2 2.0, not only can different applications be run at the same time as
  5263.       well as the network, but also any different combinations of settings can
  5264.       be easily maintained in DOS settings, and different configurations run at
  5265.       the same time.
  5266.  
  5267.   o   SWAP FILE: To allow for better performance in swapping to and from disk
  5268.       __________
  5269.       in a memory-constrained environment, Windows 3.x offers a permanent swap
  5270.       file. This is a contiguous area of disk, usually not accessible via DOS
  5271.       commands, and therefore preventing other files making any use of that
  5272.       space. Indeed, even if Windows does not need the full amount of space, it
  5273.       cannot be regained for application use until the feature is disabled. The
  5274.       OS/2 SWAPPER.DAT file is designed to shrink as well as grow, so it is
  5275.       more flexible in allowing other files to be created alongside it.
  5276.  
  5277.  
  5278.  
  5279.  
  5280.                                                              Better Windows  64
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.   These are a just a few examples of the way in which OS/2's integration of DOS
  5291.   applications is superior to that of Windows 3.1, and such integration
  5292.   translates into lower running and support costs.
  5293.  
  5294.   In conclusion, we can certainly say that as a DOS environment, which appears
  5295.   to be the most important consideration even to many Windows users, OS/2 is a
  5296.   better Windows than Windows.  Now let's take a look at the other
  5297.   consideration, compatibility with Windows applications.
  5298.  
  5299.  
  5300.   RUNNING WINDOWS APPLICATIONS UNDER OS/2
  5301.   _______________________________________
  5302.  
  5303.  
  5304.   STANDARD MODE SUPPORT
  5305.  
  5306.   As far as OS/2 2.0 is concerned, Windows applications are just a special case
  5307.   of DOS applications, which need a special environment (Windows 3.x) to run.
  5308.   The key, therefore, to Windows applications compatibility, is to provide
  5309.   those applications with as similar an environment as possible to what they
  5310.   have under DOS, while taking advantage of the inherent design superiority of
  5311.   OS/2.
  5312.  
  5313.   First of all, it should be understood that the Windows 3.0 shrinkwrapped,
  5314.   retail package, can be run in a VDM in Windows real mode, (though Windows 3.1
  5315.   cannot be run in this way because it does not support real mode) and Windows
  5316.   applications started from within this VDM by the Windows Program Manager.  It
  5317.   cannot be run in standard or enhanced mode because of the way Windows has
  5318.   implemented the DPMI memory management scheme (it assumes it is a DPMI host
  5319.   and cannot act as a DPMI client - see "DOS extenders" on page 52).  Many
  5320.   Windows applications run in real mode quite adequately.  In fact,
  5321.   applications written for Windows 2 cannot run in any other mode, and
  5322.   therefore will not run in Windows 3.1.  It may be true that many Windows
  5323.   applications have been upgraded for Windows 3, but this forces an upgrade on
  5324.   users who may be quite happy with the function in their current package.  It
  5325.   means that the Windows upgrade path is now closed to users of Windows 2 based
  5326.   applications.  OS/2 2.0 does not force such a choice, and will run Windows 2
  5327.   and Windows 3 applications side by side, without having to exit and run in
  5328.   another mode.  In fact, some have commented that it is ironic that OS/2 2.0
  5329.   runs a wider range of Windows applications than Windows 3.1 itself.
  5330.  
  5331.   Standard mode is needed for many Windows applications (eg Excel 3.0 and 4.0).
  5332.   To accommodate these applications, OS/2 needs to provide additional support.
  5333.   Basically, these applications need to access DPMI services for extended
  5334.   memory support, which is usually supplied by Windows 3.x running in standard
  5335.   mode or above. As we have seen already, OS/2 2.0 offers DPMI services and the
  5336.   ability to access extended memory.
  5337.  
  5338.   The other requirement is to supply Windows services to Windows applications.
  5339.   This is done in OS/2 2.0 by modifying the Windows kernel and running it in
  5340.   standard mode in a VDM. As part of the joint development and cross-licensing
  5341.   agreement between IBM and Microsoft, IBM has access to both the Windows 3.0
  5342.   and 3.1 source code.  IBM has modified the source to provide a Windows kernel
  5343.   capable of running as a well-behaved DPMI client within an OS/2 VDM (the
  5344.   retail version of Windows 3.0 can only be a DPMI host).  This means that OS/2
  5345.  
  5346.  
  5347.                                                              Better Windows  65
  5348.  
  5349.  
  5350.  
  5351.  
  5352.  
  5353.  
  5354.  
  5355.  
  5356.  
  5357.   2.0 includes all the necessary Windows code to run Windows applications. A
  5358.   separate copy of Windows 3.x is not required. The Windows environment in OS/2
  5359.   is called WIN-OS/2.
  5360.  
  5361.   Since Windows 3.1 shipped after OS/2 2.0, OS/2 provides a modified Windows
  5362.   3.0 kernel in the release made generally available in March 1992. IBM has the
  5363.   ability to, and intends to, include Windows 3.1 support in a future update,
  5364.   even though there are very few applications that require this support (see
  5365.   "Windows 3.1" on page 74).
  5366.  
  5367.   OS/2 therefore supports Windows applications running in standard mode in a
  5368.   VDM. This means that the Windows kernel that runs under OS/2 runs in standard
  5369.   mode, and Windows applications run just as they would under DOS Windows 3.x
  5370.   in standard mode. The use of the VDM design, which provides a self-contained
  5371.   DOS environment, means that the environment is identical, from the
  5372.   application's point of view, to running under Windows loaded in standard
  5373.   mode, on DOS. This design therefore provides the maximum compatibility with
  5374.   the DOS/Windows environment. In fact, it offers a wider range of
  5375.   compatibility, since Windows 2 applications, which require real mode
  5376.   operation under Windows 3.0 in DOS, can be run alongside Windows 3.0
  5377.   applications running in standard mode.  This combination is not possible at
  5378.   the same time in Windows 3.0, and is not possible at all in Windows 3.1,
  5379.   since Windows real mode has been discontinued in Windows 3.1.
  5380.  
  5381.  
  5382.   386 ENHANCED MODE
  5383.  
  5384.   Windows has another mode - 386 enhanced mode, which requires the 386
  5385.   processor. OS/2 2.0 does not need to support enhanced mode for Windows
  5386.   applications, since for most Windows applications, there is no difference
  5387.   between standard and enhanced as far as the application itself is concerned.
  5388.   Standard mode provides Windows applications with all the memory management
  5389.   and other functions they need. Enhanced mode adds to standard mode the
  5390.   capability for multi-tasking DOS sessions and demand paging for efficient
  5391.   virtual memory, both of which are provided (in a superior fashion) by OS/2
  5392.   2.0 itself. Indeed, Microsoft recommends in the Windows 3.0 manual on page
  5393.   429, that users running only Windows 3.0 applications should run in standard
  5394.   mode, even on 386 systems with 2-3MB of memory, as there is a performance
  5395.   improvement in doing so.  Therefore, OS/2 2.0 provides equivalent function to
  5396.   enhanced mode for most users.
  5397.  
  5398.   There are, however, a small number of Windows applications which require
  5399.   enhanced mode to run. These are not supported in the first release of OS/2
  5400.   2.0. It is believed that there are only at maximum three or four of these in
  5401.   the market, which represents less than 0.1% of Windows 3.x applications, if
  5402.   we take Microsoft's figure of 5,000 Windows applications.  Such applications
  5403.   require enhanced mode either because they rely on features only available in
  5404.   enhanced mode, or have been coded using the WINMEM32.DLL, a set of routines
  5405.   that provide some 32-bit functions for Windows applications, such as Wolfram
  5406.   Research's Mathematica and Caere Omnipage Professional.  It is unlikely there
  5407.   will ever be many in the latter category of applications, since the
  5408.   WINMEM32.DLL is very difficult to use, and Microsoft themselves warn in
  5409.   Appendix E of the Windows Programmers Reference:  "only experienced Windows
  5410.   application programmers with extensive experience writing assembly-level code
  5411.  
  5412.  
  5413.                                                              Better Windows  66
  5414.  
  5415.  
  5416.  
  5417.  
  5418.  
  5419.  
  5420.  
  5421.  
  5422.  
  5423.   should attempt to use these functions in an application."  That is because
  5424.   even something as basic as memory management using these routines can be very
  5425.   complex, requiring the programmer to create his own assembly language
  5426.   interfaces between the 16 and 32-bit parts of his program (note that such
  5427.   "thunks" are provided by OS/2 2.0 between 16 and 32-bit modules - see "Mixed
  5428.   16-/32-bit environment" on page 12).  Charles Petzold, possibly the most
  5429.   widely respected authority on Windows programming, whose book on the subject
  5430.   is a standard reference work, concluded on this subject that "something is
  5431.   seriously wrong when memory access becomes difficult," and contrasted the
  5432.   current Windows approach with the ease of 32-bit memory management under OS/2
  5433.   2.0.  At the time of writing, Microsoft had not stated whether WINMEM32.DLL
  5434.   applications would be able to run under a 32-bit Windows environment and have
  5435.   said that it is unlikely that such Intel-specific applications would run
  5436.   unchanged in a future version of Windows/NT running on a RISC processor.
  5437.  
  5438.   So, although there are a very small minority of Windows applications that
  5439.   will not run under OS/2 2.0, the vast majority will run, and in a mode which
  5440.   allows access to their full function.  Indeed, to the Windows application,
  5441.   the environment will appear exactly the same as under DOS/Windows standard
  5442.   mode, but there will be greater overall protection, and the ability to
  5443.   pre-emptively multitask such applications along with DOS, OS/2 and other
  5444.   Windows applications.
  5445.  
  5446.  
  5447.   CONTRAST WITH PREVIOUS APPROACHES (BCL)
  5448.  
  5449.   It should be emphasised that IBM's approach of building Windows code into
  5450.   OS/2 is quite different from previous approaches by Microsoft, which have
  5451.   included a Binary Compatibility Layer (BCL) which attempted to translate
  5452.   Windows calls to PM calls in real time.  By providing the "real" Windows
  5453.   code, modified mostly for memory management purposes, the potential for
  5454.   performance degradation is greatly minimised.  Those who previously suggested
  5455.   that IBM's approach is "impossible" may have been thinking of a BCL-type
  5456.   approach, rather than the method actually used in OS/2 2.0.
  5457.  
  5458.  
  5459.   HOW THEY RUN
  5460.  
  5461.  
  5462.   Single session or separate session
  5463.  
  5464.   Windows applications can be started from an icon in the Workplace Shell, just
  5465.   like other applications: OS/2 16 and 32-bit, DOS etc. They are launched into
  5466.   a VDM which is, like other VDMs, protected from the rest of the system.
  5467.   Users have a choice of loading the Windows application into its own VDM (even
  5468.   if other Windows applications are already running in separate VDMs) or being
  5469.   loaded into a VDM which contains other Windows applications. These are termed
  5470.   Single application and Multiple application VDMs (SAVDM/MAVDM) respectively.
  5471.   This is controlled in the settings for the program object: when choosing
  5472.   "WIN-OS/2 window," you can check (SAVDM) or leave empty (MAVDM) the check box
  5473.   entitled "Separate Session"; or if running in a WIN-OS/2 Full Screen session,
  5474.   simply load the program from the Program Manager in the Full Screen session
  5475.   in the normal way.
  5476.  
  5477.  
  5478.  
  5479.                                                              Better Windows  67
  5480.  
  5481.  
  5482.  
  5483.  
  5484.  
  5485.  
  5486.  
  5487.  
  5488.  
  5489.   +---------------------------------------------------------------------------+
  5490.   |                                                                           |
  5491.   |                                                                           |
  5492.   +---------------------------------------------------------------------------+
  5493.   Figure 13. Single and Multiple application Windows groups
  5494.  
  5495.   Single application Windows sessions load the application executable (eg
  5496.   EXCEL.EXE for Excel 3.0) along with a modified WIN.COM file (WINOS2.COM).
  5497.   This is exactly the same effect as typing "WIN EXCEL" when running
  5498.   DOS/Windows 3.x.  The Windows application then runs under the WIN-OS/2
  5499.   environment, in its own VDM.  As far as the application is concerned, this is
  5500.   exactly the same as running under DOS/Windows; the modified Windows kernel
  5501.   provides the same services in a compatible way.  Additional Windows
  5502.   applications can be loaded into separate VDMs in the same way.
  5503.  
  5504.   Multiple application Windows sessions allow the user to run several Windows
  5505.   applications within the same VDM.  This is the closest possible fit to the
  5506.   DOS/Windows usage, especially when run in a separate WIN-OS/2 Full Screen
  5507.   session, when it is difficult to tell you are not running under DOS. In this
  5508.   way, users migrating to OS/2 from Windows are able to run under OS/2 but have
  5509.   the general "look and feel" of their DOS-based Windows environment.
  5510.  
  5511.   Single application VDMs provide the best protected way to run Windows
  5512.   applications under OS/2. Since the application runs in a self-contained
  5513.   Windows environment in its own VDM, it is fully protected from other
  5514.   applications, and the system is protected from it.  This means that if the
  5515.   application crashes for any reason, it only affects that VDM, and in fact
  5516.   only that one application.  Even other Windows applications running in other
  5517.   VDMs are not affected.  This is a significant improvement in reliability over
  5518.   Windows under DOS (both 3.0 and 3.1), in which, since all Windows
  5519.   applications and Windows itself share the same Local Descriptor Table (LDT),
  5520.   a failure in one Windows application may bring down the entire Windows system
  5521.   or corrupt the data areas of other Windows programs.
  5522.  
  5523.   But even though the SAVDM is fully protected, it can still share data via
  5524.   clipboard or DDE with other Windows applications or PM applications (see
  5525.   "Clipboard/DDE" on page 72).
  5526.  
  5527.   However, each SAVDM must load its own copy of WIN-OS/2, and will therefore
  5528.   increase the overall working set of OS/2, affecting memory requirements and
  5529.   performance.  If memory is limited, MAVDMs provide the ability to run several
  5530.   Windows applications with less resources required.  But this is at the cost
  5531.   of losing the additional protection of the separate VDM.  If one Windows
  5532.   application crashes within a Multiple application Windows session, it may
  5533.   cause all the applications within that VDM to fail; but the effect is only
  5534.   within that VDM - the other VDMs running DOS or Windows applications within
  5535.   other VDMs are not affected and continue executing.  So even here there are
  5536.   benefits running Windows applications under OS/2, for greater reliability
  5537.   from system crashes. MAVDM will also lose the additional WIN-OS/2 benefit of
  5538.   pre-emptive multi-tasking for the Windows applications within that VDM (but
  5539.   not any other WIN-OS/2 sessions).  MAVDM is also a requirement where Windows
  5540.   applications need to communicate with each other via shared memory, and where
  5541.   applications want to use OLE between each other (see "OLE" on page 73).
  5542.  
  5543.  
  5544.  
  5545.                                                              Better Windows  68
  5546.  
  5547.  
  5548.  
  5549.  
  5550.  
  5551.  
  5552.  
  5553.  
  5554.  
  5555.   FULL SCREEN OR SEAMLESS
  5556.  
  5557.   In the Limited Availability version of OS/2 2.0 which shipped in December
  5558.   1991, a WIN-OS/2 VDM ran only in a separate Full Screen session.  The user
  5559.   clicked on an icon (eg WordPerfect for Windows) in the Workplace Shell, and a
  5560.   separate Full Screen WIN-OS/2 VDM was launched along with the Windows
  5561.   application.  The user could toggle back and forth using Alt-Esc, Ctrl-Esc,
  5562.   or a little OS/2 icon that appeared in the corner of the Windows screen.  But
  5563.   this was the only visual clue that you were in OS/2 at all:  the screen
  5564.   looked exactly like DOS/Windows 3.0.  This Full Screen function is still
  5565.   provided in the product shipped in March 1992 (there is an icon marked
  5566.   "WIN-OS/2 Full Screen" in the Command Prompts Folder).
  5567.  
  5568.   There are some minor differences between the icons that appear in the
  5569.   WIN-OS/2 Full Screen environment versus DOS/Windows:  many of the Windows
  5570.   mini-applications and utilities (eg Notepad, games, PIF editor) have OS/2
  5571.   equivalents or are no longer relevant; others, such as the clock, are
  5572.   retained for compatibility.  OS/2 adds icons for returning to PM from a
  5573.   WIN-OS/2 Full Screen session (since the Windows user wants to have access to
  5574.   either Ctrl-Esc or Alt-Esc key combinations for compatibility with his
  5575.   Windows environment) and for DDE management (see later).
  5576.  
  5577.   The Windows print manager is retained, and Windows printer device drivers
  5578.   supported. The Windows Control Panel can be used to install Windows printer
  5579.   drivers not supported by OS/2, and to configure other Windows printer
  5580.   drivers, just as in DOS/Windows.
  5581.  
  5582.   This full screen Windows function fulfilled the commitment made in April to
  5583.   provide Windows compatibility in 1991 (completed in the Limited Availability
  5584.   (LA) product shipped in December 1991).  But during the early autumn of 1991,
  5585.   IBM received feedback from many of its beta testers to bring forward the
  5586.   functions it had been discussing for a future version to run Windows
  5587.   applications on the same screen as other DOS and OS/2 applications.  The
  5588.   decision was taken to move the GA (General Availability) date to March 1992
  5589.   to allow this function (and others) to be added.  It was first shown in Lee
  5590.   Reiswig's "OS/2 live"  show at Fall Comdex in October 1991.
  5591.  
  5592.   This latter function has since been called "Seamless Windows." But the term
  5593.   is not very accurate; it was chosen by the marketplace, not by IBM. It is
  5594.   important, in fact, to note that most of what makes OS/2 2.0 "a better
  5595.   Windows" was already delivered with the LA product in December:  protection
  5596.   between applications, pre-emptive rather than co-operative multi-tasking for
  5597.   better and more consistent multi-tasking performance, integration with other
  5598.   DOS and OS/2 PM applications via clipboard and DDE, with no loss of
  5599.   compatibility.  Many people still run their Windows applications full screen,
  5600.   even with the GA version, as it does what they need.  In fact, full screen
  5601.   has some benefits over Seamless operation (better performance, especially for
  5602.   clipboard and DDE, and more visually compatible with DOS/Windows).
  5603.  
  5604.   In any case, much of the WIN-OS/2 environment represents a "seamless"
  5605.   migration from the DOS/Windows environment anyway:  automatic installation of
  5606.   Windows printer drivers, re-creation of existing Windows program groups and
  5607.   WIN.INI settings.
  5608.  
  5609.  
  5610.  
  5611.                                                              Better Windows  69
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.  
  5618.  
  5619.  
  5620.  
  5621.   Also, for most users, the most important aspects of integration are to be
  5622.   able to run all applications from the same user interface, and to allow all
  5623.   applications to share data.  These benefits apply to Full Screen and Seamless
  5624.   operation alike. Windows applications can be loaded from the same folders as
  5625.   DOS and OS/2 applications, from the new Workplace Shell, and data can be
  5626.   shared via clipboard and DDE.
  5627.  
  5628.   But in the context in which it refers to the opposite of "Full Screen,"
  5629.   "Seamless" operation merely refers to the way the WIN-OS/2 application is
  5630.   displayed on the screen, in its own window on the Workplace Shell desktop as
  5631.   opposed to in a separate Full Screen session (see the diagram below, using
  5632.   Excel 3.0 for Windows):
  5633.  
  5634.   +---------------------------------------------------------------------------+
  5635.   |                                                                           |
  5636.   |                                                                           |
  5637.   +---------------------------------------------------------------------------+
  5638.   Figure 14. Windows Full Screen and Seamless Sessions
  5639.  
  5640.   Note that the fundamental way the WIN-OS/2 application works is the same
  5641.   whether it runs Full Screen or Seamless:  it runs in its own protected VDM;
  5642.   it runs with the modified Windows code, it runs in standard mode.  But the
  5643.   additional element is the way the screen output is mapped on to the Workplace
  5644.   Shell screen.  Also, you can have any combination of SAVDM/MAVDM, or Full
  5645.   screen/Seamless:
  5646.  
  5647.   o   SAVDM Full Screen (WIN-OS/2 Full Screen in DOS Settings)
  5648.   o   SAVDM Seamless (WIN-OS/2 window in DOS Settings - "Separate Session"
  5649.       checked)
  5650.   o   MAVDM Full Screen (WIN-OS/2 Full Screen object in "Command Prompts")
  5651.   o   MAVDM Seamless (WIN-OS/2 Window - "Separate Session" unchecked; the
  5652.       default for most applications)
  5653.  
  5654.  
  5655.   How does it work?
  5656.  
  5657.   Please note that what follows is a simplified explanation. There are no
  5658.   specific considerations for users or programmers in the way the Seamless
  5659.   WIN-OS/2 operation works.
  5660.  
  5661.   The two key considerations in the design of the "Seamless" function were:
  5662.  
  5663.   1.  Maintain compatibility
  5664.   2.  Retain high performance
  5665.  
  5666.   This resulted in a more "low level" implementation to avoid the limitations
  5667.   inherent in attempting to map Windows calls to PM.  Instead, both the PM and
  5668.   Windows screen device communicate with each other via a Virtual Device Driver
  5669.   (VDD), VWIN, providing synchronisation of access to the video display
  5670.   hardware.  Each device driver "owns" its section of the screen.  (This was a
  5671.   significant task in the time available, even for VGA; it can easily be
  5672.   understood why Seamless function is only available for VGA in the GA March 92
  5673.   release, but drivers for above VGA are in development and will be delivered
  5674.   later in 1992).  A new entry in WIN.INI, SDISPLAY.DRV= , denotes the change.
  5675.                                            ______________
  5676.  
  5677.  
  5678.                                                              Better Windows  70
  5679.  
  5680.  
  5681.  
  5682.  
  5683.  
  5684.  
  5685.  
  5686.  
  5687.  
  5688.   The best way to understand the way it all works is to consider an example.
  5689.   Refer to the numbered diagram below while reading the following explanation:
  5690.  
  5691.   +---------------------------------------------------------------------------+
  5692.   |                                                                           |
  5693.   |                                                                           |
  5694.   +---------------------------------------------------------------------------+
  5695.   Figure 15. How Seamless Windows works
  5696.  
  5697.   When a WIN-OS/2 application creates a window, the Windows screen device
  5698.   driver requests the PM screen device driver to open up a "black hole" of the
  5699.   same dimensions (see step 1 in the diagram).  The Windows device driver then
  5700.   has control of the video hardware and paints into this space (step 2).The
  5701.   result is that the WIN-OS/2 application (which is completely unaware of this
  5702.   process) creates its main and secondary windows on the Workplace Shell screen
  5703.   alongside (and sometimes overlapping) other OS/2 application windows.  Notice
  5704.   this means that the WIN-OS/2 application paints its own frame controls and
  5705.   mouse pointer (eg title bar, minimise/maximise buttons) and even the infamous
  5706.   Windows hourglass!), and these controls will therefore look like Windows
  5707.   controls, not PM ones.  If you put Excel for Windows and Excel for OS/2 side
  5708.   by side, you'll see the difference.  Although this creates some minor visual
  5709.   inconsistencies (most users don't even notice!), it preserves compatibility
  5710.   and performance.
  5711.  
  5712.   The WIN-OS/2 application window can be sized and moved as normal merely
  5713.   changing the co-ordinates of the "black hole"  into which it paints (see
  5714.   steps 3A and 3B).  The PM screen device driver repaints any part of the PM
  5715.   screen space previously governed by the WIN-OS/2 window.  Other WIN-OS/2
  5716.   applications (whether launched from the same WIN-OS/2 VDM or not) can create
  5717.   their own main windows (see step 4), or the existing applications can create
  5718.   secondary windows which can extend beyond the original window's co-ordinates.
  5719.   Corel DRAW! for Windows creates a main window with a tool bar which hangs
  5720.   below the bottom of the window if resized, resulting in a non-rectangular
  5721.   window.  OS/2 2.0 handles such exceptions without a problem.
  5722.  
  5723.   If an OS/2 application window is created, moved or resized to overlap a
  5724.   WIN-OS/2 application's window (see step 5A) the PM screen device driver will
  5725.   cause a "white hole" to be created in the "virtual" screen space of the
  5726.   WIN-OS/2 session (step 5B).  This causes the WIN-OS/2 application to avoid
  5727.   painting the part of the window that has been "covered" by the OS/2
  5728.   application, and restrict repainting to the portion which is still "visible"
  5729.   under or around the "white hole" (see step 5C).  If the OS/2 application
  5730.   window is subsequently closed, moved or resized, the screen drivers
  5731.   communicate again to change the size of the "white hole" (in a similar way
  5732.   that the co-ordinates of the "black hole" are changed in step 3B).
  5733.  
  5734.   The use of "black" and "white" holes means that WIN-OS/2 and OS/2 (including
  5735.   DOS) application windows can overlap each other normally, without one
  5736.   incorrectly painting over the other. The two screen drivers keep a record of
  5737.   each other's state without affecting any of the OS/2 or WIN-OS/2
  5738.   applications.  This means there are no significant compatibility or
  5739.   programming considerations.  Since the PM screen device driver is always
  5740.   aware of the changes made by WIN-OS/2 applications' windows, there is no
  5741.   impact to OS/2 applications, and likewise for WIN-OS/2 applications which
  5742.  
  5743.  
  5744.                                                              Better Windows  71
  5745.  
  5746.  
  5747.  
  5748.  
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.   create, move, resize and destroy windows in the normal way.  Performance is
  5755.   good, because communication is at a low level between screen drivers, not an
  5756.   API mapping layer, and compatibility is excellent because no fundamental
  5757.   changes occur to either the Windows GDI or PMWIN (the main window-creating
  5758.   components of WIN-OS/2 and PM respectively).  And as far as the user is
  5759.   concerned - it just works, minimising the difference between DOS, Windows and
  5760.   OS/2 applications.  In fact, it achieves the aim of "seamlessness" by making
  5761.   applications behave in similar ways, whether DOS, Windows or OS/2
  5762.   applications.  To the user, it appears easy, but the technical accomplishment
  5763.   behind it is considerable.
  5764.  
  5765.  
  5766.   High resolution support
  5767.  
  5768.   At General Availability time in March 1992, Seamless drivers were only
  5769.   available in VGA. This means that the whole system (including PM) must run in
  5770.   VGA if Seamless operation is required. The installation program gives users
  5771.   with 8514/A or XGA adapters the choice between high resolution WIN-OS/2 in
  5772.   full screen, or Seamless in VGA.  Remember that the choice also affects the
  5773.   resolution PM appears in.  This choice will become redundant once Seamless
  5774.   drivers for resolutions higher than VGA appear.  Drivers for XGA and SVGA
  5775.   will become available by the end of 1992 (see "OS/2 1992 developments" on
  5776.   page 123).
  5777.  
  5778.   Since OS/2 2.0 shipped in March, IBM and other vendors have continued work on
  5779.   drivers at resolutions higher than VGA.  Drivers for XGA and some SVGA chip
  5780.   sets will be made available in a service pack by the end of 1992, rather than
  5781.   than waiting for a new version of OS/2.  It is to be remembered that to
  5782.   enable Seamless operation, both Windows and PM screen drivers need to be
  5783.   modified, for each resolution.
  5784.  
  5785.  
  5786.   CLIPBOARD/DDE
  5787.  
  5788.   An important benefit of the Windows environment is the inter-application
  5789.   communications it offers to Windows applications, allowing them to share
  5790.   data.  The two most common methods for achieving this are via the clipboard,
  5791.   and Dynamic Data Exchange (DDE).
  5792.  
  5793.   The Windows clipboard, like PM's clipboard, usually allows applications to
  5794.   share data on a "once only" basis.  Data is "cut" from one application to the
  5795.   clipboard, and "pasted" from the clipboard into another application.
  5796.   Applications that support the clipboard sometimes allow a link to be set up
  5797.   between applications, using the same or similar commands, and that link is
  5798.   usually handled via DDE.  DDE is a message-based protocol allowing
  5799.   applications to pass information back and forth, updating items as they
  5800.   choose.  For example, an information feed like a stock market ticker, can be
  5801.   linked via DDE to a spreadsheet, and update it with the latest information as
  5802.   the data changes.
  5803.  
  5804.   Both clipboard and DDE are supported for Windows applications in OS/2 2.0.
  5805.   Since OS/2 already supports both of these functions (OS/2 1.3 provided
  5806.   similar functions for OS/2 16-bit applications), it is mainly a matter of
  5807.  
  5808.  
  5809.  
  5810.                                                              Better Windows  72
  5811.  
  5812.  
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.  
  5820.   integrating the Windows support within OS/2 so that Windows and OS/2
  5821.   applications can access the same function.
  5822.  
  5823.   The way in which this is done in OS/2 2.0 is quite similar for clipboard and
  5824.   DDE. Each requires one protected mode (OS/2) program acting as a "server" for
  5825.   messages between applications.  Also, in each VDM running a Windows
  5826.   application, a pair of applications needs to be running:  a modified version
  5827.   of the Windows clipboard viewer program for clipboard, and a "ServerAgent"
  5828.   program for DDE.  The ServerAgent, which is started when the VDM is started,
  5829.   takes DDE messages from the Windows application and routes them to the
  5830.   DDEServer and receives messages from the DDEServer and passes them to the
  5831.   application running in the VDM.
  5832.  
  5833.   Clipboard and DDE are also available between applications running in the same
  5834.   VDM. This works in exactly the same way as today under DOS/Windows; the local
  5835.   VDM-based clipboard or ServerAgent programs are not needed unless clipboard
  5836.   and DDE are required outside the VDM.  Users can also specify that their
  5837.   clipboard and DDE is local to that VDM only, or "public" to the whole system.
  5838.   If sharing between Windows and OS/2 applications is not required, the
  5839.   clipboard should be kept "private," to improve overall performance.
  5840.  
  5841.   The result of this is that clipboard and DDE are supported in OS/2 2.0
  5842.   between Windows applications, and between Windows and OS/2 applications. DOS
  5843.   applications can also participate in clipboard sharing. Thus, there is a
  5844.   consistent way of sharing text and graphical data between DOS, Windows and
  5845.   OS/2 applications.
  5846.  
  5847.  
  5848.   OLE
  5849.  
  5850.   Object Linking and Embedding (OLE) is a mechanism created by Microsoft and
  5851.   endorsed by other vendors, to extend the data sharing currently possible in
  5852.   Windows. It is intended to support the creation and editing of "compound
  5853.   documents," where elements may come from a number of different applications,
  5854.   and still be editable by the source application, even when linked in another
  5855.   document or application.
  5856.  
  5857.   Several ISVs are intending to support OLE, but today only a minority of
  5858.   applications actually support it. Examples include Microsoft Excel version
  5859.   3.0, and Lotus Notes version 2.0.  Windows 3.1 is expected to simplify the
  5860.   enabling of this function, because it includes the necessary support in the
  5861.   product, but applications still need to be rewritten to take advantage of it.
  5862.   Therefore, OLE is more of a potential standard in the Windows world, than a
  5863.   current, widely-used one. In addition, it has some technical limitations
  5864.   which preclude its widespread use in a networked environment in its current
  5865.   form.
  5866.  
  5867.   Microsoft had previously announced their intention to provide OLE libraries
  5868.   for OS/2 in mid-1991, but no toolkit has yet been shipped.  OS/2 2.0 supports
  5869.   OLE between Windows applications in the same Multiple application Windows
  5870.   session, as long as the applications include their own OLE DLLs.  An example
  5871.   of such an application is Microsoft Word for Windows version 2.0, which
  5872.   includes its own "mini-applications" for functions like charting and drawing,
  5873.   and links to the main word processing module using OLE.  Since there is not
  5874.  
  5875.  
  5876.                                                              Better Windows  73
  5877.  
  5878.  
  5879.  
  5880.  
  5881.  
  5882.  
  5883.  
  5884.  
  5885.  
  5886.   yet any equivalent function in OS/2, OLE will currently work between Windows
  5887.   applications only.  IBM is currently investigating a superset of current
  5888.   Windows OLE function for a future release of OS/2.
  5889.  
  5890.  
  5891.   WINDOWS 3.1
  5892.  
  5893.   In April 1992, Microsoft shipped an updated version of Windows, Windows 3.1.
  5894.   It offers a number of new functions, and a substantially expanded API set,
  5895.   including Multimedia and Pen extensions (although the latter functions
  5896.   require separate add on products).  Since OS/2 2.0 had already shipped by the
  5897.   time Windows 3.1 shipped, IBM has no specific support for Windows 3.1 APIs in
  5898.   the first release of OS/2 2.0, nor is it certain how important such support
  5899.   is.  IBM's aim is to run Windows applications, not Windows.  Windows 3.1
  5900.   support is only an issue if it enables new windows applications to be
  5901.   developed which may not run under the current level of WIN-OS/2.  Whether
  5902.   developers will build in functions requiring Windows 3.1, will depend on how
  5903.   they view the risk of only targeting part of the Windows installed base
  5904.   (those who have moved up to 3.1).  Microsoft promised compatibility between
  5905.   Windows 3.0 and 3.1, and are offering developers the opportunity to ship the
  5906.   extra 3.1 function in DLLs along with the application.  If this enables the
  5907.   application to run under Windows 3.0, it should do for WIN-OS/2, by the same
  5908.   logic.  If developers follow this path, the need for Windows 3.1 support in
  5909.   OS/2 2.0 may not be as urgent as some suggest.  Indeed, there have been very
  5910.   few Windows 3.1-specific applications appearing in the first few months after
  5911.   the shipment of DOS/Windows 3.1. At one time, Microsoft had announced that
  5912.   they would make Windows 3.1 capable of being a DPMI client, and thus run
  5913.   under OS/2 2.0.  However, Windows 3.1 does not possess this capability.
  5914.  
  5915.   Nevertheless, IBM has the Windows 3.1 source code through the joint licensing
  5916.   agreement and will continue to monitor the need for additional levels of
  5917.   Windows support.  IBM is fully able to provide such support without help from
  5918.   anyone else, as it has done so far with the development of OS/2 2.0.  On
  5919.   April 6th 1992 Microsoft shipped Windows 3.1.  On April 7th, IBM showed the
  5920.   Windows 3.1 Program Manager running in a Seamless window under OS/2 2.0 (not
  5921.   the GA version).  This was not an announcement of Windows 3.1 support, merely
  5922.   an indication that it could be done. Work is now taking place on updating
  5923.   WIN-OS/2 support (see "OS/2 1992 developments" on page 123) and is in beta
  5924.   test at the time of writing.  The main part of the work is extensive
  5925.   compatibility testing with Windows 3.0 applications.  The aim is to ensure
  5926.   that the change to Windows 3.1 level of support, does not lead to the kind of
  5927.   compatibility problems that were reported in PC Week  soon after the release
  5928.                                                _______
  5929.   of DOS/Windows 3.1, and referenced in the Windows 3.1 APPS.HLP file.  Because
  5930.   of these compatibility problems, and the withdrawal of support for Windows
  5931.   real mode by Microsoft, it is true to say, at the time of writing, that OS/2
  5932.   2.0 runs a wider range of Windows applications than DOS/Windows 3.1.
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.  
  5939.  
  5940.  
  5941.  
  5942.  
  5943.                                                              Better Windows  74
  5944.  
  5945.  
  5946.  
  5947.  
  5948.  
  5949.  
  5950.  
  5951.  
  5952.  
  5953.   A BETTER WINDOWS?
  5954.   _________________
  5955.  
  5956.   So, in conclusion, the approach taken to running Windows applications under
  5957.   OS/2 2.0 has a number of benefits:
  5958.  
  5959.   o   COMPATIBILITY: gives high compatibility with the widest range of Windows
  5960.       _____________
  5961.       applications, since the applications are running under the real Windows
  5962.       code, modified only for compatibility with OS/2.
  5963.  
  5964.   o   PERFORMANCE: since the applications run under a modified version of
  5965.       ___________
  5966.       Windows itself, it does not suffer from the performance limitations of a
  5967.       Binary Compatibility Layer (BCL) approach, such as was previously
  5968.       attempted (and subsequently abandoned) by Microsoft. Although single
  5969.       tasking scenarios may be up to 20% slower, multi-tasking performance is
  5970.       comparable to that under Windows and in many scenarios better, because of
  5971.       the superior multi-tasking design of OS/2. Indeed, the more the system is
  5972.       loaded, the faster Windows performance will tend to deteriorate in
  5973.       comparison with the same configuration under WIN-OS/2. Even the example
  5974.       quoted earlier from NSTL's independent benchmarking (see "Performance" on
  5975.       page 62) shows Windows performance less than WIN-OS/2 even with only one
  5976.       background process.
  5977.  
  5978.   o   PROTECTION: since Windows applications can run in separate VDMs, they are
  5979.       __________
  5980.       better protected from each other, so that errant applications cannot
  5981.       bring down the system. Windows applications themselves are protected from
  5982.       DOS applications more than is possible under DOS/Windows.
  5983.  
  5984.   And, as we have already seen, OS/2 2.0 represents a superior environment for
  5985.   multiple DOS applications (see "OS/2 versus Windows as a multi-DOS
  5986.   environment" on page 60), since there is more memory, better multi-tasking,
  5987.   and more protection than under any DOS or DOS extender.  Therefore, in being
  5988.   a better multi-DOS environment, and running Windows applications with full
  5989.   compatibility and extra protection, OS/2 2.0 is a better Windows environment
  5990.   overall.
  5991.  
  5992.  
  5993.   PORTING WINDOWS APPLICATIONS TO OS/2
  5994.   ____________________________________
  5995.  
  5996.   Of course, although OS/2 can offer excellent compatibility with Windows
  5997.   applications, those applications still remain Windows applications, and they
  5998.   are therefore limited in the extent to which they can integrate with OS/2.
  5999.   For example, full drag and drop functionality and other exploitation of the
  6000.   Workplace Shell, is only possible if you write for that environment, and that
  6001.   means OS/2. OS/2 applications have full access to a 32-bit API, 32-bit memory
  6002.   management, and multi-threading capability, allowing the same application to
  6003.   be much more responsive to the user (for example, retrieving a new file while
  6004.   saving the old one, rather than having to wait with the hourglass showing, as
  6005.   you might in a 16-bit, single-threaded environment like DOS/Windows.)  Minor
  6006.   issues of look and feel are also different (as is apparent when the
  6007.   application is run in a window alongside OS/2 applications).
  6008.  
  6009.   Compatibility with existing Windows applications is important:  but it does
  6010.   not mean that users should not be offered the chance of using better, more
  6011.   powerful and more responsive applications by using native OS/2 applications.
  6012.  
  6013.  
  6014.                                                              Better Windows  75
  6015.  
  6016.  
  6017.  
  6018.  
  6019.  
  6020.  
  6021.  
  6022.  
  6023.  
  6024.   Some have tried to suggest that having a Windows application is enough, since
  6025.   it will run under OS/2 anyway, and therefore one version will cover both
  6026.   markets. Developers who have followed this "lowest common denominator"
  6027.   approach, are now finding themselves unable to differentiate themselves from
  6028.   the competition, and indeed at a disadvantage in the OS/2 marketplace.
  6029.  
  6030.   Increasingly, users who migrate to OS/2 2.0, are demanding "native" OS/2
  6031.   applications, and vendors who can only offer Windows applications running
  6032.   under WIN-OS/2 are finding themselves uncompetitive if they do not supply a
  6033.   real 32-bit OS/2 version. WIN-OS/2 may be a "better Windows," but it is not
  6034.   as good as real 32-bit OS/2 and the Workplace Shell.  Therefore, vendors have
  6035.   considerable incentive to write for OS/2 and not keep only to Windows
  6036.   support. And over 1000 OS/2 32-bit applications are in development: more than
  6037.   150 shipped within three months of the release of OS/2 version 2.0. Vendors
  6038.   who have committed to OS/2, or who already have products available, include
  6039.   Lotus, Borland, Software Publishing Corp., Novell, Corel Systems, Micrografx,
  6040.   WordPerfect, DeScribe, ZSoft, Oracle, Gupta and Computer Associates. And IBM
  6041.   is also delivering a number of applications (in addition to the systems
  6042.   extensions described in "OS/2 in a connected environment" on page 109)
  6043.   including Personal AS/2, and ImagePlus/2.
  6044.  
  6045.   Writing for OS/2, and in particular using the OS/2 32 bit API, positions the
  6046.   software developer to take advantage of the developments in the OS/2
  6047.   environment, including multimedia, distributed computing and the increasing
  6048.   use of object technology (see "Futures" on page 123).
  6049.  
  6050.   However, possibly the most convincing argument for developers now, is the
  6051.   fact that over one million copies of OS/2 2.0 have been shipped within six
  6052.   months of its first availability, and OS/2 2.0 looks set to continue its
  6053.   success.  The one million mark is for many commercial developers, a sign of
  6054.   viability for a platform. Ed Zander, president of SunSoft, Inc., the software
  6055.   subsidiary of Sun Microsystems, was quoted in PC Week about Microsoft's views
  6056.                                                 _______
  6057.   on porting its applications to SunOS: "Microsoft tells every company that
  6058.   walks in there that it won't do the ports until the architecture has an
  6059.   installed base of 1 million"(18) Microsoft's Bill Gates was quoted by PC
  6060.                                                                         __
  6061.   Magazine as saying he would only consider developing for OS/2 when it shipped
  6062.   ________
  6063.   more than 2 million units.(19) OS/2 has already passed the one million mark
  6064.   and is heading towards the second.  Whether the report in PC Magazine has any
  6065.                                                             ___________
  6066.   relevance to any future plans Microsoft may have for OS/2 2.0 applications,
  6067.   is unknown.
  6068.  
  6069.   Although the Windows and PM APIs are in some respects different, porting
  6070.   tools like the Developers' Migration Kit (see below) are being developed
  6071.   which aid the migration of Windows applications to OS/2, to allow them to
  6072.   take advantage of OS/2 benefits.  These are tools at the developer rather
  6073.  
  6074.   ---------------
  6075.  
  6076.   (18) Quoted in PC Week, July 29, 1991 - p111
  6077.                  _______
  6078.  
  6079.   (19) The report in PC Magazine, May 12, 1992 - p32, said : "When CEO Bill
  6080.                      ___________
  6081.       Gates was asked what it would take for Microsoft to write for OS/2, he
  6082.       said 2 million copies in the first year - but they'll sell less than 10%
  6083.       of that"
  6084.  
  6085.  
  6086.                                                              Better Windows  76
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  
  6093.  
  6094.  
  6095.  
  6096.   than user level:  the Windows applications compatibility solution described
  6097.   above is a user-oriented solution, to gain maximum compatibility with
  6098.   existing shrink-wrap applications and derive some inherent OS/2 benefits like
  6099.   true multi-tasking and reliability; there are also developer tools, which
  6100.   allow applications to be ported from Windows to OS/2 and add OS/2
  6101.   functionality in the process. Among such tools are those being produced by
  6102.   IBM and Micrografx.
  6103.  
  6104.  
  6105.   IBM/MICROGRAFX PORTING TOOLS
  6106.  
  6107.   In April 1991, IBM announced a joint development and licensing agreement with
  6108.   Micrografx, Inc., a leading vendor of Windows and OS/2 applications. Part of
  6109.   that agreement included IBM's and Micrografx's intention to produce a porting
  6110.   toolkit to help move Windows applications to OS/2.
  6111.  
  6112.   The Developers' Migration Kit/2, announced in July 1992, allows developers to
  6113.   port applications and drivers from Windows to OS/2 with little or no code
  6114.   changes.  There are tools for applications and for device drivers.  The
  6115.   applications porting kit, and the device driver kit are based on the Mirrors
  6116.   technology from Micrografx.  Developers can maintain a common code base
  6117.   between Windows and OS/2, or OS/2 specific functionality as they port. The
  6118.   latter is recommended to enable better integration with the Workplace Shell
  6119.   (see "Workplace Shell exploitation" on page 82)  Drivers ported with the
  6120.   driver tools, such as the HP Paintjet driver, are already part of the OS/2
  6121.   2.0 base printer driver suite.
  6122.  
  6123.   This will increase the number of OS/2 applications by leveraging the Windows
  6124.   application base, and make it easier for developers to participate in both
  6125.   opportunities. This in turn will give the user another option to take
  6126.   advantage of his existing investment, but also have a wider choice of real
  6127.   OS/2 applications.
  6128.  
  6129.   The way in which the porting process takes place is similar to a product
  6130.   previously distributed by Microsoft, the Windows Libraries for OS/2 (WLO).
  6131.   WLO was derived from Micrografx Mirrors technology, but IBM and Micrografx
  6132.   are now using a more mature version of the technology in the Developers'
  6133.   Migration Kit/2.  Furthermore, the philosophy of the Developers' Migration
  6134.   Kit is somewhat different to that of WLO:  the latter retained something of
  6135.   the original BCL approach (see "Contrast with previous approaches (BCL)" on
  6136.   page 67), allowing a Windows application to run on OS/2 by emulating Windows
  6137.   on top of OS/2, providing OS/2 versions of the Windows libraries the
  6138.   application usually links to.  Although the porting process is similar, the
  6139.   Developers' Migration Kit is designed specifically to produce applications
  6140.   for OS/2 2.0 (not both 16- and 32-bit as was WLO's aim), and has a number of
  6141.   additional tools to help optimise the port for the OS/2 environment.  The
  6142.   result is likely to be better performing OS/2 2.0 applications than were
  6143.   possible using the WLO approach.
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.                                                              Better Windows  77
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.  
  6162.   BETTER OS/2
  6163.   ___________
  6164.  
  6165.  
  6166.  
  6167.  
  6168.  
  6169.   OS/2 1.3 has been widely respected and well received. Nevertheless, as well
  6170.   as being a better DOS than DOS, and a better Windows than Windows, OS/2 2.0
  6171.   is even a better OS/2 than OS/2 1.3. This section will show why.
  6172.  
  6173.  
  6174.   COMPATIBILITY
  6175.   _____________
  6176.  
  6177.   OS/2 allows applications written for previous releases of OS/2 to work
  6178.   without modification on version 2.0. The design of OS/2 always took this into
  6179.   account, and provides binary compatibility not only for the commercial
  6180.   applications written by ISVs, such as Lotus 1-2-3 for OS/2, but also the
  6181.   "line of business" applications written in-house by various companies to
  6182.   support their key business activities.  It is estimated by one independent
  6183.   source that as much as $4 billion of investment has been made in such systems
  6184.   running on OS/2.  Compatibility with these applications is a statement of
  6185.   IBM's intention to protect that investment while migrating forwards to new
  6186.   and better environments.
  6187.  
  6188.   The OS/2 design had to take account of 16-bit applications running in a
  6189.   32-bit system, and the system itself provides many services to allow 32-bit
  6190.   modules to call existing 16-bit modules, thus allowing for mixed 16/32-bit
  6191.   applications.  This means that the mixed model gives great flexibility, both
  6192.   in migrating applications from 16- to 32-bit, and also in allowing 32-bit
  6193.   applications to make the best possible use of existing service routines,
  6194.   window classes etc, developed for previous releases of OS/2.  (See "Mixed
  6195.   16-/32-bit environment" on page 12).
  6196.  
  6197.   Furthermore, the consistency of the API between 16- and 32-bit, allows
  6198.   relatively easy migration to 32-bit.  The PM API in particular was designed
  6199.   with 32-bit in mind, and this makes the 16- to 32-bit conversion relatively
  6200.   straightforward.  Conversion can be done in stages if preferred, the mixed
  6201.   16:32 model allowing a variety of approaches from recompiling and relinking,
  6202.   to full rewrite for critical sections, optimising for 32-bit.
  6203.  
  6204.  
  6205.   GRAPHICAL INSTALLATION
  6206.   ______________________
  6207.  
  6208.   The user's first view of the system, at installation time, is very different
  6209.   from 1.3. Instead of being entirely text-based, after the first disks,
  6210.   installation is done in a graphical mode.  This is more consistent with the
  6211.   main user interface, and provides better feedback to the user: a progress
  6212.   indicator bar shows how far through the installation the user has got, and
  6213.   pictures of disks appear at the bottom to show how many disks have been used
  6214.   and how many remain.
  6215.  
  6216.   The Install program is more intelligent; it can figure out your mouse,
  6217.   display, keyboard and country setup, and offer defaults for you to choose.
  6218.   For those who need more detailed control over their system, the selective
  6219.  
  6220.  
  6221.                                                                 Better OS/2  78
  6222.  
  6223.  
  6224.  
  6225.  
  6226.  
  6227.  
  6228.  
  6229.  
  6230.  
  6231.   install which first appeared in 1.3 is also in 2.0, but as a graphical dialog
  6232.   box with check boxes to select the options and buttons to indicate how much
  6233.   each item takes up on disk, as well as a cumulative indication of the total
  6234.   disk space required for the components chosen.  Among the options that can be
  6235.   chosen or left are the on-line documentation, REXX, fonts, HPFS, and MVDM/DOS
  6236.   support.  These options allow further selection at a more granular level.
  6237.   For example, many people install DOS support but not Windows support, since
  6238.   they have no Windows applications.  Even individual utilities and
  6239.   applications can be selected or not; and the size of each component is listed
  6240.   to help you determine whether or not you want to spare the disk space.  This
  6241.   can make a difference, as the Tools and Games "applets"  (see "Applets" on
  6242.   page 96) take up to 5.7Mb of disk space.  But a listing of the individual
  6243.   utilities and games allows you to see what each item takes (eg games:  JIGSAW
  6244.   68K, SOLITAIRE 375K; applets:  TERMINAL 1501K, PM CHART 1159K).
  6245.  
  6246.   +---------------------------------------------------------------------------+
  6247.   |                                                                           |
  6248.   |                                                                           |
  6249.   +---------------------------------------------------------------------------+
  6250.   Figure 16. Installation program - progress indicator
  6251.  
  6252.   The user is given an easier and less error-prone way to control some of the
  6253.   parameters in CONFIG.SYS, by cycling through valid options.  Once the product
  6254.   is installed, further customisation is possible via the OS/2 system folder
  6255.   (which contains options similar to the OS/2 1.x Control Panel).  Options can
  6256.   be added individually at a later point with the "Selective Install" object in
  6257.   the "System Setup" folder.
  6258.  
  6259.   For users wanting to install OS/2 over an existing DOS system, OS/2 install
  6260.   offers migration of existing DOS, Windows and OS/2 applications.  If the
  6261.   install program detects applications it recognises on the disk, it will offer
  6262.   the user the option to put them in a folder.  This way, the system can come
  6263.   up with the user's existing applications already available.  These
  6264.   applications are also set up with an optimal collection of DOS and Windows
  6265.   settings.  System Administrators can create their own custom database of
  6266.   applications to migrate in a similar way (see "Migrating applications" on
  6267.   page 51).
  6268.  
  6269.   When installing over a Windows 3.0 or OS/2 1.3 machine, the program groups
  6270.   are migrated into folders so that the groupings of programs are the same in
  6271.   the new environment. Device drivers from either DOS or OS/2 CONFIG.SYS files
  6272.   can be migrated too, as well as printer definitions from either Windows 3.0
  6273.   or OS/2 1.3.
  6274.  
  6275.   For new users, the install can give a tutorial on use of the mouse in order
  6276.   to guide the user through installation.
  6277.  
  6278.   As well as being simpler and more appealing to look at, installation is
  6279.   faster, due to an enhanced compression/uncompression algorithm for unpacking
  6280.   files from the disks.  Install can be done from any drive to any drive,
  6281.   allowing OS/2 2.0 to be installed, in future, from CD-ROM, or any other media
  6282.   that can be accessed as a normal drive letter, including across a LAN if
  6283.   required.  In addition, tools and services are available from IBM to assist
  6284.   the automated installation of many machines.  Remote installation and systems
  6285.  
  6286.  
  6287.                                                                 Better OS/2  79
  6288.  
  6289.  
  6290.  
  6291.  
  6292.  
  6293.  
  6294.  
  6295.  
  6296.  
  6297.   management is a major area of development for OS/2, but many basic tools and
  6298.   facilities are here today (see "Configuration, Installation, Distribution
  6299.   (CID)" on page 118). Most important of all, is that OS/2 2.0 is already
  6300.   enabled for automated LAN-based installation.  See the publication OS/2 2.0
  6301.                                                                      ________
  6302.   Technical Compendium, Volume 5:  Remote Installation and Maintenance
  6303.   ____________________________________________________________________
  6304.   (GG24-3780-00), for more details.
  6305.  
  6306.   Such automated installation tools can substantially reduce the amount of time
  6307.   taken to install OS/2 on a number of machines, since installation can take
  6308.   place simultaneously on several machines without operator intervention. The
  6309.   option for automated, LAN-based install, reduces objections to the amount of
  6310.   time taken to install the operating system. Even in a standalone environment,
  6311.   installation is straightforward, and though the number of disks required for
  6312.   an OS/2 installation does mean that a manual install will usually take at
  6313.   least 20 minutes, it is usually one single operation to install the system,
  6314.   with one reboot in the middle. Many people forget that although Windows comes
  6315.   on less diskettes, it does require DOS to be installed first, causing a
  6316.   two-stage installation process, and, for certain requirements, some
  6317.   co-ordination between the DOS and Windows installations is required (for
  6318.   example, if you want to use a mouse in a DOS window inside Windows 3.x - see
  6319.   "Integration" on page 63).
  6320.  
  6321.  
  6322.   BOOT MANAGER
  6323.  
  6324.   For users who wish to retain more than one operating system on their disk,
  6325.   OS/2 includes a multiple boot facility (Boot Manager).  This allows different
  6326.   operating systems to be placed on separate partitions, in order to select
  6327.   which partition to boot at power-on or reset time.  Since OS/2 can support
  6328.   the vast majority of DOS, Windows and OS/2 16-bit applications, it is not
  6329.   anticipated that this will be needed by many people for booting DOS or OS/2
  6330.   1.3 instead of 2.0, but instead may be used with other systems such as AIX,
  6331.   or as a testing tool for developers or technical support staff.
  6332.  
  6333.   It works by allocating a 1MB primary disk partition to a Master Boot Block
  6334.   (MBB) which contains code that is always executed first at boot time and
  6335.   handles further access to the hard disk.  It displays a menu allowing the
  6336.   user to select the logical drive from which to start the system.  Once this
  6337.   logical drive is selected, the operating system loader for the appropriate
  6338.   system is loaded as normal.  New versions of FDISK and FDISKPM allow the user
  6339.   to select the logical drive for use.  DOS and OS/2 1.3 have to be installed
  6340.   on a primary partition on the first hard disk, but OS/2 2.0 can be booted
  6341.   from any partition on any drive. This gives greater flexibility in planning
  6342.   installation than is possible using DOS, or Windows, which is dependent on
  6343.   DOS for booting.
  6344.  
  6345.  
  6346.   OS/2.0 - THE 32-BIT SYSTEM
  6347.   __________________________
  6348.  
  6349.   There are a number of obvious benefits to users in working with OS/2 2.0.
  6350.   There are also many benefits for developers.  Developer benefits can also be
  6351.   relevant to users: anything that helps developers ultimately helps users,
  6352.   since it becomes easier to write better and more powerful applications, and
  6353.   provide the opportunity for applications that could not be produced before.
  6354.  
  6355.  
  6356.                                                                 Better OS/2  80
  6357.  
  6358.  
  6359.  
  6360.  
  6361.  
  6362.  
  6363.  
  6364.  
  6365.  
  6366.   WHY 32-BIT OS/2?
  6367.  
  6368.   First, it is worth examining why it is significant that OS/2 is a 32-bit
  6369.   system, and what benefits this can provide.
  6370.  
  6371.  
  6372.   Better performance
  6373.  
  6374.   One of the most obvious benefits of a 32-bit OS/2 program is that it will
  6375.   almost certainly perform faster than a 16-bit equivalent. An OS/2 32-bit
  6376.   application can make use of the full 32-bit instruction set and extended
  6377.   registers of the Intel processor. Some 32-bit compiled programs will also be
  6378.   smaller in size because of the smaller number of CPU instructions needed to
  6379.   complete certain tasks. Low level functions such as string manipulation, data
  6380.   movement and pointer operations will often be twice as fast under 32-bit.
  6381.  
  6382.   Furthermore, if the application is coded to the flat memory model, there are
  6383.   none of the overheads of segmented programming, such as the need to reload
  6384.   segment registers every time a different 64KB of memory needs to be accessed.
  6385.   This is slow and also an inconvenience and wasted code for the developer.
  6386.  
  6387.   The system itself provides more efficient paging than both the swapping
  6388.   mechanism of OS/2 1.3, and the memory paging used in the 16-bit Windows
  6389.   system (even on a 386). Applications that take advantage of the smaller
  6390.   memory granularity (memory can be swapped out to disk in 4KB pages) by
  6391.   intelligent organisation of code and collaboration with the paging mechanism
  6392.   by allocating memory in page size units, can show a significant performance
  6393.   improvement.
  6394.  
  6395.   The performance improvements that are possible depend on the changes made:
  6396.   they range between 5% and up to around 40%.  An example of the improvements
  6397.   possible is in the REXX interpreter, part of the OS/2 base system.
  6398.   Performance has been dramatically improved since it was changed to run in
  6399.   32-bit mode, as the graph below shows:
  6400.  
  6401.   +---------------------------------------------------------------------------+
  6402.   |                                                                           |
  6403.   |                                                                           |
  6404.   +---------------------------------------------------------------------------+
  6405.   Figure 17. Comparison of 32- and 16-bit performance - REXX
  6406.  
  6407.   Even more encouraging is how such benefits can be achieved with relatively
  6408.   little additional development time. since OS/2 was designed with 32-bit in
  6409.   mind, migration from 16-bit has been made as straightforward as possible (see
  6410.   "Migration 16- to 32-bit" on page 84).
  6411.  
  6412.   The difference between 16-bit and 32-bit can be significant, especially when
  6413.   it is comparing Windows and OS/2 capabilities at the same time. DeScribe is a
  6414.   graphical word processing application which exists for 16-bit OS/2 (OS/2 1.x)
  6415.   and for 16-bit Windows (Windows 3.x).  The company has, in the past,
  6416.   demonstrated beta test versions of its 32-bit OS/2 release (which shipped
  6417.   soon after OS/2 2.0's March availability), comparing it with its own 16-bit
  6418.   Windows version.  Comparisons made by Describe, Inc., show that the 32-bit
  6419.   OS/2 version can be anything between 30 and 300% faster than the 16-bit
  6420.  
  6421.  
  6422.                                                                 Better OS/2  81
  6423.  
  6424.  
  6425.  
  6426.  
  6427.  
  6428.  
  6429.  
  6430.  
  6431.  
  6432.   Windows version, to complete the same operation.  In addition, the OS/2
  6433.   32-bit version implements features like multi-threading which cannot be
  6434.   offered in the Windows version (since Windows 3.x cannot provide
  6435.   multi-threading).  This makes it possible, for example, to save one file and
  6436.   then start loading another while the previous file is being saved to disk, or
  6437.   looking at one document while another is repaginating.  This results in even
  6438.   higher PERCEIVED  performance to the user, because the application is more
  6439.          _________
  6440.   responsive, and less time is spent looking at an hourglass icon.
  6441.  
  6442.  
  6443.   More sophisticated applications
  6444.  
  6445.   Applications that may need space and better ability to handle large data
  6446.   objects (eg DTP, CAD/CAM, financial modelling, multimedia, database) will be
  6447.   easier to develop in a 32-bit system. Indeed, some may not be possible or
  6448.   feasible in a 16-bit system. In a segmented environment, programmers have to
  6449.   develop their own algorithms to use multiple segments to implement a single
  6450.   logical structure, which is complex and may make it difficult to achieve
  6451.   performance objectives. This is another issue that may help some applications
  6452.   move from the Unix environment to OS/2, since they have not been feasible on
  6453.   an Intel platform till now. Also, OS/2's support for overlapped I/O enables
  6454.   support for more sophisticated applications, like multimedia, where it allows
  6455.   better synchronisation between audio and video.
  6456.  
  6457.  
  6458.   Workplace Shell exploitation
  6459.  
  6460.   Windows and DOS applications will load from the Workplace Shell, but not take
  6461.   full advantage of the drag and drop capabilities and other methods of
  6462.   participating in the shell. It is possible to provide compatibility, but not
  6463.   full integration, since Windows applications remain Windows applications (see
  6464.   "Porting Windows applications to OS/2" on page 75).
  6465.  
  6466.   Some of the examples of what can be achieved by integrating the application
  6467.   with the Workplace Shell include:
  6468.  
  6469.   o   drag and drop printing, and file loading
  6470.  
  6471.   o   drag and drop installation
  6472.  
  6473.   o   consistency of user interface with the rest of shell - ease of learning
  6474.       applications
  6475.  
  6476.   o   registration of application objects, so they can appear as templates and
  6477.       have their own file associations
  6478.  
  6479.   o   interaction with other Workplace Shell objects
  6480.  
  6481.   o   more powerful user navigation: context menus, settings controls, views
  6482.       etc
  6483.  
  6484.   o   on line documentation, including integration with the Master Help Index
  6485.       if required
  6486.  
  6487.  
  6488.  
  6489.                                                                 Better OS/2  82
  6490.  
  6491.  
  6492.  
  6493.  
  6494.  
  6495.  
  6496.  
  6497.  
  6498.  
  6499.   o   shutdown notification (eg start up with same collection of views and
  6500.       objects next time - pick up from where you left off)
  6501.  
  6502.   Although the benefits of Workplace Shell integration do not specifically
  6503.   arise from the fact that the system is 32-bit, they can only be achieved
  6504.   today by coding to the OS/2 32-bit API. 16-bit Windows can provide very
  6505.   little of this function today.
  6506.  
  6507.  
  6508.   Portability
  6509.  
  6510.   Applications written for OS/2 2.0 will be much easier to port to other 32-bit
  6511.   systems like AIX than applications written for 16-bit systems, as
  6512.   dependencies on processor specifics (such as the Intel segmented model) are
  6513.   eliminated.  Ports from other environments (Unix etc) will be easier for the
  6514.   same reason.  This will give the user an even wider choice of applications.
  6515.  
  6516.   Applications written for OS/2 2.0 will also be better prepared for systems as
  6517.   yet unreleased such as a future portable version of OS/2.
  6518.  
  6519.  
  6520.   Simpler programming model
  6521.  
  6522.   In OS/2 2.0, there is no need to take into account the requirements of the
  6523.   Intel segmented model, calling for code to be broken down into 64KB segments,
  6524.   and also no need for segment manipulation when passing control between
  6525.   threads or calling DLLs, for example, as is currently the case in 16-bit
  6526.   systems like OS/2 1.3 and Windows. Instead, memory is allocated with a 32-bit
  6527.   pointer that maps into an address space of 512MB, with no 64KB limit on the
  6528.   size of individual segments. Memory can therefore be allocated in logical
  6529.   units dictated by the requirements of the application rather than the
  6530.   constraints of the segmented memory model. This leads not only to better
  6531.   performance (reduced segment reloading), but reduced application development
  6532.   time (less code needed to do the same job, since segment handling code is no
  6533.   longer necessary).
  6534.  
  6535.   32-bit OS/2 coding is also simpler because there is only one memory model,
  6536.   instead of the many (small, medium, huge) under the segmented application
  6537.   model (represented by OS/2 1.3, DOS, Windows).
  6538.  
  6539.   The result for the user is that powerful and sophisticated applications will
  6540.   appear quicker, and some will be feasible for the first time, because they
  6541.   are easier to develop. Also more programming time can be spent on providing
  6542.   better function or usability rather than managing memory segments, which
  6543.   should also benefit the user.
  6544.  
  6545.  
  6546.  
  6547.  
  6548.  
  6549.  
  6550.  
  6551.  
  6552.  
  6553.  
  6554.  
  6555.                                                                 Better OS/2  83
  6556.  
  6557.  
  6558.  
  6559.  
  6560.  
  6561.  
  6562.  
  6563.  
  6564.  
  6565.   Exploit hardware investment
  6566.  
  6567.   32-bit programs allow companies to take advantage of the investment in 32-bit
  6568.   hardware systems that they have been purchasing for several years. Currently,
  6569.   32-bit hardware is, in most cases, running 16-bit software. 16-bit software
  6570.   does not take advantage of the features of the hardware that have been
  6571.   optimised for 32-bit operation. 386 machines have simply been used as "go
  6572.   faster" 286 or 8086 machines, until a 32-bit system has become available to
  6573.   take advantage of it. As we have seen, the benefits of 32-bit are not just in
  6574.   performance, but in broadening the scope of what can be done. Waiting any
  6575.   longer for 32-bit alternative systems to become available, simply increases
  6576.   the length of time that the investment is left unexploited.
  6577.  
  6578.   All in all, 32-bit equals a richer set of applications, which are faster, and
  6579.   allow more choice and more function for users; in this way, developer
  6580.   benefits become user benefits.
  6581.  
  6582.  
  6583.   MIGRATION 16- TO 32-BIT
  6584.  
  6585.   Best of all, migration from 16- to 32-bit OS/2 applications can often be
  6586.   accomplished relatively easily. PM was designed with 32-bit use in mind, and
  6587.   the design of OS/2 2.0 has taken into account the need, not only to run OS/2
  6588.   1.3 applications unmodified, but also to make it straightforward to change
  6589.   the 16-bit OS/2 application to exploit 32-bit. In some cases, little more
  6590.   than a few function call changes are required. In many cases, changes will be
  6591.   needed to change from a segmented 16-bit memory management to the flat memory
  6592.   model of 2.0. How much work is involved here depends on how many dependencies
  6593.   the existing 16-bit application has on segment manipulation. What certainly
  6594.   can be said is that movement from 16- to 32-bit OS/2 will be no more
  6595.   difficult than changes to other 32-bit APIs (such as a future 32-bit Windows
  6596.   API), when they appear. Windows 3.x is based on an inherently 16-bit
  6597.   segmented model; unlike OS/2, it did not have the benefit of being designed
  6598.   with 32-bit migration in mind.
  6599.  
  6600.  
  6601.   OS/2 - A 32-BIT API - TODAY
  6602.  
  6603.   Some arguments against OS/2 rest on claims that OS/2 is not a full 32-bit
  6604.   system, or that other DOS-based alternatives provide a 32-bit system today.
  6605.   Such claims are based on misconception.  The essence of whether a system is
  6606.   32-bit or not, does not lie in how its internals are coded, but in the
  6607.   benefits it offers to users and programmers.  In fact, even to developers,
  6608.   the key issue is not what the system looks like internally, but what kind of
  6609.   programming interface is offered.  And, in this respect, OS/2 already offers
  6610.   a full 32-bit API, which has been designed to offer the maximum ease of
  6611.   migration from 16-bit (see above).  The OS/2 32-bit API enables developers to
  6612.   escape from the limitations of 16-bit segmented memory management to a flat
  6613.   memory model, but also offers multi-threading, advanced graphics support, and
  6614.   powerful interprocess communicatons.  The OS/2 32-bit API is also enabled to
  6615.   accommodate extensions like multimedia and pen-based computing.  It therefore
  6616.   opens up the future path not only for multimedia and pen, but also
  6617.   portability to RISC, and for increasing use of object-oriented technology,
  6618.   distributed networking and other developments.
  6619.  
  6620.  
  6621.                                                                 Better OS/2  84
  6622.  
  6623.  
  6624.  
  6625.  
  6626.  
  6627.  
  6628.  
  6629.  
  6630.  
  6631.   In contrast, Microsoft offers today only a 16-bit API for Windows 3.x. The
  6632.   only 32-bit function currently available is the sparse set of functions in
  6633.   the WINMEM32.DLL, which even Microsoft itself warns, requires advanced
  6634.   Windows and assembly level programming skills.  Applications coded in this
  6635.   way may not be easily portable to other processors, if extensive use is made
  6636.   of Intel assembly language.  Since WINMEM32.DLL is a set of eight 32-bit
  6637.   function calls grafted on to a 16-bit DOS extender, the 32-bit code cannot
  6638.   make calls to 16-bit Windows or DOS functions, and therefore the WINMEM32
  6639.   program has to create its own interfaces between the 16- and 32-bit code
  6640.   segments, with address and parameter translation, ie the application must
  6641.   implement its own thunks, and they must be implemented in assembler.  This is
  6642.   in contrast with OS/2 2.0, which is designed to allow easy mixed model
  6643.   programming, and provides thunk controls to move between 16- and 32-bit
  6644.   modules.  This makes developing 32-bit applications much easier, and much
  6645.   easier to migrate from 16-bit.
  6646.  
  6647.   Microsoft has announced that when Windows/NT ships, it will implement a 32
  6648.   bit API, referred to as Win32. Publicly available specifications of the Win32
  6649.   API show it to be very similar in principle to the OS/2 32-bit API, with few
  6650.   extra features. But since Windows/NT is not scheduled to ship before the
  6651.   first half of 1993 at the earliest, Microsoft has announced a subset of the
  6652.   Win32 API, Win32s, will be available for developers working on Windows 3.1.
  6653.   This is understood to offer flat memory model programming (although details
  6654.   of the thunking that will be required are as yet unavailable), but will not
  6655.   offer advanced features like multi-threading and advanced graphics, which
  6656.   Microsoft says will not be available until Windows/NT appears.  Industry
  6657.   commentators have pointed out that the result of this is that developers will
  6658.   have to consider three different Windows APIs:
  6659.  
  6660.   o   Win16 (Windows 3.x)
  6661.   o   Win32s (Windows 3.1)
  6662.   o   Win32 (Windows/NT)
  6663.  
  6664.  
  6665.   and have to consider how they can design programs across three APIs, which
  6666.   can meet the stated Microsoft goal of scalability across the various future
  6667.   Windows offerings.
  6668.  
  6669.   On the other hand, OS/2 is available TODAY, and the 32-bit API has been
  6670.                                        _____
  6671.   available to developers for several years now, offering all the features
  6672.   promised across the three separate future Windows offerings, in one single
  6673.   API.  And the target platform has sold over a million units, several months
  6674.   before any alternative is due to appear.
  6675.  
  6676.   Internally, OS/2 is a hybrid 16-/32-bit system.  The majority of the system
  6677.   code (including most of the kernel, VDDs and the Workplace Shell) is 32-bit.
  6678.   Some other parts are obviously 16-bit as they aim to provide compatibility
  6679.   with older 16-bit software:  for example, WIN-OS/2 is a modification of
  6680.   16-bit Windows code, and is therefore as 16-bit under OS/2 as it is under
  6681.   DOS! Also, OS/2 maintains 16-bit code where it has been designed to
  6682.   accommodate 16-bit modules and DLLs, offering support for mixed 16- and
  6683.   32-bit code that is not apparent in Microsoft's stated aims for Windows/NT.
  6684.   Device drivers and parts of the file system are also still 16-bit. Other
  6685.   16-bit parts would gain little benefit from being adapted to 32-bit (such as
  6686.  
  6687.  
  6688.                                                                 Better OS/2  85
  6689.  
  6690.  
  6691.  
  6692.  
  6693.  
  6694.  
  6695.  
  6696.  
  6697.  
  6698.   the command line utilities like TREE and SORT). In general, OS/2's mixture of
  6699.   16-bit and 32-bit code is well suited to the range of today's applications
  6700.   where 16-bit calls predominate.  It remains to be seen how well Windows/NT
  6701.   will be optimised for the 16-bit applications which will still be the
  6702.   majority (especially as it will not be able to run any of the OS/2 32-bit
  6703.   applications which will comprise the majority of 32-bit applications when NT
  6704.   finally ships). As 32-bit applications grow in popularity, OS/2's mixture
  6705.   will become more 32-bit.
  6706.  
  6707.   But it must be stressed that the internals of the system are irrelevant to
  6708.   both users and programmers.  Programmers care about a 32-bit API:  OS/2
  6709.   offers a shipping product with a 32-bit API; Microsoft only currently
  6710.   supplies a beta version of Windows/NT.  Users care about compatibility and
  6711.   performance, and OS/2 provides both of these within its design.  Where 32-bit
  6712.   can offer potential benefits (eg performance or future portability), the
  6713.   system components either have been moved to 32-bit or will be over time (for
  6714.   example, the 32-bit PM graphics engine and screen device drivers, which will
  6715.   be delivered by the end of 1992 as an update pack).  On the other hand,
  6716.   though Microsoft claims that Windows 3.1 has significant 32-bit code
  6717.   internally (though only when running in 386 enhanced mode), it does not offer
  6718.   any 32-bit API nor multi-threading, so the benefits of 32-bit are only partly
  6719.   realised.
  6720.  
  6721.   One of the key issues in the "32-bit" debate is portability to and from other
  6722.   processor families such as RISC. But such portability for OS/2 or Windows
  6723.   requires two things: the operating system kernel and subsystems, and the
  6724.   applications. If the API is not 32-bit, there is little point in having a
  6725.   portable kernel, since the applications cannot move without the API. OS/2 has
  6726.   a mature 32-bit API TODAY, and it has been available for over 4 years (since
  6727.                       _____
  6728.   the original Microsoft OS/2 2.0 SDK). This API was designed to accommodate
  6729.   the future directions of OS/2, including portability to RISC, a promise we
  6730.   made together with Microsoft in 1989. Although Windows 3.1 contains some
  6731.   32-bit modules internally in some of its components (eg FastDisk) some of
  6732.   these are so Intel-specific that moving them to RISC will be difficult, if
  6733.   they are attempted at all. So once again, the issue of the internals of a
  6734.   system is an irrelevance, and moreover a distraction from the real issue: the
  6735.   key factor in a 32-bit design is balancing the aims of portability and
  6736.   performance, but most of all, ensuring that applications can be delivered to
  6737.   exploit the system via the 32-bit API. Today, OS/2 delivers such an API, with
  6738.   features that are only promised for the future by Microsoft.
  6739.  
  6740.  
  6741.  
  6742.  
  6743.  
  6744.  
  6745.  
  6746.  
  6747.  
  6748.  
  6749.  
  6750.  
  6751.  
  6752.  
  6753.  
  6754.  
  6755.                                                                 Better OS/2  86
  6756.  
  6757.  
  6758.  
  6759.  
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.   WORKPLACE SHELL
  6766.   _______________
  6767.  
  6768.  
  6769.  
  6770.  
  6771.  
  6772.   The new user interface for OS/2 2.0 is one of the more obvious ways in which
  6773.   the new OS/2 is better than before.  But because it is a new interface, some
  6774.   aspects need some discussion as to why they are new and what benefits they
  6775.   bring.
  6776.  
  6777.  
  6778.   WHY ANOTHER USER INTERFACE?
  6779.   ___________________________
  6780.  
  6781.   The new look of OS/2 2.0 sets it apart visually not only from previous
  6782.   versions of OS/2, but also from other GUI environments on Intel-based PCs,
  6783.   such as Windows. To some, a new look presents opportunity; for others, who do
  6784.   not like change, the difference can seem a problem. It is worth examining
  6785.   some of the reasons why OS/2 2.0 presents a new look and feel, rather than
  6786.   just continuing with the OS/2 1.x look.
  6787.  
  6788.   o   MOVE TO THE FUTURE
  6789.       __________________
  6790.  
  6791.       OS/2 is not only a system that protects past investments in DOS, Windows
  6792.       and OS/2 1.x, but is also a platform for the future. It aims to provide
  6793.       the kind of object-based interface that will be the norm in tomorrow's
  6794.       object-oriented systems, but can deliver this function today, since
  6795.       386-based platforms have the power to support it. This is the new look
  6796.       defined in IBM's Common User Access (CUA) 1991 guidelines for the
  6797.       "workplace" model. But CUA is not just a set of rules - it is based on a
  6798.       VISION of how computers can really become more useful and useable. Ask
  6799.       ______
  6800.       your IBM contact about the "CUA Vision" disk-based presentation and video
  6801.       (see "CUA Vision materials" on page 156), to see where the workplace
  6802.       model is heading in future, and what sort of applications can be
  6803.       developed.
  6804.  
  6805.   o   NEED TO ATTRACT NEW USERS
  6806.       _________________________
  6807.  
  6808.       The PC marketplace is beginning to slow in growth. Vendors end up selling
  6809.       more hardware and software to the same people, and IS departments find it
  6810.       difficult to broaden the base of computer usage. That is because apart
  6811.       from the pioneers and early adopters, PCs are still too difficult to use
  6812.       for too many people. Current users would like to do more with their
  6813.       existing systems, but are constrained by the difficulties of learning so
  6814.       many different applications, each with their own unique way of working.
  6815.       And the fact that we are finding neither new uses nor new users for PCs,
  6816.       means that the return on our investment is limited, and the benefits are
  6817.       not being fully realised.
  6818.  
  6819.   o   FOCUS ON INFORMATION, NOT THE COMPUTER
  6820.       ______________________________________
  6821.  
  6822.       Too much of today's use of PCs requires the user to know a lot about the
  6823.       way the computer handles the data. Even GUIs like Windows and OS/2 1.x
  6824.       are basically a graphical representation of the same old
  6825.  
  6826.  
  6827.                                                             Workplace Shell  87
  6828.  
  6829.  
  6830.  
  6831.  
  6832.  
  6833.  
  6834.  
  6835.  
  6836.  
  6837.       computer-oriented way of working. Instead of worrying about different and
  6838.       inconsistent "managers" (File Manager, Program Manager, Desktop Manager),
  6839.       with some handling files, others programs etc, the user can focus on the
  6840.       information he wants to work with, and let the system worry about file
  6841.       and programs. You can have icons representing a report, and have the
  6842.       system associate that with a given application (such as a word processor)
  6843.       so that clicking on the icon loads the application. In this way, programs
  6844.       become tools to achieve the real desired result - working with
  6845.       INFORMATION.
  6846.  
  6847.   o   2ND GENERATION GUI
  6848.       __________________
  6849.  
  6850.       OS/2 2.0's user interface, and the design principles behind it, is the
  6851.       result of more than five years of analysis, prototyping and testing in
  6852.       IBM's usability laboratories.  The results of the tests indicate that an
  6853.       information-oriented user interface like the Workplace Shell is more
  6854.       productive and easier to pick up for first time users.  Once the basic
  6855.       principles are learned, even experienced users of old GUIs like Windows,
  6856.       find they prefer the Workplace Shell, since more complex tasks can be
  6857.       accomplished easier and it is more flexible.  It is an interface that
  6858.       builds on the achievements of "first generation"  GUIs like OS/2 1.x and
  6859.       Windows, and moves users on to the "second generation."
  6860.  
  6861.   +---------------------------------------------------------------------------+
  6862.   |                                                                           |
  6863.   |                                                                           |
  6864.   +---------------------------------------------------------------------------+
  6865.   Figure 18. OS/2 Workplace Shell
  6866.  
  6867.   o   HARMONISE DIFFERENT USER INTERFACES
  6868.       ___________________________________
  6869.  
  6870.       People who have been using PCs for some time will have acquired knowledge
  6871.       of many different types of user interface: DOS applications have very few
  6872.       standards in user interface terms, and even Windows adds another
  6873.       dimension and another set of standards to learn. The Workplace Shell does
  6874.       not eliminate these differences (it must retain them for compatibility),
  6875.       but does offer a user interface layer above the individual differences,
  6876.       to provide a level of consistency and integration. For example, all
  6877.       applications, whether DOS, Windows or OS/2, can:
  6878.  
  6879.       -   be launched from icons on a common desktop
  6880.       -   appear in windows which can be sized, moved and hidden
  6881.       -   share data via a consistent set of commands (Mark/Edit/Copy/Paste)
  6882.       -   retrieved from the background, or closed via a common Window List
  6883.  
  6884.       The migration towards future object-based systems such as those based on
  6885.       the Taligent venture (see "Object-oriented environments" on page 128),
  6886.       provides the potential for convergence of ideas from the Workplace Shell,
  6887.       Motif, and the Apple Macintosh desktop.
  6888.  
  6889.   o   NEW, BUT EVOLUTIONARY
  6890.       _____________________
  6891.  
  6892.       This progress can be made now without compromising compatibility with the
  6893.       past. The old ways of working with the PC can be kept alongside new ways:
  6894.  
  6895.  
  6896.                                                             Workplace Shell  88
  6897.  
  6898.  
  6899.  
  6900.  
  6901.  
  6902.  
  6903.  
  6904.  
  6905.  
  6906.       -   the C:\> command prompt can be retained as an icon or even a menu
  6907.           item from the desktop context menu.
  6908.       -   you can use folders just like Windows 3.x or OS/2 1.x groups, and use
  6909.           the icons within them just like programs, thus treating the Workplace
  6910.           Shell like the graphical program loader that Windows is for many
  6911.           users.
  6912.  
  6913.       This allows the user to take what he knows and apply it immediately,
  6914.       while learning new skills that will make his work more productive. This
  6915.       mix and match of new and old knowledge makes evolution towards the 2nd
  6916.       generation GUI much easier.
  6917.  
  6918.       The key is to provide compatibility, but not to let the past bar your way
  6919.       to the future.
  6920.  
  6921.  
  6922.   AN INFORMATION-ORIENTED USER INTERFACE
  6923.   ______________________________________
  6924.  
  6925.   The first generation GUIs like Windows and OS/2 1.x have been a good
  6926.   introduction to the benefits of GUI for many people, but they are also a
  6927.   constraining factor on the progress of the man-machine interface. This is
  6928.   because the user interface design relies heavily on computer-oriented
  6929.   concepts like files, programs and directories.  The user interface (UI) model
  6930.   is built around various "managers": File, Print, Program and Desktop.  To
  6931.   navigate through the system, the user must know about the difference between
  6932.   a file and a program, about the physical layout and organisation of data on
  6933.   the disk, and to understand some of the constraints this imposes (for
  6934.   example, you cannot put files in a program group, only programs, but programs
  6935.   can be loaded from the File Manager).  There were other usability constraints
  6936.   which related more to the implementation of the user interface, rather than
  6937.   the design itself.  In the Windows 3.0 and OS/2 1.3 File Managers, only one
  6938.   directory tree window could be opened, even on a system with multiple drives.
  6939.   The Print Manager only interacted directly with the File Manager via drag and
  6940.   drop, but other applications either could not, or implemented their own drag
  6941.   and drop protocol.
  6942.  
  6943.   +---------------------------------------------------------------------------+
  6944.   |                                                                           |
  6945.   |                                                                           |
  6946.   +---------------------------------------------------------------------------+
  6947.   Figure 19. Development of user interface
  6948.  
  6949.   Moreover, this style of user interface imposes an application-oriented way of
  6950.   working, or an "action-object" paradigm: a user wanting to create a report
  6951.   will load his word processor, then look for the file containing the report.
  6952.   The ideal for the user would be to encourage an INFORMATION-oriented way of
  6953.                                                   ___________
  6954.   working, or one that uses the "object-action" paradigm, as this is the way we
  6955.   work more naturally when away from the computer. Moreover, it is important
  6956.   not to forget the computer is an item of INFORMATION technology. It is the
  6957.                                            ___________
  6958.   information that the user wants to work with, that is why he uses the
  6959.   computer in the first place.
  6960.  
  6961.   The Workplace Shell does not make the user look for the word processor to
  6962.   create a report, but rather allows him to click on an icon representing the
  6963.  
  6964.  
  6965.                                                             Workplace Shell  89
  6966.  
  6967.  
  6968.  
  6969.  
  6970.  
  6971.  
  6972.  
  6973.  
  6974.  
  6975.   report, and automatically load the application (the word processor)
  6976.   associated with it. This use of the object-action paradigm, and the focus on
  6977.   information, is why the Workplace Shell is sometimes called an
  6978.   OBJECT-ORIENTED USER INTERFACE (OOUI). It means that you create a letter by
  6979.   _____________________________________
  6980.   dragging a new copy from a "template" (see "Templates" on page 93), and
  6981.   regard the application as a tool to work with the information, rather than a
  6982.   program which you must "feed" with data.
  6983.  
  6984.   The new shell is designed to provide a more task-oriented, not
  6985.   process-oriented way of working, allowing the user to focus on what they
  6986.   want, not how to do it.  The new shell will also reduce the amount of
  6987.   system-specific knowledge needed, by being more analogous to the manual way
  6988.   of performing tasks (using the physical desktop analogy).
  6989.  
  6990.   Notice, however, that the new object-oriented way does not preclude the old
  6991.   ways of working. If you need the C:\> prompt, it is available; if you want
  6992.   folders full of program icons, which you click on to load, and then go
  6993.   through the "File Open" menu to find your data, that can be done too. You can
  6994.   mix and match the action-object and object-action techniques as you wish. But
  6995.   even with older DOS programs, some of the benefits of an OOUI (such as
  6996.   clicking on an icon representing a report, and having the system load the
  6997.   appropriate application), can be realised very easily without a radical
  6998.   change to working style. In fact, even if the Workplace Shell is used as a
  6999.   graphical program loader, there are features in it (such as workareas) which
  7000.   make it a better one than Windows (see "Multi-tasking and the user interface"
  7001.   on page 33).
  7002.  
  7003.  
  7004.   WORKPLACE SHELL COMPONENTS
  7005.   __________________________
  7006.  
  7007.   Not only do the design principles of the Workplace Shell differ from the
  7008.   older GUI models, but it is also visually different, and it includes a number
  7009.   of new features that did not appear in previous versions of OS/2.
  7010.  
  7011.  
  7012.   USER INTERFACE ELEMENTS
  7013.  
  7014.   In this section we will look at some of the user interface elements that
  7015.   contribute to the new look and feel.
  7016.  
  7017.  
  7018.   Desktop
  7019.  
  7020.   If you are familiar with OS/2 1.x or Windows 3.x, the first thing you will
  7021.   notice about OS/2 2.0 is that there is no obvious Desktop Manager, Task List
  7022.   or Groups. Instead, the screen represents your desktop, and everything on the
  7023.   desktop is an object - files, devices, programs etc. This means the desktop
  7024.   is the background of activity, and items can be placed on the desktop or in
  7025.   folders - in fact, anywhere you want; there is no restriction on where icons
  7026.   are placed as there is in Windows or OS/2 1.x. This means you can have either
  7027.   a "tidy" or a "messy" desktop according to the way you work.  Although the
  7028.   desktop is meant to give you a visual association with a familiar idea (your
  7029.   own desk), the Workplace Shell desktop is not meant to be exactly the same as
  7030.   your real desktop; it offers a bit more than your real desktop.  After all,
  7031.  
  7032.  
  7033.                                                             Workplace Shell  90
  7034.  
  7035.  
  7036.  
  7037.  
  7038.  
  7039.  
  7040.  
  7041.  
  7042.  
  7043.   if the computer only did the same things as you could do manually, why use a
  7044.   computer at all?
  7045.  
  7046.  
  7047.   Objects and folders
  7048.  
  7049.   The items on the desktop are objects: files, programs, devices (such as disk
  7050.   drives, the shredder and printers). Objects reside in folders or on the
  7051.   desktop (which is actually just the highest level folder). Folders are used
  7052.   instead of group windows, and are more powerful and flexible. Folders can
  7053.   contain any object, including other folders (again, just like the physical
  7054.   desktop), and can group items according to a given project or activity
  7055.   (features like workareas take this even further - see "Multi-tasking and the
  7056.   user interface" on page 33) You can also have more than one view of a folder,
  7057.   allowing you to look at the same information from different perspectives ; a
  7058.   simple example is in the Drives object, which lists the files by drive and
  7059.   directory; this allows multiple simultaneous views - Tree, Details, Icon
  7060.   views - of the same directory.
  7061.  
  7062.   Each object is visually represented by an icon.  You work with objects by
  7063.   DIRECT MANIPULATION  - ie by pointing at it with the mouse (see below).
  7064.   ___________________
  7065.   Notice that sometimes only the terminology is different:  what OS/2 2.0 calls
  7066.   a "Program object," Windows and OS/2 1.x might have called a "Program
  7067.   reference" or "Program icon."
  7068.  
  7069.  
  7070.   Direct manipulation
  7071.  
  7072.   Direct Manipulation is the act of working with an object by pointing at it
  7073.   with the mouse, double clicking to load it or open it, or dragging it
  7074.   somewhere else. Since most older user interface models worked by an
  7075.   action-object paradigm, experienced computer users are used to a certain
  7076.   level of indirection in using a computer (ie you go through a menu to invoke
  7077.   a command to work on an object). But the Workplace Shell allows users to work
  7078.   with objects more naturally, as they would on a real desktop - directly.  So,
  7079.   although experienced users may be tempted to think of direct manipulation as
  7080.   a gimmick, it is in fact a much more natural, consistent, and, in most cases,
  7081.   effective way of working with the system.
  7082.  
  7083.   A specific example of direct manipulation is drag and drop. This is where one
  7084.   icon is "picked up" with the mouse and moved somewhere else, often to another
  7085.   icon or folder.  Note that this use implies that objects can be programmed to
  7086.   understand what it means to have something dropped on them, or for them to be
  7087.   dropped on something.  In fact, there are APIs supplied for programmers to
  7088.   set the behaviour of their own icons (eg for selection, dragging and
  7089.   dropping).
  7090.  
  7091.   Use of these APIs allows greater consistency between the shell and
  7092.   applications, and also greater integration.  Developers can now register
  7093.   their objects (ie applications) with the system and have them used as an
  7094.   integrated part of the system.  This all results in a more powerful and
  7095.   consistent interface for the user.
  7096.  
  7097.  
  7098.  
  7099.  
  7100.                                                             Workplace Shell  91
  7101.  
  7102.  
  7103.  
  7104.  
  7105.  
  7106.  
  7107.  
  7108.  
  7109.  
  7110.   Although Windows 3.x offers some direct manipulation facilities and some
  7111.   APIs, its use in the system is currently limited mainly to the File Manager.
  7112.   Interaction between different parts of the system is therefore more limited
  7113.   than in OS/2 2.0, compromising the benefits of consistency.
  7114.  
  7115.  
  7116.   Descriptive names
  7117.  
  7118.   Objects and folders can be given any descriptive name.  For example, the user
  7119.   may have a folder called "Annual Report to the Shareholders," which may
  7120.   contain an icon called "Shareholder Report Draft 14 dated 6th March." This
  7121.   may be a document created using a Word Processing program.  Another icon may
  7122.   represent a spreadsheet containing the latest financial results.  Notice that
  7123.   icons can represent data files, and to edit them, the user can simply click
  7124.   on the object to invoke the application that created that file, and edit it
  7125.   further.  Even though files are physically stored by their old 8.3 file names
  7126.   (at least using the FAT file system), they can be represented on the desktop
  7127.   or in a folder by the more descriptive long name. It is easier to see that
  7128.   "Letter to Joe" would be more meaningful to any user (even the creator of the
  7129.   file!) than LJB0905.TXT. This feature is implemented at the file system
  7130.   level, so that even data files relating to old DOS applications can be given
  7131.   long names in this way - applications do not need to be rewritten.
  7132.  
  7133.   The use of descriptive names is in keeping with the principle of allowing the
  7134.   user to focus on the information, not the computer's way of working. In this
  7135.   way, OS/2 offers more fexibility than Windows, in which the computer-oriented
  7136.   way of working still shows through in the retention of 8.3 file names,
  7137.   despite the graphical veneer on the surface.
  7138.  
  7139.  
  7140.   Associations
  7141.  
  7142.   Associations can be created between files and programs, on a file-by-file or
  7143.   wild card basis.  This means that simply by double clicking on a data file,
  7144.   it can be loaded into the associated application. OS/2 applications can also
  7145.   create their own file types and associations which are created automatically
  7146.   when the program is installed (DeScribe and Excel for OS/2 are just two of
  7147.   the applications that do this already).  Associations can also allow a data
  7148.   object to be dropped on a program icon and have the program loaded with the
  7149.   data file. Multiple associations can be created per object.
  7150.  
  7151.  
  7152.   Shadows
  7153.  
  7154.   Since object icons can be placed anywhere on the desktop or in folders, this
  7155.   flexibility encourages different arrangements of programs, data and devices
  7156.   into "projects." This may mean that the user wishes to place a given object
  7157.   in more than one folder. Instead of physically copying an object from one
  7158.   folder to another, which can waste disk space and also cause maintenance
  7159.   problems if the object is subsequently changed, the Workplace Shell allows
  7160.   the user to set up a "shadow" of that object. (Apple Macintosh users will be
  7161.   familiar with the idea which they call an alias.)  The shadow is linked to
  7162.   the original object such that changes in the original are rippled through to
  7163.   the shadows.
  7164.  
  7165.  
  7166.                                                             Workplace Shell  92
  7167.  
  7168.  
  7169.  
  7170.  
  7171.  
  7172.  
  7173.  
  7174.  
  7175.  
  7176.   Shadows allow different uses of the same object, and allows work to be
  7177.   organised without regard to the physical location of data (they are
  7178.   particularly useful for working with data or devices located on a server). In
  7179.   this respect the combination of folders and shadows is much more powerful
  7180.   than the use of group folders and specially created directories in Windows or
  7181.   OS/2 1.x.
  7182.  
  7183.  
  7184.   Templates
  7185.  
  7186.   Templates are a means of easily creating new objects. Most objects can be
  7187.   defined from an existing type, or template. The system provides templates for
  7188.   the common objects such as data files, program objects, folders, printers and
  7189.   so on. For example, program objects are created by dragging a program
  7190.   template from the Templates folder, and entering the information about the
  7191.   program executable and working directory.
  7192.  
  7193.   But users and programmers may define their own templates. Programmers can
  7194.   create new file types (eg a Customer Invoice) and define templates via their
  7195.   own applications. Users can create templates themselves. For example, a "memo
  7196.   pad" template can be created, to use to create new memos, each of which may
  7197.   be automatically associated with a chosen word processor, and would contain a
  7198.   department logo, and headings for the "To:,"  "From:" and "Subject" parts of
  7199.   the memo.  Or a chart template could be created, so that each new chart
  7200.   created inherited the default characteristics: a logo and given fonts and
  7201.   colours. Since many business processes are repetitive, templates match many
  7202.   users' work very well. Any kind of information that has the same basic
  7203.   structure in each instance, and only the specifics beneath the "headings"
  7204.   change, is suitable for creating templates. Templates provide a consistent
  7205.   way of creating new objects, whether data, program, folder or device.
  7206.  
  7207.  
  7208.   Pop-Up menus
  7209.  
  7210.   Clicking with Mouse Button 2 on an object's icon, or on an open folder,
  7211.   displays a menu of options to work on the object. These pop-up menus display
  7212.   only the actions appropriate to the current state of that object. This
  7213.   reduces screen clutter and increases ease of use by eliminating redundant or
  7214.   inapplicable options. This menu can be customised by the user (for example,
  7215.   to change the application loaded from the "Open" menu, or to add user-defined
  7216.   commands).
  7217.  
  7218.   The use of Mouse Button 2 is one example of the UI innovations that has
  7219.   received some criticism in the computer press, though it is not clear why.
  7220.   Indeed, it is somewhat ironic that when Borland's Quattro Pro for Windows was
  7221.   reviewed in beta test, one reviewer praised its' use of Mouse Button 2 as a
  7222.   "Property Inspector." In fact, the Property Inspector provides very similar
  7223.   functions for a spreadsheet or graph element (otherwise known as an object!)
  7224.   as the Workplace Shell's pop-up menus do for object icons. While it is likely
  7225.   that Borland's UI designers came up with the idea independently, it is
  7226.   strange that what is a virtue from one vendor can be criticised in another.
  7227.   It is an illustration of how perception, rather than objective evaluation, is
  7228.   a danger when considering user interface design. (At least there is now the
  7229.  
  7230.  
  7231.  
  7232.                                                             Workplace Shell  93
  7233.  
  7234.  
  7235.  
  7236.  
  7237.  
  7238.  
  7239.  
  7240.  
  7241.  
  7242.   potential for some consistency in the use of Mouse Button 2 to work on an
  7243.   individual object - previously it was not used at all under Windows or OS/2.)
  7244.  
  7245.  
  7246.   Visual Clues
  7247.  
  7248.   It is important, for the user's comfort and satisfaction, that clues are
  7249.   supplied to aid learning and provide a context for what the user is doing. A
  7250.   major principle in the Workplace Shell is to provide visual feedback where
  7251.   possible, to keep the user informed about what is happening. These are often
  7252.   ignored by the casual reviewer, but they contribute to the usability of the
  7253.   system. Among the examples of such visual clues are:
  7254.  
  7255.   o   change of mouse pointer between clock icon, normal pointer, I-beam for
  7256.       editing, according to the context
  7257.  
  7258.   o   half-toned icon during copy of object (as opposed to normal tone for a
  7259.       move operation)
  7260.  
  7261.   o   a line drawn between a shadow and its original during the shadow
  7262.       operation
  7263.  
  7264.   o   a box drawn round an object which would be the target of a drag-drop
  7265.       operation
  7266.  
  7267.   o   shading behind the icon of an object that is in use
  7268.  
  7269.   o   "no-entry" sign on an icon when it cannot be dropped on a given object
  7270.  
  7271.   o   highlight of the object or objects (by darker shading) which are
  7272.       currently selected (and for which the current pop-up menu is valid)
  7273.  
  7274.   These visual clues are more widespread and more subtle than in less
  7275.   sophisticated GUIs such as Windows, where it is sometimes difficult to
  7276.   determine the context of an operation or an object, because of the lack of
  7277.   visual clues. (Consider, for example, how the new user reacts to an icon in
  7278.   the Program Manager and another, for the minimised application, at the bottom
  7279.   of the screen, with no apparent difference between them, yet they behave
  7280.   differently.)
  7281.  
  7282.  
  7283.   Consistency
  7284.  
  7285.   One of the most important aspects of the Workplace Shell is its consistency.
  7286.   Not only does it provide a consistent means of loading programs from
  7287.   different origins (DOS, Windows, OS/2) and make them work together, but it
  7288.   also provides a standardised interface to different tasks, through the use of
  7289.   drag and drop.  For example, OS/2 allows drag and drop to be used for
  7290.   copying, deleting and printing a file, where DOS uses three different
  7291.   commands (COPY, ERASE, PRINT), each with their own set of parameters. As
  7292.   stated before, it also provides a consistent interface (Mark/Edit/Copy/Paste)
  7293.   to sharing data between applications, whether DOS, Windows or OS/2
  7294.   applications. And drag and drop is applied to many other actions throughout
  7295.   the shell, such as setting colours and fonts.  This consistency is reinforced
  7296.  
  7297.  
  7298.                                                             Workplace Shell  94
  7299.  
  7300.  
  7301.  
  7302.  
  7303.  
  7304.  
  7305.  
  7306.  
  7307.  
  7308.   when using programs that integrate with the Workplace Shell and use the same
  7309.   manipulation techniques (see "Workplace Shell exploitation" on page 82).  The
  7310.   consistency of the Workplace Shell (where drag and drop are pervasive) can be
  7311.   contrasted with the rather superficial use of such techniques in Windows 3.1.
  7312.   Consistency is not achieved where drag and drop can only be done from the
  7313.   File Manager, and not throughout the shell.
  7314.  
  7315.   Consistency means that not only is the environment easier to use, but new
  7316.   actions are learned quicker, often by experimentation. In fact, the key to
  7317.   judging a user interface is not how easy it is to do something in an hour or
  7318.   a day (after all, no user interface is completely intuitive), but what extra
  7319.   can be achieved after the basics have been learned, and how easy it is to do
  7320.   more.
  7321.  
  7322.  
  7323.   Flexibility
  7324.  
  7325.   The user has complete freedom to set the look and behaviour of the shell.
  7326.   Colours, fonts and even background images can be set for the desktop, and for
  7327.   each folder individually. Icons and descriptive text can be set for each
  7328.   object, and even the behaviour of objects and their windows (such as whether
  7329.   a window is hidden or minimised to the desktop) and the use of mouse buttons
  7330.   can be customised, where appropriate on an object-by-object basis. This
  7331.   flexibility is important, because users rarely agree on what is preferable.
  7332.   The Workplace Shell reinforces the truth that the PC is a PERSONAL computer.
  7333.                                                             ________
  7334.  
  7335.  
  7336.   CONTROLS
  7337.  
  7338.   As well as providing a different way of working, the new look and feel of the
  7339.   Workplace Shell is established by a number of new user interface controls,
  7340.   including the following:
  7341.  
  7342.   CONTAINER      described above as folders, used to logically group objects on
  7343.                  the desktop. It can provide multiple views of the objects
  7344.                  (icon, text, tree, details).
  7345.  
  7346.   NOTEBOOK       an easy way to navigate through a complex dialog. It looks
  7347.                  like the paper notebook you may use at your desk. It
  7348.                  supersedes separate dialog boxes by providing multiple pages,
  7349.                  selectable by tabs. The notebook control is used to allow the
  7350.                  user to tailor the settings of each object.
  7351.  
  7352.   SLIDER         allows the user to select a quantity from a range of possible
  7353.                  values, by using a control very similar in appearance to that
  7354.                  found on many electronic devices - a "sliding" button.
  7355.  
  7356.   +---------------------------------------------------------------------------+
  7357.   |                                                                           |
  7358.   |                                                                           |
  7359.   +---------------------------------------------------------------------------+
  7360.   Figure 20. Container
  7361.  
  7362.  
  7363.  
  7364.  
  7365.                                                             Workplace Shell  95
  7366.  
  7367.  
  7368.  
  7369.  
  7370.  
  7371.  
  7372.  
  7373.  
  7374.  
  7375.   +---------------------------------------------------------------------------+
  7376.   |                                                                           |
  7377.   |                                                                           |
  7378.   +---------------------------------------------------------------------------+
  7379.   Figure 21. Slider
  7380.  
  7381.  
  7382.   +---------------------------------------------------------------------------+
  7383.   |                                                                           |
  7384.   |                                                                           |
  7385.   +---------------------------------------------------------------------------+
  7386.   Figure 22. Notebook
  7387.  
  7388.   There are also standard dialogs for open and save file, and font selection.
  7389.   All of these controls have programming interfaces, so that developers can use
  7390.   them in their own applications, to allow a common look and feel between
  7391.   applications and the shell.
  7392.  
  7393.  
  7394.   APPLETS
  7395.  
  7396.   OS/2 2.0 also ships with a number of mini-applications and utilities,
  7397.   ("Applets") which give some basic functionality to get started immediately,
  7398.   as well as acting as a learning aid, particularly for manipulating objects
  7399.   with the mouse.  (They also provide a bit of fun!).  These range from
  7400.   productivity applications like an editor, simple spreadsheet, calendar and
  7401.   card file, to a charting program and terminal emulator.  There is also a
  7402.   utility that allows the user to search through the disks for files matching a
  7403.   file specification or even a given item of text.  Of course, there are also a
  7404.   number of games including an OS/2 version of Solitaire that allows you to
  7405.   cheat if the game is not going in your favour!
  7406.  
  7407.   Applets are not intended as full function applications, but as a means of
  7408.   getting productive use of the system even without installing extra software.
  7409.   However, many of them are powerful enough in their own right to serve the
  7410.   occasional user of, for example with PM Chart, a charting package, without
  7411.   needing to invest in more software. They help to make the system appealing to
  7412.   both the first time and the less experienced user.
  7413.  
  7414.  
  7415.   EXTRA FACILITIES
  7416.  
  7417.   There are a number of extra features contained in the shell to help overall
  7418.   productivity, or improve ease of use:
  7419.  
  7420.   SYSTEM SETUP             This object allows the system to be easily
  7421.                            configured and changed to suit the individual. Not
  7422.                            only does it contain options for installing new
  7423.                            features or adding drivers, and for setting colours
  7424.                            and fonts, but also for modifying some of the
  7425.                            default behaviour of the system (eg whether windows
  7426.                            are hidden or minimised to the desktop; whether
  7427.                            clicking on an icon creates a new instance or
  7428.  
  7429.  
  7430.  
  7431.                                                             Workplace Shell  96
  7432.  
  7433.  
  7434.  
  7435.  
  7436.  
  7437.  
  7438.  
  7439.  
  7440.  
  7441.                            retrieves a running instance of a program; whether
  7442.                            to prompt when deleting an object, and so on).
  7443.  
  7444.   DRIVES                   This object replaces the File Manager from previous
  7445.                            releases. It provides similar function to the OS/2
  7446.                            1.3 File Manager. It has a multi-threaded design to
  7447.                            give good performance even in large directories. It
  7448.                            is no longer restricted by the Multiple Document
  7449.                            Interface (MDI)(20) design of the OS/2 1.3 File
  7450.                            Manager (which is still evident in the Windows 3.1
  7451.                            File Manager), but instead creates a series of
  7452.                            modeless(21) windows, which can be moved wherever
  7453.                            the user wishes.  Drives offers all of the function
  7454.                            commonly used by the File Manager in either Windows
  7455.                            3.x or OS/2 1.3, with the addition of greater
  7456.                            flexibility in certain operations.  For example, in
  7457.                            keeping with the rest of the shell, it offers
  7458.                            different simultaneous views of any drive or
  7459.                            directory, either icon view, tree view, or details
  7460.                            view (the latter lists file size, creation date, and
  7461.                            other details).  Since the windows created by the
  7462.                            Drives object are just like any others in the shell,
  7463.                            files can be dragged between the desktop and
  7464.                            different directories, and to the printer or any
  7465.                            folder.
  7466.  
  7467.   PRINTERS                 The ease with which OS/2 handles printing (with drag
  7468.                            and drop) is one of its strongest features, but
  7469.                            equally impressive is the flexibility of printer
  7470.                            setup and customisation of settings. Different print
  7471.                            objects may be set up, not only to represent each
  7472.                            physical printer, but also to represent a particular
  7473.                            combination of settings: for example, you can set up
  7474.                            the same printer to print portrait Times Roman
  7475.                            (represented by one icon, which you can give a
  7476.                            descriptive name such as "Portrait - for letters")
  7477.                            and create another icon to represent the same
  7478.                            printer running in Landscape mode with a small font
  7479.  
  7480.   ---------------
  7481.  
  7482.   (20) MDI means that multiple child windows are contained within the bounds of
  7483.       the parent window, and no child window can be sized beyond the bounds of
  7484.       the parent. The Windows 3.1 File Manager and the behaviour of the
  7485.       directory windows within it, provide an example of MDI.
  7486.  
  7487.   (21) Modeless (as opposed to modal) refers to the behaviour of child windows
  7488.       in a GUI.  Modal windows have to be closed or the dialog within them
  7489.       completed before the parent window can be accessed.  They tend to enforce
  7490.       a particular pattern of progressing through several windows (an example
  7491.       is in the use of error dialogs, which tend to be modal.) Modeless means
  7492.       that the user may move from the child window back to the parent without
  7493.       closing intermediate windows or dialogs. An example is the "Find" dialog
  7494.       in the OS/2 System Editor.
  7495.  
  7496.  
  7497.                                                             Workplace Shell  97
  7498.  
  7499.  
  7500.  
  7501.  
  7502.  
  7503.  
  7504.  
  7505.  
  7506.  
  7507.                            for those wide spreadsheet reports (to which you
  7508.                            give another name).  Both these printer objects can
  7509.                            be kept on the desktop or in a given folder, and
  7510.                            print output can be directed to either according to
  7511.                            the results required.
  7512.  
  7513.   CONVENIENCE FEATURES     The shell also includes several features for greater
  7514.                            user convenience. The user can set his own
  7515.                            background ("Wallpaper") for the desktop, or any
  7516.                            folder, as well as a keylock security feature
  7517.                            (blanks the screen and locks up the keyboard and
  7518.                            mouse after a user-specified period).  The desktop
  7519.                            layout (positions of folders, applications loaded
  7520.                            etc), can be autosaved at shutdown and restored when
  7521.                            next starting the system.  The workarea feature (see
  7522.                            "Multi-tasking and the user interface" on page 33)
  7523.                            makes it possible to do this on a folder by folder
  7524.                            basis.  This means that different projects (or even
  7525.                            different users sharing the same PC) can be kept
  7526.                            logically separate.  All of these features help make
  7527.                            the system easier and more enjoyable to use.
  7528.  
  7529.   TUTORIAL                 The default action after installation is to start
  7530.                            the tutorial, so that the first time user is taken
  7531.                            through the key elements of using the Workplace
  7532.                            Shell. The tutorial is highly recommended, even for
  7533.                            an experienced user of DOS Windows, or OS/2 1.x, to
  7534.                            familiarise oneself with the differences from the
  7535.                            previous environment. The tutorial can be revisited
  7536.                            at any time; it usually resides in the Information
  7537.                            folder.
  7538.  
  7539.   ONLINE HELP              The tutorial is just one of the items of information
  7540.                            that the OS/2 user has available. As well as
  7541.                            context-sensitive help being always available
  7542.                            through the F1 key, there is also a Master Help
  7543.                            Index, which gives a "how to" reference guide to
  7544.                            using the system. The Command Reference from version
  7545.                            1.3 is also retained, and there is in addition, a
  7546.                            glossary of terms. The ability of the shell to keep
  7547.                            multiple modeless windows open, allows the help text
  7548.                            to remain on screen while an operation is performed,
  7549.                            to guide the user through the process.
  7550.  
  7551.   +---------------------------------------------------------------------------+
  7552.   |                                                                           |
  7553.   |                                                                           |
  7554.   +---------------------------------------------------------------------------+
  7555.   Figure 23. Master Help Index
  7556.  
  7557.                            The Master Help Index and Glossary use a variety of
  7558.                            techniques to present information to the user:  text
  7559.                            in different colours and fonts, hyperlinks and even
  7560.                            pictures.  The Help facility also includes an
  7561.  
  7562.  
  7563.                                                             Workplace Shell  98
  7564.  
  7565.  
  7566.  
  7567.  
  7568.  
  7569.  
  7570.  
  7571.  
  7572.  
  7573.                            indexing and searching system, to help users find
  7574.                            the help they need.  All of these facilities are
  7575.                            open to the OS/2 developer as well, using the
  7576.                            Information Presentation Facility (IPF).  This
  7577.                            allows online help to be created very simply from
  7578.                            text files containing a tag language.  New functions
  7579.                            in OS/2 2.0 include the ability to predefine the
  7580.                            help window size and its position relative to the
  7581.                            parent window; multiple help pages (windows), called
  7582.                            viewports; support for multiple fonts, and easy
  7583.                            setup of tables of information; "tear off" help
  7584.                            pages, allowing a user to retain the help on screen
  7585.                            as he follows an example; and hypergraphics - the
  7586.                            ability to click on a graphic and be linked to text
  7587.                            or more graphics.
  7588.  
  7589.                            All of these facilities are available to application
  7590.                            programmers, so that on-line help for applications
  7591.                            can be created to have a consistent look and feel
  7592.                            with the rest of the shell. Some developers are
  7593.                            creating on-line guides for their applications, and
  7594.                            by placing them in the Information folder on the
  7595.                            OS/2 desktop, creating an "on-line bookcase."
  7596.  
  7597.                            In fact, the IPF facility can be used even more
  7598.                            widely than just online help for a program; in IBM
  7599.                            it is used as a general information delivery tool,
  7600.                            for online documents and reference guides -
  7601.                            sometimes it can be easier to use the computer to
  7602.                            search for information and then browse or print it,
  7603.                            especially if (as with most reference information)
  7604.                            there are a lot of cross-references.
  7605.  
  7606.                            One of the help items added after feedback from the
  7607.                            OS/2 beta test program was the "Start Here" object.
  7608.                            This was in response to customers who asked that the
  7609.                            shell provide the user with a visual focal point, in
  7610.                            case, looking at a desktop with no open windows and
  7611.                            no menus, he became confused and did not know what
  7612.                            to do next. The Start Here object allows a first
  7613.                            time user (or an occasional user) to find a focal
  7614.                            point to go and retrieve information about common
  7615.                            operations. It is not a replacement for the help
  7616.                            system, but an easy starting point to find out more.
  7617.  
  7618.  
  7619.   ADOBE TYPE MANAGER (ATM)
  7620.  
  7621.   One of the most important aspects of a graphical environment is, of course,
  7622.   that it continue to handle text well, and provide the benefits of different
  7623.   fonts and typefaces. OS/2 2.0 continues the innovation of OS/2 1.3, in
  7624.   including the Adobe Type Manager (ATM) as an integrated part of PM. ATM
  7625.   provides scalable font technology, to display and print high quality type on
  7626.   a variety of screens and printers (not just PostScript printers, but laser
  7627.  
  7628.  
  7629.                                                             Workplace Shell  99
  7630.  
  7631.  
  7632.  
  7633.  
  7634.  
  7635.  
  7636.  
  7637.  
  7638.  
  7639.   printers, inkjets and even dot matrix printers).  ATM is closely related to
  7640.   Adobe's PostScript printer language, and both use the same Type 1 font
  7641.   format.  This means that companies with an investment in PostScript on
  7642.   printers or on other platforms (such as Macintosh, AIX, VAX/VMS and IBM
  7643.   System/370) can be assured of a compatible use of fonts in OS/2.  ATM is a
  7644.   widely used font standard, with over 12,000 fonts available and over $4
  7645.   billion invested.  It is under consideration as an ISO standard.  Indeed, for
  7646.   SAA systems, Type 1 is the standard font format, and included in OS/2 2.0 are
  7647.   13 Type 1 fonts from 4 families (Times Roman, Helvetica, Courier and Symbol)
  7648.   that will be implemented as "core fonts"  across all SAA platforms.  Any of
  7649.   the 12,000 fonts available in Type 1 format can be installed and used with
  7650.   OS/2 applications, via the Font Palette.
  7651.  
  7652.   ATM allows OS/2 applications to render fonts in any size on the screen and
  7653.   printer, retaining the high quality of the typeface. It allows WYSIWYG (What
  7654.   You See Is What You Get) between screen and printer, which is important not
  7655.   only for Desktop Publishing, but even for word processing and spreadsheets.
  7656.   ATM is also available for DOS/Windows 3.x as a separate product, ATM for
  7657.   Windows, but OS/2 includes this utility at no extra charge in OS/2 2.0, so
  7658.   that users running Windows applications may take advantage of Type 1 fonts in
  7659.   their OS/2 and in their WIN-OS/2 sessions. However, in OS/2 it is not a
  7660.   separate utility, but an integral part of the PM system. OS/2 applications
  7661.   can use Type 1 fonts without any changes to the applications.
  7662.  
  7663.   Windows 3.0 had no in-built scalable font technology, and ATM for Windows was
  7664.   a popular product in that environment. However, in Windows 3.1, Microsoft
  7665.   introduced their own proprietary font technology, TrueType. This is not
  7666.   available on other platforms, except for Apple System 7, and according to
  7667.   Microsoft has 600 fonts available (compared to Type 1's 12,000 or more). OS/2
  7668.   has the ability to include support for other font formats such as TrueType,
  7669.   through an open font interface which is available to font providers; such
  7670.   support would usually be provided by the owner of the technology (in this
  7671.   case Microsoft). This would allow TrueType support to be provided in OS/2 in
  7672.   an integrated way, like ATM, if Microsoft wishes to expand the platforms on
  7673.   which TrueType is available. OS/2's aim is to provide open font support, not
  7674.   be tied to a proprietary font technology.
  7675.  
  7676.   In summary, the benefits of using ATM and Type 1 in OS/2 include:
  7677.  
  7678.   o   better quality screens and printouts
  7679.  
  7680.   o   WYSIWYG between screen and printer
  7681.  
  7682.   o   improved output even on less expensive printers
  7683.  
  7684.   o   wide choice of fonts
  7685.  
  7686.   o   investment protection in Type 1 fonts and PostScript
  7687.  
  7688.   o   a compatible font technology between OS/2 and WIN-OS/2
  7689.  
  7690.   o   integrated font technology available to OS/2 applications without change
  7691.  
  7692.   o   font portability to other platforms (Macintosh, VAX/VMS, AIX, S/370)
  7693.  
  7694.  
  7695.                                                            Workplace Shell  100
  7696.  
  7697.  
  7698.  
  7699.  
  7700.  
  7701.  
  7702.  
  7703.  
  7704.  
  7705.   LAN-INDEPENDENT SHELL
  7706.  
  7707.   As well as being a powerful and easy interface for working with data held
  7708.   locally, the Workplace Shell has a degree of "LAN-awareness" built in.
  7709.   Although it does not include requester code in the base system, the Workplace
  7710.   Shell is able to recognise the presence of network requester software such as
  7711.   the OS/2 LAN Requester for OS/2 LAN Server, or the NetWare requester for
  7712.   OS/2.  It provides an API which other network providers can write to, to
  7713.   integrate more fully with the Workplace Shell.  In this respect, it is not
  7714.   tied to any single LAN system, but can provide a graphical view of data held
  7715.   on different networks - it is "LAN-independent."
  7716.  
  7717.   OS/2 has provided access to multiple LAN systems at the same time (eg NetWare
  7718.   and OS/2 LAN Server) since OS/2 1.3: not only does it handle the concurrent
  7719.   protocols required (eg NETBIOS, IPX etc) but now, in OS/2 2.0, can offer a
  7720.   graphical view of network resources (files, printers etc) consistent with the
  7721.   rest of the shell.  By providing the same constructs for remote as for local
  7722.   data (folders, icons, printer and file objects), data can be moved between
  7723.   one folder and another, without the need to know the precise location of the
  7724.   data or which server software is running.  This makes access in multi-vendor
  7725.   networks much easier.
  7726.  
  7727.   Among the features it provides are:
  7728.  
  7729.   o   ability to login/logout to network servers through a graphical dialog
  7730.  
  7731.       -   this includes presenting an appropriate login dialog (if necessary)
  7732.           before a network object can be accessed; this means that, for objects
  7733.           that have specific login requirements, prompts for login are
  7734.           displayed, even if the main login is completed.
  7735.  
  7736.       -   an extra item on context menus for network objects is Login or Logout
  7737.  
  7738.       -   provides consistent login (though NOT a single login) between NetWare
  7739.           and OS/2 LAN Server - the difference between LOGIN (NetWare) and
  7740.                                                        _____
  7741.           LOGON (OS/2 LAN Server) are minimised
  7742.           _____
  7743.  
  7744.   o   browse available servers and resources (subject to logon viewing
  7745.       permission)
  7746.  
  7747.       -   A "Network" folder contains an icon for each requester installed (for
  7748.           example, one for NetWare and one for OS/2 LAN Server); clicking on
  7749.           the icon provides a view of the servers available
  7750.  
  7751.   +---------------------------------------------------------------------------+
  7752.   |                                                                           |
  7753.   |                                                                           |
  7754.   +---------------------------------------------------------------------------+
  7755.   Figure 24. LAN Server Tree view
  7756.  
  7757.       -   shared directories and printers are given similar icons to standalone
  7758.           objects, but have a mini-network icon to distinguish if necessary, as
  7759.           shown in the folder below. This folder is from a NetWare server, but
  7760.  
  7761.  
  7762.  
  7763.                                                            Workplace Shell  101
  7764.  
  7765.  
  7766.  
  7767.  
  7768.  
  7769.  
  7770.  
  7771.  
  7772.  
  7773.           it is impossible to distinguish between NetWare and LAN Server -
  7774.           that's what is meant by LAN-independent:
  7775.  
  7776.   +---------------------------------------------------------------------------+
  7777.   |                                                                           |
  7778.   |                                                                           |
  7779.   +---------------------------------------------------------------------------+
  7780.   Figure 25. Folder with network resources
  7781.  
  7782.   o   resources can be moved onto the desktop, or any folder, for easy and
  7783.       convenient access
  7784.  
  7785.       -   servers, shared disks, files or printers can be shadowed into any
  7786.           folder including the desktop (see "Shadows" on page 92)
  7787.  
  7788.       -   this is not just for the current session, but the icons representing
  7789.           the remote objects will be retained on the desktop at next boot, and
  7790.           the appropriate login dialog presented when the icon is next used
  7791.  
  7792.   o   seamless access to network folders, files and printers
  7793.  
  7794.       -   remote disk resources can be opened (if appropriate access privilege
  7795.           in force) to show folders and files (behaves just like the Drives
  7796.           object for local data).  Programs and data can be used and copied or
  7797.           shadowed from this network disk (without having first to assign the
  7798.           network directory a drive letter such as X:).
  7799.  
  7800.       -   shared printers are easy to set up (prompts to install matching local
  7801.           device driver if not already installed, and sets up rest of
  7802.           configuration)
  7803.  
  7804.       -   printer object can be opened to show queued jobs and job status (just
  7805.           like local printer), but user can only manipulate (hold, release,
  7806.           cancel) his own jobs; administrator can manipulate all jobs
  7807.  
  7808.       -   network printer can be the default (no need for local printer to be
  7809.           defined)
  7810.  
  7811.   +---------------------------------------------------------------------------+
  7812.   |                                                                           |
  7813.   |                                                                           |
  7814.   +---------------------------------------------------------------------------+
  7815.   Figure 26. Dragging a shadow of a network resource to the desktop
  7816.  
  7817.  
  7818.   +---------------------------------------------------------------------------+
  7819.   |                                                                           |
  7820.   |                                                                           |
  7821.   +---------------------------------------------------------------------------+
  7822.   Figure 27. Drag and drop printing on the network
  7823.  
  7824.   Disk and printer resources set up for use by an administrator will appear as
  7825.   drive objects and printer objects, like local resources. Thus, once a user
  7826.   has logged on, he can see a P: drive and an X: drive, if these have been set
  7827.  
  7828.  
  7829.                                                            Workplace Shell  102
  7830.  
  7831.  
  7832.  
  7833.  
  7834.  
  7835.  
  7836.  
  7837.  
  7838.  
  7839.   up for him by the LAN administrator. In addition, the user can assign his own
  7840.   drive letters and logical ports to network objects that he has access rights
  7841.   to (similar to doing a NET ALIAS command in OS/2 LAN Server).
  7842.  
  7843.   But the key point of the LAN-independent shell, is that all access is
  7844.   graphical, through the Workplace Shell. There is no need for the command
  7845.   prompt or for character-based menus. This helps to bridge the gap between the
  7846.   LAN and local resources, and provide a more consistent and seamless access to
  7847.   both.
  7848.  
  7849.  
  7850.   SYSTEM OBJECT MODEL (SOM)
  7851.  
  7852.   One of the most significant elements of the Workplace Shell is something that
  7853.   users never see - the System Object Model (SOM). SOM is an object model - a
  7854.   way of defining objects to the system. It is the foundation of the
  7855.   object-oriented design of the Workplace Shell. In fact, the Workplace Shell
  7856.   itself is built on SOM:  Workplace Shell objects (folders, the shredder, the
  7857.   clock and so on) are SOM objects.  This means that the Workplace Shell is
  7858.   object-oriented, not only in its user interface, but also in the way it is
  7859.   built.  It is built on an object foundation - quite literally, built with
  7860.   objects.
  7861.  
  7862.   The fact that the Workplace Shell is built on objects, means that it can take
  7863.   advantage of the benefits of object-oriented design: it is extendable.
  7864.   Suitably written programs can add their own user defined objects or evolve
  7865.   them from the base classes provided with the system. The result can be that
  7866.   the distinction between application objects and system objects becomes
  7867.   blurred - the applications blend with the rest of the shell to provide a
  7868.   seamless set of services to the user. This is the starting point for
  7869.   evolution towards a full object-oriented environment, where distinctions
  7870.   between applications and the system cease to exist, and objects can be
  7871.   combined in different ways to accomplish user tasks.
  7872.  
  7873.   The way in which such objects are built in OS/2 2.0 is via SOM. SOM tools are
  7874.   provided with the OS/2 2.0 developers' toolkit. SOM is not a programming
  7875.   language, but a system for defining and manipulating object class libraries.
  7876.   It provides a set of APIs and a run-time library to allow object-oriented
  7877.   programs to be written to interface with the Workplace Shell.  In fact, SOM
  7878.   has a wider scope even than the Workplace Shell objects you see on the
  7879.   desktop.  It is a means of implementing object-oriented constructs, and is
  7880.   designed to be system and language-independent.  This is an important
  7881.   feature, because most object-oriented development environments today are
  7882.   language specific (eg you can use either C++, or Smalltalk, but not mix
  7883.   both), and therefore it is difficult to share or subclass objects or classes
  7884.   from other environments.
  7885.  
  7886.   Note that you do not need to develop SOM objects to get a high degree of
  7887.   integration with the Workplace Shell. Many features such as drag and drop are
  7888.   provided in standard PM APIs.
  7889.  
  7890.   The significance of SOM, rather, is in providing an object-based layer on
  7891.   today's generation of operating system.  This allows many of the benefits of
  7892.   object-oriented programming to be realised on a platform that also provides
  7893.  
  7894.  
  7895.                                                            Workplace Shell  103
  7896.  
  7897.  
  7898.  
  7899.  
  7900.  
  7901.  
  7902.  
  7903.  
  7904.  
  7905.   compatibility with older applications.  As such, SOM provides the
  7906.   architectural foundation today, for OS/2 to move in future towards increasing
  7907.   object-oriented content.  The Taligent joint venture (see "Object-oriented
  7908.   environments" on page 128) is another potential source of object technology.
  7909.   As object-oriented development becomes increasingly important throughout the
  7910.   90s, OS/2 and SOM will evolve to meet the need to use such techniques in
  7911.   developing OS/2 applications.
  7912.  
  7913.  
  7914.   MOVING FROM A PREVIOUS GUI
  7915.   __________________________
  7916.  
  7917.   The design of the Workplace Shell has been tested for several years in IBM's
  7918.   usability laboratories, and the beta test of OS/2 2.0 provided more
  7919.   information on how easy it is to learn and use. In general, people who had
  7920.   little experience of computers found the Workplace Shell easy to pick up and
  7921.   use, once the basic principles had been explained. For DOS users who have not
  7922.   been exposed to GUI before, and for Macintosh users, the transition is not
  7923.   very difficult either. IBM's tests, and the evidence of the OS/2 2.0 beta
  7924.   test, showed that the main category of users who encountered difficulties,
  7925.   were those who had used a previous PC-based GUI, such as Windows 3.x or OS/2
  7926.   1.x.
  7927.  
  7928.   During the beta test, as a direct result of customer feedback, some changes
  7929.   were made to improve the migration for this latter class of user. These
  7930.   included the ability to predefine the look and feel of the shell to be more
  7931.   like that of Windows 3.x or OS/2 1.x, and individual features such as the
  7932.   choice of minimising windows to icons on the desktop, rather than "hiding"
  7933.   the window, which is the default Workplace Shell behaviour.
  7934.  
  7935.   In fact, though the default look and feel can appear different on first view,
  7936.   most items are very familiar to the Windows or OS/2 1.x user once the
  7937.   connection is made between the old style and the new:
  7938.  
  7939.  
  7940.  
  7941.  
  7942.  
  7943.  
  7944.  
  7945.  
  7946.  
  7947.  
  7948.  
  7949.  
  7950.  
  7951.  
  7952.  
  7953.  
  7954.  
  7955.  
  7956.  
  7957.  
  7958.  
  7959.  
  7960.  
  7961.  
  7962.                                                            Workplace Shell  104
  7963.  
  7964.  
  7965.  
  7966.  
  7967.  
  7968.  
  7969.  
  7970.  
  7971.  
  7972.   +---------------------------------------------------------------------------+
  7973.   | Table 7. Windows 3.x and OS/2 1.3 vs. Workplace Shell                     |
  7974.   +-----------------------------+---------------------------------------------+
  7975.   | WINDOWS 3.X - OS/2 1.3      | OS/2 2.0 WORKPLACE SHELL                    |
  7976.   +-----------------------------+---------------------------------------------+
  7977.   | Groups                      | Folders (offers more function - see         |
  7978.   |                             | "Objects and folders" on page 91)           |
  7979.   +-----------------------------+---------------------------------------------+
  7980.   | Desktop Manager/Program     | None. Instead, a random "messy desk"        |
  7981.   | Manager                     | assortment of objects (files, programs or   |
  7982.   |                             | devices). This can be made as "messy" or as |
  7983.   |                             | "tidy" as you wish.                         |
  7984.   +-----------------------------+---------------------------------------------+
  7985.   | Icons                       | Objects. This is an important distinction.  |
  7986.   |                             | An icon now represents the object (file,    |
  7987.   |                             | program or device) and not a running        |
  7988.   |                             | program.  The main consequence of this is   |
  7989.   |                             | in the way minimised windows are treated    |
  7990.   |                             | (usually they are hidden, but you can       |
  7991.   |                             | choose to represent them as icons on the    |
  7992.   |                             | desktop - this can be set on a per-object   |
  7993.   |                             | basis)                                      |
  7994.   +-----------------------------+---------------------------------------------+
  7995.   | Print Manager               | Now separate print objects for each printer |
  7996.   |                             | (see "Extra facilities" on page 96)         |
  7997.   +-----------------------------+---------------------------------------------+
  7998.   | File Manager                | Now a "Drives" object for each drive (see   |
  7999.   |                             | "Extra facilities" on page 96)              |
  8000.   +-----------------------------+---------------------------------------------+
  8001.   | Control Panel               | Separate objects for colour, fonts, mouse   |
  8002.   |                             | etc.                                        |
  8003.   +-----------------------------+---------------------------------------------+
  8004.   | Task List                   | Window List (also accessible via Ctrl-Esc)  |
  8005.   +-----------------------------+---------------------------------------------+
  8006.   | Menus                       | Pop-up menus, see "Pop-Up menus" on page 93 |
  8007.   |                             |                                             |
  8008.   +-----------------------------+---------------------------------------------+
  8009.   | Minimise button             | This "hides" the window rather than places  |
  8010.   |                             | an icon on the desktop, but the behaviour   |
  8011.   |                             | can be customised to iconise the window if  |
  8012.   |                             | required.                                   |
  8013.   +-----------------------------+---------------------------------------------+
  8014.   | Adding Programs             | Use Templates, see "Templates" on page 93   |
  8015.   +-----------------------------+---------------------------------------------+
  8016.   | Mouse usage                 | Two button mouse usage. In general, button  |
  8017.   |                             | 1 selects and button 2 drags.  Use the      |
  8018.   |                             | Tutorial to learn more about the mouse.     |
  8019.   |                             | Mouse button behaviour can be changed to    |
  8020.   |                             | suit the user                               |
  8021.   +-----------------------------+---------------------------------------------+
  8022.  
  8023.   But in nearly every case, not only does the Workplace Shell equivalent
  8024.   provide the Windows function, but it also offers more flexibility.  For
  8025.   example, folders offer far more function than the simple group windows in
  8026.  
  8027.  
  8028.                                                            Workplace Shell  105
  8029.  
  8030.  
  8031.  
  8032.  
  8033.  
  8034.  
  8035.  
  8036.  
  8037.  
  8038.   OS/2 1.x or Windows 3.x (see "Objects and folders" on page 91  for more
  8039.   information):
  8040.  
  8041.   o   allows data files, programs and devices to be grouped together
  8042.  
  8043.   o   allows long descriptive names
  8044.  
  8045.   o   colours, fonts and icons can be easily changed on a per-folder basis
  8046.  
  8047.   o   the workarea property can be set to enable groups of applications to be
  8048.       opened and closed together
  8049.  
  8050.   Furthermore, much of the new function provides a powerful incentive to learn
  8051.   because of the many benefits, for example:
  8052.  
  8053.   TEMPLATES           A consistent way of creating new objects, whether
  8054.                       programs, data files or folders. In Windows 3.x these
  8055.                       would take a different procedure for each item.  (See
  8056.                       "Templates" on page 93)
  8057.  
  8058.   HIDING WINDOWS      Although this behaviour takes some getting used to for
  8059.                       the Windows or OS/2 1.x user, the experience of the beta
  8060.                       test program suggests that most people never wish to go
  8061.                       back to the old way, in which the desktop is cluttered
  8062.                       with minimised icons. Hiding reduces clutter from the
  8063.                       screen, and the Window list (see below) is a much more
  8064.                       effective and consistent way of retrieving open windows.
  8065.                       Tests show that minimising a running program to an icon
  8066.                       is confusing for users who have not used a computer
  8067.                       before, as there are often two copies of the icon, one to
  8068.                       represent the program reference, and the other the
  8069.                       running program, and the user does not know how to
  8070.                       differentiate between them.
  8071.  
  8072.   WINDOW LIST         This is a more powerful tool than the Task List, as
  8073.                       groups of applications can be resurfaced, closed or tiled
  8074.                       in one step (see "Multi-tasking and the user interface"
  8075.                       on page 33)
  8076.  
  8077.   MOUSE BUTTONS       Since Mouse Button 2 is unused in Windows, there is no
  8078.                       comparison, except that there is a happy coincidence of
  8079.                       use between IBM and Borland in their use of the Mouse
  8080.                       Button 2 to produce a pop-up menu on a given object (see
  8081.                       "Pop-Up menus" on page 93)
  8082.  
  8083.   FLEXIBLE DESKTOP    Objects and windows can be placed where the user wishes,
  8084.                       and the action of the desktop is modeless - there is no
  8085.                       need to close certain windows before others can be
  8086.                       opened. There are therefore no artificial restrictions in
  8087.                       the user's movement around the desktop.
  8088.  
  8089.   But, even if the new function does not attract, it is not necessary to learn
  8090.   all of the new ways at once.  OS/2 provides all the old function too:  there
  8091.   is an object for the DOS or OS/2 command prompt, for those users addicted to
  8092.  
  8093.  
  8094.                                                            Workplace Shell  106
  8095.  
  8096.  
  8097.  
  8098.  
  8099.  
  8100.  
  8101.  
  8102.  
  8103.  
  8104.   the C:\> prompt; and Windows users can select a WIN-OS/2 Full Screen session
  8105.   if the familiarity of the Windows environment is required (see "Full Screen
  8106.   or Seamless" on page 69).
  8107.  
  8108.   But the most important difference from Windows is the Workplace Shell's
  8109.   flexibility: you can put icons where you choose, not where the Program
  8110.   Manager or File Manager allow you; you can change the look or behaviour of
  8111.   almost any aspect of the system if the default does not suit you; and you can
  8112.   use drag and drop across most of the system, not just the File Manager.
  8113.  
  8114.  
  8115.   BENEFITS OF THE WORKPLACE SHELL
  8116.   _______________________________
  8117.  
  8118.   But all of the function and power of the Workplace Shell would be useless
  8119.   unless it provided tangible benefits over other GUIs. This section lists some
  8120.   of the advantages.
  8121.  
  8122.  
  8123.   EASY TO LEARN
  8124.  
  8125.   No system is totally intuitive, but the Workplace Shell offers a number of
  8126.   aids to quick and effective learning. The tutorial gives most of the basic
  8127.   elements, and can be revisited at any time. There are productivity
  8128.   applications and games to get productive quickly, and have fun while
  8129.   learning.  And the online help system is comprehensive as a reference, or as
  8130.   immediate help when required. The "Start Here" icon gives a focal point if
  8131.   you ever get completely lost!
  8132.  
  8133.  
  8134.   FLEXIBLE
  8135.  
  8136.   Almost anything can be changed if the default does not suit. You can change
  8137.   colours, fonts and background images, not just for the system as a whole, but
  8138.   for each folder. The behaviour of mouse and keyboard, of how windows work,
  8139.   and most other system defaults are all configurable. And the workarea
  8140.   principle can make each project have a different combination of icons and
  8141.   folders, to suit the job you are doing.
  8142.  
  8143.  
  8144.   PERSONAL
  8145.  
  8146.   The Workplace Shell returns to the principle that the PC is a PERSONAL
  8147.                                                                 ________
  8148.   computer. Its' motto could be "have it your way." A secretary's desktop can
  8149.   look different from a manager's desktop, and each different from an
  8150.   engineer's. You can have as many or as few icons as you wish. You can change
  8151.   the look and feel to behave more like OS/2 1.x or Windows 1.x.
  8152.  
  8153.  
  8154.  
  8155.  
  8156.  
  8157.  
  8158.  
  8159.  
  8160.  
  8161.  
  8162.                                                            Workplace Shell  107
  8163.  
  8164.  
  8165.  
  8166.  
  8167.  
  8168.  
  8169.  
  8170.  
  8171.  
  8172.   SIMPLE
  8173.  
  8174.   Though the Workplace Shell is a powerful environment, it does not overwhelm
  8175.   the user. You can start by using what you know and are familiar with
  8176.   (including the C:\> prompt if you wish!), and move on to learn new function
  8177.   as you need it. Much of the new function and tasks can be learned by
  8178.   experimentation, as the consistency of the shell, and the visual feedback (eg
  8179.   "no-entry" signs where icons cannot be dropped) allows users to teach
  8180.   themselves.
  8181.  
  8182.  
  8183.   COMPATIBLE
  8184.  
  8185.   The Workplace Shell offers the old ways of working like the DOS prompt and
  8186.   the Windows Full Screen. It takes nothing away. But it also provides a
  8187.   standard way of running applications without compromising any compatibility.
  8188.   It does not enforce a way of working with older applications that is foreign
  8189.   to the user. You can either close applications in the consistent OS/2 way by
  8190.   double clicking on the system icon, or use the application commands (such as
  8191.   / Quit for Lotus 1-2-3).
  8192.  
  8193.  
  8194.   CONSISTENT
  8195.  
  8196.   The Workplace Shell provides the same way of working whether your resources
  8197.   are local or on the LAN. It allows you to use techniques like drag and drop
  8198.   consistently across the system, where you would need three different commands
  8199.   in DOS, and would be restricted to doing things from the File Manager only in
  8200.   Windows.
  8201.  
  8202.  
  8203.   INFORMATION-ORIENTED
  8204.  
  8205.   The Workplace Shell allows users to work in a more natural way, by focusing
  8206.   on the information they need to work with. There is less need to worry about
  8207.   the computer's housekeeping, like files and directories. All in all, you work
  8208.   the way YOU want to work, not the way the computer forces you.
  8209.           ___
  8210.  
  8211.  
  8212.   INTEGRATING
  8213.  
  8214.   Applications are loaded in the same way, data objects are treated in the same
  8215.   way, whether they come from a DOS, Windows or OS/2 program. The Workplace
  8216.   Shell integrates local and remote resources. The whole purpose is to present
  8217.   as seamless an interface as possible to the variety of tools, application and
  8218.   data that users need to do their job. in this respect, it is a UNIFYING
  8219.                                                                  ________
  8220.   interface, and reinforces the key aim of OS/2 2.0 as the integrating
  8221.   platform.
  8222.  
  8223.  
  8224.  
  8225.  
  8226.  
  8227.  
  8228.  
  8229.  
  8230.                                                            Workplace Shell  108
  8231.  
  8232.  
  8233.  
  8234.  
  8235.  
  8236.  
  8237.  
  8238.  
  8239.  
  8240.   OS/2 IN A CONNECTED ENVIRONMENT
  8241.   _______________________________
  8242.  
  8243.  
  8244.  
  8245.  
  8246.  
  8247.   OS/2 is the critical component in IBM's vision of the complete, managed,
  8248.   client-server system. It is the key element which allows the PC to become the
  8249.   focal point of information processing. Instead of in the past, where key data
  8250.   processing was performed at a remote host, and information provided to users
  8251.   from the central system, the OS/2 vision moves the PC to the centre, and
  8252.   places the user in control of the information. This vision lies at the heart
  8253.   not only of IBM's user interface design (see "Workplace Shell" on page 87),
  8254.   but also of its strategy to make OS/2 the base for an integrated family of
  8255.   networking extensions, that allows OS/2 to be a completely network-aware
  8256.   system. This makes OS/2 the INTEGRATING PLATFORM, not only for local
  8257.                               ____________________
  8258.   productivity applications, but for the other components of the enterprise
  8259.   system.  It is no longer realistic to view the PC in isolation from the rest
  8260.   of the corporate network.
  8261.  
  8262.   +---------------------------------------------------------------------------+
  8263.   |                                                                           |
  8264.   |                                                                           |
  8265.   +---------------------------------------------------------------------------+
  8266.   Figure 28. The OS/2 family of networking extensions
  8267.  
  8268.   The systems extensions to OS/2 complete the picture of the full function
  8269.   OS/2, designed to address the needs of the PC platform of the 90s, as
  8270.   discussed in the section "The changing PC environment" on page 1 . They add
  8271.   to the wide application choice, ease of use, investment protection and
  8272.   reliability of the base system, by providing extensive connectivity,
  8273.   management tools and exploitation of the existing corporate network. This
  8274.   section expands on the strengths of OS/2 2.0 as an easy-to-use productivity
  8275.   platform, and shows how, as a base platform, and with its extensions, OS/2 is
  8276.   enabled to act as the "super client" of today, and the future.
  8277.  
  8278.  
  8279.   OS/2 FOR CLIENT-SERVER
  8280.   ______________________
  8281.  
  8282.   OS/2 is not only today's server platform of choice (acknowledged by both IBM
  8283.   and Microsoft), but the best available client.  These are some of the reasons
  8284.   why:
  8285.  
  8286.   o   CONSISTENT PLATFORM FOR BOTH CLIENT AND SERVER:  It is clear that if the
  8287.       ______________________________________________
  8288.       same platform can be used for both the client and the server, then the
  8289.       benefits of consistency will lead to a much more manageable platform,
  8290.       with only one operating system to support.  OS/2 is the only operating
  8291.       system available that is consistent across client and server.
  8292.  
  8293.   o   MULTIPLE CONCURRENT NETWORK PROTOCOLS:  OS/2's great strength in
  8294.       _____________________________________
  8295.       communications is acknowledged across the industry.  In particular,
  8296.       OS/2's multi-tasking design allows it to handle multiple communications
  8297.       protocols (eg NETBIOS, 3270, IPX, TCP/IP) with ease.  This ease of
  8298.       integration is in contrast with the problems of attempting such
  8299.  
  8300.  
  8301.                                            OS/2 in a connected environment  109
  8302.  
  8303.  
  8304.  
  8305.  
  8306.  
  8307.  
  8308.  
  8309.  
  8310.  
  8311.       concurrency under DOS or Windows, such as lack of memory, poor
  8312.       multi-tasking performance and the instability of DOS-based multi-tasking.
  8313.       In a world where heterogeneous or mixed-vendor connectivity is becoming
  8314.       the norm (a recent report estimated that 70% of LANs run more than one
  8315.       protocol), OS/2 is today's only reliable client choice.  At the Networld
  8316.       trade show in early 1992, IBM demonstrated a single OS/2 client machine
  8317.       with one Token Ring card, connected to a "wall of servers," which
  8318.       included three LAN servers, one running NetWare, another Banyan Vines,
  8319.       and another OS/2 LAN Server; a RISC System/6000 running AIX, an AS/400
  8320.       and an ES/9000.  One client was connected simultaneously to all these
  8321.       shared resources - it was, of course, an OS/2 2.0 client.
  8322.  
  8323.   o   ENABLED FOR LAN-BASED INSTALL:  OS/2 can be installed from a server to
  8324.       _____________________________
  8325.       multiple clients, allowing faster and more controlled installation, with
  8326.       the added benefits of greater automation.  Future tools will be available
  8327.       from IBM to ease the system administrator's job still further (see
  8328.       "Graphical installation" on page 78 for more information on
  8329.       installation).
  8330.  
  8331.   o   LAN-INDEPENDENT SHELL:  OS/2's Workplace Shell provides a graphical view
  8332.       _____________________
  8333.       of resources, whether on the local machine or on the LAN.  Remote drives
  8334.       can be set on the LAN from products including NetWare, OS/2 LAN Server,
  8335.       Banyan VINES, or TCP/IP for OS/2, and also on host systems using Virtual
  8336.       Disk facilities in products like PC Support/400 and Workstation LAN File
  8337.       Services/VM.  The Workplace Shell gives seamless access to different
  8338.       server environments, making multiple connectivity easier to implement,
  8339.       and provides consistent access to network files and printers (see
  8340.       "LAN-independent shell" on page 101)
  8341.  
  8342.   o   EASIER TO MANAGE: OS/2 provides the ability to allow administrative tasks
  8343.       ________________
  8344.       (such as collection of local configuration data and performance
  8345.       measurement) to be run on the client while preventing excessive impact on
  8346.       local performance and usability. Such tasks are becoming increasingly
  8347.       important in a highly distributed PC client-server environment, and
  8348.       particularly where PCs are being rolled out into mission-critical usage
  8349.       in remote locations where on-site support cannot be provided. Remote
  8350.       diagnosis and support is therefore critical in such environments. But
  8351.       background monitoring and data collection cannot be achieved easily on a
  8352.       single-tasking platform like DOS. And the limitations of environments
  8353.       like Windows, that attempt to graft a multi-tasking layer on top of
  8354.       single-tasking DOS, are revealed when such systems management functions
  8355.       are attempted. Even if such tasks could be run in the background on
  8356.       Windows (not always the case), the lack of true multi-tasking would cause
  8357.       the background "probe" to be intrusive to the user's foreground activity.
  8358.       Only a pre-emptive multi-tasking environment like OS/2 can offer these
  8359.       benefits.
  8360.  
  8361.   o   SUPPORTS BOTH PRODUCTIVITY AND LINE-OF-BUSINESS APPLICATIONS:  Today's
  8362.       ____________________________________________________________
  8363.       client-server environments are moving beyond the simple file and print
  8364.       sharing of the first LANs, towards applications like Lotus Notes, and SQL
  8365.       database applications, that can deliver competitive edge through enabling
  8366.       workgroup communication.  In this environment, it is important to deliver
  8367.       not only the support for in-house "line-of-business" applications, but
  8368.       leverage the investment in client productivity applications.  OS/2 2.0 is
  8369.  
  8370.  
  8371.                                            OS/2 in a connected environment  110
  8372.  
  8373.  
  8374.  
  8375.  
  8376.  
  8377.  
  8378.  
  8379.  
  8380.  
  8381.       the only platform that delivers industrial strength reliability AND wide
  8382.                                                                       ___
  8383.       application compatibility.
  8384.  
  8385.   o   RELIABILITY:  This is perhaps the most critical issue of all.  Many of
  8386.       ___________
  8387.       the reported problems with Windows 3.0 occurred in networking
  8388.       environments.  It is clear that although Windows 3.1 may have improved
  8389.       reliability in some areas, it has not changed any of the architectural
  8390.       deficiencies that cause its limitations in networking; most of the
  8391.       problems stem from the fact that Windows continues to run on DOS (see
  8392.       "Reliability and protection" on page 44  and "Reliability" on page 61).
  8393.       The issue can be summed up thus:  what use is it having a fault-tolerant
  8394.       server if you cannot rely on your client?
  8395.  
  8396.   Forrester Research's May 1992 report on the growth of the "super client" (see
  8397.   "The changing PC environment" on page 1) identifies OS/2 2.0 as being a
  8398.   leading candidate to satisfy the demand for a highly protected,
  8399.   network-aware, true multi-tasking client platform, for use in
  8400.   "line-of-business" applications. According to Forrester, the "super client"
  8401.   role is beyond the scope of either Windows 3.1 or Windows/NT, and predicts
  8402.   for the latter "product delays...and bloated hardware requirements." That
  8403.   independent analysts should make such statements is not surprising, given the
  8404.   difference in protection between OS/2 2.0 and Windows 3.1, and the difference
  8405.   in hardware requirements and availability of OS/2 2.0 and Windows/NT. OS/2
  8406.   2.0 is the platform that meets the exacting requirements of the modern client
  8407.   platform (see "The changing PC environment" on page 1) in an acceptable
  8408.   configuration, and is available today, not promised for the future.
  8409.  
  8410.  
  8411.   THE OS/2 FAMILY OF NETWORKING EXTENSIONS
  8412.   ________________________________________
  8413.  
  8414.   OS/2 2.0 is part of a family of products and systems extensions, which are
  8415.   designed to work together.  In other environments, customers have to buy
  8416.   third party software (if it is available) and hope it will all work together;
  8417.   with IBM these extensions are tested together and integrated.  Here are some
  8418.   of the systems extensions from IBM which complement the OS/2 base system:
  8419.  
  8420.  
  8421.   EXTENDED SERVICES FOR OS/2
  8422.  
  8423.   Extended Services for OS/2 is a separate product which provides
  8424.   communications and database functions.  It includes Communications Manager,
  8425.   which offers a wide range of connectivity and protocols (all of which can be
  8426.   active at the same time ); and also provides Database Manager, a powerful
  8427.   client-server SQL relational database, part of the SAA family of relational
  8428.   databases that includes DB2 and SQL/DS.  Extended Services for OS/2 release
  8429.   1.0 works with both the OS/2 Version 1.3.1 16-bit base and OS/2 Version 2.0
  8430.   32-bit base.  This will be an advantage in mixed 286 and 386 environments.
  8431.   Extended Services is supported on a selected range of IBM-compatible PCs, not
  8432.   just PS/2s.
  8433.  
  8434.   In keeping with the intention to offer modular options to customers, Extended
  8435.   Services comes in two forms, which differ only in their database function:
  8436.   Extended Services for OS/2 delivers Communications Manager and Database
  8437.   Manager in a single package, providing an "all-in-one" complete connectivity
  8438.  
  8439.  
  8440.                                            OS/2 in a connected environment  111
  8441.  
  8442.  
  8443.  
  8444.  
  8445.  
  8446.  
  8447.  
  8448.  
  8449.  
  8450.   solution; Extended Services with Database Server for OS/2 adds the ability to
  8451.   create databases on a server, and offers cost-effective client functions for
  8452.   DOS, Windows and OS/2 clients.
  8453.  
  8454.   Extended Services is a key component for OS/2's participation in the SAA
  8455.   standards, particularly for communications protocols (APPC, CPI-C, and APPN)
  8456.   and relational database (SQL, DRDA). It is one of the key building blocks for
  8457.   the SAA co-operative processing applications of the future, both by third
  8458.   party applications vendors and by customers themselves.
  8459.  
  8460.  
  8461.   DDCS/2
  8462.  
  8463.   SAA Distributed Database Connection Services/2 (DDCS/2) is a complement to
  8464.   Extended Services.  It offers host database connectivity to an OS/2 client
  8465.   and, working with Database Manager, allows DOS, Windows and OS/2 clients to
  8466.   access host databases conforming to the Distributed Relational Database
  8467.   Architecture (DRDA), which includes not only IBM's DB2, SQL/DS and OS/400,
  8468.   but potentially third party database products too.  DDCS/2 widens the scope
  8469.   of the OS/2 client, and is part of the wider SAA distributed database
  8470.   direction.
  8471.  
  8472.  
  8473.   OS/2 LAN SERVER
  8474.  
  8475.   OS/2 LAN Server version 2.0 is a powerful platform for providing LAN services
  8476.   to DOS, Windows and OS/2 clients.
  8477.  
  8478.   Entry and Advanced levels are available.  Entry provides an economical base
  8479.   system for both the 16-bit and 32-bit bases while Advanced adds features like
  8480.   a high performance 386 file system (HPFS386) and additional error recovery,
  8481.   on the 16-bit base.  OS/2 LAN Server 3.0, which at the time of writing had
  8482.   entered beta test, will offer, among other new features, the ability to run
  8483.   Advanced level function like HPFS386 on the OS/2 32-bit base. Other new
  8484.   features in LAN Server 3.0 include:
  8485.  
  8486.   o   high level of NetWare and OS/2 LAN Requester client co-existence, on the
  8487.       client desktop, and when integrating NetWare resources into an OS/2 LAN
  8488.       Server domain as externally defined resources
  8489.  
  8490.   o   peer Services, which allows a OS/2 requester to share resources with one
  8491.       peer
  8492.  
  8493.   o   redirected Install, delivering unattended install within the CID process
  8494.  
  8495.   o   802.2 Virtual Device Driver (VDD), enables DOS 802.2 applications to
  8496.       share an adapter with other DOS and OS/2 applications (this function is
  8497.       also included in NTS/2 - see "IBM Network Transport Services/2" on
  8498.       page 115)
  8499.  
  8500.   o   OS/2 TCP/IP coexistence via support of NETBIOS over TCP/IP, allowing
  8501.       support of a greater range of protocols
  8502.  
  8503.  
  8504.  
  8505.  
  8506.                                            OS/2 in a connected environment  112
  8507.  
  8508.  
  8509.  
  8510.  
  8511.  
  8512.  
  8513.  
  8514.  
  8515.  
  8516.   o   improved disk fault tolerance, mirroring without the need for rebooting
  8517.       the server, and mirroring of the boot drive
  8518.  
  8519.   o   support for Apple Macintosh clients via an add-on product
  8520.  
  8521.   Like Extended Services, OS/2 LAN Server is supported on a range of selected
  8522.   IBM-compatible equipment as well as PS/2s.
  8523.  
  8524.   OS/2 LAN Server is a robust, scalable solution, from the small LAN, to the
  8525.   large and complex. It makes life easy for the user, the LAN administrator,
  8526.   and the systems manager:
  8527.  
  8528.   o   for the user - a single view of all resources available, and automatic
  8529.       ____________
  8530.       allocation of resources. Combined with the Workplace Shell, this becomes
  8531.       even easier.
  8532.  
  8533.   o   for the administrator - the Domain feature makes management of large LANs
  8534.       _____________________
  8535.       much easier, and allows location-independent resource naming, making
  8536.       changes easier to implement.
  8537.  
  8538.   o   for the systems manager  - performance and management tools, including
  8539.       _______________________
  8540.       integration with the SAA host-based NetView.
  8541.  
  8542.   OS/2 LAN Server provides excellent performance. In tests run by LANQuest
  8543.   Labs, an independent benchmarking company (report dated June 1992), OS/2 LAN
  8544.   Server Version 2.0 had the best overall performance compared to Novell
  8545.   NetWare 3.11 and Microsoft LAN Manager.
  8546.  
  8547.   In the future, IBM plans to enhance OS/2 LAN Server towards full distributed
  8548.   function for the LAN environment, including common distributed services,
  8549.   common developer infrastructure, and open industry standards.
  8550.  
  8551.  
  8552.   OS/2 LAN Server and Microsoft LAN Manager
  8553.  
  8554.   In 1989, IBM and Microsoft made a commitment to work towards greater
  8555.   commonality between Microsoft LAN Manager and OS/2 LAN Server.  The original
  8556.   scope of work has now been completed, and commonality has been achieved at
  8557.   the API and functional level.  This means that applications can be written to
  8558.   run on both platforms.  OS/2 LAN Server clients and Microsoft's LAN Manager
  8559.   clients can coexist and interoperate on the same LAN.  Both clients can logon
  8560.   and access resources at either or both servers.  OS/2 LAN Server and LAN
  8561.   Manager utilise a common underlying security system as well, which includes
  8562.   common user domains, access control and server local security.  OS/2 LAN
  8563.   Server's support for selected non-IBM equipment means that customers can now
  8564.   buy LAN Server on both IBM and OEM machines, and also achieve consistency
  8565.   that way.
  8566.  
  8567.   Microsoft has not, at the time of writing, committed support in Microsoft LAN
  8568.   Manager for OS/2 2.0, either as a server or as a client, although they have
  8569.   access to the OS/2 2.0 code. Nevertheless, customers using LAN Manager 2.0
  8570.   may obtain OS/2 2.0 client access to the server, using IBM LAN Enabler
  8571.   version 2.0 (see "LAN Enabler" on page 114).
  8572.  
  8573.  
  8574.  
  8575.                                            OS/2 in a connected environment  113
  8576.  
  8577.  
  8578.  
  8579.  
  8580.  
  8581.  
  8582.  
  8583.  
  8584.  
  8585.   Although the current release of OS/2 LAN Server contains code licenced from
  8586.   Microsoft, future OS/2 LAN Server plans (see above) have no dependency on
  8587.   Microsoft, whose declared future plans for LAN Manager place little emphasis
  8588.   on OS/2.
  8589.  
  8590.  
  8591.   NETWARE FROM IBM
  8592.  
  8593.   IBM, as an open vendor, provides its customers with the two major options for
  8594.   server software: OS/2 LAN Server and NetWare from IBM.  OS/2 LAN Server is an
  8595.   excellent platform in an environment requiring IBM host connectivity today,
  8596.   and complements the use of Extended Services, but many customers have
  8597.   NetWare-based LANs, for application, historical and functional reasons. They
  8598.   therefore require co-existence and interoperability between the two
  8599.   standards. NetWare expands IBM's ability to offer better solutions in a mixed
  8600.   networking environment, where support of diverse clients (Unix, Macintosh)
  8601.   are required in addition to DOS, Windows and OS/2.
  8602.  
  8603.   OS/2 2.0 is an excellent client for NetWare. OS/2 1.3 plus the OS/2 NetWare
  8604.   Requester offered access to services on the various NetWare platforms.  For
  8605.   OS/2 2.0, the NetWare Workstation Kit for OS/2 Version 2.0 includes the
  8606.   requester code and utilities required for a fully functional NetWare client.
  8607.   A separate product, NetWare Services for OS/2, adds to the requester code, a
  8608.   MAP utility for network management.
  8609.  
  8610.   IBM offers co-existence between LAN Server and NetWare.  With the OS/2 LAN
  8611.   Requester and the NetWare OS/2 requester installed, the same OS/2 workstation
  8612.   can log on to both types of server.  This allows customers to use both
  8613.   products according to immediate requirements and installed base.  Greater
  8614.   interoperability is planned.  One key element in achieving this is the
  8615.   commitment by Novell to move NetWare to the 32-bit OS/2 base.  This will
  8616.   combine the strengths of NetWare with the power of 32-bit OS/2 as a server
  8617.   platform.  Novell's plans amount to a key endorsement of OS/2 as both a
  8618.   server and client platform.  IBM will continue to offer interoperability with
  8619.   NetWare systems as we incorporate more distributed services into the OS/2 LAN
  8620.   Server.
  8621.  
  8622.  
  8623.   LAN ENABLER
  8624.  
  8625.   IBM LAN Enabler version 2.0 offers the OS/2 requester, LAN Support Program
  8626.   and DOS LAN Requester (DLR), identical in function to that provided with OS/2
  8627.   LAN Server 2.0, in a separate product. The package includes requesters for
  8628.   DOS, Windows, OS/2 1.3 and OS/2 2.0, as well as protocol support,
  8629.   NDIS-compliant network adapter drivers, LAN API support, and a VDD for
  8630.   NETBIOS applications.
  8631.  
  8632.   This product will allow 286 and 386 PCs to connect to servers including OS/2
  8633.   LAN Server 2.0 and Microsoft LAN Manager 2.0, and other compatible servers,
  8634.   without having to buy a separate copy of LAN Server, or Extended Services for
  8635.   OS/2. It also allows OS/2 2.0 client access to NETBIOS, 802.2 and NDIS
  8636.   applications without buying LAN Server or Extended Services.
  8637.  
  8638.  
  8639.  
  8640.  
  8641.                                            OS/2 in a connected environment  114
  8642.  
  8643.  
  8644.  
  8645.  
  8646.  
  8647.  
  8648.  
  8649.  
  8650.  
  8651.   This enhances the function of OS/2 2.0 as a client to different networks by
  8652.   providing the necessary function in a package separate from the server, at an
  8653.   economical price.
  8654.  
  8655.  
  8656.   IBM NETWORK TRANSPORT SERVICES/2
  8657.  
  8658.   IBM Network Transport Services/2 (NTS/2) provides networking support on an
  8659.   OS/2 2.0 base, without requiring OS/2 LAN Server or Extended Services for
  8660.   OS/2. It provides the LAN adapter and protocol support (LAPS) to support
  8661.   networking applications on an OS/2 2.0 machine, and to enable automated
  8662.   installation of OS/2 and other CID(22) -enabled software across a LAN.
  8663.  
  8664.   NTS/2 is a combination of:
  8665.  
  8666.   1.  Network Driver Interface Specification (NDIS) compliant transport
  8667.       protocol and network adapter software
  8668.  
  8669.   2.  OS/2 2.0 support for DOS programs requiring NETBIOS and IEEE 802.2 APIs,
  8670.       by providing a VDD/PDD combination for NETBIOS and 802.2. This allows DOS
  8671.       applications using a Token Ring adapter, to share that adapter with other
  8672.       DOS and OS/2 applications running on the same machine. For example, this
  8673.       allows DOS and Windows 3270 emulation programs using Token Ring to share
  8674.       the adapter with OS/2 LAN Requester.
  8675.  
  8676.   3.  Configuration Installation Distribution (CID) enabling software,
  8677.       including a LAN CID utility (LCU) to manage the automated installation
  8678.       process.
  8679.  
  8680.   Note that the LAPS function was also released earlier in the LAN Enabler/2
  8681.   v2.0 product. NTS/2 adds to LAN Enabler/2, the CID support to allow automated
  8682.   installation of OS/2 in a LAN environment. In this respect, NTS/2 is more
  8683.   akin to the DOS-based LAN Support Program, with the addition of CID support
  8684.   (ie it provides the network transports and APIs to enable LAN support),
  8685.   whereas LAN Enabler/2 can be thought of as related to the OS/2 LAN Requester
  8686.   (since it provides command line and menu interfaces to manage LAN-based
  8687.   resources).
  8688.  
  8689.  
  8690.   OPEN SYSTEMS CONNECTIVITY
  8691.  
  8692.   Although OS/2 is the SAA client platform, it is also vital that it embraces
  8693.   the open systems world. IBM's strategy is to enable OS/2 and AIX in
  8694.   particular, to interoperate as much as possible. TCP/IP for OS/2 is one
  8695.   product that provides significant networking co-existence with UNIX-based
  8696.   systems, providing support for many open standards such as TCP/IP, NFS,
  8697.   TELNET and X-Windows. This allows OS/2 to extend its client capability into
  8698.   the open systems arena. IBM's strategy is to link the OS/2 and open systems
  8699.  
  8700.  
  8701.   ---------------
  8702.  
  8703.   (22) CID stands for Configuration, Installation, Distribution - see
  8704.       "Configuration, Installation, Distribution (CID)" on page 118
  8705.  
  8706.  
  8707.                                            OS/2 in a connected environment  115
  8708.  
  8709.  
  8710.  
  8711.  
  8712.  
  8713.  
  8714.  
  8715.  
  8716.  
  8717.   worlds closer together through common systems extensions, connectivity and
  8718.   management tools (see "AIX interoperability" on page 132)
  8719.  
  8720.   The combination of the OS/2 2.0 base, and TCP/IP for OS/2, means that the
  8721.   OS/2 2.0 user can today view, on the same screen, DOS, Windows, and OS/2
  8722.                                 __________________
  8723.   applications as well as Unix applications through X terminal or TELNET.  This
  8724.   widens still further the range of application support OS/2 2.0 can provide.
  8725.  
  8726.  
  8727.   SYSTEMS MANAGEMENT
  8728.   __________________
  8729.  
  8730.   Connecting PCs together is only one part of the process of integrating the PC
  8731.   into the enterprise system.  The more PCs are installed in a company, the
  8732.   harder it is to control their installation, maintenance, problem solving and
  8733.   performance tuning. IBM has proven strength in handling complex, distributed
  8734.   networks, and therefore understands the importance of providing tools to help
  8735.   manage these tasks.  To date, systems management for OS/2 has been provided
  8736.   by two means:
  8737.  
  8738.   o   by functions integrated directly into OS/2 and extensions like Extended
  8739.       Services (such as the First Failure Support Technology - FFST/2)
  8740.  
  8741.   o   by separate standalone products which address a specific and distinct
  8742.       aspect of the overall task of managing OS/2 systems
  8743.  
  8744.   In the latter category, IBM has already produced a variety of products, based
  8745.   on OS/2, to assist various aspects of systems management.  The table below
  8746.   lists a few of them:
  8747.  
  8748.   +---------------------------------------------------------------------------+
  8749.   | Table 8. OS/2 systems management tools                                    |
  8750.   +----------------+----------------------------------------------------------+
  8751.   | SPM/2          | System Performance Monitor/2 (SPM/2) tracks key aspects  |
  8752.   |                | of a system's use:  CPU, disk etc, to identify           |
  8753.   |                | performance problems. This can be used in both server    |
  8754.   |                | and client environments.                                 |
  8755.   +----------------+----------------------------------------------------------+
  8756.   | NetView        | an installation management tool, working in conjunction  |
  8757.   | Distribution   | with the host-based NetView, that includes a LAN         |
  8758.   | Manager/2      | Download Utility to install or upgrade software via a    |
  8759.   |                | LAN server to LAN-connected PCs.                         |
  8760.   +----------------+----------------------------------------------------------+
  8761.   | SAA Delivery   | allows host-connected OS/2 machines to receive software  |
  8762.   | Manager        | updates from the host                                    |
  8763.   +----------------+----------------------------------------------------------+
  8764.   | DCAF           | Distributed Console Access Facility (DCAF) allows remote |
  8765.   |                | diagnosis and management, by receiving screens from and  |
  8766.   |                | controlling the keyboard of a remote OS/2 machine.       |
  8767.   +----------------+----------------------------------------------------------+
  8768.  
  8769.   IBM is continuing to expand on this range of management tools, and to
  8770.   integrate them more closely. IBM's long term goal is the provision of an
  8771.   architected management platform which adheres to indistry standards from
  8772.   organisations such as ISO, X/Open and OSF.
  8773.  
  8774.  
  8775.                                            OS/2 in a connected environment  116
  8776.  
  8777.  
  8778.  
  8779.  
  8780.  
  8781.  
  8782.  
  8783.  
  8784.  
  8785.   IBM's strategy for systems management is based on the belief that in
  8786.   establishing the true cost of a PC system, the initial hardware and software
  8787.   cost is only a small proportion.  The extra costs, what many independent
  8788.   analysys call "cost of ownership," relate to issues like integration, support
  8789.   and systems management; or, as it was stated in "The changing PC environment"
  8790.   on page 1, the costs of maintaining the systems should not exceed the
  8791.   benefits it provides.  With the growth in the size and complexity of LANs and
  8792.   client/server systems, planning and managing these systems has become
  8793.   increasingly difficult, time-consuming and expensive.  In a report in April
  8794.   1992, Gartner Group said that "Costs surrounding product updates represent
  8795.   the largest component of PC software life-cycle costs."  Customers are
  8796.   therefore investing a growing amount of resources into distributed systems
  8797.   management (DSM) and are demanding that they be simplified and automated.
  8798.  
  8799.   On October 6th, 1992, IBM responded to customer demands for solutions to DSM
  8800.   problems with 2 major announcements:
  8801.  
  8802.   o   the IBM LAN NetView family of DSM products
  8803.  
  8804.   o   a generalized solution for configuration, installation, and distribution
  8805.       (CID) of OS/2, its subsystems, and application software.
  8806.  
  8807.  
  8808.   IBM LAN NETVIEW FAMILY
  8809.  
  8810.   The IBM LAN NetView family of products is an OS/2-based platform for
  8811.   performing DSM functions in enterprise-wide, multivendor local area networks
  8812.   (LANs).  The LAN NetView platform provides the ability to monitor and control
  8813.   information processing resources, including hardware and software, throughout
  8814.   an enterprise.  Information is collected from monitored resources (managed
  8815.   systems) and sent to other resources (managing systems).  The offerings allow
  8816.   the management of OS/2 2.0, DOS 5.0, and DOS 5.0 with Windows 3.1 clients.
  8817.  
  8818.   The new platform allows the LAN administrator at a workstation to access
  8819.   different systems management applications using the same screen.  It provides
  8820.   enhanced automation and greater integration among products to streamline such
  8821.   management tasks as detecting hardware or software failures on the network -
  8822.   which often require the combined efforts of users and trained personnel at
  8823.   both remote and central locations.
  8824.  
  8825.   The set of LAN NetView distributed system management applications being
  8826.   developed by IBM include:
  8827.  
  8828.   o   LAN NetView Manage, the platform product that provides system services
  8829.       for LAN NetView management applications.
  8830.  
  8831.   o   LAN NetView Start, LAN NetView Monitor and LAN NetView Fix, three
  8832.       management applications designed to run on that platform.  They provide,
  8833.       respectively, configuration, systems performance and fault-management
  8834.       services.
  8835.  
  8836.   o   LAN NetView Tie, which provides a LAN-to-NetView link for customers who
  8837.       prefer to divide management of system resources between LAN- and
  8838.  
  8839.  
  8840.  
  8841.                                            OS/2 in a connected environment  117
  8842.  
  8843.  
  8844.  
  8845.  
  8846.  
  8847.  
  8848.  
  8849.  
  8850.  
  8851.       host-based products, or who prefer to centralize all management on the
  8852.       host processor.
  8853.  
  8854.   IBM is encouraging vendors to provide agents for their system resources to
  8855.   allow LAN NetView products to manage them, and is encouraging vendors to
  8856.   provide additional system management applications on this platform.  Among
  8857.   the vendors who have declared their support are Novell, Microcom, Computer
  8858.   Associates and Ungermann-Bass.  Customers may also choose to implement their
  8859.   own LAN NetView compliant distributed system management applications.
  8860.  
  8861.   To encourage the development of third-party systems management applications,
  8862.   LAN NetView provides a set of common application programming interfaces
  8863.   (APIs) that have been accepted by key industry organizations that further
  8864.   standards, such as the Open Software Foundation (OSF) and X/Open, and
  8865.   accepted by IBM's SystemView.  One of these interfaces, named the X/Open
  8866.   Management Protocol (XMP), allows developers to create applications without
  8867.   having to know the underlying management and transport protocols, such as
  8868.   CMIP and SNMP.  SystemView has adopted XMP as its Common Management Interface
  8869.   Protocol (CMIP), and the LAN NetView products are among the first management
  8870.   products in the industry to incorporate elements of the OSF's Distributed
  8871.   Management Environment (DME) technology.
  8872.  
  8873.  
  8874.   CONFIGURATION, INSTALLATION, DISTRIBUTION (CID)
  8875.  
  8876.   IBM also recognises the need to provide a generalised solution to the problem
  8877.   of automated installation and configuration of multiple PCs.
  8878.  
  8879.   On October 6, IBM announced its CID strategy.  CID is not a single product,
  8880.   but a collection of processes with supporting products.  It automates the
  8881.   processes of configuration, installation and distribution in the DSM
  8882.   environment and dramatically improves productivity for system administrators.
  8883.   This allows both standalone LAN and host-attached LAN customers to realize
  8884.   dramatic resource savings by using the CID processes.
  8885.  
  8886.   Though there are several aspects to CID enablement, its primary objective is
  8887.   to provide unattended, remote installation of OS/2, its subsystems, and
  8888.   application software on LAN attached workstations.  Customers with both large
  8889.   and small networks will be able to remotely install and manage software such
  8890.   as OS/2 or OS/2 applications from a single location, without requiring the
  8891.   involvement of the desktop workstation user.  The CID process can apply to
  8892.   installing not only OS/2 system code, but also supported application code.
  8893.   Each system requires a physical LAN connection, but is not reliant upon a
  8894.   file server like OS/2 LAN Server or Novell NetWare for the distribution
  8895.   mechanism.
  8896.  
  8897.   The installation process is performed by an individual who initiates the
  8898.   installation process at their workstation and performs other tasks such as
  8899.   removing/replacing diskettes when prompted and rebooting the system when
  8900.   prompted. This individual would not be required to know the responses to
  8901.   detailed product installation questions. The answers to the product
  8902.   installation questions are kept in response files which contain specific
  8903.   responses to each installation question.  The response files are unique to
  8904.   each product.  Each product provides either a utility or a model which the
  8905.  
  8906.  
  8907.                                            OS/2 in a connected environment  118
  8908.  
  8909.  
  8910.  
  8911.  
  8912.  
  8913.  
  8914.  
  8915.  
  8916.  
  8917.   system administrator can use to generate the response files.  A procedure
  8918.   file which may be tailored is set up by a system administrator and stored on
  8919.   the code server.  This procedure file contains the commands which initiate
  8920.   product installations for other CID enabled products such as IBM LAN Server
  8921.   3.0.
  8922.  
  8923.   CID provides the ability to individually tailor PCs or groups of PCs.
  8924.   Previous solutions allowed for cloning, where software is distributed by
  8925.   duplicating the files across the network.  These duplicated files did not
  8926.   always fit individual workstation environments and sometimes required
  8927.   extensive changes from the local user.  With CID technology, individualized
  8928.   support is now enabled for OS/2 products and applications, so that users can
  8929.   automatically receive new software already configured for their computers.
  8930.   DOS and Windows users will continue to be supported in the short term by
  8931.   cloning, with integrated support for DOS clients to be provided by mid-1993.
  8932.  
  8933.   Among the products that are being delivered to implement the CID process are:
  8934.  
  8935.   o   LAN NetView Start, which allows administrators to manage and plan the
  8936.       configuration and installation of OS/2 software across the network.
  8937.  
  8938.   o   Network Transport Services (NTS/2), which provides NetBIOS connectivity
  8939.       and helps execute instructions generated by Start about installing
  8940.       software on the workstation.
  8941.  
  8942.   o   NetView Distribution Manager/2 (NetView DM/2), which will now provide
  8943.       expanded software distribution and installation capabilities, including
  8944.       change management and recovery, across standalone or interconnected LANs
  8945.       from a single site on the LAN.
  8946.  
  8947.   o   Enhancements to NetView Distribution Manager (NetView DM) for an MVS
  8948.       host, which, in conjunction with Netview DM/2, will now allow centrally
  8949.       controlled distribution and installation, as needed, of system software,
  8950.       user and vendor software, software changes and data files.
  8951.  
  8952.   o   Software Profile Management Facility, which works with NetView DM to
  8953.       store descriptions, or "profiles," of groups of users with similar
  8954.       characteristics, simplifying software installation and updates for a
  8955.       large number of workstations.
  8956.  
  8957.   All system and application software to be installed using this method must be
  8958.   CID enabled. OS/2 Version 2.0, OS/2 LAN Server 3.0, NTS/2 v1.0 and OS/2
  8959.   Extended Services Database Manager are all CID enabled.  Enabling consists of
  8960.   allowing installation to be redirected to a network drive, and the ability to
  8961.   provide user input through a response file.
  8962.  
  8963.   In addition to CID enabling our own products, IBM is encouraging vendors to
  8964.   provide CID enabled applications. IBM also announced agreements with
  8965.   independent software vendors (ISVs) who intend to enable selected products to
  8966.   take advantage of CID.  To date, a total of 164 vendors have committed their
  8967.   products to become CID-enabling, including Computer Associates, Describe,
  8968.   Lotus, Micrografx, Novell, Software Publishing Corp., Symantec and
  8969.   WordPerfect.
  8970.  
  8971.  
  8972.  
  8973.                                            OS/2 in a connected environment  119
  8974.  
  8975.  
  8976.  
  8977.  
  8978.  
  8979.  
  8980.  
  8981.  
  8982.  
  8983.   COMMITMENT TO OPEN STANDARDS
  8984.  
  8985.   One of the most important aspects of IBM's systems management strategy,
  8986.   including OS/2 systems management, is IBM's intention to esnure
  8987.   interoperability with a broad range of other vendors' systems management
  8988.   products. That is why the IBM systems management products aim to support
  8989.   industry standards such as CMIP and SNMP, and are based on the OSI Management
  8990.   Framework standards implemented by Hewlett Packard's Open View Network
  8991.   Management Server Product version 3.1. Thus the IBM tools will be able to
  8992.   take advantage of a programming interface consistent with the Open Software
  8993.   Foundation Distributed Management Environment (OSF/DME), as well as being
  8994.   part of SystemView, IBM's strategy for enterprise-wide systems management.
  8995.  
  8996.   OS/2 is the base platform for all of these management extensions, because it
  8997.   is only OS/2 that is extendable in this way, and can provide the support for
  8998.   these management functions (see "OS/2 for client-server" on page 109).  It is
  8999.   further illustration that OS/2 is the true client of choice, as well as the
  9000.   server.
  9001.  
  9002.  
  9003.   MIGRATION FROM EXISTING CONNECTIVITY PRODUCTS
  9004.   _____________________________________________
  9005.  
  9006.   IBM recognises that customers who wish to move towards the "super client"
  9007.   platform, still have signficant investments in older connectivity products.
  9008.   OS/2 2.0, as the integrating platform, provides a wide degree of support for
  9009.   DOS-based connectivity products, as well as supporting other existing
  9010.   networking products.
  9011.  
  9012.  
  9013.   NETWORKING ON OS/2
  9014.  
  9015.   Not only does OS/2 provide support for the two most popular network server
  9016.   products, NetWare and OS/2 LAN Server, but it is also a platform that runs a
  9017.   large range of the other major LAN software products, either as client, or
  9018.   server, or both.  Many of these products had support for OS/2 1.3, but new
  9019.   versions are being produced for OS/2 2.0 from vendors such as Banyan (who are
  9020.   developing a requester for their VINES network system) and Digital (who are
  9021.   planning support for their Pathworks product).  This makes OS/2 not only the
  9022.   client of choice in these networks, but also, for many of them, the base
  9023.   server platform.
  9024.  
  9025.   DOS requester products for some of these products can be supported, running
  9026.   in a VDM, though this often (as in the case of IBM DOS LAN Requester for OS/2
  9027.   LAN Server) requires booting the real version of DOS in a VDM (see "Virtual
  9028.   Machine Boot (VMB)" on page 51). Although DOS network drivers can often be
  9029.   run in a VDM, they can only provide services to that individual VDM, since
  9030.   there is usually no Virtual Device Driver for the protocol stack or the Media
  9031.   Access Control driver (eg 802.2). Obviously, this restriction is usual for
  9032.   OS/2 2.0 (see "DOS device drivers" on page 46), and in most cases causes no
  9033.   loss of function where a device is dedicated to a single application (as it
  9034.   usually is for fax cards and scanners). However, it tends to defeat the
  9035.   purpose of networks to have the resources available to only one application,
  9036.   and therefore OS/2-based network requesters and drivers are recommended
  9037.   whenever they are available (many vendors already have or are working on OS/2
  9038.  
  9039.  
  9040.                                            OS/2 in a connected environment  120
  9041.  
  9042.  
  9043.  
  9044.  
  9045.  
  9046.  
  9047.  
  9048.  
  9049.  
  9050.   2.0 requester code for their server product; contact your vendor for
  9051.   details).
  9052.  
  9053.  
  9054.   DOS COMMUNICATIONS APPLICATIONS UNDER OS/2
  9055.  
  9056.   Because of OS/2's extensive compatibility with existing DOS and Windows
  9057.   applications, it can even run DOS-based communications applications. This
  9058.   includes not only popular asynchronous communications products such as
  9059.   ProComm Plus, but also IBM's own DOS 3270 and 5250 products, Personal
  9060.   Communications/3270 and DOS PC Support/400. The communications aspects are
  9061.   straightforward, as OS/2 is designed to handle multiple concurrent protocols
  9062.   and even background communications with more reliability than is possible
  9063.   under DOS extender environments such as DOS/Windows 3.x (see "Virtual Device
  9064.   Drivers (VDDs)" on page 24 for more discussion of how it does this).
  9065.  
  9066.   However, both Personal Communications/3270 and DOS PC Support/400 require
  9067.   some customisation before they can be made to run satisfactorily under OS/2
  9068.   2.0:  the first requires tailoring the DOS Settings, the second requires
  9069.   booting the "real" DOS in a VDM to support special functions like shared
  9070.   folders (which uses a block device driver) - see Appendices A and B in OS/2
  9071.                                                                          ____
  9072.   Technical Compendium - Volume 2: DOS and Windows Environment (GG24-3731-00)
  9073.   ____________________________________________________________
  9074.   for more details.
  9075.  
  9076.   There are, even with these settings, some restrictions when running these
  9077.   applications:
  9078.  
  9079.   o   File transfer must be executed from the same VDM as the emulator runs in
  9080.       (you may need to enable session switching to the VDM DOS prompt via the
  9081.       DOS Setting KBD_CTRL_BYPASS)
  9082.  
  9083.   o   Limitations in PC Support function (only Basic DOS, not Extended DOS
  9084.       support; other DOS, Windows or OS/2 applications cannot access PC
  9085.       Support/400 facilities)
  9086.  
  9087.   o   Sharing of Token-Ring Adapter (if using Token Ring rather than DFT or
  9088.       Twinax) with other applications is not possible without an 802.2 VDD.
  9089.       This restriction disappears if the 802.2 VDD from NTS/2 is installed (see
  9090.       "DOS device drivers" on page 46 and "IBM Network Transport Services/2" on
  9091.       page 115).
  9092.  
  9093.   Because of these restrictions, it is recommended to use OS/2 versions of
  9094.   these emulators and communications functions, which appear in Extended
  9095.   Services for OS/2, because of the higher function, easier installation and
  9096.   access of resources across DOS, Windows and OS/2 applications. Nevertheless,
  9097.   the support of most functions for the DOS applications under OS/2 enables,
  9098.   for many users, a more than adequate migration. This is in contrast to some
  9099.   of the press reports concering Windows/NT, which warn that compatibility with
  9100.   existing DOS-based connectivity programs and device drivers is likely to be
  9101.   extremely limited, forcing users to consider buying new connectivity software
  9102.   if it is available by the time Windows/NT ships.(23) This is, of course, one
  9103.  
  9104.  
  9105.  
  9106.  
  9107.  
  9108.                                            OS/2 in a connected environment  121
  9109.  
  9110.  
  9111.  
  9112.  
  9113.  
  9114.  
  9115.  
  9116.  
  9117.  
  9118.   of the many compatibility issues that have to be encountered when a new
  9119.   platform is introduced.
  9120.  
  9121.  
  9122.  
  9123.  
  9124.  
  9125.  
  9126.  
  9127.  
  9128.  
  9129.  
  9130.  
  9131.  
  9132.  
  9133.  
  9134.  
  9135.  
  9136.  
  9137.  
  9138.  
  9139.  
  9140.  
  9141.  
  9142.  
  9143.  
  9144.  
  9145.  
  9146.  
  9147.  
  9148.  
  9149.  
  9150.  
  9151.  
  9152.  
  9153.  
  9154.  
  9155.  
  9156.  
  9157.  
  9158.  
  9159.  
  9160.  
  9161.  
  9162.  
  9163.  
  9164.  
  9165.  
  9166.  
  9167.   ---------------
  9168.  
  9169.   (23) See PC Week July 27, 1992 - page 1. The lack of support for DOS device
  9170.            _______
  9171.       drivers is confirmed in the Microsoft document "Microsoft Windows NT
  9172.       Operating System".
  9173.  
  9174.  
  9175.                                            OS/2 in a connected environment  122
  9176.  
  9177.  
  9178.  
  9179.  
  9180.  
  9181.  
  9182.  
  9183.  
  9184.  
  9185.   FUTURES
  9186.   _______
  9187.  
  9188.  
  9189.  
  9190.  
  9191.  
  9192.   It is of course important, as well as examining the strengths of OS/2 2.0,
  9193.   the current release, to look at the future of OS/2 and some of the areas in
  9194.   which it will develop.
  9195.  
  9196.   OS/2 will continue to evolve to satisfy new requirements and bring forward
  9197.   new technologies. With OS/2 2.0 we have designed the system not just for
  9198.   1992, but as a platform for many developments throughout the 90s.
  9199.  
  9200.   The OS/2 32-bit architecture (OS/2 2.x) represents the base for the immediate
  9201.   future. OS/2 2.0 has the functions that customers need today, and has been
  9202.   designed to carry through to the next major steps, into the world of
  9203.   object-oriented technology and distributed systems. This section examines
  9204.   some of the areas in which OS/2 will be enhanced to meet the needs not only
  9205.   of today's "super client" (see "The changing PC environment" on page 1 and
  9206.   "OS/2 for client-server" on page 109), but of the long term vision of the
  9207.   "window on the world."  The OS/2 direction is towards a single client system,
  9208.   encompassing existing investments and harnessing new technologies like object
  9209.   and multimedia, and a scalable, robust server platform exploiting the
  9210.   increasing power of the hardware, and distributed networking support based on
  9211.   open standards.
  9212.  
  9213.  
  9214.   OS/2 1992 DEVELOPMENTS
  9215.   ______________________
  9216.  
  9217.   By the middle of 1992, IBM had delivered:
  9218.  
  9219.   o   OS/2 2.0 base system
  9220.   o   Extended Services for OS/2
  9221.   o   OS/2 LAN Server 2.0
  9222.  
  9223.   By the end of 1992 and into early 1993, IBM intends to consolidate on the
  9224.   early success of OS/2 2.0, by delivering updates to address the following
  9225.   issues:
  9226.  
  9227.   o   improved device driver support
  9228.  
  9229.   o   enhanced "Seamless Windows" capability
  9230.  
  9231.   o   performance and memory enhancements
  9232.  
  9233.   o   enhanced WIN-OS/2 support
  9234.  
  9235.   o   extensions for multimedia and pen
  9236.  
  9237.   The current hybrid 16-/32-bit PM graphics engine will be replaced by more
  9238.   32-bit technology.  This will allow at the same time 32-bit screen device
  9239.   drivers to be delivered for VGA, SVGA and XGA.  It is intended that these
  9240.   drivers will not only improve screen performance, but also deliver high
  9241.  
  9242.  
  9243.                                                                    Futures  123
  9244.  
  9245.  
  9246.  
  9247.  
  9248.  
  9249.  
  9250.  
  9251.  
  9252.  
  9253.   resolution "Seamless Windows"  capability for resolutions above VGA (see
  9254.   "High resolution support" on page 72). IBM plans to update WIN-OS/2 function
  9255.   to include Windows 3.1 features.  Work is continuing to reduce the memory
  9256.   requirements of the system, and to improve performance in low-end
  9257.   configurations.  Such work will produce performance benefits in all
  9258.   configurations.
  9259.  
  9260.   Further multimedia extensions (MMPM/2) releases will ship in 1993, adding
  9261.   video and image capabilities to the audio functions shipped in the first
  9262.   release, which became available in June 1992.  OS/2 Pen extensions and a
  9263.   developers' toolkit are planned for late 1992 or early 1993.
  9264.  
  9265.   During the same period, IBM will produce device adaptation kits to ensure
  9266.   that more drivers for disks, displays and printers will appear from third
  9267.   party vendors.  Some of these may be available via IBM and public bulletin
  9268.   boards.  If you have a query about a specific device, you are advised to
  9269.   contact the vendor in question first, to understand their development
  9270.   timeframes and proposed distribution methods.
  9271.  
  9272.   Many of the individual changes described above will be made available in a
  9273.   service pack before the end of 1992. Some selective fixes are already being
  9274.   made available through bulletin boards and via Compuserve.  Other function,
  9275.   such as the WIN-OS/2 3.1 support, is currently in beta test.
  9276.  
  9277.   These are just the enhancements in the base product. Also planned are a
  9278.   series of enhancements to the systems extensions, including a new release of
  9279.   OS/2 LAN Server, enhancements to Communications Manager and the LAN Enabler,
  9280.   as well as further developments in automated configuration, installation and
  9281.   distribution. These will take place between the end of 1992 and early 1993.
  9282.  
  9283.  
  9284.   32-BIT SYSTEM EXTENSIONS (COMMUNICATIONS, DATABASE, LAN)
  9285.   ________________________________________________________
  9286.  
  9287.   OS/2 2.0 is the base for Extended Services for OS/2, which provides a
  9288.   powerful set of communications and database functions, and for OS/2 LAN
  9289.   Server version 2.0.  The first releases of Extended Services for OS/2 and LAN
  9290.   Server (versions 1.0 and 2.0 respectively) on the OS/2 2.0 base are 16-bit
  9291.   only, in order to provide the same system on both OS/2 2.0 and 1.x.  This
  9292.   will allow customers to standardise on common systems extensions across mixed
  9293.   1.x and 2.0 (16- and 32-bit) bases.
  9294.  
  9295.   However, future releases of both Extended Services for OS/2 and LAN Server
  9296.   will be full 32-bit products, taking advantage of the 32-bit environment to
  9297.   allow even better performance, concurrency and throughput.  In addition,
  9298.   Novell will provide a 32-bit version of NetWare on the OS/2 2.0 base,
  9299.   fulfilling the commitment made in the IBM-Novell February 1991 joint
  9300.   announcement.
  9301.  
  9302.   Using these 32-bit extensions will allows customers to fully exploit 32-bit
  9303.   performance and throughput across the entire system.
  9304.  
  9305.  
  9306.  
  9307.  
  9308.  
  9309.  
  9310.                                                                    Futures  124
  9311.  
  9312.  
  9313.  
  9314.  
  9315.  
  9316.  
  9317.  
  9318.  
  9319.  
  9320.   MULTIMEDIA
  9321.   __________
  9322.  
  9323.   As applications become more sophisticated, multimedia technology embedded in
  9324.   mainstream applications as well as in separate applications will become
  9325.   increasingly important.
  9326.  
  9327.   OS/2 is already an excellent platform for multimedia, as products such as
  9328.   IBM's Audio Visual Connection (AVC), M-Motion and the ActionMedia II
  9329.   Developer's Toolkit have shown. But the 32-bit OS/2 environment allows easier
  9330.   development of more sophisticated multimedia applications, and will give the
  9331.   potential to include multimedia features in many other applications, thus
  9332.   making its use more widespread. In particular, the multi-tasking and
  9333.   overlapped I/O capabilities of OS/2 will allow the kind of applications to be
  9334.   developed that are not feasible under environments like Windows, that are
  9335.   based on DOS.
  9336.  
  9337.   Multimedia Presentation Manager/2 (MMPM/2) is a series of extensions to OS/2
  9338.   enabling it to handle multiple media (audio, images and video) in a
  9339.   consistent way. Current DOS, Windows and OS/2 multimedia applications (IBM
  9340.   examples include Storyboard Live!, AVC and Linkway) all include their own
  9341.   multimedia device support and use their own unique data formats. MMPM/2
  9342.   provides a level of standardisation by offering:
  9343.  
  9344.   o   a hardware-independent layer, the Media Control Interface (MCI), which
  9345.       allows new functions, devices and data formats to be added in a modular
  9346.       way
  9347.  
  9348.   o   a common data specification (RIFF) agreed by both IBM and Microsoft, and
  9349.       common between the OS/2 and Windows multimedia extensions
  9350.  
  9351.   MMPM/2 provides data streaming and synchronisation services to enable easy
  9352.   management of and transfer of data between devices. MMPM/2 also presents a
  9353.   series of "applets" which control and play devices like MIDI devices, digital
  9354.   audio, and Compact Disc.  The Multimedia Presentation Manager Toolkit/2
  9355.   (MMPMTK/2) is also available to help programmers write OS/2 multimedia
  9356.   applications. It includes language bindings for C and MASM, sample programs
  9357.   and documentation. The MCI has both a procedural message interface for C and
  9358.   MASM, and an interactive string interface. The latter allows easy
  9359.   incorporation of multimedia function into a variety of applications
  9360.   (including productivity applications like spreadsheets and word processors).
  9361.  
  9362.   The multimedia extensions for Windows will run under the WIN-OS/2
  9363.   environment, but users and developers of multimedia may prefer to use the
  9364.   OS/2 facilities, which provide as wide a range of device support, data
  9365.   compatibility through formats like RIFF, but greater function, performance,
  9366.   and device utilisation.  For example, OS/2's support for sharing of media
  9367.   devices between multimedia applications is superior to that possible under
  9368.   Windows.
  9369.  
  9370.   Overall, OS/2 provides a better multimedia environment that Windows, because
  9371.   of:
  9372.  
  9373.  
  9374.  
  9375.  
  9376.  
  9377.                                                                    Futures  125
  9378.  
  9379.  
  9380.  
  9381.  
  9382.  
  9383.  
  9384.  
  9385.  
  9386.  
  9387.   o   Better encapsulation of system resources by OS/2.  Under Windows 3.x the
  9388.       programmer needs to be aware of directly controlling the system
  9389.       resources.
  9390.  
  9391.   o   Better stability of OS/2, especially in the area of multi-tasking which
  9392.       provides improved coexistence of applications with less coding effort.
  9393.       For example, yield points required under Windows 3.x are not necessary
  9394.       with OS/2.
  9395.  
  9396.   o   Better graphics, such as Bezier functions, on OS/2.
  9397.  
  9398.   o   Better performance, through use of the flat memory model and pre-emptive
  9399.       multi-tasking.
  9400.  
  9401.   o   more capacity for large data objects (image, sound) through the flat
  9402.       memory model
  9403.  
  9404.   The combination of better multi-tasking and the support for threads leads to
  9405.   better synchronisation of the multiple data streams needed for multimedia.
  9406.   An example is synchronising digital audio with analog video for a firing
  9407.   cannon or a talking head.  OS/2 "fast threads" are an enhancement
  9408.   specifically added to improve the performance of threads for multimedia
  9409.   applications.  In Windows 3.x, synchronisation is left entirely to the
  9410.   application. Developers have to write it themselves, thus increasing
  9411.   development time and cost. OS/2 controls multiple accesses to resources more
  9412.   effectively than Windows, so that audio and video can run without noticeable
  9413.   interruption while loading other applications. Such seamless integration of
  9414.   multimedia into the normal business desktop is more difficult to achieve in
  9415.   an environment like Windows, that does not provide pre-emptive multi-tasking.
  9416.  
  9417.   Multimedia applications frequently need to deal with large memory objects for
  9418.   bit maps, audio streams, or even streams of bit maps. These objects are much
  9419.   easier to manipulate in the flat 32-bit memory model provided by OS/2 2.0.
  9420.  
  9421.   All of these features will make OS/2 2.0 the multimedia platform of choice.
  9422.  
  9423.   IBM and Apple announced, in July 1991, the two companies' intention to
  9424.   collaborate on multimedia standards.  In October 1991, IBM and Apple
  9425.   announced the formation of an independent, joint venture company, Kaleida, to
  9426.   develop multimedia specifications and technologies.  This brings two of the
  9427.   leaders in the multimedia industry together, and increases the possibility of
  9428.   a broad-based industry standard.
  9429.  
  9430.  
  9431.   PEN-BASED COMPUTING
  9432.   ___________________
  9433.  
  9434.   Pen-based computing is likely to be an important means of expanding the use
  9435.   of computers in the next few years.  IBM has explored the use of Go
  9436.   Corporation's PenPoint operating system for dedicated pen-based portable
  9437.   systems.  IBM believes that some new applications may require the use of
  9438.   technology specifically designed to exploit the pen interface.  Nevertheless,
  9439.   applications for existing systems may also benefit from pen-based extensions,
  9440.   particularly on desktop machines, where the pen may prove, in some
  9441.   circumstances, to be a better input tool than those currently available.  IBM
  9442.  
  9443.  
  9444.                                                                    Futures  126
  9445.  
  9446.  
  9447.  
  9448.  
  9449.  
  9450.  
  9451.  
  9452.  
  9453.  
  9454.   is exploring these options through technology which we have demonstrated
  9455.   publicly, using pen extensions for OS/2.  In future, as the technology
  9456.   develops, the tablet and desktop systems will both offer OS/2 and Pen
  9457.   extensions.  It shows once again how OS/2 is the base for most of IBM's
  9458.   innovative new technology in software.
  9459.  
  9460.  
  9461.   SYSTEMS MANAGEMENT
  9462.   __________________
  9463.  
  9464.   Some companies in the desktop marketplace operate only in the PC arena, and
  9465.   their strategies display little understanding of the difficulties of
  9466.   configuring, maintaining and managing large volumes of PCs in a highly
  9467.   connected environment. As companies' use of PCs grows, and their importance
  9468.   in the corporate network increases, systems management of these distributed
  9469.   PCs becomes of fundamental importance. The business platform of the 90s will
  9470.   need to be a manageable platform, else the costs of keeping the system
  9471.   running will endanger the benefits.
  9472.  
  9473.   There is already a range of products available for OS/2 to support the
  9474.   systems manager, including NetView Distribution Manager/2 and LAN Automated
  9475.   Distribution/2 to help automated installation, SPM/2 for performance and
  9476.   resource management, and DCAF for remote diagnosis (see "Systems management"
  9477.   on page 116).  OS/2 will also become a full participant in IBM's SystemView
  9478.   strategy and more products will be delivered to support the process of fault
  9479.   reporting, remote diagnosis, asset management, software delivery and
  9480.   maintenance.  It is easier to provide this support on a true multi-tasking
  9481.   platform, which can accommodate administrative processes or threads capturing
  9482.   management data, while processing its normal local applications.  The
  9483.   limitations of DOS (and therefore of Windows) confine the function that can
  9484.   be provided to such systems.
  9485.  
  9486.  
  9487.   PRESENTATION MANAGER FUTURES
  9488.   ____________________________
  9489.  
  9490.   PM is the strategic SAA API for GUI development. IBM is fully committed to
  9491.   its continued support and future enhancements. It has not been announced yet
  9492.   how and in what timeframe the following will be delivered in product form,
  9493.   but they represent some of the areas for future development:
  9494.  
  9495.  
  9496.   32-BIT IMPLEMENTATION
  9497.  
  9498.   It is planned that the internals of PM will be migrated to a full 32-bit
  9499.   implementation.  (In OS/2 2.0, a full 32-bit API is already provided - future
  9500.   changes simply affect the way PM works internally).  This will give improved
  9501.   performance (it is anticipated that this change may improve performance for
  9502.   many applications running on the Workplace Shell desktop).  The first stage
  9503.   of this is being provided in the Service Pack available by the end of 1992,
  9504.   with the 32 bit PM Graphics Engine. Later work will move the PMWIN subsystem
  9505.   to a full 32 bit implementation.  In addition, parts of PM are currently
  9506.   written in 16-bit Assembler, and are being rewritten in C for greater
  9507.   portability in preparation for a move to a portable version of OS/2.
  9508.  
  9509.  
  9510.  
  9511.  
  9512.                                                                    Futures  127
  9513.  
  9514.  
  9515.  
  9516.  
  9517.  
  9518.  
  9519.  
  9520.  
  9521.  
  9522.   CONTINUING OBJECT-ORIENTED DIRECTION
  9523.  
  9524.   PM already exhibits some characteristics of an object-oriented environment,
  9525.   especially in programming for the Workplace Shell and the System Object model
  9526.   (SOM) - see "System Object Model (SOM)" on page 103 . This direction will
  9527.   continue, not only in the method of programming, but also in the user
  9528.   interface, driven by the increasing object-orientation of SAA Common User
  9529.   Access (CUA). SOM itself will evolve to offer increasing object content to
  9530.   OS/2.
  9531.  
  9532.  
  9533.   DISTRIBUTED PM
  9534.  
  9535.   This technology will allow an OS/2 PM application to be distributed across a
  9536.   network to other OS/2 PM systems, to X Terminals or workstations running the
  9537.   X Window system, or to DOS/Windows machines running an X server.  This means
  9538.   that 32-bit OS/2 PM applications will be made available to 286 based
  9539.   DOS/Windows or OS/2 1.x PCs, and X terminals or workstations connected to the
  9540.   OS/2 PM application via a network using the X11 protocol.  In essence, the
  9541.   OS/2 PM application acts, in X terminology, as an X client.  X server
  9542.   function (where an application running on a UNIX RISC machine can appear in a
  9543.   window on a PC running OS/2) has already been delivered with TCP/IP for OS/2
  9544.   v1.2.  These developments allow OS/2 to integrate more fully into the open
  9545.   systems world as well as providing a wider user base for OS/2 PM
  9546.   applications.
  9547.  
  9548.  
  9549.   OBJECT-ORIENTED ENVIRONMENTS
  9550.   ____________________________
  9551.  
  9552.   In looking ahead to the future, a key challenge to the IT industry, customer
  9553.   and commercial developers alike, is the ability to deliver software solutions
  9554.   in a more timely and cost effective manner.  Object-oriented (OO)
  9555.   technologies have proven to make software development and maintenance easier,
  9556.   faster, less prone to error, and therefore less expensive.  Object-oriented
  9557.   programming is now being endorsed by the software industry as a more
  9558.   productive programming approach, encouraging greater re-use of code.  It is
  9559.   also more suitable for object-oriented user interfaces, like OS/2 2.0's
  9560.   Workplace Shell.
  9561.  
  9562.   One of IBM's goals for Personal Systems operating systems is to provide an
  9563.   object-oriented development and operational environment that is customisable,
  9564.   allowing developers and users to take incremental advantage of new
  9565.   technologies, while protecting their investments in existing applications.
  9566.  
  9567.   We are well on our way to achieving this with OS/2 2.0.  OS/2 itself already
  9568.   exhibits many aspects of object-oriented programming, particularly in the
  9569.   System Object model (SOM), the object model that underpins the Workplace
  9570.   Shell (see "System Object Model (SOM)" on page 103). Furthermore, the
  9571.   Workplace Shell itself has many characteristics of an object-oriented user
  9572.   interface (see "An INFORMATION-oriented user interface" on page 89)
  9573.  
  9574.   IBM also intends to encourage object-oriented development for OS/2 2.0.  OS/2
  9575.   will continue to be enhanced with extensions to improve support for
  9576.   object-oriented programming languages, as well as enhancing SOM.  SOM is a
  9577.  
  9578.  
  9579.                                                                    Futures  128
  9580.  
  9581.  
  9582.  
  9583.  
  9584.  
  9585.  
  9586.  
  9587.  
  9588.  
  9589.   technology for packaging software objects.  It allows objects to interoperate
  9590.   without requiring that they be written in the same language or compiled
  9591.   together.  SOM is the key element which allows applications to integrate with
  9592.   the desktop facilities of the Workplace Shell.  It supports objects written
  9593.   in C today.  C++ and other languages will be supported in the future.  IBM
  9594.   intends to extend SOM, to provide application frameworks to further increase
  9595.   programmer productivity, and to provide tools to assist end users with visual
  9596.   programming (assembly of objects).  IBM will enhance SOM to be compliant with
  9597.   the Object Management Group's (OMG's) Common Request Broker Architecture
  9598.   (CORBA). OMG is the leading object technology consortium that has published
  9599.   CORBA.  Adherence to this standard will provide management for distributed
  9600.   heterogeneous networks comprised of multivendor operating platforms.
  9601.  
  9602.   Customers can start to build applications with object-oriented tools today
  9603.   under OS/2, not only with C using SOM, but also with products like Enfin/2
  9604.   and Digitalk's Smalltalk/V PM . Furthermore, Borland have announced an
  9605.   agreement with IBM under which Borland will supply their C++ object-oriented
  9606.   development tools for OS/2 2.0, thus helping programmers who want to use C++
  9607.   for object-oriented development under OS/2 2.0.  Other object-oriented
  9608.   development tools vendors are also endorsing the OS/2 environment by
  9609.   supplying their tools for OS/2 2.0.
  9610.  
  9611.   IBM has made significant investments of its own in object-oriented
  9612.   programming, of which SOM and the Workplace Shell are clear examples. Through
  9613.   alliances, IBM is supplementing its own technology with that of the leaders
  9614.   in the object-oriented industry, in order to provide for the future
  9615.   development of OS/2.
  9616.  
  9617.   The agreement between IBM and Apple, announced in October 1991, included both
  9618.   companies' intention to form a joint venture company, Taligent, to develop a
  9619.   next-generation operating environment based entirely on object-oriented (OO)
  9620.   technology. IBM and Apple had independently come to the conclusion that
  9621.   object-oriented technology is key to solving the ever-increasing application
  9622.   development challenge. The two companies had been involved in developing
  9623.   object-oriented technology in-house for some time. One of the key objectives
  9624.   in forming Taligent was to bring the benefits of this technology to customers
  9625.   sooner than either partner could have achieved alone.
  9626.  
  9627.   IBM will licence Taligent's system, as will Apple and other hardware system
  9628.   manufacturers. IBM and Apple are both contributing technology to the Taligent
  9629.   venture. Among Apple's contributions was their "Pink" technology and among
  9630.   IBM's offerings was SOM.
  9631.  
  9632.   Taligent's technology will be used separately by both Apple and IBM as the
  9633.   core of new products expected in the mid- to late-90s.  These products will
  9634.   operate in parallel to, and complement the evolution of, OS/2 and AIX.  Over
  9635.   time IBM intends to utilize a subset of Taligent's object services and
  9636.   frameworks to benefit OS/2 application development and enable future
  9637.   compatibility with Taligent's environment.
  9638.  
  9639.   Taligent's system software environment will emerge in the mid-90s, targeted
  9640.   at specific market segments that can readily leverage this technology. Once
  9641.   the Taligent system is available, IBM intends to create an OS/2 "personality"
  9642.  
  9643.  
  9644.  
  9645.                                                                    Futures  129
  9646.  
  9647.  
  9648.  
  9649.  
  9650.  
  9651.  
  9652.  
  9653.  
  9654.  
  9655.   as a vehicle for protecting application investments. This will provide a path
  9656.   for customers who want to take advantage of the Taligent system.
  9657.  
  9658.   Therefore, in the mid to late 90s, OS/2 and the new object-oriented
  9659.   environment will co-exist, and customers will be able to choose between an
  9660.   OS/2 system or a full object-oriented environment.  But even then, not all
  9661.   customers may need or want to adopt a full object-oriented environment, and
  9662.   will stay with OS/2 as OS/2's object-oriented content increases.  OS/2 will
  9663.   remain the mainstream IBM Personal Systems operating system, and will
  9664.   continue to be developed and enhanced through the 90s.  Since OS/2 itself
  9665.   will become increasingly more object-oriented, and its applications will run
  9666.   in the new environment, evolution towards a full object-oriented environment
  9667.   can be made gradually and seamlessly over time.  IBM believes there will
  9668.   continue to be many customer and hardware requirements that demand OS/2,
  9669.   after the availability of Taligent.
  9670.  
  9671.   +---------------------------------------------------------------------------+
  9672.   |                                                                           |
  9673.   |                                                                           |
  9674.   +---------------------------------------------------------------------------+
  9675.   Figure 29. OS/2 - an object-oriented future
  9676.  
  9677.   This approach is possible because OS/2 2.0 already contains many
  9678.   object-oriented features, such as the System Object Model, and the Workplace
  9679.   Shell user interface.  Because of OS/2's object-oriented content, and because
  9680.   OS/2 applications will continue to run in the new system, OS/2 is the
  9681.   platform best suited to evolve towards a fully object-oriented environment.
  9682.  
  9683.   Some have tried to suggest that IBM's direction towards a future
  9684.   object-oriented environment in some way threatens OS/2.  The opposite is the
  9685.   case:  the IBM-Apple announcement endorses and strengthens the OS/2 strategy.
  9686.   Since OS/2 already displays significant object-oriented content, and since
  9687.   OS/2 applications will be fully supported in the new object-oriented
  9688.   environment, it follows that using, programming for and deploying OS/2 is an
  9689.   excellent way to secure an object-oriented direction.  If the future is
  9690.   object-oriented, OS/2 is the way to get there.
  9691.  
  9692.  
  9693.   DISTRIBUTED COMPUTING
  9694.   _____________________
  9695.  
  9696.   IBM recognises the increasing importance of open networking, linking to mixed
  9697.   vendor environments, both clients and servers.  In May 1990 the Open Software
  9698.   Foundation (OSF) announced the Distributed Computing Environment (DCE), a
  9699.   group of technologies aimed at simplifying the work for users and application
  9700.   developers in these complex computing environments.  In endorsing DCE, IBM
  9701.   subsequently announced not only support for DCE on AIX but also the intent to
  9702.   extend the Systems Application Architecture (SAA) to incorporate key elements
  9703.   of DCE.  As one of the SAA systems, OS/2 will be a platform for the delivery
  9704.   of the key elements of DCE.
  9705.  
  9706.   For those not familiar with DCE, it consists of a number of key technologies.
  9707.   Of these, six are of particular interest for distributed environments
  9708.   including OS/2, and can be summarised as follows:
  9709.  
  9710.  
  9711.  
  9712.                                                                    Futures  130
  9713.  
  9714.  
  9715.  
  9716.  
  9717.  
  9718.  
  9719.  
  9720.  
  9721.  
  9722.   REMOTE PROCEDURE CALL (RPC)
  9723.             The basic notion is that procedures called by an application may
  9724.             actually be run on a computer somewhere else in the network. The
  9725.             RPC mechanism takes care of the communications details so that
  9726.             writing distributed applications approaches the simplicity of
  9727.             applications on a single machine.
  9728.  
  9729.   DISTRIBUTED NAMING SERVICE
  9730.             This provides a single naming model throughout the distributed
  9731.             environment.  Resources such as servers, files, disks, or print
  9732.             queues are identified by name independent of the physical location
  9733.             in the network. Full X.500 support is provided.
  9734.  
  9735.   TIME SERVICE
  9736.             Many distributed applications need a single time reference to
  9737.             properly determine event sequencing and duration.  The time service
  9738.             provides a mechanism for synchronising each computer in the network
  9739.             to a recognised time standard.
  9740.  
  9741.   SECURITY SERVICE
  9742.             Provides the network with authentication, authorisation, and user
  9743.             account management.  Authentication validates the identity of a
  9744.             user or service to prevent fraudulent requests.  Authorisation is
  9745.             the process of determining whether an authenticated user should
  9746.             have access to a resource.  These facilities are made available
  9747.             through a secure communications capability provided by the RPC.
  9748.  
  9749.   THREADS SERVICE
  9750.             A facility to support concurrent programming, much like threads in
  9751.             OS/2.  This will be used by other DCE components to implement their
  9752.             services.
  9753.  
  9754.   DISTRIBUTED FILE SYSTEM
  9755.             Joins the file systems of the nodes in the network through a
  9756.             consistent interface that makes global file access as easy as local
  9757.             file access.  The Distributed File System should provide users with
  9758.             a uniform name space, file location transparency, and high
  9759.             availability.
  9760.  
  9761.   IBM's intention is that OS/2 LAN Server will evolve towards a full
  9762.   distributed LAN system, providing DCE services as described above. OS/2 LAN
  9763.   Server will incorporate architectures and industry standards which fully meet
  9764.   customer requirements and will include technologies such as:
  9765.  
  9766.   o   Distributed Relational Database Architecture (DRDA)
  9767.   o   Open Software Foundation (OSF) Distributed Management Environment (DME)
  9768.   o   OSF's Distributed Computing Environment (DCE)
  9769.   o   Transarc/ENCINA Online Transaction Processing
  9770.  
  9771.   OS/2 is a key part of IBM's plans for the delivery of key elements of
  9772.   distributed computing. IBM has already shown technology demonstrations of
  9773.   OS/2 participating in a distributed environment along with AIX.  Distributed
  9774.   computing support will make OS/2 an even more open platform, as both a client
  9775.   and a server.
  9776.  
  9777.  
  9778.                                                                    Futures  131
  9779.  
  9780.  
  9781.  
  9782.  
  9783.  
  9784.  
  9785.  
  9786.  
  9787.  
  9788.   AIX INTEROPERABILITY
  9789.   ____________________
  9790.  
  9791.   IBM is committed to providing greater co-existence and interoperability
  9792.   between SAA and AIX systems.  OS/2 will participate in this strategy.  This
  9793.   does not involve merging function, but retaining the unique strengths of the
  9794.   two systems.  The aim is to make it easier for customers to build mixed
  9795.   networks combining the best of both OS/2 and AIX, RISC and Intel hardware,
  9796.   according to their applications.
  9797.  
  9798.   Part of this strategy involves putting compatible key systems components,
  9799.   such as relational database, on both platforms. As well as providing a 32-bit
  9800.   database on OS/2 in future, IBM will also provide a compatible 32-bit
  9801.   database for AIX, and support client operations between AIX and OS/2
  9802.   databases. Another element of the strategy is to improve co-existence by
  9803.   providing networking support. Products like TCP/IP for OS/2, already exist to
  9804.   fulfil this requirement, and IBM intends to strengthen OS/2-AIX
  9805.   inter-networking in future through DCE, DME and other technologies.
  9806.  
  9807.  
  9808.   FUTURE WINDOWS COMPATIBILITY
  9809.   ____________________________
  9810.  
  9811.   OS/2 2.0 supports Windows 3.0 applications by including modified Windows code
  9812.   under the cross-licencing agreement with Microsoft. The March 1992 release of
  9813.   OS/2 2.0 does not contain support for Windows 3.1, since at the time when
  9814.   OS/2 2.0 shipped, Windows 3.1 was not available.  It would be impossible to
  9815.   plan support for a product that had not shipped by the time OS/2 2.0 was
  9816.   available.  IBM plans, and is able, to support Windows 3.1 at a later point,
  9817.   if it proves necessary (see "OS/2 1992 developments" on page 123 and "Windows
  9818.   3.1" on page 74).  In fact, on April 7th, 1992, the day after Microsoft
  9819.   shipped Windows 3.1, IBM demonstrated the Windows 3.1 Program Manager running
  9820.   under OS/2 2.0.
  9821.  
  9822.   It is important to understand that OS/2 2.0 supports Windows APPLICATIONS,
  9823.                                                                ____________
  9824.   not Windows.  Windows support in OS/2 is only relevant for the Windows
  9825.   applications that OS/2 customers wish to use.  IBM continues to licence the
  9826.   DOS/Windows source code, and has rights to all source code in development
  9827.   until September 1993, in order to continue to provide support for 16-bit
  9828.   Windows applications.  Microsoft has not made its future plans clear on
  9829.   16-bit Windows application support, but it may be difficult for Microsoft to
  9830.   persuade its customers to accept future versions of 16-bit Windows that do
  9831.   not support today's 16-bit Windows applications.  IBM considers that it has
  9832.   the ability to provide support for today's generation of Windows 16-bit
  9833.   applications, as long as is necessary.
  9834.  
  9835.   There are, as yet, no 32-bit Windows applications available, because
  9836.   Microsoft does not plan to ship its first 32-bit Windows platform until some
  9837.   time in 1993.  However, there are a growing number of OS/2 applications:
  9838.   hundreds are already shipping, and over 1000 have been announced for shipment
  9839.   by the end of 1992 or early 1993.  OS/2 will therefore have the largest
  9840.   number of 32-bit applications for some time.  Therefore, the trend in the
  9841.   marketplace towards real 32-bit applications, and the continuing success of
  9842.   OS/2, may make Windows support a moot point.  The issue may be rather what
  9843.   levels of OS/2 32-bit compatibility can Microsoft build into their future
  9844.   products.
  9845.  
  9846.  
  9847.                                                                    Futures  132
  9848.  
  9849.  
  9850.  
  9851.  
  9852.  
  9853.  
  9854.  
  9855.  
  9856.  
  9857.   Since many of the applications currently available or under development for
  9858.   16-bit Windows 3.x will also be available for 32-bit OS/2, future Windows
  9859.   compatibility may cease to be an issue, since running native OS/2 versions of
  9860.   applications will be superior to running the Windows versions even in
  9861.   WIN-OS/2 (see "Porting Windows applications to OS/2" on page 75).  Support
  9862.   for Windows applications is intended mainly as a migration to OS/2 2.0, but
  9863.   investment in Windows applications should not be considered a long-term
  9864.   strategy for customers planning an OS/2 future.  Many vendors now understand
  9865.   the need to provide real OS/2 versions of their software for competitiveness'
  9866.   sake, and are not relying on running their Windows version under OS/2 to
  9867.   address the OS/2 opportunity properly.  Furthermore, the evidence suggests
  9868.   (see "Windows applications" on page 57) that Windows applications have not
  9869.   made anything like the same impact on the market as Windows itself.  IBM will
  9870.   continue to monitor the continued need for supporting Windows applications,
  9871.   and will exercise its skills and intellectual rights to do what its customers
  9872.   require.
  9873.  
  9874.  
  9875.   PORTABLE VERSION OF OS/2
  9876.   ________________________
  9877.  
  9878.   The joint IBM-Microsoft statement at Comdex in November 1989, indicated that
  9879.   both companies were committed to producing a version of OS/2 that could run
  9880.   on non-Intel processors such as RISC, and include US Department of Defense
  9881.   security at the C2 level and symmetric multiprocessing. IBM remains committed
  9882.   to this direction.
  9883.  
  9884.   The most important part of the work in portability lies in ensuring that
  9885.   APPLICATIONS are easily portable to any new platform.  The other element of
  9886.   ____________
  9887.   portability is to provide a portable operating system kernel (the low level
  9888.   code that interfaces with the processor).  In fact, the importance of the
  9889.   latter has often been exaggerated in relation to the former:  there is no
  9890.   point in having a portable kernel if you cannot move your applications
  9891.   easily.
  9892.  
  9893.   IBM has already made great progress in the first step with the 32-bit OS/2
  9894.   API, which eliminates many of the dependencies of the 16-bit Intel-based
  9895.   architecture.  This provides the potential of a 32-bit code base which is
  9896.   ready to take advantage of a future move of the kernel to other processors.
  9897.   The kernel may change underneath, but the API must be established and
  9898.   preserved.  It is also clear in the design of OS/2 2.0 how IBM is already
  9899.   preparing many of the key components of OS/2 (such as the subsystems like PM
  9900.   and the Workplace Shell, and the API set) for easier portability and to
  9901.   accommodate future directions.  In contrast, although Microsoft has
  9902.   publicised its portable kernel, the other elements required for portability,
  9903.   specifically a full 32-bit API with multi-threading, interprocess
  9904.   communications and advanced graphics, are not yet delivered.  And it is
  9905.   unclear from their public disclosures about Win32s (see "OS/2 - a 32-bit API
  9906.   - TODAY" on page 84)  how to make a straightforward migration to take
  9907.   advantage of RISC, without changes to the code base.  The Windows API today
  9908.   remains 16-bit, and 32-bit exploitation, including the full benefits of
  9909.   portability, remain a future promise.
  9910.  
  9911.   As for the choice of kernel, IBM has a variety of options, through licencing
  9912.   agreements.  IBM is working on a range of technologies, and will announce its
  9913.  
  9914.  
  9915.                                                                    Futures  133
  9916.  
  9917.  
  9918.  
  9919.  
  9920.  
  9921.  
  9922.  
  9923.  
  9924.  
  9925.   direction when it has fully evaluated the available technology in the light
  9926.   of customer requirements.  Suffice it to say that although the "NT" in
  9927.   Microsoft's future system, Windows/NT, stands for "New Technology," the idea
  9928.   of a portable micro-kernel is not new, and other examples already exist in a
  9929.   mature form, including the OSF's micro-kernel based on the Carnegie-Mellon
  9930.   Mach technology.  IBM has chosen not to integrate Windows/NT code into its
  9931.   future offerings.  But NT is by no means the only way of achieving the
  9932.   objectives stated in November 1989.
  9933.  
  9934.   As far as customers and application developers are concerned, if portability
  9935.   is a key issue, 32-bit application development under OS/2, rather than
  9936.   migration from 16-bit DOS and its extensions, is the clearer path.
  9937.  
  9938.  
  9939.   CONCLUSION
  9940.   __________
  9941.  
  9942.   OS/2 is therefore not only taking advantage of today's requirements, and the
  9943.   wide range of DOS, Windows and OS/2 applications that already exist, but
  9944.   provides an immediate future for powerful 32-bit developments, including a
  9945.   32-bit API and the potential to integrate with the new OS/2 Workplace Shell
  9946.   user interface.  The requirements of the workstation of the late 1990s for an
  9947.   object-oriented platform supporting multimedia, DCE and systems management,
  9948.   can only be served by a robust, architected 32-bit platform.  That platform
  9949.   is OS/2.
  9950.  
  9951.  
  9952.  
  9953.  
  9954.  
  9955.  
  9956.  
  9957.  
  9958.  
  9959.  
  9960.  
  9961.  
  9962.  
  9963.  
  9964.  
  9965.  
  9966.  
  9967.  
  9968.  
  9969.  
  9970.  
  9971.  
  9972.  
  9973.  
  9974.  
  9975.  
  9976.  
  9977.  
  9978.  
  9979.  
  9980.  
  9981.  
  9982.                                                                    Futures  134
  9983.  
  9984.  
  9985.  
  9986.  
  9987.  
  9988.  
  9989.  
  9990.  
  9991.  
  9992.   APPENDICES
  9993.   __________
  9994.  
  9995.  
  9996.  
  9997.  
  9998.  
  9999.  
  10000.  
  10001.  
  10002.  
  10003.  
  10004.  
  10005.  
  10006.  
  10007.  
  10008.  
  10009.  
  10010.  
  10011.  
  10012.  
  10013.  
  10014.  
  10015.  
  10016.  
  10017.  
  10018.  
  10019.  
  10020.  
  10021.  
  10022.  
  10023.  
  10024.  
  10025.  
  10026.  
  10027.  
  10028.  
  10029.  
  10030.  
  10031.  
  10032.  
  10033.  
  10034.  
  10035.  
  10036.  
  10037.  
  10038.  
  10039.  
  10040.  
  10041.  
  10042.  
  10043.  
  10044.  
  10045.  
  10046.  
  10047.  
  10048.  
  10049.                                                                 Appendices  135
  10050.  
  10051.  
  10052.  
  10053.  
  10054.  
  10055.  
  10056.  
  10057.  
  10058.  
  10059.   APPENDIX A.  COMPARISON TABLES
  10060.   ______________________________
  10061.  
  10062.  
  10063.  
  10064.  
  10065.  
  10066.   DOS ENVIRONMENTS
  10067.   ________________
  10068.  
  10069.   The following notes refer to the table on the next page.
  10070.  
  10071.   NOTES:
  10072.  
  10073.   1.  See "Comparison with memory usage under DOS" on page 41, "Amount of
  10074.       memory" on page 20 and "Memory" on page 60.
  10075.  
  10076.   2.  See "MVDM memory management" on page 23 and "Expanded and Extended
  10077.       Memory" on page 43.  Also see "Standard mode" on page 55 for Windows
  10078.       3.x's EMS support.
  10079.  
  10080.   3.  The phrase "none/switch" means that no individual DOS application can
  10081.       overcommit memory, but the real mode portion can be moved to disk to make
  10082.       room for another DOS application.  However, extended or EMS memory
  10083.       allocated by the application is not switched to disk.  OS/2 1.3 can swap
  10084.       the DOS application to disk when running protected mode applications.
  10085.       Windows 3.x 386 enhanced mode can overcommit up to four times the
  10086.       physical memory on the machine.  OS/2 2.0 is limited only by the amount
  10087.       of available disk space.
  10088.  
  10089.   4.  Although the default is to swap through the file system, Windows 3.x 386
  10090.       enhanced mode does allow swap space to be pre-allocated, and gain
  10091.       improved performance by avoiding the DOS file system. Because this disk
  10092.       space is pre-allocated, none of it is available to be shared dynamically
  10093.       for any other use.  OS/2 2.0 implements access to the swap space via the
  10094.       file system for both FAT and the HPFS.  The OS/2 2.0 implementation
  10095.       provides the flexibility of a dynamically sized swap file combined with
  10096.       good performance.
  10097.  
  10098.   5.  OS/2 2.0 and Windows 3.1 provide windowing of DOS applications on the
  10099.       Workplace Shell desktop in all text and VGA graphics modes, while Windows
  10100.       3.0 only supports windowing of text and CGA modes.  According to
  10101.       Microsoft, Windows/NT will not support windowed VGA graphics.
  10102.  
  10103.   6.  Although Windows 3.x does include a print spooler, and printing
  10104.       concurrently from DOS applications is not supported.  Windows permits
  10105.       only one DOS application to print and requires that other DOS
  10106.       applications be suspended if they attempt to print concurrently.  Use of
  10107.       a DOS print spooler (loaded prior to Windows 3.x.)  is not a viable
  10108.       solution, since printing concurrently from multiple DOS sessions causes
  10109.       all the output to be jumbled together on the same page.  Windows does
  10110.       warn of a device conflict in use of the printer in the latter case and
  10111.       offers a choice on how to proceed, but whatever the choice made, the same
  10112.       incorrect output results.  OS/2 2.0 provides correct spooling of printer
  10113.       output from concurrent DOS applications.
  10114.  
  10115.  
  10116.  
  10117.                                             Appendix A.  Comparison tables  136
  10118.  
  10119.  
  10120.  
  10121.  
  10122.  
  10123.  
  10124.  
  10125.  
  10126.  
  10127.   7.  Some DOS applications are extremely timing sensitive, mostly
  10128.       communications applications using high data rates.  These are supported
  10129.       in all systems when the application is in the foreground.  However, in
  10130.       DOS, OS/2 1.3., Windows 3.0 real mode, and Windows 3.x standard mode, the
  10131.       application is suspended while in the background and so cannot satisfy
  10132.       any timing constraint.  In 386 enhanced mode, Windows 3.x provides the
  10133.       option of setting exclusive mode, so a timing sensitive application can
  10134.       be run in the foreground without interference due to time slicing.
  10135.       However, all other applications are suspended while this DOS application
  10136.       is running in this mode.  In some cases the need for exclusive mode can
  10137.       be avoided by manually adjusting the relative priorities.  The ability to
  10138.       dynamically manage priorities permits OS/2 2.0 to multi-task timing
  10139.       critical applications both in the foreground and background.  Detailed
  10140.       configuration of idle time detection is also possible in the DOS Settings
  10141.       (see "DOS Settings" on page 47).
  10142.  
  10143.   8.  Although Windows 3.1 has addressed some of Windows' limitations in terms
  10144.       of stability, it is still based on DOS, and therefore still prone to
  10145.       problems caused by DOS-based TSRs which take the system out of protected
  10146.       mode into real mode (see "Reliability and protection" on page 44 and
  10147.       "Reliability" on page 61).
  10148.  
  10149.  
  10150.  
  10151.  
  10152.  
  10153.  
  10154.  
  10155.  
  10156.  
  10157.  
  10158.  
  10159.  
  10160.  
  10161.  
  10162.  
  10163.  
  10164.  
  10165.  
  10166.  
  10167.  
  10168.  
  10169.  
  10170.  
  10171.  
  10172.  
  10173.  
  10174.  
  10175.  
  10176.  
  10177.  
  10178.  
  10179.  
  10180.  
  10181.  
  10182.  
  10183.                                             Appendix A.  Comparison tables  137
  10184.  
  10185.  
  10186.  
  10187.  
  10188.  
  10189.  
  10190.  
  10191.  
  10192.  
  10193.   +---------------------------------------------------------------------------+
  10194.   | Table 9 (Page 1 of 2). Comparison of DOS environments                     |
  10195.   +-------------------------+------+------+---------------------+------+------+
  10196.   |                         |      |      |  WINDOWS 3.0 ON IBM |  WIN |      |
  10197.   |                         |      |      |       DOS 5.0       |  3.1 |      |
  10198.   |                         |      |      +------+-------+------+  ENH |      |
  10199.   |                         |      |      |      |       |      | MODE |      |
  10200.   |                         |  IBM |      |      |       |      | WITH |      |
  10201.   |                         |  DOS | OS/2 |      |       |      |  DOS | OS/2 |
  10202.   |                         |  5.0 |  1.3 | REAL | STANDA|DENHAN|ED5.0 |  2.0 |
  10203.   +-------------------------+------+------+------+-------+------+------+------+
  10204.   | Conventional Memory     | 622 K| 529 K| 558 K| 571 KB| 569 K| 577 K| 633 K|
  10205.   | - with EMS & Mouse (1)  | 601 K|      |      |       |      |      |      |
  10206.                        ___
  10207.   +-------------------------+------+------+------+-------+------+------+------+
  10208.   | Memory w/ LAN Attach    | 543 K| 486 K| 386 K| 391 KB| 441 K| 477 K| 633 K|
  10209.   | - configured as PCLP Rec|iver  |      |      |       |      |      |      |
  10210.   +-------------------------+------+------+------+-------+------+------+------+
  10211.   | Memory w/3270 Attach    | 522 K| 495 K| 486 K| 492 KB| 541 K| 549 K| 633 K|
  10212.   +-------------------------+------+------+------+-------+------+------+------+
  10213.   | Extended Memory (XMS)   | 16 MB| none | 16 MB|(16tMB)|t16aMB|(16tMB|(16tMB|per app)
  10214.   +-------------------------+------+------+------+-------+------+------+------+
  10215.   | EMS 4.0 Memory(2)       | 16 MB| none | 16 MB|(nonel)| 16 MB|(16tMB|(32tMB|per app)
  10216.                   ___
  10217.   +-------------------------+------+------+------+-------+------+------+------+
  10218.   |                                                                           |
  10219.   +-------------------------+------+------+------+-------+------+------+------+
  10220.   | Physical RAM for DOS    | 0-1 M| 0-640|K0-1 M| 0-1 MB| Any/P|gAny/P|gAny/P|ged
  10221.   +-------------------------+------+------+------+-------+------+------+------+
  10222.   | Memory Overcommit(3)    | None/|wNone/|wNone/|wNone/S|i4c* R|M4 * R|MAvail|Disk
  10223.                      ___
  10224.   +-------------------------+------+------+------+-------+------+------+------+
  10225.   | Swap File(4)            | File |yFile |yFile |yFile S|sPhysi|aPhysi|aFile |ystem
  10226.              ___
  10227.   |                         |      |      |      |       | (Prea|l(Prea|l(Dyna|ic)
  10228.   |                         |      |      |      |       | or Fi|eoryFi|e Syst|m
  10229.   +-------------------------+------+------+------+-------+------+------+------+
  10230.   |                                                                           |
  10231.   +-------------------------+------+------+------+-------+------+------+------+
  10232.   | Number of DOS Apps      | 16   | 1    | 16   | 16    | 16   | 16   | >32  |
  10233.   +-------------------------+------+------+------+-------+------+------+------+
  10234.   | Background Execution    | No   | No   | No   | No    | Yes  | Yes  | Yes  |
  10235.   +-------------------------+------+------+------+-------+------+------+------+
  10236.   |                                                                           |
  10237.   +-------------------------+------+------+------+-------+------+------+------+
  10238.   | Invocation              | Shell|CIcon | Icon | Icon  | Icon | Icon | Icon |
  10239.   +-------------------------+------+------+------+-------+------+------+------+
  10240.   | Windowed(5)             | No   | No   | No   | No    | Yes  | Yes  | Yes  |
  10241.             ___
  10242.   |                         |      |      |      |       | (Text| (Text| (Text| VGA)
  10243.   +-------------------------+------+------+------+-------+------+------+------+
  10244.   | Cut & Paste             | No   | No   | Yes  | Yes   | Yes  | Yes  | Yes  |
  10245.   +-------------------------+------+------+------+-------+------+------+------+
  10246.   | Print Spooling(6)       | Yes  | Yes  | No   | No    | No   | Yes  | Yes  |
  10247.                   ___
  10248.   +-------------------------+------+------+------+-------+------+------+------+
  10249.   | Installable File System | No   | Yes  | No   | No    | No   | No   | Yes  |
  10250.   +-------------------------+------+------+------+-------+------+------+------+
  10251.   |                                                                           |
  10252.   +---------------------------------------------------------------------------+
  10253.  
  10254.  
  10255.                                             Appendix A.  Comparison tables  138
  10256.  
  10257.  
  10258.  
  10259.  
  10260.  
  10261.  
  10262.  
  10263.  
  10264.  
  10265.   +-------------------------+------+------+------+-------+------+------+------+
  10266.   | Direct Hardware Access  | Yes  | Yes  | Yes  | Yes   | Yes  | Yes  | Yes  |
  10267.   +-------------------------+------+------+------+-------+------+------+------+
  10268.   | Timing Dependent Apps.(7| Foreg|oForeg|oForeg|oForegr|uExclu|iExclu|iForeg|ound/
  10269.                           ___
  10270.   |                         |      |      |      |       | (Manu|l(Manu|lBackg|ound
  10271.   |                         |      |      |      |       |      |      | (Auto|atic)
  10272.   +-------------------------+------+------+------+-------+------+------+------+
  10273.   |                                                                           |
  10274.   +-------------------------+------+------+------+-------+------+------+------+
  10275.   | DPMI                    | No   | No   | No   | No    | Yes  | Yes  | Yes  |
  10276.   +-------------------------+------+------+------+-------+------+------+------+
  10277.   | VCPI and DOS Extenders  | Yes  | No   | No   | No    | No   | No   | No   |
  10278.   +-------------------------+------+------+------+-------+------+------+------+
  10279.   |                                                                           |
  10280.   +-------------------------+------+------+------+-------+------+------+------+
  10281.   | Continues after serious | Rarel| Rarel| Rarel| Rarely| Somet|mOften| Yes  |
  10282.   | Application errors (8)  |      |      |      |       |      |      |      |
  10283.                        ___
  10284.   +-------------------------+------+------+------+-------+------+------+------+
  10285.  
  10286.   OS/2 2.0 COMPARED WITH WINDOWS 3.0/3.1
  10287.   ______________________________________
  10288.  
  10289.   +---------------------------------------------------------------------------+
  10290.   | Table 10 (Page 1 of 6). OS/2 2.0 compared to Windows 3.0/3.1              |
  10291.   +-------------------------------------+------------------+------------------+
  10292.   |                                     | WINDOWS 3.1      | OS/2 2.0         |
  10293.   +-------------------------------------+------------------+------------------+
  10294.   | Hardware                                                                  |
  10295.     ________
  10296.   +-------------------------------------+------------------+------------------+
  10297.   | Processor                           | 286; 386SX+  (1) | 386SX+           |
  10298.                                                        ___
  10299.   +-------------------------------------+------------------+------------------+
  10300.   | Minimum hard drive                  | Approx 9MB       | Approx 13MB      |
  10301.   +-------------------------------------+------------------+------------------+
  10302.   | Hard drive for Full install         | 11MB - plus 50%  | 27.6MB           |
  10303.   |                                     | of remaining     |                  |
  10304.   |                                     | partition for    |                  |
  10305.   |                                     | swap file        |                  |
  10306.   |                                     | (default) (2)    |                  |
  10307.                                                     ___
  10308.   +-------------------------------------+------------------+------------------+
  10309.   | Largest hard drive                  | 1GB              | 64GB (HPFS)      |
  10310.   +-------------------------------------+------------------+------------------+
  10311.   | Largest file size                   | 1GB              | 2GB              |
  10312.   +-------------------------------------+------------------+------------------+
  10313.   | SCSI exploitation                   | No               | Yes              |
  10314.   +-------------------------------------+------------------+------------------+
  10315.   | File System options                 | FAT only         | Enhanced FAT or  |
  10316.   |                                     |                  | HPFS             |
  10317.   +-------------------------------------+------------------+------------------+
  10318.   |                                     |                  |                  |
  10319.   +-------------------------------------+------------------+------------------+
  10320.   | Memory                                                                    |
  10321.     ______
  10322.   +-------------------------------------+------------------+------------------+
  10323.   | Physical Memory Limit               | > 16 MB          | > 16 MB          |
  10324.   +-------------------------------------+------------------+------------------+
  10325.  
  10326.  
  10327.  
  10328.                                             Appendix A.  Comparison tables  139
  10329.  
  10330.  
  10331.  
  10332.  
  10333.  
  10334.  
  10335.  
  10336.  
  10337.  
  10338.   +---------------------------------------------------------------------------+
  10339.   | Table 10 (Page 2 of 6). OS/2 2.0 compared to Windows 3.0/3.1              |
  10340.   +-------------------------------------+------------------+------------------+
  10341.   |                                     | WINDOWS 3.1      | OS/2 2.0         |
  10342.   +-------------------------------------+------------------+------------------+
  10343.   | Virtual Memory Limit                | 4 x Physical     | 512 MB per       |
  10344.   |                                     |                  | process (or Disk |
  10345.   |                                     |                  | space)           |
  10346.   +-------------------------------------+------------------+------------------+
  10347.   | Memory Model                        | Segmented (64    | Flat memory      |
  10348.   |                                     | KB)              | objects          |
  10349.   +-------------------------------------+------------------+------------------+
  10350.   |                                     |                  |                  |
  10351.   +-------------------------------------+------------------+------------------+
  10352.   | Multi-tasking (3)                                                         |
  10353.     _____________ ___
  10354.   +-------------------------------------+------------------+------------------+
  10355.   | Multi-tasking - DOS Applications    | Time Slicing     | Pre-emptive Time |
  10356.   |                                     |                  | Slicing          |
  10357.   +-------------------------------------+------------------+------------------+
  10358.   | Multi-tasking - Windows & OS/2 Apps | Co-operative     | Pre-emptive      |
  10359.   +-------------------------------------+------------------+------------------+
  10360.   | Priority                            | Static (set by   | Dynamic          |
  10361.   |                                     | user)            |                  |
  10362.   +-------------------------------------+------------------+------------------+
  10363.   | Dispatchability                     | Process          | Thread           |
  10364.   +-------------------------------------+------------------+------------------+
  10365.   | System Services                     | Serial           | Parallel /       |
  10366.   |                                     |                  | Overlapped       |
  10367.   +-------------------------------------+------------------+------------------+
  10368.   |                                     |                  |                  |
  10369.   +-------------------------------------+------------------+------------------+
  10370.   | Reliability/Protection (4)                                                |
  10371.     ______________________ ___
  10372.   +-------------------------------------+------------------+------------------+
  10373.   | Protection between Applications     | Limited          | Protected        |
  10374.   +-------------------------------------+------------------+------------------+
  10375.   | Kernel protection - DOS             | Limited          | Protected        |
  10376.   | Applications                        |                  |                  |
  10377.   +-------------------------------------+------------------+------------------+
  10378.   | Kernel protection - Windows & OS/2  | Limited          | Protected        |
  10379.   | Apps                                |                  |                  |
  10380.   +-------------------------------------+------------------+------------------+
  10381.   | Remains in protected mode (5)       | No - access to   | Yes              |
  10382.                               ___
  10383.   |                                     | real mode        |                  |
  10384.   |                                     | possible         |                  |
  10385.   +-------------------------------------+------------------+------------------+
  10386.   | Reliability/Availability/Service    | None in 3.0.  In | Standalone Dump, |
  10387.   | (RAS) Support (6)                   | 3.1: Error       | Error Logging,   |
  10388.                   ___
  10389.   |                                     | Logging/Dump via | Trace Utilities  |
  10390.   |                                     | Dr.Watson; No    | & APIs           |
  10391.   |                                     | Trace APIs or    |                  |
  10392.   |                                     | Trace formatting |                  |
  10393.   +-------------------------------------+------------------+------------------+
  10394.   |                                     |                  |                  |
  10395.   +-------------------------------------+------------------+------------------+
  10396.  
  10397.  
  10398.                                             Appendix A.  Comparison tables  140
  10399.  
  10400.  
  10401.  
  10402.  
  10403.  
  10404.  
  10405.  
  10406.  
  10407.  
  10408.   +---------------------------------------------------------------------------+
  10409.   | Table 10 (Page 3 of 6). OS/2 2.0 compared to Windows 3.0/3.1              |
  10410.   +-------------------------------------+------------------+------------------+
  10411.   |                                     | WINDOWS 3.1      | OS/2 2.0         |
  10412.   +-------------------------------------+------------------+------------------+
  10413.   | Compatibility                                                             |
  10414.     _____________
  10415.   +-------------------------------------+------------------+------------------+
  10416.   | Multiple Concurrent DOS             | Yes (enhanced    | Yes              |
  10417.   | Applications                        | mode only)       |                  |
  10418.   +-------------------------------------+------------------+------------------+
  10419.   | Windows 2.x Applications            | No               | Yes              |
  10420.   +-------------------------------------+------------------+------------------+
  10421.   | Windows 3.0 Applications            | Most (7)         | Most             |
  10422.                                                ___
  10423.   +-------------------------------------+------------------+------------------+
  10424.   | Clipboard support                   | Windows and DOS  | Windows, DOS and |
  10425.   |                                     | only             | OS/2             |
  10426.   +-------------------------------------+------------------+------------------+
  10427.   | DDE support                         | Windows apps     | Windows and OS/2 |
  10428.   |                                     | only             | apps             |
  10429.   +-------------------------------------+------------------+------------------+
  10430.   | OLE support                         | Yes              | Yes              |
  10431.   +-------------------------------------+------------------+------------------+
  10432.   | 16-bit OS/2 Applications            | No               | Yes              |
  10433.   +-------------------------------------+------------------+------------------+
  10434.   | 32-bit OS/2 Applications            | No               | Yes              |
  10435.   +-------------------------------------+------------------+------------------+
  10436.   |                                     |                  |                  |
  10437.   +-------------------------------------+------------------+------------------+
  10438.   | Printing and Fonts                                                        |
  10439.     __________________
  10440.   +-------------------------------------+------------------+------------------+
  10441.   | Print spooling                      | Limited (8)      | Yes, for all     |
  10442.                                                   ___
  10443.   |                                     |                  | applications     |
  10444.   +-------------------------------------+------------------+------------------+
  10445.   | Adobe Type Manager standard         | No               | Yes              |
  10446.   +-------------------------------------+------------------+------------------+
  10447.   | Network printing support            | Some             | Full (9)         |
  10448.                                                                   ___
  10449.   +-------------------------------------+------------------+------------------+
  10450.   | Background printing performance     | Unpredictable    | Predictable (10) |
  10451.                                                                          ____
  10452.   +-------------------------------------+------------------+------------------+
  10453.   |                                     |                  |                  |
  10454.   +-------------------------------------+------------------+------------------+
  10455.   | National Language Support                                                 |
  10456.     _________________________
  10457.   +-------------------------------------+------------------+------------------+
  10458.   | Number of Language Versions         | 12               | 16               |
  10459.   +-------------------------------------+------------------+------------------+
  10460.   | Data Interchange                    | ISO8859/CP819    | CP850            |
  10461.   |                                     | (different from  | (consistent      |
  10462.   |                                     | DOS)             | throughout OS/2) |
  10463.   +-------------------------------------+------------------+------------------+
  10464.   | Host connectivity/Interchange       | 3rd party        | Included in      |
  10465.   |                                     |                  | Extended         |
  10466.   |                                     |                  | Services for     |
  10467.   |                                     |                  | OS/2             |
  10468.   +-------------------------------------+------------------+------------------+
  10469.  
  10470.  
  10471.                                             Appendix A.  Comparison tables  141
  10472.  
  10473.  
  10474.  
  10475.  
  10476.  
  10477.  
  10478.  
  10479.  
  10480.  
  10481.   +---------------------------------------------------------------------------+
  10482.   | Table 10 (Page 4 of 6). OS/2 2.0 compared to Windows 3.0/3.1              |
  10483.   +-------------------------------------+------------------+------------------+
  10484.   |                                     | WINDOWS 3.1      | OS/2 2.0         |
  10485.   +-------------------------------------+------------------+------------------+
  10486.   | Code Page                           | Single           | Selectable       |
  10487.   +-------------------------------------+------------------+------------------+
  10488.   |                                     |                  |                  |
  10489.   +-------------------------------------+------------------+------------------+
  10490.   | Other Factors                                                             |
  10491.     _____________
  10492.   +-------------------------------------+------------------+------------------+
  10493.   | Full 32-bit APIs                    | No               | Yes              |
  10494.   +-------------------------------------+------------------+------------------+
  10495.   | Concurrent High Speed Comms         | Unreliable       | Yes              |
  10496.   +-------------------------------------+------------------+------------------+
  10497.   | Background Comms (11)               | Unreliable       | Yes              |
  10498.                      ____
  10499.   +-------------------------------------+------------------+------------------+
  10500.   | OEM Hardware Support                | Yes              | Yes              |
  10501.   +-------------------------------------+------------------+------------------+
  10502.   | Development Tools                   | Yes              | Yes              |
  10503.   +-------------------------------------+------------------+------------------+
  10504.   | Command Language                    | .BAT             | .BAT, .CMD and   |
  10505.   |                                     |                  | REXX             |
  10506.   +-------------------------------------+------------------+------------------+
  10507.   | Installation migration for existing | Limited          | Yes              |
  10508.   | apps                                |                  |                  |
  10509.   +-------------------------------------+------------------+------------------+
  10510.   |                                     |                  |                  |
  10511.   +-------------------------------------+------------------+------------------+
  10512.   | User Interface                                                            |
  10513.     ______________
  10514.   +-------------------------------------+------------------+------------------+
  10515.   | CUA compliance                      | Graphical Model  | Workplace Model  |
  10516.   |                                     | ('89)            | ('91)            |
  10517.   +-------------------------------------+------------------+------------------+
  10518.   | Icons representing non-loaded files | No (3rd party)   | Yes              |
  10519.   | on desktop                          |                  |                  |
  10520.   +-------------------------------------+------------------+------------------+
  10521.   | Place icons anywhere on desktop     | No (files in     | Yes              |
  10522.   |                                     | File Manager,    |                  |
  10523.   |                                     | programs in      |                  |
  10524.   |                                     | Program Manager, |                  |
  10525.   |                                     | printers - no    |                  |
  10526.   |                                     | icons)           |                  |
  10527.   +-------------------------------------+------------------+------------------+
  10528.   | Group windows                       | Single-layer     | Multi-layer,     |
  10529.   |                                     | (can't put group | hierarchical     |
  10530.   |                                     | inside another   | folders          |
  10531.   |                                     | group)           |                  |
  10532.   +-------------------------------------+------------------+------------------+
  10533.   | Customise GUI look/feel             | No               | Yes (Workplace   |
  10534.   |                                     |                  | Shell, Windows   |
  10535.   |                                     |                  | 3.x, OS/2 1.x)   |
  10536.   +-------------------------------------+------------------+------------------+
  10537.  
  10538.  
  10539.  
  10540.                                             Appendix A.  Comparison tables  142
  10541.  
  10542.  
  10543.  
  10544.  
  10545.  
  10546.  
  10547.  
  10548.  
  10549.  
  10550.   +---------------------------------------------------------------------------+
  10551.   | Table 10 (Page 5 of 6). OS/2 2.0 compared to Windows 3.0/3.1              |
  10552.   +-------------------------------------+------------------+------------------+
  10553.   |                                     | WINDOWS 3.1      | OS/2 2.0         |
  10554.   +-------------------------------------+------------------+------------------+
  10555.   | Context Menus                       | No               | Yes              |
  10556.   +-------------------------------------+------------------+------------------+
  10557.   | Drag/Drop across entire Shell       | Windows 3.0 -    | Yes              |
  10558.   | environment                         | No.  Windows 3.1 |                  |
  10559.   |                                     | - File Manager   |                  |
  10560.   |                                     | only             |                  |
  10561.   +-------------------------------------+------------------+------------------+
  10562.   | Object Management                   | No               | Yes              |
  10563.   +-------------------------------------+------------------+------------------+
  10564.   | Graphical Install                   | Yes              | Yes              |
  10565.   +-------------------------------------+------------------+------------------+
  10566.   | Intelligent fonts                   | Windows 3.0 - No | Yes (Adobe Type  |
  10567.   |                                     | (ATM separate    | Manager for OS/2 |
  10568.   |                                     | purchase).       | & Windows - 1200 |
  10569.   |                                     | Windows 3.1 -    | fonts)           |
  10570.   |                                     | Yes (TrueType -  |                  |
  10571.   |                                     | 650 fonts)       |                  |
  10572.   +-------------------------------------+------------------+------------------+
  10573.   | Long file names                     | No               | Yes              |
  10574.   +-------------------------------------+------------------+------------------+
  10575.   | Applets                             | Yes              | Yes              |
  10576.   +-------------------------------------+------------------+------------------+
  10577.   | Consistent GUI logon                | No - requires    | Yes              |
  10578.   |                                     | Network vendor   |                  |
  10579.   |                                     | utility          |                  |
  10580.   +-------------------------------------+------------------+------------------+
  10581.   | Interactive Tutorial                | Yes              | Yes              |
  10582.   +-------------------------------------+------------------+------------------+
  10583.   | Command Reference                   | No               | Yes              |
  10584.   +-------------------------------------+------------------+------------------+
  10585.   |                                     |                  |                  |
  10586.   +-------------------------------------+------------------+------------------+
  10587.   | Advanced Connectivity(12)                                                 |
  10588.                          ____
  10589.   +-------------------------------------+------------------+------------------+
  10590.   | Client and Server platform          | No               | Yes              |
  10591.   +-------------------------------------+------------------+------------------+
  10592.   | Multiple Concurrent Protocols       | Limited          | Yes              |
  10593.   +-------------------------------------+------------------+------------------+
  10594.   | SNA LU6.2                           | 3rd party        | Yes              |
  10595.   +-------------------------------------+------------------+------------------+
  10596.   | APPN                                | 3rd party        | Yes              |
  10597.   +-------------------------------------+------------------+------------------+
  10598.   | TCP-IP                              | 3rd party        | IBM TCP-IP for   |
  10599.   |                                     |                  | OS/2             |
  10600.   +-------------------------------------+------------------+------------------+
  10601.   | Systems Management                  | 3rd party        | Various from IBM |
  10602.   |                                     |                  | (13)             |
  10603.                                                              ____
  10604.   +-------------------------------------+------------------+------------------+
  10605.  
  10606.  
  10607.  
  10608.                                             Appendix A.  Comparison tables  143
  10609.  
  10610.  
  10611.  
  10612.  
  10613.  
  10614.  
  10615.  
  10616.  
  10617.  
  10618.   +---------------------------------------------------------------------------+
  10619.   | Table 10 (Page 6 of 6). OS/2 2.0 compared to Windows 3.0/3.1              |
  10620.   +-------------------------------------+------------------+------------------+
  10621.   |                                     | WINDOWS 3.1      | OS/2 2.0         |
  10622.   +-------------------------------------+------------------+------------------+
  10623.   | SQL Database Server                 | MS SQL Server    | Yes              |
  10624.   |                                     | (requires OS/2)  |                  |
  10625.   +-------------------------------------+------------------+------------------+
  10626.   | SQL Database Client                 | 3rd party        | Yes              |
  10627.   +-------------------------------------+------------------+------------------+
  10628.   | NFS                                 | 3rd party        | IBM TCP-IP for   |
  10629.   |                                     |                  | OS/2             |
  10630.   +-------------------------------------+------------------+------------------+
  10631.   | X-Windows server                    | 3rd party        | IBM TCP-IP for   |
  10632.   |                                     |                  | OS/2             |
  10633.   +-------------------------------------+------------------+------------------+
  10634.   |                                     |                  |                  |
  10635.   +-------------------------------------+------------------+------------------+
  10636.  
  10637.   NOTES:
  10638.  
  10639.   1.  Although Windows 3.1 will run on a 286, this does not enable enhanced
  10640.       mode support, which is required to be competitive with OS/2 function
  10641.       (multi-tasking DOS applications, demand paging, 32-bit support).
  10642.  
  10643.   2.  See "Disk space" on page 149
  10644.  
  10645.   3.  See "Multi-tasking of DOS applications" on page 40, "Multi-tasking" on
  10646.       page 28 and "Performance" on page 62
  10647.  
  10648.   4.  See "Reliability" on page 61, "Reliability and protection" on page 44 and
  10649.       "Protected mode operation" on page 15.
  10650.  
  10651.   5.  See "Reliability" on page 61, "Reliability and protection" on page 44
  10652.  
  10653.   6.  Windows 3.1 uses Dr.Watson, OS/2 2.0 uses SYSLOG and Standalone Dump
  10654.  
  10655.   7.  Windows 3.1 will not run some Windows 3.0 applications, which will need
  10656.       updates. Compatibility notes are listed in the APPS.HLP file. Several
  10657.       Windows 3.0 applications need updated versions to run on Windows 3.1.
  10658.       OS/2 2.0 runs all but a very small minority of Windows 3.0 applications,
  10659.       as well as all the Windows 2.x applications that Windows 3.1 will no
  10660.       longer support (no real mode support provided) - see "Real mode (NOT
  10661.       AVAILABLE IN WINDOWS 3.1)" on page 54 and "386 Enhanced mode" on page 66
  10662.  
  10663.   8.  Print spooling is not provided by Windows 3.1 for DOS applications, only
  10664.       for Windows applications. OS/2 2.0 provides print spooling for DOS,
  10665.       Windows and OS/2 applications
  10666.  
  10667.   9.  OS/2 2.0 has extensive user print management capabilities (40 APIs vs 12
  10668.       APIs in Windows 3.1) for querying, holding, releasing and deleting jobs
  10669.       (including a graphical view of job and queue status).
  10670.  
  10671.  
  10672.  
  10673.  
  10674.                                             Appendix A.  Comparison tables  144
  10675.  
  10676.  
  10677.  
  10678.  
  10679.  
  10680.  
  10681.  
  10682.  
  10683.  
  10684.   10. OS/2 consistently outperforms Windows with background print operations,
  10685.       in multi-tasking environments
  10686.  
  10687.   11. See notes on Background Execution in Appendix A on DOS applications.
  10688.  
  10689.   12. OS/2 2.0's "Yes" answers here are all using Extended Services for OS/2
  10690.       except where stated.  It is important to note that the Windows column
  10691.       refers to Windows specific programs (i.e. written to explicitly take
  10692.       advantage of Windows GUI, memory addressability, or time-slicing).
  10693.       Although there are many DOS connectivity options, and they may be usable
  10694.       under Windows, the integration of these complex subsystems and any
  10695.       co-residency of two or more options (eg TCP/IP and SNA) is completely the
  10696.       responsibility of the customer as a custom integration effort.  Moreover,
  10697.       Windows on DOS has substantial architectural limitations which make
  10698.       multiple network connections difficult to integrate than under OS/2 (lack
  10699.       of memory, lack of protection, and weak multi-tasking support).  OS/2's
  10700.       base environment provides tools and system support designed to allow this
  10701.       type of multi-connectivity installation.  Besides, all the extra software
  10702.       required for these functions under OS/2 comes from IBM, and one can
  10703.       therefore anticipate a greater degree of integration (see "OS/2 for
  10704.       client-server" on page 109).
  10705.  
  10706.   13. See "Systems management" on page 116
  10707.  
  10708.  
  10709.  
  10710.  
  10711.  
  10712.  
  10713.  
  10714.  
  10715.  
  10716.  
  10717.  
  10718.  
  10719.  
  10720.  
  10721.  
  10722.  
  10723.  
  10724.  
  10725.  
  10726.  
  10727.  
  10728.  
  10729.  
  10730.  
  10731.  
  10732.  
  10733.  
  10734.  
  10735.  
  10736.  
  10737.  
  10738.  
  10739.  
  10740.                                             Appendix A.  Comparison tables  145
  10741.  
  10742.  
  10743.  
  10744.  
  10745.  
  10746.  
  10747.  
  10748.  
  10749.  
  10750.   APPENDIX B.  HARDWARE REQUIREMENTS AND PERFORMANCE
  10751.   __________________________________________________
  10752.  
  10753.  
  10754.  
  10755.  
  10756.  
  10757.   The main reference to OS/2 system requirements is the OS/2 2.0 Information
  10758.   and Planning Guide (G326-0160-00), and the equivalent guides for Extended
  10759.   Services for OS/2 and OS/2 LAN Server.  Anyone planning installation of OS/2
  10760.   across several workstations should obtain these guides.  In this section we
  10761.   will discuss only the key issues - for the detail, you should consult the
  10762.   Information and Planning Guide. This section only discusses issues relating
  10763.   to the base system, not to the extensions, though many of the principles
  10764.   apply to both.
  10765.  
  10766.  
  10767.   MINIMUM REQUIREMENTS
  10768.   ____________________
  10769.  
  10770.   OS/2 2.0 is designed for personal computers with the following minimum
  10771.   requirements:
  10772.  
  10773.   o   Intel (or compatible) i386SX microprocessor or above
  10774.   o   4MB of memory
  10775.   o   60MB hard disk with 15-30MB of free disk space
  10776.   o   2-button mouse or other pointing device
  10777.  
  10778.   Please note that this is a minimum. Many will be satisfied with this
  10779.                         __
  10780.   configuration if simple tasks are undertaken, but for more powerful
  10781.   multi-tasking and larger applications, more memory may be required. There is
  10782.   a trade-off to be made between memory and performance, in particular: OS/2
  10783.   can work around a limit in physical memory by swapping to disk, but since
  10784.   disk access is slower than memory access, this will tend to reduce overall
  10785.   performance, which will show itself more in switching between applications
  10786.   than in the performance of an individual session.
  10787.  
  10788.   OS/2 2.0 will not run on machines equipped with an Intel 80286 processor.
  10789.   Therefore, computers such as the IBM PC AT, PS/2 Model 30-286, and Models 50,
  10790.   50Z, and 60 cannot be used with OS/2 2.0.  However, OS/2 2.0 does support
  10791.   non-386 based machines that have been upgraded with a 386 or 486 processor
  10792.   using the Aox Micromaster, Intel SnapIn, or Kingston SX/Now! card.
  10793.  
  10794.   In addition, OS/2 2.0 is supported on a broad range of IBM-compatible
  10795.   systems, including models from Compaq, AST, Olivetti, Toshiba, Hewlett
  10796.   Packard, Dell, Gateway, Wang, DEC, NCR, Tandy, ACER, CompuAdd and many
  10797.   others.
  10798.  
  10799.   The certification of compatibility is based on IBM's tests of key functions
  10800.   of OS/2 2.0, based on selected model configurations provided by the
  10801.   manufacturers of these non-IBM hardware systems.  Test results are available
  10802.   on CompuServe, IBM Forums (OEM and OS2ARENA), and other bulletin boards.  If
  10803.   you need additional information, please consult your hardware supplier. If
  10804.   you are using a specific model, and wish to have it certified, please check
  10805.   with your IBM representative or Authorised Dealer.  If it has not been tested
  10806.   by IBM, IBM welcomes your help in making contact with the manufacturer to
  10807.  
  10808.  
  10809.                         Appendix B.  Hardware requirements and performance  146
  10810.  
  10811.  
  10812.  
  10813.  
  10814.  
  10815.  
  10816.  
  10817.  
  10818.  
  10819.   have the machine tested.  IBM wishes to make the range of OS/2 compatibility
  10820.   as broad as is possible.
  10821.  
  10822.   In practice, OS/2 has been designed to operate correctly with a wide range of
  10823.   hardware, and the evidence from many of the users who have registered their
  10824.   copies already (see "Broad hardware support" on page 35) indicates that OS/2
  10825.   2.0 is already running on a large number of different machines.
  10826.  
  10827.  
  10828.   PROCESSOR
  10829.   _________
  10830.  
  10831.   Because of its 32-bit addressing power, the OS/2 2.0 operating system
  10832.   requires a computer that has a system unit equipped with an Intel (or
  10833.   compatible) i386 (or higher) microprocessor.  The i386SX microprocessor
  10834.   provides adequate performance for those who work in lower-demand application
  10835.   environments.  In most environments that demand multiple concurrent
  10836.   processes, the i386DX will be adequate for satisfactory performance.  The IBM
  10837.   386SLC chip offers high performance from a 386SX design, and along with the
  10838.   new 486SLC chip, offers outstanding price-performance for an OS/2 system.
  10839.   Systems equipped with the 386SLC represent a viable entry point for a
  10840.   multi-tasking OS/2 client. 486SLC-based systems represent an excellent option
  10841.   for throughput even of heavy multi-tasking loads.  With prices of 486SX
  10842.   systems being reduced, they can be a cost-effective option for client
  10843.   workstations.  For computers that will be used as network servers, consider
  10844.   the i486 series.  Also consider the 486 as a base processor for those who
  10845.   expect to switch frequently and rapidly among a large number of concurrent
  10846.   tasks.
  10847.  
  10848.  
  10849.   MEMORY SIZE
  10850.   ___________
  10851.  
  10852.   Memory and disk storage are closely related because of the ability of the
  10853.   operating system to manage the allocation of memory resources between real
  10854.   physical memory and hard disk space. In general, it is important, when
  10855.   calculating memory and disk requirements, to work on the concept of "working
  10856.   set," in simple terms the sum of physical memory and swap file size. The
  10857.   balance of physical memory installed versus swap space is key to determining
  10858.   overall performance - the more working set is gained from swap space rather
  10859.   than physical memory, the lower overall system performance.
  10860.  
  10861.   4MB is adequate for an entry-level workstation running few tasks.  This
  10862.   enables users to run applications or other system utility programs
  10863.   concurrently, but it presents a constrained environment (limited memory) for
  10864.   some large applications.  In limited memory configurations, performance of
  10865.   applications might be reduced, particularly when the operating system is
  10866.   loading an application or switching from one application to another or to the
  10867.   desktop.  This is as a result of paging, as the code required is loaded to
  10868.   memory from disk, and the least recently used memory is paged to disk to make
  10869.   room.
  10870.  
  10871.   Although more tasks can be accommodated by swapping, performance degradation
  10872.   would suggest more memory would be required for more intensive multi-tasking.
  10873.   However, an OS/2-only workstation (ie no DOS or Windows applications) with a
  10874.   LAN requester can perform acceptably in a 4-5MB configuration.  This
  10875.  
  10876.  
  10877.                         Appendix B.  Hardware requirements and performance  147
  10878.  
  10879.  
  10880.  
  10881.  
  10882.  
  10883.  
  10884.  
  10885.  
  10886.  
  10887.   indicates that the entry level configurations are suitable for some client
  10888.   scenarios.
  10889.  
  10890.   To estimate probable working set requirements, estimate 2.5MB for the base
  10891.   system without any applications, 0.6MB per concurrent DOS session, and 1MB
  10892.   per concurrent WIN-OS/2 session. (The latter two figures assume the default
  10893.   amounts of XMS, EMS and DPMI memory installed, which are 2048K, 2048K and 2MB
  10894.   respectively - the actual figure may therefore be more, or less, depending on
  10895.   the settings chosen.) Thus a system running DOS and Windows applications can
  10896.   run satisfactorily in 6MB. A connected workstation (eg LAN requester plus
  10897.   3270 emulators) will require around 8MB (though note the low entry point
  10898.   above for OS/2-only clients with just a LAN requester).
  10899.  
  10900.   The amount of memory installed can be an important factor in performance,
  10901.   particularly when swapping between applications. Since working sets of 1-2MB
  10902.   or more are being switched, the performance difference between a 4MB and a
  10903.   6MB configuration can be substantial; a further increase to 8MB is
  10904.   appreciable, but not usually to the same extent. The system tends to handle
  10905.   overcommitment on memory well above the 8MB point. Large applications and
  10906.   heavy multi-tasking will benefit from 8MB or more.
  10907.  
  10908.   Though adding more memory inevitably adds to the cost of the system, it is to
  10909.   be remembered that the cost of memory is decreasing. Although OS/2 2.0 will
  10910.   tend to require more memory than Windows 3.1 for equivalent software
  10911.   configurations, the cost of the memory will often be less than $100 at
  10912.   today's memory prices. Many customers are finding that the extra costs for
  10913.   memory are compensated by the increased function and stability that OS/2
  10914.   offers. Customers hoping to achieve the combination of a 32 bit, stable
  10915.   multitasking platform, on an affordable hardware configuration, may consider
  10916.   this trade-off between function and system requirements. Furthermore,
  10917.   independent analysts have predicted that Windows/NT will require an even
  10918.   higher configuration than OS/2 2.0. Gartner Group has told its customers that
  10919.   it believes "a mainstream platform for Windows/NT will be a 486DX with 12 to
  10920.   16 megabytes of RAM (and up) on the workstation"(24).
  10921.  
  10922.   It is to be remembered that in all the above estimates for OS/2 memory
  10923.   requirements, results will vary with the configuration of the machine and the
  10924.   applications run.  Also, performance is a subjective matter - few people
  10925.   agree on what is acceptable relative to the cost of a configuration.
  10926.   Customers are recommended to carry out their own benchmarks to assess the
  10927.   most suitable configuration for their requirements.
  10928.  
  10929.  
  10930.  
  10931.  
  10932.  
  10933.  
  10934.  
  10935.  
  10936.  
  10937.   ---------------
  10938.  
  10939.   (24) Gartner Group - Personal Computer Research Notes, P-230-853, July 31,
  10940.       1992
  10941.  
  10942.  
  10943.                         Appendix B.  Hardware requirements and performance  148
  10944.  
  10945.  
  10946.  
  10947.  
  10948.  
  10949.  
  10950.  
  10951.  
  10952.  
  10953.   DISK SPACE
  10954.   __________
  10955.  
  10956.   The requirements stated in this section are for the operating system, swap
  10957.   space, and print spool jobs. They do not consider space required for extra
  10958.   applications and data.
  10959.  
  10960.   Although the maximum space required for OS/2 installation is 27.6MB plus swap
  10961.   space, the minimum installation can be as little as 12.7MB (no DOS or Windows
  10962.   support), 14.6MB (DOS, but no Windows support) and 16.9MB (DOS and Windows
  10963.   support). These are taken from the cumulative total in the selective install
  10964.   option; the total in each of these scenarios can be lower still by
  10965.   eliminating selected files after installation. Typical scenarios will require
  10966.   less than 20MB and sometimes only 15MB.
  10967.  
  10968.   The decision of whether to install certain components can make a large
  10969.   difference to the space taken: WIN-OS/2 requires 3MB, Productivity
  10970.   applications 1.3MB, tools and utilities 3.6MB and games 0.8MB. The optional
  10971.   systems utilities (eg BACKUP, ATTRIB, TREE, RECOVER, SORT), which are often
  10972.   removed after installation on both OS/2 and DOS machines, take up 1.2MB.
  10973.  
  10974.   The amount required for swap space will vary according to system load.  The
  10975.   system allocates a minimal swap file on loading; this defaults to a figure
  10976.   based on the physical installed memory (the Information and Planning Guide
  10977.   has a table with the detailed figures), for example, a 6MB swap file for a
  10978.   system with 4MB of memory, a 4MB swap file for an 8MB machine.  The figure
  10979.   can be modified by the user at installation time, or later by modifying the
  10980.   SWAPPATH parameter in CONFIG.SYS.  The installation program also allows the
  10981.   user to set the location of the SWAPPATH to a different partition.  This can
  10982.   be a good idea if the main partition is 30MB or less.
  10983.  
  10984.   If you are choosing the type of machines to use as OS/2 machines, remember
  10985.   that for any environment that uses virtual memory (swapping to disk to create
  10986.   more memory), a fast disk is recommended.  This is an important factor,
  10987.   especially for those who expect to switch frequently and rapidly among a
  10988.   large number of concurrent tasks.
  10989.  
  10990.   Some figures in the industry have criticised the amount of space taken by
  10991.   OS/2 2.0, but there is always a cost associated with high function. In fact,
  10992.   if you consider what OS/2 offers:
  10993.  
  10994.   o   a full DOS environment
  10995.   o   a complete Windows environment
  10996.   o   a copy of the OS/2 kernel and system, with compatibility for both 16- and
  10997.       32-bit applications
  10998.   o   a font manager for both OS/2 and Windows (ATM), plus associated fonts
  10999.   o   a series of utilities, including a file search tool, a charting package,
  11000.       and a personal organiser
  11001.   o   an object-oriented graphical shell
  11002.  
  11003.   and then compare the likely disk space required to assemble all this function
  11004.   under either DOS or Windows (here are some suggested equivalents):
  11005.  
  11006.   o   DOS version 5.0
  11007.   o   Windows 3.0 or 3.1
  11008.  
  11009.  
  11010.                         Appendix B.  Hardware requirements and performance  149
  11011.  
  11012.  
  11013.  
  11014.  
  11015.  
  11016.  
  11017.  
  11018.  
  11019.  
  11020.   o   ATM for Windows
  11021.   o   (For example) XTree Gold, Micrografx Charisma, and Polaris Packrat
  11022.   o   Norton Desktop for Windows
  11023.  
  11024.   then it is likely you have taken at least as much space (and probably more)
  11025.   than OS/2 2.0. (And that's ignoring the extra monetary cost of acquiring
  11026.   these separate third party applications.)
  11027.  
  11028.   Furthermore, the differences between Windows 3.1 and OS/2 2.0 in disk space
  11029.   are exaggerated.  Although Windows will nearly always take less for the base
  11030.   installation, you can see from the above figures that OS/2 2.0 can come
  11031.   within 3 or 4MB of the Windows total.  Moreover, the figures quoted by many
  11032.   people do not mention the fact that if you choose, during Windows
  11033.   installation, to have a permanent swap file (chosen by many Windows users to
  11034.   gain acceptable performance), the default is to take 50% of the free space on
  11035.   your partition.  This can result in an OVERALL disk usage (system plus
  11036.                                          _______
  11037.   swapper) of close to OS/2's and sometimes more (dependent on the size of the
  11038.   partition).  OS/2 allows detailed and granular control over what is
  11039.   installed, so it is at least easy to know what your likely requirements are.
  11040.  
  11041.   Furthermore, many newer applications take large amounts of disk space anyway.
  11042.   A full installation of Word for Windows version 2.0 takes up to 15Mb of disk
  11043.   space. This puts the requirements for the operating system into some
  11044.   perspective.
  11045.  
  11046.   For those concerned about disk space in general, data compression tools such
  11047.   as Stacker, which are available on DOS, are under development for OS/2.  Stac
  11048.   Electronics have announced their intention to produce an OS/2 version of
  11049.   Stacker, which will be available before the end of 1992.  Other vendors are
  11050.   producing OS/2 disk compression tools, which are expected to ship in 1992.
  11051.  
  11052.  
  11053.   PERFORMANCE CONSIDERATIONS
  11054.   __________________________
  11055.  
  11056.   IBM's performance aims for OS/2 2.0 are as follows:
  11057.  
  11058.   o   Close to DOS for single tasking DOS applications
  11059.   o   Close to Windows 3.x for single tasking Windows applications
  11060.   o   Superior to Windows for multi-tasking
  11061.   o   Equivalent to or better than OS/2 1.3
  11062.  
  11063.   It is very important to understand that achieving these aims is subject to
  11064.   the obvious limits on comparing single tasking performance:
  11065.  
  11066.   o   DOS applications which are processor-intensive, or require continual
  11067.       servicing of interrupts, are always going to perform better in DOS where
  11068.       they do not have to share the CPU with other processes. However, despite
  11069.       this, there is little performance loss for most DOS applications in a
  11070.       single tasking scenario in a full screen DOS session. In a windowed
  11071.       session, screen scrolling and update will be affected by runnning the
  11072.       application within a window, and the extra virtualisation that needs to
  11073.       occur. This will particularly affect applications running in graphics
  11074.       mode. If higher performance is required, switch to full screen (the
  11075.       Alt-Home toggle allows flexibility: use full screen most of the time for
  11076.  
  11077.  
  11078.                         Appendix B.  Hardware requirements and performance  150
  11079.  
  11080.  
  11081.  
  11082.  
  11083.  
  11084.  
  11085.  
  11086.  
  11087.  
  11088.       maximum performance, but switch to windowed when interaction with the
  11089.       rest of the system (eg clipboard) is needed.  On the other hand, DOS
  11090.       applications that are disk and I/O-intensive (such as database programs)
  11091.       can perform as much as 200-300% faster, due to the superior caching in
  11092.       the OS/2 FAT system, or using HPFS (see "Enhanced FAT" on page 35). As
  11093.       most applications are a mix of disk and processor operations, comparisons
  11094.       will differ according to the application chosen.
  11095.  
  11096.   o   Although for Windows applications, single tasking scenarios may be
  11097.       between 5 and 20% slower, this is hardly the best basis on which to
  11098.       compare performance (since Windows is supposed to be a multi-tasking
  11099.       environment as well).  The differences mainly relate to application load
  11100.       time (usually caused by the fact that the Windows application often loads
  11101.       into a separate VDM, and then loads its own instance of WIN-OS/2.  (A
  11102.       real comparison would be to add the time to load Windows under DOS to the
  11103.       load time of the Windows application, and compare it to the total under
  11104.       OS/2 2.0).  Running the application in a Full Screen WIN-OS/2 session
  11105.       rather than Seamless sometimes yields better performance.
  11106.  
  11107.   o   In fact, DOS applications often run faster under OS/2 2.0 than under
  11108.       Windows 3.1, particularly disk-intensive applications, due to the
  11109.       superior FAT implementation (see above).
  11110.  
  11111.   o   When considering multiple application scenarios, OS/2 shows its
  11112.       superiority. Even running two applications together can show a big
  11113.       difference between OS/2 2.0 and Windows 3.1. Try, for example, formatting
  11114.       a diskette from the DOS prompt while running another application under
  11115.       Windows 3.1, and compare the operation in OS/2 2.0. In Windows, if the
  11116.       format operation is in foreground, it can starve the background process
  11117.       of processor time, and if put to background, may scarcely progress at
  11118.       all. Under OS/2 2.0 the share of processor load is much more even. This
  11119.       is hardly a heavy processing load.  Another illustrative scenario comes
  11120.       from the testing of National Software Testing Laboratories (NSTL), an
  11121.       independent testing and evaluation organisation:  to load MS Word for
  11122.       Windows on a PS/2 Model 57 with nothing else running takes 7.2 seconds
  11123.       with Windows 3.1 and 9.3 seconds with OS/2 2.0.  If you do the same load
  11124.       with an XCOPY in the background, Windows load time jumps to 41.1 seconds,
  11125.       compared with 15.3 seconds for OS/2.  When more than one task is being
  11126.       done, OS/2's performance advantage becomes evident.  Because of OS/2's
  11127.       superior multi-tasking, it can run background tasks, such as file
  11128.       copying, communications, or spreadsheet recalculation, with no visible
  11129.       impact on foreground work.  With Windows, the cursor movement can lag
  11130.       behind the mouse movement, and displaying of characters can lag behind
  11131.       keyboarding to the point where system becomes almost unusable until the
  11132.       background job is done.
  11133.  
  11134.   Benchmarks from some sources are misleading, and are easily skewed by the
  11135.   choice of scenario. The best guide is to run your own, to simulate your own
  11136.   usage.
  11137.  
  11138.  
  11139.  
  11140.  
  11141.  
  11142.  
  11143.  
  11144.                         Appendix B.  Hardware requirements and performance  151
  11145.  
  11146.  
  11147.  
  11148.  
  11149.  
  11150.  
  11151.  
  11152.  
  11153.  
  11154.   TUNING HINTS
  11155.   ____________
  11156.  
  11157.   When considering overall performance, there are many variables, including how
  11158.   balanced a processing load you want to achieve, or whether you want to give
  11159.   one process as much CPU as possible. Therefore hints can only be generic, and
  11160.   must be considered in the light of specific application requirements.
  11161.   Nevertheless, here are a few basic ideas. More are contained in the chapter
  11162.   on "Optimising Performance" in the OS/2 2.0 Installation and Planning Guide.
  11163.  
  11164.   o   To conserve OS/2 system resources and reduce memory requirements:
  11165.  
  11166.       -   close applications when they are not going to be used again.
  11167.  
  11168.       -   close folders if they are not needed.
  11169.  
  11170.       -   move commonly used functions out of folders and to the desktop, and
  11171.           close the folder that contained the object.
  11172.  
  11173.       -   However, be careful not to overload the desktop - keep only as many
  11174.           objects as you really need
  11175.  
  11176.   o   If certain applications are always used, put them in the Startup folder.
  11177.       This will increase boot time but have everything ready to run
  11178.  
  11179.   o   Pre-initialising the SWAPPER.DAT file at boot time will help if a certain
  11180.       group of applications are always loaded. The setting can be made in the
  11181.       SWAPPATH parameter in CONFIG.SYS. You should be careful to observe swap
  11182.       growth beforehand, and not set the initial swapper too large, lest you
  11183.       have a detrimental effect.
  11184.  
  11185.   o   The cache sizes for FAT and HPFS can improve performance if increased.
  11186.       Experimentation is the best way to discover the right results for your
  11187.       configuration
  11188.  
  11189.   o   Set the system path statements (PATH and LIBPATH especially) based on
  11190.       usage patterns, so that applications are quicker to load.
  11191.  
  11192.   o   Turn off public clipboard and DDE if sharing between Windows and OS/2
  11193.       applications is not required
  11194.  
  11195.   o   Load Windows programs into a single WIN-OS/2 session, except those that
  11196.       require greater protection. Ensure that the DPMI_MEMORY_LIMIT is set
  11197.       appropriately
  11198.  
  11199.   o   If XMS, EMS and DPMI memory are not required (as is the case for many DOS
  11200.       applications), set them to zero in DOS Settings
  11201.  
  11202.   o   DOS Settings parameters can have substantial effect on relative
  11203.       performance of individual applications, and on their effect on others
  11204.       when running in the background.  See "DOS Settings" on page 47  and
  11205.       Version 2.0 Volume 2:  DOS and Windows Environment (GG24-3731-00).
  11206.       _________________________________________________________________
  11207.       Remember that many applications require little attention when in
  11208.       background, as they are usually waiting for input, and can therefore
  11209.       safely be given little CPU.
  11210.  
  11211.  
  11212.                         Appendix B.  Hardware requirements and performance  152
  11213.  
  11214.  
  11215.  
  11216.  
  11217.  
  11218.  
  11219.  
  11220.  
  11221.  
  11222.   APPENDIX C.  FURTHER REFERENCE MATERIALS
  11223.   ________________________________________
  11224.  
  11225.  
  11226.  
  11227.  
  11228.  
  11229.   Here are some useful publications on OS/2 2.0 that are either already
  11230.   available or about to be published:
  11231.  
  11232.  
  11233.   IBM ITSC OS/2 2.0 TECHNICAL COMPENDIUM ("RED BOOKS")
  11234.  
  11235.   This is a detailed and comprehensive description of OS/2 2.0 in five volumes,
  11236.   published by the IBM International Technical Support Center in Boca Raton,
  11237.   Florida (the same location as the development laboratory for OS/2 2.0).  It
  11238.   is essential reading for anyone needing to understand OS/2 2.0 in depth.
  11239.   This guide has borrowed much material from the Red Books.  They can be
  11240.   ordered together, as OS/2 Technical Compendium  (GBOF-2254), or separately,
  11241.                        _________________________
  11242.   as follows:
  11243.  
  11244.       Volume 1: Control Program (GG24-3730-00)
  11245.       Volume 2: DOS and Windows Environment (GG24-3731-00)
  11246.       Volume 3: Presentation Manager (GG24-3732-00).
  11247.       Volume 4: Application Development (GG24-3774-00)
  11248.       Volume 5: Print Subsystem (GG24-3775-00)
  11249.  
  11250.   Another important Red Book is OS/2 Remote Installation and Maintenance
  11251.                                 ________________________________________
  11252.   (GG24-3780-00). This contains practical instructions on how to install OS/2
  11253.   across a LAN, discussing the various approaches.  It will be supplemented, by
  11254.   the end of 1992, by two other books:
  11255.  
  11256.       Automated CID Installation of OS/2 V2.0 (GG24-3783)
  11257.       Automated CID Install of ES 1.0, NTS, LS (GG24-3781)
  11258.  
  11259.   Other red books may be of interest. Here is a selection of some of the ones
  11260.   covering OS/2 and its extensions:
  11261.  
  11262.  
  11263.      GG24-3875-00 LAN SERVER 2.0 NEW FUNCTIONS AND FEATURES
  11264.      GG24-3890-00 NETWARE FROM IBM: NETWORK PROTOCOLS & STANDARDS
  11265.      GG24-3794-00 EXTENDED SERVICES FOR OS/2 DATABASE MGR NEW FEATURES
  11266.      GG24-3781-00 AUTOMATED INSTALL FOR CID ENABLED EXT SERVICES...
  11267.      GG24-3580-01 DEVELOPING A CUA WORKPLACE APPLICATION
  11268.      ZZ81-0295-00 EVALUATION OF OS/2 APPLICATION DEVELOPMENT TOOLS
  11269.      GG24-3641-01 PRACTICAL INTRO TO OBJECT-ORIENTED PROGRAMMING
  11270.      GG24-3822-00 MIGRATING FROM A DOS/WINDOWS ENVIRONMENT TO OS/2
  11271.      GG24-3749-00 MULTIMEDIA APPLICATION ENABLERS & PS/2 ULTIMEDIA
  11272.      GG24-3653-01 IBM PERSONAL SYSTEM/2 MULTIMEDIA FUNDAMENTALS
  11273.  
  11274.  
  11275.   Copies can be ordered through IBM via the publication numbers in parentheses.
  11276.  
  11277.  
  11278.  
  11279.  
  11280.  
  11281.                                   Appendix C.  Further reference materials  153
  11282.  
  11283.  
  11284.  
  11285.  
  11286.  
  11287.  
  11288.  
  11289.  
  11290.  
  11291.   THE OS/2 DEVELOPER (PREVIOUSLY PERSONAL SYSTEMS DEVELOPER)
  11292.  
  11293.   This is a quarterly publication from IBM's US Developer Assistance Program
  11294.   (DAP). Subscriptions can be made direct with the publishers in the US.
  11295.   Contact your local IBM office for details. Its publication number is
  11296.   G362-0001.
  11297.  
  11298.   The OS/2 Developer contains many articles on a wide variety of OS/2 topics,
  11299.   __________________
  11300.   and there have been many articles on OS/2 2.0, and on the system extensions
  11301.   like Database Manager and LAN Server, as well as material on OS/2
  11302.   applications and development tools.
  11303.  
  11304.  
  11305.   PERSONAL SYSTEMS TECHNICAL SOLUTIONS
  11306.  
  11307.   This publication comes from the Personal Systems Competency Center in Dallas,
  11308.   USA. It covers both hardware and software, and contains many useful articles
  11309.   on OS/2 2.0. It is published quarterly. The publication number is different
  11310.   for each issue, but all are of the type G325-50xx-00, where xx is a two digit
  11311.   number. Issues 5012, 5014, 5015, 5016 and 5017 all contain useful articles on
  11312.   OS/2 2.0
  11313.  
  11314.  
  11315.   OS/2 WHITE PAPERS
  11316.  
  11317.   These papers were first issued by IBM in April 1991, and a second set
  11318.   appeared in January 1992.  They are an excellent guide to IBM's OS/2 strategy
  11319.   and future product directions.  They include:
  11320.  
  11321.   o   OS/2 2.0 Considerations: an excellent guide to OS/2 2.0's features,
  11322.       _______________________
  11323.       market positioning, application migration, and future directions
  11324.       (reprinted in the Personal Systems Developer Summer 1991 issue). This
  11325.                         __________________________
  11326.       guide makes use of some of the material in this paper.
  11327.  
  11328.   o   OS/2 LAN Server: a summary of current LAN offerings and future
  11329.       _______________
  11330.       directions.
  11331.  
  11332.   o   OS/2 System Performance Management: an overview of current OS/2 and LAN
  11333.       __________________________________
  11334.       Server parameters and tuning facilities as well as future directions.
  11335.  
  11336.   o   OS/2 System Management: a good overview of current IBM SAA SystemView
  11337.       ______________________
  11338.       facilities in OS/2 environments and future directions.
  11339.  
  11340.   o   OS/2 Database Manager Highlights and Directions: an overview of current
  11341.       _______________________________________________
  11342.       database offerings and future directions.
  11343.  
  11344.   o   OS/2 Communications Manager Highlights and Direction: a detailed overview
  11345.       ____________________________________________________
  11346.       of Communications Manager function.
  11347.  
  11348.   o   OS/2 Performance Considerations: a guide to some of the issues involved
  11349.       _______________________________
  11350.       in tuning performance for OS/2 2.0
  11351.  
  11352.  
  11353.  
  11354.  
  11355.  
  11356.                                   Appendix C.  Further reference materials  154
  11357.  
  11358.  
  11359.  
  11360.  
  11361.  
  11362.  
  11363.  
  11364.  
  11365.  
  11366.   o   OS/2 2.0 Windows environment: an explanation of how the WIN-OS/2
  11367.       ____________________________
  11368.       environment is architected, and what benefits the environment has versus
  11369.       Windows 3.x
  11370.  
  11371.   o   OS/2 LAN Server Positioning: a guide to the relative strengths and
  11372.       ___________________________
  11373.       weaknesses of LAN Server versus Microsoft LAN Manager 2.0 and Novell
  11374.       NetWare 3.11
  11375.  
  11376.   o   OS/2 LAN Server Migration: how to move both clients and servers to OS/2
  11377.       _________________________
  11378.       LAN Server 2.0 from various previous IBM LAN products.
  11379.  
  11380.   o   OS/2: The Bigger Picture: an overview of IBM's OS/2 strategy and future
  11381.       ________________________
  11382.       directions
  11383.  
  11384.   o   Upgrading to OS/2 2.0: a review of the various options in upgrading from
  11385.       _____________________
  11386.       DOS, Windows or OS/2 1.3 to OS/2 2.0, and what is required for each
  11387.       migration path
  11388.  
  11389.   o   Getting Started with the OS/2 Workplace Shell: a brief introduction to
  11390.       _____________________________________________
  11391.       the capabilities of the Workplace Shell. This is worth a read before
  11392.       starting on the shell for the first time
  11393.  
  11394.   o   Client-Server Computing: an overview of the various IBM products that
  11395.       _______________________
  11396.       address the client server environment, including Extended Services for
  11397.       OS/2 and OS/2 LAN Server
  11398.  
  11399.   o   OS/2 2.0: the Development Platform of Choice: reasons why OS/2 2.0 is an
  11400.       ____________________________________________
  11401.       excellent target for developers, including a review of the range of
  11402.       various development tools available
  11403.  
  11404.   The White Papers can be obtained from your IBM representative. They are on
  11405.   the IBM MKTTOOLS disk as WPAPERS and WPAPERS2 packages. They can be copied
  11406.   and distributed to anyone who wants to understand about OS/2.
  11407.  
  11408.  
  11409.   IBM OS/2 INFORMATION
  11410.  
  11411.   IBM has published a variety of brochures and information about OS/2.  Here is
  11412.   a selection, with the publication numbers.  These can be obtained from your
  11413.   dealer or IBM representative. Please note the following list is specific to
  11414.   those issued in Europe. Local publication numbers may vary, and some
  11415.   brochures may not be available in all countries. Contact your local IBM
  11416.   representative for a list relating to your country.
  11417.  
  11418.  
  11419.  
  11420.  
  11421.  
  11422.  
  11423.  
  11424.  
  11425.  
  11426.  
  11427.  
  11428.  
  11429.  
  11430.                                   Appendix C.  Further reference materials  155
  11431.  
  11432.  
  11433.  
  11434.  
  11435.  
  11436.  
  11437.  
  11438.  
  11439.  
  11440.   +---------------------------------------------------------------------------+
  11441.   | Table 11. OS/2 product information                                        |
  11442.   +-----------+--------------------------------------+------------+-----------+
  11443.   +-----------+--------------------------------------+------------+-----------+
  11444.   |           | IBM OS/2 V2.0 Product Information    | G 511      |           |
  11445.   |           |                                      | 1545-01    |           |
  11446.   +-----------+--------------------------------------+------------+-----------+
  11447.   |           | Extended Services for OS/2 Spec      | G 511 1546 |           |
  11448.   |           | sheet                                |            |           |
  11449.   +-----------+--------------------------------------+------------+-----------+
  11450.   |           | OS/2 Local Area Network Server 2.0   | G 511 1554 |           |
  11451.   |           | Spec sheet                           |            |           |
  11452.   +-----------+--------------------------------------+------------+-----------+
  11453.   |           | OS/2 2.0 Decision Maker's Brochure   | G 511 1548 |           |
  11454.   +-----------+--------------------------------------+------------+-----------+
  11455.   |           | The OS/2 partnership                 | G 511 1738 |           |
  11456.   +-----------+--------------------------------------+------------+-----------+
  11457.   |           | OS/2 - The Customer's Choice         | G 511 1739 |           |
  11458.   +-----------+--------------------------------------+------------+-----------+
  11459.   |           | The New OS/2: Wouldn't it be great   | G U20 2020 |           |
  11460.   |           | if...                                |            |           |
  11461.   +-----------+--------------------------------------+------------+-----------+
  11462.   +-----------+--------------------------------------+------------+-----------+
  11463.  
  11464.  
  11465.   IBM OS/2 APPLICATIONS SOLUTIONS DIRECTORY
  11466.  
  11467.   This is a guide, published in the US, listing most of the applications
  11468.   available for OS/2 today.  There are thousands to choose from!  The main
  11469.   guide is orderable through IBM as G362-0002-02, and there is a supplement of
  11470.   32-bit applications (G362-0029) which are either in development or already
  11471.   shipping.
  11472.  
  11473.  
  11474.   CUA VISION MATERIALS
  11475.  
  11476.   This is a video and a companion booklet outlining IBM's vision for the way
  11477.   user interfaces will develop. The booklet includes a demonstration diskette
  11478.   with a graphical demonstration of the principles discussed. Both the video
  11479.   and the diskette offer a fascinating insight into the principles behind the
  11480.   OS/2 Workplace Shell, which embodies the first stages of the vision, and into
  11481.   where the Workplace Shell may be headed in future.
  11482.  
  11483.   The video is orderable as GV26-1004-00 (VHS PAL) or GV26-1003-00 (VHS NTSC)
  11484.   and the booklet as G242-0215-00.
  11485.  
  11486.  
  11487.  
  11488.  
  11489.  
  11490.  
  11491.  
  11492.  
  11493.  
  11494.  
  11495.  
  11496.                                   Appendix C.  Further reference materials  156
  11497.  
  11498.  
  11499.  
  11500.  
  11501.  
  11502.  
  11503.  
  11504.  
  11505.  
  11506.   OS/2 IN THE CORPORATE ENVIRONMENT
  11507.  
  11508.   This is a short book published by Intelligent Environments Ltd, one of the
  11509.   leading vendors of OS/2 developement tools.  It is an independent view of
  11510.   where OS/2 fits in the corporate computing world, including specific examples
  11511.   of where customers are implementing client-server solutions using OS/2 today.
  11512.   Contact Intelligent Environments for details. They are based at:
  11513.  
  11514.        Intelligent Environments Europe Ltd.,     Intelligent Environments Inc.
  11515.        Crystal house                             2 Highwood Drive
  11516.        PO Box 51                                 Tewkesbury
  11517.        Sunbury-on-Thames                         MA 01876
  11518.        Middlesex                                 USA
  11519.        TW16 7UL
  11520.        United Kingdom
  11521.  
  11522.     Tel: +44 (0)932 772266                       Tel: +1 508 640 1080
  11523.     Fax: +44 (0)932 771499                       Fax: +1 508 640 1090
  11524.  
  11525.  
  11526.   OS/2 NOTEBOOK
  11527.  
  11528.   This is a book from Microsoft Press, edited by Dick Conklin, who is the
  11529.   editor of the Personal Systems Developer, containing the best of articles
  11530.                 __________________________
  11531.   from that publication.  It includes a wide range of articles on OS/2 2.0 and
  11532.   its extensions like Extended Services and OS/2 LAN Server. Its ISBN number is
  11533.   1-55615-316-3.
  11534.  
  11535.  
  11536.   THE DESIGN OF OS/2
  11537.  
  11538.   This book is co-written by Mike Kogan, one of the OS/2 2.0 System Architects,
  11539.   and H.M. Deitel. It is published by Addison-Wesley (ISBN 0-201-54889-5). The
  11540.   following paragraph is from the publisher's abstract:
  11541.  
  11542.       The primary goal of The Design Of OS/2 is to provide insights into
  11543.                           __________________
  11544.       the design decisions and philosophy of the OS/2 operating system.  It
  11545.       discusses the motivation, architecture, and realization of OS/2 in
  11546.       the personal computing marketplace.  The design of the major
  11547.       components of OS/2 are described in terms of their API architecture,
  11548.       internal data structures, and algorithms.  Each area focuses on
  11549.       bridging operating systems theory to the realization of the design
  11550.       and implementation of OS/2.  Where it is significant, an objective
  11551.       comparison of the technical aspects of OS/2 and other operating
  11552.       environments is provided.  A key thrust is to describe the evolution
  11553.       of personal computer operating systems from DOS through 16-bit OS/2
  11554.       and 32-bit OS/2.
  11555.  
  11556.  
  11557.  
  11558.  
  11559.  
  11560.  
  11561.  
  11562.  
  11563.  
  11564.                                   Appendix C.  Further reference materials  157
  11565.  
  11566.  
  11567.  
  11568.  
  11569.  
  11570.  
  11571.  
  11572.  
  11573.  
  11574.   OTHER OS/2 BOOKS
  11575.  
  11576.   There are a variety of books published on OS/2, including many new titles for
  11577.   OS/2 2.0. Here are a few of the titles:
  11578.  
  11579.   o   Using OS/2 by Barry Nance and Greg Chicares, from Que books (ISBN
  11580.       __________
  11581.       0-88022-863-6)
  11582.   o   Now that I have OS/2 2.0 on my Desk - What do I do next? by Stephen
  11583.       ________________________________________________________
  11584.       Levenson and Eli Hertz, published by Van Nostrand Reinhold (ISBN
  11585.       0-442-01227-6)
  11586.   o   Inside OS/2 2.0, by Mark Minasi, John W. Little, Marlene Semple and Bill
  11587.       _______________
  11588.       Camarda, from New Riders Publishing (ISBN 1-56205-045-1)
  11589.   o   OS/2 2.0 Quick Reference, by Barry Nance, from Que books (ISBN
  11590.       ________________________
  11591.       1-56529-068-2)
  11592.   o   Stepping Up To OS/2 2.0, by Robert Albrecht and Michael Plura, from
  11593.       _______________________
  11594.       Abacus (ISBN 1-55755-160-X)
  11595.   o   OS/2 2.0 Complete, by Peter Franken, from Abacus (ISBN 1-55755-157-X)
  11596.       _________________
  11597.   o   Integrating Applications with OS/2 2.0, by William Zach, from Van
  11598.       ______________________________________
  11599.       Nostrand Reinhold (ISBN 0-44201-234-9)
  11600.   o   Client-Server Programming with OS/2 2.0 by Bob Orfali and Dan Harkey,
  11601.       _______________________________________
  11602.       from Van Nostrand Reinhold (ISBN 0 442-01219-5)
  11603.   o   Writing OS/2 Device Drivers in C, by Steve Mastrianni, from Van Nostrand
  11604.       ________________________________
  11605.       Reinhold (ISBN 0 442-01141-5)
  11606.   o   OS/2 Presentation Manager GPI, by Graham Winn, from Van Nostrand Reinhold
  11607.       _____________________________
  11608.       (ISBN 0-442-00468-0)
  11609.   o   Learning to Program OS/2 2.0 PM by Example, by Stephen A.  Knight, from
  11610.       __________________________________________
  11611.       Van Nostrand Reinhold (ISBN 0-442-01292-6)
  11612.   o   OS/2 Application Development Tools by Brian Proffit, from Premier
  11613.       __________________________________
  11614.       Publishing (ISBN 1-881899-00-4)
  11615.   o   Converting Applications to OS/2, by David Moskowitz et al, from Brady
  11616.       _______________________________
  11617.       Press (ISBN 0-13-171943-2)
  11618.   o   OS/2 2.0: The Usable, Portable Guide, by John Haber and Herbert R. Haber,
  11619.       ____________________________________
  11620.       from Usable Portable Publications Inc., (ISBN 0-945965-27-4)
  11621.  
  11622.   At the time of writing, four other books were about to made available. ISBN
  11623.   numbers were not obtainable, but IBM order numbers are supplied here:
  11624.  
  11625.  
  11626.     G362-0014   THE OS/2 2.0 USER'S GUIDE FOR THE WORKPLACE SHELL by Maria Tyne
  11627.                 from Computer Information Associates,
  11628.  
  11629.     G362-0010   THE COBOL PRESENTATION MANAGER PROGRAMMING GUIDE by David M.Dill
  11630.                 Published by Van Nostrand Reinhold
  11631.  
  11632.     G362-0012   COMPREHENSIVE PERFORMANCE FOR THE OS/2 2.0 DATABASE MANAGER by
  11633.                 Bruce Tate, Tim Malkemus, and Terry Gray (IBM, Austin, TX).
  11634.                 Published by Van Nostrand Reinhold
  11635.  
  11636.     G362-0013   C PROGRAMMING IN THE OS/2 2.0 ENVIRONMENT by V. Mitra Gopaul.
  11637.                 Published by Van Nostrand Reinhold
  11638.  
  11639.  
  11640.   The book by Barry Nance sold its first print run in a few weeks, and moved
  11641.   into the top ten computer titles.  Even Steve Mastrianni's book, which
  11642.  
  11643.  
  11644.                                   Appendix C.  Further reference materials  158
  11645.  
  11646.  
  11647.  
  11648.  
  11649.  
  11650.  
  11651.  
  11652.  
  11653.  
  11654.   addresses a more specific audience, is already into its first reprint.  In
  11655.   October, it was announced that the Barnes and Noble computer book bestseller
  11656.   list contained three of the above OS/2 books, for 17 consecutive weeks.  The
  11657.   books were the ones by Orfali and Harkey, Minasi et al., and Levenson and
  11658.   Hertz.  Sales of books are often regarded as one of the signs of a
  11659.   flourishing platform (witness the sales in books about Lotus 1-2-3,
  11660.   WordPerfect, and Windows).  This indicator also shows the amount of interest
  11661.   there is now in OS/2.
  11662.  
  11663.   In fact, OS/2 books are not only appearing in English. An indicator of the
  11664.   success of OS/2 is that books in national languages are appearing, a
  11665.   testimony not only to the strength of OS/2 in the countries involved, but
  11666.   also of its widespread appeal (books in English would usually be considered
  11667.   to reach a wider market, especially among computer experts, but OS/2's appeal
  11668.   to end users means a viable market at which to target books in the native
  11669.   language.)  Here is a list of some OS/2 books written and published in
  11670.   Germany:
  11671.  
  11672.  
  11673.     "OS/2 2.0, Grundlagen und Praxis"
  11674.              von Hans Fremuth (mit Vorwort von H. Kahl) im tewi Verlag
  11675.              (in deutscher Sprache)
  11676.              ISBN 3-89362-212-8
  11677.  
  11678.     "OS/2 2.0, Das Kompendium"
  11679.              von Olaf Koch, Norbert Meder und Peter Scheuber (mit Beitrugen
  11680.              von Whittle und Pignatelli) im Verlag Markt & Technik
  11681.              (in deutscher Sprache)
  11682.              ISBN 3-87791-302-2
  11683.  
  11684.     "OS/2 - 2.0, Der Data Becker Fuhrer"
  11685.              im Verlag DATA BECKER
  11686.              (in deutscher Sprache)
  11687.              ISBN 3-89011-637-X
  11688.  
  11689.     "OS/2 Version 2 deutsch, Das Data Becker Handbuch"
  11690.              von Peter Franken im Verlag DATA BECKER
  11691.              (in deutscher Sprache)
  11692.              ISBN 3-89011-505-5
  11693.  
  11694.     "Von DOS und Windows nach OS/2 2.0, Tips & Tricks"
  11695.              von Robert M.  Albrecht und Michael Plura im Verlag DATA BECKER
  11696.              (in deutscher Sprache)
  11697.              ISBN 3-89011-543-8
  11698.  
  11699.  
  11700.  
  11701.  
  11702.  
  11703.  
  11704.  
  11705.  
  11706.  
  11707.  
  11708.  
  11709.  
  11710.                                   Appendix C.  Further reference materials  159
  11711.  
  11712.  
  11713.  
  11714.  
  11715.  
  11716.  
  11717.  
  11718.  
  11719.  
  11720.  
  11721.     "Schnell Anleitung OS/2 Version 2 deutsch"
  11722.              im Verlag DATA BECKER
  11723.              (in deutscher Sprache)
  11724.              ISBN 3-89011-658-2
  11725.  
  11726.     "QuickStart OS/2 2.0, Der Einsteig in 20 Schritten"
  11727.              von Harald Babiel im SYBEX Verlag
  11728.              (in deutscher Sprache)
  11729.              ISBN 3-88745-859-1
  11730.  
  11731.  
  11732.  
  11733.   OS/2 MONTHLY
  11734.  
  11735.   This is an independent magazine dedicated to news, views and technical
  11736.   information about OS/2. It is published by:
  11737.  
  11738.       JDS Publishing
  11739.       PO Box 4351
  11740.       Highland Park
  11741.       NJ 08904
  11742.       USA
  11743.  
  11744.       Tel: +1-908-247-0952
  11745.  
  11746.  
  11747.   MOVING TO THE WORKPLACE SHELL VIDEO
  11748.  
  11749.   This video (part number 41G5097) guides the new user of OS/2 2.0 through the
  11750.   Workplace Shell.  It is meant to be a light and enjoyable introduction to the
  11751.   capabilities of the shell, to encourage you to explore for yourself.
  11752.  
  11753.  
  11754.   OS/2 FREQUENTLY ASKED QUESTIONS (FAQ)
  11755.  
  11756.   This document, maintained by Timothy F. Sipples (sip1@ellis.uchicago.edu), is
  11757.   an excellent basic reference to many common questions and answers about OS/2.
  11758.   It is available in electronic form on most of the bulletin board systems
  11759.   mentioned in Appendix D, "OS/2 Bulletin Board Systems" on page 161.  It is
  11760.   just one example of many of the excellent reference materials and tools made
  11761.   available by OS/2 enthusiasts around the world, on bulletin board systems.
  11762.  
  11763.  
  11764.   OS/2 2.0 INFORMATION AND PLANNING GUIDE
  11765.  
  11766.   This publication (G326-0160-00) gives an overview of OS/2 2.0 function, as
  11767.   well as assistance in estimating memory and disk space requirements.  It is
  11768.   recommended for anyone planning to install OS/2 2.0 on a number of machines.
  11769.   Guides are also available for Extended Services for OS/2 (G326-0161-00) and
  11770.   OS/2 LAN Server (G326-0162-00).
  11771.  
  11772.  
  11773.  
  11774.  
  11775.  
  11776.                                   Appendix C.  Further reference materials  160
  11777.  
  11778.  
  11779.  
  11780.  
  11781.  
  11782.  
  11783.  
  11784.  
  11785.  
  11786.   APPENDIX D.  OS/2 BULLETIN BOARD SYSTEMS
  11787.   ________________________________________
  11788.  
  11789.  
  11790.  
  11791.  
  11792.  
  11793.   Bulletin board systems (BBS) are often a good way of getting information
  11794.   about OS/2, whether technical support, news or useful utilities.  In many
  11795.   countries, IBM runs a BBS as a means of customer support; but there are also
  11796.   many other BBSs run by OS/2 enthusiasts. Here is a list of some of the BBSs:
  11797.  
  11798.  
  11799.   IBM BULLETIN BOARDS
  11800.   ___________________
  11801.  
  11802.   Not all countries operate a BBS. Here is a list of some of the countries that
  11803.   do, with the connection details:
  11804.  
  11805.      IBM Sweden
  11806.  
  11807.         Phone: 46+8-7932200 Dealers       46+8-7934222 Customers
  11808.         Lines: 10 Lines
  11809.         Speed: 1200-14400 Connection rate (V.32 and MNP)
  11810.                10 USR DS 14400 modems
  11811.  
  11812.      ********************************************************
  11813.  
  11814.      IBM Austria
  11815.  
  11816.      IBM Bulletin Board System Austria:
  11817.  
  11818.         Phone: 043-222-21145-6600
  11819.         Speed: 9600
  11820.         Lines: 2
  11821.  
  11822.      ********************************************************
  11823.  
  11824.      IBM Germany
  11825.  
  11826.      IBM Bulletin Board System Germany
  11827.  
  11828.         Fidonet : 2:241/7411.0@FIDONET
  11829.         Phone   : 049-711-785-7777
  11830.  
  11831.      ********************************************************
  11832.  
  11833.      IBM Canada
  11834.  
  11835.      Canadian Sofware Support Center, specializing in OS/2 and OS/2 support.
  11836.  
  11837.       Vancouver - 604-664-6464             Montreal  - 514-938-3122
  11838.       Toronto   - 416-946-4244 or 4255
  11839.  
  11840.      ********************************************************
  11841.  
  11842.  
  11843.  
  11844.                                   Appendix D.  OS/2 Bulletin Board Systems  161
  11845.  
  11846.  
  11847.  
  11848.  
  11849.  
  11850.  
  11851.  
  11852.  
  11853.  
  11854.      IBM Switzerland
  11855.  
  11856.      Name:  IBM-BBS HITLINE Communications
  11857.      Phone: 0041 56 321 800 (16 lines/14000 Baud)
  11858.      ISDN:  0041 56 320 589 (1 line/128kBits/s)
  11859.  
  11860.      *********************************************************
  11861.  
  11862.      IBM Denmark
  11863.  
  11864.        Name: IBM OS/2 BBS
  11865.        Phone: + 45 42 88 72 22
  11866.        Lines: 3 lines
  11867.        Speed: 9600 (V32 and MNP)
  11868.        Location: Lyngby, Denmark
  11869.  
  11870.      ********************************************************
  11871.  
  11872.      IBM Belgium
  11873.  
  11874.      International BBS name :    The IBM Belgium BBS
  11875.      In country BBS name    :    End-User Node.
  11876.      Location: IBM Belgium s.a.  J.F.Kennedylaan 2, B-1831 Diegem.
  11877.      Modem number :              32-2-725.60.10
  11878.                                  8 lines, up to 9600 bps, 8,n,1, V32  24/24
  11879.                                  No MNP4 no MNP4.
  11880.  
  11881.      ********************************************************
  11882.  
  11883.      IBM USA
  11884.  
  11885.      IBM National Support Center BBS, located in Atlanta GA.
  11886.  
  11887.      1-404-835-6600 =>  First available modem
  11888.      1-404-835-6296 =>  First available Hayes Ultra
  11889.      1-404-835-5300 =>  First available USR V.32bis with ASL
  11890.      1-404-835-5578 =>  First available IBM 7855 model 10
  11891.  
  11892.      ********************************************************
  11893.  
  11894.      IBM Finland
  11895.  
  11896.      IBM OS/2 Bulletin Board System
  11897.  
  11898.            Phone: +358-0-480 422
  11899.            Speed: 9600, 8, n, 1
  11900.  
  11901.      ********************************************************
  11902.  
  11903.  
  11904.  
  11905.  
  11906.  
  11907.  
  11908.  
  11909.  
  11910.                                   Appendix D.  OS/2 Bulletin Board Systems  162
  11911.  
  11912.  
  11913.  
  11914.  
  11915.  
  11916.  
  11917.  
  11918.  
  11919.  
  11920.      IBM Spain
  11921.  
  11922.      Bulletin Board System IBM OS/2
  11923.  
  11924.       Phone: 34 1 397 55 80      34 1 397 58 73
  11925.              34 1 397 55 81      34 1 397 59 63
  11926.       Speed: 9600, 8, n, 1
  11927.  
  11928.      ********************************************************
  11929.  
  11930.      IBM UK
  11931.  
  11932.      Phone: +44-(0)256-336655 (>12000 - V.32 MNP-5)
  11933.      Lines: 15
  11934.  
  11935.      ********************************************************
  11936.  
  11937.  
  11938.      IBM Israel
  11939.  
  11940.      Phone: 049-711-785-7777
  11941.      Additional Info: 2:241/7411.0@FIDONET
  11942.  
  11943.      ********************************************************
  11944.  
  11945.  
  11946.      IBM Netherlands
  11947.  
  11948.      Phone: +31 (0)20-6974757
  11949.      Additional Info: Lines 8 Courier Dual Standard 14K4
  11950.  
  11951.      ********************************************************
  11952.  
  11953.  
  11954.      IBM Norway
  11955.  
  11956.      Phone: 47-2-999450
  11957.  
  11958.      ********************************************************
  11959.  
  11960.  
  11961.      ISM South Africa
  11962.  
  11963.      Phone: 27.11.224.2000
  11964.      Info - Lines: 47 55 81
  11965.             Speed: 9600,8,n,1 (V32 and MNP)
  11966.  
  11967.      ********************************************************
  11968.  
  11969.  
  11970.   OTHER BBSS
  11971.   __________
  11972.  
  11973.   The following information was provided by the US OS/2 Support Line:
  11974.  
  11975.  
  11976.  
  11977.                                   Appendix D.  OS/2 Bulletin Board Systems  163
  11978.  
  11979.  
  11980.  
  11981.  
  11982.  
  11983.  
  11984.  
  11985.  
  11986.  
  11987.  
  11988.     O S / 2   B B S ' s   A C R O S S   T H E   W O R L D
  11989.     -----------------------------------------------------
  11990.  
  11991.     This list is a compilation of OS/2 BBS's across the world.  If you wish to
  11992.     make an addition or correction to this list, please send the information to
  11993.     the following (as netmail or logged onto the BBS itself):
  11994.  
  11995.     BBS      : LiveNet, 1:170/110@fidonet, (918) 481-5715
  11996.     Location : Tulsa, OK, USA
  11997.     Sysop    : Dave Fisher
  11998.  
  11999.     This list is distributed to many FidoNet nodes found in this OS/2 BBS listing
  12000.     via the Fernwood distribution system.  All BBS's listed are in alphabetical
  12001.     order by country, and then by BBS name.  Unless otherwise noted, all node
  12002.     addresses are FidoNet.
  12003.  
  12004.     A current list can always be file-requested from LiveNet as 'OS2WORLD'.
  12005.  
  12006.                                      Enjoy!
  12007.  
  12008.  
  12009.     Last Update: May 14, 1992
  12010.  
  12011.     Legend:  * : OS/2 is primary interest of board
  12012.              F : Board is a FidoNet node
  12013.              % : Entry is new or changed as of last list
  12014.             -A : HST, MNP modem
  12015.             -B : HST, MNP V.32 (and/or V.42) modem
  12016.             -C : HST, MNP V.32bis/V.42bis modem
  12017.             -D : MNP V.32/V.42bis modem
  12018.             -E : MNP V.32 modem
  12019.  
  12020.     USA BBS's show states, International BBS's show three letter country codes.
  12021.  
  12022.     -----------------------------------------------------------------------------
  12023.  
  12024.     Graham Stair          3M Australia            +61-2-498-9184   Aus 9600-E * F
  12025.     Ian Watson            OZ-Share OS/2 BBS       +61-7-398-3759   Aus 9600-E * F
  12026.     Alan Salmon           PC User's Group         +61-6-259-1244   Aus 2400
  12027.     Felix Tsang           Programmer's BBS        +61-2-875-1296   Aus 9600-E * F
  12028.     Bill Bolton           Software Tools Mail Exc +61-2-449-2618   Aus 9600-E * F
  12029.                                                   +61-2-449-9477   Aus 9600-E * F
  12030.     John Della-Torre      The Poet's Dilemma      +61-2-804-6412   Aus 2400-E
  12031.     Norbert Fuerst        The Styrian OS/2 Jumbo  +43-316-673237   Aus 9600-A * F
  12032.     Danny Bruggeman       Hellfire                +32-2-7515203    Bel 9600-D * F
  12033.     Bas Heijermans        Moving Sound OS/2 BBS   +32-3-3850748    Bel 9600-D * F
  12034.     Benoit HUON           Os/2 MANiA BELGIUM      +32-2-3872021    Bel 9600-D * F
  12035.     Tony Bearman          Bear Garden             (604) 533-1867   Can 9600-C * F
  12036.     Chris Ange-Schultz    Home Front BBS          (514) 769-5174   Can 2400   * F
  12037.     Peter Fitzsimmons     RT Labs                 (416) 867-9663   Can 9600-B * F
  12038.     Gerry Rozema          The Idle Task           (604) 273-5588   Can 14.4-B * F
  12039.     Jerry Stevens         The Locutory            (613) 722-0489   Can 9600-D * F
  12040.     Alec Herrmann         The Nibble's Roost      (604) 244-8009   Can 14.4-B * F
  12041.  
  12042.  
  12043.                                   Appendix D.  OS/2 Bulletin Board Systems  164
  12044.  
  12045.  
  12046.  
  12047.  
  12048.  
  12049.  
  12050.  
  12051.  
  12052.  
  12053.     Kevin Lowey           University of Saskatche (306) 966-4857   Can 14.4-C * F
  12054.     Jorgen Ollgaard       Josti-BBS               +45-47-380120    Den 9600-C * F
  12055.                                                   +45-47-380524    Den 9600-C * F
  12056.     Rene Carlsen          OS/2 Task & FrontDoor H +45-98451070     Den 9600-A * F
  12057.     Emmanuel Sandorfi     Os/2 MANiA (Help Maximu +33-164-090460   Fra 9600-C * F
  12058.     Romeo Bernreuther     CCWN-BOX                +49-7151-68434   Ger 14.4-B * F
  12059.     Peter Plischka        IBM Mailbox             +49-201-210744   Ger 9600-C * F
  12060.                                                   +49-201-295181   Ger 9600-B * F
  12061.     Juergen Berger        JERRY'S OS/2-BBS        +49-6134-26563   Ger 2400-A * F %
  12062.     Oliver Lass           LRZ-System              +49-228-331214   Ger 2400   *
  12063.                                                   +49-228-334372   Ger 9600-D *
  12064.     Oliver Schwabedissen  MoonFlower              +49-6145-31602   Ger 9600-C * F
  12065.     Richard Clement       OS/2 Express            +49-6183-74270   Ger 9600-D * F
  12066.     Harald Kipp           OS/2 Point              +49-234-9279222  Ger 9600-B * F
  12067.     Michael Breukel       PC Softbox OS/2         +49-6196-27799   Ger 2400   * F
  12068.     Markus Noller         Second Source           +49-7191-56267   Ger 2400   * F
  12069.     Kalle Braun           Terrania City           +49-228-317752   Ger 14.4-B   F
  12070.     Thomas Tegel          The CAT                 +49-7971-72446   Ger 14.4-D * F %
  12071.     Karlheinz Kissel      The_File_Store          +49-6106-22266   Ger 9600-C * F
  12072.     Chris Leuder          Zaphod BBS              +49-228-262894   Ger 14.4-B   F
  12073.                                                   +49-228-229147   Ger 2400     F
  12074.     Joop Mellaart         INFOBOARD               +31-4752-6200    Hol 2400   * F
  12075.     Marcel Stikkelman     PC-Square               +31-79-424107    Hol 14.4-C * F
  12076.     Pasquale Cantiello    FastForward BBS         +39-823-812099   Ita 14.4-C * F
  12077.     Luigi Ravina          Italy Network           +39-11-8180069   Ita 9600-A * F
  12078.     Roberto Sonzogni      Runnin' with The Devil  +39-363-302798   Ita 9600-C * F
  12079.     Dave Jones            The TJD Support BBS     +31-1720-38558   Net 9600-A *
  12080.     Terje Slydahl         PerlePorten             +47-83-33003     Nor 9600-C * F
  12081.                                                   +47-83-33003     Nor 2400   * F
  12082.     Alex Wyss             Gepard's Oracle Zuerich +41-1-3637037    Swi 14.4-C * F
  12083.     Michael Buenter       MICS OS/2 Paradise      +41-41-538607    Swi 9600-C * F
  12084.     Ernesto Hagmann       PC-Info                 +41-61-9412204   Swi 9600-C * F
  12085.     Mike Gove             MonuSci CBCS            +44-454-633197   UK  9600-C * F
  12086.     Phil Tuck             The TJD Support BBS     +44-535-665345   UK  9600-C *
  12087.                                                   +44-535-665345   UK  9600-A *
  12088.     Patrick O'Riva        AsmLang and OS/2        (408) 259-2223   CA  14.4-B * F
  12089.     Steve Lesner          Bullet BBS              (203) 329-2972   CT  9600-B * F %
  12090.                                                   (203) 322-4135   CT  9600-B * F %
  12091.     Jim Dailey            Cajon Zone OS/2         (619) 588-6634   CA  9600-D * F
  12092.     Bob Germer            Capital City BBS        (609) 386-1989   NJ  14.4-C * F
  12093.     Dennis Conley         Communitel OS/2 BBS     (702) 399-0486   NV  14.4-C * F
  12094.     Emmitt Dove           Fernwood                (203) 483-0348   CT  9600-C * F
  12095.                                                   (203) 481-7934   CT  14.4-B * F
  12096.     Bill Cook             GREATER CHICAGO Online! (708) 895-4042   IL  9600   * F
  12097.     Bogie Bugsalewicz     I CAN! BBS              (312) 736-7434   IL  9600-C   F
  12098.                                                   (312) 736-7388   IL  2400     F
  12099.     n/a                   IBM National Support Ce (404) 835-6600   GA  2400
  12100.                                                   (404) 835-5300   GA  9600-C
  12101.     Ed June               Information Overload    (404) 471-1549   GA  9600-A * F
  12102.     James Chance          Lee's Lounge            (410) 721-9452   MD  14.4-B * F
  12103.     Robert McA            Live-Wire               (214) 307-8119   TX  9600-B   F
  12104.     Dave Fisher           LiveNet                 (918) 481-5715   OK  16.8-C * F
  12105.     Chuck Gilmore         Magnum BBS              (805) 582-9306   CA  9600-C *
  12106.     Joe Salemi            Max's Doghouse          (703) 548-7849   VA  2400-A * F
  12107.  
  12108.  
  12109.                                   Appendix D.  OS/2 Bulletin Board Systems  165
  12110.  
  12111.  
  12112.  
  12113.  
  12114.  
  12115.  
  12116.  
  12117.  
  12118.  
  12119.     Paul Breedlove        Multi-Net               (503) 883-8197   OR  9600-C *
  12120.     Ron Bemis             Nibbles & Bytes         (214) 231-3841   TX  9600-A   F
  12121.     Craig Swanson         OS/2 Connection         (619) 558-9475   CA  14.4-D * F
  12122.     Pete Norloff          OS/2 Shareware          (703) 385-4325   VA  9600-C * F
  12123.                                                   (703) 385-0931   VA  9600-C * F
  12124.     Brady Flowers         Oberon Software         (507) 388-1154   MN  14.4-C *
  12125.     Unknown               Omega-Point BBS         (714) 963-8517   CA  2400
  12126.     Paul Beverly          PMSC OnLine Resource    (803) 735-6101   SC  2400   * F
  12127.     Louis F. Ursini       Quantum Leap            (215) 967-9018   PA  2400
  12128.     Ken Rucker            RucK's Place/2          (817) 485-8042   TX  14.4-C * F
  12129.     Randy Edwards         Socialism OnLine!       (719) 392-7781   CO  9600-B * F
  12130.     Ed Barboni            System-2 RBBS           (215) 631-0685   PA  9600-D   F
  12131.                                                   (215) 584-1413   PA  9600-D   F
  12132.     Mark Lehrer           The Akron Anomoly       (216) 688-6383   OH  9600-C   F
  12133.     Bill Schnell          The Asylum BBS          (918) 832-1462   OK  9600-B * F
  12134.     Felix Tang            The Excelsior           (203) 466-1826   CT  14.4-C * F
  12135.                                                   (203) 466-1892   CT  2400   * F
  12136.     Bob Hatton            The Monster BBS         (908) 382-5671   NJ  9600-A *
  12137.     Woody Sturges         The OS/2 Woodmeister    (314) 446-0016   MO  14.4-C * F
  12138.     Troy Kraser           The Other World         (904) 893-2404   FL  9600-D   F
  12139.     Mark Wheeler          The SandDollar          (407) 784-4507   FL  9600-A * F
  12140.     Art Fellner           The Soldier's Bored     (713) 437-2859   TX  9600-C * F
  12141.     Bill Andrus           The Systems Exchange    (703) 323-7654   VA  9600-A * F
  12142.     Unknown               WSI BBS                 (901) 386-4712   TN  2400
  12143.  
  12144.     ------------------------------------------------------------------------------
  12145.  
  12146.  
  12147.  
  12148.  
  12149.  
  12150.  
  12151.  
  12152.  
  12153.  
  12154.  
  12155.  
  12156.  
  12157.  
  12158.  
  12159.  
  12160.  
  12161.  
  12162.  
  12163.  
  12164.  
  12165.  
  12166.  
  12167.  
  12168.  
  12169.  
  12170.  
  12171.  
  12172.  
  12173.  
  12174.  
  12175.                                   Appendix D.  OS/2 Bulletin Board Systems  166
  12176.  
  12177.  
  12178.  
  12179.  
  12180.  
  12181.  
  12182.  
  12183.  
  12184.                          IBM
  12185.  
  12186.  
  12187.  
  12188.  
  12189.  
  12190.                          Printed in U.S.A.
  12191.  
  12192.  
  12193.  
  12194.  
  12195.  
  12196.  
  12197.  
  12198.  
  12199.  
  12200.  
  12201.  
  12202.  
  12203.  
  12204.  
  12205.  
  12206.  
  12207.  
  12208.  
  12209.  
  12210.  
  12211.  
  12212.  
  12213.  
  12214.  
  12215.  
  12216.  
  12217.  
  12218.  
  12219.  
  12220.  
  12221.  
  12222.  
  12223.  
  12224.  
  12225.  
  12226.  
  12227.  
  12228.  
  12229.  
  12230.  
  12231.  
  12232.  
  12233.  
  12234.  
  12235.  
  12236.  
  12237.  
  12238.  
  12239.  
  12240.  
  12241.  
  12242.  
  12243.  
  12244.  
  12245.  
  12246.  
  12247.  
  12248. 'KP' WOULD EXCEED MAXIMUM SIZE.
  12249. '.EDFETABL' LINE 140: .ta table off
  12250. '.EDFETABL' WAS IMBEDDED AT LINE 6995 OF 'OS2TECH'
  12251. TABLE SPLIT ON PAGE 138.
  12252. '.EDFETABL' WAS IMBEDDED AT LINE 6995 OF 'OS2TECH'
  12253. STARTING PASS 2 OF 2.
  12254. 'KP' WOULD EXCEED MAXIMUM SIZE.
  12255. '.EDFETABL' LINE 140: .ta table off
  12256. '.EDFETABL' WAS IMBEDDED AT LINE 6995 OF 'OS2TECH'
  12257. TABLE SPLIT ON PAGE 138.
  12258. '.EDFETABL' WAS IMBEDDED AT LINE 6995 OF 'OS2TECH'
  12259. TEXT EXCEEDS RIGHT PAGE BOUNDARY ON PAGE 138.
  12260. TEXT EXCEEDS RIGHT PAGE BOUNDARY ON PAGE 139.
  12261. TEXT EXCEEDS RIGHT PAGE BOUNDARY ON PAGE 165.
  12262. TEXT EXCEEDS RIGHT PAGE BOUNDARY ON PAGE 166.
  12263.  
  12264.  
  12265.  
  12266.  
  12267.  
  12268.  
  12269.  
  12270.  
  12271.  
  12272.  
  12273.  
  12274.  
  12275.  
  12276.  
  12277.  
  12278.  
  12279.  
  12280.  
  12281.  
  12282.  
  12283.  
  12284.  
  12285.  
  12286.  
  12287.  
  12288.  
  12289.  
  12290.  
  12291.  
  12292.  
  12293.  
  12294.  
  12295.  
  12296.  
  12297.  
  12298.  
  12299.  
  12300.  
  12301.  
  12302.  
  12303.  
  12304.  
  12305.  
  12306.  
  12307.  
  12308.  
  12309.  
  12310.  
  12311.