[Info-vax] VMS device drivers, was: Re: The best VMS features, was: Re: openvms renaming file

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Thu May 31 11:51:49 EDT 2018


On 2018-05-31 12:20:40 +0000, Simon Clubley said:

> On 2018-05-31, Bill Gunshannon <bill.gunshannon at gmail.com> wrote:
>> 
>> My point was that there is little difference between desktop and server 
>> systems today and writing either off is a bad decision.  Can it really 
>> be that hard  to write a device driver for a limited set of graphics 
>> cards?

The completion of the x86-64 port is the overwhelming development 
priority for VSI folks.

VSI doesn't have enough staff for what they need to do and are working 
on.   VSI does not have infinite staff, nor infinite schedule, nor 
infinite focus.

VSI have specifically stated server configurations are the target for 
VSI OpenVMS.   Not desktops.  Definitely not workstations.

VSI folks have discussed supporting the embedded graphics and the 
management graphics.  Intel HD, UHD, Iris, Iris Pro, et al.

VSI does not have an installed base that's using OpenVMS on the 
desktop, beyond some few existing X-based control interfaces and 
related apps.

As for writing drivers?  Sure.  It's a SMOP.   Particularly for an 
isolated one-off device driver.  Graphics drivers are not isolated.   
When last I looked, I'd figured at least a half year and quite possibly 
most of a year of work for an experienced OpenVMS developer already 
familiar with writing and debugging drivers, for design and development 
and testing and integration and documenting of a wholly new graphics 
controller, and that assuming full source access to OpenVMS and 
DECwindows.  One of the few folks that wrote various of the graphics 
drivers died a few years ago, too.  The numbers of folks that have 
written and integrated drivers into DECwindows is considerably smaller 
than the small number of folks that have written OpenVMS device drivers.

That's a ~year away from modifying existing and writing new drivers 
more directly necessary for the OpenVMS x86-64 port, too.

Outside of the processor-embedded graphics hardware, graphics cards 
were coming and going more quickly than that.  Outside of the embedded 
graphics controllers and products from one or two of the graphics 
vendors, most of the graphics controllers were also quite proprietary 
and the vendors were less than willing to provide documentation to 
random folks.   Desktop systems and their configurations and components 
are getting revised and replaced once or twice a year too, and 
variously changed between new products.  There's a whole lot of churn 
in computing.  And more than a little churn among the graphics 
controller products.  "Average shelf life of a fruit fly" and all.  
Which means purchasing and storing whacking great piles of specific 
graphics controllers for resale and with the stocking costs and risks 
that that entails, or playing perpetual catch-up with controllers, or 
variously both.

Then there's that the entire graphics implementation on OpenVMS is 
awful.   From the refresh and resolution controls up through the 
available APIs and to the lack of apps and tools for development of 
graphical applications.

For GUI development tools, Xcode is staggeringly better than anything 
available on OpenVMS, for instance.  I'd have to expect that some of 
the other leading IDEs are in that same range.

And as for client interfaces, we're just starting to see what's 
possible with browser-based clients using WebAssembly, and we already 
know what's possible with JavaScript: https://bellard.org/jslinux/

Then there's that we can't prize many of the OpenVMS developer folks 
away from their character cell interfaces and terminals and LK 
keyboards, and those that do look around are moving to web clients for 
the apps, or dedicated app clients running on the client platforms.  To 
client-server user interfaces, as it that was once commonly known.

> It's harder on VMS than it is on Linux.
> 
> You can't reload device drivers on VMS so you need to reboot your test 
> system every single time you change something and want to load a new 
> version of the driver.
> 
> Also, what functionality is required ? Is a framebuffer driver 
> sufficient or would you need a driver with acceleration support ?
> 
> It's also a pity VMS doesn't have user mode device drivers.
> 
> Yes, VMS has ACPs which can be used in some situations but how to write 
> one is totally undocumented.

Drivers are but one part of the work involved.  Reboots aren't nearly 
as tedious as they once were either, and particularly if the box is 
configured to skip most or all of POST.

Yeah; ACPs aren't too bad and that having written several, though there 
were a few bugs in the one bit of third-party ACP documentation that 
was available within a long out-of-print third-party book; Leahy and 
Hanrahan's VMS Advanced Device Driver Techniques.  There's a whole lot 
of missing code around mounts and dismounts that the developer has to 
write.  And remote debugging is somewhere between helpful and 
necessary, either via app-embedded DECterm usage or via embedded 
debugging.

An ACP doesn't get you a good path into the graphics controller and GPU 
from user mode through the system.  Frame buffer or otherwise.  There 
are security concerns around the increasing capabilities and access of 
GPUs. too.   The connect-to-interrupt stuff disappeared long ago.

Beyond the device drivers and X integration, most folks with current or 
new apps are gong to want CUDA or OpenCL or OpenGL or ilk, and GTK+ or 
Qt or ilk, for application access.  X of the vintage that's offered on 
OpenVMS isn't going to be popular.

There are hardware differences between servers and workstations.  
Servers and workstations usually have a different mixture of PCIe 
slots.  And different mixtures of external I/O connections, for that 
matter.  Servers tend to focus on remote management and hardware 
whichever niche the server is focused on, while workstations tend to 
focus on x16 slots — which are not useful on OpenVMS — and fewer or no 
x4 slots.  Low- to mid-range desktops have embedded graphics, while 
that's not so common in workstations.  Servers and some higher-end 
workstations tend to have Xeon or ilk, and EDC/ECC features.

Hardware differences between desktops and servers aside, X support on 
OpenVMS is old and problematic, and there are comparatively few (no?) 
current X apps for OpenVMS.  No current X toolkits and development 
tools and frameworks, either.   BX was the third-party replacement for 
VUIT, and that's all long gone on OpenVMS.  Then there's what you're 
going to do with the configuration.   There are few desktop apps for 
OpenVMS.  What's been around for OpenVMS has been embedded and 
purpose-built X apps with some running locally and some running 
remotely, and those haven't changed substantially in decades.  And 
changes to those apps are headed toward remote displays from 
purpose-built clients or browser-based user interfaces.  Not enough 
folks to matter are going to be interested in spreadsheets or WYSIWYG 
document preparation on OpenVMS, much less the browsers and multimedia 
support that's commonplace on desktop-targeted and mobile-targeted 
configurations.  And all the "fun" that is DRM and HDCP, just as soon 
as those enter scope.

DEC and OpenVMS ceded the desktop circa 1995.  The trends were clear then, too.

Maybe when the x86-64 port is available and stable and OpenVMS servers 
are increasing in sales, then maybe VSI can review and retarget and 
staff and expand, and can work to slim down and clean up and tailor an 
OpenVMS distribution and its power management and APIs and other 
details expected for and increasingly provided for desktop use.  But 
pragmatically the chances of OpenVMS replacing Windows or AOSP or iOS 
is somewhere around zilch.  Linux is in a much, much better situation, 
and the comments about "The Year of Linux on the Desktop" still 
circulate.  Whatever local management processor and/or embedded 
processor and remote X and DECwindows is where we are and what we have, 
for the foreseeable future.

So... sure... writing a device driver is a SMOP.  Given the hardware 
doc and/or the time to reverse the hardware.  Given the time to 
retrofit the driver into X and DECwindows on OpenVMS.  To preferably 
also document how that has to happen, too.   Lots of SMOPs in this 
business.  Figuring out which SMOPs are feasible and then which of 
those are going to be profitable is the detail that matters.   OpenVMS 
on a desktop?  Beyond what X provides for the existing OpenVMS apps 
locally and/or remotely, that's going to be a very tough sale.



-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list