Page 1 of 1

Template defaults (Global.cpp revisions)

PostPosted: 6. Apr 2017, 06:25
by socratis

2019-10-13: I've unlocked the topic, primarily to allow "Cc:" comments.

Any comment not directly related to the thread will be right out deleted, no questions asked.

In case you've messed up with your VM's recipe so much that you can't remember what is should look like, or if you've imported an older VM, or if you've upgraded an older VM and it carried out some old defaults, here is a reverse chronological list of how the templates have changed over time. It goes as far back as Oct/2010.

The template defaults are stored in the file vbox/trunk/src/VBox/Main/src-all/Global.cpp

Some of them were personally surprising, like r61697 where the default NIC changed for WinXP/Win2K3 from PCnet-FAST III to the Intel PRO and caught me by surprise.

I have put together the combined diffs if anyone is interested in the details, otherwise the revision, date and summary from the SVN tree are below.

I've also made a "summary" table with all the features proposed by the templates. Useful for a quick reference, but too big to have it as simple online text. Great if you want to use it as a spreadsheet to quickly filter features.

And finally a LibreOffice .ods spreadsheet based on the .csv above. Auto-filters enabled, frozen windows for easier navigation, broken down "osHints" options. Anything "blue" is auto-calculated.

Without further ado, here's the list of changes:

  • r80074 - 2019-07-31 16:18:34
    VMM,Main,++: Retired the unfinished FTM component.

  • r80023 - 2019-07-28 15:29:43
    Main: Kicking out raw-mode. bugref:9517

  • r77637 - 2019-03-10 18:12:14
    Main/Global.cpp: Ecomstation needs a floppy too, for the key file.

  • r77581 - 2019-03-06 14:22:09
    Global: Default to no USB for DOS and NetWare, floppy drive for NetWare.

  • r76553 - 2019-01-01 03:45:53
    scm --update-copyright-year

  • r76165 - 2018-12-25 09:21:57
    scm --fix-err-h src/ (bugref:9344)

  • r76165 - 2018-12-11 18:37:21
    Main/Global.cpp: Split out status code conversion functions into a separate file.

  • r75834 - 2018-11-30 00:25:51
    Main/Global: change default graphics controller (applied when creating new VMs) for all Linux variants to VMSVGA

    [sic] Which translates to:
    • All Win≥7 guests get "VBoxSVGA".
    • All Linux guests get "VMSVGA".
    • Everything else gets "VBoxVGA".

  • r75817 - 2018-11-29 17:24:26
    Main/GuestOSType: Add recommended Graphics Controller information and use it when applying defaults (including a small GUI change). Main/idl: Refresh the reserved method and attribute counts in the IDL, preparing for the release.

    [sic] Added vGPU info. All WinGuests ≥ 7 get the "VBoxSVGA" as a default, all others stay with "VBoxVGA". Added "Windows 2019 (64-bit)" guest option.

  • r71349 - 2018-03-15 13:23:39
    Guest Control/Main: Added (COM) error codes VERR_GSTCTL_MAX_OBJECTS_REACHED, VBOX_E_MAXIMUM_REACHED and VBOX_E_GSTCTL_GUEST_ERROR; make use of those when creating guest control objects, such as guest sessions, files and directories.

  • r70561 - 2018-01-12 15:05:53
    Main/Global: bump disk size recommendations for Windows 7 and later

    [sic] Win7/2008 25->32 GB, Win8/8.1 25->40 GB, Win2012/10/2016 32->50 GB

  • r70454 - 2018-01-03 18:18:48
    Main/Global.cpp: Changed the NT 3.x recommendations to be BusLogic for both DVD and HD, reducing memory to 64Mib, VRAM to 8MiB and HD to 1GiB. NT 3.1 does do ATAPI CDROMs and cannot detect more than 64MiB of RAM. 8MiB of VRAM is more than enough for VGA (no GA drivers yet). 1GiB of HD converts fine to NTFS (from FAT) with 3.1, whereas 2GB doesn't want to.

  • r70235 - 2017-12-20 11:47:31
    Main/Global: change order of Linux guest OS types, returning to 'sort by traditional name' in alphabetic order

  • r70218 - 2017-12-19 11:17:11
    Main/Global.cpp: Added NOUSB to the NT4 guest OS type hints.

  • r70217 - 2017-12-19 11:14:53
    VBox/ostypes.h,Main: Forced an NT 3.x type into the enum. NT 3.x needs floppy and have no use for USB.

    [sic] GAs are up next ;)

  • r68314 - 2017-08-07 10:14:51
    added OS types for macOS 10.12 and 10.13

  • r66816 - 2017-05-08 09:58:18
    Main: increased the default RAM size for Windows 7 / 2008(R2) according to the Microsoft recommendations

    [sic] Win7/W2008 32-bit went from 512 MB to 1024 MB. The 64-bit versions went from 512 MB to 2048 MB.

  • r66382 - 2017-03-31 13:43:50
    Main: Ubuntu: 8GB => 10GB (Ubuntu 17.04 needs 8.3GB)

  • r66234 - 2017-03-23 15:40:10
    s/25G/32G/ for >= Windows 10

  • r66220 - 2017-03-23 12:11:13
    Windows 2016 OS type

  • r64335 - 2016-10-20 15:14:21
    For Solaris 11 guests, default to RTC using UTC to match the OS.

  • r63431 - 2016-08-14 12:40:45
    gcc 4.8.x and -Wconversion.

  • r62485 - 2016-07-22 18:36:43
    (C) 2016

  • r62468 - 2016-07-22 18:01:39
    Main: scm (extra space after VBOXOSHINT_RTCUTC)

  • r61747 - 2016-06-17 14:22:49
    enable X2APIC for Linux guests

  • r61697 - 2016-06-14 15:22:18
    Main: default to E1000 I82543GC (PRO/1000 T Server) for Windows XP (32-bit) and Windows 2003 Server (32-bit)

  • r61689 - 2016-06-14 08:31:02
    Main: increased the default size of RAM, VRAM and hard disk of some guest OSes

  • r60836 - 2016-05-04 15:07:32
    Increase default OS X disk size. Updates are gargantuan these days.

  • r59621 - 2016-02-10 00:51:35
    ApplianceImplImport.cpp,++: Pushed the IPRT VFS stuff futher down, only going to the VD I/O wrappers when start getting down into the media code during import. Reworked the OVA releated import code to skip files it doesn't care about (like message resource xml files which we don't implement) and not be picky about which order files the OVF, MF and CERT files come in (todo: make sure it isn't picky about the order of disks either). Read the manifest and certificate file during the read() method.

  • r58677 - 2015-11-12 16:44:55
    introduced new OS hint for USB-3-capable guests

  • r58601 - 2015-11-06 12:40:48
    Added VBOXOSTYPE_VBoxBS_x64 with main recommendations.

  • r56864 - 2015-07-08 13:01:44
    added two more OSX guest types

  • r56492 - 2015-06-18 09:56:09
    Main: Raised the default RAM size of common Linux distributions from 512MB to 768MB. A more fine-grained OS type will allow better default values but for now we just assume that the user installs a more recent Linux distribution. 512MB is almost unusable in these days.

  • r56459 - 2015-06-16 16:24:14
    Added audio codec type property, including recommended type.

  • r56447 - 2015-06-16 11:37:40
    Main: Default to SATA DVD drives for Windows Vista and later.

  • r56248 - 2015-06-04 21:01:01
    Main: NetBSD assumes RTC in UTC by default.

  • r56202 - 2015-06-02 11:47:55
    Main: "32 bit" => "32-bit", "64 bit" => "64-bit"

  • r55936 - 2015-05-19 13:06:27
    extended generic Linux OS type

  • r55214 - 2015-05-19 13:06:27
    Main/Console+Machine+Session+Snapshot: move the save state and snapshot related methods from IConsole to IMachine, with lots of unavoidable code restructuring and cleanup. Also define two new machine states (so that the "Saving" one is specifically for saving state now) which requires more changes everywhere. Frontends: necessary adjustments doc/SDK: document the changes

  • r54017 - 2015-01-28 15:12:18
    Main: increase the minimum required memory for 2003 Server as well as WinXP64 to 512M, lower values don't make sense here

  • r54016 - 2015-01-28 14:51:45
    default 256MB for WinXP64

  • r54005 - 2015-01-28 07:18:28
    increase default HDD size for Windows 10 guests

  • r53012 - 2014-10-09 17:40:56
    Windows 10 guest os type.

  • r51538 - 2014-06-04 20:23:09
    fixed typo for Win81 OS types

  • r51389 - 2014-05-26 10:28:48
    increase default RAM for EL64/OL64 from 512M to 768M

  • r50242 - 2014-01-27 12:23:36
    Main: 6713: Adding (32 bit) postfix to OSes descriptions.

  • r49074 - 2013-10-13 22:08:34
    Main, FE/Qt: Added a triple fault handling OS hint and a new OS/2 1.x guest type.

  • r48886 - 2013-10-04 13:25:11
    Mac OS X VM defaults: Default to I82545EM instead of I82543GC since Mavericks doesn't support the latter.

  • r48827 - 2013-10-02 18:17:48
    Mac OS X guest types enumeration: fixed typo.

  • r48702 - 2013-09-26 10:31:24
    increase the default RAM size of a few Linux guests to at least 512MB

  • r48685 - 2013-09-25 14:29:28
    More mac OS X guest types so we can add version specific hacks more easily.

  • r48440 - 2013-09-11 17:27:52
    Mac OS X should default to AHCI DVD drive and UTC in RTC.

  • r46876 - 2013-07-01 10:09:35
    Win8.1 OS type

  • r46775 - 2013-06-25 12:37:57
    Main/Host(HostPower)+Session+Console: convert HostPower code to signal pause/resume/savestate through internal methods, conveying information why the method was called, preparing for VM/PDM passing this information to devices and drivers

  • r46350 - 2013-05-31 20:12:02
    The GUI an its assumptions... Fixed assertion due to missing OS icon info for the new type and fixed the ordering.

  • r46341 - 2013-05-31 12:13:49
    64-bit unknown OS types.

  • r45276 - 2013-04-02 08:17:11
    Ring-1 compression patches, courtesy of trivirt AG:
    • main: diff to remove the hwvirt requirement for QNX
    • rem: diff for dealing with raw ring 0/1 selectors and general changes to allowed guest execution states
    • vmm: changes for using the guest's TSS selector index as our hypervisor TSS selector (makes str safe) (VBOX_WITH_SAFE_STR )
    • vmm: changes for dealing with guest ring 1 code (VBOX_WITH_RAW_RING1)
    • vmm: change to emulate smsw in RC/R0 (QNX uses this old style instruction a lot so going to qemu for emulation is very expensive)
    • vmm: change (hack) to kick out patm virtual handlers in case they conflict with guest GDT/TSS write monitors; we should allow multiple handlers per page, but that change would be rather invasive
  • r44413 - 2013-01-28 10:54:31
    Main/Global: add Linux 3.x to the Linux 2.6 entry to make it clear it's the appropriate OS type to choose for new kernels, too

  • 2012-09/07 15:16:12 - Rev. 43248
    added a Win2k12_x64 OS type

  • r43088 - 2012-09-07 15:16:12
    Win8: no 3D for new VMs because that's more stable. The user can still enable 3D afterwards

  • r42911 - 2012-08-22 12:58:51
    Main: Mac guest bump memory default size 1Gb -> 2Gb.

  • r42339 - 2012-07-24 08:52:22
    Main: MS recommends 2GB for Win8/64

  • r41973 - 2012-06-29 15:08:30
    8 => 12GB for Oracle Linux guests

  • r40690 - 2012-03-28 15:08:56
    25GB default hard disk space for Vista .... Windows 8

  • r40671 - 2012-03-27 20:21:37
    Ubuntu: enable PAE

  • r40290 - 2012-02-29 11:15:22
    Windows 8 / 32-bit guests require PAE

  • r40041 - 2012-02-10 14:52:47
    Create Win9x VMs with floppy/SB16, tablet for Me.

  • r39248 - 2012-02-10 14:52:47
    Runtime: new guest OS type for Solaris 11
    • Frontends/VirtualBox: add new patterns for Solaris 11 guest OS type, reuse the icon
    • Frontends/VBoxManage: more details for "list ostypes"
    • Main/xml: make guest OS type in config file an arbitrary string (still validated/mapped in the old way in the settings code), remove hardcoded limit of 8 network adapters
    • Main/Global: move list of valid guest OS types into a single place, add function to get the network adapter limit for each chipset type
    • Main/Console+Machine+Snapshot+NetworkAdapter+Appliance+VirtualBox+Guest+SystemProperties: consistently use the appropriate network adapter limit so that ICH9 chipset can use 36 network adapters, adapt to cleaned up guest OS type handling, remove leftover rendundant guest OS mapping, whitespace
    • Network/NAT: release log message cosmetics, allow unlimited number of instances, fix maxconn clamping
    • Network/PCNet+VirtioNet+E1000: allow unlimited number of instances
  • r39216 - 2011-11-07 14:14:04
    Main/Global: remove the "Server" bit from the Mac OS X guest OS type names

  • r39205 - 2011-11-04 12:28:07
    Adjusted defaults for some guest types (audio/floppy).

  • r39058 - 2011-10-20 14:33:44
    Added machinery to add floppy or not add USB for new VMs depending on guest type.

  • r39055 - 2011-10-20 14:02:17
    Fe/Qt4+Main: Use 3D acceleration + 128MB VRAM for Windows 8 by default. Added IGuestOSType::recommended2DVideoAcceleration() + IGuestOSType::recommended3DAcceleration().

  • r38781 - 2011-09-16 15:19:58
    1.5GB for 64-bit Solaris

  • r38780 - 2011-09-16 15:07:54
    1GB for 32-bit Windows 7 should be sufficient

  • r38770 - 2011-09-16 06:42:57
    Windows 8: VT-x/AMD-V and I/O APIC

  • r38755 - 2011-09-16 06:42:57
    Windows 8 OS type

  • r38295 - 2011-08-03 09:47:48
    Main: Use absolute pointing device by default for NT 5.0 and later guests.

  • r37722 - 2011-05-13 10:18:12
    Default to 500M instead of 512MB to stay under 1024 cylinders.

  • r37059 - 2011-06-30 09:29:39
    Main: 640MB are the absolut minimum for F15, see

  • r35426 - 2011-01-07 09:29:39
    Main: change the Solaris OS type description

  • r35368 - 2011-01-07 09:29:39
    Main: source re-org.

  • r34904 - 2010-12-09 16:28:56
    Main/Global: enable USB tablet for "Solaris modern" guests

  • r34605 - 2010-12-02 13:13:28
    Main/Global+Frontends/VirtualBox: adjust the default settings for Solaris 11 and other modern variants, adjust the guest OS description text and make the wizard a bit smarter when guessing the difference between legacy and modern

  • r34518 - 2010-11-30 14:12:31
    better defaults for JRockitVE

  • r34497 - 2010-11-30 10:42:14
    added JRockitVE operating system support

  • r33946 - 2010-11-10 17:52:17

  • r33945 - 2010-11-10 17:49:56
    More vfs code, new iprt error range..

  • r33743 - 2010-11-03 17:50:50
    Main: Windows, starting Vista, shall use HDA audio by default

  • r33447 - 2010-10-26 08:07:43
    Main/UIWizard: Sound Controller attachement recommendations was added.

  • r32880 - 2010-10-04 08:55:59
    Main: Solaris defaults back to IDE, OpenSolaris default remains SATA

Re: Template defaults (Global.cpp revisions)

PostPosted: 6. Apr 2017, 15:09
by noteirak
nice work!

Re: Template defaults (Global.cpp revisions)

PostPosted: 6. Apr 2017, 17:34
by socratis
Thanks Max. I had the information for several years now for personal use, I just decided to put them in a form of a post after a failed Fedora 25 update which was due to the defaults changing.

Re: Template defaults (Global.cpp revisions)

PostPosted: 22. May 2017, 00:11
by socratis
RAM defaults for Win7/Win2008r2 guests went up. From 512 MB for all of them, to 1024 MB for the 32-bit versions and to 2048 MB for the 64-bit versions. Expect low-host-RAM weather conditions ahead...

Re: Template defaults (Global.cpp revisions)

PostPosted: 9. Jan 2018, 21:21
by socratis
End/start of the year update (last change 2017-12-20). Changes include:

  • New OSX 10.12, 10.13 templates (same settings/requirements as the previous OSX versions).

  • New WinNT 3.x template for NT server 3.x. Same as for WinNT4 (with an extra floppy requirement). Potentially coming with GAs, just look at the timeline from Dec/2017! Time to dig up those old NT 3.51 server floppies, all 30(?) of them!

  • Alphabetical rearrangement of the Linux guests.

Re: Template defaults (Global.cpp revisions)

PostPosted: 5. Mar 2018, 15:47
by socratis
2018-03-05 update, includes r70561:

  • Increased the default HD size for Win guests: Win7/2008 from 25 to 32 GB, Win8/8.1 from 25 to 40 GB, and Win10/2012/2016 from 32 to 50 GB.

  • Lowered the defaults for WinNT 3.x: 128 to 64 MB RAM, 16 to 8 MB vRAM, 2 to 1 GB HD, PIIX4/IDE to BusLogic/SCSI for HD and CD.

Re: Template defaults (Global.cpp revisions)

PostPosted: 24. Aug 2018, 08:03
by socratis
Moved the thread to "OSE" from the "Developers" section. The latter needed an account in the forums, unregistered users didn't have not even read-only access. There was no reason for that whatsoever...

Re: Template defaults (Global.cpp revisions)

PostPosted: 13. Oct 2019, 07:49
by socratis
2019-10-13: I've unlocked the topic, primarily to allow "Cc:" comments. Any comment not directly related to the thread will be right out deleted, no questions asked.

Re: Template defaults (Global.cpp revisions)

PostPosted: 31. Oct 2019, 01:19
by socratis
2019-11-01 update, includes r80074:
    That was a long time for an update of the changesets, since r70561 - 2018-01-12 15:05:53. Major changes include:

    • Introduction of the additional vGPUs:
      • All Win≥7 guests get "VBoxSVGA".
      • All Linux guests get "VMSVGA".
      • Everything else gets "VBoxVGA".
    • Added "Windows 2019 (64-bit)" guest option. Win2019 is there, but it's commented out.
    • Default to no USB for DOS and NetWare, floppy drive for NetWare.
    • eComStation gets a floppy by default as well.

Re: Template defaults (Global.cpp revisions)

PostPosted: 5. Nov 2019, 08:00
by socratis
Added LibreOffice "Global.ods" for your convenience...