Supporting OpenVMS as a VirtualBox guest
Supporting OpenVMS as a VirtualBox guest
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
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
-
- 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
Does the OS run on actual x86 hardware? And by that I mean on an actual PC, not just in a VM.
Re: Supporting OpenVMS as a VirtualBox guest
We (VSI) are in the process of porting it to run on X86 now - it currently runs on Alpha and Itanium
-
- 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
A PC has no VirtIO devices, hence my question.
Re: Supporting OpenVMS as a VirtualBox guest
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?
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?
-
- 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
It is mostly not the case. VirtualBox supports virtio-net, that's it.vsi37 wrote:That's based on the assumption that VBox presents a virtio API to a guest OS -is that not the case?
If you have drivers for (say) AHCI and Intel Gigabit Ethernet, then you may already have something that can run in VirtualBox.
Re: Supporting OpenVMS as a VirtualBox guest
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?
-
- 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
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?
But I thought you said you already had native drivers. Do those not work in VirtualBox?
Re: Supporting OpenVMS as a VirtualBox guest
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.
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.
-
- Volunteer
- Posts: 2561
- 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
Does OpenVMS has drivers for Buslogic SCSI or LSI SCSI/SAS Controllers?
-
- 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
VirtualBox is meant to run unmodified operating systems. PCI devices emulated by VirtualBox should behave more or less exactly like their physical counterparts.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.
That's completely unrelated, that API is for controlling VirtualBox itself (creating/configuring/starting VMs 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.
Re: Supporting OpenVMS as a VirtualBox guest
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
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
-
- 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
Yes. Those emulated devices are not meant to be VirtualBox-specific in any way. Existing hardware drivers should work without modification.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.
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.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 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.