File:  [Coherent Logic Development] / public_html / oshistory / index.shtml
Revision 1.1: download - view: text, annotated - select for diffs
Thu Feb 20 01:30:51 2025 UTC (5 months, 1 week ago) by snw
Branches: MAIN
CVS tags: HEAD
initial commit

    1: <HTML>
    2: <HEAD>
    3:   <TITLE>Microcomputer OS History</TITLE>
    4: </HEAD>
    5: <BODY BACKGROUND="../images/linen2d.jpg">
    6: <!--#include virtual="../fragments/nav.shtml" -->
    7: <TABLE CELLPADDING=3 BORDER=0 WIDTH=100%>
    8: <TR>
    9: <TD WIDTH=25% VALIGN=TOP>
   10: <!--#include virtual="../fragments/sidebar.shtml" -->
   11: </TD>
   12: <TD WIDTH=75% VALIGN=TOP>
   13: <H1>Microcomputer OS History</H1>
   14: 
   15: <H2>Timeline</H2>
   16: 
   17: <P>
   18: <A HREF="images/os_history.png" TARGET="about:blank"><IMG SRC="images/os_history.png" WIDTH="100%"></A><BR>
   19: <A HREF="images/os_history.png" TARGET="about:blank"><EM>See full-size version</EM></A> <EM>(Opens in new window)</EM>
   20: </P>
   21: 
   22: 
   23: <H2>CP/M (Control Program/Monitor)</H2>
   24: 
   25: <P>CP/M was developed by the late Gary Kildall of Digital Research Inc., originally Intergalactic Digital Research. 
   26: As the first <EM>de facto</EM> standard among microcomputer operating systems, CP/M ran on a very wide variety of
   27: competing hardware platforms. Although many of CP/M's supported platforms were vastly different in architecture,
   28: power, and peripherals (meaning that binary programs could not be shared among different types of CP/M machines),
   29: application programs could be easily ported, if they limited themselves to the API supplied by the operating system,
   30: rather than accessing hardware directly. In fact, DRI often provided source translator automata for converting assembly
   31: language programs from one supported platform to the other.</P>
   32: 
   33: <P>Architecturally, CP/M was divided into three parts. These were the <STRONG>Basic Input/Output System</STRONG> or <STRONG>BIOS</STRONG>,
   34: the <STRONG>Basic Disk Operating System</STRONG> or <STRONG>BDOS</STRONG>, and the <STRONG>Console Command Processor</STRONG> or <STRONG>CCP</STRONG>.
   35: This is where we get the term "BIOS", as applied to the ROM-based firmware of the IBM-compatible x86 family of microcomputers, still in wide use today <SUPER><A HREF="#footnote1">1</A></SUPER>.</P>
   36: 
   37: <P>The BIOS was the only hardware-dependent component of CP/M, and can be considered as a primitive hardware abstraction layer, or HAL.
   38: BDOS restricted itself to calling the BIOS. Portability was enhanced by the fact that at least the BDOS and CCP were written
   39: in PL/M (Programming Language for Microcomputers), a high-level language conceived by Kildall in 1973 with similarities to
   40: PL/I and ALGOL.</P>
   41: 
   42: <P>CP/M rapidly lost ground to PC-DOS and MS-DOS after the introduction of the IBM Personal Computer in 1981. However,
   43: CP/M-86 was eventually released on the IBM PC, a product which gained little traction against Microsoft's dominance. The CP/M
   44: family of operating systems eventually came to include MP/M (a multiuser version of CP/M), and Concurrent CP/M, a multitasking
   45: version of CP/M that was ultimately developed into Concurrent DOS, which was a multitasking MS-DOS clone that itself became
   46: DR-DOS, which enjoyed a mild degree of success among x86 power users, and was well-reviewed by the computer press of the time.</P>
   47: 
   48: <P>DR-DOS was eventually sold to Novell, becoming Novell DOS. Novell sold most of its non-NetWare OS properties to Caldera in the
   49: late 1990s, and Novell DOS became Caldera OpenDOS.</P>
   50: 
   51: <P>CP/M still enjoys wide use among retrocomputing hobbyists.</P>
   52: 
   53: <H2>MS-DOS</H2>
   54: 
   55: <P>MS-DOS was originally developed in 1980 as <STRONG>QDOS</STRONG> (the Quick and Dirty OS) by Tim Paterson of Seattle Computer Products,
   56: as an 8086-based clone of Digital Research CP/M. It improved upon CP/M in several ways:  where CP/M's disk cache logic required the
   57: machine to be rebooted if a new disk was inserted into the floppy drive, QDOS did not. Also, QDOS implemented the FAT12 filesystem
   58: used by Microsoft's Disk BASIC instead of the CP/M filesystem, and also had more intuitive commands (such as COPY instead of PIP).</P>
   59: 
   60: <P>QDOS was sold with SCP's 8086 computer kits, and was eventually renamed <STRONG>86-DOS</STRONG>. Microsoft purchased 86-DOS from SCP
   61: and ported it to the original IBM PC in 1981, renaming it MS-DOS. IBM was granted a non-exclusive license to supply MS-DOS (as IBM PC-DOS)
   62: for its own machines.</P>
   63: 
   64: <P>IBM PC-DOS continued as a distinct IBM product until the late 1990s release of PC-DOS 2000.</P>
   65: 
   66: <P>MS-DOS 2.0 introduced UNIX-style pipelines, installable device drivers, and hierarchical directory support in the FAT filesystem. It also
   67: added support for accessing files through file handles rather than the clumsier CP/M approach of FCBs, or File Control Blocks.</P>
   68: 
   69: <P>MS-DOS 5.0 was a full re-write of the operating system, largely performed by Microsoft star programmer Charles Simonyi, the original
   70: implementer of Microsoft Word and Excel.</P>
   71: 
   72: <P>MS-DOS, unlike CP/M, was written in hand-tuned 8086 assembly language. It runs in 8086 real mode, although the advent of 80286 (and higher)
   73: CPUs added support for memory above 1MB. Very large programs could eventually use EMS memory. EMS is a standard developed by Lotus Development Corp.,
   74: Intel, and Microsoft (the LIM Expanded Memory Specification) for access of bank-switched memory mapped into free areas of the UMA, which was memory 
   75: between 640KB and 1MB.</P>
   76: 
   77: <P>EMS memory was originally supplied via expansion boards, but expanded memory support was later supplied most often by a software package (such as
   78: Microsoft's EMM386, Qualitas 386MAX, and Quarterdeck QEMM) which used XMS memory to simulate EMS memory. XMS memory (eXtended Memory Specification) 
   79: support was provided by HIMEM.SYS in MS-DOS 5.0 and later, and in earlier operating systems (or in the case of users who chose a third-party memory
   80: manager), by equivalent drivers provided by the above memory management products.</P>
   81: 
   82: <P>Many MS-DOS programs implemented later in the operating system's lifetime actually ran in 386 protected mode, using what is 
   83: called a "DOS Extender", which is a program often conforming to the DPMI (or DOS Protected Mode Interface) specification, using the
   84: 80386 Virtual 8086 mode to allow DOS programs running in protected mode to make calls to DOS and BIOS APIs.</P>
   85: 
   86: <P>It can be argued that early versions of Microsoft Windows were themselves a type of DOS extender. The degree to which any given 
   87: non-NT-kernel-based version of Windows can be considered a DOS extender or a standalone operating system is a highly complex and nuanced discussion,
   88: involving various modes of operation in which Windows can be run, as well as the engagement of various, optional Windows components.</P>
   89: 
   90: <H2>Microsoft Windows (non-NT)</H2>
   91: 
   92: <P>Microsoft Windows 1.01 was released in 1985. It was a task-switching graphical shell for MS-DOS, that provided an API and an SDK
   93: for GUI application development. It used a GUI file manager application called the <STRONG>MS-DOS Executive</STRONG> to manage and launch
   94: programs and files. It ran only in 8086 real mode, and could thus only access the first 640KB of memory on the host. The XT-class microcomputers
   95: common in its day had barely enough power to run Windows, which limited its popularity. Windows 1.01 did not support overlapping windows on the
   96: screen, and used the terms <EM>iconify</EM> and <EM>zoom</EM>, instead of the now-familiar <EM>minimize</EM> and <EM>maximize</EM>.</P>
   97: 
   98: <P>Windows 1.01 strictly relied upon DOS and BIOS APIs to access the hardware of the computer.</P>
   99: 
  100: <P>Windows 2.0 introduced overlapping windows, prompting a lawsuit from Apple Computer, which claimed to own the technology for overlapping windows. 
  101: Architecturally, Windows 2.x eventually added 80286- and 80386-specific versions (Windows/286 and Windows/386), which began to blur the distinction 
  102: between graphical shell and operating system, providing native Windows drivers for increasingly more hardware.</P>
  103: 
  104: <P>Windows 3.0 was the first truly successful release of Windows, replacing the MS-DOS Executive with <STRONG>Program Manager</STRONG> and 
  105: <STRONG>File Manager</STRONG>. It ran in <STRONG>Real Mode</STRONG> (corresponding to the 8086 real address mode), <STRONG>Standard Mode</STRONG> 
  106: (corresponding to 80286 protected mode), and <STRONG>386 Enhanced Mode</STRONG> (corresponding to 80386 protected mode). Individual applications
  107: in any of these modes were cooperatively multitasked, but still themselves 16-bit applications. DOS and BIOS were still used to access the filesystem
  108: and much of the hardware. MS-DOS applications could be run under Windows in standard mode or 386 Enhanced mode, but in any mode other than 386 Enhanced
  109: mode, only one MS-DOS application could be run at a time, and then only in full screen. 386 Enhanced mode allowed multiple MS-DOS applications to
  110: run, each in its own window.</P>
  111: 
  112: <P>Windows 3.1 eliminated Real Mode and improved stability, as well as adding multimedia device support (previously limited to the Microsoft Multimedia
  113: Extensions, a set of extensions for Windows 3.0 only available to hardware OEMs) to Windows itself.</P>
  114: 
  115: <P>Windows for Workgroups eliminated standard mode, and provided optional 32-bit disk access and 32-bit file access. When these two components were enabled,
  116: Windows for Workgroups could be considered to be nearly a full, standalone operating system, with DOS being used only as a boot loader, as DOS and BIOS
  117: APIs were no longer needed for access to media. Windows for Workgroups also added networking support, and the Win32s extensions allowed a small subset
  118: of 32-bit applications designed for a subset of the Windows NT API to run.</P>
  119: 
  120: <P>Windows 95, released on August 24, 1995, added 32-bit application support, support for 255-character filenames, an improved GUI, preemptive multitasking,
  121: and multithreading. It implemented a subset of the Windows NT API (excluding Unicode and security APIs), and retained full support for MS-DOS applications.
  122: Windows 95 no longer had to be started via WIN.COM from an MS-DOS prompt, but instead loaded directly on machine boot-up. CONFIG.SYS and AUTOEXEC.BAT could
  123: be eliminated, provided the computer required no real-mode device drivers to support its hardware. It instantiated an MS-DOS virtual machine using Virtual-8086 mode
  124: on bootup, and if provided, CONFIG.SYS and AUTOEXEC.BAT would provide the base environment for any MS-DOS application being run, with each MS-DOS application
  125: inheriting the base VM's environment and configuration.</P>
  126: 
  127: <P>Note that LFN support in Win95 was still FAT16-based, but used reserved header areas to support this, through a system called <STRONG>VFAT</STRONG>. The
  128: MS-DOS interrupt 21h APIs for handling file access through file handles were also enhanced to add LFN support, used in at least the MS-DOS Editor and the supplied
  129: DOS utilities. The File Control Block (FCB) APIs were not, however, given the same enhancement. There was discussion at Microsoft of releasing MS-DOS 7.0
  130: as a standalone product, but these plans were eventually scrapped.</P>
  131: 
  132: <P>Windows 9x can be considered an extension to the Windows for Workgroups 3.11 386 Enhanced Mode kernel. For a discussion of the Windows 95 architecture, 
  133: see <A HREF="https://youngmumpster.wordpress.com/2013/10/13/windows-multitasking-a-historical-aside/">Windows Multitasking: A Historical Aside</A> on my tech blog.</P>
  134: 
  135: <P>Windows 98 and Windows Millennium Edition continued to extend this platform until around 1999 or 2000, adding support for things like USB, FAT32, and dual-head monitor configurations.</P>
  136: 
  137: <H2>OS/2 (Operating System/2)</H2>
  138: 
  139: <P>The result of a Joint Development Agreement between Microsoft and IBM, OS/2 was designed alongside the IBM PS/2 line of microcomputers, and
  140: was intended to provide a modern replacement for MS-DOS and PC-DOS, breaking the 640KB memory barrier of the latter operating systems.</P>
  141: 
  142: <P>OS/2 was originally implemented as a multitasking, 16-bit, 80286 protected mode operating system. The original 1987 release did not have a graphical
  143: user interface, but OS/2 1.1 added a Windows 2.x-style GUI, called Presentation Manager. The Presentation Manager API was at least superficially
  144: similar to the Microsoft Windows API, but with somewhat more consistent API names, and the Presentation Manager coordinate system used a different
  145: point of origin, i.e., the location of (0, 0) was different.</P>
  146: 
  147: <P>OS/2 1.3 changed the Presentation Manager UI to match Windows 3.0.</P>
  148: 
  149: <P>Following the release of Microsoft Windows 3.0, Microsoft abandoned its joint development agreement with IBM in order to focus on its Windows
  150: product line exclusively.</P>
  151: 
  152: <P>OS/2 2.0, developed solely by IBM's Personal Systems Products division, added support for 80386 protected mode, and many parts of the operating
  153: system were extended from 16-bit to 32-bit. OS/2 2.0 also added the Workplace Shell, an advanced, object-oriented GUI built around IBM's CUA (or
  154: Common User Access) standards, and implemented using IBM's System Object Model (or SOM) ABI and API. SOM is conceptually similar to Microsoft's
  155: Component Object Model (COM, not to be confused with .COM executables in MS-DOS and CP/M), and Netscape/Mozilla's XPCOM.</P>
  156: 
  157: <P>OS/2 2.1 furthered the extension of OS/2 from a 16-bit to a 32-bit operating system. OS/2 could run 16-bit Windows applications, either in a
  158: shared virtual machine, or in dedicated, protected virtual machines. It could also run MS-DOS applications, providing far better compatibility for 
  159: said applications than any Windows version ever could, including games.</P>
  160: 
  161: <P>OS/2 Warp v3 reduced hardware requirements, improved the installation experience, added multimedia device support, added the LaunchPad application launcher, and introduced the 
  162: BonusPak, which contained a suite of productivity applications such as a word processor and a spreadsheet, multimedia applications for video production
  163: and image management, as well as a dialup-only TCP/IP stack, including support for telnet, FTP, Gopher, e-mail, and USENET newsgroups. A web browser,
  164: known as IBM WebExplorer, was added as an optional download later. Dialers were included for IBM's own ISP, as well as a SLIP-only dialer for users
  165: wishing to connect to a non-IBM ISP. The BonusPak also included an OS/2 port of the CompuServe Information Manager. OS/2 Warp v3 sold very well 
  166: until Windows 95 was released, and was the high point of OS/2's success.</P>
  167: 
  168: <P>OS/2 Warp Connect v3 added support for TCP/IP over non-dialup connections, including Ethernet, ATM, Token Ring, and others, bundling IBM's
  169: Multi-Protocol Transport Services (MPTS), IBM Peer (for SMB-based networking), and IBM LAN Server domain support into the base product.</P>
  170: 
  171: <P>IBM PSP invested billions of dollars attempting to port OS/2 to the PowerPC platform, in an attempt to disrupt the Intel/Microsoft desktop
  172: hegemony, as part of the AIM (Apple, IBM, Motorola) Alliance, a collaboration which also produced the PReP (PowerPC Reference Platform). The
  173: failure of this project contributed greatly to the dissolution of the IBM Personal Systems Products division, as CEO Lou Gerstner began to
  174: eviscerate IBM's less-profitable divisions, conceding the desktop OS war to Microsoft.</P>
  175: 
  176: <P>OS/2 Warp v4 was the last version of OS/2 to be commercially sold by IBM. It revamped the UI, added a new application launcher that followed
  177: the Windows "Start" menu metaphor, enhanced the online help facility, and added voice command support (VoiceType) to the base product, allowing a user to 
  178: open programs and perform other operations by speaking commands into a microphone.</P>
  179: 
  180: <P>OS/2 Warp v4 was followed on by OS/2 Warp 4.51 and OS/2 Warp 4.52, known as the MCPs, or "Merlin Convenience Packs". These substantial updates
  181: were only available to IBM's commercial customers, or those with a Software Subscription.</P>
  182: 
  183: <P>OS/2 became the basis for IBM's ill-fated WorkSpace On-Demand (WSOD) product, and ceased commercial availability in 2006. A third-party 
  184: company called Serenity Systems eventually acquired a license from IBM to sell a modernized and enhanced OS/2-based operating system under the name
  185: "eComStation", which produced roughly three major releases, before entering an uncertain ownership and development status. It is widely assumed that
  186: eComStation is now a dead product, and a company called Arca Noae now produces a similarly-licensed OS/2-based operating system called "ArcaOS", which
  187: is still supported, and under continuous development and enhancement.</P>
  188: 
  189: <P>The OS/2 community is still quite dedicated, and manages to produce annual conferences in the US and Europe, called WarpStock. Several OS/2 User Groups
  190: still exist, and many ports of free and open-source software--generally requiring OS/2 Warp v4 or newer--have given the operating system new life, in 
  191: spite of IBM's wholesale withdrawal of sales and support.</P>
  192: 
  193: <P>In 2005, IBM withdrew from the PC market it had created, selling off its then-current line of x86 personal computers to Chinese electronics manufacturer
  194: Lenovo.</P> 
  195: 
  196: 
  197: <H2>Windows NT</H2>
  198: 
  199: <P>Windows NT (where "NT" originally stood for "New Technology") was introduced as Windows NT 3.1 on July 27, 1993. It used a brand-new,
  200: fully 32-bit, protected-mode, preemptive multitasking microkernel developed by Dave Cutler, the original engineer for Digital Equipment Corporation's VMS 
  201: operating system, an OS from which Windows NT derives many of its architectural features.</P>
  202: 
  203: <P>Originally developed as "NT OS/2" for "New Technology OS/2", the "OS/2" label was dropped when Microsoft abandoned the IBM/Microsoft Joint Development
  204: Agreement for OS/2, instead choosing to put all of its efforts behind its own Windows product.</P>
  205: 
  206: <P>While Windows 1.01 through Windows Me were written in highly platform-specific assembly language and C code, the majority of Windows NT, outside
  207: of its Hardware Abstraction Layer, is written in portable C++ code. It was conceived with portability, security, and stability as its major design goals.</P>
  208: 
  209: <P>Windows NT (and all Windows versions derived from it) have much more demanding hardware requirements, and implement NTFS as their native filesystem. NTFS
  210: provides support for compound files consisting of multiple data streams, advanced permissions, access control lists, long filenames, and less susceptibility to
  211: fragmentation.</P>
  212: 
  213: <P>Windows NT provides multiple APIs atop its microkernel. They are:
  214: 
  215: <UL>
  216: <LI>Win32 - the native Windows API</LI>
  217: <LI>POSIX</LI>
  218: <LI>OS/2 - providing support for non-graphical, 16-bit OS/2 1.x programs</LI>
  219: </UL>
  220: 
  221: </P>
  222: 
  223: <P>One could argue that Win16 and DOS application support in Windows NT, supplied by the Windows-on-Windows and NTVDM subsystems, could be counted as
  224: other APIs, but Microsoft documentation generally counts these two subsystems as backwards compatibility mechanisms, rather than first-class API
  225: "personalities".</P>
  226: 
  227: <P>Windows NT has, over the course of its lifetime, been ported to 80386, x86-64, Itanium, MIPS, Alpha, PowerPC, and ARM processors, and eventually 
  228: replaced the non-NT-based Windows operating systems when the product lines were merged in the release of Windows XP.</P>
  229: 
  230: 
  231: <HR>
  232: <UL>
  233: <LI><A NAME="footnote1"></A><SUPER>1</SUPER> ROM BIOS on IBM PC compatibles has largely been supplanted by the Unified Extensible Firmware Interface.</LI>
  234: </UL>
  235: </TD>
  236: </TR>
  237: </TABLE>
  238: <EM>Revision History</EM>
  239: <PRE>
  240: $Log: index.shtml,v $
  241: Revision 1.1  2025/02/20 01:30:51  snw
  242: initial commit
  243: 
  244: Revision 1.7  2019/09/03 15:51:40  jpw
  245: Remove redundant horizontal rule
  246: 
  247: Revision 1.6  2019/09/03 15:48:44  jpw
  248: Fix sidebar include
  249: 
  250: Revision 1.5  2019/09/03 15:48:28  jpw
  251: Add sidebar
  252: 
  253: Revision 1.4  2018/12/17 15:50:19  jpw
  254: Fix some wording, add references to OS/2 Warp 4.51 and 4.52
  255: 
  256: Revision 1.3  2018/12/15 18:03:23  jpw
  257: Add reference to Windows Multitasking article on YOUNGMUMPSTER.
  258: 
  259: Revision 1.2  2018/12/15 17:58:14  jpw
  260: Apply some fixes from DrScriptt
  261: 
  262: Revision 1.1  2018/12/14 17:38:40  jpw
  263: Initial revision
  264: 
  265: </PRE>
  266: <P>Thanks to DrScriptt for his invaluable feedback in the production of this article.</P>
  267: <HR>
  268:     <CENTER>
  269:       Copyright &copy; 2025 Serena Willis<BR>
  270:       Last modified $Date: 2025/02/20 01:30:51 $<BR><BR>
  271:       <BR><BR>
  272:       <EM>$Id: index.shtml,v 1.1 2025/02/20 01:30:51 snw Exp $</EM>
  273:       <P>
  274: 	<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-nd/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/">Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License</a>.
  275:       </P>
  276:     </CENTER>
  277: 
  278: </BODY>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>