*BSD News Article 16453


Return to BSD News archive

Newsgroups: comp.os.386bsd.questions
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!newsserver.jvnc.net!gmd.de!mururoa!veit
From: veit@mururoa.gmd.de (Holger Veit)
Subject: Re: DOS/Windows under 386bsd (is there such?)
Message-ID: <1993May24.182422.7719@gmd.de>
Sender: veit@mururoa (Holger Veit)
Nntp-Posting-Host: mururoa
Organization: GMD, Sankt Augustin, Germany
References: <1tgme7$n0q@urmel.informatik.rwth-aachen.de> <1993May20.234750.5815@fcom.cc.utah.edu> <1tmn92INN6el@hrd769.brooks.af.mil>
Date: Mon, 24 May 1993 18:24:22 GMT
Lines: 47

In article <1tmn92INN6el@hrd769.brooks.af.mil>, burgess@hrd769.brooks.af.mil (Dave Burgess) writes:
|> In article <1993May20.234750.5815@fcom.cc.utah.edu> terry@cs.weber.edu (A Wizard of Earth C) writes:
|> >
|> >Can someone more intimately familiar with the Linux "DOSEM" sources post
|> >what processor DOS thinks it's running on and where the ROM images come
|> >from?  If the answer is "a 386", how does it get around the "page write"
|> >bug and others to ensure that DOS doesn't find out it's being fooled?
|> >
|> 
|> While I CERTAINLY do not qualify as a DOSEM expert, I recall that Andrew
|> Tanenbaum (of Minix fame) wrote a PC emulator for the SUN system (?) which
|> included a BIOS emulator.  
|> 
|> I agree that it is probably a little silly to have a BIOS emulator in a 
|> machine that presumably already HAS a BIOS, it might be a path to at least
|> look down.  For those of you that (like me) find it perverse to even 
|> suggest that we emulate something that is already there, remember that once
|> upon a time, the only stories about men that flew were about Icarus.  
|> 
|> It seems to me that he kept the emulator on one of the European machine
|> at the University where he worked.

Should be at cs.vu.nl, I believe. I doubt that it is quite helpful, because
it does emulate the processor. So, to answer the question above: the emulator
can circumvent the page write bug, and this way emulate a 386 without problems.
But I am quite sure that DOSEM uses the native virtual-86 mode the 386 processor
already has, with its own 640K environment and traps that handle the 
more critical problems like redirecting interrupts and interpreting
privileged I/O instructions. DOS (at least until DOS3.3, without the nitty things like
himem.sys and emm386.exe) is quite happy with a 8086 (even a vm86()-emulated one).
The native ROM-BIOS, however, should be replaced by emulator-traps, because it
deals with things 386bsd or Linux as the host does not like to see, like 
messing around with the I/O devices. Furthermore, today's modern 386BIOS versions
partly run in 386 mode, which is trapped by the virtual-86 environment.
Mapping the DOS I/O and filesystem environment to the Unix environment is 
basically the task performed by the DOS emulator, supported by the kernel
that prepares a closed and protected virtual-86 subsystem.

Holger

-- 
         Dr. Holger Veit                   | INTERNET: Holger.Veit@gmd.de
|  |   / GMD-SET German National Research  | Phone: (+49) 2241 14 2448
|__|  /  Center for Computer Science       | Fax:   (+49) 2241 14 2342
|  | /   P.O. Box 13 16                    |    Three lines Signature space
|  |/    Schloss Birlinghoven              |    available for rent. Nearly
         DW-5205 St. Augustin, Germany     |    unused, good conditions