Bonum Certa Men Certa

OS/2 Windows comparison

Date: 1989




To: Frank King; Rick Faulk; Frank Ingari; David Reed; Bruce Johnston; Al Stoddard From: Semmes Walch Subject: Windows vs. OS/2 Comparison Date: October 18, 1989

Two documents are attacked, which compare OS/2 and Windows. Both are part of a Lotus/IBM project to develop a presentation within IBM, conveying the relative advantages of OS/2

The first document is what we're providing to IBM. Entitled "Comparison of OS/2 and Windows", it compares the two environments from a technical as well as a business perspective. At its heart is comparative chart listing OS/2 and Windows 3's differences and their impact on developers and end users. The chart is followed by a non-technical explanation of each difference.

The material for the first document was compiled primarily from discussions with Ray Ozzie and David Reed. Thanks go to David for editing and reviewing the paper as a whole.

The second document, entitled "Why OS/2", is the current vesion of the IBM internal presentation, which makes use of the material we have provided. It is IBM Confidential material so please use discretion in distributing it.

Please let me know if you have questions or suggestions about either of the documents.




  • OS/2 is the best choice for the modern application environment

  • Personal computers are now the platform for mission critical line of business applications, supporting multiple applications on a sing;e PC, with transparent network communications.

    OS/2 provides the required enabling thechologies for this application environment today, and these enabling technologies will be developed even further as OS/2 matures.

    Windows provides insufficient enabling technologies, and Windows future expansion is severely constrained by DOS's limitations and Windows 4 year old internal architecture.


  • OS/2 is the best choice for the modern application environment

  • Personal computers are now the platform for mission critical line of business applications, supporting multiple applications on a single PC, with transparent network communications.

    OS/2 provides the required enabling technologies for this application environment today, and these enabling technologies will be developed even further as OS/2 matures.

    Windows provides insufficent enabling technologies, and Window's future expansion is severely constrained by DOS's limitations and Windows's 4 year old internal architecture.

  • There is no hardware platform where Windows is clearly better than OS/2

  • Windows requires only 1 to 1.5Mb less Ram than OS/2 to support multiple concurrent applications. (Note: recent performance benchmarks indicate that the difference, if there is any, is even smaler then this). As a percentage of total RAM, this difference decreases as more concurrent applications are added.

    Windows's weaknesses relative to OS/2 are most pronounced on the 80286, despite its positioning as the supeerior low end GUI environment.

    Two of the most widely touted features of Windows 3 - pages virtual memory and multiple concurrent DOS sessions - do not work on a 80286.

  • User and support costs are lower wihout Windows

  • Windows applications can interfere with each other. This can cause data loss, and it raises support costs.

    If OS/2 is the final destination, going to Windows only adds cost, because migrating out of Windows into OS/2 requires training and applications upgrades.

    From a developeer's perspective, OS/2 is the preferred environment

    OS/2 provides better tools for complex applications. All Lotus development is done under OS/2 even for DOS or Windows products.

    OS/2 is easier and safer for corporate developers to use for almost any application.

    The difference between OS/2 and Windows equate to sizeable development costs in the migration between environments, in either direction.

    [graphic WINDOWS in a box within a larger OS/2 box]

  • Overview of the differences (specific differences and what they mean appear on the following pages.)

  • 1. OS/2 capabilities are a "superset" of Windows capabilities

    2. Even the shared capabilities of OS/2 and Windows are implemented differently.

  • Implications for applications migration

  • 1. Applications that are written to take advantage of OS/2's power would be extremely difficult and costly to retrofit into Windows.

    2. Windows applications require significant reengineering to run in OS/2, even if OS/2 compatibility is a design criterion. As an example, in a Lotus OS/2 product originally built under Windows (and designed from the outset for OS/2 portation), 50% of the program code had to be reviewed and/or rewritten in order to allow the product to run under OS/2.

    3. Even simple OS/2 applications, which use only the capabilities that have counterparts in both OS/2 and Windows, would require pervasive changes in order to run in Windows. Virtually every line of code would have to be changed. Estimates for the 3 Lotus OS/2 products run from 30 to 100 man years to convert to Windows.



    architctural compatibility, code compatibility, product impact, user impact



    What the differences mean

    - TO USERS -

    The following differences make applications look or behave differently to the user as well as affecting the developeert. These are the differences that are market with an X in the "User Impact" column of the chart.

  • System installation / configuration

  • For the end user, configuring and installing Windows is very different from configuring and istalling OS/2. This will cause end user support costs to rise significantly when users migrate from Windows to OS/2.

  • Multiple DOS sessions

  • The 80386 provides hardware support for multiple concurrent DOS sessions. Windows 3 takes advantage of this capability, whereas the current releases of OS/2 do not. For this reason, Windows 3/386 users with 80386 machines can run multiple DOS applications concurently. However, these DOS sessions are prone to the weakness of Windows task scheduling and address space protection, relative to OS/2 (these are described individually below.)

  • Private memory / address space protection

  • OS/2 provides each application with its own "protected" memory space, whereas Windows allows all applications to use the same memory space. This creates the likelihood of inter-application conflict in Windows, which does not exist in OS/2. This issue is seperated from the use of "protected mode" memory, and is true even when Windows 3 uses "protected mode" memory.

    OS/2's superior protection between applications makes it a preferable environment for developers, because it creates multiple "interference free" environments in which the developeer can work concurrently. For Windows users, this quality in Windows causes system crashes and data loss that is not possible under OS/2.

  • Task scheduling, preemption, and threads

  • Under OS/2, the operating system allocates time to each application and to each process within an application. This is called "preemptive" multitaksing, and it guarantees system time to every process, with the priority between processes ultimatly being determined by the user (using config.sys).

    Windows uses non-preemptive multi tasking, so that Windows applications contend with each other for system time. In this environment, one application or process can seize the system and deny system access to other applications until that application or process is finished. Similarly when a process that has control of the system depends on the completion of an external event (such as receipt of a message from the network), this one process can hold up the whole system while it waits for the event to occur.

    As a result, Windows users often find that their applications really don't "multi-task" under Windows. This weakness in Windows is especially disruptive in networked environments.

    Shared memory

    Shared memory permits communication between different applications or between different parts of the same application. As contrasted with DDE, which is also used to communicate between applications, shared memory is used to communicate large banks of data quickly, whereas DDE is used for relatively slower, loweer volume communication.

    OS/2 has a mechanism for dealing with shared memory that is different and much easier to used than Windows. As a result users find that, Windows performs very poorly in an environment where large databases must be shared instantaneously between applications (e.g. on a database server with many clients).

  • File system

  • OS/2 provides a numner of advantages over Window's file system, which is limited to what DOS provides. Improvements in OS/2 include longer file names (256 characters in OS/2 1.2 as opposed to 8 in DOS/Windows). and a high performance file system, which result in increased ease of use, enhanced DBMS and network performance, and increased reliability and failure recovery.

  • Inter-program communications

  • OS/2 supports Named Pipes, a inter-program communication protocol that facilitates network comunications between applications or between parts of a single application. Named Pipes allows for local/remote transparency, so that it is not necessary for to decide in advance whether parts of an application will be run on the same or different machines. Support of NAmed Pipes makes OS/2 an ideal platform for certain classes of applications that rely on this type of communications, especially client/server applicatios.

  • Windows management

  • OS/2 provides tools for managing windows, control bars, and other windows elements which are more structured and more powerful than the tools in Windows. As a result, it is easier for developers to create customized, SAA compliant windows under OS/2 than under Windows. As a result users will find that customized applications developed under OS/2 will tend to look more uniform than if they had been developed under Windows, unless their Windows developers are highly expert and attentive to Inter-application consistency.

  • Graphics

  • OS/2 provides tools that make it easier to manipulate advanced geometric shapes or complex collections of shapes. As a results, graphics programs are far easier to delop under OS/2 than under Windows. This translates to the user as slower performance on many graphics applications.

  • Font metric details / outline fonts

  • The tools for describing font attributes in OS/2 are at the same time more general purpose, and more sophisticated than they are in Windows. As a result, users will find it much easier to gel typeset quality output from OS/2 applications than from Windows applications.

  • Timers

  • Windows handles timeing through event messaging, whereas OS/2 takes advantage of threadig and preemptive multitasking, which are not available in Windows. As a result of this difference, Windows is not an appropriate environment for real time applications such as process control or robotics.

    What the difference mean


    These differences affect developers and increase developers costs of migrating, but they can be hidden from users.

  • Call names and subroutine linkage

  • Call names and the arguments they take are different in OS/2 and Windows, (call names and arguments are key classes of "verbs" and "nouns" in a programing language). Calling sequences are sets of instructions that are used to invoke subroutines. Windows and OS/2 use different calling sequences. Windows uses special calling sequences which are only available on Microsoft compilers.

    These differences make it necessary to translate substantial pieces of a program from one environment in order to allow it to run in the other environment.

  • Clipboard

  • OS/2 and Windows require different coding techniques.

  • Clock

  • The mechanism by which a program accesses the system clock is different in OS/2 and Windows.

  • Control

  • The style of coding required for managing controls - scroll bars, radio buttons, minimize.maximize icons, and the like - is different and easier in OS/2.

  • Coordinate system origin and direction

  • Windows maps screen or page locations beginning at the lower left; OS/2 begins at the lower right. This and other differences in location referencing have a major development impact.

  • dialog boxes

  • OS/2 includes more powerful tools for managing dialog boxes than Windows.

  • Dialog definition

  • Th style of coding required for managing dialog boxes is different and easier in OS/2.

    Dynamic link libraries

    Dynamic link libraries are sets of program code that can be dynamically loaded as needed when the application is running. In OS/2 and Windows, there is a significant difference in the programing required to manage dynamic link libraries, which may have an effect ranging from major to minor, depending on the specific libraries being used.

  • Event messages

  • When events such as keystrokes, mouse movement, communications, or DDE messaging occur, Windows and OS/2 respond differently. They generate different types of messages, carrying different information in different formats. As a result, a developer has to change the way the application responds to events, in order to move it from one operating system to the other.

  • Icons, bitmaps, colors, resource files

  • The mechanisms and tools available to deal with icons, bitmaps, color palette management (how an application selects and uses colors) and resource files al differ in their syntax and presentation.

  • Netbios

  • Windows and OS/2 use different call names to make use of Netbios.

  • Positioning of characters relative to drawing position

  • This is another example of the issue described under coordinate system origin and direction, which is described above.

  • Printing

  • The capabilities and properties of printer drivers in OS/2 and Windows differ considerably. Each system provides a different set of tools for setting up printer default parameters and for finely controlling the printer. In order to get high qualiy output for a given printer, the developer has to write specially for the printer/operating system combination, and the resulting driver is not portable to the other operating system.

  • Subroutine linkage

  • See description under call names, above.

    Full Exhibit