Operating System type does do something

Discussions about using Windows guests in VirtualBox.
Post Reply
kveroneau
Posts: 15
Joined: 19. Jan 2014, 00:01

Operating System type does do something

Post by kveroneau »

I know the VirtualBox manual clearly states that the "OS Type" field only sets some sane defaults when creating a new VM, and it only decorative when altering settings later... But, I believe it does do something more, which is undocumented in the manual. If a developer or someone who knows where to look in the code can check this, and update the manual accordingly, that would be wonderful. So, here are the exact steps I took:

I attempted to install "Windows NT 3.1", and after the reboot right after the "NT Setup Disk" component is done, and when you first see the actual GUI for the first time during setup, I received the following message when "Windows NT 4.0" was chosen as the "OS Type": "Unsupported Processor detected". I'd be glad to take a screenshot of this as well for those curious.

I managed to resolve the issue by flipping the "OS Type" to "Windows 3.1", and that portion of setup started working. So, I suspect that some "OS Types" mimic different processor models, say either a 486 class, or a Pentium class. I can understand why one would want to do this when trying to run legacy OSes, but this should be documented somewhere.

And, yes I know Windows NT 3.1 isn't supported by Oracle/VirtualBox, but this issue is rather unrelated to that OS, and it's more of a documentation error I'd like to bring up.

When I did the "OS Type" toggle, I didn't create a new VM, I just updated the config of the existing one, and this is documented as to have no change on any settings. VT-x/AMD-V is on in both cases, and the latest version of VirtualBox is being used. The PC in question uses the VT-x, if that means anything.

EDIT: And for those curious on why I am bringing up an NT 3.1 VM, well, I want to test out that new SCSI CD-ROM Emulation, during setup it was able to detect the BusLogic, so I am hoping that it detects the CD-ROM now as well. My previous version of VirtualBox, 4.2.6, NT 3.1 didn't play nice with the IDE CD-ROM(Still curious on why Microsoft forgot standard IDE CD-ROM support in NT 3.1). I tried an IDE-CD driver from online recommended, but it can only read a limited amount of ISOs, so it's rather worthless. It can read ISOs I create using "genisoimage -J -o CD.iso .", but it cannot say read the NT3.1 setup CD-ROM or other discs.

EDIT2: Okay, so Windows NT 3.1 is blue screening after the login process, and before "Program Manager" is displayed. It worked fine in VirtualBox 4.2.6, besides a bug with WOWEXEC, it ran smoothly. So, I guess I can't test out the SCSI CD-ROM Emulation in Windows NT 3.1 now. I originally tested out an existing VDI I made in 4.2.6 in the latest version of VirtualBox, and ran into the same blue screen. The VDI works perfectly in VirtualBox 4.2.6. I will try other installation methods, like a minimal driver install and pinpoint which virtual hardware device might be breaking it.

EDIT3: Okay, so it seems the huge update to VT-x/AMD-V in the latest 4.3.0 release of VirtualBox doesn't play nice with Windows NT 3.1, Windows NT 3.1 worked fine with VT-x/AMD-V turned on in VirtualBox 4.2.6, so the blue screen here is clearly being triggered by the new VT-x/AMD-V code. This is running through VT-x on a CORE i5, I will see about testing the AMD-V update on my AMD system after I update VirtualBox there. Perhaps is just an issue with either Intel's implementation, or the VT-x specific code in VirtualBox.

EDIT4: Great news for those curious about BusLogic SCSI CD-ROM support in NT 3.1! It works! And furthermore, it is able to read any ISO I tried so far, even ones which failed with the IDE CD-ROM driver I had before. Furthermore, I also tried moving the system/boot disk over to the BusLogic controller, and it works! So Windows NT 3.1 can have the benefits of faster HDD access, as we all know how bad IDE controllers/disks are. I don't believe that BusLogic worked previously in NT 3.1 under VirtualBox, so this is great!
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Mostly XP

Re: Operating System type does do something

Post by mpack »

Yes, since 4.3.0 it does do something more.

Where in the user manual does it say otherwise?
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Any and all
Contact:

Re: Operating System type does do something

Post by michaln »

I think the complaint (quite valid) is that it's nowhere documented what the guest type setting actually does. And it does do things.

@OP: Microsoft could only forget to add ATAPI CD-ROM support to NT 3.1 if they traveled through a time warp and released NT 3.1 after such drives were actually available. In reality, when NT 3.1 was finalized, there simply was no ATAPI yet. 1994 was when the first ATAPI-enabled OSes showed up (NT 3.5, OS/2 Warp).

Anyway, I'm quite confused by the post... it's well known that NT 3.1 (and 3.5) includes brain-damaged logic which causes the OS to refuse to install if it detects a Pentium Pro or later CPU. There is nothing that any guest OS setting does that would change that. Setting the guest type to Windows 3.1 does not change what CPU the guest sees.

The NT 4.0 guest type restricts the number of CPUID leaves reported to the guest to 3 (or is it 4? I forget) to prevent that OS from bluescreening (another NT brain damage), but that does not change what CPU family/model is reported, and does really not affect NT versions other than 4.0.

What's true is that the BusLogic SCSI emulation did not previously work with NT 3.1 (and 3.5). In VirtualBox 4.3, we added extra compatibility which makes the PCI BusLogic devices also look like ISA devices (something the real HBAs did).
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Mostly XP

Re: Operating System type does do something

Post by mpack »

My question was straight, not a rhetorical one: where in the manual does it say what he said it says?

However I've since checked, and it was easier to find than I expected - and it does indeed say what the OP says it does. So, it does look a doc revision is called for.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Any and all
Contact:

Re: Operating System type does do something

Post by michaln »

mpack wrote:However I've since checked, and it was easier to find than I expected - and it does indeed say what the OP says it does. So, it does look a doc revision is called for.
OK, I couldn't find it -- please tell me where exactly it is :)

(Personally I'd much prefer if the guest OS type didn't do anything beyond setting defaults, but I'm in the minority. It seems that presenting users with interesting surprises if they happen to change the guest OS type is how it's going to be.)
kveroneau
Posts: 15
Joined: 19. Jan 2014, 00:01

Re: Operating System type does do something

Post by kveroneau »

It is located in Section 3.3.1, it specifically states the following:

https://www.virtualbox.org/manual/ch03.html#idp49980800
Whereas the default settings of a newly created VM depend on the selected operating system type, changing the type later has no effect on VM settings; this value is then purely informational and decorative.
@michaln: Thank for clarifying the ATAPI support and why it was absent, makes complete sense now. I recall using both DOS and Win 3.1 back in the day, and used a CD-ROM on my computer, that's why I thought NT 3.1 would have support built-in. Then thinking about it more, CD-ROMs only came after Windows 3.1 was released.
michaln wrote:Anyway, I'm quite confused by the post... it's well known that NT 3.1 (and 3.5) includes brain-damaged logic which causes the OS to refuse to install if it detects a Pentium Pro or later CPU. There is nothing that any guest OS setting does that would change that. Setting the guest type to Windows 3.1 does not change what CPU the guest sees.
I did manage to install and run NT 3.1 without a hitch after changing the Operating System Type to "Windows 3.1", and it didn't complain. However, I did need to turn off VT-x/AMD-V now in VirtualBox 4.3.x, whereas I could leave it on when using VirtualBox 4.2.6.
michaln wrote: What's true is that the BusLogic SCSI emulation did not previously work with NT 3.1 (and 3.5). In VirtualBox 4.3, we added extra compatibility which makes the PCI BusLogic devices also look like ISA devices (something the real HBAs did).
That is great! It was always a hassle trying to use some older OSes in VirtualBox, and now all versions of NT can have the enhancements of SCSI over IDE, whereas the former uses less CPU resources, thus a faster and more efficient guest. So, I'd recommend if the default settings for both NT 4.0 and 2000 should be BusLogic SCSI over the current default of IDE.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Any and all
Contact:

