|
|
|
|
|
by rep_lodsb
1640 days ago
|
|
As long as the hardware isn't DMA-capable or has to be shared, allowing programs direct access isn't a security violation. Since everything runs in protected mode, the kernel is still "in charge", and can limit what I/O should go directly to the hardware. This is supported by the processor, which has a per-task bitmap of allowed I/O ports. Virtualization was introduced on IBM mainframes in the 1970s, and in a somewhat more limited version has been present in 32-bit x86 operating systems (even Windows 3.x could run several virtual DOS machines at the same time). Every 32-bit version of Windows still supports running 16-bit programs. Microsoft could have continued supporting 16-bit protected mode even on 64-bit, or even used the newer virtualization features (in place of V86 mode) to run real mode code, but choose not to. As for the expectations of modern computer users, those that don't know how any of this stuff works probably believe that everything has to get slower, more restrictive, and less backward compatible in the name of Security :( |
|
We're talking about Parallel-Ports here, aka "The Printer Port". Any printer program written "old-school" would have tried to send data to LPT-1, except you have an X-Ray machine sitting there confused at these messages its getting.
The proper technique of printing, is not to directly contact the LPT-1 port and shove data into it... its to talk to Windows's printer spool and interact indirectly.
The user then configures the LPT-1 port: is it to be managed by the printer spool? Or should LPT-1 port be divvyed out to a particular program and reserved through another manner?
---------
There's absolutely a security concern about random programs sending messages to the hardware. Maybe the OS doesn't have a security issue, but those medical devices could have commands (such as rewriting firmware) sitting on those ports.
You'd want to make sure that only approved programs directly interacted with those kinds of hardware devices... with the protocols that are appropriately specified by the user.