*BSD News Article 5316


Return to BSD News archive

Xref: sserve comp.unix.sysv386:23925 comp.windows.x:45394 comp.os.linux:10443 comp.unix.bsd:5364 comp.os.mach:2175 comp.sys.ibm.pc.misc:21747 comp.sys.ibm.pc.hardware:31566
Newsgroups: comp.unix.sysv386,comp.windows.x,comp.os.linux,comp.unix.bsd,comp.os.mach,comp.sys.ibm.pc.misc,comp.sys.ibm.pc.hardware
Path: sserve!manuel!munnari.oz.au!spool.mu.edu!agate!dog.ee.lbl.gov!hellgate.utah.edu!fcom.cc.utah.edu!cs.weber.edu!terry
From: terry@cs.weber.edu (A Wizard of Earth C)
Subject: Re: Free software and the future of support for Diamond products
Message-ID: <1992Sep20.110805.12124@fcom.cc.utah.edu>
Keywords: Diamond, free-software
Sender: news@fcom.cc.utah.edu
Organization: Weber State University  (Ogden, UT)
References: <1992Sep12.035549.4743@zeos.com> <1992Sep20.000851.2641@cbnewsj.cb.att.com> <1992Sep20.085358.25938@zeos.com>
Date: Sun, 20 Sep 92 11:08:05 GMT
Lines: 112

In article <1992Sep20.085358.25938@zeos.com> kgermann@zeos.com (Ken Germann) writes:
>I would think that making a VESA compliant kernel/drivers for video would help
>cut down on development time for video drivers and help end users determine
>whether their newly purchased video card will work with X. I know as an
>end user I am always concerned about compatiblity issues. VESA support
>in Unix/X Windows would be a step in the right direction for graphics support
>and it would definitely solve some of the problems that Unix developers have
>with getting specs on the video cards from video card manufacturers. The only
>question that would need to be asked is : Is your card VESA compliant? If the
>answer to the questions is YES, XYZ's product will work with that video card.
>If it isn't compliant with VESA, a special driver would need to be written.
>The trend in the PC arena is most video cards are being designed to be VESA
>compliant. Diamond supports VESA on the 24x card in the VIDEO BIOS on the card.
>The biggest reason I am making this proposal is there is more of a trend in 
>the industry to support MS Windows than there is with X and Unix. This 
>trend will change over the coming years with the release of new processors
>and operating systems that will take advantage of these new processors.
>Where ever support for VESA Video Standards needs to start, now would be
>a good time to start it. AT&T, SCO , etc. should do some research into
>the feasibility of supporting the VESA Video standards. 

	This has been reiterated many times in may way, so I won't harp on
it too long -- but I will harp on it:

1)	VESA is a BIOS standard.
2)	BIOS code frequently does not operate in protected mode.  This is
	because their primary market is DOS, and they could care less about
	UNIX or other protected mode OS's (like Windows NT)... this will
	change, but not because of UNIX.
3)	UNIX is a protected mode operating system, as is Windows NT;
	Microsoft doesn't have a problem with this, since Bill Gates can
	personally afford to literally buy a Space shuttle for cash and
	fly it every 6 months for the next 10 years.  When he asks for
	documentation, it is provided, even if some poor geek in Redmond
	Washington has to disassemble and document ROMs.  More frequently,
	card builders wet themselves during the frenzy caused in deciding
	if FedEx, Desk-To-Desk, or having the company predisent personally
	fly up and hand some peon the documentation would be faster.  The
	UNIX community as a whole doesn't have this luxury or clout.  To
	think that 386BSD does by itself is ridiculous.  The amount of
	hardware that would be sold catering to the UNIX community is
	miniscule.  That's why small UNIX-niche hardware companies survive.
4)	BIOS code for video cards frequently fails when the "Gate A20 defeat"
	is used.  This is because the defeat prevents the ROMs from showing
	up over and over, and programmers not considering environments other
	than DOS program as if this is a given.
5)	UNIX fails if the "Gate A20 defeat" is not used.  This is required
	for modern memory management techniques (like virtual addressing and
	paging).
6)	DOS is neither modern, nor does it do memory management; DOS memory
	management code, such as it is, is over 20 years old, given only
	trivial updates when it didn't break program that run OK on DOS 1.0.


What it would require to run a VESA standard under UNIX:

1)	A virtual 8086 without Gate A20 Defeat to run the driver on behalf
	of a 386 virtual 8086 VESA interface driver.

2)	A message control mechanism for the virtual 8086 to driver interface.

3)	Pretend "interrupt driven" code for the "8086" to actually implement
	the BIOS calls for VESA.


Now this would be slow -- so slow, in fact, that standard VGA programming
would probably be faster, despite the *very* DOS-centric advantages of VESA.
Consider the fact that the virtual 8086 will have to communicate with hardware
through a virtual implementation of hardware or a physical reallocation of
386BSD resources (like a video card) to the "8086".  Consider also that the
"8086" can't be allowed to monopolize cpu time because of things like serial
and ethernet interupt service routines.  And consider the most damning thing
of all: Many cards, such as Hercules and Paradise and a lot of "VESA" cards
disable all interrupts during running of their on-board BIOS code (so you
don't need to handle the vertical retrace interrupt on IRQ 2) to avoid "the
sparklies" if the code is interrupted and thus allows the scan to catch up
to the area of memory being altered.  Say "goodbye" to any packets, serial
port, or disk interrupts which come in during this time.  DOS, of course,
doesn't do things like predictive read ahead in it's disk "drivers" and polls
for serial input, so this is generally not a problem.  The primitive
"client/server" rather than the more sophisticated "peer/server" model of
networking makes it so any "interrupt ignored" lost packets from a network
will either be repeated by the server or re-requested by DOS.


Admittedly, a virtual 8086 mechanism would be interesting for an Intel centric
mechanism for a (hopefully) non-Intel centric OS to emulate a DOS box on
the minority of the eventual list of platforms we expect it to run on; but
this also would require a great deal of additional work with little chance
for any real pay-off.

I, for one, really don't think that is a bigger win than, say, loadable
drivers to allow loading of card-specific drivers into the kernel for
different video cards as they become available.  I probably won't work on
it unless I feel a burning need to write a hardware dependant VP/IX clone,
and I'm betting that others feel the same way.

VESA, like QIS-40/QIC-80, is just one more DOS-generated esthetically
pleasing but practically unusable hardware interface "standard".


					Terry Lambert
					terry_lambert@gateway.novell.com
					terry@icarus.weber.edu
---
Any opinions in this posting are my own and not those of my present
or previous employers.
-- 
-------------------------------------------------------------------------------
                                        "I have an 8 user poetic license" - me
 Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
-------------------------------------------------------------------------------