Supporting OpenVMS as a VirtualBox guest

Discussions about using non Windows and Linux guests such as FreeBSD, DOS, OS/2, OpenBSD, etc.
Post Reply
vsi37
Posts: 6
Joined: 7. Jul 2017, 15:56

Supporting OpenVMS as a VirtualBox guest

Post by vsi37 »

With the effort to port OpenVMS to run on X86 well under way, VSI (VMS Software Inc.) is looking into what's required to support OpenVMS as a guest OS on VirtualBox.

As part of this effort we're developing a virtio port driver, and the first issue we have to deal with is how to resolve the virtio API calls (such as register_virtio_driver) when we link the driver on OpenVMS - it seems like we'd need an object file or library, but I'm willing to bet that there's not one available, or available yet. Is there any other way to find and connect to the virtio code?

More generally, I'd welcome any advice from those who've looked into adding a non-Linuxy, non-Windows guest OS

Thanks in advance
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: Supporting OpenVMS as a VirtualBox guest

Post by michaln »

Does the OS run on actual x86 hardware? And by that I mean on an actual PC, not just in a VM.
vsi37
Posts: 6
Joined: 7. Jul 2017, 15:56

Re: Supporting OpenVMS as a VirtualBox guest

Post by vsi37 »

We (VSI) are in the process of porting it to run on X86 now - it currently runs on Alpha and Itanium
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: Supporting OpenVMS as a VirtualBox guest

Post by michaln »

A PC has no VirtIO devices, hence my question.
vsi37
Posts: 6
Joined: 7. Jul 2017, 15:56

Re: Supporting OpenVMS as a VirtualBox guest

Post by vsi37 »

Sorry, maybe I'm not describing the context correctly - the only virtualization development experience I have is a port driver for OpenVMS running on HP-UX's HPVM. I've been using VBox at home for years (Windows 7 host, CentOS guest), but I'm very new to virtio and to development for VBox

So we're currently working on getting the OS to run not as a VM on X86 servers - we already have the native drivers we need for that and virtio is obviously not involved

But we also want to run as a VM guest on an X86 server - probably a Linux host, but we don't intend to do anything that would prevent the use of Windows instead, and we're assuming that developing a virtio port driver to interface with the hypervisor is the way to go. That's based on the assumption that VBox presents a virtio API to a guest OS -is that not the case?
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: Supporting OpenVMS as a VirtualBox guest

Post by michaln »

vsi37 wrote:That's based on the assumption that VBox presents a virtio API to a guest OS -is that not the case?
It is mostly not the case. VirtualBox supports virtio-net, that's it.

If you have drivers for (say) AHCI and Intel Gigabit Ethernet, then you may already have something that can run in VirtualBox.
vsi37
Posts: 6
Joined: 7. Jul 2017, 15:56

Re: Supporting OpenVMS as a VirtualBox guest

Post by vsi37 »

So it sounds like in order to to support block I/O devices we'd have to develop directly to the API in the Programming Guide and Reference - even if we did so under our own virtio layer?
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: Supporting OpenVMS as a VirtualBox guest

Post by michaln »

The question doesn't actually make sense to me, sorry. What API? Which Programming Guide?

But I thought you said you already had native drivers. Do those not work in VirtualBox?
vsi37
Posts: 6
Joined: 7. Jul 2017, 15:56

Re: Supporting OpenVMS as a VirtualBox guest

Post by vsi37 »

No apology needed, it's likely I haven't got a good picture of the VBox architecture yet and am just not asking the right questions

By native drivers I mean native OpenVMS drivers - they work when OpenVMS is booted on a server, but are for specific storage controllers such as the QLogic ISP2532 or Emulex LP 10000. What we need is a native driver that will recognize and work with whatever storage controller VBox presents to a guest OS. When I create a Linux VBox VM, for instance, the options for the types of storage controllers I can create are IDE, SCSI, SAS, SATA, Floppy, USB or NVMe - I need to know how to find and access those controllers (at least SCSI initially) from the OpenVMS driver environment.

Depending on how VBox virtualizes a PCI bus it may be that as a guest our system code would already find whatever controller a user creates when it scans the PCI bus - but I need to know how to issue commands to it, take interrupts from it, read status, etc.

The document I'm referring to is the "Oracle VM VirtualBox Programming Guide and Reference" v 5.1.22 - it has information on the C++ classes used by VBox, such as IStorageController.
Martin
Volunteer
Posts: 2560
Joined: 30. May 2007, 18:05
Primary OS: Fedora other
VBox Version: PUEL
Guest OSses: XP, Win7, Win10, Linux, OS/2

Re: Supporting OpenVMS as a VirtualBox guest

Post by Martin »

Does OpenVMS has drivers for Buslogic SCSI or LSI SCSI/SAS Controllers?
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: Supporting OpenVMS as a VirtualBox guest

Post by michaln »

vsi37 wrote:Depending on how VBox virtualizes a PCI bus it may be that as a guest our system code would already find whatever controller a user creates when it scans the PCI bus - but I need to know how to issue commands to it, take interrupts from it, read status, etc.
VirtualBox is meant to run unmodified operating systems. PCI devices emulated by VirtualBox should behave more or less exactly like their physical counterparts.
The document I'm referring to is the "Oracle VM VirtualBox Programming Guide and Reference" v 5.1.22 - it has information on the C++ classes used by VBox, such as IStorageController.
That's completely unrelated, that API is for controlling VirtualBox itself (creating/configuring/starting VMs etc.).
vsi37
Posts: 6
Joined: 7. Jul 2017, 15:56

Re: Supporting OpenVMS as a VirtualBox guest

Post by vsi37 »

OpenVMS has several LSI SCSI/SATA/SAS port drivers - not sure which specific model VBox presents but once we figure that out I'm sure the programming will look familiar to us - I guess the doc we'd need to code this driver is whatever firmware API doc is available for the type of controller VBox presents.

What about Guest Extensions? At home I have to put the Guest Extensions on for certain functions to work, or for them to work well - I think mouse integration and maybe sharing a drive with the host ... aren't we going to need to develop an OpenVMS Guest Extension?

Thanks for responding, this is filling in quite a few blanks

- Rick
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: Supporting OpenVMS as a VirtualBox guest

Post by michaln »

vsi37 wrote:OpenVMS has several LSI SCSI/SATA/SAS port drivers - not sure which specific model VBox presents but once we figure that out I'm sure the programming will look familiar to us - I guess the doc we'd need to code this driver is whatever firmware API doc is available for the type of controller VBox presents.
Yes. Those emulated devices are not meant to be VirtualBox-specific in any way. Existing hardware drivers should work without modification.
What about Guest Extensions? At home I have to put the Guest Extensions on for certain functions to work, or for them to work well - I think mouse integration and maybe sharing a drive with the host ... aren't we going to need to develop an OpenVMS Guest Extension?
If you want mouse integration or shared folders then yes, you'd need to develop Guest Additions. The obvious approach would be adapting the existing code for some other OS, but I don't know how feasible that is.

If you have USB absolute pointing device (aka tablet) support then you have 90% of mouse integration. Shared folders are about the most difficult part because filesystems tend to be highly OS specific.
Post Reply