Comes v. Microsoft (Iowa) Technical Expert Report -- Table of Contents

Andrew Schulman -- June 2, 2006

QUALIFICATIONS AND BACKGROUND

Methodology

OPINIONS AND BASIS

Deliberate Incompatibilities

1. Microsoft deliberately placed or left code in early shipping products and in Windows 3.1 beta to generate false error messages on rival DOS

Bundling and "Integration"

2. MS-DOS was bundled, not "integrated," with Windows 95, Windows 98, and Windows Me

3. Microsoft also bundled VMM/VxD/DPMI/DOS extender into Windows 95/98/Me and Windows 3.x in Enchanced mode; this set of software (sometimes referred to as "DOS+") is separable from the Windows GUI

4. Internet Explorer (IE) was integrated, not with the Windows OS, but with the Windows Explorer "shell," which in turn is a separable application that happens to be the default "shell" for Windows; Windows can operate without IE; Windows provides basic internet functionality without IE

5. The "shell" is not part of the OS in any technical sense

6. Windows Media Player (WMP) is separable from, not integrated into, Windows; Windows can operate without WMP; Windows provides native multimedia functionality without WMP

7. "GUI" has two different meanings (user interface application vs. graphics and UI primitives), and neither is part of the OS; continued viability of non-GUI OS software

8. Windows is "componentizable," not monolithic, and Microsoft knows how to split Windows into smaller pieces

9. Windows is based on dynamic link libraries (DLLs); these are truly "dynamic," and do not technically dictate inclusion of features such as IE and WMP with the OS

10. Windows supports both "Install on Demand" and "Isolated Applications"

11. "Assured presence" (ubiquity) of a feature is not a valid technical justification for "integration"

12. The purported integration benefit of "reducing the testing matrix" is technically false; even if true, it could be a disadvantage

13. Provision of APIs does not require they be packaged with the OS; there is no necessary correlation between provision of services on the one hand, and inclusion as part of the OS on the other

14. "Synergy" between components does not require that they be packaged together

15. Not only has "integration" been unnecessary to achieve various benefits, but also the purported "integration" has several disadvantages; many technical benefits would accrue from clean separation

16. "Integration" between two components does not require that they be put in the same package; there is no technical mandate for Microsoft's history of moving previously-separate software into the OS package

17. Software that competed with Microsoft-bundled middleware, such as Netscape Navigator and Real Media Player, posed a "middleware threat" to Microsoft's OS

18. The "SPAD" feature mandated under the US. v. Microsoft final judgment, to allow hiding (not removal) of Microsoft middleware, has only limited ability to prevent a "jolting experience"

Undocumented APIs and Protocols

19. Windows had, and continues to have, undocumented APIs which are used by Microsoft apps such as Office, and by Microsoft middleware such as IE and WMP

20. Microsoft Office and other Microsoft applications use undocumented Windows Line Services APIs

21. Microsoft Office uses (and copies) undocumented DirectUI APIs

22. Microsoft Office has specific APIs and other support put into Windows, and into Microsoft middleware, without equivalent support for non-Microsoft applications

23. Vgx.dll (VML vector graphics rendering), an IE or system component, provides Microsoft Office-specific APIs, some of which are also undocumented; in addition, Microsoft applications use undocumented APIs in vgx.dll

24. Microsoft Office knew of workarounds for fundamental design flaws in the OS; these workarounds were not shared with ISVs

25. Microsoft Word and Excel knew of a workaround to a fundamental Windows 3.0 system-resources limitation, but Microsoft didn't inform ISVs of the workaround

26. Microsoft Office had an IMsoComponentManager work-around to a Windows message-loop "design limitation," which was turned into a barely-documented, unsupported OLE interface

27. Microsoft Office applications have been the de facto specifications for several Windows interfaces

28. Undocumented Windows interfaces used by Microsoft applications and middleware really are APIs

29. These APIs are in many cases important (i.e., are useful to the Microsoft software that uses them, and therefore potentially important for ISVs

30. Discovering these APIs, and generating commercially-useful information about them, would be time-consuming and risky for ISVs

31. Documenting these APIs would yield technical benefits even for Microsoft itself

32. Microsoft has repeatedly told ISVs that Microsoft's own applications developers do not use undocumented Windows APIs, but these assertions were not true when made, nor were they followed up with serious efforts to make them true by policing Microsoft application API usage

33. The idea of Microsoft Office as sort of API guinea pig, so that its early access is positively helpful even to its competitors, does not require that Microsoft ship products with these ostensibly experimental APIs, and in any event contradicts other Microsoft statements

34. Even after the final judgment in United Slates v. Microsoft, a large number of APIs used by Microsoft middleware remain undocumented

35. Internet Explorer uses Microsoft's undocumented Line Services API

36. IE7 and MSN Messenger use the undocumented Directuser (DUser, Direct UI)

37. Microsoft in some cases has resorted to "code sharing" rather than call undocumented APIs that would be subject to settlement disclosure

38. Microsoft application and middleware access to Microsoft Windows source code is a substantial advantage that was not available to ISVs

39. Microsoft Windows and middleware have used undocumented networking protocols to communicate with Microsoft server software; knowledge of these protocols was important for non-Microsoft server software to communicate with Windows desktop PCs

40. Microsoft Windows and Microsoft Office have undocumented file formats that are important to ISVs and/or other OS vendors

Additional Points

41. Because some Microsoft redistributed DLLs use undocumented APIs, ISVs that redistribute these DLLs act as "carriers" for undocumented APIs, without themselves learning the undocumented APIs

42. Windows Server 2003 and Web Server 2003 have minimal code differences

43. While application interoperability can be implemented outside the OS, it requires essential support in the OS

44. Technical issues relevant to the OS/2 "headfake"

45. There is no relationship between Microsoft's Java pollution and its fast JVM

46. To run Windows software on an x86 Mac with Apple "Boot Camp" requires a full copy of Windows XP