
The history of the rise and fall of OS / 2 - one of the most interesting operating systems
Now it may seem strange to someone, but Windows systems did not always exist. Not so long ago, the dominance of the Microsoft product was not so obvious, and in the market of operating systems there was one very, very promising IBM product called OS / 2.
Brief information.
OS / 2 is an IBM operating system. It has never been particularly popular as a home OS, remaining in the shadow of Windows. OS / 2 is an independent line of development of operating systems, differing from Windows NT in significantly less demanding on computer resources, and from Linux / Unix - a fundamental difference in the approach to development and greater similarity of the graphical user interface with Windows.
History.
1981. Microsoft buys 86-DOS from Seattle Computer Products. Satisfying IBM's requests for the PC operating system led to some changes, after which it was released under the MS-DOS trademark.
1984. An Intel 80286 processor appears. IBM decides that the DOS operating system is obsolete and, together with Microsoft, begins developing OS / 2.
December 1987. OS / 2 1.0 (codenamed CP / DOS) appeared. This version did not have a graphical shell (it worked only in text mode) and had sufficient improvements regarding DOS, for example, support for RAM was expanded there. Only one program could display information, although other programs could run in the background.
November 1988. OS / 2 1.0 Extended Edition and OS / 2 1.1 Standard Edition. OS / 2 1.1 SE (codenamed Trimaran) has the Presentation Manager graphical shell. RAM requirements - at least 3, and preferably 6 megabytes. A version called OS / 2 1.10 Extended Edition (OS / 2 1.10 EE), which appeared later and costs $ 795, also included Database Manager and Communications Manager.
October 1989. OS / 2 1.20 SE and EE (code name Sloop). For the first time, an improved HPFS file system is proposed. The Dual Boot tool has appeared, and in the expanded version 1.2 - the powerful REXX language. This year is a turning point in the history of OS / 2 - the alliance is starting to fall apart (mainly due to the “undercover games” of Microsoft managers). Microsoft, concerned about the conquest of the operating system market, is taking on the development of the next, fully 32-bit OS / 2 3.0. IBM focuses on the development of OS / 2 2.0. This, in essence, is a "divorce" - developed by Microsoft OS / 2 3.0, it does not even retain its name and is demonstrated at ComDex'91 under the name Windows NT - the first Windows with preemptive multitasking.
December 1990. OS / 2 1.3 (codename Cutter) - the version running on the 80286 processor and the latest, coming in two versions of the standard and advanced versions (REXX is already present in both versions). Of the innovations - support for scalable fonts Adobe Type Manager. This version is also among the latest sold by Microsoft. The overwhelming majority of changes were made by IBM programmers, the system has undergone significant processing and its performance has significantly improved.
April 1992. OS / 2 2.0 (codenamed Cruiser). The first 32-bit version of OS / 2. Minimum requirements - 80386SX processor, 4 MB of RAM. Support for SAA (System Application Architecture) - a unified architecture of application programs. OS / 2 2.0 is the first version officially supported not only on IBM computers, but also on computers of other companies. It underwent major renovations after breaking its partnership with Microsoft on development. A convenient object-oriented interface WorkPlaceShell (“desktop”, workplace) based on the SOM architecture (System Object Model) appeared, a flexible boot manager boot tool appeared, support for DOS and Windows applications was seriously improved (Windows applications are launched using Win-OS / 2) as well as a 32-bit programming interface. There was also the possibility of using more than 16MB of RAM. Separately, there are updates for multimedia tools.
May 1993. OS / 2 2.1 (codenamed Borg). Added support for Windows 3.1 applications (Windows 3.0 was previously supported). The delivery includes multimedia tools and significantly updated the list of supported hardware devices. RAM requirements - at least 8 MB.
November 1993. OS / 2 for Windows (codenamed Ferengi). There is no Win-OS / 2 - instead, it uses the previously installed Windows 3.1 user, the driver is updated.
February 1994. OS / 2 2.11. In the main, various errors have been fixed. There is also a separate fix pack FixPack XR 06200 for OS / 2 2.1.
July 1994. OS / 2 2.11 SMP. In this version, support for multiprocessor (up to 16 processors) systems was added.
October 1994. OS / 2 Warp 3.0 (codenamed Warp). The changes affected only the improvement of system performance, lowering the requirements for RAM to 4 MB. The range of supported hardware devices has been expanded. A new element has appeared in the GUI - LaunchPad (Toolbar, “launch pad”) - an effective and flexible tool that fits perfectly into the object-oriented model of the interface. With OS / 2 Warp 3.0, the free BonusPak package is delivered, including:
• hardware revision tools,
• advanced multimedia viewing tools, moving video processing, full-featured faxing (if you have a fax modem),
• a fairly powerful package of office applications (including a word processor, spreadsheets, database, graphing) and a personal organizer,
• a tool for conducting conferences on networks,
• access to CompuServe and Internet networks.
May 1995. OS / 2 Warp Connect. The base system includes full support for network functionality, support for peer-to-peer networks.
September 1996. OS / 2 Warp 4.0 (codenamed Merlin). This version includes full voice control, voice input text, built-in Java, OpenDoc, tools for working in the global Internet and other advanced technologies developed by IBM. The design of the system has been greatly changed and the network subsystem has been worked out more successfully (relative to previous versions).
1999 year. OS / 2 WarpServer for e-Business (codenamed Aurora) - abbreviated as OS / 2 WSeB. Externally, OS / 2 remained virtually unchanged, but the internal processing was significant. There was support for the JFS journaled file system, taken from AIX (IBM version of UNIX), restrictions on the amount of virtual memory were removed, a powerful program for managing volumes called LVM (Logic Volume Manager) appeared.
In the spring of 2000, the American company Serenity Systems announced that it had reached a partnership agreement with IBM to release a new client version of OS / 2. True, this client version completely changes its name - the new client is called eComStation (eCS for short). Officially, eCS 1.0 sales began in July 2001.
In fact, this is a new modification of OS / 2, in which the interface has been changed due to the inclusion of the Styler / 2 application in the base system as well as the installation process. A new distributed software installation tool called WiseMachine has been added.
OS / 2 1.0 - Getting Started.
The evolution of OS / 2 began a long time ago. The most important moment in the history of OS / 2 should be considered the emergence of IBM Personal Computer or simply IBM PC (the name perfectly demonstrates the complete lack of IBM's ingenuity in naming products). The creators of the IBM PC unfortunately made a huge mistake by underestimating the popularity of their product and, accordingly, its impact on industry development. The fact that, with the initial plans to sell 250 thousand PCs in five years, IBM sold more systems even before the official release of the product to the market testifies to how enthusiastically the new platform was received.
As for the software, IBM decided to hire a third-party manufacturer to write an operating system for its PC. Unfortunately, the description of a semi-detective story about how Microsoft was chosen and the DOS operating system are beyond the scope of OS / 2. MS (PC) -DOS, like the PC itself, was a very open system. The DOS and BIOS interfaces were well documented and third-party manufacturers could easily use and extend them - that is why DOS is still used in some tasks.
However, DOS and BIOS had one very big drawback. They were by no means a “star team” and, even worse, they did not use the PC hardware at full capacity. This meant that many programs for the full use of hardware capabilities accessed devices directly, bypassing DOS.
Dawn of the IBM PC.
But despite all its flaws, in 1980 the IBM PC became a popular tool. The hardware and software markets grew at an unprecedented rate. Everything seemed to be fine - but PC users were unhappy. The main reasons for this were the following:
Various programs either did not interact with each other in any way, or the interaction lay at a primitive level.
The user could not do several tasks at the same time. As a kind of multitasking, resident programs were invented.
The logical outcome of all the chaos of problems was that the DOS environment was unstable. There was no protection of either memory or other resources and any process could do anything with any piece of memory or manipulate equipment - an elementary recipe for disaster.
The DOS architecture had serious limitations when working with memory. “640Kb will be enough for everyone” - an expression of Bill Gates in 1981. Perhaps this was true in 1981, but not in 1984. Naturally, as soon as the lack of memory became apparent, various ways to get around the “problem 640” were invented, but all of them could not be considered a solution.
Some of the existing problems could be solved programmatically using a better designed operating system. But others required hardware support in order for the solution to be effective or, in principle, feasible. And this support was implemented in 1984 under the name IBM AT (Advanced Technology). AT really advanced significantly compared to its predecessors - PC and XT. And besides the huge mass of various improvements, the most noticeable (and important) was the use of the new central processor - Intel 80286. Although the 80286 was 16-bit like its ancestors, it had one very important feature: protected mode. 8086 had only one mode which would later be called real mode (apparently due to the fact that, unlike protected mode, all memory addresses corresponded to physical addresses). After initialization, the 286 worked in real mode almost completely compatible with the 8086, differing only in higher speed and an expanded set of instructions. In this mode, 286, like 8086, could address (access) 1 MB of memory (in fact, 1 MB + 64 KB - but in this case it is irrelevant). In protected mode, the 286th could address 16MB of memory. This was a lot considering that PCs with 16MB of memory became the de facto standard only more than 10 years later. But an even bigger plus was that the protected mode was really protected. This meant that memory access was not “free for everyone” - instead, there were 4 levels (or rings) of protection and the less privileged process could not damage the memory blocks belonging to the more privileged components. Thus, user programs could not intentionally or accidentally overwrite, for example, the operating system code. Additionally, the applications were protected from each other. Similarly, some processor instructions were now limited and could only be executed by code with sufficient permissions - such as the kernel of the operating system or device driver. When trying to violate protection, an exception occurred intercepted by the operating system, which usually stopped the “delinquent” application. All security checks were performed at the hardware level with minimal overhead for the operating system. Similarly, some processor instructions were now limited and could only be executed by code with sufficient permissions - such as the kernel of the operating system or device driver. When trying to violate protection, an exception occurred intercepted by the operating system, which usually stopped the “delinquent” application. All security checks were performed at the hardware level with minimal overhead for the operating system. Similarly, some processor instructions were now limited and could only be executed by code with sufficient permissions - such as the kernel of the operating system or device driver. When trying to violate protection, an exception occurred intercepted by the operating system, which usually stopped the “delinquent” application. All security checks were performed at the hardware level with minimal overhead for the operating system.
Both IBM and Microsoft were fully aware of the problems caused by DOS in real mode and worked to solve them. The two most notable products that eventually appeared were IBM TopView and Microsoft Windows. TopView was a text-based multitasking shell for DOS and essentially the ideological progenitor of Quarterdeck’s later much more successful DesqView shell. Microsoft Windows was a graphical multi-tasking environment running on top of DOS. Version 1.0, first announced in 1983, appeared in 1985. It was more than bad and deservedly did not gain any wide popularity. It was Microsoft's attempt to make PCs more like Apple's Macintosh computers running the MacOS operating system with a highly developed graphical user interface. Windows version 2.
Growing up.
At the same time, Microsoft was working on a completely new operating system designed to replace DOS. In January 1983, the development of a new multi-tasking MS-DOS system began. The name of the project has changed countless times. In August 1985, IBM joins the project and firms sign a joint development agreement giving both companies the right to sell the final product. A little later, the project is being changed to CP / DOS - from the Control Program / DOS. But, even this was not the end of the process of choosing the name of an unborn child. Shortly before the release, the product was renamed to OS / 2 - apparently to meet the new line of IBM personal computers called PS / 2 (Personal System / 2).
Interestingly, many planned features were not implemented by OS / 2 1.0 and the most noticeable was the lack of a graphical user interface Presentation Manager (codename Winthorn).
Nevertheless, OS / 2 1.0 was a radical jerk away from DOS and had many features and capabilities that DOS could never have and which were implemented in other operating systems much later.
• Preemptive multitasking.
• Multithreading.
• Inter Process Communication (IPC) tools such as shared memory, pipes, semaphores, and queues.
• Support for virtual memory (virtual memory, swapping) - theoretically up to 1GB of virtual memory.
• Completely protected operating mode.
• Dynamic link libraries (dynamic linking, DLLs).
• Support for up to 16MB of RAM.
One of the most annoying obstacles for developers was that they were faced with the need for DOS support. None of the problems were insurmountable, but their combination was deadly. IBM and Microsoft paid for the ill-conceived decisions made during the development of DOS in 1981. In addition, the huge popularity of DOS produced a boomerang effect - developers were forced to support DOS applications in OS / 2 in order to have at least some chance of winning the market.
In the end, OS / 2 developers found a solution to how to run DOS in protected mode, although they encountered a huge number of problems in the process of finding a solution. The final output was as follows: there was one single full-screen DOS session that could not be executed in the background (on the other hand, OS / 2 applications worked in the background with an active DOS session). The implementation of this approach required frequent switching between protected and real modes (with an active DOS task). This in turn entailed a huge amount of effort to maintain performance at an acceptable level. One of the examples of additional tricks was the device drivers of OS / 2 itself - they had to support work both in protected and in real mode to reduce the number of switches.
The DOS code used in OS / 2 was based on the MS-DOS / PC-DOS code, but with many modifications. So, for example, the code providing work with the file system worked only in protected mode. In other words, when accessing a file, the entire operating system switched to protected mode. However, later this approach turned out to be a big plus - when the installed file systems were released, it turned out that the OS / 2 DOS session had no problems accessing (for example) the HPFS file system.
All the protected code was written “from scratch” with all those nice features that were described earlier. The kernel and system libraries were mostly written in assembler for the following two reasons:
• Performance - OS / 2 was supposed to run on an IBM AT with a 6 MHz processor.
• Memory limitations - OS / 2 should have worked if there was only 1MB of RAM.
The new operating system had nothing to look at — the interface was text-only (the promised Presentation Manager was still under development) and the look was very similar to DOS. But after pressing Ctrl + ESC, the Program Selector appeared - a utility that allowed you to start new tasks and switch between existing ones. Theoretically, there were 16 sessions, but since OS / 2 itself occupied a part of them, the user had access to 12 sessions.

OS / 2 1.0 user workspace
From a user perspective, OS / 2 1.0 had several significant drawbacks. Some were fixed in later versions of the 1.x series, others took a lot more time to fix:
• The maximum partition size is 32MB. Although possible in 1987, this was not critical. OS / 2 1.1 exceeded this limit (although it was based on FAT), and OS / 2 1.2 was already shipped with HPFS.
• There was no support for dual boot or boot manager. Dual Boot appeared in version 1.1, Boot Manager was implemented in version 2.0
• There was no way to bypass the processing of the CONFIG.SYS file. This was the misfortune of all versions of the 1.x series. In combination with the lack of a Boot Manager, this meant that if the system could not boot (for example, an incorrect driver), then the only chance to save the situation (and data) was a boot disk. Finally, the problem was solved only in OS / 2 Warp.
• The complete lack of a mechanism for replacing existing dynamic-link libraries (DLLs). This has made installing system DLL patches (such as Presentation Manager drivers) more than tedious. In OS / 2 2.x, the situation was resolved using undocumented API calls.
On the market for operating systems, OS / 2 was in a state of hopeless battle for widespread distribution. Its recognition was hindered by several factors:
• OS / 2 was considered resource-demanding (AT was recommended with 2MB of RAM, although one megabyte was enough for work).
• Compatibility with DOS was actually far from high level. On the other hand, the very presence of DOS support was a small miracle since there were innumerable obstacles to this.
• Exorbitantly high prices. Perhaps the marketers IBM and Microsoft had some special considerations, but selling the development kit (SDK - software development kit) for thousands of dollars did not help the popularity of the operating system (the first version of Microsoft SDK for OS / 2 released in April 1987 cost three thousand dollars).
• False ideas about a new product. Perhaps the biggest false myth was that OS / 2 could only run on IBM hardware. Things were completely different - even the OS / 2 versions sold by IBM itself supported third-party hardware.
Summarizing, we can say that OS / 2 1.0 did not achieve absolute success (otherwise today most computers would be running OS / 2), but it did not become a resounding failure. OS / 2 has brought a large number of new (and mostly good) concepts to the PC world. OS / 2 1.x also laid a solid foundation for OS / 2 2.x, which in turn was a big step in PC history. Most of the concepts that first appeared in OS / 2 1.x have proved their worth and have not undergone significant changes in subsequent releases. The IBM and Microsoft programmers no doubt deserve nothing but respect for the work done.
OS / 2 1.1 - The Early Years.
The next OS / 2 release was version 1.1. The only reason the version was numbered other than 2.0 was probably because the Graphical User Interface (GUI) was promised in version 1.0 but was not completed on time. As a funny fact, it should be noted that Windows 1.0 was developed as an Interface Manager and acquired a new name thanks to the managers who played with the names despite the protests of the programmers.
Presentation Manager was codenamed Winthorn and was written almost entirely by IBM Hursley Labs. Programming for PM was very similar to programming for Windows, however, there were some differences:
• First of all, the most noticeable was the difference in coordinate systems. While the coordinates 0,0 in Windows were attached to the upper left corner of the screen (which is logical for those who know how the hardware implementation of graphics on the PC architecture works) in PM coordinates 0,0 were attached to the lower left corner of the screen (which is logical for that , who knows how the coordinate system works in mathematics or physics).
• In Windows, all graphic operations were transferred to the so-called Device Context. PM also used DC, but additionally had another level of abstraction called Presentation Space, which provided more flexibility.
• OS / 2 had much more powerful drawing features in its Graphics Programming Interface (GPI), a legacy of mainframes. Some of the GPI concepts were later ported to Windows NT (but not Windows 95).
• The general software model in OS / 2 was much simpler and did not look like a set of “quick and dirty hack” which is true in relation to the Windows software model.
In addition to the GUI, other changes included the full implementation of named pipes, which was not the case in OS / 2 1.0. Support for “large” FAT volumes (BigFAT) has also been added. Theoretically supported volumes up to 2GB, although the practical limit was slightly lower.
After starting OS / 2 1.1, I met the user with the following screen: The

long-awaited GUI.
A strange fact was that OS / 2 1.1 did not have a normal text editor with a GUI interface - even such as notepad in Windows. Instead, there was a text-based application, E.exe, launched from the command line.
In any case, OS / 2 1.1 was technically a very interesting and entertaining program. She possessed much greater capabilities than any operating system for personal computers at that time. Windows and MacOS even in the long run did not have what was in OS / 2 - neither preemptive multitasking, nor multithreading, nor virtual memory.
Naturally, the system also had its drawbacks. Although most of the then standards for graphics output (CGA, EGA, VGA) were supported, but the support of others was very weak, if at all. Printer support was purely nominal - a few printers and plotters made by IBM and all.
Various applications existed under OS / 2 - including such as Microsoft Word, Lotus 1-2-3, and QuattroPro. However, they were all textual with the exception of Microsoft Excel 2.2.
OS / 2 1.2 - Development.
At the end of 1989, Microsoft and IBM released OS / 2 1.2, a very important event in the entire history of OS / 2, since it was in version 1.2 that almost all the features promised in OS / 2 were implemented before it appeared. In OS / 2 1.2, the developers finally abandoned the FAT file system and implemented the Installable File System (IFS) and the high-performance file system HPFS (High Performance File System).
HPFS was designed from the ground up by Gordon Letwin, Microsoft's leading OS / 2 developer. The new file system was very superior to FAT, and also removed many restrictions:
• There was no infamous “8.3” limit on file names - 8 characters per name and 3 characters per extension. File names could be up to 255 characters long and allowed a much wider range of characters to be used - in particular, a space.
• Support for extended attributes (Extended Attributes, EA). Each file or directory could have up to 64Kb EA associated with it - any information could be stored there - icons, descriptions, information for the cataloging program, and so on.
• Support for large disks. FAT supported partitions up to 2GB in size. HPFS supported volumes up to 64GB and was limited at that time only to hard disk drivers.
• Resistance to fragmentation. While FAT partitions required regular defragmentation to prevent sometimes noticeable performance losses, HPFS tried to use continuous fragments for files, keeping fragmentation to a minimum.
• Reduced disk space loss. The largest 2 GB FAT disk used 64KB elements to store data, which caused large losses of disk space (sometimes up to 50%). HPFS used 512-byte sectors, thus dramatically reducing losses.
• High fault tolerance. If the FAT table on the disk partition was destroyed as a result of the incident, all other information on the disk turned into a mountain of useless garbage, since all information about the location of the files was concentrated in FAT. HPFS duplicated some of the information and kept the disk structure connected in both directions (from directory to subdirectory or file and vice versa). As a result, damage to one area did not affect the rest of the section. For example, despite the damage to the sector with the directory, all files in it remained accessible.
There were two versions of HPFS — pure HPFS and HPFS386. The latter, used in Microsoft LAN Manager (and IBM LAN Server), was more productive, allowed significantly larger cache sizes and had several extensions necessary for servers - for example, an integrated access control system (Access Control List, ACL) and a directory restriction system. In general, the fate of HPFS turned out to be very successful - it almost unchanged switched to OS / 2 2.0, and with some variations was used in Windows NT under the name NTFS. A similar story occurred with the UFS file system of the SunOS 4.x operating system. After a revolutionary transition to a completely new unix branch, Sun, having a wealth of positive experience, left UFS in its new OS without major changes. This is a good example of
OS / 2 GUI also got a new look, very similar to Windows 3.0 released a few months later.

Uniformity of OS / 2 & Win3.0 interface
The most significant difference between OS / 2 1.2 and Windows 3.0 was that Windows was not an operating system per se and executed on top of MS-DOS (and could even be run in OS / 2 DOS sessions). Windows also contained more different applications (mostly useless, well, maybe with the exception of Solitaire). OS / 2 was more business-oriented and had a somewhat Spartan look when compared. In part, this has led to the fact that Windows has become more widespread among end users.
OS / 2 1.3 is the latest of 16-bit OS.
After the historic break in joint development of OS / 2, caused by Microsoft’s reluctance to share profit from the sale of the operating system with IBM, the main process for upgrading OS / 2 took place at IBM (although Microsoft was completely concentrating on Windows, some forced changes were made to the system). Version 1.3 was almost identical to 1.2 in terms of features, but included numerous performance and usability improvements.
Finally, all OS / 2 editions included the REXX programming language developed by Mike Cowlishow of IBM UK.
The language was originally created to achieve four main goals:
• easy comprehensibility (readability) of the programs written on it, which facilitates the work of programmers, users and accompanying personnel
• support for fast, efficient and accurate programming by providing the most natural form of presentation of data and control structures of the language
• ensuring reliable and efficient implementation of the language on various platforms
• high applicability of the language in system and application software
And all these tasks have been successfully solved. Thus, the operating system received a powerful and flexible tool, comparable to various scripting languages in UNIX-like systems. This undoubtedly was a very big advantage, especially compared to the more than modest set of features that were offered when writing batch files in DOS and earlier versions of OS / 2.
OS / 2 2.0 - 32-bit revolution.
While in 1988, IBM and Microsoft worked hard on OS / 2 1.2, IBM began work on the development of a radically redesigned operating system. So, although IBM upgraded version 1.3 solely on its own, at the same time, under the leadership of lead developer Michael S. Kogan, work on version 2.0 was already in full swing. In March 1992, the operating system was completely ready and released to the market under the name OS / 2 2.0 GA (General Availability - Publicly Available). The prefix GA did not appear by chance. At that time, there were fierce "verbal wars" between IBM and Microsoft, and in one of the skirmishes, Microsoft Vice President Steve Ballmer promised to publicly eat a floppy disk if IBM manages to release OS / 2 2.0 before the end of 1991. Since the spectacle promised to be quite interesting, in November 1991 it was released in a limited edition OS / 2 2.0 LA (Limited Availability - limited availability). Unfortunately, Mr. Ballmer did not keep his word and OS / 2 2.0 LA had to be used as a simple beta version, which in essence it was.
The biggest plus in OS / 2 2.0 was the system itself. The transition to 32-bit architecture has removed many of the limitations that existed in DOS and OS / 2 1.x - primarily for working with memory. At the same time, the system was not “completely” 32-bit — many parts remained 16-bit — primarily for reasons of compatibility and time saving. To speed up development, for example, the graphics drivers (video card and printer drivers for Presentation Manager) in OS / 2 2.0 were 16-bit and were replaced with 32-bit versions only in OS / 2 2.1. Compatibility requirements dictated the use of 16-bit physical device drivers (PDD) compatible with OS / 2 1.3. Similarly, many kernel fragments were 16-bit to provide support for applications written for OS / 2 1.x. The main elements of the system were completely new and 32-bit - for example, support for many virtual DOS machines (Multuply Virtual DOS Machine, MVDM) and a memory manager with paging support. Moreover, the main part of the code was written in C, and not in assembler as in OS / 2 1.x.
The second significant point was the new user interface called Workplace Shell (or WPS for short), which was a radical departure from the concepts laid down in the GUI OS / 1.x and Windows. The new interface was object-oriented and everything became an object in it - a disk, a printer, a program, and so on. Manipulations with objects were carried out using drag-n-drop - moving, copying, printing and destruction. In WPS, the right mouse button was widely used to open context menus and perform operations on dragging and dropping objects.

Workplace Shell OS / 2 2.0
For the operating system OS / 2 2.0, the trademark “The Integrating Platform” was registered. This name directly hinted at the unique ability of OS / 2 2.0 to run existing DOS, Windows, and OS / 2 1.x applications simultaneously with the new 32-bit native applications. Unlike OS / 2 1.x in version 2.0, DOS support was excellent. The system made full use of the virtual 8086 mode (Virtual 8086 mode) that appeared in 386 and subsequent processors. At one time, the evil languages of the computer world claimed that this mode was implemented in the 386th processor by shocked Intel engineers - rumors of torture when programming support in OS / 2 1.x really spread very widely and alleviating the suffering of programmers at the hardware level was truly ordinary compassion . Moreover,
Support for Windows applications flowed logically from DOS support. A full-screen Win-OS / 2 session simply ran Windows 3.0 as part of a virtual DOS machine. Win-OS / 2 window sessions required a more non-trivial approach due to the fact that they needed to interact with PM / WPS applications. The way out was realized by writing a special version of the screen driver for Win-OS / 2. This approach, although it provided good performance, but had a significant drawback - it made the process of writing video card drivers for OS / 2 much more complicated and expensive and was one of the reasons for the small number of drivers for OS / 2. In addition to creating a video driver for OS / 2, the manufacturer had to additionally provide a specific OS / 2 version of the driver for Windows.
At first, OS / 2 2.0 faced the same problem as OS / 2 1.x before it - a lack of native applications. The system coped well with the launch of DOS, Windows and OS / 2 1.x applications, but at first there was a lack of native 32-bit programs.
OS / 2 2.1, 2.11, 2.11 SMP - Reliable platform, the age of maturity.
The release of OS / 2 2.1 in May 1993 was a consequence of the evolutionary development of version 2.0. Appearance did not undergo significant changes, the developers continued to work on the "internals" of the system. Of the changes visible to the end user, it is worth noting the change of Win-OS / 2 version from 3.0 to 3.1 and the emergence of a new component called Multimedia Presentation Manager / 2 (MMPM / 2) that added various multimedia features to the graphical user interface - sound schemes, multimedia file playback and things like that.
In November 1993, a special version of OS / 2 for Windows was released that does not contain Win-OS / 2 code but uses a copy of Windows 3.x already installed on the computer. Thus, the price of the final product was reduced (IBM paid Microsoft licensing fees for using Windows code in Win-OS / 2). However, this version demonstrated the situation on the market. Using its monopoly position, Microsoft, with the help of price manipulation, kept PC clone manufacturers under tight control, forbidding them to install operating systems other than their own DOS / Windows on their computers. Later, such a policy was declared illegal, but OS / 2 did not help. By releasing OS / 2 for Windows, IBM tried to solve the problem without violating the OEM agreements of computer manufacturers with Microsoft.
Despite tough pressure from Microsoft, the times of OS / 2 2.1 and 2.11 were marked by an increase in the number of applications written specifically for OS / 2. IBM has reached an agreement with several major software vendors to develop OS / 2 versions of their applications. These companies included Borland, Lotus, Novell, and then the independent WordPerfect. IBM in some cases even subsidized individual developments. At the same time, Microsoft showed no less activity, however, without concluding a contract or paying for development, but rather blackmailing software developers with threats to block access to beta versions and information about Windows if they develop their products for non-Windows platforms.
OS / 2 Warp. Golden era.
In October 1994, OS / 2 Warp was released - the most popular and most common version of OS / 2. Internally, the system was slightly different from OS / 2 2.11, with the exception of extensive hardware support and bug fixes - a good example of a well-designed and thought-out product that does not need to be feverishly rewritten by many elements of the code. The most serious changes concerned exclusively the improvement of ease of use by the end user.

Development of a GUI interface without interruption from usability.
New changes and improvements included:
• OS / 2 Warp supported the new improved format isp
Brief information.
OS / 2 is an IBM operating system. It has never been particularly popular as a home OS, remaining in the shadow of Windows. OS / 2 is an independent line of development of operating systems, differing from Windows NT in significantly less demanding on computer resources, and from Linux / Unix - a fundamental difference in the approach to development and greater similarity of the graphical user interface with Windows.
History.
1981. Microsoft buys 86-DOS from Seattle Computer Products. Satisfying IBM's requests for the PC operating system led to some changes, after which it was released under the MS-DOS trademark.
1984. An Intel 80286 processor appears. IBM decides that the DOS operating system is obsolete and, together with Microsoft, begins developing OS / 2.
December 1987. OS / 2 1.0 (codenamed CP / DOS) appeared. This version did not have a graphical shell (it worked only in text mode) and had sufficient improvements regarding DOS, for example, support for RAM was expanded there. Only one program could display information, although other programs could run in the background.
November 1988. OS / 2 1.0 Extended Edition and OS / 2 1.1 Standard Edition. OS / 2 1.1 SE (codenamed Trimaran) has the Presentation Manager graphical shell. RAM requirements - at least 3, and preferably 6 megabytes. A version called OS / 2 1.10 Extended Edition (OS / 2 1.10 EE), which appeared later and costs $ 795, also included Database Manager and Communications Manager.
October 1989. OS / 2 1.20 SE and EE (code name Sloop). For the first time, an improved HPFS file system is proposed. The Dual Boot tool has appeared, and in the expanded version 1.2 - the powerful REXX language. This year is a turning point in the history of OS / 2 - the alliance is starting to fall apart (mainly due to the “undercover games” of Microsoft managers). Microsoft, concerned about the conquest of the operating system market, is taking on the development of the next, fully 32-bit OS / 2 3.0. IBM focuses on the development of OS / 2 2.0. This, in essence, is a "divorce" - developed by Microsoft OS / 2 3.0, it does not even retain its name and is demonstrated at ComDex'91 under the name Windows NT - the first Windows with preemptive multitasking.
December 1990. OS / 2 1.3 (codename Cutter) - the version running on the 80286 processor and the latest, coming in two versions of the standard and advanced versions (REXX is already present in both versions). Of the innovations - support for scalable fonts Adobe Type Manager. This version is also among the latest sold by Microsoft. The overwhelming majority of changes were made by IBM programmers, the system has undergone significant processing and its performance has significantly improved.
April 1992. OS / 2 2.0 (codenamed Cruiser). The first 32-bit version of OS / 2. Minimum requirements - 80386SX processor, 4 MB of RAM. Support for SAA (System Application Architecture) - a unified architecture of application programs. OS / 2 2.0 is the first version officially supported not only on IBM computers, but also on computers of other companies. It underwent major renovations after breaking its partnership with Microsoft on development. A convenient object-oriented interface WorkPlaceShell (“desktop”, workplace) based on the SOM architecture (System Object Model) appeared, a flexible boot manager boot tool appeared, support for DOS and Windows applications was seriously improved (Windows applications are launched using Win-OS / 2) as well as a 32-bit programming interface. There was also the possibility of using more than 16MB of RAM. Separately, there are updates for multimedia tools.
May 1993. OS / 2 2.1 (codenamed Borg). Added support for Windows 3.1 applications (Windows 3.0 was previously supported). The delivery includes multimedia tools and significantly updated the list of supported hardware devices. RAM requirements - at least 8 MB.
November 1993. OS / 2 for Windows (codenamed Ferengi). There is no Win-OS / 2 - instead, it uses the previously installed Windows 3.1 user, the driver is updated.
February 1994. OS / 2 2.11. In the main, various errors have been fixed. There is also a separate fix pack FixPack XR 06200 for OS / 2 2.1.
July 1994. OS / 2 2.11 SMP. In this version, support for multiprocessor (up to 16 processors) systems was added.
October 1994. OS / 2 Warp 3.0 (codenamed Warp). The changes affected only the improvement of system performance, lowering the requirements for RAM to 4 MB. The range of supported hardware devices has been expanded. A new element has appeared in the GUI - LaunchPad (Toolbar, “launch pad”) - an effective and flexible tool that fits perfectly into the object-oriented model of the interface. With OS / 2 Warp 3.0, the free BonusPak package is delivered, including:
• hardware revision tools,
• advanced multimedia viewing tools, moving video processing, full-featured faxing (if you have a fax modem),
• a fairly powerful package of office applications (including a word processor, spreadsheets, database, graphing) and a personal organizer,
• a tool for conducting conferences on networks,
• access to CompuServe and Internet networks.
May 1995. OS / 2 Warp Connect. The base system includes full support for network functionality, support for peer-to-peer networks.
September 1996. OS / 2 Warp 4.0 (codenamed Merlin). This version includes full voice control, voice input text, built-in Java, OpenDoc, tools for working in the global Internet and other advanced technologies developed by IBM. The design of the system has been greatly changed and the network subsystem has been worked out more successfully (relative to previous versions).
1999 year. OS / 2 WarpServer for e-Business (codenamed Aurora) - abbreviated as OS / 2 WSeB. Externally, OS / 2 remained virtually unchanged, but the internal processing was significant. There was support for the JFS journaled file system, taken from AIX (IBM version of UNIX), restrictions on the amount of virtual memory were removed, a powerful program for managing volumes called LVM (Logic Volume Manager) appeared.
In the spring of 2000, the American company Serenity Systems announced that it had reached a partnership agreement with IBM to release a new client version of OS / 2. True, this client version completely changes its name - the new client is called eComStation (eCS for short). Officially, eCS 1.0 sales began in July 2001.
In fact, this is a new modification of OS / 2, in which the interface has been changed due to the inclusion of the Styler / 2 application in the base system as well as the installation process. A new distributed software installation tool called WiseMachine has been added.
OS / 2 1.0 - Getting Started.
The evolution of OS / 2 began a long time ago. The most important moment in the history of OS / 2 should be considered the emergence of IBM Personal Computer or simply IBM PC (the name perfectly demonstrates the complete lack of IBM's ingenuity in naming products). The creators of the IBM PC unfortunately made a huge mistake by underestimating the popularity of their product and, accordingly, its impact on industry development. The fact that, with the initial plans to sell 250 thousand PCs in five years, IBM sold more systems even before the official release of the product to the market testifies to how enthusiastically the new platform was received.
As for the software, IBM decided to hire a third-party manufacturer to write an operating system for its PC. Unfortunately, the description of a semi-detective story about how Microsoft was chosen and the DOS operating system are beyond the scope of OS / 2. MS (PC) -DOS, like the PC itself, was a very open system. The DOS and BIOS interfaces were well documented and third-party manufacturers could easily use and extend them - that is why DOS is still used in some tasks.
However, DOS and BIOS had one very big drawback. They were by no means a “star team” and, even worse, they did not use the PC hardware at full capacity. This meant that many programs for the full use of hardware capabilities accessed devices directly, bypassing DOS.
Dawn of the IBM PC.
But despite all its flaws, in 1980 the IBM PC became a popular tool. The hardware and software markets grew at an unprecedented rate. Everything seemed to be fine - but PC users were unhappy. The main reasons for this were the following:
Various programs either did not interact with each other in any way, or the interaction lay at a primitive level.
The user could not do several tasks at the same time. As a kind of multitasking, resident programs were invented.
The logical outcome of all the chaos of problems was that the DOS environment was unstable. There was no protection of either memory or other resources and any process could do anything with any piece of memory or manipulate equipment - an elementary recipe for disaster.
The DOS architecture had serious limitations when working with memory. “640Kb will be enough for everyone” - an expression of Bill Gates in 1981. Perhaps this was true in 1981, but not in 1984. Naturally, as soon as the lack of memory became apparent, various ways to get around the “problem 640” were invented, but all of them could not be considered a solution.
Some of the existing problems could be solved programmatically using a better designed operating system. But others required hardware support in order for the solution to be effective or, in principle, feasible. And this support was implemented in 1984 under the name IBM AT (Advanced Technology). AT really advanced significantly compared to its predecessors - PC and XT. And besides the huge mass of various improvements, the most noticeable (and important) was the use of the new central processor - Intel 80286. Although the 80286 was 16-bit like its ancestors, it had one very important feature: protected mode. 8086 had only one mode which would later be called real mode (apparently due to the fact that, unlike protected mode, all memory addresses corresponded to physical addresses). After initialization, the 286 worked in real mode almost completely compatible with the 8086, differing only in higher speed and an expanded set of instructions. In this mode, 286, like 8086, could address (access) 1 MB of memory (in fact, 1 MB + 64 KB - but in this case it is irrelevant). In protected mode, the 286th could address 16MB of memory. This was a lot considering that PCs with 16MB of memory became the de facto standard only more than 10 years later. But an even bigger plus was that the protected mode was really protected. This meant that memory access was not “free for everyone” - instead, there were 4 levels (or rings) of protection and the less privileged process could not damage the memory blocks belonging to the more privileged components. Thus, user programs could not intentionally or accidentally overwrite, for example, the operating system code. Additionally, the applications were protected from each other. Similarly, some processor instructions were now limited and could only be executed by code with sufficient permissions - such as the kernel of the operating system or device driver. When trying to violate protection, an exception occurred intercepted by the operating system, which usually stopped the “delinquent” application. All security checks were performed at the hardware level with minimal overhead for the operating system. Similarly, some processor instructions were now limited and could only be executed by code with sufficient permissions - such as the kernel of the operating system or device driver. When trying to violate protection, an exception occurred intercepted by the operating system, which usually stopped the “delinquent” application. All security checks were performed at the hardware level with minimal overhead for the operating system. Similarly, some processor instructions were now limited and could only be executed by code with sufficient permissions - such as the kernel of the operating system or device driver. When trying to violate protection, an exception occurred intercepted by the operating system, which usually stopped the “delinquent” application. All security checks were performed at the hardware level with minimal overhead for the operating system.
Both IBM and Microsoft were fully aware of the problems caused by DOS in real mode and worked to solve them. The two most notable products that eventually appeared were IBM TopView and Microsoft Windows. TopView was a text-based multitasking shell for DOS and essentially the ideological progenitor of Quarterdeck’s later much more successful DesqView shell. Microsoft Windows was a graphical multi-tasking environment running on top of DOS. Version 1.0, first announced in 1983, appeared in 1985. It was more than bad and deservedly did not gain any wide popularity. It was Microsoft's attempt to make PCs more like Apple's Macintosh computers running the MacOS operating system with a highly developed graphical user interface. Windows version 2.
Growing up.
At the same time, Microsoft was working on a completely new operating system designed to replace DOS. In January 1983, the development of a new multi-tasking MS-DOS system began. The name of the project has changed countless times. In August 1985, IBM joins the project and firms sign a joint development agreement giving both companies the right to sell the final product. A little later, the project is being changed to CP / DOS - from the Control Program / DOS. But, even this was not the end of the process of choosing the name of an unborn child. Shortly before the release, the product was renamed to OS / 2 - apparently to meet the new line of IBM personal computers called PS / 2 (Personal System / 2).
Interestingly, many planned features were not implemented by OS / 2 1.0 and the most noticeable was the lack of a graphical user interface Presentation Manager (codename Winthorn).
Nevertheless, OS / 2 1.0 was a radical jerk away from DOS and had many features and capabilities that DOS could never have and which were implemented in other operating systems much later.
• Preemptive multitasking.
• Multithreading.
• Inter Process Communication (IPC) tools such as shared memory, pipes, semaphores, and queues.
• Support for virtual memory (virtual memory, swapping) - theoretically up to 1GB of virtual memory.
• Completely protected operating mode.
• Dynamic link libraries (dynamic linking, DLLs).
• Support for up to 16MB of RAM.
One of the most annoying obstacles for developers was that they were faced with the need for DOS support. None of the problems were insurmountable, but their combination was deadly. IBM and Microsoft paid for the ill-conceived decisions made during the development of DOS in 1981. In addition, the huge popularity of DOS produced a boomerang effect - developers were forced to support DOS applications in OS / 2 in order to have at least some chance of winning the market.
In the end, OS / 2 developers found a solution to how to run DOS in protected mode, although they encountered a huge number of problems in the process of finding a solution. The final output was as follows: there was one single full-screen DOS session that could not be executed in the background (on the other hand, OS / 2 applications worked in the background with an active DOS session). The implementation of this approach required frequent switching between protected and real modes (with an active DOS task). This in turn entailed a huge amount of effort to maintain performance at an acceptable level. One of the examples of additional tricks was the device drivers of OS / 2 itself - they had to support work both in protected and in real mode to reduce the number of switches.
The DOS code used in OS / 2 was based on the MS-DOS / PC-DOS code, but with many modifications. So, for example, the code providing work with the file system worked only in protected mode. In other words, when accessing a file, the entire operating system switched to protected mode. However, later this approach turned out to be a big plus - when the installed file systems were released, it turned out that the OS / 2 DOS session had no problems accessing (for example) the HPFS file system.
All the protected code was written “from scratch” with all those nice features that were described earlier. The kernel and system libraries were mostly written in assembler for the following two reasons:
• Performance - OS / 2 was supposed to run on an IBM AT with a 6 MHz processor.
• Memory limitations - OS / 2 should have worked if there was only 1MB of RAM.
The new operating system had nothing to look at — the interface was text-only (the promised Presentation Manager was still under development) and the look was very similar to DOS. But after pressing Ctrl + ESC, the Program Selector appeared - a utility that allowed you to start new tasks and switch between existing ones. Theoretically, there were 16 sessions, but since OS / 2 itself occupied a part of them, the user had access to 12 sessions.

OS / 2 1.0 user workspace
From a user perspective, OS / 2 1.0 had several significant drawbacks. Some were fixed in later versions of the 1.x series, others took a lot more time to fix:
• The maximum partition size is 32MB. Although possible in 1987, this was not critical. OS / 2 1.1 exceeded this limit (although it was based on FAT), and OS / 2 1.2 was already shipped with HPFS.
• There was no support for dual boot or boot manager. Dual Boot appeared in version 1.1, Boot Manager was implemented in version 2.0
• There was no way to bypass the processing of the CONFIG.SYS file. This was the misfortune of all versions of the 1.x series. In combination with the lack of a Boot Manager, this meant that if the system could not boot (for example, an incorrect driver), then the only chance to save the situation (and data) was a boot disk. Finally, the problem was solved only in OS / 2 Warp.
• The complete lack of a mechanism for replacing existing dynamic-link libraries (DLLs). This has made installing system DLL patches (such as Presentation Manager drivers) more than tedious. In OS / 2 2.x, the situation was resolved using undocumented API calls.
On the market for operating systems, OS / 2 was in a state of hopeless battle for widespread distribution. Its recognition was hindered by several factors:
• OS / 2 was considered resource-demanding (AT was recommended with 2MB of RAM, although one megabyte was enough for work).
• Compatibility with DOS was actually far from high level. On the other hand, the very presence of DOS support was a small miracle since there were innumerable obstacles to this.
• Exorbitantly high prices. Perhaps the marketers IBM and Microsoft had some special considerations, but selling the development kit (SDK - software development kit) for thousands of dollars did not help the popularity of the operating system (the first version of Microsoft SDK for OS / 2 released in April 1987 cost three thousand dollars).
• False ideas about a new product. Perhaps the biggest false myth was that OS / 2 could only run on IBM hardware. Things were completely different - even the OS / 2 versions sold by IBM itself supported third-party hardware.
Summarizing, we can say that OS / 2 1.0 did not achieve absolute success (otherwise today most computers would be running OS / 2), but it did not become a resounding failure. OS / 2 has brought a large number of new (and mostly good) concepts to the PC world. OS / 2 1.x also laid a solid foundation for OS / 2 2.x, which in turn was a big step in PC history. Most of the concepts that first appeared in OS / 2 1.x have proved their worth and have not undergone significant changes in subsequent releases. The IBM and Microsoft programmers no doubt deserve nothing but respect for the work done.
OS / 2 1.1 - The Early Years.
The next OS / 2 release was version 1.1. The only reason the version was numbered other than 2.0 was probably because the Graphical User Interface (GUI) was promised in version 1.0 but was not completed on time. As a funny fact, it should be noted that Windows 1.0 was developed as an Interface Manager and acquired a new name thanks to the managers who played with the names despite the protests of the programmers.
Presentation Manager was codenamed Winthorn and was written almost entirely by IBM Hursley Labs. Programming for PM was very similar to programming for Windows, however, there were some differences:
• First of all, the most noticeable was the difference in coordinate systems. While the coordinates 0,0 in Windows were attached to the upper left corner of the screen (which is logical for those who know how the hardware implementation of graphics on the PC architecture works) in PM coordinates 0,0 were attached to the lower left corner of the screen (which is logical for that , who knows how the coordinate system works in mathematics or physics).
• In Windows, all graphic operations were transferred to the so-called Device Context. PM also used DC, but additionally had another level of abstraction called Presentation Space, which provided more flexibility.
• OS / 2 had much more powerful drawing features in its Graphics Programming Interface (GPI), a legacy of mainframes. Some of the GPI concepts were later ported to Windows NT (but not Windows 95).
• The general software model in OS / 2 was much simpler and did not look like a set of “quick and dirty hack” which is true in relation to the Windows software model.
In addition to the GUI, other changes included the full implementation of named pipes, which was not the case in OS / 2 1.0. Support for “large” FAT volumes (BigFAT) has also been added. Theoretically supported volumes up to 2GB, although the practical limit was slightly lower.
After starting OS / 2 1.1, I met the user with the following screen: The

long-awaited GUI.
A strange fact was that OS / 2 1.1 did not have a normal text editor with a GUI interface - even such as notepad in Windows. Instead, there was a text-based application, E.exe, launched from the command line.
In any case, OS / 2 1.1 was technically a very interesting and entertaining program. She possessed much greater capabilities than any operating system for personal computers at that time. Windows and MacOS even in the long run did not have what was in OS / 2 - neither preemptive multitasking, nor multithreading, nor virtual memory.
Naturally, the system also had its drawbacks. Although most of the then standards for graphics output (CGA, EGA, VGA) were supported, but the support of others was very weak, if at all. Printer support was purely nominal - a few printers and plotters made by IBM and all.
Various applications existed under OS / 2 - including such as Microsoft Word, Lotus 1-2-3, and QuattroPro. However, they were all textual with the exception of Microsoft Excel 2.2.
OS / 2 1.2 - Development.
At the end of 1989, Microsoft and IBM released OS / 2 1.2, a very important event in the entire history of OS / 2, since it was in version 1.2 that almost all the features promised in OS / 2 were implemented before it appeared. In OS / 2 1.2, the developers finally abandoned the FAT file system and implemented the Installable File System (IFS) and the high-performance file system HPFS (High Performance File System).
HPFS was designed from the ground up by Gordon Letwin, Microsoft's leading OS / 2 developer. The new file system was very superior to FAT, and also removed many restrictions:
• There was no infamous “8.3” limit on file names - 8 characters per name and 3 characters per extension. File names could be up to 255 characters long and allowed a much wider range of characters to be used - in particular, a space.
• Support for extended attributes (Extended Attributes, EA). Each file or directory could have up to 64Kb EA associated with it - any information could be stored there - icons, descriptions, information for the cataloging program, and so on.
• Support for large disks. FAT supported partitions up to 2GB in size. HPFS supported volumes up to 64GB and was limited at that time only to hard disk drivers.
• Resistance to fragmentation. While FAT partitions required regular defragmentation to prevent sometimes noticeable performance losses, HPFS tried to use continuous fragments for files, keeping fragmentation to a minimum.
• Reduced disk space loss. The largest 2 GB FAT disk used 64KB elements to store data, which caused large losses of disk space (sometimes up to 50%). HPFS used 512-byte sectors, thus dramatically reducing losses.
• High fault tolerance. If the FAT table on the disk partition was destroyed as a result of the incident, all other information on the disk turned into a mountain of useless garbage, since all information about the location of the files was concentrated in FAT. HPFS duplicated some of the information and kept the disk structure connected in both directions (from directory to subdirectory or file and vice versa). As a result, damage to one area did not affect the rest of the section. For example, despite the damage to the sector with the directory, all files in it remained accessible.
There were two versions of HPFS — pure HPFS and HPFS386. The latter, used in Microsoft LAN Manager (and IBM LAN Server), was more productive, allowed significantly larger cache sizes and had several extensions necessary for servers - for example, an integrated access control system (Access Control List, ACL) and a directory restriction system. In general, the fate of HPFS turned out to be very successful - it almost unchanged switched to OS / 2 2.0, and with some variations was used in Windows NT under the name NTFS. A similar story occurred with the UFS file system of the SunOS 4.x operating system. After a revolutionary transition to a completely new unix branch, Sun, having a wealth of positive experience, left UFS in its new OS without major changes. This is a good example of
OS / 2 GUI also got a new look, very similar to Windows 3.0 released a few months later.

Uniformity of OS / 2 & Win3.0 interface
The most significant difference between OS / 2 1.2 and Windows 3.0 was that Windows was not an operating system per se and executed on top of MS-DOS (and could even be run in OS / 2 DOS sessions). Windows also contained more different applications (mostly useless, well, maybe with the exception of Solitaire). OS / 2 was more business-oriented and had a somewhat Spartan look when compared. In part, this has led to the fact that Windows has become more widespread among end users.
OS / 2 1.3 is the latest of 16-bit OS.
After the historic break in joint development of OS / 2, caused by Microsoft’s reluctance to share profit from the sale of the operating system with IBM, the main process for upgrading OS / 2 took place at IBM (although Microsoft was completely concentrating on Windows, some forced changes were made to the system). Version 1.3 was almost identical to 1.2 in terms of features, but included numerous performance and usability improvements.
Finally, all OS / 2 editions included the REXX programming language developed by Mike Cowlishow of IBM UK.
The language was originally created to achieve four main goals:
• easy comprehensibility (readability) of the programs written on it, which facilitates the work of programmers, users and accompanying personnel
• support for fast, efficient and accurate programming by providing the most natural form of presentation of data and control structures of the language
• ensuring reliable and efficient implementation of the language on various platforms
• high applicability of the language in system and application software
And all these tasks have been successfully solved. Thus, the operating system received a powerful and flexible tool, comparable to various scripting languages in UNIX-like systems. This undoubtedly was a very big advantage, especially compared to the more than modest set of features that were offered when writing batch files in DOS and earlier versions of OS / 2.
OS / 2 2.0 - 32-bit revolution.
While in 1988, IBM and Microsoft worked hard on OS / 2 1.2, IBM began work on the development of a radically redesigned operating system. So, although IBM upgraded version 1.3 solely on its own, at the same time, under the leadership of lead developer Michael S. Kogan, work on version 2.0 was already in full swing. In March 1992, the operating system was completely ready and released to the market under the name OS / 2 2.0 GA (General Availability - Publicly Available). The prefix GA did not appear by chance. At that time, there were fierce "verbal wars" between IBM and Microsoft, and in one of the skirmishes, Microsoft Vice President Steve Ballmer promised to publicly eat a floppy disk if IBM manages to release OS / 2 2.0 before the end of 1991. Since the spectacle promised to be quite interesting, in November 1991 it was released in a limited edition OS / 2 2.0 LA (Limited Availability - limited availability). Unfortunately, Mr. Ballmer did not keep his word and OS / 2 2.0 LA had to be used as a simple beta version, which in essence it was.
The biggest plus in OS / 2 2.0 was the system itself. The transition to 32-bit architecture has removed many of the limitations that existed in DOS and OS / 2 1.x - primarily for working with memory. At the same time, the system was not “completely” 32-bit — many parts remained 16-bit — primarily for reasons of compatibility and time saving. To speed up development, for example, the graphics drivers (video card and printer drivers for Presentation Manager) in OS / 2 2.0 were 16-bit and were replaced with 32-bit versions only in OS / 2 2.1. Compatibility requirements dictated the use of 16-bit physical device drivers (PDD) compatible with OS / 2 1.3. Similarly, many kernel fragments were 16-bit to provide support for applications written for OS / 2 1.x. The main elements of the system were completely new and 32-bit - for example, support for many virtual DOS machines (Multuply Virtual DOS Machine, MVDM) and a memory manager with paging support. Moreover, the main part of the code was written in C, and not in assembler as in OS / 2 1.x.
The second significant point was the new user interface called Workplace Shell (or WPS for short), which was a radical departure from the concepts laid down in the GUI OS / 1.x and Windows. The new interface was object-oriented and everything became an object in it - a disk, a printer, a program, and so on. Manipulations with objects were carried out using drag-n-drop - moving, copying, printing and destruction. In WPS, the right mouse button was widely used to open context menus and perform operations on dragging and dropping objects.

Workplace Shell OS / 2 2.0
For the operating system OS / 2 2.0, the trademark “The Integrating Platform” was registered. This name directly hinted at the unique ability of OS / 2 2.0 to run existing DOS, Windows, and OS / 2 1.x applications simultaneously with the new 32-bit native applications. Unlike OS / 2 1.x in version 2.0, DOS support was excellent. The system made full use of the virtual 8086 mode (Virtual 8086 mode) that appeared in 386 and subsequent processors. At one time, the evil languages of the computer world claimed that this mode was implemented in the 386th processor by shocked Intel engineers - rumors of torture when programming support in OS / 2 1.x really spread very widely and alleviating the suffering of programmers at the hardware level was truly ordinary compassion . Moreover,
Support for Windows applications flowed logically from DOS support. A full-screen Win-OS / 2 session simply ran Windows 3.0 as part of a virtual DOS machine. Win-OS / 2 window sessions required a more non-trivial approach due to the fact that they needed to interact with PM / WPS applications. The way out was realized by writing a special version of the screen driver for Win-OS / 2. This approach, although it provided good performance, but had a significant drawback - it made the process of writing video card drivers for OS / 2 much more complicated and expensive and was one of the reasons for the small number of drivers for OS / 2. In addition to creating a video driver for OS / 2, the manufacturer had to additionally provide a specific OS / 2 version of the driver for Windows.
At first, OS / 2 2.0 faced the same problem as OS / 2 1.x before it - a lack of native applications. The system coped well with the launch of DOS, Windows and OS / 2 1.x applications, but at first there was a lack of native 32-bit programs.
OS / 2 2.1, 2.11, 2.11 SMP - Reliable platform, the age of maturity.
The release of OS / 2 2.1 in May 1993 was a consequence of the evolutionary development of version 2.0. Appearance did not undergo significant changes, the developers continued to work on the "internals" of the system. Of the changes visible to the end user, it is worth noting the change of Win-OS / 2 version from 3.0 to 3.1 and the emergence of a new component called Multimedia Presentation Manager / 2 (MMPM / 2) that added various multimedia features to the graphical user interface - sound schemes, multimedia file playback and things like that.
In November 1993, a special version of OS / 2 for Windows was released that does not contain Win-OS / 2 code but uses a copy of Windows 3.x already installed on the computer. Thus, the price of the final product was reduced (IBM paid Microsoft licensing fees for using Windows code in Win-OS / 2). However, this version demonstrated the situation on the market. Using its monopoly position, Microsoft, with the help of price manipulation, kept PC clone manufacturers under tight control, forbidding them to install operating systems other than their own DOS / Windows on their computers. Later, such a policy was declared illegal, but OS / 2 did not help. By releasing OS / 2 for Windows, IBM tried to solve the problem without violating the OEM agreements of computer manufacturers with Microsoft.
Despite tough pressure from Microsoft, the times of OS / 2 2.1 and 2.11 were marked by an increase in the number of applications written specifically for OS / 2. IBM has reached an agreement with several major software vendors to develop OS / 2 versions of their applications. These companies included Borland, Lotus, Novell, and then the independent WordPerfect. IBM in some cases even subsidized individual developments. At the same time, Microsoft showed no less activity, however, without concluding a contract or paying for development, but rather blackmailing software developers with threats to block access to beta versions and information about Windows if they develop their products for non-Windows platforms.
OS / 2 Warp. Golden era.
In October 1994, OS / 2 Warp was released - the most popular and most common version of OS / 2. Internally, the system was slightly different from OS / 2 2.11, with the exception of extensive hardware support and bug fixes - a good example of a well-designed and thought-out product that does not need to be feverishly rewritten by many elements of the code. The most serious changes concerned exclusively the improvement of ease of use by the end user.

Development of a GUI interface without interruption from usability.
New changes and improvements included:
• OS / 2 Warp supported the new improved format isp