From: becker@super.org (Donald J. Becker) Subject: Re: Will Linux run MSDOS applications (which use DMA/interrupts)? Date: Tue, 7 Sep 1993 18:45:58 GMT
In article <2682in$kph@tamsun.tamu.edu> sam3103@tamsun.tamu.edu (Stan A. McClellan) writes:
>We have several MSDOS applications which use add-on DSP/A-to-D boards and
>we don't want to lose this functionality if we convert to the Linux
>environment.
>
>(1) How does Linux deal with MSDOS applications? Is it reliable?
> Can it support real-time applications such as A/D and D/A?
There is a PC virtual machine for running MS-DOS and applications
("dosemu"), but using DMA and interrupts is Right Out. While it's
possible to translate an IRQ into a user-level signal, that won't be
fast enough for the kind of application you are talking about. And
there are major difficulties dealing with general DMA in the
user-level address space of 'dosemu'.
>(2) Will any special drivers need to be written/installed for Linux to
> run MSDOS applications which do low-level I/O? If so, I assume that
> software like this is application-specific. Is this correct?
You can write a Linux device driver, and then hack that into the PC
virtual machine, but once you start you'll probably end up rewriting
your entire application in Linux.
>(3) If the DOS emulator currently won't handle these situations, is there
> work underway to address this, or am I hoping for too much from Linux?
It's too much to expect to be able to run an arbitrary MS-DOS device
driver under Linux, or any real OS. You have to deal with virtual to
physical page mappings, physically contiguous pages, DMA boundaries
and limits (64K, 128K, 16M), wiring down pages, and a slew of other
issues just to make DMA work. Some device drivers also depend upon
software timing loops, being able to turn off interrupts, and
accurate, unimpeded access to the system timer chip. None of these
are compatible with the scheduling fairness and protection expected of
a general purpose operating system.
[[ I should only need a hot mitt rather than the full Nomex suit to
handle the pedantic replies and "but it works with {OS/2,NT,MSWindoze}". ]]
--Donald Becker becker@super.org IDA Supercomputing Research Center 17100 Science Drive, Bowie MD 20715 301-805-7482