📄 hod.html
字号:
<html>
<head>
<title>The History of DOS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div align="center"><b> <font size="5"> </font></b>
<table width="680" border="0" cellspacing="2" cellpadding="2" align="center">
<tr>
<td width="693">
<pre>
::::::::: :::::::: ::::::::: ::::::::::
:+: :+: :+: :+: :+: :+: :+:
+:+ +:+ +:+ +:+ +:+ +:+
+#++:++#+ +#++:++#++ +#++:++#: :#::+::#
+#+ +#+ +#+ +#+ +#+ +#+
#+# #+# #+# #+# #+# #+# #+#
######### ######## ### ### ###
<a href="%20http://blacksun.box.sk" target="_blank">http://blacksun.box.sk</a>
_____________________________
______________________I <b> Topic:</b> I_____________________
\ I I /
\ HTML by: I <b>The History of DOS</b> I Written by: /
> I<b>(c)1999 by Paroxysm(20-11-98)</b>I <
/ <a href="mailto:black_mesa@gmx.de">Martin L.</a> I_____________________________I Paroxysm \
/___________________________> <_________________________\</pre>
</td>
</tr>
</table>
<p> </p>
<p> </p>
</div>
<p><b><font size="4">Contents:</font></b></p>
<ul>
<li><a href="#0">Disclaimer</a></li>
<li><a href="#1">Introduction</a></li>
<li><a href="#2">History</a></li>
<li><a href="#3">The Memory Map</a></li>
<li><a href="#4">Timeline and History Chart</a></li>
<li><a href="#5">Future of DOS</a></li>
<li><a href="#6">Postscript</a></li>
<li><a href="#7">Bibliography</a></li>
</ul>
<p><b><font size="4"><a name="0"></a>Disclaimer:</font></b></p>
<p>Although this document is purely informative, the author claims no responsibility
for any misguided souls who find a way to twist its contents into anything harmful
or overly offensive.</p>
<p><b><font size="4"><a name="1"></a>Introduction:</font></b></p>
<p>When a computer is turned on an Operating System must be loaded into the computer's
memory before the user can begin using it. IBM compatible machines use an operating
system called MS-DOS. MS stands for "MicroSoft" (a trade name), while
DOS stands for "Disk Operating System", which tells us that it's original
purpose was to provide an interface between a computer and its disk drives.
Technically, DOS is a high-level interface between an application program and
the computer. </p>
<p>DOS has been extended further, allowing programs to handle the likes of simple
memory management, disk operations, assorted system tasks (e.g. date/time),
user input commands and managing input/output (i/o) devices (i.e. it provides
operating instructions for the computer to manage both hardware and software).
Versions 3.1 and up also provide basic networking functions.</p>
<p>Beyond this, DOS provides the user with the important facility of file and
disk management (often referred to as disk-housekeeping). This part of DOS is
particularly crucial to the user as it was specifically designed for him or
her to interact with.</p>
<p>With the advent of installable device drivers and TSR (Terminate but Stay Resident)
programs in DOS v2.0, the basic DOS functions could be extended to handle virtually
any scale of operations required. This was the first instance of multiple programs
being run at once in DOS. Some TSR's can however interfere with the running
of programs. When a program is loaded into memory it assumes that it has exclusive
use of this memory and will not take into account the fact that another program
(the TSR) is also using this area. Thus a conflict can arise causing the program
to hang (hang means that the screen freezes and the task being executed stops
responding forcing the user to either switch off or reboot the computer).</p>
<p><b><font size="4"><a name="2"></a>History:</font></b></p>
<p>The development of MS-DOS/PC-DOS began in October 1980, when IBM began searching
the market for a suitable operating system to go with their soon to be released
IBM PC's (commercial Personal Computers). IBM had originally intended to use
Digital Research's industry standard operating system - CP/M (Control Program/Monitor
or Control Program for Microcomputer - originally written in 1973 by Gary Kildall
in his PL/M language). This was never implemented due to uncertain reasons,
the most likely being poor diplomatic relations between the two companies. Later,
IBM approached a relatively small company called Microsoft, which specialised
in language vending. Bill Gates and Paul Allen had written Microsoft BASIC and
were selling it on punched tape or disk to early PC hobbyists.</p>
<p>Earlier, in April 1980, Tim Patterson began writing an operating system for
use with Seattle Computer Products' 8086-based (S100 bus micros) computer. Seattle
Computer Products decided to come up with their own disk operating system, due
to delays by Digital Research in releasing a CP/M-86 operating system. By August
86-DOS or QDOS v0.10 (Quick and Dirty Operating System) was shipped by Seattle
Computer Products. It was a 16-bit version of CP/M. Even though it had been
created in only two man-months, the DOS worked surprisingly well. A week later,
the EDLIN line editor was created. EDLIN was supposed to last only six months,
before being replaced, but it endured for longer.</p>
<p>In September Tim Patterson showed Microsoft his 86-DOS, written for the 8086
chip. At this stage Microsoft had no 8086 real operating system to offer, but
capitalized when, in October, Microsoft's Paul Allen contacted Patterson, asking
for the rights to sell SCP's DOS to an unnamed client (IBM). Microsoft paid
less than $100 000 for the rights. Patterson's DOS v1.0 was approximately 4000
lines of assembler source. This code was quickly polished up and presented to
IBM for evaluation.</p>
<p>An agreement was reached between the two companies and IBM agreed to accept
86-DOS as the main operating system for their new PC. In February 1981, 86-DOS
was run for the first time on IBM's prototype microcomputer. Furthermore, Microsoft
purchased all rights to 86-DOS in July 1981.</p>
<p>In August, IBM announced the IBM 5150 PC, featuring a 4.77-MHz Intel 8088 CPU,
64KB RAM, 40KB ROM, one 5.25-inch floppy drive, and PC-DOS 1.0 (Microsoft's
MS-DOS), for $3000.</p>
<p>Thus, "IBM Personal Computer DOS v1.0" was available for the introduction
of the IBM PC in October 1981. IBM heavily subjected the program to an extensive
quality-assurance test and found there to be well over 300 bugs and decided
to rewrite the programs. This is why PC-DOS is copyrighted to both Microsoft
and IBM.</p>
<p>Some early OEM (Original Equipment Manufacture) versions of DOS had different
names such as Compaq-DOS, Z-DOS, Software Bus 86, etc. By version 2.0 Microsoft
had succeeded to persuade everyone but IBM to call it MS-DOS.</p>
<p>It is interesting to reflect on the fact that the IBM PC was not originally
meant to run MS-DOS. Instead it was supposed to use a (not yet in existence)
8086 version of CP/M. On the other hand, DOS was originally written before the
IBM PC was created. CP/M-86 would have been the main operating system except
for two things: Digital Research wanted $495 for CP/M-86 (considering PC-DOS
was basically free) and many software developers found it easier to port software
from CP/M into PC-DOS than into CP/M-86.</p>
<p>The IBM PC was first shipped without an operating system. IBM only started
including DOS when the second generation AT/339 came out. A user could order
one of three available operating systems: IBM PC-DOS, a version of UCSD p-System
(type of integrated Pascal operating system - like the improved BASIC operating
systems used by the Commodore 64,) and CP/M-86, which was officially an option
even though it was unavailable until later on. Since IBM's $39.95 DOS was much
cheaper than anyone else's it soon became the most popular.</p>
<p>An upgrade from DOS v3.3 to v4.0 was solely done by IBM, it was later licenced
back to Microsoft. In early 1990 IBM declared that it would be ceasing development
of DOS, handing the reigns over to Microsoft from then on.</p>
<p>Microsoft's Press' "MSDOS Encyclopaedia" illustrated an example of
a late DOS v1.25 OEM brochure. Microsoft was praising future enhancement to
v1.25 including XENIX-compatible pipes, process forks and multitasking, as well
as "graphics and cursor positioning, kanji support, multi-user and hard
disk support and networking". Despite these large aspirations, Microsoft
failed to produce the forks, multitasking and multi-user support (at least in
US versions of DOS).</p>
<p>The notice claimed: "MS-DOS has no practical limit on disk size. MS-DOS
uses 4-byte XENIX OS compatible pointers for a file and disk capacity of up
to 4 gigabytes."</p>
<p>For the record they actually delivered:</p>
XENIX-compatible pipes:<br>
DOS 2.0 ("|" operator)<br>
---<br>
process forks, and multitasking:<br>
eDOS 4.0 (not delivered in the US)<br>
---<br>
multi-user:<br>
never delivered<br>
---<br>
graphics and cursor positioning:<br>
DOS 2.0 (ANSI.SYS)<br>
---
<p>kanji support:<br>
DOS 2.01, 2.25 (double-byte character set)<br>
---<br>
hard disk support:<br>
DOS 2.0 (subdirectories)<br>
---<br>
networking:<br>
DOS 3.1 (file locking support MS Networks)<br>
DOS 6.0 (bundled Interlink in with DOS)<br>
---</p>
<p>Microsoft launched an aggressive marketing campaign for MS-DOS. Early Microsoft
advertisements promoted DOS' XENIX-like features and promised XENIX functionality
in future releases.</p>
<p>Microsoft had announced their intention of building a multi-user, multitasking
operating system since as early as 1982. They Shipped beta versions of "DOS
4.0" in 1986/87 before v3.3 was even announced. Microsoft UK had announced
that they had licenced v4.0 to Apricot Computers and the French Postal Service
was supposed to be running it.</p>
<p>MS-DOS and PC-DOS have been run on more than just the IBM-PC and clones:</p>
<p>Hardware PC Emulation:</p>
<table width="80%" border="0" cellspacing="2" cellpadding="2" align="center">
<tr>
<td>Apple II </td>
<td>TransPC 8088 board</td>
</tr>
<tr>
<td>Apple MacIntosh </td>
<td>AST 80286 board</td>
</tr>
<tr>
<td>Atari 400/800 </td>
<td>Co-Power 88 board</td>
</tr>
<tr>
<td>Atari ST </td>
<td>PC-Ditto II cartridge</td>
</tr>
<tr>
<td>Amiga 2000</td>
<td>8088 or A2286D 80286 Bridge Board</td>
</tr>
<tr>
<td>IBM PC/RT</td>
<td>80286 AT adapter</td>
</tr>
<tr>
<td>Kaypro 2 </td>
<td>Co-Power Plus board</td>
</tr>
</table>
<p>Software PC Emulation:</p>
<table width="80%" border="0" cellspacing="2" cellpadding="2" align="center">
<tr>
<td>Apple MacIntosh</td>
<td>SoftPC</td>
</tr>
<tr>
<td> Atari ST </td>
<td>PC-Ditto I</td>
</tr>
<tr>
<td> IBM RS/6000 </td>
<td>DOS emulation</td>
</tr>
</table>
<p>DOS Emulation:</p>
<table width="80%" border="0" cellspacing="2" cellpadding="2" align="center">
<tr>
<td>AIX (IBM RS/6000)</td>
<td>DOS emulation with "PCSIMulator"</td>
</tr>
<tr>
<td>OS/2 1.x </td>
<td>DOS emulation in "Compatibility Box"</td>
</tr>
<tr>
<td>OS/2 2.x </td>
<td>executes Virtual DOS Machine</td>
</tr>
<tr>
<td>QNX</td>
<td>DOS window</td>
</tr>
<tr>
<td>SunOS</td>
<td>DOS window</td>
</tr>
<tr>
<td>XENIX </td>
<td>DOS emulation with DOSMerge</td>
</tr>
</table>
<p><b><font size="4"><a name="3"></a>The Memory Map:</font></b></p>
<p>About a decade ago, standard memory configurations were 256KB, 512KB or 640KB
on computers. This memory was often looked at in segments of 65536 bytes or
64KB. The user is allocated 10 segments, or 640KB and the system is allocated
the remaining 6, or 384KB. The original designers of the 8088, decided that
no one would ever possibly need more than 1MB of memory (yeah, right!). So they
built the machine so that it couldn't access above 1 MB. To access the whole
MEG, 20 bits are needed. This allows a total of 220 combinations of bits, that
is 1048576 (= 1024*1024 or 1 MB) different numbers, each of which represents
an address of a single byte of data. The problem was that the registers only
had 16 bits, and if they used two registers, that would be 32 bits, which was
way too much (they thought). So they came up with a rather brilliant (not!)
way to do their addressing - they would use two registers. They decided that
they would not be 32bits, but the two registers would create 20 bit addressing.
And thus Segments and Offsets were created.</p>
<p>**Note: it helps to understand assembly code.</p>
<table width="98%" border="0" cellspacing="2" cellpadding="2" align="center">
<tr>
<td>OFFSET</td>
<td align="center">=</td>
<td>SEGMENT*16</td>
</tr>
<tr>
<td>SEGMENT</td>
<td align="center">=</td>
<td>OFFSET/16 - note that the lower 4 bits are lost</td>
</tr>
</table>
<p><pre>
SEGMENT * 16 |0010010000010000----| - range (0 to 65535)*16
+
OFFSET |----0100100000100010| - range (0 to 65535)
=
20 bit address |00101000100100100010| - range 0 to 1048575 (1 MB)
\----- DS -----/
\----- SI -----/
\- Overlap-/</pre>
<p>This shows how DS : SI is used to construct a 20 bit address.</p>
<p>Segment registers are: CS, DS, ES, SS. On the 386+ there are also FS &
GS.</p>
<p>Offset registers are: BX, DI, SI, BP, SP, IP. In 386+ protected mode, any general
register (not a segment register) can be used as an offset register (except
IP, which isn't accessable).</p>
<table width="98%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td>CS</td>
<td align="center">:</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -