Running Emulated Drivers
Running Emulated Drivers
Macintosh · PDF
| Filename | Running_Emulated_Drivers_199303.pdf |
|---|---|
| Size | 0.07 MB |
| Subsection | developer / Copland / project_history |
| Downloads | 1 |
Contents
Running Emulated Drivers
Wayne Meretsky
March 9, 1993
Summary
This document describes the problems of running emulated
device drivers in the V1 software system. Also discussed are
proposed solutions to some of those problems and the costs
associated with those solutions.
Included is a brief description of hardware support that must be
included in any native expansion slot card (PSI, PCI, etc). whose
purpose is to allow NuBus cards to be plugged into the system.
With this provision, a NuKernel based system should be able to
remain compatible with all but the most bizzare device drivers
and applications.
What software cannot be emulated?
In a NuKernel based system, software that is invoked as a result
of a hardware interrupt, synchronously to the interruption, and at
interrupt level, cannot be emulated. For the purpose of this
discussion this classification of software is termed interruptlevel software.
Note that in System 7, there is a tremendous amount of
interrupt-level software. Applications , for example, that make
asynchronous I/O requests have their completion routines run
synchronously to the hardware interrupt that signifies the
completion of the I/O request. These applications, therefore,
contain interrupt level software. In the V1 system, however,
NuKernel Software Interrupts are used to get the execution of
completion routines out of interrupt level.
In a V1 system, interrupt-level software includes the following:
• ADB device drivers may be interrupt-level software.
This depends upon the amount re-work done to the ADB
manager. Techniques for removing ADB device drivers
from interrupt level have been demonstrated by the
NuKernel team.
• Certain system software managers such as the VBL
Manager, Time Manager, SCSI Manager, etc. These
managers all interact with some hardware at interrupt
level. However, in a V1 system, these are all ported by
the NuKernel team and execute only native instructions.
Therefore, unless there is a need to support third party
patches to these managers, they represent no problem.
Because of changes to the hardware it is doubtful that
these patches would work properly even if they were
emulated.
• Some DRVRs (Serial, Sound, etc.) have hardware
interrupt handlers. The TNT team in MSD will be
providing native versions of these drivers for V1.
Therefore, unless there is a need to support third party
M68000 drivers for these devices, they represent no
problem. Because of changes to the hardware in TNT it
is doubtful that these third-party drivers will work even
if they are emulated.
• Most NuBus cards have hardware interrupt handlers.
These are the most troublesome because the drivers are
contained in ROM on the NuBus cards and cannot be
easily replaced. This document outlines a strategy that
will be capable of supporting most, but not all, NuBus
cards.
• Applications that have interrupt handlers. This includes
certain strange applications that chose to avoid the
Device Manager model for dealing with devices. The…
Showing first 3,000 characters of 16,606 total. Open the full document →