IBM and Apple Operating Systems (Re: dosread.c again)

Dave Tutelman dmt at pegasus.ATT.COM
Sun Oct 29 10:36:43 AEST 1989


>In article <6661 at ficc.uu.net> peter at ficc.uu.net (Peter da Silva) writes:
>
>} Single-tasking was forced by a hardware design requirement.
	I'm not sure this is quite accurate.  See below.

>}The lack of ANY support for serial I/O was a hardware design requirement.
	Are you sure it's a requirement that there be no support, or are you
	saying that there were no strong requirements for support?  (It IS
	true that the support supplied, INT 14 of the BIOS, was totally
	useless.)

>}The original system was a poor copy of CP/M, chosen only because it
>}was cheap and IBM was pissed at Digital Research (thanks to some stupidity
>}on the part of Gary Kildall).

In article <10609 at cbnews.ATT.COM> cbema!las at cbnews.ATT.COM (Larry A. Shurr,20650,cb,9a110,6148605851) writes:
>"Cheap" is probably the true operative word here.  
>Everything about the PC design was cheap and
>that is certainly consistant with DOS which began life a cheap CP/M
>rehash. 
	I agree with Larry and Peter in this regard.  However, a CP/M ripoff
	(er, knockoff) may have seemed like a good idea at the time.  The
	markets were VERY confused at what a PC actually WAS, and CP/M
	meshed with the then-current (though non-productive) view.
	
>I don't agree that single-tasking is forced by a hardware
>design requirement
	I don't either.  But there was a real economic design requirement.
	A CP/M knockoff has no need for multi-tasking,
	and multi-tasking would have cost money.  (I.e.- it would have
	cost Microsoft more to develop, and they beat out DR on price.)

>...though I suppose that you could make a case that a 
>small base memory configuration and the use of a slow 8088 processor
>are hardware design limitations for a truly useful multi-tasking system,

	Maybe there's a confusion that takes over when talking about this.
	There are useful multitasking OSs that work on a slow 8088 CPU.

In my opinion, the REAL problem with multitasking the PC came
LATER.  There was no pressure in 1981-82 (when the PC OS decision
was made) for multitasking.  But when people wanted it later,
the following "hardware problems" made it tough:

   -	Clearly, a multitasking OS would NOT achieve market success
	(at least from an independent vendor, not IBM) unless it ran
	the existing DOS applications.  So it had to be a "multitasking
	MSDOS", if you can imagine such a beast.  (I can; I even worked
	on one.)

   -	BUT, the developers of the existing applications had NOT written
	MS-DOS applications; they had written IBM-PC applcations.  What's
	the difference?  Well, they circumvented inadequacies in the
	OS support of the hardware by going directly to the hardware.
	The best examples of this are:
	   1.	The serial port support, as Peter notes above.
	   2.	Screen support; the BIOS was slow, and many application
		programmers went straight to the video memory.
	   3.	Memory management; why not go straight to the real memory
		address space when you're not sharing it?  Or allocate
		yourself ALL of memory, rather than take the trouble (and
		the performance hit) to allocate only what you'll need.

   -	NOW, JUST TRY TO BUILD AN OS that runs ill-behaved programs
	(in the sense that they think they know about, and even own,
	the hardware).  It will require a lot of hardware support,
	in the sense of trapping I/O, replacing the interrupt vector,
	hardware memory management, etc.  Of course, all of this is
	useful in a REAL multitasking OS, but it is ESSENTIAL in
	retrofitting DOS to be multitasking.

In my experience (and that includes the exploratory development of
a multitasking DOS), 
   -	The 286 has some of what's needed.
   -	Enhanced expanded memory (i.e.- not limited to mapping above
	620K or even above 0K) adds some more.
   -	Add special hardware on a 286 motherboards for most of
	what's needed.
   -	There's enough in the 386 to do the job in software.  This includes
	the job of trapping I/O, memory use, and interrupts.

Products like DesqView, while far from perfect, do remarkably well at
a fundamentally impossible job.  And, let's not forget that there are
multitasking OSs that ran on the original XT, that were:
	Technical successes (reasonable multitasking performance).
	Market failures (couldn't run existing popular PC applications).

Summarizing my point:
   1.	DOS was inadequate from the start, even as a single-tasking OS,
	driving application developers to go straight to the hardware.
   2.	The market dominance of "standard" hardware (IBM & clones) allowed the
	developers to do this with no thought to portability.
   3.	The resulting ill-behaved applications could not be run on any
	feasible multitasking OS, without extensive hardware crutches
	to override the ill behavior.
   4.	The market dominance of these ill-behaved applications made that
	impossible criterion a prerequisite for commercial success of an OS.
	You couldn't introduce a [perfectly feasible] multitasking PC OS
	that only ran its own (or well-behaved) applications.

Note: I was there, and my company was there.  Let me make it clear that
I speak for myself.  My employer may have other opinions (or none at all).
+---------------------------------------------------------------+
|    Dave Tutelman						|
|    Physical - AT&T Bell Labs  -  Lincroft, NJ			|
|    Logical -  ...att!pegasus!dmt				|
|    Audible -  (201) 576 2194					|
+---------------------------------------------------------------+



More information about the Comp.unix.xenix mailing list