Re: Operating System type does do something

Post by michaln »

kveroneau wrote:It is located in Section 3.3.1, it specifically states the following:

https://www.virtualbox.org/manual/ch03.html#idp49980800
Thanks, that's what I have been looking for.
Then thinking about it more, CD-ROMs only came after Windows 3.1 was released.
Actually, CR-ROMs were available since around 1986 or 1987, but didn't become widespread until around 1992 or so. Initially they were all SCSI, later also a bunch of proprietary interfaces (Mitsumi, Sony, and others). The proprietary interfaces died quickly, being replaced by IDE/ATAPI. SCSI CD-ROMs remained but were less and less common.
I did manage to install and run NT 3.1 without a hitch after changing the Operating System Type to "Windows 3.1", and it didn't complain.
I'm very surprised. That actually sounds like a bug... Turning off hardware virtualization might do something, but shouldn't -- NT should still detect a post-Pentium CPU. Very strange.
However, I did need to turn off VT-x/AMD-V now in VirtualBox 4.3.x, whereas I could leave it on when using VirtualBox 4.2.6.
What exactly happened? I've been able to install old NT versions with hardware virtualization on VirtualBox 4.3.x, but a lot depends on the exact hardware (and VirtualBox version, needless to say).
That is great! It was always a hassle trying to use some older OSes in VirtualBox, and now all versions of NT can have the enhancements of SCSI over IDE, whereas the former uses less CPU resources, thus a faster and more efficient guest. So, I'd recommend if the default settings for both NT 4.0 and 2000 should be BusLogic SCSI over the current default of IDE.
We'll think about it. One problem is that moving a disk from an existing VM to such a new VM might not work well (different default geometry).
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Mostly XP

Re: Operating System type does do something

Post by mpack »

michaln wrote: (Personally I'd much prefer if the guest OS type didn't do anything beyond setting defaults, ...)
Ditto. And IMHO many users are surprised by the new behaviour. And all to avoid having an Advanced/longmode setting somewhere in the GUI?
kveroneau
Posts: 15
Joined: 19. Jan 2014, 00:01

Re: Operating System type does do something

Post by kveroneau »

mpack wrote:
michaln wrote: (Personally I'd much prefer if the guest OS type didn't do anything beyond setting defaults, ...)
Ditto. And IMHO many users are surprised by the new behaviour. And all to avoid having an Advanced/longmode setting somewhere in the GUI?
I think it's more than that in the case of the NT 4.0 Operating System type, as displayed by how the NT 3.1 setup program reacted.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Any and all
Contact:

Re: Operating System type does do something

Post by michaln »

kveroneau wrote:I think it's more than that in the case of the NT 4.0 Operating System type, as displayed by how the NT 3.1 setup program reacted.
Are you 100% certain it was only the guest OS type setting and nothing else that made a difference for NT 3.1? Because even knowing what difference the guest OS type settings makes, it doesn't make sense that it'd make NT see a different CPU.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Any and all
Contact:

Re: Operating System type does do something

Post by michaln »

mpack wrote:And IMHO many users are surprised by the new behaviour. And all to avoid having an Advanced/longmode setting somewhere in the GUI?
I wish I could explain it to you, but I don't understand the logic myself :) IIRC the argument was that a long mode setting would unnecessarily confuse users, so we'd rather confuse users in a different way. I could be wrong about that though.

If you or someone created a ticket and enough people chimed in complaining about the current behavior being too cryptic, it might convince people. We as developers aren't really very good at judging what is or isn't intuitive for regular users; we know too much :)
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Mostly XP

Re: Operating System type does do something

Post by mpack »

My problem isn't so much that changing the OS version makes actual changes, it's that it makes obscure, hidden, undocumented changes. That seems a bit nasty to me.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: VirtualBox+Oracle ExtPack
Guest OSses: Any and all
Contact:

Re: Operating System type does do something

Post by michaln »

I agree -- but again, it's not me you need to convince :)
Post Reply