The Big Showdown: OS/2 v Windows NT Paper presented at Windows World, Sydney Australia, August 1992 Abstract: IBM's OS/2 and Microsoft's Windows NT are both 32-bit PC operating systems and will compete in the marketplace, although they address different target markets. IBM's product offers new paradigms for user interface in a quirky implementation. Windows NT uses considerably more resources, but offers a cleaner architecture for network implementation. Les Bell Managing Director Les Bell and Associates Pty Ltd Tel +61 2 953 7619 Fax +61 2 953 0602 CIS ID 71210,104 (C) Copyright 1992 Les Bell and Associates Pty Ltd With the final breakdown and resolution of the relationship between IBM and Microsoft, observers can now discount many political theories about the promotion or obstruction of the companies' operating systems. The air is now clear. IBM has developed and is promoting OS/2 2.0. Microsoft has developed and is promoting Windows/NT. It's a straightforward competition, with neither company holding any control over the other's source code or development base. Although IBM has a licence to resell Windows/NT, it will not be the basis for any future version of OS/2. And although Microsoft has a licence to resell OS/2 2.0, we are very unlikely to see any Microsoft-labelled version of that operating system. The two companies' future development plans call for independent lives, with either cooperation or competition where appropriate. The resolution allows prospective users to now evaluate these systems on the basis of the suppliers' public statements and demonstrations. Essentially, the value of any software depends upon two primary factors: its technical aspects (performance, feature set, etc) and the marketing aspects (will promotion lead to a large installed base, developer support, etc.). Technical Aspects Both Windows/NT and OS/2 2.0 represent a leap forward in sophistication, though in very different ways. The primary distinction between Windows/NT and its precursor, Windows 3.x, is in system stability and interprocess protection. In the 16-bit Windows world, all applications and the parent system share a single address space, based on a single Local Descriptor Table. It is this fundamental flaw that allows errant applications to corrupt memory belonging to other applications or the system, and drive the system into an unstable or crashed condition. Hence all the horror stories about UAE's and GPF's. Windows 3.1 attempts to deal with this by abandoning real mode totally and doing a lot more checking of passed parameters, but the flaw still remains. Windows/NT is a 32-bit system, and will require applications to be at least recompiled and in almost all cases rewritten to a greater or lesser extent. Taking advantage of this discontinuity in the compatibility spectrum, Microsoft is capitalizing on the native-mode and protected- mode features of the 386 processor to provide each NT-mode application with its own address space. Only system code can run in the most privileged execution mode, and applications are not allowed to access hardware directly, and these features combine to produce a much more stable environment. Of course, when running Win16 applications, the old rules and techniques still apply. However, although a Win16 app could corrupt the Win16 subsystem, it cannot affect the rest of the system. (Similar concerns apply to security issues). The second major enhancement found in NT is its implementation of preemptive multitasking. Windows 3.x implements non-preemptive, or cooperative, multitasking which relies upon each application voluntarily yielding the CPU periodically to allow other applications to do some work. As one wag has put it, "If your brain was running Windows, you'd have to stop breathing in order to think!". Nevertheless, millions of users seem to get by with this system. And that is where it works best - in front of the user, in an event-driven environment, where the user 'drives' the applications through the mouse and keyboard. Since Windows applications typically only do things in response to user input, this naturally provides an appropriate level of task granularity. It is only when events occur asynchronously - such as handling background communications - that the coding techniques required become, in the opinion of many, unnecessarily tricky and complex. NT, by contrast, uses a priority-based preemptive multitasking system, in which the programmer is not responsible for yielding the CPU, but instead the CPU is managed by the operating system. Tasks are scheduled to run as necessary based on their priority and their ability to proceed. In addition, NT supports multiple threads of execution in a single process, making communications software and other programs that must handle multiple asynchronous events particularly easy to write and more powerful for the user. OS/2, on the other hand, has had these features since version 1.0 in 1987. Indeed, one might argue that the requirement to recompile or rewrite programs to capitalise on these features was a major factor in OS/2's spectacular lack of market success. So, what's new in 2.0? Many things, but I'll pick out two almost abitrarily. First, compared to its precursor, OS/2 1.x, OS/2 2.0 is much better able to run the new user's existing software. Many DOS users who investigated OS/2 1.x discovered that some, or indeed many, of their existing DOS applications ran badly, if at all, in OS/2's infamous DOS Box (better known as the 'Dog Box"). And if they wanted to take advantage of OS/2's much-vaunted multitasking capabilities, they'd have to obtain new OS/2 versions of their applications - which took time and money, even if the applications were available. OS/2 2.0 capitalises on the 386 processor's VM86 mode to allow multitasking of DOS applications, including those that require device drivers or hardware access. Because of the popularity of Windows applications, IBM added a Windows subsystem which is able to run most Windows applications, and later this year, an update will add Windows 3.1 compatibility and support for 386Enhanced mode. The second major new feature of OS/2 2.0 is the Workplace Shell, an object-oriented user shell which supports direct manipulation of objects on the desktop. This is not just drag-and-drop, or OLE. This is an environment in which the programmer designs objects as subclasses of predefined WPS classes, and then writes new methods for their manipulation, using a class library and metalanguage called System Object Model. The completed application is not an EXE file which is invoked in the old ways, but a set of dynamic link libraries which allow the system to manipulate the new objects in a completely consistent way. Now, you may notice that the feature sets I have described above address different target markets. The features added to Windows/NT extend the Windows model to the network server, where protection and preemptive multitasking are held to be more important than on the desktop. Other NT features, such as security and symmetric multiprocessor operation, reinforce this impression. The functionality of OS/2, by contrast, is targetted at the end user desktop, where IBM is positioning it as a high-performance integrating platform which can run today's applications while providing an object-oriented environment for future development. The object-oriented graphics of the Workplace Shell, for example, have little relevance to the network server. The two operating systems therefore address different markets - at least initially. While we can expect Microsoft to migrate NT down to the desktop through its DOS6/Win32 plans, IBM will implement 32- bit server technology in its LAN Server product. Nonetheless, the initial target markets for the products are distinct. Both NT and OS/2 2.0 can lay claim to being new operating systems, while still preserving compatibility with earlier operating systems. So how do they compare in detail? Microkernel Design Supports Multiple API's It is clear that no one operating system meets the needs of the entire market. DOS, DOS plus Windows, OS/2, UNIX and various other proprietary operating systems all exist and ship in sufficient quantities to provide viable markets for both software developers and end users. This diversity occasionally gives rise to the situation where a user has identified two applications which meet his needs, but finds that they run on different operating system platforms. OS/2 1.0 ran into this difficulty early: users wanted OS/2 applications but were unwilling to give up their familiar DOS applications. OS/2 2.0 set out to meet this need by providing DOS sessions based on the 386 processor's VM86 mode, but Microsoft's intensive promotion of Windows shifted the goal-posts and a Windows subsystem had to be added. This necessitated some changes to the kernel. NT, by contrast, utilises a microkernel on which various API's can be implemented. Initially, these will be the Win32, Win16, DOS, OS/2 VIO and POSIX API's, although an OS/2 PM subsystem is slated for later inclusion. The provision of a POSIX API raises the possibility of sales to government and other GOSIP-directed users. The NT microkernel design effectively starts with an assumption that multiple API's are supported on an equal footing. While the NT kernel borrows many ideas from VMS, Mach and other systems, it is a proprietary system. IBM, by contrast, is opting for an open systems approach and will be basing OS/2 3.0 on the Mach kernel. This will be able to leverage from US DOS-funded research into such variants as fault-tolerant Mach, SMP Mach, and high- security Mach. Meanwhile, the OS/2 2.0 kernel is essentially designed primarily to support the OS/2 API, with support for Virtual DOS Machines and Windows grafted in both as a subsystem and changes to the kernel. This is less versatile - adding a POSIX subsystem, for example, would involve major surgery. On the other hand, the commercial value of a POSIX subsystem remains to be shown. Symmetric Multiprocessing It is rumoured that Bill Gates has vowed to drive IBM out of business by the end of the decade. Whether this is true or not, there is no doubt that one principal feature of NT - and Microsoft's entire Windows strategy - is to provide a scalable architecture which will take the fight into IBM's traditional territory of mid-range and large systems. While current-generation microprocessors do not provide a performance anywhere near mainframe levels, nor do they compete in I/O bandwidth, both of these issues are being addressed both in new hardware architectures and the design of Windows NT. The rapid market growth in cheap RISC-based workstations has focussed attention on alternatives to traditional mini- and mainframe computer designs, particularly in the area of UNIX and Open Systems. Many MIS directors are ready to consider alternatives to traditional minicomputers and mainframes, particularly in view of the increasing use of PC's as front ends and the simplicity of using a back end which can use the same network protocols. Connecting PC's to SNA and other proprietary networks is expensive and definitely not straightforward. A database server engine which can sit right on an Ethernet or Token Ring and talk TCP/IP or even NETBIOS to the users' PC's could bring an immediate cost benefit. In this climate of downsizing - or rightsizing or whatever you'd like to call it - Microsoft has been working with hardware vendors such as NCR and Compaq to implement a scalable multiprocessor architecture using tightly-coupled 486 processors. The NCR 3550 SMP system, for example, is based on eight 50 MHz i486 processors, and can support up to 28 full-height disk drives. Allowing a linear degradation of 15% for SMP overhead, and accepting that a 50 MHz 486 is approximately a 30 MIPS machine, we are looking at a box of approximately 204 MIPS performance. This is certainly threatening to traditional vendors, although it must be pointed out that it remains to be seen how these boxes compare in terms of I/O and DASD throughput, an area in which PC architectures have traditionally been extremely weak. IBM is also known to have investigated SMP designs in the labs, and I am reliably informed that a SMP version of OS/2 2.0 could be displayed at trade shows before year end. As outlined above, IBM's plans for OS/2 3.0 currently are based on Mach, which is already an SMP platform. In addition, most large organisations already have a large investment in IBM mainframe and network hardware, not to mention the much larger investment in support infrastructure, staff, skills, etc. OS/2 already converses reliably with IBM mid-range and large systems using a variety of SNA protocols and capitalizes on these customers' existing systems. Bill Gates may have a vision of putting "Information At Your Fingertips", but one must realise that the bulk of the world's information is stored on IBM mainframes! RISC Platforms An interesting feature of Windows NT is its ability to run on RISC processors such as the MIPS R4000. In fact, the prerelease version supplied to software developers is able to boot directly off the CD- ROM on an R4000-based workstation. Currently, RISC processors appear to be able to offer increased performance over Intel-style CISC platforms of comparable cost. Even more interesting is the prospect of NT applications on 64-bit processors such as the DEC Alpha chip, which will provide the horsepower required for applications which manipulate large amounts of graphical data, such as CAD/CAM and document imaging, as well as OLTP server applications. The implementation of NT on R4000-based machines will provide manufacturers with the opportunity to differentiate their products on the basis of features rather than price, moving away from the commodity market of PC's to the higher-priced workstation market. In the OS/2 world, the prospect of RISC-based machines is also viewed with interest. A lot of work in removing the X86-dependent features of the OS/2 architecture was done in version 2.0, and application developers are well aware of the need to write portable code and avoid assumptions about machine features such as page size, for example. Already, IBM has done considerable work in porting Presentation Manager across to AIX, and has announced plans for the release of a version of OS/2 running on RS/6000 workstations. In fact, at this stage, there is a race between the OS/2 and the AIX teams to see who can implement and release the next version of the Workplace Shell! Security Security has always been a major obstacle to the adoption of PC's for many mission-critical applications. It is just too easy to gain access to privileged information held on stand-alone PC's, and while networks have implemented security over access to servers with varying degrees of success, most have been based on ingenious add-ins rather than a solid fundamental design. Unfortunately, security is somewhat akin to quality: it must be designed in, and cannot be added as an afterthought. With the design by Gordon Letwin of the OS/2 High Performance File System, Microsoft took the opportunity to include facilities for the attachment of Access Control Lists to files, and utilised that feature in the HPFS386 component of LAN Manager 2.x. The NT security model extends the ACL concept to most objects in the system: sessions, desktops, windows, menus, DDE objects, files, processes, threads and synchronization objects. Applications are required to "open" a reference to each object before using it, and may be denied access. This will allow implementation of a security model to NCSC C2 level. However, there are some problems associated with the 16-bit Windows baggage which NT will - at least initially - have to carry around with it. Many 16-bit Windows applications use a magic alias to the LDT which allows them to write to it - something that provides an easy back door around the security system. Likewise, almost all DOS applications perform direct hardware access of some kind or another. With C2-level security completely implemented, these applications simply will not be able to run. So security and backward compatibility will be mutually exclusive - you'll be able to run the old applications or have security, but not both. IBM has also announced that it is implementing C2-level security for OS/2, but has not announced a timeframe for its release. Reliability and System Integrity As mentioned above, both Windows NT and OS/2 utilise the protected-mode features of the 386 processor to build firewalls between processes, unlike Windows 3.1. In both systems, processes occupy their own address spaces and are isolated from the operating system. One area in which NT is claimed to have an advantage is in the provision of separate input queues for processes and threads within those processes. IBM programmers originally proposed multiple input queues at the first design review for Presentation Manager back in 1986/87, but Microsoft forcefully put the case for a single input queue in order to provide ease of migration from Windows. Today, Microsoft points to this as a fatal design flaw in PM, and touts NT's multiple queues as superior! The problem, simply stated, is this: Win16 and PM programs utilise a single thread of execution to read messages off the input queue and process these messages (by reading files, redrawing the screen, etc.). If an errant application ties up that thread in a spin loop, or performing some time-consuming task, then other processes that share that thread and input queue will receive no messages. PM gets around the problem by having programmers place message processing in secondary threads, and is also able to deal with 'hung' applications by popping up a dialog box and killing the problem application. Windows 3.x just hangs. With multiple input queues, each application will be able to read its own input queue at its own speed without having any effect on other processes. This has some ramifications for designers of applications which are sensitive to the queue state and order of windows on the screen, but the majority of applications will run without modification. Users will see some improvement in the responsiveness of applications and the ability of the system to survive poorly-written applications. However, IBM has already announced that OS/2 2.0 will move to the multiple input queue model in the next major upgrade. Much of the work is already done, and OS/2 2.0 will have these features by the time NT ships or even before. This round is a draw. High-Level Graphics A major strength of Presentation Manager compared to Win16 is its GPI subsystem. While Windows implements a graphical device interface (GDI), PM's graphical programming interface has always been able to perform2-D scaling, rotation, reflection and translation using fixed-point matrix multiplications, as well as handling splines, fillets and other types of curves. NT introduces this high level of graphics to the Windows environment, making it attractive to developers of CAD/CAM, presentation graphics and EIS software. While high-end CAD/CAM developers may prefer to develop their own high-level graphics primitives, the business programmer with extensive database experience and no graphics background finds these functions cut the workload in EIS development substantially. Almost without exception, programmers have praised the OS/2 API naming conventions. All of the 1200 (approx) function calls are prefixed with their subsystem name: Winxxx functions call the Window Manager subsystem, Splxxx calls drive the spooler and so on. By contrast, the Windows API is poorly organised; if you know the function you want you can find it, but if you don't know, be prepared to spend hours searching. Regrettably, NT does nothing to improve this situation. User Interface: Windows vs Workplace Shell At this stage Windows NT has been designed to look exactly like Windows 3.x and run Windows programs which appear much like those in the sixteen-bit world. This provides a comfortable and friendly environment for existing users - there are no new tricks to learn. OS/2 2.0 has introduced a radically different user interface for the operating system and new applications developed for it. The WorkPlace Shell implements an object-oriented, rather than application-centric, paradigm for user manipulation of the environment. Using the System Object Model, which is implemented on top of the existing Presentation Manager, programs are written as objects, which inherit their attributes from existing WPS object classes, and methods which are invoked to manipulate the objects. This model results in an environment in which objects can be manipulated directly by popping up object menus, or dragging and dropping. Unlike the Windows model, in which the only drag source is the File Manager, in OS/2 all objects can be dragged and dropped at any time. There are no separate programs, such as the Print Manager, File Manager and Control Panel, to manipulate the system. Instead, objects such as print queues, disk drives and font or colour palettes are manipulated directly. For the programmer, system objects can be subclassed and their operation modified, ensuring consistent operation, no coding to handle default behaviour and rich functionality. At this stage, the WPS/SOM model is so new that few applications have been released for it. However, those system utilities and early applications which are based on WPS/SOM display a much higher level of integration than has been seen in any previous system. The closest equivalent in the Windows world is Object Linking and Embedding (OLE) which is built upon Dynamic Data Exchange. While OLE/DDE is therefore a communications protocol rather than an object oriented methodology, it can produce some impressive effects in linking applications together. A high priority at IBM (number three on the 'to-do list' for the next upgrade) is the mapping of OLE to SOM, to further integrate the OS/2 and Windows environments. Some way down the track, Microsoft plans to produce a similar object-oriented environment, code-named Cairo. Regardless of its technical merits, the Cairo proposal has one major advantage: the pre- release support and involvement of Microsoft's applications developers. While IBM has seen fit to deliberately avoid competition with the applications developers it relies upon to drive demand for its systems, Microsoft is under no such constraints. The simultaneous release of an object-oriented derivative of Windows together with a suite of tightly-integrated Microsoft applications would have a greater impact on the PC market than anything that has happened before. Of course, a question the developer has to ask himself is, should he develop for an operating system which is so obviously only a short- term interim platform and will be replaced with a new object-oriented system? And if you have to ask which system I'm talking about . . . API Changes The goal for Windows NT was to make it possible for developers who had written their code with some degree of care, to produce a 32-bit version of their program by simply recompiling it with no source code changes. This goal has not been achieved. Instead, Microsoft has introduced a new API, called it Win32s, and is using the attraction of a 32-bit API which will run under Windows 3.1 in 386 Enhanced mode as a stepping-stone to the full Win32 API. This is an attractive strategy; it will allow developers to produce 32-bit applications which can provide higher functionality to Windows 3.1 users and at the same time are able to exploit at least some of the features of NT. Essentially, it positions Windows 3.1 as an entry-level introduction to the more powerful version of Windows. In addition, Microsoft will follow up with a future version of NT- mode Windows which will run in top of a multitasking and multithreaded DOS 6.0. So, developers will find that generating 32-bit Windows applications is not as simple as had at first been promised. However, in return, they will gain access to a larger - albeit somewhat stratified - market than the original NT-only market. Another point which developers should bear in mind is the large number of undocumented function calls - over 200 according to some sources - in Windows 3.x. These are extensively used by Microsoft applications software, yet unknown to their competitors at Lotus, Word Perfect, Borland et al. It would seem that Microsoft's application developers enjoy somewhat of an advantage over their competitors. By contrast, the OS/2 API changed only in the areas of memory management and sempahores in the transition from 1.x to 2.x, and the author knows of only four undocumented function calls. Required Hardware Platform Both these systems require a rather larger system than the average DOS user likes to contemplate. While the minimum system for OS/2 2.0 is 4 MB of RAM and 12 MB of hard disk space, the majority of users are upgrading to eight or more megabytes of RAM for performance reasons. A larger hard disk also allows the user to install options such as the DOS and WIN-OS/2 subsystems, and the applets. Currently, NT is still in pre-beta form, but all indications are that it will be a gross consumer of resources. Current guidelines indicate that a 12 MB memory machine will be the minimum requirement, and some users are indicating their plans to use 16 MB and even 32 MB machines for development. Disk space requirements are also hard to quantify at this stage, as much depends upon the particular configuration of subsystems and applications. Performance Much has been made in recent months about the relative performance of Windows running DOS applications, OS/2 running Windows applications and other permutations which the various promoters have selected to show their favoured platform in a good light and the competitor in a bad. In essence there is little to compare here and little point in comparing. Potential users who are concerned with performance should perform their own benchmark tests utilising native applications wherever possible. Marketing OS/2 2.0 has shipped over one million copies by now, but most observers would have to agree that this has occurred despite IBM's marketing and not because of it. In part, this can be laid at the door of IBM's US National Distribution Division (NDD - known to the Boca Raton OS/2 developers as "Nickel and Dime Division"), who forecast only 80,000 sales for OS/2 and geared up to manufacture and distribute only that many. Now that NDD has been relieved of these responsibilities and the advertising. marketing and production are under Boca's direct control, IBM's promotional activities are improving rapidly. With the release of Windows 3.0 and 3.1, Microsoft has shown that it can certainly market PC software. Although many of the figures being quoted have to be regarded with suspicion, due to the practice of counting licenses sold to OEM's as opposed to copies shipped, copies shipped as opposed to copies used, and users who have purchased 3.0 and a 3.1 upgrade as two users, nonetheless it is clear that there are a lot of copies of Windows out there. Already NT has shipped approximately 4,500 pre-beta copies. Ability to Integrate Into Mini/mainframe Networks One area where OS/2 has a clear advantage is in its ability to integrate into IBM mainframe and minicomputer networks. IBM's Extended Services 1.0 provides an SNA communications subsystem which is an excellent platform for the implementation of client-server applications, and the integration of APPN (Advanced Peer-to-Peer Networking) shows that IBM is rapidly learning about rightsizing. Recommendations and Conclusions OS/2 2.0 has now shipped well over a million copies, and some would point out that IBM hasn't even started advertising it yet. While this is small compared to the total PC market (which some not terribly reliable estimates put at 70 million machines), it is enough to make OS/2 2.0 viable and an attractive environment for software developers who want to sell to corporate customers and don't want to compete with Microsoft in the applications arena. There is a huge selection of software available, including OS/2 1.x and rapidly-emerging OS/2 2.0 32-bit applications, and of course, a lot of DOS and Windows applications. Windows NT has not yet shipped as a retail product; however, developer interest is high and Microsoft is aggressively promoting beta test copies and developer tools. From the end-user's perspective, OS/2 offers opportunities for o corporate-developed applications with significant user-interface components o distributed database applications linking PC front ends with IBM back ends o users who wish to utilise a mixture of DOS, Windows and OS/2 applications NT offers opportunities for o developers and users of the server component of client-server applications o users who find 16-bit Windows is not stable enough for their needs o corporate users who need a higher level of security than is provided by current systems Both systems are not for the average desktop. Users who simply perform some word processing and update the occasional spreadsheet will derive little benefit from these systems in comparison with the cost of the required hardware. The one group that has reason to thank both Microsoft and IBM is the hardware manufacturers, who will sell more powerful, more expensive systems with more memory than ever before. As to which will sell more copies: Paul Maritz of Microsoft estimates that NT will sell between 10% and 20% of the total Windows market. Currently, opinions vary widely as to the size of the Windows marketplace, especially copies in use, as opposed to copies shipped or sold or licences sold; however, the most credible estimates put the market at between 7 and 10 million copies world wide. One should also bear in mind that Microsoft's previous attempt to win the server market away from Novell with Microsoft LAN Manager (in the author's opinion a better platform for client-server implementation) has not been an inspiring success. NT will face competition not just from IBM with OS/2, but also from Novell Netware. That gives NT a likely target market of 700,000 to two million copies. Now, to date, IBM has sold over a million copies of OS/2 2.0 and expects to sell between 1.5 and 2 million copies by year end. In fact, as print and TV advertising, and volume shipments to corporate users kick in, the rate of adoption will likely increase. This indicates that OS/2 will almost certainly outsell Windows NT, and this is consistent with OS/2's workstation and NT's initial server orientation. There are many more workstations than servers out there.