From 16f504a9dca3fe3b70568f67b7d41241ae485288 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 18:49:04 +0200 Subject: Adding upstream version 7.0.6-dfsg. Signed-off-by: Daniel Baumann --- doc/.scm-settings | 45 + doc/License-gpl-2.html | 353 + doc/License-gpl-2.rtf | 356 + doc/License-gpl-2.txt | 339 + doc/License-gpl-3.0.html | 771 ++ doc/License-gpl-3.0.rtf | 601 + doc/License-gpl-3.0.txt | 663 ++ doc/ReadMe-OS2.txt | 149 + doc/ReadMe-Solaris.txt | 47 + doc/ReadMe-Solaris11.txt | 55 + doc/VBox-CodingGuidelines.cpp | 1031 ++ doc/VBox-MakefileGuidelines.cpp | 216 + doc/VBox-doc.c | 219 + doc/VMM/PDMStorageScsi.odg | Bin 0 -> 22445 bytes doc/VMM/PDMStorageScsi.png | Bin 0 -> 326026 bytes doc/VMM/VMMContexts.odg | Bin 0 -> 15400 bytes doc/VMM/VMMContexts.png | Bin 0 -> 357761 bytes doc/kBuild-tricks.txt | 62 + doc/manual/.scm-settings | 33 + doc/manual/Config.kmk | 421 + doc/manual/Makefile.kmk | 1004 ++ doc/manual/UserManual.qhcp | 55 + doc/manual/common-formatcfg.xsl | 169 + doc/manual/common-html-formatcfg.xsl | 197 + doc/manual/docbook-changelog-formatcfg.xsl | 103 + doc/manual/docbook-html-chunks-formatcfg.xsl | 64 + doc/manual/docbook-html-one-page-formatcfg.xsl | 43 + doc/manual/docbook-htmlhelp-formatcfg.xsl | 76 + .../docbook-refentry-link-replacement-xsl-gen.xsl | 203 + doc/manual/docbook-refentry-to-C-help.xsl | 986 ++ doc/manual/docbook-refentry-to-H-help.xsl | 151 + .../docbook-refentry-to-manpage-preprocessing.xsl | 89 + doc/manual/docbook-refentry-to-manpage.xsl | 58 + doc/manual/docbook-refentry-to-manual-overview.xsl | 74 + doc/manual/docbook-refentry-to-manual-sect1.xsl | 183 + doc/manual/docbook2latex.xsl | 1305 ++ doc/manual/dummy-sect1.xml | 29 + doc/manual/en_US/.scm-settings | 32 + doc/manual/en_US/Accessibility.xml | 250 + doc/manual/en_US/Makefile.kup | 0 doc/manual/en_US/SDKRef.xml | 6324 ++++++++++ doc/manual/en_US/UserManual.xml | 112 + .../docbook-refentry-link-replacement-xsl-gen.xsl | 41 + doc/manual/en_US/images/clone-vm-1.png | Bin 0 -> 81172 bytes doc/manual/en_US/images/clone-vm-2.png | Bin 0 -> 68887 bytes doc/manual/en_US/images/clone-vm-3.png | Bin 0 -> 65690 bytes doc/manual/en_US/images/cloud-profile-manager.png | Bin 0 -> 29590 bytes doc/manual/en_US/images/cloudvm-add.png | Bin 0 -> 65819 bytes doc/manual/en_US/images/cloudvm-new.png | Bin 0 -> 68976 bytes doc/manual/en_US/images/cloudvm-oci-group.png | Bin 0 -> 12110 bytes doc/manual/en_US/images/cloudvm-overview.png | Bin 0 -> 59815 bytes doc/manual/en_US/images/create-vm-1.png | Bin 0 -> 77943 bytes doc/manual/en_US/images/create-vm-2.png | Bin 0 -> 73227 bytes doc/manual/en_US/images/create-vm-3.png | Bin 0 -> 63504 bytes doc/manual/en_US/images/create-vm-4.png | Bin 0 -> 68296 bytes doc/manual/en_US/images/details-pane.png | Bin 0 -> 39695 bytes doc/manual/en_US/images/dnd-modes.png | Bin 0 -> 15875 bytes doc/manual/en_US/images/export-appliance-oci.png | Bin 0 -> 71510 bytes doc/manual/en_US/images/global-tools-menu.png | Bin 0 -> 38973 bytes doc/manual/en_US/images/guest-fm.png | Bin 0 -> 53965 bytes doc/manual/en_US/images/import-instance.png | Bin 0 -> 62466 bytes doc/manual/en_US/images/log-viewer.png | Bin 0 -> 40737 bytes doc/manual/en_US/images/machine-tools-menu.png | Bin 0 -> 52325 bytes doc/manual/en_US/images/ovf-import.png | Bin 0 -> 69563 bytes doc/manual/en_US/images/seamless.png | Bin 0 -> 603665 bytes doc/manual/en_US/images/session-information.png | Bin 0 -> 59858 bytes doc/manual/en_US/images/snapshots-1.png | Bin 0 -> 60222 bytes doc/manual/en_US/images/snapshots-2.png | Bin 0 -> 12414 bytes doc/manual/en_US/images/softkeybd.png | Bin 0 -> 40134 bytes doc/manual/en_US/images/upload-key.png | Bin 0 -> 37716 bytes doc/manual/en_US/images/vbox-components.png | Bin 0 -> 61668 bytes doc/manual/en_US/images/vboxlogo.png | Bin 0 -> 57874 bytes doc/manual/en_US/images/virtual-disk-manager-2.png | Bin 0 -> 19565 bytes doc/manual/en_US/images/virtual-disk-manager.png | Bin 0 -> 64886 bytes .../en_US/images/virtual-hard-disk-wizard.png | Bin 0 -> 65819 bytes doc/manual/en_US/images/virtualbox-main-empty.png | Bin 0 -> 87015 bytes doc/manual/en_US/images/virtualbox-main.png | Bin 0 -> 78083 bytes doc/manual/en_US/images/vm-activity-overview.png | Bin 0 -> 124514 bytes doc/manual/en_US/images/vm-close.png | Bin 0 -> 12911 bytes doc/manual/en_US/images/vm-groups.png | Bin 0 -> 116002 bytes doc/manual/en_US/images/vm-hostkey.png | Bin 0 -> 3130 bytes doc/manual/en_US/images/vm-settings-harddisk.png | Bin 0 -> 36844 bytes doc/manual/en_US/images/vm-vista-running.png | Bin 0 -> 522810 bytes doc/manual/en_US/man_VBoxHeadless.xml | 239 + doc/manual/en_US/man_VBoxManage-adoptstate.xml | 112 + doc/manual/en_US/man_VBoxManage-bandwidthctl.xml | 307 + doc/manual/en_US/man_VBoxManage-checkmediumpwd.xml | 113 + doc/manual/en_US/man_VBoxManage-clonemedium.xml | 214 + doc/manual/en_US/man_VBoxManage-clonevm.xml | 274 + doc/manual/en_US/man_VBoxManage-closemedium.xml | 119 + doc/manual/en_US/man_VBoxManage-cloud.xml | 645 + doc/manual/en_US/man_VBoxManage-cloudimage.xml | 242 + doc/manual/en_US/man_VBoxManage-cloudinstance.xml | 227 + doc/manual/en_US/man_VBoxManage-cloudlist.xml | 142 + doc/manual/en_US/man_VBoxManage-cloudprofile.xml | 190 + doc/manual/en_US/man_VBoxManage-common.xml | 282 + doc/manual/en_US/man_VBoxManage-controlvm.xml | 2133 ++++ doc/manual/en_US/man_VBoxManage-convertfromraw.xml | 250 + doc/manual/en_US/man_VBoxManage-createmedium.xml | 224 + doc/manual/en_US/man_VBoxManage-createvm.xml | 210 + doc/manual/en_US/man_VBoxManage-debugvm.xml | 666 ++ .../man_VBoxManage-dhcpserver-dhcpoptions.xml | 231 + .../man_VBoxManage-dhcpserver-dhcpoptions.xsl | 132 + doc/manual/en_US/man_VBoxManage-dhcpserver.xml | 608 + doc/manual/en_US/man_VBoxManage-discardstate.xml | 102 + doc/manual/en_US/man_VBoxManage-encryptmedium.xml | 174 + doc/manual/en_US/man_VBoxManage-encryptvm.xml | 204 + doc/manual/en_US/man_VBoxManage-export.xml | 441 + doc/manual/en_US/man_VBoxManage-extpack.xml | 158 + doc/manual/en_US/man_VBoxManage-getextradata.xml | 151 + doc/manual/en_US/man_VBoxManage-guestcontrol.xml | 1301 ++ doc/manual/en_US/man_VBoxManage-guestproperty.xml | 359 + doc/manual/en_US/man_VBoxManage-hostonlyif.xml | 201 + doc/manual/en_US/man_VBoxManage-hostonlynet.xml | 163 + doc/manual/en_US/man_VBoxManage-import.xml | 461 + doc/manual/en_US/man_VBoxManage-list.xml | 526 + doc/manual/en_US/man_VBoxManage-mediumio.xml | 178 + doc/manual/en_US/man_VBoxManage-mediumproperty.xml | 220 + doc/manual/en_US/man_VBoxManage-metrics.xml | 425 + doc/manual/en_US/man_VBoxManage-modifymedium.xml | 256 + doc/manual/en_US/man_VBoxManage-modifynvram.xml | 241 + doc/manual/en_US/man_VBoxManage-modifyvm.xml | 2818 +++++ doc/manual/en_US/man_VBoxManage-movevm.xml | 113 + doc/manual/en_US/man_VBoxManage-natnetwork.xml | 371 + doc/manual/en_US/man_VBoxManage-registervm.xml | 114 + doc/manual/en_US/man_VBoxManage-setextradata.xml | 123 + doc/manual/en_US/man_VBoxManage-setproperty.xml | 230 + doc/manual/en_US/man_VBoxManage-sharedfolder.xml | 212 + doc/manual/en_US/man_VBoxManage-showmediuminfo.xml | 142 + doc/manual/en_US/man_VBoxManage-showvminfo.xml | 221 + doc/manual/en_US/man_VBoxManage-signova.xml | 144 + doc/manual/en_US/man_VBoxManage-snapshot.xml | 403 + doc/manual/en_US/man_VBoxManage-startvm.xml | 195 + doc/manual/en_US/man_VBoxManage-storageattach.xml | 549 + doc/manual/en_US/man_VBoxManage-storagectl.xml | 205 + doc/manual/en_US/man_VBoxManage-unattended.xml | 256 + doc/manual/en_US/man_VBoxManage-unregistervm.xml | 132 + doc/manual/en_US/man_VBoxManage-updatecheck.xml | 151 + doc/manual/en_US/man_VBoxManage-usbdevsource.xml | 129 + doc/manual/en_US/man_VBoxManage-usbfilter.xml | 324 + doc/manual/en_US/man_vboximg-mount.xml | 409 + doc/manual/en_US/oracle-accessibility-ohc-en.xml | 16 + doc/manual/en_US/oracle-diversity.xml | 14 + doc/manual/en_US/oracle-support-en.xml | 27 + doc/manual/en_US/user_AdvancedTopics.xml | 7676 ++++++++++++ doc/manual/en_US/user_BasicConcepts.xml | 3052 +++++ doc/manual/en_US/user_ChangeLog.xml | 69 + doc/manual/en_US/user_Frontends.xml | 1208 ++ doc/manual/en_US/user_Glossary.xml | 721 ++ doc/manual/en_US/user_GuestAdditions.xml | 2672 +++++ doc/manual/en_US/user_Installation.xml | 1535 +++ doc/manual/en_US/user_Introduction.xml | 6796 +++++++++++ doc/manual/en_US/user_KnownIssues.xml | 502 + doc/manual/en_US/user_Networking.xml | 1944 +++ doc/manual/en_US/user_Preface.xml | 114 + doc/manual/en_US/user_PrivacyPolicy.xml | 114 + doc/manual/en_US/user_Security.xml | 755 ++ doc/manual/en_US/user_Storage.xml | 2112 ++++ doc/manual/en_US/user_Technical.xml | 962 ++ doc/manual/en_US/user_ThirdParty.xml | 11811 +++++++++++++++++++ doc/manual/en_US/user_Troubleshooting.xml | 1916 +++ doc/manual/en_US/user_VBoxManage.xml | 521 + doc/manual/en_US/user_VirtualBoxAPI.xml | 58 + doc/manual/htmlhelp-qthelp.py | 281 + .../docbook-refentry-link-replacement-xsl-gen.xsl | 44 + doc/manual/ru_RU/docbook-refentry-to-C-help.xsl | 42 + doc/manual/ru_RU/man_VBoxManage-adoptstate.xml | 110 + doc/manual/ru_RU/man_VBoxManage-bandwidthctl.xml | 305 + doc/manual/ru_RU/man_VBoxManage-checkmediumpwd.xml | 111 + doc/manual/ru_RU/man_VBoxManage-clonemedium.xml | 214 + doc/manual/ru_RU/man_VBoxManage-clonevm.xml | 270 + doc/manual/ru_RU/man_VBoxManage-closemedium.xml | 121 + doc/manual/ru_RU/man_VBoxManage-cloud.xml | 655 + doc/manual/ru_RU/man_VBoxManage-cloudimage.xml | 242 + doc/manual/ru_RU/man_VBoxManage-cloudinstance.xml | 228 + doc/manual/ru_RU/man_VBoxManage-cloudlist.xml | 145 + doc/manual/ru_RU/man_VBoxManage-cloudprofile.xml | 191 + doc/manual/ru_RU/man_VBoxManage-common.xml | 279 + doc/manual/ru_RU/man_VBoxManage-controlvm.xml | 2174 ++++ doc/manual/ru_RU/man_VBoxManage-convertfromraw.xml | 248 + doc/manual/ru_RU/man_VBoxManage-createmedium.xml | 219 + doc/manual/ru_RU/man_VBoxManage-createvm.xml | 175 + doc/manual/ru_RU/man_VBoxManage-debugvm.xml | 673 ++ .../man_VBoxManage-dhcpserver-dhcpoptions.xml | 231 + doc/manual/ru_RU/man_VBoxManage-dhcpserver.xml | 611 + doc/manual/ru_RU/man_VBoxManage-discardstate.xml | 101 + doc/manual/ru_RU/man_VBoxManage-encryptmedium.xml | 169 + doc/manual/ru_RU/man_VBoxManage-encryptvm.xml | 199 + doc/manual/ru_RU/man_VBoxManage-export.xml | 438 + doc/manual/ru_RU/man_VBoxManage-extpack.xml | 159 + doc/manual/ru_RU/man_VBoxManage-getextradata.xml | 150 + doc/manual/ru_RU/man_VBoxManage-guestcontrol.xml | 1288 ++ doc/manual/ru_RU/man_VBoxManage-guestproperty.xml | 334 + doc/manual/ru_RU/man_VBoxManage-hostonlyif.xml | 199 + doc/manual/ru_RU/man_VBoxManage-hostonlynet.xml | 164 + doc/manual/ru_RU/man_VBoxManage-import.xml | 456 + doc/manual/ru_RU/man_VBoxManage-list.xml | 522 + doc/manual/ru_RU/man_VBoxManage-mediumio.xml | 179 + doc/manual/ru_RU/man_VBoxManage-mediumproperty.xml | 219 + doc/manual/ru_RU/man_VBoxManage-metrics.xml | 422 + doc/manual/ru_RU/man_VBoxManage-modifymedium.xml | 254 + doc/manual/ru_RU/man_VBoxManage-modifynvram.xml | 242 + doc/manual/ru_RU/man_VBoxManage-modifyvm.xml | 2740 +++++ doc/manual/ru_RU/man_VBoxManage-movevm.xml | 113 + doc/manual/ru_RU/man_VBoxManage-natnetwork.xml | 367 + doc/manual/ru_RU/man_VBoxManage-registervm.xml | 102 + doc/manual/ru_RU/man_VBoxManage-setextradata.xml | 122 + doc/manual/ru_RU/man_VBoxManage-setproperty.xml | 232 + doc/manual/ru_RU/man_VBoxManage-sharedfolder.xml | 214 + doc/manual/ru_RU/man_VBoxManage-showmediuminfo.xml | 142 + doc/manual/ru_RU/man_VBoxManage-showvminfo.xml | 186 + doc/manual/ru_RU/man_VBoxManage-signova.xml | 145 + doc/manual/ru_RU/man_VBoxManage-snapshot.xml | 395 + doc/manual/ru_RU/man_VBoxManage-startvm.xml | 174 + doc/manual/ru_RU/man_VBoxManage-storageattach.xml | 549 + doc/manual/ru_RU/man_VBoxManage-storagectl.xml | 203 + doc/manual/ru_RU/man_VBoxManage-unattended.xml | 256 + doc/manual/ru_RU/man_VBoxManage-unregistervm.xml | 121 + doc/manual/ru_RU/man_VBoxManage-updatecheck.xml | 143 + doc/manual/ru_RU/man_VBoxManage-usbdevsource.xml | 129 + doc/manual/ru_RU/man_VBoxManage-usbfilter.xml | 322 + doc/manual/string.xsl | 1237 ++ doc/manual/titlepage-htmlhelp.xml | 669 ++ doc/manual/user_ChangeLogImpl.xml | 499 + doc/manual/xhtml-qhelp.xsl | 104 + doc/manual/xidl2docbook.xsl | 588 + doc/manual/xml2tag.xsl | 43 + doc/technical/Resizing.wiki | 27 + 228 files changed, 104752 insertions(+) create mode 100644 doc/.scm-settings create mode 100644 doc/License-gpl-2.html create mode 100644 doc/License-gpl-2.rtf create mode 100644 doc/License-gpl-2.txt create mode 100644 doc/License-gpl-3.0.html create mode 100644 doc/License-gpl-3.0.rtf create mode 100644 doc/License-gpl-3.0.txt create mode 100644 doc/ReadMe-OS2.txt create mode 100644 doc/ReadMe-Solaris.txt create mode 100644 doc/ReadMe-Solaris11.txt create mode 100644 doc/VBox-CodingGuidelines.cpp create mode 100644 doc/VBox-MakefileGuidelines.cpp create mode 100644 doc/VBox-doc.c create mode 100644 doc/VMM/PDMStorageScsi.odg create mode 100644 doc/VMM/PDMStorageScsi.png create mode 100644 doc/VMM/VMMContexts.odg create mode 100644 doc/VMM/VMMContexts.png create mode 100644 doc/kBuild-tricks.txt create mode 100644 doc/manual/.scm-settings create mode 100644 doc/manual/Config.kmk create mode 100644 doc/manual/Makefile.kmk create mode 100644 doc/manual/UserManual.qhcp create mode 100644 doc/manual/common-formatcfg.xsl create mode 100644 doc/manual/common-html-formatcfg.xsl create mode 100644 doc/manual/docbook-changelog-formatcfg.xsl create mode 100644 doc/manual/docbook-html-chunks-formatcfg.xsl create mode 100644 doc/manual/docbook-html-one-page-formatcfg.xsl create mode 100644 doc/manual/docbook-htmlhelp-formatcfg.xsl create mode 100644 doc/manual/docbook-refentry-link-replacement-xsl-gen.xsl create mode 100644 doc/manual/docbook-refentry-to-C-help.xsl create mode 100644 doc/manual/docbook-refentry-to-H-help.xsl create mode 100644 doc/manual/docbook-refentry-to-manpage-preprocessing.xsl create mode 100644 doc/manual/docbook-refentry-to-manpage.xsl create mode 100644 doc/manual/docbook-refentry-to-manual-overview.xsl create mode 100644 doc/manual/docbook-refentry-to-manual-sect1.xsl create mode 100644 doc/manual/docbook2latex.xsl create mode 100644 doc/manual/dummy-sect1.xml create mode 100644 doc/manual/en_US/.scm-settings create mode 100644 doc/manual/en_US/Accessibility.xml create mode 100644 doc/manual/en_US/Makefile.kup create mode 100644 doc/manual/en_US/SDKRef.xml create mode 100644 doc/manual/en_US/UserManual.xml create mode 100644 doc/manual/en_US/docbook-refentry-link-replacement-xsl-gen.xsl create mode 100644 doc/manual/en_US/images/clone-vm-1.png create mode 100644 doc/manual/en_US/images/clone-vm-2.png create mode 100644 doc/manual/en_US/images/clone-vm-3.png create mode 100644 doc/manual/en_US/images/cloud-profile-manager.png create mode 100644 doc/manual/en_US/images/cloudvm-add.png create mode 100644 doc/manual/en_US/images/cloudvm-new.png create mode 100644 doc/manual/en_US/images/cloudvm-oci-group.png create mode 100644 doc/manual/en_US/images/cloudvm-overview.png create mode 100644 doc/manual/en_US/images/create-vm-1.png create mode 100644 doc/manual/en_US/images/create-vm-2.png create mode 100644 doc/manual/en_US/images/create-vm-3.png create mode 100644 doc/manual/en_US/images/create-vm-4.png create mode 100644 doc/manual/en_US/images/details-pane.png create mode 100644 doc/manual/en_US/images/dnd-modes.png create mode 100644 doc/manual/en_US/images/export-appliance-oci.png create mode 100644 doc/manual/en_US/images/global-tools-menu.png create mode 100644 doc/manual/en_US/images/guest-fm.png create mode 100644 doc/manual/en_US/images/import-instance.png create mode 100644 doc/manual/en_US/images/log-viewer.png create mode 100644 doc/manual/en_US/images/machine-tools-menu.png create mode 100644 doc/manual/en_US/images/ovf-import.png create mode 100644 doc/manual/en_US/images/seamless.png create mode 100644 doc/manual/en_US/images/session-information.png create mode 100644 doc/manual/en_US/images/snapshots-1.png create mode 100644 doc/manual/en_US/images/snapshots-2.png create mode 100644 doc/manual/en_US/images/softkeybd.png create mode 100644 doc/manual/en_US/images/upload-key.png create mode 100644 doc/manual/en_US/images/vbox-components.png create mode 100644 doc/manual/en_US/images/vboxlogo.png create mode 100644 doc/manual/en_US/images/virtual-disk-manager-2.png create mode 100644 doc/manual/en_US/images/virtual-disk-manager.png create mode 100644 doc/manual/en_US/images/virtual-hard-disk-wizard.png create mode 100644 doc/manual/en_US/images/virtualbox-main-empty.png create mode 100644 doc/manual/en_US/images/virtualbox-main.png create mode 100644 doc/manual/en_US/images/vm-activity-overview.png create mode 100644 doc/manual/en_US/images/vm-close.png create mode 100644 doc/manual/en_US/images/vm-groups.png create mode 100644 doc/manual/en_US/images/vm-hostkey.png create mode 100644 doc/manual/en_US/images/vm-settings-harddisk.png create mode 100644 doc/manual/en_US/images/vm-vista-running.png create mode 100644 doc/manual/en_US/man_VBoxHeadless.xml create mode 100644 doc/manual/en_US/man_VBoxManage-adoptstate.xml create mode 100644 doc/manual/en_US/man_VBoxManage-bandwidthctl.xml create mode 100644 doc/manual/en_US/man_VBoxManage-checkmediumpwd.xml create mode 100644 doc/manual/en_US/man_VBoxManage-clonemedium.xml create mode 100644 doc/manual/en_US/man_VBoxManage-clonevm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-closemedium.xml create mode 100644 doc/manual/en_US/man_VBoxManage-cloud.xml create mode 100644 doc/manual/en_US/man_VBoxManage-cloudimage.xml create mode 100644 doc/manual/en_US/man_VBoxManage-cloudinstance.xml create mode 100644 doc/manual/en_US/man_VBoxManage-cloudlist.xml create mode 100644 doc/manual/en_US/man_VBoxManage-cloudprofile.xml create mode 100644 doc/manual/en_US/man_VBoxManage-common.xml create mode 100644 doc/manual/en_US/man_VBoxManage-controlvm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-convertfromraw.xml create mode 100644 doc/manual/en_US/man_VBoxManage-createmedium.xml create mode 100644 doc/manual/en_US/man_VBoxManage-createvm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-debugvm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml create mode 100644 doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xsl create mode 100644 doc/manual/en_US/man_VBoxManage-dhcpserver.xml create mode 100644 doc/manual/en_US/man_VBoxManage-discardstate.xml create mode 100644 doc/manual/en_US/man_VBoxManage-encryptmedium.xml create mode 100644 doc/manual/en_US/man_VBoxManage-encryptvm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-export.xml create mode 100644 doc/manual/en_US/man_VBoxManage-extpack.xml create mode 100644 doc/manual/en_US/man_VBoxManage-getextradata.xml create mode 100644 doc/manual/en_US/man_VBoxManage-guestcontrol.xml create mode 100644 doc/manual/en_US/man_VBoxManage-guestproperty.xml create mode 100644 doc/manual/en_US/man_VBoxManage-hostonlyif.xml create mode 100644 doc/manual/en_US/man_VBoxManage-hostonlynet.xml create mode 100644 doc/manual/en_US/man_VBoxManage-import.xml create mode 100644 doc/manual/en_US/man_VBoxManage-list.xml create mode 100644 doc/manual/en_US/man_VBoxManage-mediumio.xml create mode 100644 doc/manual/en_US/man_VBoxManage-mediumproperty.xml create mode 100644 doc/manual/en_US/man_VBoxManage-metrics.xml create mode 100644 doc/manual/en_US/man_VBoxManage-modifymedium.xml create mode 100644 doc/manual/en_US/man_VBoxManage-modifynvram.xml create mode 100644 doc/manual/en_US/man_VBoxManage-modifyvm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-movevm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-natnetwork.xml create mode 100644 doc/manual/en_US/man_VBoxManage-registervm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-setextradata.xml create mode 100644 doc/manual/en_US/man_VBoxManage-setproperty.xml create mode 100644 doc/manual/en_US/man_VBoxManage-sharedfolder.xml create mode 100644 doc/manual/en_US/man_VBoxManage-showmediuminfo.xml create mode 100644 doc/manual/en_US/man_VBoxManage-showvminfo.xml create mode 100644 doc/manual/en_US/man_VBoxManage-signova.xml create mode 100644 doc/manual/en_US/man_VBoxManage-snapshot.xml create mode 100644 doc/manual/en_US/man_VBoxManage-startvm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-storageattach.xml create mode 100644 doc/manual/en_US/man_VBoxManage-storagectl.xml create mode 100644 doc/manual/en_US/man_VBoxManage-unattended.xml create mode 100644 doc/manual/en_US/man_VBoxManage-unregistervm.xml create mode 100644 doc/manual/en_US/man_VBoxManage-updatecheck.xml create mode 100644 doc/manual/en_US/man_VBoxManage-usbdevsource.xml create mode 100644 doc/manual/en_US/man_VBoxManage-usbfilter.xml create mode 100644 doc/manual/en_US/man_vboximg-mount.xml create mode 100644 doc/manual/en_US/oracle-accessibility-ohc-en.xml create mode 100644 doc/manual/en_US/oracle-diversity.xml create mode 100644 doc/manual/en_US/oracle-support-en.xml create mode 100644 doc/manual/en_US/user_AdvancedTopics.xml create mode 100644 doc/manual/en_US/user_BasicConcepts.xml create mode 100644 doc/manual/en_US/user_ChangeLog.xml create mode 100644 doc/manual/en_US/user_Frontends.xml create mode 100644 doc/manual/en_US/user_Glossary.xml create mode 100644 doc/manual/en_US/user_GuestAdditions.xml create mode 100644 doc/manual/en_US/user_Installation.xml create mode 100644 doc/manual/en_US/user_Introduction.xml create mode 100644 doc/manual/en_US/user_KnownIssues.xml create mode 100644 doc/manual/en_US/user_Networking.xml create mode 100644 doc/manual/en_US/user_Preface.xml create mode 100644 doc/manual/en_US/user_PrivacyPolicy.xml create mode 100644 doc/manual/en_US/user_Security.xml create mode 100644 doc/manual/en_US/user_Storage.xml create mode 100644 doc/manual/en_US/user_Technical.xml create mode 100644 doc/manual/en_US/user_ThirdParty.xml create mode 100644 doc/manual/en_US/user_Troubleshooting.xml create mode 100644 doc/manual/en_US/user_VBoxManage.xml create mode 100644 doc/manual/en_US/user_VirtualBoxAPI.xml create mode 100755 doc/manual/htmlhelp-qthelp.py create mode 100644 doc/manual/ru_RU/docbook-refentry-link-replacement-xsl-gen.xsl create mode 100644 doc/manual/ru_RU/docbook-refentry-to-C-help.xsl create mode 100644 doc/manual/ru_RU/man_VBoxManage-adoptstate.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-bandwidthctl.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-checkmediumpwd.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-clonemedium.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-clonevm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-closemedium.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-cloud.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-cloudimage.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-cloudinstance.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-cloudlist.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-cloudprofile.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-common.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-controlvm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-convertfromraw.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-createmedium.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-createvm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-debugvm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-dhcpserver-dhcpoptions.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-dhcpserver.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-discardstate.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-encryptmedium.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-encryptvm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-export.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-extpack.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-getextradata.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-guestcontrol.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-guestproperty.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-hostonlyif.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-hostonlynet.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-import.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-list.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-mediumio.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-mediumproperty.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-metrics.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-modifymedium.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-modifynvram.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-modifyvm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-movevm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-natnetwork.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-registervm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-setextradata.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-setproperty.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-sharedfolder.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-showmediuminfo.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-showvminfo.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-signova.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-snapshot.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-startvm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-storageattach.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-storagectl.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-unattended.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-unregistervm.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-updatecheck.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-usbdevsource.xml create mode 100644 doc/manual/ru_RU/man_VBoxManage-usbfilter.xml create mode 100644 doc/manual/string.xsl create mode 100644 doc/manual/titlepage-htmlhelp.xml create mode 100644 doc/manual/user_ChangeLogImpl.xml create mode 100644 doc/manual/xhtml-qhelp.xsl create mode 100644 doc/manual/xidl2docbook.xsl create mode 100644 doc/manual/xml2tag.xsl create mode 100644 doc/technical/Resizing.wiki (limited to 'doc') diff --git a/doc/.scm-settings b/doc/.scm-settings new file mode 100644 index 00000000..00ec8eba --- /dev/null +++ b/doc/.scm-settings @@ -0,0 +1,45 @@ +# $Id: .scm-settings $ +## @file +# Source code massager settings for the docs. +# + +# +# Copyright (C) 2010-2022 Oracle and/or its affiliates. +# +# This file is part of VirtualBox base platform packages, as +# available from https://www.virtualbox.org. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation, in version 3 of the +# License. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# SPDX-License-Identifier: GPL-3.0-only +# + +/*.html: --treat-as plaintext +/*.rtf: --treat-as binary +/*.doc: --treat-as binary +/*.odt: --treat-as binary +/*.ods: --treat-as binary +/*.odg: --treat-as binary +/*.sxi: --treat-as binary +/*.vpp: --treat-as binary + +# Abusing --external-copyright. +/*.txvpck: --treat-as xml --external-copyright --no-convert-eol +/*.txvStateDiagram20: --treat-as xml --external-copyright --no-convert-eol +/*.txvComponentDiagram20: --treat-as xml --external-copyright --no-convert-eol +/*.xmi: --treat-as xml --external-copyright --no-convert-eol +/*.tpx: --treat-as xml --external-copyright --no-convert-eol +/*.graphml: --treat-as xml --external-copyright --no-convert-eol + +/*.iuml: --treat-as plaintext --add-action copyright-tick-style diff --git a/doc/License-gpl-2.html b/doc/License-gpl-2.html new file mode 100644 index 00000000..ae5e2d0e --- /dev/null +++ b/doc/License-gpl-2.html @@ -0,0 +1,353 @@ + + + + + + + + + + + + + GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
+ + diff --git a/doc/License-gpl-2.rtf b/doc/License-gpl-2.rtf new file mode 100644 index 00000000..aef99d38 --- /dev/null +++ b/doc/License-gpl-2.rtf @@ -0,0 +1,356 @@ +{\rtf1\ansi\deff1\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset128 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Bitstream Vera Sans;}{\f3\fnil\fprq0\fcharset128 Palatino Linotype;}{\f4\froman\fprq2\fcharset0 Times New Roman;}{\f5\fswiss\fprq2\fcharset0 Arial;}{\f6\fmodern\fprq1\fcharset0 Bitstream Vera Sans Mono;}{\f7\fmodern\fprq1\fcharset0 Bitstream Vera Sans;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s1\rtlch\afs24\lang1081\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\loch\fs24\lang1031\snext1 Normal;} +{\s2\sb240\sa120\keepn\rtlch\af5\afs28\lang1081\ltrch\dbch\af1\langfe2052\hich\f5\fs28\lang1031\loch\f5\fs28\lang1031\sbasedon1\snext3 Heading;} +{\s3\sa120\rtlch\afs24\lang1081\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\loch\fs24\lang1031\sbasedon1\snext3 Body Text;} +{\s4\sa120\rtlch\afs24\lang1081\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\loch\fs24\lang1031\sbasedon3\snext4 List;} +{\s5\sb120\sa120\rtlch\afs24\lang1081\ai\ltrch\dbch\af2\langfe2052\hich\f3\fs24\lang1031\i\loch\f3\fs24\lang1031\i\sbasedon1\snext5 caption;} +{\s6\rtlch\afs24\lang1081\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\loch\fs24\lang1031\sbasedon1\snext6 Index;} +{\s7\sb120\sa120\rtlch\afs24\lang1081\ai\ltrch\dbch\af2\langfe2052\hich\fs24\lang1031\i\loch\fs24\lang1031\i\sbasedon1\snext7 caption;} +{\s8\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031\sbasedon1\snext8 Preformatted Text;} +} +{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern3200}}\deftab709 +{\*\pgdsctbl +{\pgdsc0\pgdscuse195\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}} +{\*\pgdscno0}\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +\pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 GNU GENERAL PUBLIC LICENSE} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Version 2, June 1991} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Everyone is permitted to copy and distribute verbatim copies} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of this license document, but changing it is not allowed.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Preamble} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 The licenses for most software are designed to take away your} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 freedom to share and change it. By contrast, the GNU General Public} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 License is intended to guarantee your freedom to share and change free} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 software--to make sure the software is free for all its users. This} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 General Public License applies to most of the Free Software} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Foundation's software and to any other program whose authors commit to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 using it. (Some other Free Software Foundation software is covered by} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the GNU Lesser General Public License instead.) You can apply it to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 your programs, too.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 When we speak of free software, we are referring to freedom, not} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 price. Our General Public Licenses are designed to make sure that you} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 have the freedom to distribute copies of free software (and charge for} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this service if you wish), that you receive source code or can get it} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 if you want it, that you can change the software or use pieces of it} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 in new free programs; and that you know you can do these things.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 To protect your rights, we need to make restrictions that forbid} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 anyone to deny you these rights or to ask you to surrender the rights.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 These restrictions translate to certain responsibilities for you if you} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute copies of the software, or if you modify it.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 For example, if you distribute copies of such a program, whether} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 gratis or for a fee, you must give the recipients all the rights that} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 you have. You must make sure that they, too, receive or can get the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 source code. And you must show them these terms so they know their} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 rights.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 We protect your rights with two steps: (1) copyright the software, and} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 (2) offer you this license which gives you legal permission to copy,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute and/or modify the software.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Also, for each author's protection and ours, we want to make certain} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 that everyone understands that there is no warranty for this free} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 software. If the software is modified by someone else and passed on, we} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 want its recipients to know that what they have is not the original, so} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 that any problems introduced by others will not reflect on the original} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 authors' reputations.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Finally, any free program is threatened constantly by software} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 patents. We wish to avoid the danger that redistributors of a free} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 program will individually obtain patent licenses, in effect making the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 program proprietary. To prevent this, we have made it clear that any} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 patent must be licensed for everyone's free use or not licensed at all.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 The precise terms and conditions for copying, distribution and} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 modification follow.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 GNU GENERAL PUBLIC LICENSE} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 0. This License applies to any program or other work which contains} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a notice placed by the copyright holder saying it may be distributed} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 under the terms of this General Public License. The "Program", below,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 refers to any such program or work, and a "work based on the Program"} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 means either the Program or any derivative work under copyright law:} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 that is to say, a work containing the Program or a portion of it,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 either verbatim or with modifications and/or translated into another} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 language. (Hereinafter, translation is included without limitation in} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the term "modification".) Each licensee is addressed as "you".} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Activities other than copying, distribution and modification are not} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 covered by this License; they are outside its scope. The act of} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 running the Program is not restricted, and the output from the Program} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 is covered only if its contents constitute a work based on the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Program (independent of having been made by running the Program).} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Whether that is true depends on what the Program does.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 1. You may copy and distribute verbatim copies of the Program's} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 source code as you receive it, in any medium, provided that you} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 conspicuously and appropriately publish on each copy an appropriate} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 copyright notice and disclaimer of warranty; keep intact all the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 notices that refer to this License and to the absence of any warranty;} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 and give any other recipients of the Program a copy of this License} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 along with the Program.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 You may charge a fee for the physical act of transferring a copy, and} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 you may at your option offer warranty protection in exchange for a fee.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 2. You may modify your copy or copies of the Program or any portion} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of it, thus forming a work based on the Program, and copy and} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute such modifications or work under the terms of Section 1} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 above, provided that you also meet all of these conditions:} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a) You must cause the modified files to carry prominent notices} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 stating that you changed the files and the date of any change.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 b) You must cause any work that you distribute or publish, that in} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 whole or in part contains or is derived from the Program or any} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 part thereof, to be licensed as a whole at no charge to all third} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 parties under the terms of this License.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 c) If the modified program normally reads commands interactively} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 when run, you must cause it, when started running for such} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 interactive use in the most ordinary way, to print or display an} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 announcement including an appropriate copyright notice and a} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 notice that there is no warranty (or else, saying that you provide} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a warranty) and that users may redistribute the program under} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 these conditions, and telling the user how to view a copy of this} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 License. (Exception: if the Program itself is interactive but} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 does not normally print such an announcement, your work based on} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the Program is not required to print an announcement.)} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 These requirements apply to the modified work as a whole. If} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 identifiable sections of that work are not derived from the Program,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 and can be reasonably considered independent and separate works in} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 themselves, then this License, and its terms, do not apply to those} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 sections when you distribute them as separate works. But when you} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute the same sections as part of a whole which is a work based} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 on the Program, the distribution of the whole must be on the terms of} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this License, whose permissions for other licensees extend to the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 entire whole, and thus to each and every part regardless of who wrote it.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Thus, it is not the intent of this section to claim rights or contest} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 your rights to work written entirely by you; rather, the intent is to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 exercise the right to control the distribution of derivative or} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 collective works based on the Program.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 In addition, mere aggregation of another work not based on the Program} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 with the Program (or with a work based on the Program) on a volume of} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a storage or distribution medium does not bring the other work under} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the scope of this License.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 3. You may copy and distribute the Program (or a work based on it,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 under Section 2) in object code or executable form under the terms of} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Sections 1 and 2 above provided that you also do one of the following:} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 a) Accompany it with the complete corresponding machine-readable} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 source code, which must be distributed under the terms of Sections} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 1 and 2 above on a medium customarily used for software interchange; or,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 b) Accompany it with a written offer, valid for at least three} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 years, to give any third party, for a charge no more than your} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 cost of physically performing source distribution, a complete} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 machine-readable copy of the corresponding source code, to be} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distributed under the terms of Sections 1 and 2 above on a medium} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 customarily used for software interchange; or,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 c) Accompany it with the information you received as to the offer} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 to distribute corresponding source code. (This alternative is} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 allowed only for noncommercial distribution and only if you} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 received the program in object code or executable form with such} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 an offer, in accord with Subsection b above.)} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 The source code for a work means the preferred form of the work for} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 making modifications to it. For an executable work, complete source} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 code means all the source code for all modules it contains, plus any} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 associated interface definition files, plus the scripts used to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 control compilation and installation of the executable. However, as a} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 special exception, the source code distributed need not include} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 anything that is normally distributed (in either source or binary} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 form) with the major components (compiler, kernel, and so on) of the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 operating system on which the executable runs, unless that component} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 itself accompanies the executable.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 If distribution of executable or object code is made by offering} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 access to copy from a designated place, then offering equivalent} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 access to copy the source code from the same place counts as} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribution of the source code, even though third parties are not} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 compelled to copy the source along with the object code.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 4. You may not copy, modify, sublicense, or distribute the Program} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 except as expressly provided under this License. Any attempt} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 otherwise to copy, modify, sublicense or distribute the Program is} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 void, and will automatically terminate your rights under this License.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 However, parties who have received copies, or rights, from you under} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this License will not have their licenses terminated so long as such} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 parties remain in full compliance.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 5. You are not required to accept this License, since you have not} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 signed it. However, nothing else grants you permission to modify or} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute the Program or its derivative works. These actions are} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 prohibited by law if you do not accept this License. Therefore, by} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 modifying or distributing the Program (or any work based on the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Program), you indicate your acceptance of this License to do so, and} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 all its terms and conditions for copying, distributing or modifying} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the Program or works based on it.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 6. Each time you redistribute the Program (or any work based on the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Program), the recipient automatically receives a license from the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 original licensor to copy, distribute or modify the Program subject to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 these terms and conditions. You may not impose any further} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 restrictions on the recipients' exercise of the rights granted herein.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 You are not responsible for enforcing compliance by third parties to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this License.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 7. If, as a consequence of a court judgment or allegation of patent} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 infringement or for any other reason (not limited to patent issues),} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 conditions are imposed on you (whether by court order, agreement or} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 otherwise) that contradict the conditions of this License, they do not} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 excuse you from the conditions of this License. If you cannot} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 distribute so as to satisfy simultaneously your obligations under this} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 License and any other pertinent obligations, then as a consequence you} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 may not distribute the Program at all. For example, if a patent} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 license would not permit royalty-free redistribution of the Program by} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 all those who receive copies directly or indirectly through you, then} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the only way you could satisfy both it and this License would be to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 refrain entirely from distribution of the Program.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 If any portion of this section is held invalid or unenforceable under} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 any particular circumstance, the balance of the section is intended to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 apply and the section as a whole is intended to apply in other} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 circumstances.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 It is not the purpose of this section to induce you to infringe any} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 patents or other property right claims or to contest validity of any} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 such claims; this section has the sole purpose of protecting the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 integrity of the free software distribution system, which is} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 implemented by public license practices. Many people have made} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 generous contributions to the wide range of software distributed} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 through that system in reliance on consistent application of that} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 system; it is up to the author/donor to decide if he or she is willing} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 to distribute software through any other system and a licensee cannot} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 impose that choice.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This section is intended to make thoroughly clear what is believed to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 be a consequence of the rest of this License.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 8. If the distribution and/or use of the Program is restricted in} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 certain countries either by patents or by copyrighted interfaces, the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 original copyright holder who places the Program under this License} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 may add an explicit geographical distribution limitation excluding} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 those countries, so that distribution is permitted only in or among} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 countries not thus excluded. In such case, this License incorporates} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the limitation as if written in the body of this License.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 9. The Free Software Foundation may publish revised and/or new versions} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of the General Public License from time to time. Such new versions will} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 be similar in spirit to the present version, but may differ in detail to} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 address new problems or concerns.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Each version is given a distinguishing version number. If the Program} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 specifies a version number of this License which applies to it and "any} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 later version", you have the option of following the terms and conditions} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 either of that version or of any later version published by the Free} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Software Foundation. If the Program does not specify a version number of} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 this License, you may choose any version ever published by the Free Software} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Foundation.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 10. If you wish to incorporate parts of the Program into other free} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 programs whose distribution conditions are different, write to the author} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 to ask for permission. For software which is copyrighted by the Free} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Software Foundation, write to the Free Software Foundation; we sometimes} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 make exceptions for this. Our decision will be guided by the two goals} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of preserving the free status of all derivatives of our free software and} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 of promoting the sharing and reuse of software generally.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 NO WARRANTY} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 REPAIR OR CORRECTION.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 POSSIBILITY OF SUCH DAMAGES.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 END OF TERMS AND CONDITIONS} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 How to Apply These Terms to Your New Programs} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 If you develop a new program, and you want it to be of the greatest} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 possible use to the public, the best way to achieve this is to make it} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 free software which everyone can redistribute and change under these terms.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 To do so, attach the following notices to the program. It is safest} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 to attach them to the start of each source file to most effectively} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 convey the exclusion of warranty; and each file should have at least} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the "copyright" line and a pointer to where the full notice is found.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 } +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Copyright (C) } +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This program is free software; you can redistribute it and/or modify} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 it under the terms of the GNU General Public License as published by} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 the Free Software Foundation; either version 2 of the License, or} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 (at your option) any later version.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This program is distributed in the hope that it will be useful,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 but WITHOUT ANY WARRANTY; without even the implied warranty of} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 GNU General Public License for more details.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 You should have received a copy of the GNU General Public License along} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 with this program; if not, write to the Free Software Foundation, Inc.,} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Also add information on how to contact you by electronic and paper mail.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 If the program is interactive, make it output a short notice like this} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 when it starts in an interactive mode:} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Gnomovision version 69, Copyright (C) year name of author} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This is free software, and you are welcome to redistribute it} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 under certain conditions; type `show c' for details.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 The hypothetical commands `show w' and `show c' should show the appropriate} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 parts of the General Public License. Of course, the commands you use may} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 be called something other than `show w' and `show c'; they could even be} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 mouse-clicks or menu items--whatever suits your program.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 You should also get your employer (if you work as a programmer) or your} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 school, if any, to sign a "copyright disclaimer" for the program, if} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 necessary. Here is a sample; alter the names:} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Yoyodyne, Inc., hereby disclaims all copyright interest in the program} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 `Gnomovision' (which makes passes at compilers) written by James Hacker.} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 , 1 April 1989} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Ty Coon, President of Vice} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 This General Public License does not permit incorporating your program into} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 proprietary programs. If your program is a subroutine library, you may} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 consider it more useful to permit linking proprietary applications with the} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 library. If this is what you want to do, use the GNU Lesser General} +\par \pard\plain \ltrpar\s8\ql\rtlch\af6\afs20\lang1081\ltrch\dbch\af7\langfe2052\hich\f6\fs20\lang1031\loch\f6\fs20\lang1031 {\rtlch \ltrch\loch\f6\fs20\lang1031\i0\b0 Public License instead of this License.} +\par } diff --git a/doc/License-gpl-2.txt b/doc/License-gpl-2.txt new file mode 100644 index 00000000..d511905c --- /dev/null +++ b/doc/License-gpl-2.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/doc/License-gpl-3.0.html b/doc/License-gpl-3.0.html new file mode 100644 index 00000000..f824a620 --- /dev/null +++ b/doc/License-gpl-3.0.html @@ -0,0 +1,771 @@ + + + + + + + + + + +

COPYING file for VirtualBox versions 7.0 and later versions +that include this file

+ +

Preliminary notes:

+ +

1) The majority of the code in +the VirtualBox base package is licensed under the GNU General Public License, +version 3 (GPL). VirtualBox contains many components developed by Oracle and +various third parties. The license for each component is located in the +licensing documentation and/or in the component's source code.

+ +

2) As an exception to the reciprocal +license obligations of the GPL listed below, you may use any VirtualBox header +file that is marked by Oracle as licensed under both the GPL and the Common +Development and Distribution License version 1.0 (CDDL) to invoke the +unmodified VirtualBox libraries. In other words, calling such a multi-licensed +interface by dynamically linking to the unmodified VirtualBox libraries is +considered a normal use of VirtualBox and does not turn the calling code into a +derived work of VirtualBox. In particular, this applies to code that wants to +extend VirtualBox by way of the Extension Pack mechanism declared in the +ExtPack.h header file.

+ +

3) Whoever creates or distributes +a derived work based on VirtualBox is not obligated to grant the above +exceptions for such a version. The GPL permits you to release a modified +version without the above exception; in addition, Oracle hereby also allows you +to release a modified version which carries forward these exceptions.

+ +

Oracle America, Inc.

+ +

---

+ +

GNU GENERAL PUBLIC LICENSE

+ +

Version 3, 29 June 2007

+ +

Copyright © 2007 Free Software Foundation, Inc. +<https://fsf.org/>

+ +

Everyone is permitted to copy and +distribute verbatim copies of this license document, but changing it is not +allowed.

+ +

Preamble

+ +

The GNU General Public License is a free, copyleft license +for software and other kinds of works.

+ +

The licenses for most software +and other practical works are designed to take away your freedom to share and +change the works. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change all versions of a program--to make +sure it remains free software for all its users. We, the Free Software +Foundation, use the GNU General Public License for most of our software; it +applies also to any other work released this way by its authors. You can apply +it to your programs, too.

+ +

When we speak of free software, +we are referring to freedom, not price. Our General Public Licenses are +designed to make sure that you have the freedom to distribute copies of free +software (and charge for them if you wish), that you receive source code or can +get it if you want it, that you can change the software or use pieces of it in +new free programs, and that you know you can do these things.

+ +

To protect your rights, we need +to prevent others from denying you these rights or asking you to surrender the +rights. Therefore, you have certain responsibilities if you distribute copies +of the software, or if you modify it: responsibilities to respect the freedom +of others.

+ +

For example, if you distribute +copies of such a program, whether gratis or for a fee, you must pass on to the +recipients the same freedoms that you received. You must make sure that they, +too, receive or can get the source code. And you must show them these terms so +they know their rights.

+ +

Developers that use the GNU GPL +protect your rights with two steps: (1) assert copyright on the software, and +(2) offer you this License giving you legal permission to copy, distribute +and/or modify it.

+ +

For the developers' and authors' +protection, the GPL clearly explains that there is no warranty for this free +software. For both users' and authors' sake, the GPL requires that modified +versions be marked as changed, so that their problems will not be attributed +erroneously to authors of previous versions.

+ +

Some devices are designed to deny +users access to install or run modified versions of the software inside them, +although the manufacturer can do so. This is fundamentally incompatible with +the aim of protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to use, +which is precisely where it is most unacceptable. Therefore, we have designed +this version of the GPL to prohibit the practice for those products. If such +problems arise substantially in other domains, we stand ready to extend this +provision to those domains in future versions of the GPL, as needed to protect +the freedom of users.

+ +

Finally, every program is +threatened constantly by software patents. States should not allow patents to +restrict development and use of software on general-purpose computers, but in +those that do, we wish to avoid the special danger that patents applied to a +free program could make it effectively proprietary. To prevent this, the GPL +assures that patents cannot be used to render the program non-free.

+ +

The precise terms and conditions +for copying, distribution and modification follow.

+ +

TERMS AND CONDITIONS

+ +

0. Definitions.

+ +

“This License” refers to version +3 of the GNU General Public License.

+ +

“Copyright” also means +copyright-like laws that apply to other kinds of works, such as semiconductor +masks.

+ +

“The Program” refers to any +copyrightable work licensed under this License. Each licensee is addressed as +“you”. “Licensees” and “recipients” may be individuals or organizations.

+ +

To “modify” a work means to copy +from or adapt all or part of the work in a fashion requiring copyright +permission, other than the making of an exact copy. The resulting work is +called a “modified version” of the earlier work or a work “based on” the +earlier work.

+ +

A “covered work” means either the +unmodified Program or a work based on the Program.

+ +

To “propagate” a work means to do +anything with it that, without permission, would make you directly or +secondarily liable for infringement under applicable copyright law, except +executing it on a computer or modifying a private copy. Propagation includes +copying, distribution (with or without modification), making available to the +public, and in some countries other activities as well.

+ +

To “convey” a work means any kind +of propagation that enables other parties to make or receive copies. Mere +interaction with a user through a computer network, with no transfer of a copy, +is not conveying.

+ +

An interactive user interface +displays “Appropriate Legal Notices” to the extent that it includes a +convenient and prominently visible feature that (1) displays an appropriate +copyright notice, and (2) tells the user that there is no warranty for the work +(except to the extent that warranties are provided), that licensees may convey +the work under this License, and how to view a copy of this License. If the +interface presents a list of user commands or options, such as a menu, a +prominent item in the list meets this criterion.

+ +

1. Source Code.

+ +

The “source code” for a work +means the preferred form of the work for making modifications to it. “Object +code” means any non-source form of a work.

+ +

A “Standard Interface” means an +interface that either is an official standard defined by a recognized standards +body, or, in the case of interfaces specified for a particular programming +language, one that is widely used among developers working in that language.

+ +

The “System Libraries” of an +executable work include anything, other than the work as a whole, that (a) is +included in the normal form of packaging a Major Component, but which is not +part of that Major Component, and (b) serves only to enable use of the work +with that Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A “Major +Component”, in this context, means a major essential component (kernel, window +system, and so on) of the specific operating system (if any) on which the +executable work runs, or a compiler used to produce the work, or an object code +interpreter used to run it.

+ +

The “Corresponding Source” for a +work in object code form means all the source code needed to generate, install, +and (for an executable work) run the object code and to modify the work, +including scripts to control those activities. However, it does not include the +work's System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but which are +not part of the work. For example, Corresponding Source includes interface +definition files associated with source files for the work, and the source code +for shared libraries and dynamically linked subprograms that the work is +specifically designed to require, such as by intimate data communication or +control flow between those subprograms and other parts of the work.

+ +

The Corresponding Source need not +include anything that users can regenerate automatically from other parts of +the Corresponding Source.

+ +

The Corresponding Source for a +work in source code form is that same work.

+ +

2. Basic Permissions.

+ +

All rights granted under this +License are granted for the term of copyright on the Program, and are irrevocable +provided the stated conditions are met. This License explicitly affirms your +unlimited permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its content, +constitutes a covered work. This License acknowledges your rights of fair use +or other equivalent, as provided by copyright law.

+ +

You may make, run and propagate +covered works that you do not convey, without conditions so long as your +license otherwise remains in force. You may convey covered works to others for +the sole purpose of having them make modifications exclusively for you, or +provide you with facilities for running those works, provided that you comply +with the terms of this License in conveying all material for which you do not +control copyright. Those thus making or running the covered works for you must +do so exclusively on your behalf, under your direction and control, on terms +that prohibit them from making any copies of your copyrighted material outside +their relationship with you.

+ +

Conveying under any other +circumstances is permitted solely under the conditions stated below. +Sublicensing is not allowed; section 10 makes it unnecessary.

+ +

3. Protecting Users' Legal Rights +From Anti-Circumvention Law.

+ +

No covered work shall be deemed +part of an effective technological measure under any applicable law fulfilling +obligations under article 11 of the WIPO copyright treaty adopted on 20 +December 1996, or similar laws prohibiting or restricting circumvention of such +measures.

+ +

When you convey a covered work, +you waive any legal power to forbid circumvention of technological measures to +the extent such circumvention is effected by exercising rights under this +License with respect to the covered work, and you disclaim any intention to +limit operation or modification of the work as a means of enforcing, against +the work's users, your or third parties' legal rights to forbid circumvention +of technological measures.

+ +

4. Conveying Verbatim Copies.

+ +

You may convey verbatim copies of +the Program's source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate copyright +notice; keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; keep +intact all notices of the absence of any warranty; and give all recipients a +copy of this License along with the Program.

+ +

You may charge any price or no +price for each copy that you convey, and you may offer support or warranty +protection for a fee.

+ +

5. Conveying Modified Source +Versions.

+ +

You may convey a work based on +the Program, or the modifications to produce it from the Program, in the form +of source code under the terms of section 4, provided that you also meet all of +these conditions:

+ +

    a) The work must carry prominent notices +stating that you modified it, and giving a relevant date.

+ +

    b) The work must carry prominent notices +stating that it is released under this License and any conditions added under +section 7. This requirement modifies the requirement in section 4 to “keep +intact all notices”.

+ +

    c) You must license the entire work, as a +whole, under this License to anyone who comes into possession of a copy. This +License will therefore apply, along with any applicable section 7 additional +terms, to the whole of the work, and all its parts, regardless of how they are +packaged. This License gives no permission to license the work in any other +way, but it does not invalidate such permission if you have separately received +it.

+ +

    d) If the work has interactive user +interfaces, each must display Appropriate Legal Notices; however, if the +Program has interactive interfaces that do not display Appropriate Legal +Notices, your work need not make them do so.

+ +

A compilation of a covered work +with other separate and independent works, which are not by their nature +extensions of the covered work, and which are not combined with it such as to +form a larger program, in or on a volume of a storage or distribution medium, +is called an “aggregate” if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users beyond what +the individual works permit. Inclusion of a covered work in an aggregate does +not cause this License to apply to the other parts of the aggregate.

+ +

6. Conveying Non-Source Forms.

+ +

You may convey a covered work in +object code form under the terms of sections 4 and 5, provided that you also +convey the machine-readable Corresponding Source under the terms of this +License, in one of these ways:

+ +

    a) Convey the object code in, or embodied +in, a physical product (including a physical distribution medium), accompanied +by the Corresponding Source fixed on a durable physical medium customarily used +for software interchange.

+ +

    b) Convey the object code in, or embodied +in, a physical product (including a physical distribution medium), accompanied +by a written offer, valid for at least three years and valid for as long as you +offer spare parts or customer support for that product model, to give anyone +who possesses the object code either (1) a copy of the Corresponding Source for +all the software in the product that is covered by this License, on a durable +physical medium customarily used for software interchange, for a price no more +than your reasonable cost of physically performing this conveying of source, or +(2) access to copy the Corresponding Source from a network server at no charge.

+ +

    c) Convey individual copies of the object +code with a copy of the written offer to provide the Corresponding Source. This +alternative is allowed only occasionally and noncommercially, and only if you +received the object code with such an offer, in accord with subsection 6b.

+ +

    d) Convey the object code by offering +access from a designated place (gratis or for a charge), and offer equivalent +access to the Corresponding Source in the same way through the same place at no +further charge. You need not require recipients to copy the Corresponding +Source along with the object code. If the place to copy the object code is a +network server, the Corresponding Source may be on a different server (operated +by you or a third party) that supports equivalent copying facilities, provided you +maintain clear directions next to the object code saying where to find the +Corresponding Source. Regardless of what server hosts the Corresponding Source, +you remain obligated to ensure that it is available for as long as needed to +satisfy these requirements.

+ +

    e) Convey the object code using +peer-to-peer transmission, provided you inform other peers where the object +code and Corresponding Source of the work are being offered to the general +public at no charge under subsection 6d.

+ +

A separable portion of the object +code, whose source code is excluded from the Corresponding Source as a System +Library, need not be included in conveying the object code work.

+ +

A “User Product” is either (1) a +“consumer product”, which means any tangible personal property which is +normally used for personal, family, or household purposes, or (2) anything +designed or sold for incorporation into a dwelling. In determining whether a +product is a consumer product, doubtful cases shall be resolved in favor of +coverage. For a particular product received by a particular user, “normally +used” refers to a typical or common use of that class of product, regardless of +the status of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product is a +consumer product regardless of whether the product has substantial commercial, +industrial or non-consumer uses, unless such uses represent the only +significant mode of use of the product.

+ +

“Installation Information” for a +User Product means any methods, procedures, authorization keys, or other +information required to install and execute modified versions of a covered work +in that User Product from a modified version of its Corresponding Source. The +information must suffice to ensure that the continued functioning of the +modified object code is in no case prevented or interfered with solely because +modification has been made.

+ +

If you convey an object code work +under this section in, or with, or specifically for use in, a User Product, and +the conveying occurs as part of a transaction in which the right of possession +and use of the User Product is transferred to the recipient in perpetuity or +for a fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied by the +Installation Information. But this requirement does not apply if neither you +nor any third party retains the ability to install modified object code on the +User Product (for example, the work has been installed in ROM).

+ +

The requirement to provide +Installation Information does not include a requirement to continue to provide +support service, warranty, or updates for a work that has been modified or +installed by the recipient, or for the User Product in which it has been +modified or installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network or +violates the rules and protocols for communication across the network.

+ +

Corresponding Source conveyed, +and Installation Information provided, in accord with this section must be in a +format that is publicly documented (and with an implementation available to the +public in source code form), and must require no special password or key for +unpacking, reading or copying.

+ +

7. Additional Terms.

+ +

“Additional permissions” are +terms that supplement the terms of this License by making exceptions from one +or more of its conditions. Additional permissions that are applicable to the +entire Program shall be treated as though they were included in this License, +to the extent that they are valid under applicable law. If additional +permissions apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by this +License without regard to the additional permissions.

+ +

When you convey a copy of a +covered work, you may at your option remove any additional permissions from +that copy, or from any part of it. (Additional permissions may be written to +require their own removal in certain cases when you modify the work.) You may +place additional permissions on material, added by you to a covered work, for +which you have or can give appropriate copyright permission.

+ +

Notwithstanding any other provision +of this License, for material you add to a covered work, you may (if authorized +by the copyright holders of that material) supplement the terms of this License +with terms:

+ +

    a) Disclaiming warranty or limiting +liability differently from the terms of sections 15 and 16 of this License; or

+ +

    b) Requiring preservation of specified +reasonable legal notices or author attributions in that material or in the +Appropriate Legal Notices displayed by works containing it; or

+ +

    c) Prohibiting misrepresentation of the +origin of that material, or requiring that modified versions of such material +be marked in reasonable ways as different from the original version; or

+ +

    d) Limiting the use for publicity purposes +of names of licensors or authors of the material; or

+ +

    e) Declining to grant rights under +trademark law for use of some trade names, trademarks, or service marks; or

+ +

    f) Requiring indemnification of licensors +and authors of that material by anyone who conveys the material (or modified +versions of it) with contractual assumptions of liability to the recipient, for +any liability that these contractual assumptions directly impose on those +licensors and authors.

+ +

All other non-permissive +additional terms are considered “further restrictions” within the meaning of +section 10. If the Program as you received it, or any part of it, contains a +notice stating that it is governed by this License along with a term that is a +further restriction, you may remove that term. If a license document contains a +further restriction but permits relicensing or conveying under this License, +you may add to a covered work material governed by the terms of that license +document, provided that the further restriction does not survive such +relicensing or conveying.

+ +

If you add terms to a covered +work in accord with this section, you must place, in the relevant source files, +a statement of the additional terms that apply to those files, or a notice +indicating where to find the applicable terms.

+ +

Additional terms, permissive or +non-permissive, may be stated in the form of a separately written license, or +stated as exceptions; the above requirements apply either way.

+ +

8. Termination.

+ +

You may not propagate or modify a +covered work except as expressly provided under this License. Any attempt +otherwise to propagate or modify it is void, and will automatically terminate +your rights under this License (including any patent licenses granted under the +third paragraph of section 11).

+ +

However, if you cease all +violation of this License, then your license from a particular copyright holder +is reinstated (a) provisionally, unless and until the copyright holder +explicitly and finally terminates your license, and (b) permanently, if the +copyright holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation.

+ +

Moreover, your license from a +particular copyright holder is reinstated permanently if the copyright holder +notifies you of the violation by some reasonable means, this is the first time +you have received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after your +receipt of the notice.

+ +

Termination of your rights under +this section does not terminate the licenses of parties who have received +copies or rights from you under this License. If your rights have been +terminated and not permanently reinstated, you do not qualify to receive new +licenses for the same material under section 10.

+ +

9. Acceptance Not Required for +Having Copies.

+ +

You are not required to accept +this License in order to receive or run a copy of the Program. Ancillary +propagation of a covered work occurring solely as a consequence of using +peer-to-peer transmission to receive a copy likewise does not require +acceptance. However, nothing other than this License grants you permission to +propagate or modify any covered work. These actions infringe copyright if you +do not accept this License. Therefore, by modifying or propagating a covered +work, you indicate your acceptance of this License to do so.

+ +

10. Automatic Licensing of +Downstream Recipients.

+ +

Each time you convey a covered +work, the recipient automatically receives a license from the original +licensors, to run, modify and propagate that work, subject to this License. You +are not responsible for enforcing compliance by third parties with this +License.

+ +

An “entity transaction” is a +transaction transferring control of an organization, or substantially all +assets of one, or subdividing an organization, or merging organizations. If +propagation of a covered work results from an entity transaction, each party to +that transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could give +under the previous paragraph, plus a right to possession of the Corresponding +Source of the work from the predecessor in interest, if the predecessor has it +or can get it with reasonable efforts.

+ +

You may not impose any further +restrictions on the exercise of the rights granted or affirmed under this +License. For example, you may not impose a license fee, royalty, or other +charge for exercise of rights granted under this License, and you may not +initiate litigation (including a cross-claim or counterclaim in a lawsuit) +alleging that any patent claim is infringed by making, using, selling, offering +for sale, or importing the Program or any portion of it.

+ +

11. Patents.

+ +

A “contributor” is a copyright +holder who authorizes use under this License of the Program or a work on which +the Program is based. The work thus licensed is called the contributor's +“contributor version”.

+ +

A contributor's “essential patent +claims” are all patent claims owned or controlled by the contributor, whether +already acquired or hereafter acquired, that would be infringed by some manner, +permitted by this License, of making, using, or selling its contributor +version, but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For purposes of +this definition, “control” includes the right to grant patent sublicenses in a +manner consistent with the requirements of this License.

+ +

Each contributor grants you a +non-exclusive, worldwide, royalty-free patent license under the contributor's +essential patent claims, to make, use, sell, offer for sale, import and +otherwise run, modify and propagate the contents of its contributor version.

+ +

In the following three +paragraphs, a “patent license” is any express agreement or commitment, however +denominated, not to enforce a patent (such as an express permission to practice +a patent or covenant not to sue for patent infringement). To “grant” such a +patent license to a party means to make such an agreement or commitment not to +enforce a patent against the party.

+ +

If you convey a covered work, +knowingly relying on a patent license, and the Corresponding Source of the work +is not available for anyone to copy, free of charge and under the terms of this +License, through a publicly available network server or other readily +accessible means, then you must either (1) cause the Corresponding Source to be +so available, or (2) arrange to deprive yourself of the benefit of the patent +license for this particular work, or (3) arrange, in a manner consistent with +the requirements of this License, to extend the patent license to downstream +recipients. “Knowingly relying” means you have actual knowledge that, but for +the patent license, your conveying the covered work in a country, or your recipient's +use of the covered work in a country, would infringe one or more identifiable +patents in that country that you have reason to believe are valid.

+ +

If, pursuant to or in connection +with a single transaction or arrangement, you convey, or propagate by procuring +conveyance of, a covered work, and grant a patent license to some of the +parties receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license you +grant is automatically extended to all recipients of the covered work and works +based on it.

+ +

A patent license is +“discriminatory” if it does not include within the scope of its coverage, +prohibits the exercise of, or is conditioned on the non-exercise of one or more +of the rights that are specifically granted under this License. You may not +convey a covered work if you are a party to an arrangement with a third party +that is in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying the work, +and under which the third party grants, to any of the parties who would receive +the covered work from you, a discriminatory patent license (a) in connection +with copies of the covered work conveyed by you (or copies made from those +copies), or (b) primarily for and in connection with specific products or +compilations that contain the covered work, unless you entered into that +arrangement, or that patent license was granted, prior to 28 March 2007.

+ +

Nothing in this License shall be +construed as excluding or limiting any implied license or other defenses to +infringement that may otherwise be available to you under applicable patent +law.

+ +

12. No Surrender of Others' +Freedom.

+ +

If conditions are imposed on you +(whether by court order, agreement or otherwise) that contradict the conditions +of this License, they do not excuse you from the conditions of this License. If +you cannot convey a covered work so as to satisfy simultaneously your +obligations under this License and any other pertinent obligations, then as a +consequence you may not convey it at all. For example, if you agree to terms +that obligate you to collect a royalty for further conveying from those to whom +you convey the Program, the only way you could satisfy both those terms and +this License would be to refrain entirely from conveying the Program.

+ +

13. Use with the GNU Affero General Public +License.

+ +

Notwithstanding any other +provision of this License, you have permission to link or combine any covered +work with a work licensed under version 3 of the GNU Affero +General Public License into a single combined work, and to convey the resulting +work. The terms of this License will continue to apply to the part which is the +covered work, but the special requirements of the GNU Affero +General Public License, section 13, concerning interaction through a network +will apply to the combination as such.

+ +

14. Revised Versions of this +License.

+ +

The Free Software Foundation may +publish revised and/or new versions of the GNU General Public License from time +to time. Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns.

+ +

Each version is given a +distinguishing version number. If the Program specifies that a certain numbered +version of the GNU General Public License “or any later version” applies to it, +you have the option of following the terms and conditions either of that +numbered version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the GNU General +Public License, you may choose any version ever published by the Free Software +Foundation.

+ +

If the Program specifies that a +proxy can decide which future versions of the GNU General Public License can be +used, that proxy's public statement of acceptance of a version permanently +authorizes you to choose that version for the Program.

+ +

Later license versions may give +you additional or different permissions. However, no additional obligations are +imposed on any author or copyright holder as a result of your choosing to +follow a later version.

+ +

15. Disclaimer of Warranty.

+ +

THERE IS NO WARRANTY FOR THE +PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU +ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

+ +

16. Limitation of Liability.

+ +

IN NO EVENT UNLESS REQUIRED BY +APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER +PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO +YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL +DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT +NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES +SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH +ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES.

+ +

17. Interpretation of Sections 15 +and 16.

+ +

If the disclaimer of warranty and +limitation of liability provided above cannot be given local legal effect +according to their terms, reviewing courts shall apply local law that most +closely approximates an absolute waiver of all civil liability in connection +with the Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee.

+ +

END OF TERMS AND CONDITIONS

+ +

How to Apply These Terms to Your +New Programs

+ +

If you develop a new program, and +you want it to be of the greatest possible use to the public, the best way to +achieve this is to make it free software which everyone can redistribute and +change under these terms.

+ +

To do so, attach the following +notices to the program. It is safest to attach them to the start of each source +file to most effectively state the exclusion of warranty; and each file should +have at least the “copyright” line and a pointer to where the full notice is found.

+ +

    <one line to give the program's name and +a brief idea of what it does.>

+ +

    Copyright (C) <year> <name of author>

+ +

    This program is free software: you can +redistribute it and/or modify

+ +

    it under the terms of the GNU General +Public License as published by

+ +

    the Free Software Foundation, either +version 3 of the License, or

+ +

    (at your option) +any later version.

+ +

    This program is distributed in the hope +that it will be useful,

+ +

    but WITHOUT ANY WARRANTY; without even the +implied warranty of

+ +

    MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the

+ +

    GNU General Public License for more +details.

+ +

    You should have received a copy of the GNU +General Public License

+ +

    along with this program. If not, see +<https://www.gnu.org/licenses/>.

+ +

Also add information on how to +contact you by electronic and paper mail.

+ +

If the program does terminal +interaction, make it output a short notice like this when it starts in an +interactive mode:

+ +

    <program> Copyright (C) <year> +<name of author>

+ +

    This program comes with ABSOLUTELY NO +WARRANTY; for details type `show w'.

+ +

    This is free software, and you are welcome +to redistribute it

+ +

    under certain conditions; type `show c' for +details.

+ +

The hypothetical commands `show +w' and `show c' should show the appropriate parts of the General Public +License. Of course, your program's commands might be different; for a GUI +interface, you would use an “about box”.

+ +

You should also get your employer +(if you work as a programmer) or school, if any, to sign a “copyright +disclaimer” for the program, if necessary. For more information on this, and +how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>.

+ +

The GNU General Public License +does not permit incorporating your program into proprietary programs. If your +program is a subroutine library, you may consider it more useful to permit +linking proprietary applications with the library. If this is what you want to +do, use the GNU Lesser General Public License instead of this License. But +first, please read <https://www.gnu.org/licenses/why-not-lgpl.html>.

+ +

______________

+ +

COPYING file last revised: July 22, 2022

+ + + + diff --git a/doc/License-gpl-3.0.rtf b/doc/License-gpl-3.0.rtf new file mode 100644 index 00000000..fa809ace --- /dev/null +++ b/doc/License-gpl-3.0.rtf @@ -0,0 +1,601 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f43\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0502040204020203}Segoe UI;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f419\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f420\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);} +{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f474\fbidi \fswiss\fcharset238\fprq2 Segoe UI CE;}{\f475\fbidi \fswiss\fcharset204\fprq2 Segoe UI Cyr;} +{\f477\fbidi \fswiss\fcharset161\fprq2 Segoe UI Greek;}{\f478\fbidi \fswiss\fcharset162\fprq2 Segoe UI Tur;}{\f479\fbidi \fswiss\fcharset177\fprq2 Segoe UI (Hebrew);}{\f480\fbidi \fswiss\fcharset178\fprq2 Segoe UI (Arabic);} +{\f481\fbidi \fswiss\fcharset186\fprq2 Segoe UI Baltic;}{\f482\fbidi \fswiss\fcharset163\fprq2 Segoe UI (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} +{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);} +{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} +{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;}{\*\defchp \f31506\fs22 }{\*\defpap +\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv +\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{ +\s15\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af43\afs18\alang1025 \ltrch\fcs0 \f43\fs18\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext15 \slink16 \ssemihidden \sunhideused \styrsid6191640 Balloon Text;}{\*\cs16 \additive \rtlch\fcs1 \af43\afs18 \ltrch\fcs0 \f43\fs18 \sbasedon10 \slink15 \slocked \ssemihidden \styrsid6191640 Balloon Text Char;}}{\*\rsidtbl \rsid204811 +\rsid1179671\rsid2054772\rsid4488156\rsid5245440\rsid5458651\rsid6191640\rsid6243413\rsid6826983\rsid6827025\rsid7414225\rsid7868682\rsid9137682\rsid9575835\rsid10183799\rsid10356037\rsid13858007\rsid15224405}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0 +\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\revisions\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1 +\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot10183799\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang +{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}} +\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10183799 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 +\af31507 \ltrch\fcs0 \insrsid5245440 COPYING file for VirtualBox versions 7.0 and later versions that include this file +\par +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 Preliminary notes: +\par +\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6191640 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 1) }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 +The majority of the code in the VirtualBox base }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid7414225 package}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 is licensed under the GNU General Public License, version 3}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid10356037 (GPL)}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983\charrsid6826983 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 VirtualBox contain}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid10356037 s}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6826983 many components developed by Oracle and various third parties. The license for each component is located in the licensing documentation and/or in the component's source code. }{ +\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 +\par +\par 2) }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 As an exception to the }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 reciprocal license }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 obligations of the }{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid10183799\charrsid15224405 GPL listed below}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 , you may use any }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 VirtualB}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 +ox header file that is marked by Oracle as licensed under both the GPL and the Common Development and Distribution License version 1}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 0 (CDDL)}{ +\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799\charrsid15224405 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10356037 t}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 o invoke the unmodified VirtualB}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid10356037 ox }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 libraries}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 .}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 +In other words, calling such a multi-licensed interface }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 by dynamically linking to the unmodified VirtualBox libraries }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 is considered}{\rtlch\fcs1 +\af31507 \ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 a }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 normal use of VirtualBox and does not turn the calling code into a derived work}{\rtlch\fcs1 \af31507 +\ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 of VirtualBox. }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799\charrsid15224405 In particular, this applies to code that wants to extend}{\rtlch\fcs1 \af31507 +\ltrch\fcs0 \insrsid6191640\charrsid15224405 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799\charrsid15224405 VirtualBox by way of the Extension Pack mechanism declared in the ExtPack.h}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid6191640\charrsid15224405 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799\charrsid15224405 header file.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid1179671 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid7414225 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid10183799 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10183799 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 +\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4488156 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 3}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 +) Whoever creates or distributes a derived work based on VirtualBox is not}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 obligated to grant the above exceptions for such a version. The GPL }{ +\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid204811 permits you to release}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 a modified version without the above exception; in addition, Oracle}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 }{ +\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 hereby also allows you to release a modified version which carries forward these}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 exceptions. +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10183799 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 Oracle }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 America, Inc.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10183799 +\par +\par --- +\par +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6191640 G}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 NU GENERAL PUBLIC LICENSE +\par +\par Version 3, 29 June 2007 +\par +\par Copyright \'a9 2007 Free Software Foundation, Inc. +\par +\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9575835 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9575835 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 Preamble +\par The GNU General Public License is a free, copyleft license for software and other kinds of works. +\par +\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9575835 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By +contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for + most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 +\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9575835 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure + that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you + can do these things. +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 +\par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9575835 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: respons +ibilities to respect the freedom of others. +\par +\par For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get + the source code. And you must show them these terms so they know their rights. +\par +\par Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. +\par +\par For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that th +eir problems will not be attributed erroneously to authors of previous versions. +\par +\par Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally inc +ompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this vers +ion of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. +\par +\par Finally, e +very program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free p +rogram could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. +\par +\par The precise terms and conditions for copying, distribution and modification follow. +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9575835 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid6827025 TERMS AND CONDITIONS +\par 0. Definitions. +\par +\par \'93This License\'94 refers to version 3 of the GNU General Public License. +\par +\par \'93Copyright\'94 also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. +\par +\par \'93The Program\'94 refers to any copyrightable work licensed under this License. Each licensee is addressed as \'93you\'94. \'93Licensees\'94 and \'93recipients\'94 may be individuals or organizations. +\par +\par To \'93modify\'94 a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a \'93modified version\'94 of the earlier work or a work \'93 +based on\'94 the earlier work. +\par +\par A \'93covered work\'94 means either the unmodified Program or a work based on the Program. +\par +\par To \'93propagate\'94 a work means to do anything with +it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modifica +tion), making available to the public, and in some countries other activities as well. +\par +\par To \'93convey\'94 a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. +\par +\par An interactive user interface displays \'93Appropriate Legal Notices\'94 to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user t +hat there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as + a menu, a prominent item in the list meets this criterion. +\par 1. Source Code. +\par +\par The \'93source code\'94 for a work means the preferred form of the work for making modifications to it. \'93Object code\'94 means any non-source form of a work. +\par +\par A \'93Standard Interface\'94 means a +n interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. +\par +\par The \'93System Libraries\'94 + of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major C +omponent, or to implement a Standard Interface for which an implementation is available to the public in source code form. A \'93Major Component\'94 +, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +\par +\par The \'93Corresponding Source\'94 for a work in object code form means all the source code needed to generate, install, and ( +for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmod +i +fied in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subpro +grams that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. +\par +\par The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. +\par +\par The Corresponding Source for a work in source code form is that same work. +\par 2. Basic Permissions. +\par +\par All rights granted under this License are granted for the term of copyright on the Program, and are irrevocab +le provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a cove +red work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. +\par +\par You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You +may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for wh +i +ch you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their +relationship with you. +\par +\par Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. +\par 3. Protecting Users' Legal Rights From Anti-Circumvention Law. +\par +\par No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or r +estricting circumvention of such measures. +\par +\par When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the + covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. +\par 4. Conveying Verbatim Copies. +\par +\par You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License an +d any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. +\par +\par You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. +\par 5. Conveying Modified Source Versions. +\par +\par You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: +\par +\par a) The work must carry prominent notices stating that you modified it, and giving a relevant date. +\par b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to \'93keep intact all notices\'94. +\par c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. Th +is License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. +\par d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. +\par +\par A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a +volume of a storage or distribution medium, is called an \'93aggregate\'94 + if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered +work in an aggregate does not cause this License to apply to the other parts of the aggregate. +\par 6. Conveying Non-Source Forms. +\par +\par You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: +\par +\par a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. +\par b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as lo +ng as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical m +edium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. +\par c) Convey individual cop +ies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + +\par d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy + +the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided y +o +u maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these require +ments. +\par e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. +\par +\par A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. +\par +\par A \'93User Product\'94 is either (1) a \'93consumer product\'94, which means any tangible personal property whi +ch is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a parti +cular product received by a particular user, \'93normally used\'94 + refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to u +se, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. +\par +\par \'93Installation Information\'94 for a Us +er Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice t +o ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. +\par +\par If you convey an object code work under this section in, or with, or specifically for use in, a User P +roduct, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Correspondin +g + Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work +has been installed in ROM). +\par +\par The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Pro +duct in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. +\par +\par Corresp +onding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or ke +y for unpacking, reading or copying. +\par 7. Additional Terms. +\par +\par \'93Additional permissions\'94 are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program + shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire P +rogram remains governed by this License without regard to the additional permissions. +\par +\par When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be +written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. +\par +\par Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: +\par +\par a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or +\par b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or +\par c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or +\par d) Limiting the use for publicity purposes of names of licensors or authors of the material; or +\par e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or +\par f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions o +f it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. +\par +\par All other non-permissive additional terms are considered \'93further restrictions\'94 + within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license docu +ment contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or +conveying. +\par +\par If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. +\par +\par Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. +\par 8. Termination. +\par +\par You may not propagate or modify a covered work except as expressly provided un +der this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). +\par +\par However, if you cease all violation + of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you +of the violation by some reasonable means prior to 60 days after the cessation. +\par +\par Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the +first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. +\par +\par Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. +\par 9. Acceptance Not Required for Having Copies. +\par +\par You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise +does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, + you indicate your acceptance of this License to do so. +\par 10. Automatic Licensing of Downstream Recipients. +\par +\par Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that wor +k, subject to this License. You are not responsible for enforcing compliance by third parties with this License. +\par +\par An \'93entity transaction\'94 is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organi +zation, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or co +uld give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. +\par +\par You may not impose any further restrictions on the +exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or count +erclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. +\par 11. Patents. +\par +\par A \'93contributor\'94 is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's \'93contributor version\'94. +\par +\par A contributor's \'93essential patent claims\'94 are all patent claims owned or controlled by the contributor, whether already +acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the + contributor version. For purposes of this definition, \'93control\'94 includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. +\par +\par Each contributor grants you a non-exclusive, worldwide, royalty-free patent licens +e under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. +\par +\par In the following three paragraphs, a \'93patent license\'94 is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To \'93 +grant\'94 such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. +\par +\par If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly +available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a +manner consistent with the requirements of this License, to extend the patent license to downstream recipients. \'93Knowingly relying\'94 + means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recip +ient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. +\par +\par If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by +procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatica +lly extended to all recipients of the covered work and works based on it. +\par +\par A patent license is \'93discriminatory\'94 if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the r +ights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on th +e + extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (o +r copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. +\par +\par Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. +\par 12. No Surrender of Others' Freedom. +\par +\par If conditions are imposed on you (wheth +er by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License +a +nd any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satis +fy both those terms and this License would be to refrain entirely from conveying the Program. +\par 13. Use with the GNU Affero General Public License. +\par +\par Notwithstanding any other provision of this License, you have permission to link or combine any covered work w +ith a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirement +s of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. +\par 14. Revised Versions of this License. +\par +\par The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +\par +\par Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License \'93or any later version\'94 + applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. +\par +\par If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. +\par +\par Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. +\par 15. Disclaimer of Warranty. +\par +\par THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \'93AS IS\'94 + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENT +IRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +\par 16. Limitation of Liability. +\par +\par IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR +AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INAB +I +LITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN A +DVISED OF THE POSSIBILITY OF SUCH DAMAGES. +\par 17. Interpretation of Sections 15 and 16. +\par +\par If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local la +w that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. +\par +\par END OF TERMS AND CONDITIONS +\par How to Apply These Terms to Your New Programs +\par +\par If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. +\par +\par To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the \'93copyright\'94 + line and a pointer to where the full notice is found. +\par +\par +\par Copyright (C) +\par +\par This program is free software: you can redistribute it and/or modify +\par it under the terms of the GNU General Public License as published by +\par the Free Software Foundation, either version 3 of the License, or +\par (at your option) any later version. +\par +\par This program is distributed in the hope that it will be useful, +\par but WITHOUT ANY WARRANTY; without even the implied warranty of +\par MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +\par GNU General Public License for more details. +\par +\par You should have received a copy of the GNU General Public License +\par along with this program. If not, see . +\par +\par Also add information on how to contact you by electronic and paper mail. +\par +\par If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: +\par +\par Copyright (C) +\par This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +\par This is free software, and you are welcome to redistribute it +\par under certain conditions; type `show c' for details. +\par +\par The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an \'93about box\'94. +\par +\par You should also get your employer (if you work as a programmer) or school, if any, to sign a \'93copyright disclaimer\'94 for the program, if necessary. For more information on this, and how to apply and follow +the GNU GPL, see . +\par +\par The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary a +pplications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6827025 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 +\par ______________ +\par +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9575835 COPYING }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5245440 file last revised: July 22, 2022 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210007b740aaca0600008f1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595b8bdb46147e2ff43f08bd3bbe49be2cf1065bb69336bb49889d943cceda636bb2238dd18c776342a0244f7d2914d2d28706fad6 +87521a68a0a12ffd310b1bdaf447f4cc489667ec71f6420aa1640d8b34face996fce39face48ba7aed51449d239c70c2e2965bbe52721d1c8fd898c4d3967b6f +d82f345c870b148f1165316eb90bccdd6bbb9f7e7215ed881047d801fb98efa0961b0a31db2916f9088611bfc26638866b13964448c069322d8e13740c7e235a +ac944ab5628448ec3a318ac0ededc9848cb033942edddda5f31e85d358703930a2c940bac68685c28e0fcb12c1173ca089738468cb8579c6ec78881f09d7a188 +0bb8d0724beacf2dee5e2da29dcc888a2db69a5d5ffd657699c1f8b0a2e64ca607f9a49ee77bb576ee5f01a8d8c4f5eabd5aaf96fb5300341ac14a532eba4fbf +d3ec74fd0cab81d2438bef6ebd5b2d1b78cd7f758373db973f03af40a97f6f03dfef07104503af4029dedfc07b5ebd1278065e81527c6d035f2fb5bb5eddc02b +5048497cb8812ef9b56ab05c6d0e99307ac30a6ffa5ebf5ec99caf50500d7975c929262c16db6a2d420f59d2078004522448ec88c50c4fd008aa3840941c24c4 +d923d3100a6f8662c661b85429f54b55f82f7f9e3a5211413b1869d6921730e11b43928fc34709998996fb39787535c8e9ebd7274f5f9d3cfdfde4d9b393a7bf +66732b5786dd0d144f75bbb73f7df3cf8b2f9dbf7ffbf1edf36fd3a9d7f15cc7bff9e5ab377ffcf92ef7b0e255284ebf7bf9e6d5cbd3efbffeebe7e716efed04 +1de8f0218930776ee163e72e8b608116fef820b998c5304444b768c7538e622467b1f8ef89d040df5a208a2cb80e36e3783f01a9b101afcf1f1a8407613217c4 +e2f1661819c07dc6688725d628dc947369611ecee3a97df264aee3ee2274649b3b40b191e5de7c061a4b6c2e83101b34ef50140b34c531168ebcc60e31b6acee +0121465cf7c928619c4d84f380381d44ac21199203a39a56463748047959d80842be8dd8ecdf773a8cda56ddc5472612ee0d442de487981a61bc8ee602453697 +4314513de07b48843692834532d2713d2e20d3534c99d31b63ce6d36b71358af96f49b2033f6b4efd345642213410e6d3ef710633ab2cb0e831045331b7640e2 +50c77ec60fa144917387091b7c9f9977883c873ca0786bbaef136ca4fb6c35b8070aab535a1588bc324f2cb9bc8e9951bf83059d20aca4061a80a1eb1189cf14 +f93579f7ff3b7907113dfde1856545ef47d2ed8e8d7c5c50ccdb09b1de4d37d6247c1b6e5db803968cc987afdb5d348fef60b855369bd747d9fe28dbeeff5eb6 +b7ddcfef5fac57fa0cd22db7ade9765d6ddea3ad7bf709a174201614ef71b57de7d095c67d189476eab915e7cf72b3100ee59d0c1318b86982948d9330f10511 +e1204433d8e3975de964ca33d753eecc1887adbf1ab6fa96783a8ff6d9387d642d97e5e3692a1e1c89d578c9cfc7e17143a4e85a7df51896bb576ca7ea717949 +40da5e8484369949a26a21515f0eca20a98773089a85845ad97b61d1b4b06848f7cb546db0006a795660dbe4c066abe5fa1e9880113c55218ac7324f69aa97d9 +55c97c9f99de164ca302600fb1ac8055a69b92ebd6e5c9d5a5a5768e4c1b24b4723349a8c8a81ec64334c65975cad1f3d0b868ae9bab941af46428d47c505a2b +1af5c6bb585c36d760b7ae0d34d69582c6ce71cbad557d2899119ab5dc093cfac3613483dae172bb8be814de9f8d4492def097519659c24517f1300db8129d54 +0d222270e25012b55cb9fc3c0d34561aa2b8952b20081f2cb926c8ca87460e926e26194f267824f4b46b2332d2e929287caa15d6abcafcf26069c9e690ee4138 +3e760ee83cb98ba0c4fc7a5906704c38bc012aa7d11c1378a5990bd9aafed61a5326bbfa3b455543e938a2b310651d4517f314aea43ca7a3cef2186867d99a21 +a05a48b2467830950d560faad14df3ae9172d8da75cf369291d34473d5330d55915dd3ae62c60ccb36b016cbcb35798dd532c4a0697a874fa57b5d729b4bad5b +db27e45d02029ec7cfd275cfd110346aabc90c6a92f1a60c4bcdce46cddeb15ce019d4ced32434d5af2dddaec52def11d6e960f0529d1fecd6ab168626cb7da5 +8ab4faf6a17f9e60070f413cbaf022784e0557a9848f0f09820dd140ed4952d9805be491c86e0d3872e60969b98f4b7edb0b2a7e502835fc5ec1ab7aa542c36f +570b6ddfaf967b7eb9d4ed549e4063116154f6d3ef2e7d780d4517d9d71735bef105265abe69bb32625191a92f2c45455c7d812957b67f81710888cee35aa5df +ac363bb542b3daee17bc6ea7516806b54ea15b0beadd7e37f01bcdfe13d7395260af5d0dbc5aaf51a89583a0e0d54a927ea359a87b954adbabb71b3daffd24db +c6c0ca53f9c86201e155bc76ff050000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72 +656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c08 +2e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd0 +8a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa +4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f +6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72 +656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210007b740aaca0600008f1a00001600000000000000000000000000d60200 +007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000 +00d40900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cf0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000 +02000000180000004d73786d6c322e534158584d4c5265616465722e362e30000000000000000000000e0000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdffffff04000000feffffff05000000fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff010000000c6ad98892f1d411a65f0040963251e5000000000000000000000000508c +c4d033a8d80103000000c0020000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff020000000000000000000000000000000000000000000000508cc4d033a8d801 +508cc4d033a8d801000000000000000000000000de00590055005100d70053005200c600cc00d4004700ce005500dc005300ce00c200d900500033003000c0003d003d000000000000000000000000000000000032000101ffffffffffffffff030000000000000000000000000000000000000000000000508cc4d033a8 +d801508cc4d033a8d8010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000 +00000000000000000000000000000000320100000000000001000000020000000300000004000000feffffff060000000700000008000000090000000a000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e3c623a536f757263657320786d6c6e733a623d22687474703a2f2f736368656d61732e6f70656e78 +6d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f6772617068792220786d6c6e733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222053656c +65637465645374796c653d225c415041536978746845646974696f6e4f66666963654f6e6c696e652e78736c22205374796c654e616d653d22415041222056657273696f6e3d2236223e3c2f623a536f75726365733e00000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f6469 +6e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b44443130383546392d363632342d343142332d414535332d4334414538423933444436417d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70 +656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000500000055010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746f6d586d6c223e3c64733a736368656d61526566733e3c64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f7267 +2f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f72654974656d3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}} diff --git a/doc/License-gpl-3.0.txt b/doc/License-gpl-3.0.txt new file mode 100644 index 00000000..04c3dc83 --- /dev/null +++ b/doc/License-gpl-3.0.txt @@ -0,0 +1,663 @@ +OPYING file for VirtualBox versions 7.0 and later versions that include this +file + +Preliminary notes: + +1) The majority of the code in the VirtualBox base package is licensed under +the GNU General Public License, version 3 (GPL). VirtualBox contains many +components developed by Oracle and various third parties. The license for +each component is located in the licensing documentation and/or in the +component's source code. + +2) As an exception to the reciprocal license obligations of the GPL listed +below, you may use any VirtualBox header file that is marked by Oracle as +licensed under both the GPL and the Common Development and Distribution +License version 1.0 (CDDL) to invoke the unmodified VirtualBox libraries. In +other words, calling such a multi-licensed interface by dynamically linking +to the unmodified VirtualBox libraries is considered a normal use of +VirtualBox and does not turn the calling code into a derived work of +VirtualBox. In particular, this applies to code that wants to extend +VirtualBox by way of the Extension Pack mechanism declared in the ExtPack.h +header file. + +3) Whoever creates or distributes a derived work based on VirtualBox is not +obligated to grant the above exceptions for such a version. The GPL permits +you to release a modified version without the above exception; in addition, +Oracle hereby also allows you to release a modified version which carries +forward these exceptions. + + +Oracle America, Inc. + +--- + +GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble +The GNU General Public License is a free, copyleft license for software and +other kinds of works. + +The licenses for most software and other practical works are designed to take +away your freedom to share and change the works. By contrast, the GNU General +Public License is intended to guarantee your freedom to share and change all +versions of a program--to make sure it remains free software for all its +users. We, the Free Software Foundation, use the GNU General Public License +for most of our software; it applies also to any other work released this way +by its authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom +to distribute copies of free software (and charge for them if you wish), that +you receive source code or can get it if you want it, that you can change the +software or use pieces of it in new free programs, and that you know you can +do these things. + +To protect your rights, we need to prevent others from denying you these +rights or asking you to surrender the rights. Therefore, you have certain +responsibilities if you distribute copies of the software, or if you modify +it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or +for a fee, you must pass on to the recipients the same freedoms that you +received. You must make sure that they, too, receive or can get the source +code. And you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) +assert copyright on the software, and (2) offer you this License giving you +legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that +there is no warranty for this free software. For both users' and authors' +sake, the GPL requires that modified versions be marked as changed, so that +their problems will not be attributed erroneously to authors of previous +versions. + +Some devices are designed to deny users access to install or run modified +versions of the software inside them, although the manufacturer can do so. +This is fundamentally incompatible with the aim of protecting users' freedom +to change the software. The systematic pattern of such abuse occurs in the +area of products for individuals to use, which is precisely where it is most +unacceptable. Therefore, we have designed this version of the GPL to prohibit +the practice for those products. If such problems arise substantially in +other domains, we stand ready to extend this provision to those domains in +future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States +should not allow patents to restrict development and use of software on +general-purpose computers, but in those that do, we wish to avoid the special +danger that patents applied to a free program could make it effectively +proprietary. To prevent this, the GPL assures that patents cannot be used to +render the program non-free. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS + +0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this License. +Each licensee is addressed as "you". "Licensees" and "recipients" may be +individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work in a +fashion requiring copyright permission, other than the making of an exact +copy. The resulting work is called a "modified version" of the earlier work +or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based on the +Program. + +To "propagate" a work means to do anything with it that, without permission, +would make you directly or secondarily liable for infringement under +applicable copyright law, except executing it on a computer or modifying a +private copy. Propagation includes copying, distribution (with or without +modification), making available to the public, and in some countries other +activities as well. + +To "convey" a work means any kind of propagation that enables other parties +to make or receive copies. Mere interaction with a user through a computer +network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" to the +extent that it includes a convenient and prominently visible feature that (1) +displays an appropriate copyright notice, and (2) tells the user that there +is no warranty for the work (except to the extent that warranties are +provided), that licensees may convey the work under this License, and how to +view a copy of this License. If the interface presents a list of user +commands or options, such as a menu, a prominent item in the list meets this +criterion. + +1. Source Code. + +The "source code" for a work means the preferred form of the work for making +modifications to it. "Object code" means any non-source form of a work. + +A "Standard Interface" means an interface that either is an official standard +defined by a recognized standards body, or, in the case of interfaces +specified for a particular programming language, one that is widely used +among developers working in that language. + +The "System Libraries" of an executable work include anything, other than the +work as a whole, that (a) is included in the normal form of packaging a Major +Component, but which is not part of that Major Component, and (b) serves only +to enable use of the work with that Major Component, or to implement a +Standard Interface for which an implementation is available to the public in +source code form. A "Major Component", in this context, means a major +essential component (kernel, window system, and so on) of the specific +operating system (if any) on which the executable work runs, or a compiler +used to produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all the +source code needed to generate, install, and (for an executable work) run the +object code and to modify the work, including scripts to control those +activities. However, it does not include the work's System Libraries, or +general-purpose tools or generally available free programs which are used +unmodified in performing those activities but which are not part of the work. +For example, Corresponding Source includes interface definition files +associated with source files for the work, and the source code for shared +libraries and dynamically linked subprograms that the work is specifically +designed to require, such as by intimate data communication or control flow +between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate +automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. + +All rights granted under this License are granted for the term of copyright +on the Program, and are irrevocable provided the stated conditions are met. +This License explicitly affirms your unlimited permission to run the +unmodified Program. The output from running a covered work is covered by this +License only if the output, given its content, constitutes a covered work. +This License acknowledges your rights of fair use or other equivalent, as +provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without +conditions so long as your license otherwise remains in force. You may convey +covered works to others for the sole purpose of having them make +modifications exclusively for you, or provide you with facilities for running +those works, provided that you comply with the terms of this License in +conveying all material for which you do not control copyright. Those thus +making or running the covered works for you must do so exclusively on your +behalf, under your direction and control, on terms that prohibit them from +making any copies of your copyrighted material outside their relationship +with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes it +unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological measure +under any applicable law fulfilling obligations under article 11 of the WIPO +copyright treaty adopted on 20 December 1996, or similar laws prohibiting or +restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention is +effected by exercising rights under this License with respect to the covered +work, and you disclaim any intention to limit operation or modification of +the work as a means of enforcing, against the work's users, your or third +parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you receive +it, in any medium, provided that you conspicuously and appropriately publish +on each copy an appropriate copyright notice; keep intact all notices stating +that this License and any non-permissive terms added in accord with section 7 +apply to the code; keep intact all notices of the absence of any warranty; +and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you +may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to produce +it from the Program, in the form of source code under the terms of section 4, +provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, +and giving a relevant date. + b) The work must carry prominent notices stating that it is released +under this License and any conditions added under section 7. This requirement +modifies the requirement in section 4 to "keep intact all notices". + c) You must license the entire work, as a whole, under this License to +anyone who comes into possession of a copy. This License will therefore +apply, along with any applicable section 7 additional terms, to the whole of +the work, and all its parts, regardless of how they are packaged. This +License gives no permission to license the work in any other way, but it does +not invalidate such permission if you have separately received it. + d) If the work has interactive user interfaces, each must display +Appropriate Legal Notices; however, if the Program has interactive interfaces +that do not display Appropriate Legal Notices, your work need not make them +do so. + +A compilation of a covered work with other separate and independent works, +which are not by their nature extensions of the covered work, and which are +not combined with it such as to form a larger program, in or on a volume of a +storage or distribution medium, is called an "aggregate" if the compilation +and its resulting copyright are not used to limit the access or legal rights +of the compilation's users beyond what the individual works permit. Inclusion +of a covered work in an aggregate does not cause this License to apply to the +other parts of the aggregate. + +6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of sections +4 and 5, provided that you also convey the machine-readable Corresponding +Source under the terms of this License, in one of these ways: + + a) Convey the object code in, or embodied in, a physical product +(including a physical distribution medium), accompanied by the Corresponding +Source fixed on a durable physical medium customarily used for software +interchange. + b) Convey the object code in, or embodied in, a physical product +(including a physical distribution medium), accompanied by a written offer, +valid for at least three years and valid for as long as you offer spare parts +or customer support for that product model, to give anyone who possesses the +object code either (1) a copy of the Corresponding Source for all the +software in the product that is covered by this License, on a durable +physical medium customarily used for software interchange, for a price no +more than your reasonable cost of physically performing this conveying of +source, or (2) access to copy the Corresponding Source from a network server +at no charge. + c) Convey individual copies of the object code with a copy of the written +offer to provide the Corresponding Source. This alternative is allowed only +occasionally and noncommercially, and only if you received the object code +with such an offer, in accord with subsection 6b. + d) Convey the object code by offering access from a designated place +(gratis or for a charge), and offer equivalent access to the Corresponding +Source in the same way through the same place at no further charge. You need +not require recipients to copy the Corresponding Source along with the object +code. If the place to copy the object code is a network server, the +Corresponding Source may be on a different server (operated by you or a third +party) that supports equivalent copying facilities, provided you maintain +clear directions next to the object code saying where to find the +Corresponding Source. Regardless of what server hosts the Corresponding +Source, you remain obligated to ensure that it is available for as long as +needed to satisfy these requirements. + e) Convey the object code using peer-to-peer transmission, provided you +inform other peers where the object code and Corresponding Source of the work +are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from +the Corresponding Source as a System Library, need not be included in +conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any tangible +personal property which is normally used for personal, family, or household +purposes, or (2) anything designed or sold for incorporation into a dwelling. +In determining whether a product is a consumer product, doubtful cases shall +be resolved in favor of coverage. For a particular product received by a +particular user, "normally used" refers to a typical or common use of that +class of product, regardless of the status of the particular user or of the +way in which the particular user actually uses, or expects or is expected to +use, the product. A product is a consumer product regardless of whether the +product has substantial commercial, industrial or non-consumer uses, unless +such uses represent the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, procedures, +authorization keys, or other information required to install and execute +modified versions of a covered work in that User Product from a modified +version of its Corresponding Source. The information must suffice to ensure +that the continued functioning of the modified object code is in no case +prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as part of +a transaction in which the right of possession and use of the User Product is +transferred to the recipient in perpetuity or for a fixed term (regardless of +how the transaction is characterized), the Corresponding Source conveyed +under this section must be accompanied by the Installation Information. But +this requirement does not apply if neither you nor any third party retains +the ability to install modified object code on the User Product (for example, +the work has been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates for +a work that has been modified or installed by the recipient, or for the User +Product in which it has been modified or installed. Access to a network may +be denied when the modification itself materially and adversely affects the +operation of the network or violates the rules and protocols for +communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in +accord with this section must be in a format that is publicly documented (and +with an implementation available to the public in source code form), and must +require no special password or key for unpacking, reading or copying. + +7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this License +by making exceptions from one or more of its conditions. Additional +permissions that are applicable to the entire Program shall be treated as +though they were included in this License, to the extent that they are valid +under applicable law. If additional permissions apply only to part of the +Program, that part may be used separately under those permissions, but the +entire Program remains governed by this License without regard to the +additional permissions. + +When you convey a copy of a covered work, you may at your option remove any +additional permissions from that copy, or from any part of it. (Additional +permissions may be written to require their own removal in certain cases when +you modify the work.) You may place additional permissions on material, added +by you to a covered work, for which you have or can give appropriate +copyright permission. + +Notwithstanding any other provision of this License, for material you add to +a covered work, you may (if authorized by the copyright holders of that +material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the terms +of sections 15 and 16 of this License; or + b) Requiring preservation of specified reasonable legal notices or author +attributions in that material or in the Appropriate Legal Notices displayed +by works containing it; or + c) Prohibiting misrepresentation of the origin of that material, or +requiring that modified versions of such material be marked in reasonable +ways as different from the original version; or + d) Limiting the use for publicity purposes of names of licensors or +authors of the material; or + e) Declining to grant rights under trademark law for use of some trade +names, trademarks, or service marks; or + f) Requiring indemnification of licensors and authors of that material by +anyone who conveys the material (or modified versions of it) with contractual +assumptions of liability to the recipient, for any liability that these +contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is governed +by this License along with a term that is a further restriction, you may +remove that term. If a license document contains a further restriction but +permits relicensing or conveying under this License, you may add to a covered +work material governed by the terms of that license document, provided that +the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must +place, in the relevant source files, a statement of the additional terms that +apply to those files, or a notice indicating where to find the applicable +terms. + +Additional terms, permissive or non-permissive, may be stated in the form of +a separately written license, or stated as exceptions; the above requirements +apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly provided +under this License. Any attempt otherwise to propagate or modify it is void, +and will automatically terminate your rights under this License (including +any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a +particular copyright holder is reinstated (a) provisionally, unless and until +the copyright holder explicitly and finally terminates your license, and (b) +permanently, if the copyright holder fails to notify you of the violation by +some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated +permanently if the copyright holder notifies you of the violation by some +reasonable means, this is the first time you have received notice of +violation of this License (for any work) from that copyright holder, and you +cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses +of parties who have received copies or rights from you under this License. If +your rights have been terminated and not permanently reinstated, you do not +qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy +of the Program. Ancillary propagation of a covered work occurring solely as a +consequence of using peer-to-peer transmission to receive a copy likewise +does not require acceptance. However, nothing other than this License grants +you permission to propagate or modify any covered work. These actions +infringe copyright if you do not accept this License. Therefore, by modifying +or propagating a covered work, you indicate your acceptance of this License +to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives a +license from the original licensors, to run, modify and propagate that work, +subject to this License. You are not responsible for enforcing compliance by +third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered work +results from an entity transaction, each party to that transaction who +receives a copy of the work also receives whatever licenses to the work the +party's predecessor in interest had or could give under the previous +paragraph, plus a right to possession of the Corresponding Source of the work +from the predecessor in interest, if the predecessor has it or can get it +with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights +granted or affirmed under this License. For example, you may not impose a +license fee, royalty, or other charge for exercise of rights granted under +this License, and you may not initiate litigation (including a cross-claim or +counterclaim in a lawsuit) alleging that any patent claim is infringed by +making, using, selling, offering for sale, or importing the Program or any +portion of it. + +11. Patents. + +A "contributor" is a copyright holder who authorizes use under this License +of the Program or a work on which the Program is based. The work thus +licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned or +controlled by the contributor, whether already acquired or hereafter +acquired, that would be infringed by some manner, permitted by this License, +of making, using, or selling its contributor version, but do not include +claims that would be infringed only as a consequence of further modification +of the contributor version. For purposes of this definition, "control" +includes the right to grant patent sublicenses in a manner consistent with +the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent +license under the contributor's essential patent claims, to make, use, sell, +offer for sale, import and otherwise run, modify and propagate the contents +of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent (such +as an express permission to practice a patent or covenant not to sue for +patent infringement). To "grant" such a patent license to a party means to +make such an agreement or commitment not to enforce a patent against the +party. + +If you convey a covered work, knowingly relying on a patent license, and the +Corresponding Source of the work is not available for anyone to copy, free of +charge and under the terms of this License, through a publicly available +network server or other readily accessible means, then you must either (1) +cause the Corresponding Source to be so available, or (2) arrange to deprive +yourself of the benefit of the patent license for this particular work, or +(3) arrange, in a manner consistent with the requirements of this License, to +extend the patent license to downstream recipients. "Knowingly relying" means +you have actual knowledge that, but for the patent license, your conveying +the covered work in a country, or your recipient's use of the covered work in +a country, would infringe one or more identifiable patents in that country +that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, +you convey, or propagate by procuring conveyance of, a covered work, and +grant a patent license to some of the parties receiving the covered work +authorizing them to use, propagate, modify or convey a specific copy of the +covered work, then the patent license you grant is automatically extended to +all recipients of the covered work and works based on it. + +A patent license is "discriminatory" if it does not include within the scope +of its coverage, prohibits the exercise of, or is conditioned on the non- +exercise of one or more of the rights that are specifically granted under +this License. You may not convey a covered work if you are a party to an +arrangement with a third party that is in the business of distributing +software, under which you make payment to the third party based on the extent +of your activity of conveying the work, and under which the third party +grants, to any of the parties who would receive the covered work from you, a +discriminatory patent license (a) in connection with copies of the covered +work conveyed by you (or copies made from those copies), or (b) primarily for +and in connection with specific products or compilations that contain the +covered work, unless you entered into that arrangement, or that patent +license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any +implied license or other defenses to infringement that may otherwise be +available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not excuse +you from the conditions of this License. If you cannot convey a covered work +so as to satisfy simultaneously your obligations under this License and any +other pertinent obligations, then as a consequence you may not convey it at +all. For example, if you agree to terms that obligate you to collect a +royalty for further conveying from those to whom you convey the Program, the +only way you could satisfy both those terms and this License would be to +refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have permission to +link or combine any covered work with a work licensed under version 3 of the +GNU Affero General Public License into a single combined work, and to convey +the resulting work. The terms of this License will continue to apply to the +part which is the covered work, but the special requirements of the GNU +Affero General Public License, section 13, concerning interaction through a +network will apply to the combination as such. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the +GNU General Public License from time to time. Such new versions will be +similar in spirit to the present version, but may differ in detail to address +new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies that a certain numbered version of the GNU General Public License +"or any later version" applies to it, you have the option of following the +terms and conditions either of that numbered version or of any later version +published by the Free Software Foundation. If the Program does not specify a +version number of the GNU General Public License, you may choose any version +ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the +GNU General Public License can be used, that proxy's public statement of +acceptance of a version permanently authorizes you to choose that version for +the Program. + +Later license versions may give you additional or different permissions. +However, no additional obligations are imposed on any author or copyright +holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE +LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. +SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY +SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE +OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR +DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR +A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH +HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided above +cannot be given local legal effect according to their terms, reviewing courts +shall apply local law that most closely approximates an absolute waiver of +all civil liability in connection with the Program, unless a warranty or +assumption of liability accompanies a copy of the Program in return for a +fee. + +END OF TERMS AND CONDITIONS +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively state the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like +this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show +w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands might +be different; for a GUI interface, you would use an "about box". + +You should also get your employer (if you work as a programmer) or school, if +any, to sign a "copyright disclaimer" for the program, if necessary. For more +information on this, and how to apply and follow the GNU GPL, see +. + +The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General Public +License instead of this License. But first, please read +. + +______________ + +COPYING file last revised: July 22, 2022 diff --git a/doc/ReadMe-OS2.txt b/doc/ReadMe-OS2.txt new file mode 100644 index 00000000..8a9dc31c --- /dev/null +++ b/doc/ReadMe-OS2.txt @@ -0,0 +1,149 @@ + +VirtualBox for OS/2 OSE Edition ALPHA +===================================== + +Version 1.5.51_OSE_27858 + +03.02.2008 + + +This is an early development build of VirtualBox OSE Edition for OS/2. +Please backup your data and don't expect everything to be highly polished +and tuned just yet. If you find a *new* problem, meaning something +not listed below, please report it at http://forums.virtualbox.org. + +This package is an official unofficial build of VirtualBox for OS/2. +It means that it is coordinated by volunteers from Sun Microsystems that +are still in touch with OS/2 and keep patching VirtualBox at their spare +time to make sure it runs and more or less works under OS/2. + +PLEASE NOTE THAT THE OS/2 HOST (AND THEREFORE THE OS/2 VERSION OF +VIRTUALBOX) IS NOT OFFICIALLY SUPPORTED BY SUN MICROSYSTEMS! DO NOT +CONTACT SUN MICROSYSTEMS REGARDING THE OS/2 VERSION OF VIRTUALBOX NO +MATTER WHAT YOUR QUESTION IS ABOUT! THANK YOU FOR UNDERSTANDING. + + +Current Issues / TODOs +---------------------- + +* FE/Qt (Qt GUI frontend): + + - Mouse pointer shape in mouse integration mode. + - NumLock/ScrollLock synchronization. + - Seamless mode (no top-level window transparency on OS/2). + - Keyboard driver to intercept system key combinations + (Alt+Tab etc.) + +* Devices: + + - Host Floppy/DVD. + - Audio. + - Host interface networking. + - Internal networking. + - USB proxying. + +* Misc: + + - Shared clipboard. + - Starting more than one VM simultaneously. + - Installer. + - VMX support. + - VBoxSDL (resizing/scaling/keyboard/slowness). + - Very slow Resume after Pause in real mode guest applications. + +Also, please pay attention to the section called "OS/2 Specific Features" +below. + + +How to "Install" and Run +------------------------ + +1. Unpack this archive somewhere. + +2. Make sure you have a dot (.) in your LIBPATH statement in CONFIG.SYS. + +3. Put the following line at the beginning of your CONFIG.SYS + and reboot: + + DEVICE=\VBoxDrv.sys + +4. Go to and run VirtualBox.exe (Qt GUI frontend). + +5. Note that by default VirtualBox stores all user data in the + %HOME%\.VirtualBox directory. If %HOME% is not set, it will use + the :\.VirtualBox directory. In either case, you may + overwrite the location of this directory using the VBOX_USER_HOME + environment variable. + +6. For best performance, it is recommended to install the VirtualBox + Guest Additions to the guest OS. The archive containing the ISO + image with Guest Additions for supported guest OSes (Windows, + Linux, OS/2) is named + + VBoxGuestAdditions_XXXXX.zip + + where XXXXX is the version number (it's best if it matches the version + number of this VirtualBox package). + + Download this ZIP from the same location you took this archive from + and unpack the contents to the directory containing VirtualBox.exe. + After that, you can mount the Additions ISO in the Qt GUI by selecting + Devices -> Install Guest Additions... from the menu. + + +Documentation and Support +------------------------- + +Please visit http://www.virtualbox.org where you can find a lot of useful +information about VirtualBox. There is a Community section where you can +try to request some help from other OS/2 users of VirtualBox. + +You can download the User Manual for the latest official release of +VirtualBox using this URL: + + http://www.virtualbox.org/download/UserManual.pdf + + +OS/2 Specific Features +---------------------- + +This section describes the features that are specific to the OS/2 version +of VirtualBox and may be absent in versions for other platforms. + +1. System key combinations such as Alt+Tab, Ctrl+Esc are currently always + grabbed by the host and never reach the guest even when the keyboard + is captured. In order to send these combinations to the guest OS, use + the following shortcuts (where Host is the host key defined in the + global settings dialog): + + Host+` (Tilde/Backquote) => Ctrl+Esc + Host+1 => Alt+Tab + Host+2 => Alt+Shift+Tab + +2. If you use two or more keyboard layouts on the OS/2 host (e.g. English + and Russian), make sure that the keyboard is switched to the English + layer when you work in the VirtualBox VM console window. Otherwise, some + shortcuts that involve the Host key (in particluar, all Host+ + shortcuts like Host+Q) may not work. Please note that the guest keyboard + layout has nothing to do with the host layout so you will still be able to + switch layouts in the guest using its own means. + +3. Make sure you do not do 'set LIBPATHSTRICT=T' in the environment you start + VirtualBox from: it will make the VirtualBox keyboard hook screw up your + host desktop (a workaround is to be found). + + +History of Changes +------------------ + +* 03.02.2008 + + - Initial release. + +* XX.XX.XXXX + + - Fixed: VirtualBox would hang or crash frequently on SMP machines in + ACPI mode. + + - Fixed: VBoxSDL keyboard key event to scan code conversion [contributed + by Paul Smedley]. diff --git a/doc/ReadMe-Solaris.txt b/doc/ReadMe-Solaris.txt new file mode 100644 index 00000000..024745cc --- /dev/null +++ b/doc/ReadMe-Solaris.txt @@ -0,0 +1,47 @@ + +@VBOX_PRODUCT@ for Oracle Solaris (TM) Operating System +-------------------------------------------------------- + +Upgrading: +---------- + +If you have an existing VirtualBox installation and you are upgrading to +a newer version of VirtualBox, please uninstall the previous version +before installing a newer one. Please refer to the "Uninstalling" section +at the end of this document for details. + + +Installing: +----------- + +After extracting the contents of the tar.gz file perform the following steps: + +1. Login as root using the "su" command. + +2. Install the VirtualBox package: + + pkgadd -d VirtualBox-@VBOX_VERSION_STRING@-SunOS-@KBUILD_TARGET_ARCH@-r@VBOX_SVN_REV@.pkg + + To perform an unattended (non-interactive) installation of this + package, add "-n -a autoresponse SUNWvbox" (without quotes) + to the end of the above pkgadd command. + +3. For each package, the installer will ask you to "Select package(s) you + wish to process". In response, type "1". + +4. Type "y" when asked about continuing the installation. + +At this point, all the required files should be installed on your system. +You can launch VirtualBox by running 'VirtualBox' from the terminal. + + +Uninstalling: +------------- + +To remove VirtualBox from your system, perform the following steps: + +1. Login as root using the "su" command. + +2. To remove VirtualBox, run the command: + pkgrm SUNWvbox + diff --git a/doc/ReadMe-Solaris11.txt b/doc/ReadMe-Solaris11.txt new file mode 100644 index 00000000..7440b265 --- /dev/null +++ b/doc/ReadMe-Solaris11.txt @@ -0,0 +1,55 @@ + +@VBOX_PRODUCT@ for Oracle Solaris 11 (TM) Operating System +---------------------------------------------------------------- + +Installing: +----------- + +After extracting the contents of the tar.xz file install the VirtualBox +package with the following command: + + $ sudo pkg install -g VirtualBox-@VBOX_VERSION_STRING@-SunOS-@KBUILD_TARGET_ARCH@-r@VBOX_SVN_REV@.p5p virtualbox + +Of course you can add options for performing the install in a different boot +environment or in a separate Solaris install. + +Normally you need to reboot the system to load the drivers which have been +added by the VirtualBox package. + +If you want to have VirtualBox immediately usable on your system you can run +the script /opt/VirtualBox/ipsinstall.sh which sets up everything immediately. + +At this point, all the required files should be installed on your system. +You can launch VirtualBox by running 'VirtualBox' from the terminal. + + +Upgrading: +---------- + +If you want to upgrade from an older to a newer version of the VirtualBox IPS +package you can use the following command after extracting the contents of the +tar.xz file: + + $ sudo pkg update -g VirtualBox-@VBOX_VERSION_STRING@-SunOS-@KBUILD_TARGET_ARCH@-r@VBOX_SVN_REV@.p5p virtualbox + +If you want to upgrade from the SysV package of VirtualBox to the IPS one, +please uninstall the previous package before installing the IPS one. Please +refer to the "Uninstalling" and "Installing" sections of this document for +details. + +It is your responsibility to ensure that no VirtualBox VMs or other related +activities are running. One possible way is using the command pgrep VBoxSVC. If +this shows no output then it is safe to upgrade VirtualBox. + + +Uninstalling: +------------- + +To remove VirtualBox from your system, run the following command: + + $ sudo pkg uninstall virtualbox + +It is your responsibility to ensure that no VirtualBox VMs or other related +activities are running. One possible way is using the command pgrep VBoxSVC. If +this shows no output then it is safe to uninstall VirtualBox. + diff --git a/doc/VBox-CodingGuidelines.cpp b/doc/VBox-CodingGuidelines.cpp new file mode 100644 index 00000000..32a6560b --- /dev/null +++ b/doc/VBox-CodingGuidelines.cpp @@ -0,0 +1,1031 @@ +/* $Id: VBox-CodingGuidelines.cpp $ */ +/** @file + * VBox - Coding Guidelines. + */ + +/* + * Copyright (C) 2006-2022 Oracle and/or its affiliates. + * + * This file is part of VirtualBox base platform packages, as + * available from https://www.virtualbox.org. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, in version 3 of the + * License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +/** @page pg_vbox_guideline VBox Coding Guidelines + * + * The compulsory sections of these guidelines are to be followed in all of the + * VBox sources. Please note that local guidelines in parts of the VBox source + * tree may promote the optional ones to compulsory status. The VBox tree also + * contains some 3rd party sources where it is good to follow the local coding + * style while keeping these guidelines in mind. + * + * Contents: + * - @ref sec_vbox_guideline_compulsory + * - @ref sec_vbox_guideline_compulsory_sub64 + * - @ref sec_vbox_guideline_compulsory_cppmain + * - @ref sec_vbox_guideline_compulsory_cppqtgui + * - @ref sec_vbox_guideline_compulsory_xslt + * - @ref sec_vbox_guideline_compulsory_doxygen + * - @ref sec_vbox_guideline_compulsory_guest + * - @ref sec_vbox_guideline_optional + * - @ref sec_vbox_guideline_optional_layout + * - @ref sec_vbox_guideline_optional_prefix + * - @ref sec_vbox_guideline_optional_misc + * - @ref sec_vbox_guideline_warnings + * - @ref sec_vbox_guideline_warnings_signed_unsigned_compare + * - @ref sec_vbox_guideline_svn + * + * Local guidelines overrides: + * - src/VBox/VMM/: @ref pg_vmm_guideline (src/VBox/VMM/Docs-CodingGuidelines.cpp) + * - src/VBox/ValidationKit/: @ref pg_validationkit_guideline (src/VBox/ValidationKit/ValidationKitCodingGuidelines.cpp) + * - src/VBox/Runtime/: All of @ref sec_vbox_guideline_optional is mandatory. + * - src/VBox/Main/: @ref sec_vbox_guideline_compulsory_cppmain + * - src/VBox/Frontends/VirtualBox/: @ref sec_vbox_guideline_compulsory_cppqtgui + * + * + * @section sec_vbox_guideline_compulsory Compulsory + * + *
    + * + *
  • The indentation size is 4 chars. + * + *
  • Tabs are only ever used in makefiles. + * + *
  • Use RT and VBOX types. + * + *
  • Use Runtime functions. + * + *
  • Use the standard bool, uintptr_t, intptr_t and [u]int[1-9+]_t types. + * + *
  • Avoid using plain unsigned and int. + * + *
  • Use static wherever possible. This makes the namespace less polluted + * and avoids nasty name clash problems which can occur, especially on + * Unix-like systems. (1) It also simplifies locating callers when + * changing it (single source file vs entire VBox tree). + * + *
  • Public names are of the form Domain[Subdomain[]]Method, using mixed + * casing to mark the words. The main domain is all uppercase. + * (Think like java, mapping domain and subdomain to packages/classes.) + * + *
  • Public names are always declared using the appropriate DECL macro. (2) + * + *
  • Internal names starts with a lowercased main domain. + * + *
  • Defines are all uppercase and separate words with underscore. + * This applies to enum values too. + * + *
  • Typedefs are all uppercase and contain no underscores to distinguish + * them from defines. Alternatively, all uppercase, separate words with + * underscores and ending with '_T'. The latter is not allowed in IPRT. + * + *
  • Pointer typedefs start with 'P'. If pointer to const then 'PC'. + * + *
  • Function typedefs start with 'FN'. If pointer to FN then 'PFN'. + * + *
  • All files are case sensitive. + * + *
  • Slashes are unix slashes ('/') runtime converts when necessary. + * + *
  • char strings are UTF-8. + * + *
  • Strings from any external source must be treated with utmost care as + * they do not have to be valid UTF-8. Only trust internal strings. + * + *
  • All functions return VBox status codes. There are three general + * exceptions from this: + * + *
      + *
    1. Predicate functions. These are function which are boolean in + * nature and usage. They return bool. The function name will + * include 'Has', 'Is' or similar. + *
    2. Functions which by nature cannot possibly fail. + * These return void. + *
    3. "Get"-functions which return what they ask for. + * A get function becomes a "Query" function if there is any + * doubt about getting what is ask for. + *
    + * + *
  • VBox status codes have three subdivisions: + *
      + *
    1. Errors, which are VERR_ prefixed and negative. + *
    2. Warnings, which are VWRN_ prefixed and positive. + *
    3. Informational, which are VINF_ prefixed and positive. + *
    + * + *
  • Platform/OS operation are generalized and put in the IPRT. + * + *
  • Other useful constructs are also put in the IPRT. + * + *
  • The code shall not cause compiler warnings. Check this on ALL + * the platforms. + * + *
  • The use of symbols leading with single or double underscores is + * forbidden as that intrudes on reserved compiler/system namespace. (3) + * + *
  • All files have file headers with $Id and a file tag which describes + * the file in a sentence or two. + * Note: Use the svn-ps.cmd/svn-ps.sh utility with the -a option to add + * new sources with keyword expansion and exporting correctly + * configured. + * + *
  • All public functions are fully documented in Doxygen style using the + * javadoc dialect (using the 'at' instead of the 'slash' as + * commandprefix.) + * + *
  • All structures in header files are described, including all their + * members. (Doxygen style, of course.) + * + *
  • All modules have a documentation '\@page' in the main source file + * which describes the intent and actual implementation. + * + *
  • Code which is doing things that are not immediately comprehensible + * shall include explanatory comments. + * + *
  • Documentation and comments are kept up to date. + * + *
  • Headers in /include/VBox shall not contain any slash-slash C++ + * comments, only ANSI C comments! + * + *
  • Comments on \#else indicates what begins while the comment on a + * \#endif indicates what ended. Only add these when there are more than + * a few lines (6-10) of \#ifdef'ed code, otherwise they're just clutter. + * + *
  • \#ifdefs around a single function shall be tight, i.e. no empty + * lines between it and the function documentation and body. + * + *
  • \#ifdefs around more than one function shall be relaxed, i.e. leave at + * least one line before the first function's documentation comment and + * one line after the end of the last function. + * + *
  • No 'else' after if block ending with 'return', 'break', or 'continue'. + * + *
  • The term 'last' is inclusive, whereas the term 'end' is exclusive. + * + *
  • Go through all of this: https://www.slideshare.net/olvemaudal/deep-c/ + * + *
  • Avoid throwing exceptions, always prefer returning statuses. + * Crappy exception handling is rewared by a glass of water in the face. + * + *
+ * + * (1) It is common practice on Unix to have a single symbol namespace for an + * entire process. If one is careless symbols might be resolved in a + * different way that one expects, leading to weird problems. + * + * (2) This is common practice among most projects dealing with modules in + * shared libraries. The Windows / PE __declspect(import) and + * __declspect(export) constructs are the main reason for this. + * OTOH, we do perhaps have a bit too detailed graining of this in VMM... + * + * (3) There are guys out there grepping public sources for symbols leading with + * single and double underscores as well as gotos and other things + * considered bad practice. They'll post statistics on how bad our sources + * are on some mailing list, forum or similar. + * + * + * @subsection sec_vbox_guideline_compulsory_sub64 64-bit and 32-bit + * + * Here are some amendments which address 64-bit vs. 32-bit portability issues. + * + * Some facts first: + * + *
    + * + *
  • On 64-bit Windows the type long remains 32-bit. On nearly all other + * 64-bit platforms long is 64-bit. + * + *
  • On all 64-bit platforms we care about, int is 32-bit, short is 16 bit + * and char is 8-bit. + * (I don't know about any platforms yet where this isn't true.) + * + *
  • size_t, ssize_t, uintptr_t, ptrdiff_t and similar are all 64-bit on + * 64-bit platforms. (These are 32-bit on 32-bit platforms.) + * + *
  • There is no inline assembly support in the 64-bit Microsoft compilers. + * + *
+ * + * Now for the guidelines: + * + *
    + * + *
  • Never, ever, use int, long, ULONG, LONG, DWORD or similar to cast a + * pointer to integer. Use uintptr_t or intptr_t. If you have to use + * NT/Windows types, there is the choice of ULONG_PTR and DWORD_PTR. + * + *
  • Avoid where ever possible the use of the types 'long' and 'unsigned + * long' as these differs in size between windows and the other hosts + * (see above). + * + *
  • RT_OS_WINDOWS is defined to indicate Windows. Do not use __WIN32__, + * __WIN64__ and __WIN__ because they are all deprecated and scheduled + * for removal (if not removed already). Do not use the compiler + * defined _WIN32, _WIN64, or similar either. The bitness can be + * determined by testing ARCH_BITS. + * Example: + * @code + * #ifdef RT_OS_WINDOWS + * // call win32/64 api. + * #endif + * #ifdef RT_OS_WINDOWS + * # if ARCH_BITS == 64 + * // call win64 api. + * # else // ARCH_BITS == 32 + * // call win32 api. + * # endif // ARCH_BITS == 32 + * #else // !RT_OS_WINDOWS + * // call posix api + * #endif // !RT_OS_WINDOWS + * @endcode + * + *
  • There are RT_OS_xxx defines for each OS, just like RT_OS_WINDOWS + * mentioned above. Use these defines instead of any predefined + * compiler stuff or defines from system headers. + * + *
  • RT_ARCH_X86 is defined when compiling for the x86 the architecture. + * Do not use __x86__, __X86__, __[Ii]386__, __[Ii]586__, or similar + * for this purpose. + * + *
  • RT_ARCH_AMD64 is defined when compiling for the AMD64 architecture. + * Do not use __AMD64__, __amd64__ or __x64_86__. + * + *
  • Take care and use size_t when you have to, esp. when passing a pointer + * to a size_t as a parameter. + * + *
  • Be wary of type promotion to (signed) integer. For example the + * following will cause u8 to be promoted to int in the shift, and then + * sign extended in the assignment 64-bit: + * @code + * uint8_t u8 = 0xfe; + * uint64_t u64 = u8 << 24; + * // u64 == 0xfffffffffe000000 + * @endcode + * + *
+ * + * @subsubsection sec_vbox_guideline_compulsory_sub64_comp Comparing the GCC and MSC calling conventions + * + * GCC expects the following (cut & past from page 20 in the ABI draft 0.96): + * + * @verbatim + %rax temporary register; with variable arguments passes information about the + number of SSE registers used; 1st return register. + [Not preserved] + %rbx callee-saved register; optionally used as base pointer. + [Preserved] + %rcx used to pass 4th integer argument to functions. + [Not preserved] + %rdx used to pass 3rd argument to functions; 2nd return register + [Not preserved] + %rsp stack pointer + [Preserved] + %rbp callee-saved register; optionally used as frame pointer + [Preserved] + %rsi used to pass 2nd argument to functions + [Not preserved] + %rdi used to pass 1st argument to functions + [Not preserved] + %r8 used to pass 5th argument to functions + [Not preserved] + %r9 used to pass 6th argument to functions + [Not preserved] + %r10 temporary register, used for passing a function's static chain + pointer [Not preserved] + %r11 temporary register + [Not preserved] + %r12-r15 callee-saved registers + [Preserved] + %xmm0-%xmm1 used to pass and return floating point arguments + [Not preserved] + %xmm2-%xmm7 used to pass floating point arguments + [Not preserved] + %xmm8-%xmm15 temporary registers + [Not preserved] + %mmx0-%mmx7 temporary registers + [Not preserved] + %st0 temporary register; used to return long double arguments + [Not preserved] + %st1 temporary registers; used to return long double arguments + [Not preserved] + %st2-%st7 temporary registers + [Not preserved] + %fs Reserved for system use (as thread specific data register) + [Not preserved] + @endverbatim + * + * Direction flag is preserved as cleared. + * The stack must be aligned on a 16-byte boundary before the 'call/jmp' instruction. + * + * MSC expects the following: + * @verbatim + rax return value, not preserved. + rbx preserved. + rcx 1st argument, integer, not preserved. + rdx 2nd argument, integer, not preserved. + rbp preserved. + rsp preserved. + rsi preserved. + rdi preserved. + r8 3rd argument, integer, not preserved. + r9 4th argument, integer, not preserved. + r10 scratch register, not preserved. + r11 scratch register, not preserved. + r12-r15 preserved. + xmm0 1st argument, fp, return value, not preserved. + xmm1 2st argument, fp, not preserved. + xmm2 3st argument, fp, not preserved. + xmm3 4st argument, fp, not preserved. + xmm4-xmm5 scratch, not preserved. + xmm6-xmm15 preserved. + @endverbatim + * + * Dunno what the direction flag is... + * The stack must be aligned on a 16-byte boundary before the 'call/jmp' instruction. + * + * + * @subsection sec_vbox_guideline_compulsory_cppmain C++ guidelines for Main + * + * Since the Main API code is a large amount of C++ code, it is allowed but + * not required to use C++ style comments (as permanent comments, beyond the + * temporary use allowed by the general coding guideline). This is a weak + * preference, i.e. large scale comment style changes are not encouraged. + * + * Main is currently (2009) full of hard-to-maintain code that uses complicated + * templates. The new mid-term goal for Main is to have less custom templates + * instead of more for the following reasons: + * + *
    + * + *
  • Template code is harder to read and understand. Custom templates create + * territories which only the code writer understands. + * + *
  • Errors in using templates create terrible C++ compiler messages. + * + *
  • Template code is really hard to look at in a debugger. + * + *
  • Templates slow down the compiler a lot. + * + *
+ * + * In particular, the following bits should be considered deprecated and should + * NOT be used in new code: + * + *
    + * + *
  • everything in include/iprt/cpputils.h (auto_ref_ptr, exception_trap_base, + * char_auto_ptr and friends) + * + *
+ * + * Generally, in many cases, a simple class with a proper destructor can achieve + * the same effect as a 1,000-line template include file, and the code is + * much more accessible that way. + * + * Using standard STL templates like std::list, std::vector and std::map is OK. + * Exceptions are: + * + *
    + * + *
  • Guest Additions because we don't want to link against libstdc++ there. + * + *
  • std::string should not be used because we have iprt::MiniString and + * com::Utf8Str which can convert efficiently with COM's UTF-16 strings. + * + *
  • std::auto_ptr<> in general; that part of the C++ standard is just broken. + * Write a destructor that calls delete. + * + *
+ * + * @subsection sec_vbox_guideline_compulsory_cppqtgui C++ guidelines for the Qt GUI + * + * The Qt GUI is currently (2010) on its way to become more compatible to the + * rest of VirtualBox coding style wise. From now on, all the coding style + * rules described in this file are also mandatory for the Qt GUI. Additionally + * the following rules should be respected: + * + *
    + * + *
  • GUI classes which correspond to GUI tasks should be prefixed by UI (no VBox anymore) + * + *
  • Classes which extents some of the Qt classes should be prefix by QI + * + *
  • General task classes should be prefixed by C + * + *
  • Slots are prefixed by slt -> sltName + * + *
  • Signals are prefixed by sig -> sigName + * + *
  • Use Qt classes for lists, strings and so on, the use of STL classes should + * be avoided + * + *
  • All files like .cpp, .h, .ui, which belong together are located in the + * same directory and named the same + * + *
+ * + * + * @subsection sec_vbox_guideline_compulsory_xslt XSLT + * + * XSLT (eXtensible Stylesheet Language Transformations) is used quite a bit in + * the Main API area of VirtualBox to generate sources and bindings to that API. + * There are a couple of common pitfalls worth mentioning: + * + *
    + * + *
  • Never do repeated //interface[\@name=...] and //enum[\@name=...] lookups + * because they are expensive. Instead delcare xsl:key elements for these + * searches and do the lookup using the key() function. xsltproc uses + * (per current document) hash tables for each xsl:key, i.e. very fast. + * + *
  • When output type is 'text' make sure to call xsltprocNewlineOutputHack + * from typemap-shared.inc.xsl every few KB of output, or xsltproc will + * end up wasting all the time reallocating the output buffer. + * + *
+ * + * + * @subsection sec_vbox_guideline_compulsory_doxygen Doxygen Comments + * + * As mentioned above, we shall use doxygen/javadoc style commenting of public + * functions, typedefs, classes and such. It is mandatory to use this style + * everywhere! + * + * A couple of hints on how to best write doxygen comments: + * + *
    + * + *
  • A good class, method, function, structure or enum doxygen comment + * starts with a one line sentence giving a brief description of the + * item. Details comes in a new paragraph (after blank line). + * + *
  • Except for list generators like \@todo, \@cfgm, \@gcfgm and others, + * all doxygen comments are related to things in the code. So, for + * instance you DO NOT add a doxygen \@note comment in the middle of a + * because you've got something important to note, you add a normal + * comment like 'Note! blah, very importan blah!' + * + *
  • We do NOT use TODO/XXX/BUGBUG or similar markers in the code to flag + * things needing fixing later, we always use \@todo doxygen comments. + * + *
  • There is no colon after the \@todo. And it is ALWAYS in a doxygen + * comment. + * + *
  • The \@retval tag is used to explain status codes a method/function may + * returns. It is not used to describe output parameters, that is done + * using the \@param or \@param[out] tag. + * + *
+ * + * See https://www.stack.nl/~dimitri/doxygen/manual/index.html for the official + * doxygen documention. + * + * + * + * @subsection sec_vbox_guideline_compulsory_guest Handling of guest input + * + * First, guest input should ALWAYS be consider to be TOXIC and constructed with + * MALICIOUS intent! Max paranoia level! + * + * Second, when getting inputs from memory shared with the guest, be EXTREMELY + * careful to not re-read input from shared memory after validating it, because + * that will create TOCTOU problems. So, after reading input from shared memory + * always use the RT_UNTRUSTED_NONVOLATILE_COPY_FENCE() macro. For more details + * on TOCTOU: https://en.wikipedia.org/wiki/Time_of_check_to_time_of_use + * + * Thirdly, considering the recent speculation side channel issues, spectre v1 + * in particular, we would like to be ready for future screwups. This means + * having input validation in a separate block of code that ends with one (or + * more) RT_UNTRUSTED_VALIDATED_FENCE(). + * + * So the rules: + * + *
    + * + *
  • Mark all pointers to shared memory with RT_UNTRUSTED_VOLATILE_GUEST. + * + *
  • Copy volatile data into local variables or heap before validating + * them (see RT_COPY_VOLATILE() and RT_BCOPY_VOLATILE(). + * + *
  • Place RT_UNTRUSTED_NONVOLATILE_COPY_FENCE() after a block copying + * volatile data. + * + *
  • Always validate untrusted inputs in a block ending with a + * RT_UNTRUSTED_VALIDATED_FENCE(). + * + *
  • Use the ASSERT_GUEST_XXXX macros from VBox/AssertGuest.h to validate + * guest input. (Do NOT use iprt/assert.h macros.) + * + *
  • Validation of an input B may require using another input A to look up + * some data, in which case its necessary to insert an + * RT_UNTRUSTED_VALIDATED_FENCE() after validating A and before A is used + * for the lookup. + * + * For example A is a view identifier, idView, and B is an offset into + * the view's framebuffer area, offView. To validate offView (B) it is + * necessary to get the size of the views framebuffer region: + * @code + * uint32_t const idView = pReq->idView; // A + * uint32_t const offView = pReq->offView; // B + * RT_UNTRUSTED_NONVOLATILE_COPY_FENCE(); + * + * ASSERT_GUEST_RETURN(idView < pThis->cView, + * VERR_INVALID_PARAMETER); + * RT_UNTRUSTED_VALIDATED_FENCE(); + * const MYVIEW *pView = &pThis->aViews[idView]; + * ASSERT_GUEST_RETURN(offView < pView->cbFramebufferArea, + * VERR_OUT_OF_RANGE); + * RT_UNTRUSTED_VALIDATED_FENCE(); + * @endcode + * + *
  • Take care to make sure input check are not subject to integer overflow problems. + * + * For instance when validating an area, you must not just add cbDst + offDst + * and check against pThis->offEnd or something like that. Rather do: + * @code + * uint32_t const offDst = pReq->offDst; + * uint32_t const cbDst = pReq->cbDst; + * RT_UNTRUSTED_NONVOLATILE_COPY_FENCE(); + * + * ASSERT_GUEST_RETURN( cbDst <= pThis->cbSrc + * && offDst < pThis->cbSrc - cbDst, + * VERR_OUT_OF_RANGE); + * RT_UNTRUSTED_VALIDATED_FENCE(); + * @endcode + * + *
  • Input validation does not only apply to shared data cases, but also to + * I/O port and MMIO handlers. + * + *
  • Ditto for kernel drivers working with usermode inputs. + * + *
+ * + * + * Problem patterns: + * - https://en.wikipedia.org/wiki/Time_of_check_to_time_of_use + * - https://googleprojectzero.blogspot.de/2018/01/reading-privileged-memory-with-side.html + * (Variant 1 only). + * - https://en.wikipedia.org/wiki/Integer_overflow + * + * + * + * @section sec_vbox_guideline_optional Optional + * + * First part is the actual coding style and all the prefixes. The second part + * is a bunch of good advice. + * + * + * @subsection sec_vbox_guideline_optional_layout The code layout + * + *
    + * + *
  • Max line length is 130 chars. Exceptions are table-like + * code/initializers and Log*() statements (don't waste unnecessary + * vertical space on debug logging). + * + *
  • Comments should try stay within the usual 80 columns as these are + * denser and too long lines may be harder to read. + * + *
  • Curly brackets are not indented. Example: + * @code + * if (true) + * { + * Something1(); + * Something2(); + * } + * else + * { + * SomethingElse1(). + * SomethingElse2(). + * } + * @endcode + * + *
  • Space before the parentheses when it comes after a C keyword. + * + *
  • No space between argument and parentheses. Exception for complex + * expression. Example: + * @code + * if (PATMR3IsPatchGCAddr(pVM, GCPtr)) + * @endcode + * + *
  • The else of an if is always the first statement on a line. (No curly + * stuff before it!) + * + *
  • else and if go on the same line if no { compound statement } + * follows the if. Example: + * @code + * if (fFlags & MYFLAGS_1) + * fFlags &= ~MYFLAGS_10; + * else if (fFlags & MYFLAGS_2) + * { + * fFlags &= ~MYFLAGS_MASK; + * fFlags |= MYFLAGS_5; + * } + * else if (fFlags & MYFLAGS_3) + * @endcode + * + *
  • Slightly complex boolean expressions are split into multiple lines, + * putting the operators first on the line and indenting it all according + * to the nesting of the expression. The purpose is to make it as easy as + * possible to read. Example: + * @code + * if ( RT_SUCCESS(rc) + * || (fFlags & SOME_FLAG)) + * @endcode + * + *
  • When 'if' or 'while' statements gets long, the closing parentheses + * goes right below the opening parentheses. This may be applied to + * sub-expression. Example: + * @code + * if ( RT_SUCCESS(rc) + * || ( fSomeStuff + * && fSomeOtherStuff + * && fEvenMoreStuff + * ) + * || SomePredicateFunction() + * ) + * { + * ... + * } + * @endcode + * + *
  • The case is indented from the switch (to avoid having the braces for + * the 'case' at the same level as the 'switch' statement). + * + *
  • If a case needs curly brackets they contain the entire case, are not + * indented from the case, and the break or return is placed inside them. + * Example: + * @code + * switch (pCur->eType) + * { + * case PGMMAPPINGTYPE_PAGETABLES: + * { + * unsigned iPDE = pCur->GCPtr >> PGDIR_SHIFT; + * unsigned iPT = (pCur->GCPtrEnd - pCur->GCPtr) >> PGDIR_SHIFT; + * while (iPT-- > 0) + * if (pPD->a[iPDE + iPT].n.u1Present) + * return VERR_HYPERVISOR_CONFLICT; + * break; + * } + * } + * @endcode + * + *
  • In a do while construction, the while is on the same line as the + * closing "}" if any are used. + * Example: + * @code + * do + * { + * stuff; + * i--; + * } while (i > 0); + * @endcode + * + *
  • Comments are in C style. C++ style comments are used for temporary + * disabling a few lines of code. + * + *
  • No unnecessary parentheses in expressions (just don't over do this + * so that gcc / msc starts bitching). Find a correct C/C++ operator + * precedence table if needed. + * + *
  • 'for (;;)' is preferred over 'while (true)' and 'while (1)'. + * + *
  • Parameters are indented to the start parentheses when breaking up + * function calls, declarations or prototypes. (This is in line with + * how 'if', 'for' and 'while' statements are done as well.) Example: + * @code + * RTPROCESS hProcess; + * int rc = RTProcCreateEx(papszArgs[0], + * papszArgs, + * RTENV_DEFAULT, + * fFlags, + * NULL, // phStdIn + * NULL, // phStdOut + * NULL, // phStdErr + * NULL, // pszAsUser + * NULL, // pszPassword + * NULL, // pExtraData + * &hProcess); + * @endcode + * + *
  • That Dijkstra is dead is no excuse for using gotos. + * + *
  • Using do-while-false loops to avoid gotos is considered very bad form. + * They create hard to read code. They tend to be either too short (i.e. + * pointless) or way to long (split up the function already), making + * tracking the state is difficult and prone to bugs. Also, they cause + * the compiler to generate suboptimal code, because the break branches + * are by preferred over the main code flow (MSC has no branch hinting!). + * Instead, do make use the 130 columns (i.e. nested ifs) and split + * the code up into more functions! + * + *
  • Avoid code like + * @code + * int foo; + * int rc; + * ... + * rc = FooBar(); + * if (RT_SUCCESS(rc)) + * { + * foo = getFoo(); + * ... + * pvBar = RTMemAlloc(sizeof(*pvBar)); + * if (!pvBar) + * rc = VERR_NO_MEMORY; + * } + * if (RT_SUCCESS(rc)) + * { + * buzz = foo; + * ... + * } + * @endcode + * The intention of such code is probably to save some horizontal space + * but unfortunately it's hard to read and the scope of certain varables + * (e.g. foo in this example) is not optimal. Better use the following + * style: + * @code + * int rc; + * ... + * rc = FooBar(); + * if (RT_SUCCESS(rc)) + * { + * int foo = getFoo(); + * ... + * pvBar = RTMemAlloc(sizeof(*pvBar)); + * if (pvBar) + * { + * buzz = foo; + * ... + * } + * else + * rc = VERR_NO_MEMORY; + * } + * @endcode + * + *
+ * + * @subsection sec_vbox_guideline_optional_prefix Variable / Member Prefixes + * + * Prefixes are meant to provide extra context clues to a variable/member, we + * therefore avoid using prefixes that just indicating the type if a better + * choice is available. + * + * + * The prefixes: + * + *
    + * + *
  • The 'g_' (or 'g') prefix means a global variable, either on file or module level. + * + *
  • The 's_' (or 's') prefix means a static variable inside a function or + * class. This is not used for static variables on file level, use 'g_' + * for those (logical, right). + * + *
  • The 'm_' (or 'm') prefix means a class data member. + * + * In new code in Main, use "m_" (and common sense). As an exception, + * in Main, if a class encapsulates its member variables in an anonymous + * structure which is declared in the class, but defined only in the + * implementation (like this: 'class X { struct Data; Data *m; }'), then + * the pointer to that struct is called 'm' itself and its members then + * need no prefix, because the members are accessed with 'm->member' + * already which is clear enough. + * + *
  • The 'a_' prefix means a parameter (argument) variable. This is + * sometimes written 'a' in parts of the source code that does not use + * the array prefix. + * + *
  • The 'p' prefix means pointer. For instance 'pVM' is pointer to VM. + * + *
  • The 'r' prefix means that something is passed by reference. + * + *
  • The 'k' prefix means that something is a constant. For instance + * 'enum { kStuff };'. This is usually not used in combination with + * 'p', 'r' or any such thing, it's main main use is to make enums + * easily identifiable. + * + *
  • The 'a' prefix means array. For instance 'aPages' could be read as + * array of pages. + * + *
  • The 'c' prefix means count. For instance 'cbBlock' could be read, + * count of bytes in block. (1) + * + *
  • The 'cx' prefix means width (count of 'x' units). + * + *
  • The 'cy' prefix means height (count of 'y' units). + * + *
  • The 'x', 'y' and 'z' prefix refers to the x-, y- , and z-axis + * respectively. + * + *
  • The 'off' prefix means offset. + * + *
  • The 'i' or 'idx' prefixes usually means index. Although the 'i' one + * can sometimes just mean signed integer. + * + *
  • The 'i[1-9]+' prefix means a fixed bit size variable. Frequently + * used with the int[1-9]+_t types where the width is really important. + * In most cases 'i' is more appropriate. [type] + * + *
  • The 'e' (or 'enm') prefix means enum. + * + *
  • The 'u' prefix usually means unsigned integer. Exceptions follows. + * + *
  • The 'u[1-9]+' prefix means a fixed bit size variable. Frequently + * used with the uint[1-9]+_t types and with bitfields where the width is + * really important. In most cases 'u' or 'b' (byte) would be more + * appropriate. [type] + * + *
  • The 'b' prefix means byte or bytes. [type] + * + *
  • The 'f' prefix means flags. Flags are unsigned integers of some kind + * or booleans. + * + *
  • TODO: need prefix for real float. [type] + * + *
  • The 'rd' prefix means real double and is used for 'double' variables. + * [type] + * + *
  • The 'lrd' prefix means long real double and is used for 'long double' + * variables. [type] + * + *
  • The 'ch' prefix means a char, the (signed) char type. [type] + * + *
  • The 'wc' prefix means a wide/windows char, the RTUTF16 type. [type] + * + *
  • The 'uc' prefix means a Unicode Code point, the RTUNICP type. [type] + * + *
  • The 'uch' prefix means unsigned char. It's rarely used. [type] + * + *
  • The 'sz' prefix means zero terminated character string (array of + * chars). (UTF-8) + * + *
  • The 'wsz' prefix means zero terminated wide/windows character string + * (array of RTUTF16). + * + *
  • The 'usz' prefix means zero terminated Unicode string (array of + * RTUNICP). + * + *
  • The 'str' prefix means C++ string; either a std::string or, in Main, + * a Utf8Str or, in Qt, a QString. When used with 'p', 'r', 'a' or 'c' + * the first letter should be capitalized. + * + *
  • The 'bstr' prefix, in Main, means a UTF-16 Bstr. When used with 'p', + * 'r', 'a' or 'c' the first letter should be capitalized. + * + *
  • The 'pfn' prefix means pointer to function. Common usage is 'pfnCallback' + * and such like. + * + *
  • The 'psz' prefix is a combination of 'p' and 'sz' and thus means + * pointer to a zero terminated character string. (UTF-8) + * + *
  • The 'pcsz' prefix is used to indicate constant string pointers in + * parts of the code. Most code uses 'psz' for const and non-const + * string pointers, so please ignore this one. + * + *
  • The 'l' prefix means (signed) long. We try avoid using this, + * expecially with the 'LONG' types in Main as these are not 'long' on + * 64-bit non-Windows platforms and can cause confusion. Alternatives: + * 'i' or 'i32'. [type] + * + *
  • The 'ul' prefix means unsigned long. We try avoid using this, + * expecially with the 'ULONG' types in Main as these are not 'unsigned + * long' on 64-bit non-Windows platforms and can cause confusion. + * Alternatives: 'u' or 'u32'. [type] + * + *
+ * + * (1) Except in the occasional 'pcsz' prefix, the 'c' prefix is never ever + * used in the meaning 'const'. + * + * + * @subsection sec_vbox_guideline_optional_misc Misc / Advice / Stuff + * + *
    + * + *
  • When writing code think as the reader. + * + *
  • When writing code think as the compiler. (2) + * + *
  • When reading code think as if it's full of bugs - find them and fix them. + * + *
  • Pointer within range tests like: + * @code + * if ((uintptr_t)pv >= (uintptr_t)pvBase && (uintptr_t)pv < (uintptr_t)pvBase + cbRange) + * @endcode + * Can also be written as (assuming cbRange unsigned): + * @code + * if ((uintptr_t)pv - (uintptr_t)pvBase < cbRange) + * @endcode + * Which is shorter and potentially faster. (1) + * + *
  • Avoid unnecessary casting. All pointers automatically cast down to + * void *, at least for non class instance pointers. + * + *
  • It's very very bad practise to write a function larger than a + * screen full (1024x768) without any comprehensibility and explaining + * comments. + * + *
  • More to come.... + * + *
+ * + * (1) Important, be very careful with the casting. In particular, note that + * a compiler might treat pointers as signed (IIRC). + * + * (2) "A really advanced hacker comes to understand the true inner workings of + * the machine - he sees through the language he's working in and glimpses + * the secret functioning of the binary code - becomes a Ba'al Shem of + * sorts." (Neal Stephenson "Snow Crash") + * + * + * + * @section sec_vbox_guideline_warnings Compiler Warnings + * + * The code should when possible compile on all platforms and compilers without any + * warnings. That's a nice idea, however, if it means making the code harder to read, + * less portable, unreliable or similar, the warning should not be fixed. + * + * Some of the warnings can seem kind of innocent at first glance. So, let's take the + * most common ones and explain them. + * + * + * @subsection sec_vbox_guideline_warnings_signed_unsigned_compare Signed / Unsigned Compare + * + * GCC says: "warning: comparison between signed and unsigned integer expressions" + * MSC says: "warning C4018: '<|<=|==|>=|>' : signed/unsigned mismatch" + * + * The following example will not output what you expect: +@code +#include +int main() +{ + signed long a = -1; + unsigned long b = 2294967295; + if (a < b) + printf("%ld < %lu: true\n", a, b); + else + printf("%ld < %lu: false\n", a, b); + return 0; +} +@endcode + * If I understood it correctly, the compiler will convert a to an + * unsigned long before doing the compare. + * + * + * + * @section sec_vbox_guideline_svn Subversion Commit Rules + * + * + * Before checking in: + * + *
    + * + *
  • Check Tinderbox and make sure the tree is green across all platforms. If it's + * red on a platform, don't check in. If you want, warn in the \#vbox channel and + * help make the responsible person fix it. + * NEVER CHECK IN TO A BROKEN BUILD. + * + *
  • When checking in keep in mind that a commit is atomic and that the Tinderbox and + * developers are constantly checking out the tree. Therefore do not split up the + * commit unless it's into 100% independent parts. If you need to split it up in order + * to have sensible commit comments, make the sub-commits as rapid as possible. + * + *
  • If you make a user visible change, such as fixing a reported bug, + * make sure you add an entry to doc/manual/user_ChangeLogImpl.xml. + * + *
  • If you are adding files make sure set the right attributes. + * svn-ps.sh/cmd was created for this purpose, please make use of it. + * + *
+ * + * After checking in: + * + *
    + * + *
  • After checking-in, you watch Tinderbox until your check-ins clear. You do not + * go home. You do not sleep. You do not log out or experiment with drugs. You do + * not become unavailable. If you break the tree, add a comment saying that you're + * fixing it. If you can't fix it and need help, ask in the \#innotek channel or back + * out the change. + * + *
+ * + * (Inspired by mozilla tree rules.) + * + * + */ + diff --git a/doc/VBox-MakefileGuidelines.cpp b/doc/VBox-MakefileGuidelines.cpp new file mode 100644 index 00000000..b91bbc64 --- /dev/null +++ b/doc/VBox-MakefileGuidelines.cpp @@ -0,0 +1,216 @@ +/* $Id: VBox-MakefileGuidelines.cpp $ */ +/** @file + * VBox - Makefile Guidelines. + */ + +/* + * Copyright (C) 2009-2022 Oracle and/or its affiliates. + * + * This file is part of VirtualBox base platform packages, as + * available from https://www.virtualbox.org. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, in version 3 of the + * License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +/** @page pg_vbox_makefile_guidelines VBox Makefile Guidelines + * + * These guidelines apply to all the Makefile.kmk files in the tree. + * No exceptions. + * + * All these makefiles are ultimately the responsiblity of bird. Since there + * are currently more than three hundred files and the number is growing, they + * have to be very kept uniform or it will become very difficult to maintain + * them and impossible do bulk refactoring. Thus these guidelines have no bits + * that are optional unlike the coding guidelines, and should be thought of as + * rules rather than guidelines. + * + * Note! The guidelines do not apply to the non-kBuild makefiles found in the + * source tree, like the ones shipped in the SDK and the ones for the + * linux kernel modules. + * + * + * @section sec_vbox_makefile_guidelines_kbuild kBuild + * + * kBuild is way older than VirtualBox, at least as a concept, but the + * VirtualBox project was a push to get something done about it again. It's + * maintained by bird in his spare time because: "We don't make buildsystems, we + * make virtual machines". So, kBuild makes progress when there is spare time + * or when there is an urgent need for something. + * + * The kBuild docs are in the process of being written. The current items and + * their status per 2018-10-29: + * - kmk Quick Reference [completed]: + * http://svn.netlabs.org/kbuild/wiki/kmk%20Quick%20Reference + * - kBuild Quick Reference [just started]: + * http://svn.netlabs.org/kbuild/wiki/kBuild%20Quick%20Reference + * + * Local copies of the docs can be found in kBuild/docs, just keep in mind that + * they might be slightly behind the online version. + * + * + * @section sec_vbox_makefile_guidelines_example Example Makefiles + * + * Let me point to some good sample makefiles: + * - src/VBox/Additions/common/VBoxService/Makefile.kmk + * - src/VBox/Debugger/Makefile.kmk + * - src/VBox/Disassembler/Makefile.kmk + * + * And some bad ones: + * - src/lib/xpcom18a4/Makefile.kmk + * - src/recompiler/Makefile.kmk + * - src/VBox/Devices/Makefile.kmk + * - src/VBox/Main/Makefile.kmk + * - src/VBox/Runtime/Makefile.kmk + * + * + * @section sec_vbox_makefile_guidelines Guidelines + * + * First one really important fact: + * + * Everything is global because all makefiles + * are virtually one single makefile. + * + * The rules: + * + * - Using bits defined by a sub-makefile is fine, using anything defined + * by a parent, sibling, uncle, cousine, or remoter relatives is not + * Okay. It may break sub-tree building which is not acceptable. + * + * - Template names starts with VBox and are camel cased, no + * underscores or other separators. (Note this used to be all upper + * case, fixing this incomplete.) + * + * - Makefile variables shall be prefixed with VBOX or VB to avoid clashes + * with environment and kBuild variables. + * + * - Makefile variables are all upper cased and uses underscores to + * separate the words. + * + * - All variables are global. Make sure they are globally unique, but try + * not make them incredible long. + * + * - Makefile variables goes after the inclusion of the header and + * usually after including sub-makefiles. + * + * - Variables that are used by more than one makefile usually ends up + * in the monster file, Config.kmk. However, see if there are any + * sub-tree specific Config.kmk files that could do the job first. + * + * - Targets are lower or camel cased and as a rule the same as the + * resulting binary. + * + * - Install targets frequently have a -inst in their name, and a name that + * gives some idea what they install + * + * - Always use templates (mytarget_TEMPLATE = VBoxSomething). + * + * - Comment each target with a 3+ line block as seen in + * src/VBox/Debugger/Makefile.kmk. + * + * - No space between the comment block and the target definition. + * + * - Try fit all the custom recipes after the target they apply to. + * + * - Custom recipes that apply to more than one target should be placed at + * the bottom of the makefile, before the footer inclusion when possible. + * + * - Do NOT use custom recipes to install stuff, use install targets. + * Generate files to inst-target_0_OUTDIR. (Yes, there are a lot places + * where we don't do this yet.) + * + * - Always break SOURCES, LIBS, long target list and other lists the + * manner Debugger_SOURCES is broken into multiple lines in + * src/VBox/Debugger/Makefile.kmk. I.e. exactly one tab, the file name / + * list item, another space, the slash and then the newline. + * + * - Line continuation slashes shall never ever be aligned vertically (that + * always goes crooked sooner or later), but have exactly one space + * before them. + * + * - The last element of an broken list shall not have a slash-newline, + * otherwise we risk getting the next variable into the list. + * + * - When if'ed blocks come into play, we will only indent the conditional + * makefile directives (if, ifeq, ifneq, if1of, ifn1of, ifdef, ifndef, + * else, endif, ++), one space for each level. (Note! We used to indent + * non-directives, which made emacs upset as we'd have both tabs and + * spaces on as indentation on the same line. There are a lot of cases + * of this still around.) + * + * - \$(NO_SUCH_VARIABLE) should be when you need to put nothing somewhere, + * for instance to prevent inherting an attribute. + * + * - Always put the defines in the DEFS properties, never use the FLAGS + * properties for this. Doing so may screw up depenencies and object + * caches. + * + * - Mark each section and target of the file with a 3+ lines comment + * block. + * + * - Document variables that are not immediately obvious using double hash + * comments, doxygen style. + * + * - Each an every Makefile.kmk shall have a file header with Id, file + * description and copyright/license exactly like in the examples. (The + * SCM tool will complain if you don't.) + * + * - Multiple blank lines in a makefile is very seldom there without a + * reason and shall be preserved. + * + * - Inserting blank lines between target properties is all right if the + * target definition is long and/or crooked. + * + * - if1of and ifn1of shall always have a space after the comma, while ifeq + * and ifneq shall not. That way they are easier to tell apart. + * + * - Do a svn diff before committing makefile changes. + * + * + * @section sec_vbox_makefile_guidelines_reminders Helpful reminders + * + * - Do not be afraid to ask for help on IRC or in the defect you're + * working on. There are usually somebody around that know how to best do + * something. + * + * - Watch out for "Heads Up!" bugtracker messages concerning the build + * system. + * + * - To remove bits from a template you're using you have to create a new + * template that extends the existing one and creatively use + * \$(filter-out) or \$(patsubst). + * + * - You can build sub-trees. + * + * - You don't have to cd into sub-trees: kmk -C src/recompiler + * + * - You can build individual targets: kmk VBoxRT + * + * - Even install targets: kmk nobin + * + * - You can compile individual source files: kmk ConsoleImpl.o + * + * - You can tell kmk to continue on failure: kmk -k + * + * - You can tell kmk to run at low priority: kmk --nice + * + * - The --pretty-command-printing option is useful for seeing exactly + * what's passed to the tools. + * + * - You can invoke recipes in the root makefile more efficiently via the + * Maintenance.kmk file: kmk -f Maintenance.kmk incs + * + */ + diff --git a/doc/VBox-doc.c b/doc/VBox-doc.c new file mode 100644 index 00000000..79fd4b16 --- /dev/null +++ b/doc/VBox-doc.c @@ -0,0 +1,219 @@ +/* $Id: VBox-doc.c $ */ +/** @file + * VirtualBox Top Level Documentation File. + */ + +/* + * Copyright (C) 2006-2022 Oracle and/or its affiliates. + * + * This file is part of VirtualBox base platform packages, as + * available from https://www.virtualbox.org. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, in version 3 of the + * License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + * SPDX-License-Identifier: GPL-3.0-only + */ + + +/** @mainpage VirtualBox + * + * (add introduction here) + * + * @section pg_main_comp Components + * + * - VM / @ref pg_vmm "VMM" / GVM / @ref pg_gvmm "GVMM" - Virtual Machine + * Monitor. + * - @ref pg_cfgm + * - @ref pg_cpum + * - @ref pg_dbgf + * - @ref pg_dbgf_addr_space + * - @ref pg_dbgf_vmcore + * - @ref pg_dbgf_module + * - @ref pg_dbgc + * - VBoxDbg - Debugger GUI (Qt). + * - @ref grp_dis + * - @ref pg_em + * - @ref pg_gim + * - @ref pg_hm + * - @ref pg_iem + * - @ref pg_nem + * - @ref pg_gmm + * - @ref pg_mm + * - @ref pg_pgm + * - @ref pg_pgm_phys + * - @ref pg_pgm_pool + * - @ref pg_selm + * - @ref pg_iom + * - @ref pg_pdm + * - Devices / USB Devices, Drivers and their public interfaces. + * - Async I/O Completion API. + * - Async Task API. + * - Critical Section API. + * - Queue API. + * - Thread API. + * - @ref pg_pdm_block_cache + * - @ref pg_ssm + * - @ref pg_stam + * - @ref pg_tm + * - @ref pg_trpm + * - VMM docs: + * - @ref pg_vmm_guideline + * - @ref pg_raw + * - Pluggable Components (via PDM). + * - DevPCArch - PC Architecture Device (chipset, legacy ++). + * - DevPCBios - Basic Input Output System. + * - DevDMAC - DMA Controller. + * - DevPIC - Programmable Interrupt Controller. + * - DevPIT - Programmable Interval Timer (i8254). + * - DevRTC - Real Time Clock. + * - DevVGA - Video Graphic Array. + * - DevPCI - Peripheral Component Interface (Bus). + * - VBoxDev - Special PCI Device which serves as an interface between + * the VMM and the guest OS for the additions. + * - @ref pg_pdm_audio "Audio": + * - DevHda - Intel High Definition Audio Device Emulation. + * - DevIchAc97 - ICH AC'97 Device Emulation. + * - DevSB16 - SoundBlaster 16 Device Emulation. + * - DrvAudio - Intermediate driver. + * - DrvHostAudioAlsa - ALSA Host Audio Driver (Linux). + * - DrvHostAudioCoreAudio - Core Audio Host Audio Driver (macOS). + * - DrvHostAudioDebug - Debug Backend Driver. + * - DrvHostAudioDSound - DirectSound Host Audio Driver (Windows). + * - DrvHostAudioNull - NULL Backend Driver. + * - DrvHostAudioOss - Open Sound System Host Audio Driver (Linux, + * Solaris, ++). + * - DrvHostAudioPulseAudio - PulseAudio Host Audio Driver (Linux). + * - DrvHostAudioValidationKit - Validation Kit Test Driver. + * - DrvHostAudioWasApi - Windows Audio Session API Host Audio Driver. + * - Networking: + * - DevPCNet - AMD PCNet Device Emulation. + * - DevE1000 - Intel E1000 Device Emulation. + * - DevEEPROM - Intel E1000 EPROM Device Emulation. + * - SrvINetNetR0 - Internal Networking Ring-0 Service. + * - DevINIP - IP Stack Service for the internal networking. + * - DrvIntNet - Internal Networking Driver. + * - DrvNetSniffer - Wireshark Compatible Sniffer Driver (pass thru). + * - DrvNAT - Network Address Translation Driver. + * - DrvTAP - Host Interface Networking Driver. + * - Storage: + * - DevATA - ATA ((E)IDE) Device Emulation. + * - @ref pg_dev_ahci + * - DevFDC - Floppy Controller Device Emulation. + * - DrvBlock - Intermediate block driver. + * - DrvHostBase - Common code for the host drivers. + * - DrvHostDVD - Host DVD drive driver. + * - DrvHostFloppy - Host floppy drive driver. + * - DrvHostRawDisk - Host raw disk drive driver. + * - DrvMediaISO - ISO media driver. + * - DrvRawImage - Raw image driver (floppy images etc). + * - DrvVD - Intermediate Virtual Drive (Media) driver. + * - DrvVDI - VirtualBox Drive Image Container Driver. + * - DrvVmdk - VMDK Drive Image Container Driver. + * - USB: + * - @ref pg_dev_ohci + * - @ref pg_dev_ehci + * - @ref pg_dev_vusb + * - @ref pg_dev_vusb_old + * - Host Drivers. + * - SUPDRV - The Support driver (aka VBoxDrv). + * - @ref pg_sup + * - @ref pg_netflt + * - @ref pg_netadp + * - VBoxUSB - The USB support driver. + * - @ref pg_netflt + * - @ref pg_rawpci + * - Host Services. + * - @ref pg_hostclip + * - Shared Folders. + * - @ref pg_svc_guest_properties + * - @ref pg_svc_guest_control + * - Guest Additions. + * - VBoxGuest. + * - @ref pg_guest_lib + * - @ref pg_vgsvc + * - @ref pg_vgsvc_timesync + * - @ref pg_vgsvc_vminfo + * - @ref pg_vgsvc_vmstats + * - @ref pg_vgsvc_gstctrl + * - @ref pg_vgsvc_pagesharing + * - @ref pg_vgsvc_memballoon + * - @ref pg_vgsvc_cpuhotplug + * - @ref pg_vgsvc_automount + * - @ref pg_vgsvc_clipboard + * - VBoxControl. + * - Linux, Solaris and FreeBSD specific guest services and drivers. + * - @ref pg_vboxdrmcliet (Linux only). + * - VBoxClient. + * - VBoxVideo. + * - Windows Guests. + * - VBoxTray. + * - crOpenGL. + * - pam. + * - ... + * - Network Services: + * - @ref pg_net_dhcp + * - NAT + * - @ref pg_main + * - @ref pg_main_events + * - @ref pg_vrdb_usb + * - Frontends: + * - VirtualBox - The default Qt-based GUI. + * - VBoxHeadless - The headless frontend. + * - VBoxManage - The CLI. + * - VBoxShell - An interactive shell written in python. + * - VBoxSDL - A very simple GUI. + * - VBoxBFE - A bare metal edition which does not use COM/XPCOM (barely + * maintained atm). + * - IPRT - Runtime Library for hiding host OS differences. + * - Validation Kit: + * - @ref pg_validationkit_guideline + * - @ref pg_bs3kit + * - @ref pg_vbox_guideline + * + * @todo Make links to the components. + * + * + * + * @section Execution Contexts + * + * VirtualBox defines a number of different execution context, this can be + * confusing at first. So, to start with take a look at this diagram: + * + * @image html VMMContexts.png + * + * Context definitions: + * - Host context (HC) - This is the context where the host OS runs and + * runs VirtualBox within it. The absense of IN_RC and IN_GUEST + * indicates that we're in HC. IN_RING0 indicates ring-0 (kernel) and + * IN_RING3 indicates ring-3. + * - Raw-mode Context (RC) - This is the special VMM context where we + * execute the guest code directly on the CPU. Kernel code is patched + * and execute in ring-1 instead of ring-0 (ring compression). Ring-3 + * code execute unmodified. Only VMMs use ring-1, so we don't need to + * worry about that (it's guarded against in the scheduler (EM)). We can + * in theory run ring-2 there, but since practially only only OS/2 uses + * ring-2, it is of little importance. The macro IN_RC indicates that + * we're compiling something for RC. + * Note! This used to be called GC (see below) earlier, so a bunch of RC + * things are using GC markers. + * - Guest Context (GC) - This is where the guest code is executed. When + * compiling, IN_GUEST indicates that it's for GC. IN_RING0 and + * IN_RING3 are also set when applicable, these are accompanied by + * IN_GUEST_R0 and IN_GUEST_R3 respecitively. + * - Intermediate context - This is a special memory context used within + * the world switchers (HC -> RC and back), it features some identity + * mapped code pages so we can switch to real mode if necessary. + * + */ + diff --git a/doc/VMM/PDMStorageScsi.odg b/doc/VMM/PDMStorageScsi.odg new file mode 100644 index 00000000..af912b80 Binary files /dev/null and b/doc/VMM/PDMStorageScsi.odg differ diff --git a/doc/VMM/PDMStorageScsi.png b/doc/VMM/PDMStorageScsi.png new file mode 100644 index 00000000..519c0488 Binary files /dev/null and b/doc/VMM/PDMStorageScsi.png differ diff --git a/doc/VMM/VMMContexts.odg b/doc/VMM/VMMContexts.odg new file mode 100644 index 00000000..5cd9f6b3 Binary files /dev/null and b/doc/VMM/VMMContexts.odg differ diff --git a/doc/VMM/VMMContexts.png b/doc/VMM/VMMContexts.png new file mode 100644 index 00000000..21f371be Binary files /dev/null and b/doc/VMM/VMMContexts.png differ diff --git a/doc/kBuild-tricks.txt b/doc/kBuild-tricks.txt new file mode 100644 index 00000000..ac6ceecd --- /dev/null +++ b/doc/kBuild-tricks.txt @@ -0,0 +1,62 @@ + +kBuild / VBox Build Tricks +========================== + + +Introduction +------------ + +This document is written in reStructuredText (rst) which just happens to +be used by Python, the primary language for this revamp. For more information +on reStructuredText: http://docutils.sourceforge.net/rst.html + + +Changing the output directory +----------------------------- + +When switch between different VBox build settings it can be nice to have +different output directories to avoid having to rebuild the whole source tree +everything. One typical example is hardening, another is guest additions using +crossbuild gcc w/ SDK. The latter is is simpler so that's the first example: + +.. code:: makefile + + ifdef VBOX_WITH_COMPATIBLE_LINUX_GUEST_PACKAGE + PATH_OUT_BASE = $(PATH_ROOT)/add-out + endif + +The following example is the typical developer setup, i.e. disable hardening by +default but respect command line overrides (kmk VBOX_WITH_HARDENING=1): + +.. code:: make + + VBOX_WITH_HARDENING := + ifeq ($(VBOX_WITH_HARDENING),) + VBOX_WITHOUT_HARDENING=1 + else + PATH_OUT_BASE = $(PATH_ROOT)/hard-out + endif + + +Share tools download directory between trunk and branches +--------------------------------------------------------- + +To avoid filling up your disk with unnecessary tool zip and tar.gz files, set +the FETCHDIR variable in LocalConfig.kmk to point to a common directory for all +VBox checkouts. + +.. code:: make + + FETCHDIR = $(HOME)/Downloads/FetchDir + + +----- + +.. [1] no such footnote + + +----- + +:Status: $Id: kBuild-tricks.txt $ +:Copyright: Copyright (C) 2006-2020 Oracle Corporation. + diff --git a/doc/manual/.scm-settings b/doc/manual/.scm-settings new file mode 100644 index 00000000..96054dca --- /dev/null +++ b/doc/manual/.scm-settings @@ -0,0 +1,33 @@ +# $Id: .scm-settings $ +## @file +# Source code massager settings for the manual. +# + +# +# Copyright (C) 2010-2022 Oracle and/or its affiliates. +# +# This file is part of VirtualBox base platform packages, as +# available from https://www.virtualbox.org. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation, in version 3 of the +# License. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# SPDX-License-Identifier: GPL-3.0-only +# + + +/string.xsl: --external-copyright --no-convert-tabs +/titlepage-htmlhelp.xml: --external-copyright --no-convert-tabs + +--filter-out-dirs /texfiles/. + diff --git a/doc/manual/Config.kmk b/doc/manual/Config.kmk new file mode 100644 index 00000000..d3e82ef0 --- /dev/null +++ b/doc/manual/Config.kmk @@ -0,0 +1,421 @@ +# $Id: Config.kmk $ +## @file +# kBuild Configuration file for the manual. +# + +# +# Copyright (C) 2010-2022 Oracle and/or its affiliates. +# +# This file is part of VirtualBox base platform packages, as +# available from https://www.virtualbox.org. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation, in version 3 of the +# License. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# SPDX-License-Identifier: GPL-3.0-only +# + +ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED +VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED = 1 + +# Include the top-level configure file. +ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED + include $(PATH_ROOT)/Config.kmk +endif + + +# +# Globals. +# + +# Source location. +VBOX_PATH_MANUAL_SRC := $(PATH_ROOT)/doc/manual +# Output location. +VBOX_PATH_MANUAL_OUTBASE := $(PATH_OBJ)/manual + +## List of refentry files (manpages). +VBOX_MANUAL_XML_REFENTRY_FILES := \ + man_VBoxManage-common.xml \ + man_VBoxManage-list.xml \ + man_VBoxManage-showvminfo.xml \ + man_VBoxManage-registervm.xml \ + man_VBoxManage-unregistervm.xml \ + man_VBoxManage-createvm.xml \ + man_VBoxManage-modifyvm.xml \ + man_VBoxManage-snapshot.xml \ + man_VBoxManage-clonevm.xml \ + man_VBoxManage-movevm.xml \ + man_VBoxManage-encryptvm.xml \ + man_VBoxManage-startvm.xml \ + man_VBoxManage-controlvm.xml \ + man_VBoxManage-import.xml \ + man_VBoxManage-export.xml \ + man_VBoxManage-mediumio.xml \ + man_VBoxManage-sharedfolder.xml \ + man_VBoxManage-dhcpserver.xml \ + man_VBoxManage-debugvm.xml \ + man_VBoxManage-extpack.xml \ + man_VBoxManage-unattended.xml \ + man_VBoxManage-cloud.xml \ + man_VBoxManage-cloudprofile.xml \ + man_VBoxManage-signova.xml \ + man_VBoxManage-modifynvram.xml \ + man_VBoxManage-hostonlynet.xml \ + man_VBoxManage-updatecheck.xml \ + man_VBoxManage-discardstate.xml \ + man_VBoxManage-adoptstate.xml \ + man_VBoxManage-closemedium.xml \ + man_VBoxManage-storageattach.xml \ + man_VBoxManage-storagectl.xml \ + man_VBoxManage-bandwidthctl.xml \ + man_VBoxManage-showmediuminfo.xml \ + man_VBoxManage-createmedium.xml \ + man_VBoxManage-modifymedium.xml \ + man_VBoxManage-clonemedium.xml \ + man_VBoxManage-mediumproperty.xml \ + man_VBoxManage-encryptmedium.xml \ + man_VBoxManage-checkmediumpwd.xml \ + man_VBoxManage-convertfromraw.xml \ + man_VBoxManage-setextradata.xml \ + man_VBoxManage-getextradata.xml \ + man_VBoxManage-setproperty.xml \ + man_VBoxManage-usbfilter.xml \ + man_VBoxManage-guestproperty.xml \ + man_VBoxManage-guestcontrol.xml \ + man_VBoxManage-metrics.xml \ + man_VBoxManage-natnetwork.xml \ + man_VBoxManage-hostonlyif.xml \ + man_VBoxManage-usbdevsource.xml + +## List of user manual XML files. +VBOX_MANUAL_XML_FILES = \ + UserManual.xml \ + user_Preface.xml \ + user_Introduction.xml \ + user_Installation.xml \ + user_BasicConcepts.xml \ + user_GuestAdditions.xml \ + user_Storage.xml \ + user_Networking.xml \ + user_Frontends.xml \ + user_VBoxManage.xml \ + user_AdvancedTopics.xml \ + user_Technical.xml \ + user_VirtualBoxAPI.xml \ + user_Troubleshooting.xml \ + user_Security.xml \ + user_KnownIssues.xml \ + user_ChangeLog.xml \ + user_ThirdParty.xml \ + user_PrivacyPolicy.xml \ + user_Glossary.xml \ + oracle-accessibility-ohc-en.xml \ + oracle-diversity.xml \ + oracle-support-en.xml + +## List of user manual XML files common for all languages. +VBOX_MANUAL_XML_FILES_COMMON = \ + $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml + + +# Tool locations. +ifndef VBOX_OSE + # use docbook from our tools directory + VBOX_PATH_DOCBOOK ?= $(KBUILD_DEVTOOLS)/common/DocBook/v1.69.1 + VBOX_PATH_DOCBOOK_DTD ?= $(KBUILD_DEVTOOLS)/common/docbook-xml/v4.5 +else + # use docbook of the build host + VBOX_PATH_DOCBOOK ?= /usr/share/xml/docbook/stylesheet/docbook-xsl + VBOX_PATH_DOCBOOK_DTD ?= /usr/share/xml/docbook/schema/dtd/4.5 +endif +VBOX_XML_CATALOG ?= $(VBOX_PATH_MANUAL_OUTBASE)/vbox-doc.cat +VBOX_XML_CATALOG_DOCBOOK ?= $(VBOX_PATH_MANUAL_OUTBASE)/docbook.cat +VBOX_XML_CATALOG_MANUAL ?= $(VBOX_PATH_MANUAL_OUTBASE)/manual.cat +VBOX_XML_ENTITIES ?= $(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent + +# xsltproc with the catalog trick if applicable (set XML_DEBUG_CATALOG to +# non-zero value to debug file/uri resolution through the catalogs, using +# one of them is enough, they show the same information). +ifdef VBOX_XML_CATALOG + VBOX_XSLTPROC_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(if $(2),$(2),$(VBOX_XML_CATALOG))" -E "XML_DEBUG_CATALOG=" $1 -- \ + $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)" + VBOX_XMLLINT_WITH_CAT = $(REDIRECT) -E "XML_CATALOG_FILES=$(VBOX_XML_CATALOG)" -E "XML_DEBUG_CATALOG=" -- \ + $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)" +else + VBOX_XSLTPROC_WITH_CAT = $(if $(1), $(REDIRECT) $1 --,) $(VBOX_XSLTPROC) --nonet --xinclude $(VBOX_XSLTPROC_OPTS) \ + --path "$(VBOX_PATH_MANUAL_OUTBASE)" + VBOX_XMLLINT_WITH_CAT = $(VBOX_XMLLINT) --nonet --xinclude --noout $(VBOX_XMLLINT_OPTS) --path "$(VBOX_PATH_MANUAL_OUTBASE)" +endif + + +# File name of the generated stylesheet for transforming xref elements into +# name user manual sections. +VBOX_XML_XREF_TO_TEXT = xref-to-text.xsl + +## +# Emits rules for preprocessing refentry sources (applying remarks element), +# and for producing the actual man pages. +# +# $(evalcall2 def_vbox_refentry_preprocess_for_manpage) +# @param 1 The output directory. +# @param 2 The XML file name (no path). +# @param 3 The XML file with full path. +# @param 4 Non-empty if xrefs to replace. +# @param 5 Language code (optional if $4 is empty). +define def_vbox_refentry_preprocess_for_manpage +$(1)/$(2): \ + $(3) \ + $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \ + $(if $(4), $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT),) \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ + $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) + $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) + $$(QUIET)$$(RM) -f "$$@" + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \ + "$$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl" $$< +ifneq ($(4),) + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@.tmp \ + $$(VBOX_PATH_MANUAL_OUTBASE)/$(5)/$$(VBOX_XML_XREF_TO_TEXT) $$@ + $$(QUIET)$$(MV) -f -- "$$@.tmp" "$$@" +endif +if defined(VBOX_HAVE_XMLLINT) && "$(USER)" == "bird" # Effing stuff happends on build servers, probably kmk related... + $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@ +endif +endef + +## +# Generate a single header file containing everything (no C file). +# +# @param 1 Destination file. +# @param 2 Full source file path. +# @param 3 Help infix. +define def_vbox_single_refentry_to_h +$(1).ts +| $(1): \ + $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) \ + $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) \ + $(2) \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $(MAKEFILE) | $$$$(dir $$$$@) + $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(filter %.xml,$$^),$$(patsubst %.ts,%,$$@)) + $$(QUIET)$$(APPEND) -tn "$$@" \ + '/* Autogenerated by $$(notdir $$(filter %.xsl,$$^)), do not edit! */' \ + '' \ + '#include ' \ + '#include ' \ + '' \ + 'typedef enum HELP_CMD_$(3)' \ + '{' \ + ' HELP_CMD_INVALID = 0,' + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") \ + --stringparam 'g_sMode' 'cmd' $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) $(2) + $$(QUIET)$$(APPEND) -n "$$@" \ + ' HELP_CMD_END' \ + '} HELP_CMD_VBOXMANAGE;' \ + '' + $$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") \ + --stringparam 'g_sMode' 'subcmd' $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) $(2) + $$(QUIET)$$(APPEND) -n "$$@" \ + '' + $$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -a+to "$$@") $$(VBOX_DOCBOOK_REFENTRY_TO_C_HELP) $(2) + $$(QUIET)$$(APPEND) -n "$$@" \ + '' \ + '/* end of file */' + $$(QUIET)$$(CP) --changed -- "$$@" "$$(patsubst %.ts,%,$$@)" +endef + + +# +# Make sure we've got a rule to make the output directory. +# +BLDDIRS += $(VBOX_PATH_MANUAL_OUTBASE) + + +ifdef VBOX_XML_CATALOG + # Trickery for making sure that the file:/// URLs end up with exactly 3 + # slashes, both on Unixy OSes (where the absolute path contributes one more, + # and some very picky xsltproc variants are floating around which do not work + # quite correctly with file:////, doing incorrect filename transformations) + # and on Windows (where the absolute path starts with a drive letter). + VBOX_FILE_URL_MAYBE_SLASH = $(if $(eq $(KBUILD_HOST),win),/,) + # + # To avoid network I/O for fetching DTDs, we generate catalogs mapping the public + # entity IDs to local files. (Obviously, only done when we have local files.) + # + # Create a catalog file for xsltproc that points to docbook catalog. + $(VBOX_XML_CATALOG): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@) + $(call MSG_L1,Creating catalog $@) + $(QUIET)$(APPEND) -tn "$@" \ + '' \ + '' \ + '' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + '' + + # Create a docbook catalog file for xsltproc that points to the local docbook files. + $(VBOX_XML_CATALOG_DOCBOOK): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@) + $(call MSG_L1,Creating catalog $@) + $(QUIET)$(APPEND) -tn "$@" \ + '' \ + '' \ + '' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + '' + + # Create a docbook catalog file for xsltproc that points to the local manual files in non-default locations + $(VBOX_XML_CATALOG_MANUAL): $(VBOX_PATH_MANUAL_SRC)/Config.kmk | $$(dir $$@) + $(call MSG_L1,Creating catalog $@) + $(QUIET)$(APPEND) -tn "$@" \ + '' \ + '' \ + '' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + $(foreach x,user_VBoxManage_CommandsOverview.xml user_isomakercmd-man.xml $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES) man_VBoxHeadless.xml man_vboximg-mount.xml)\ + ,' ' \$(NLTAB)$(TAB)) \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + ' ' \ + '' + +endif # VBOX_XML_CATALOG + + +ifdef VBOX_XML_ENTITIES + + $(VBOX_XML_ENTITIES): $(VBOX_PATH_MANUAL_SRC)/Config.kmk $(VBOX_VERSION_STAMP) | $$(dir $$@) + $(call MSG_L1,Creating entities $@) + $(QUIET)$(APPEND) -tn "$@" \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + 'Oracle VM VirtualBox'\'' >' \ + '' \ + '' \ + '' \ + '' + +endif # VBOX_XML_ENTITIES + + +## Emit rules to produce stylesheet for translating cross references (xref) +# to user manual chapters and sections in the man pages and --help output. +# +# Note! This requires processing UserManual.xml as a single document in order +# to get the correct chapter and section numbering, so we use a catalog +# file to replace the generated XML documents it includes with a dummy +# one. This reduces the dependencies and recipies we require to build +# VBoxManage and the RTIsoMaker (w/ derivatives). +# $(evalcall2 def_vbox_xref_to_text) +# @param 1 Language code. +define def_vbox_xref_to_text +$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \ ++ $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat: \ + $$(VBOX_PATH_MANUAL_SRC)/$(1)/docbook-refentry-link-replacement-xsl-gen.xsl \ + $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-link-replacement-xsl-gen.xsl \ + $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/en_US/,$$(VBOX_MANUAL_XML_FILES)) \ + $$(VBOX_MANUAL_XML_FILES_COMMON) \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $$(VBOX_XML_ENTITIES) \ + | $$$$(dir $$$$@) + $$(call MSG_L1,Creating stylesheet $$@) + $$(QUIET)$$(APPEND) -nt "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat" \ + '' \ + '' \ + '' \ + $$(foreach x,user_VBoxManage_CommandsOverview.xml user_isomakercmd-man.xml $$(addprefix user_,$$(VBOX_MANUAL_XML_REFENTRY_FILES) man_VBoxHeadless.xml man_vboximg-mount.xml)\ + ,' ' \$$(NLTAB)$$(TAB)) \ + ' ' \ + '' + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT,,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat) \ + --stringparam 'g_sMode' 'first' --output "$$@" "$$<" $$(filter %UserManual.xml,$$^) + # Using en-US version as section and chapter names until user manual is translated as well + $$(foreach x, $$(VBOX_MANUAL_XML_REFENTRY_FILES)\ + ,$$(NLTAB)$$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT, -ato "$$@") --stringparam 'g_sMode' 'append' \ + "$$<" "$$(VBOX_PATH_MANUAL_SRC)/en_US/$$(x)") + $$(QUIET)$$(APPEND) -n "$$@" '' '' + +BLDDIRS += $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/ +endef +# generate rules for $(VBOX_XML_XREF_TO_TEXT) +$(evalcall2 def_vbox_xref_to_text,en_US) + +# +# Generate rules for editing the refentry to C/H style sheets. +# +VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-C-help.xsl + +VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-H-help.xsl + +# +# Manual dependency. +# +$(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-C-help.xsl: $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl + + +endif # !defined(VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED) + diff --git a/doc/manual/Makefile.kmk b/doc/manual/Makefile.kmk new file mode 100644 index 00000000..ea897964 --- /dev/null +++ b/doc/manual/Makefile.kmk @@ -0,0 +1,1004 @@ +# $Id: Makefile.kmk $ +## @file +# Sub-Makefile for the VirtualBox User Manual, SDK reference and other manuals. +# + +# +# Copyright (C) 2006-2022 Oracle and/or its affiliates. +# +# This file is part of VirtualBox base platform packages, as +# available from https://www.virtualbox.org. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation, in version 3 of the +# License. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# SPDX-License-Identifier: GPL-3.0-only +# + +# +# This slightly messy makefile transforms the DocBook XML source for the +# user manual into presentation output. We support two targets: +# +# -- UserManual.pdf, generated by LaTex +# +# -- VirtualBox.chm +# +# Both files end up in PATH_STAGE_BIN. +# +# Both targets indirectly depend on the XML files in this directory; +# "indirectly" because we first copy them to PATH_TARGET and hack them +# up a bit for variable substitution and such (see below). +# The toolchains are roughly like this: +# +# -- PDF file via Apache FOP: pre-process the XML files in PATH_TARGET, +# then create a .FO file (another XML format for "formatted objects") +# via xsltproc, then feed the .FO file to Apache FOP to create the PDF. +# +# -- PDF file via LaTeX: pre-process the XML files in PATH_TARGET, then +# run our custom "dblatex" perl script on UserManual.xml, which parses +# the XML (using the Perl SAX parsers) and dumps a matching LaTeX file +# to UserManual.tex. This is then regularly processed by pdflatex to +# generate PDF. +# +# -- CHM file: again, pre-process the XML files in PATH_TARGET, then use +# xsltproc to create a .HHP file for the Microsoft Help Compiler, then +# feed that file to it. +# + +SUB_DEPTH = ../.. +include $(KBUILD_PATH)/subheader.kmk + +ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED + include $(PATH_SUB_CURRENT)/Config.kmk +endif + + +# +# Globals +# + +# Error out if someone tries to override old globals. +ifdef HTMLHELPOPTS + $(error HTMLHELPOPTS was renamed to VBOX_HTMLHELP_OPTS!) +endif +ifdef DOCBOOKPATH + $(error DOCBOOKPATH was renamed to VBOX_PATH_DOCBOOK!) +endif +ifdef DOCBOOKPATH + $(error DOCBOOKPATH was renamed to VBOX_PATH_DOCBOOK!) +endif +ifdef XML_CATALOG + $(error XML_CATALOG was renamed to VBOX_XML_CATALOG!) +endif +ifdef XML_CATALOG_DOCBOOK + $(error XML_CATALOG_DOCBOOK was renamed to VBOX_XML_CATALOG_DOCBOOK!) +endif +ifdef PDFLATEX_INTERACTION + $(error PDFLATEX_INTERACTION was renamed to VBOX_PDFLATEX_INTERACTION!) +endif +ifdef PDFLATEX + $(error PDFLATEX was renamed to VBOX_PDFLATEX_CMD!) +endif +ifdef HHC + $(error HHC was renamed to VBOX_HHC!) +endif + +VBOX_QHELP_OUTPUT_FILES = \ + UserManual.qch \ + UserManual.qhc + + # VBOX_PDFLATEX_INTERACTION = errorstopmode - Use this when you wants to figure out build failures + # without catting the log a million times. +VBOX_PDFLATEX_INTERACTION ?= batchmode +ifeq ($(KBUILD_HOST),win) + ifndef VBOX_PDFLATEX + VBOX_PDFLATEX := $(firstword $(rsort $(wildcard $(KBUILD_DEVTOOLS)/win.x86/miktex-portable/*/miktex/bin/pdflatex.exe))) + ifneq ($(VBOX_PDFLATEX),) + VBOX_PDFLATEX_CMD = $(VBOX_PDFLATEX) -halt-on-error -interaction $(VBOX_PDFLATEX_INTERACTION) + endif + endif + ifndef VBOX_PDFLATEX + # Tell MiKTeX to automatically download packages if system wide install. + VBOX_PDFLATEX := pdflatex + VBOX_PDFLATEX_CMD = $(VBOX_PDFLATEX) -halt-on-error -interaction $(VBOX_PDFLATEX_INTERACTION) --enable-installer + endif +else + VBOX_PDFLATEX ?= pdflatex + VBOX_PDFLATEX_HALT = $(shell ( $(VBOX_PDFLATEX) -version | head -1 | grep 141592 > /dev/null ) && echo -halt-on-error ) + VBOX_PDFLATEX_CMD = pdflatex $(VBOX_PDFLATEX_HALT) -interaction $(VBOX_PDFLATEX_INTERACTION) +endif + +# Windows HTML Help Workshop compiler (stupid thing always returns an error!) +VBOX_HHC = -$(EXEC_X86_WIN32) $(VBOX_PATH_HTML_HELP_WORKSHOP)/hhc.exe + + +# Additional xsltproc options when generating +VBOX_HTMLHELP_OPTS ?= + +# SDK related globals. +VBOX_MANUAL_APIREF_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef_apiref.xml +VBOX_DOC_XIDL_SRC = $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl +VBOX_DOC_XIDL_SRC_TMP = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.xidl.tmp + + +# +# Targets +# + +BLDDIRS += $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/, $(VBOX_MANUAL_LANGUAGES)) + +if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK)) + if defined(VBOX_ONLY_SDK) || defined(VBOX_WITH_DOCS_SDKREF) + INSTALLS += VBox-docs-sdkref + endif + + ifdef VBOX_WITH_DOCS_HTML + INSTALLS += VBox-docs-usermanual-html + VBOX_PATH_BIN_HTML = $(PATH_STAGE_BIN)/UserManual-html.zip + else # Do not build html. + VBOX_PATH_BIN_HTML = + endif + + ifdef VBOX_WITH_DOCS_CHM + INSTALLS += VBox-docs-usermanual-chm + VBOX_PATH_BIN_CHM = $(PATH_STAGE_BIN)/VirtualBox.chm + else # Do not build chm. + VBOX_PATH_BIN_CHM = + endif + + ifdef VBOX_WITH_DOCS_QHELP + INSTALLS += VBox-docs-usermanual-qhc + INSTALLS += VBox-docs-usermanual-qch + ifdef VBOX_WITH_QT6 + USES += qt6 + QHELPGENERATOR = $(PATH_TOOL_QT6_LIBEXEC)/qhelpgenerator + else # Qt5 + USES += qt5 + QHELPGENERATOR_VERSION_MINOR = $(shell $(REDIRECT) -E QT_QPA_PLATFORM_PLUGIN_PATH=$(PATH_SDK_QT5)/plugins -- $(PATH_TOOL_QT5_BIN)/qhelpgenerator -v 2>/dev/null | $(SED) -ne 's/.*(Qt [1-9][0-9]*\.\([1-9][0-9]*\)\.[1-9][0-9]*).*$$/\1/p') + QHELPGENERATOR = $(PATH_TOOL_QT5_BIN)/$(if-expr $(QHELPGENERATOR_VERSION_MINOR) >= 12,qhelpgenerator,qcollectiongenerator) + endif + endif + ifdef VBOX_WITH_DOCS_QHELP_PACKING + VBOX_PATH_BIN_QHELP = $(PATH_STAGE_BIN)/UserManual.qch + VBOX_PATH_BIN_QHELP += $(PATH_STAGE_BIN)/UserManual.qhc + else # Do not install/pack qhelp. + VBOX_PATH_BIN_QHELP = + endif + + + ifndef VBOX_ONLY_SDK + VBOX_MANUAL_PACK += \ + $(PATH_STAGE_BIN)/UserManual.pdf \ + $(VBOX_PATH_BIN_HTML) \ + $(VBOX_PATH_BIN_CHM) \ + $(VBOX_PATH_BIN_QHELP) + INSTALLS += VBox-docs-usermanual + + ifdef VBOX_WITH_DOCS_TRANSLATIONS + INSTALLS += VBox-docs-usermanual-l10n + VBOX_MANUAL_PACK += \ + $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/UserManual_$(f).pdf) + ifdef VBOX_WITH_DOCS_CHM + INSTALLS += VBox-docs-usermanual-l10n-chm + VBOX_MANUAL_PACK += \ + $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm) + endif + endif + endif # !VBOX_ONLY_SDK + + ifdef VBOX_WITH_DOCS_ACCESSIBILITY + INSTALLS += VBox-docs-accessibility + INSTALLS += VBox-docs-accessibility-html + endif + + ifdef VBOX_ONLY_DOCS + PACKING += $(PATH_STAGE_BIN)/VBoxDocumentation.zip + endif + + ifdef VBOX_WITH_DOCS_TRANSLATIONS + VBOX_MANUAL_LANGUAGES += $(VBOX_MANUAL_ADD_LANGUAGES) + endif + +$(foreach lang,$(VBOX_MANUAL_LANGUAGES), \ + $(eval VBOX_MANUAL_XML_FILES_GENERATED_$$(lang) := \ + $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ + $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/overview_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ + $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_man_VBoxHeadless.xml \ + $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_man_vboximg-mount.xml \ + $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_isomakercmd-man.xml)) + + VBOX_SDKREF_XML_FILES = \ + SDKRef.xml + + VBOX_ACCESSIBILITY_XML_FILES = \ + Accessibility.xml + + + # Wildcard the images path for every supported language + $(foreach f,$(VBOX_MANUAL_LANGUAGES), \ + $(eval VBOX_MANUAL_PNG_FILES_$$(f) := $$(patsubst $$(VBOX_PATH_MANUAL_SRC)/$$(f)/%,%,$$(wildcard $$(VBOX_PATH_MANUAL_SRC)/$$(f)/images/*.png)))) + + VBOX_MANUAL_TEX_UNICODE_FILES = \ + $(wildcard $(VBOX_PATH_MANUAL_SRC)/texfiles/unicode/*) + + VBOX_MANUAL_LATEX_FILES_TARGET = \ + $(addprefix UserManual.,aux log out toc tex) + + VBOX_SDKREF_LATEX_FILES_TARGET = \ + $(addprefix SDKRef.,aux log out toc tex) + + VBOX_ACCESSIBILITY_LATEX_FILES_TARGET = \ + $(addprefix Accessibility.,aux log out toc tex) + + BLDDIRS += \ + $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/,\ + $(addsuffix /images, $(VBOX_MANUAL_LANGUAGES)) \ + $(addsuffix /html-single, $(VBOX_MANUAL_LANGUAGES)) \ + $(addsuffix /html-chunks, $(VBOX_MANUAL_LANGUAGES)) \ + $(addsuffix /qhelp, $(VBOX_MANUAL_LANGUAGES)) \ + $(addsuffix /qhelp/images, $(VBOX_MANUAL_LANGUAGES)) \ + $(addsuffix /HTMLHelp, $(VBOX_MANUAL_LANGUAGES)) \ + $(addsuffix /HTMLHelp/images, $(VBOX_MANUAL_LANGUAGES)) \ + ) + + # Explicit cleaning has some overlap with default cleaning rules, since this + # Makefile is using very complex conditionals for selectively creating + # specific files, and not everyone remembers to use the same with "kmk clean". + OTHER_CLEAN += \ + $(VBOX_XML_CATALOG) \ + $(VBOX_XML_CATALOG_DOCBOOK) \ + $(VBOX_XML_CATALOG_MANUAL) \ + $(VBOX_XML_ENTITIES) \ + $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/, \ + $(VBOX_XML_XREF_TO_TEXT) \ + $(VBOX_XML_XREF_TO_TEXT).cat \ + $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \ + $(VBOX_MANUAL_XML_REFENTRY_FILES) \ + $(patsubst man_%,%.1,$(basename $(VBOX_MANUAL_XML_REFENTRY_FILES))) \ + man_VBoxHeadless.xml \ + user_man_VBoxHeadless.xml \ + man_vboximg-mount.xml \ + user_man_vboximg-mount.xml \ + isomakercmd-man.xml \ + user_isomakercmd-man.xml \ + $(VBOX_MANUAL_LATEX_FILES_TARGET) \ + $(VBOX_MANUAL_PNG_FILES_$(lang)) \ + $(notdir $(VBOX_MANUAL_TEX_UNICODE_FILES)) \ + $(addprefix HTMLHelp/,$(VBOX_MANUAL_PNG_FILES_$(lang))) \ + $(addprefix qhelp/, $(VBOX_MANUAL_PNG_FILES_$(lang))) \ + html-single/UserManual.html \ + $(addprefix qhelp/, UserManual.qhp UserManual.qhcp $(VBOX_QHELP_OUTPUT_FILES)) \ + $(addprefix HTMLHelp/, index.html go01.html) \ + $(addprefix qhelp/, index.html go01.html) \ + $(addprefix html-chunks/, index.html go01.html) \ + $(foreach n,01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 \ + ,html-chunks/ch$(n).html \ + html-chunks/re$(n).html \ + HTMLHelp/ch$(n).html \ + HTMLHelp/re$(n).html \ + $(foreach d2,0 1 2 3 4 5 6 7 8 9,$(foreach d1,0 1 2 3 4 5 6 7 8 9,HTMLHelp/ch$(n)s$(d2)$(d1).html)) \ + qhelp/ch$(n).html \ + qhelp/re$(n).html \ + $(foreach d2,0 1 2 3 4 5 6 7 8 9,$(foreach d1,0 1 2 3 4 5 6 7 8 9,qhelp/ch$(n)s$(d2)$(d1).html)) ) \ + $(foreach n,a b c \ + ,html-chunks/ap$(n).html \ + HTMLHelp/ap$(n).html \ + $(foreach s,01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20,HTMLHelp/ap$(n)s$(s).html) \ + qhelp/ap$(n).html \ + $(foreach s,01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20,qhelp/ap$(n)s$(s).html) ) \ + $(foreach n,01 02 03 04 05 \ + ,html-chunks/pr$(n).html \ + HTMLHelp/pr$(n).html \ + $(foreach s,01 02 03 04 05 06 07 08,HTMLHelp/pr$(n)s$(s).html) \ + qhelp/pr$(n).html \ + $(foreach s,01 02 03 04 05 06 07 08,qhelp/pr$(n)s$(s).html) ) \ + HTMLHelp/toc.hhc \ + HTMLHelp/htmlhelp.hhp \ + qhelp/toc.hhc \ + qhelp/htmlhelp.hhp \ + UserManual.pdf \ + VirtualBox.chm \ + $(VBOX_QHELP_OUTPUT_FILES) \ + ChangeLog.html \ + validatemanual.run \ + validateaccessibility.run \ + validatesdkref.run \ + )) \ + $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \ + $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \ + $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/UserManual_$(f).pdf) \ + $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(PATH_STAGE_BIN)/VirtualBox_$(f).chm) \ + $(PATH_STAGE_BIN)/UserManual.pdf \ + $(PATH_STAGE_BIN)/VirtualBox.chm \ + \ + $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \ + $(VBOX_SDKREF_LATEX_FILES_TARGET) \ + SDKRef.pdf \ + ) \ + $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf \ + \ + $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \ + $(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET) \ + html-single/Accessibility.html \ + Accessibility.pdf \ + ) \ + $(PATH_STAGE_BIN)/Accessibility.html \ + $(PATH_STAGE_BIN)/Accessibility.pdf \ + \ + $(VBOX_DOC_XIDL_SRC_TMP) \ + $(VBOX_MANUAL_APIREF_TMP) + +endif # if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK)) + +# +# target for installing UserManual.pdf +# +VBox-docs-usermanual_INST = $(INST_BIN) +VBox-docs-usermanual_MODE = a+r,u+w +VBox-docs-usermanual_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.pdf + +VBox-docs-usermanual-qhc_INST = $(INST_BIN) +VBox-docs-usermanual-qhc_MODE = a+r,u+w +VBox-docs-usermanual-qhc_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/qhelp/UserManual.qhc + +VBox-docs-usermanual-qch_INST = $(INST_BIN) +VBox-docs-usermanual-qch_MODE = a+r,u+w +VBox-docs-usermanual-qch_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/qhelp/UserManual.qch + +# +# target for installing translated UserManual_*.pdf +# +VBox-docs-usermanual-l10n_INST = $(INST_BIN) +VBox-docs-usermanual-l10n_MODE = a+r,u+w +VBox-docs-usermanual-l10n_SOURCES = $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$(f)/UserManual.pdf=>UserManual_$(f).pdf) + +# +# target for installing the chunked HTML docs +# +VBox-docs-usermanual-html_INST = $(INST_BIN) +VBox-docs-usermanual-html_MODE = a+r,u+w +VBox-docs-usermanual-html_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip=>UserManual-html.zip + +# +# target for installing VirtualBox.chm +# +VBox-docs-usermanual-chm_INST = $(INST_BIN) +VBox-docs-usermanual-chm_MODE = a+r,u+w +VBox-docs-usermanual-chm_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/VirtualBox.chm + +# +# target for installing translated VirtualBox_*.chm +# +VBox-docs-usermanual-l10n-chm_INST = $(INST_BIN) +VBox-docs-usermanual-l10n-chm_MODE = a+r,u+w +VBox-docs-usermanual-l10n-chm_SOURCES = $(foreach f,$(VBOX_MANUAL_ADD_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$(f)/VirtualBox.chm=>VirtualBox_$(f).chm) + +# +# target for installing SDKRef.pdf +# +VBox-docs-sdkref_INST = $(INST_SDK)docs/ +VBox-docs-sdkref_MODE = a+r,u+w +VBox-docs-sdkref_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.pdf + +# +# target for installing Accessibility.pdf +# +VBox-docs-accessibility_INST = $(INST_BIN) +VBox-docs-accessibility_MODE = a+r,u+w +VBox-docs-accessibility_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.pdf + +# +# target for installing Accessibility.html +# +VBox-docs-accessibility-html_INST = $(INST_BIN) +VBox-docs-accessibility-html_MODE = a+r,u+w +VBox-docs-accessibility-html_SOURCES = $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html + +if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK)) + +## +# Morph man pages into manual sections. +# $(evalcall2 def_vbox_refentry_to_user_sect1) +# @param 1 Language. +# @param 2 the refentry xml base file name. +# @param 3 the full refentry xml file path. +define def_vbox_refentry_to_user_sect1 +$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): $(3) \ + $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ + $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) + $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(filter %.xml,$$^),$$@) + $$(QUIET)$$(RM) -f "$$@" + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $$< +endef +$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ +man_VBoxHeadless.xml \ +man_vboximg-mount.xml \ +, $(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),$(file),$(VBOX_PATH_MANUAL_SRC)/$(lang)/$(file)))) +$(foreach lang,$(VBOX_MANUAL_LANGUAGES) \ +,$(evalcall2 def_vbox_refentry_to_user_sect1,$(lang),isomakercmd-man.xml,$(PATH_ROOT)/src/VBox/Runtime/common/fs/isomakercmd-man.xml)) + + +# Generates the VBoxManage command overview include file (shared between +# languages) from the refsynopsisdiv section of the man pages. +$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)): \ + $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-overview.xsl \ + $$(patsubst overview_%,$$(VBOX_PATH_MANUAL_SRC)/en_US/%,$$(notdir $$@)) \ + $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ + $(VBOX_XML_ENTITIES) | $$(dir $$@) + $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) + $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output "$@" $< $(filter %.xml,$^) + + + + + +########################################################################################## +# +# Shared rules for PDF generation +# +########################################################################################## + +ifndef VBOX_OSE +# copy ucs.sty and related files +$(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/ucs.sty): + $(call MSG_L1,Copying unicode support for LaTeX) + $(QUIET)$(INSTALL_STAGING) -m0644 -- $(VBOX_MANUAL_TEX_UNICODE_FILES) "$(@D)" +endif + +# copy the PNG files. +# Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. +define def_vbox_cp_images_pdf +local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) +$(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ + $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) + $$(call MSG_L1,Copying temporary $$< => $$@) + $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' +endef +$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_cp_images_pdf)) + + +########################################################################################## +# +# UserManual.pdf +# +########################################################################################## + + +# Generate PDF from LaTeX +# Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. +define def_vbox_usermanual_tex_to_pdf +local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) +$$(out_dir)/UserManual.pdf: \ + $$(out_dir)/UserManual.tex \ + $$(if $$(VBOX_OSE),,$$(out_dir)/ucs.sty) \ + $$(addprefix $$(out_dir)/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) | $$$$(dir $$$$@) +# PDF generation via Latex: generate the .tex file + $$(call MSG_L1,pdflatex $$< (four passes) -> $$@) + $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex + $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex + $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex + $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex + $$(QUIET)$$(SED) -ne '/Warning: Hyper reference/p' $$(basename $$<).log + $$(QUIET)$$(SED) -n \ + -e '/Warning: There were \(undefined references\|multiply-defined labels\)/{p; q 1}' \ + $$(basename $$@).log + $$(call MSG_L1,Fresh LaTeX-generated PDF is now at $$@) +endef +$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_tex_to_pdf)) + +# Generate LaTeX from XML +# Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. +define def_vbox_usermanual_xml_to_tex +local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) +$$(out_dir)/UserManual.tex: \ + $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ + $$(VBOX_MANUAL_XML_FILES_COMMON) \ + $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ + $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ + $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ + $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@) + $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(firstword $$(filter %.xml,$$^)),$$@) + $$(QUIET)$$(RM) -f $$(addprefix $$(@D)/,$$(VBOX_MANUAL_LATEX_FILES_TARGET)) +# generate TeX source from processed docbook and store it in UserManual.tex.tmp; +# pass current language to xsltproc in TARGETLANG variable + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG $(lang) \ + -o $$@.tmp $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $$< +# for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word; +# the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections + $$(QUIET)$$(SED) \ + -e 's|^\\QUOTE{}|\\OQ{}|g' \ + -e 's|\(\W\)\\QUOTE{}|\1\\OQ{}|g' \ + -e 's|\(\w\)\\QUOTE{}|\1\\CQ{}|g' \ + --output $$@ $$@.tmp + $$(QUIET)$$(RM) -f $$@.tmp +endef +$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_tex)) + +# Useful aliases +usermanual UserManual.pdf:: $(PATH_STAGE_BIN)/UserManual.pdf + +debug-usermanual: + $(MAKE) --pretty-command-printing -j1 VBOX_PDFLATEX_INTERACTION=errorstopmode $(PATH_STAGE_BIN)/UserManual.pdf + +# +# Generate rules for validating the UserManual.xml. These are invoked +# automatically at build time, but can also be manually invoked via the +# 'validatemanual' and 'validatemanual_' aliases. +# +define def_vbox_validate_xml +validatemanual_$(lang):: $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run +$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run: \ + $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ + $$(VBOX_MANUAL_XML_FILES_COMMON) \ + $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ + $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@) + $$(call MSG_L1,Validating $$<) + $$(QUIET)$$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$< + $$(QUIET)$$(APPEND) -t "$$@" "done" +endef +$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_validate_xml)) + + +# Handy aliases. +validatemanual:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),validatemanual_$(lang)) + + + +# +# SDKRef.pdf +# + +# Replace tags in VirtualBox.xidl. +$(VBOX_DOC_XIDL_SRC_TMP): $(VBOX_DOC_XIDL_SRC) $(MAKEFILE_CURRENT) | $$(dir $$@) + $(call MSG_L1,Generating $@) + $(QUIET)$(SED) -e 's|@a \+\(\w\+\)|\1|g' \ + -e 's|@c \+\(\w\+\)|\1|g' \ + --output $@ $< + +# Generate SDKRef_apiref.xml as a docbook file excerpt that will be referenced from the SDKRef.xml. +$(VBOX_MANUAL_APIREF_TMP): $(VBOX_PATH_MANUAL_SRC)/xidl2docbook.xsl $(VBOX_DOC_XIDL_SRC_TMP) + $(call MSG_L1,Generating $@) + $(QUIET)$(VBOX_XSLTPROC) $(VBOX_XSLTPROC_OPTS) --xinclude --nonet -o $@ $< $(VBOX_DOC_XIDL_SRC_TMP) + +# Turn SDKRef.xml into LaTeX. +$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex: \ + $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \ + $(VBOX_MANUAL_APIREF_TMP) \ + $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ + $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run,) \ + $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ + $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) + $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) + $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_SDKREF_LATEX_FILES_TARGET)) +# generate TeX source from processed docbook and store it in SDKRef.tex.tmp + $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \ + -o $@.tmp $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $< +# for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word; +# the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections + $(QUIET)$(SED) \ + -e 's|^\\QUOTE{}|\\OQ{}|g' \ + -e 's|\(\W\)\\QUOTE{}|\1\\OQ{}|g' \ + -e 's|\(\w\)\\QUOTE{}|\1\\CQ{}|g' \ + --output $@ $@.tmp + $(QUIET)$(RM) -f $@.tmp + +# Turn SDKRef.tex into a PDF. +$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.pdf: \ + $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex \ + $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ucs.sty) \ + $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) | $$(dir $$@) + $(call MSG_L1,pdflatex $< (three passes)) + $(QUIET)$(REDIRECT) -C $( $$@) + $$(QUIET)$$(RM) -f $$@ + $$(QUIET)$$(VBOX_HHC) $$(subst /,\\,$$<) + $$(call MSG_L1,Fresh CHM is now at $$@) + endef + $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_hhp_to_chm)) + + # Generate HHP from XML + # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. + define def_vbox_usermanual_xml_to_hhp + local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) + $$(out_dir)/HTMLHelp/htmlhelp.hhp: \ + $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ + $$(VBOX_MANUAL_XML_FILES_COMMON) \ + $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ + $$(VBOX_DOCBOOK_HTMLHELP_FORMATCFG) \ + $$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \ + $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ + $$(VBOX_XML_ENTITIES) | $$$$(dir $$$$@) + $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) + $$(QUIET)$$(RM) -f $$@ + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$(@D)/ \ + --stringparam htmlhelp.chm \ + $$(subst /,\\,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/VirtualBox.chm) \ + $$(HTMLHELPOPTS) $$(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \ + $$< + endef + $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_hhp)) + + # copy the PNG files. + # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. + define def_vbox_cp_images_htmlhelp + local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp + $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ + $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) + $$(call MSG_L1,Copying temporary $$< => $$@) + $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' + endef + $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_htmlhelp))) + +endif # VBOX_WITH_DOCS_CHM + + +# Packing the docs into a zip file +$(PATH_STAGE_BIN)/VBoxDocumentation.zip: $(VBOX_MANUAL_PACK) + $(call MSG_L1,Packing documentation $@) + $(QUIET)$(RM) -f $@ + $(QUIET)$(REDIRECT) -C $(PATH_STAGE_BIN) -- $(VBOX_ZIP) -9 $@ $(notdir $^) + + +########################################################################################## +# +# UserManual.html +# +########################################################################################## +VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG = \ + $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \ + $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ + $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl + +$(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html: \ + $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \ + $(VBOX_MANUAL_XML_FILES_COMMON) \ + $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \ + $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ + $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \ + $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \ + $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ + $(VBOX_XML_ENTITIES) | $$(dir $$@) + $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) + $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \ + --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html \ + $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \ + $< + +VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG = \ + $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \ + $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ + $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl + +$(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html: \ + $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \ + $(VBOX_MANUAL_XML_FILES_COMMON) \ + $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \ + $(VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG) \ + $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ + $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \ + $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ + $(VBOX_XML_ENTITIES) | $$(dir $$@) + $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) + $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \ + --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \ + --stringparam chunk.section.depth 0 \ + $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \ + $< + +$(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip: \ + $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html \ + $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \ + $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) + $(call MSG_L1,Packing documentation $@) + $(QUIET)$(RM) -f $@ + $(QUIET)$(REDIRECT) -C $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ -- $(VBOX_ZIP) \ + -9 -r $@ html-single html-chunks $(VBOX_MANUAL_PNG_FILES_en_US) + +html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html +html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html +qhelp:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/qhelp/, $(VBOX_QHELP_OUTPUT_FILES)) +html-zip:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip + +# +# ChangeLog.html +# +# This XSLT rule formats en_US/user_ChangeLog.xml (which includes the actual change log +# contained in user_ChangeLogImpl.xml) as a standalone HTML file. +# +$(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html: \ + $(VBOX_PATH_MANUAL_SRC)/en_US/docbook-changelog-formatcfg.xsl \ + $(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_ChangeLog.xml \ + $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ + $(VBOX_XML_ENTITIES) | $$(dir $$@) + $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) + $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output "$@" "$<" $(filter %.xml,$^) + $(call MSG_L1,Fresh ChangeLog.html is now at $@) + +cl-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html + + + +endif # if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK)) + + +# +# VBoxManage man pages (parts also required by VBoxManage built-in help). +# + +## +# Emits rules for preprocessing refentry sources (applying remarks element), +# and for producing the actual man pages. +# $(evalcall2 def_vbox_refentry_to_manpage) +# @param 1 The language +# @param 2 The file name (no path). +define def_vbox_refentry_to_manpage +$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2): \ + $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \ + $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \ + $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ + $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) + $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) + $$(QUIET)$$(RM) -f "$$@" + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \ + $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl $$< + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@.tmp $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT) $$@ + $$(QUIET)$$(MV) -f -- "$$@.tmp" "$$@" +if defined(VBOX_HAVE_XMLLINT) + $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@ +endif + +$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \ + $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2) \ + $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl \ + $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ + $$(VBOX_XML_ENTITIES) $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) + $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) + $$(QUIET)$$(RM) -f "$$@" + $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --maxdepth 6000 --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl $$< +endef +$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ +, $(evalcall2 def_vbox_refentry_to_manpage,$(lang),$(file)))) + + +ifdef VBOX_WITH_DOCS_QHELP + # + # VirtualBox.qch/VirtualBox.qhc + # + # We first generate a .hhp help source file from the preprocessed + # DocBook XML files, as defined above, then feed that into a converter + # creating the suitable input for creating a QHelp collection file. + + # Generate QCH from QHelp source + # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. + define def_vbox_usermanual_qhp_to_qch + local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) + $$(out_dir)/qhelp/UserManual.qch + \ + $$(out_dir)/qhelp/UserManual.qhc: \ + $$(out_dir)/qhelp/UserManual.qhcp \ + $$(out_dir)/qhelp/UserManual.qhp \ + $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \ + | $$$$(dir $$$$@) + $$(call MSG_L1,$$(notdir $$(QHELPGENERATOR)) $$<,=> $$@) + $$(QUIET)$$(RM) -f $$@ + $$(QUIET)$$(REDIRECT) -E QT_QPA_PLATFORM_PLUGIN_PATH=$$(PATH_SDK_QT5)/plugins -- $$(QHELPGENERATOR) $$< + $$(call MSG_L1,Fresh QCH is now at $$@) + endef + $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_qhp_to_qch)) + + # Generate QHP from HHP for QHelp + # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. + define def_vbox_usermanual_hhp_qhelp_to_qhp + local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) + $$(out_dir)/qhelp/UserManual.qhp: \ + $$(out_dir)/qhelp/htmlhelp.hhp \ + $$(addprefix $$(out_dir)/qhelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) \ + | $$$$(dir $$$$@) + $$(call MSG_L1,htmlhelp-qthelp.py $$<,=> $$@) + $$(QUIET)$$(RM) -f $$@ + $$(QUIET)$$(VBOX_BLD_PYTHON) $$(VBOX_PATH_MANUAL_SRC)/htmlhelp-qthelp.py -d $$( $$@) + $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' + endef + $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_qhelp))) + +endif # VBOX_WITH_DOCS_QHELP + + +# Handy aliases. +validate-manpages:: $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_XML_REFENTRY_FILES)) +man-experiment:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ + ,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/$(patsubst man_%,%.1,$(basename $(file))))) + +# +# Manually updating the DHCP option list taken from VirtualBox.xidl +# +dhcpoptions: $(PATH_ROOT)/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xsl \ + $(PATH_ROOT)/src/VBox/Main/idl/VirtualBox.xidl + $(call VBOX_XSLTPROC) --output "$(PATH_ROOT)/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml" $+ + + +include $(FILE_KBUILD_SUB_FOOTER) + diff --git a/doc/manual/UserManual.qhcp b/doc/manual/UserManual.qhcp new file mode 100644 index 00000000..b5e0c98f --- /dev/null +++ b/doc/manual/UserManual.qhcp @@ -0,0 +1,55 @@ + + + + + + Virtual Box + + QtProject/vbox + qthelp://org.virtualbox/manual/UserManual.xhtml + + VirtualBox + + + + + + false + true + false + + + + + UserManual.qhp + UserManual.qch + + + + UserManual.qch + + + diff --git a/doc/manual/common-formatcfg.xsl b/doc/manual/common-formatcfg.xsl new file mode 100644 index 00000000..59b5df48 --- /dev/null +++ b/doc/manual/common-formatcfg.xsl @@ -0,0 +1,169 @@ + + + + + + + +1 +1 + + 90% + + + + + + + + pt + + + + + + pt + + + + + + pt + + + + + + pt + + + + + + pt + + + + + + pt + + + + + + + + pt + + + + +[ +] +< +> + + +[ +] +... + + + | +4pi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/manual/common-html-formatcfg.xsl b/doc/manual/common-html-formatcfg.xsl new file mode 100644 index 00000000..644b315a --- /dev/null +++ b/doc/manual/common-html-formatcfg.xsl @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

]]> + + + + +

]]> + + + + + + diff --git a/doc/manual/docbook-changelog-formatcfg.xsl b/doc/manual/docbook-changelog-formatcfg.xsl new file mode 100644 index 00000000..d8dfc5c5 --- /dev/null +++ b/doc/manual/docbook-changelog-formatcfg.xsl @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + the manual for more information + + + diff --git a/doc/manual/docbook-html-chunks-formatcfg.xsl b/doc/manual/docbook-html-chunks-formatcfg.xsl new file mode 100644 index 00000000..b613b44f --- /dev/null +++ b/doc/manual/docbook-html-chunks-formatcfg.xsl @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + +appendix toc,title +article/appendix nop +article toc,title +book toc,title,figure,table,example,equation +chapter toc,title +part toc,title +preface toc,title +qandadiv toc +qandaset toc +reference toc,title +sect1 nop +sect2 nop +sect3 nop +sect4 nop +sect5 nop +section nop +set toc,title + + + + diff --git a/doc/manual/docbook-html-one-page-formatcfg.xsl b/doc/manual/docbook-html-one-page-formatcfg.xsl new file mode 100644 index 00000000..d8258c9d --- /dev/null +++ b/doc/manual/docbook-html-one-page-formatcfg.xsl @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/manual/docbook-htmlhelp-formatcfg.xsl b/doc/manual/docbook-htmlhelp-formatcfg.xsl new file mode 100644 index 00000000..51d679d9 --- /dev/null +++ b/doc/manual/docbook-htmlhelp-formatcfg.xsl @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/manual/docbook-refentry-link-replacement-xsl-gen.xsl b/doc/manual/docbook-refentry-link-replacement-xsl-gen.xsl new file mode 100644 index 00000000..073487d5 --- /dev/null +++ b/doc/manual/docbook-refentry-link-replacement-xsl-gen.xsl @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?xml version="1.0"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > +<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" /> +<xsl:template match="node()|@*"> + <xsl:copy> + <xsl:apply-templates select="node()|@*"/> + </xsl:copy> +</xsl:template> + + + + + + +</xsl:stylesheet> + + + + + + + + +<xsl:template match="xref[@linkend=' + ']"> + <xsl:text> + " + + " </xsl:text> +</xsl:template> + + + + + + <xsl:template match="xref[@linkend=' + ']"> + <xsl:text> + . + + " + " + </xsl:text> +</xsl:template> + + + + + + <xsl:template match="xref[@linkend=' + ']"> + <xsl:text> + . + . + + " + " + </xsl:text> +</xsl:template> + + + + + + <xsl:template match="xref[@linkend=' + ']"> + <xsl:text> + . + . + . + + " + " + </xsl:text> +</xsl:template> + + + + + + <xsl:template match="xref[@linkend=' + ']"> + <xsl:text>" + " + </xsl:text> +</xsl:template> + + + + + + <xsl:template match="xref[@linkend=' + ']"> + <xsl:text> " + "</xsl:text> +</xsl:template> + + + + + + <xsl:template match="xref[@linkend=' + ']"> + <xsl:text>" + "</xsl:text> +</xsl:template> + + + + + + + + + + + + + text() + + + + + + [@id= + + ] + + + [] + + + + + + + + + + diff --git a/doc/manual/docbook-refentry-to-C-help.xsl b/doc/manual/docbook-refentry-to-C-help.xsl new file mode 100644 index 00000000..96186f2e --- /dev/null +++ b/doc/manual/docbook-refentry-to-C-help.xsl @@ -0,0 +1,986 @@ + + + + + + + + + + + + + + + + =================================================================================================================== + + + ------------------------------------------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + refentry must have a refsynopsisdiv + + + refentry must have a refentryinfo with title + + + refentry must have a refentryinfo with title + + + The refmeta/refentrytitle and the refnamediv/refname must be identical + + + refentry must have a refsect1 with title + + + refentry must have an id attribute + + + + + + + + + + +static const RTMSGREFENTRYSTR _synopsis[] = +{ + + + + The refsynopsisdiv/cmdsynopsis elements must have an id starting with 'synopsis-'. + + + The refsynopsisdiv/cmdsynopsis elements @id is expected to include the refentry @id. + + + No refsect2 with id="" found. + + + + + + + +}; + + + + +static const RTMSGREFENTRYSTR _full_help[] = +{ + + + { , + " + + -- + + + + + + ." }, + { RTMSGREFENTRYSTR_SCOPE_SAME, "" }, + + + + { RTMSGREFENTRYSTR_SCOPE_GLOBAL, + "" }, + { RTMSGREFENTRYSTR_SCOPE_SAME, + "" }, + + + + + Expected title as the first element in refsect1. + No text supported in refsect1. + + + + + + { , "" }, + { RTMSGREFENTRYSTR_SCOPE_SAME, + "" }, + { RTMSGREFENTRYSTR_SCOPE_SAME, + " + + " }, + + + + + { RTMSGREFENTRYSTR_SCOPE_SAME, "" }, + + + + +}; + + + +static const RTMSGREFENTRY = +{ + /* .idInternal = */ HELP_CMD_ + + + + + + + + + + + + + , + /* .Synopsis = */ { RT_ELEMENTS( + _synopsis), 0, + _synopsis }, + /* .Help = */ { RT_ELEMENTS( + _full_help), 0, + _full_help }, + /* pszBrief = */ " + + + " +}; + + + + + + + cmdsynopsis with text is not supported. + + + { | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS, "" }, + + + { | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS, + "" }, + + + + " }, + { RTMSGREFENTRYSTR_SCOPE_SAME | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS, + " + + + + " }, + { RTMSGREFENTRYSTR_SCOPE_SAME | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS, + " + + + + + + + + + + + + + + + + + + + + + + < + + > + + + + + + + + + + + + + + + + + + + + + + + + Invalid arg choice: "" + + + + + + + + + + + Invalid rep choice: "" + + + + + + + + + + + + + + + + + + + + + refsect2 shouldn't contain text + refsect2 requires a title () + + + + + + + { , "" }, + { RTMSGREFENTRYSTR_SCOPE_SAME, + " + + " }, + { RTMSGREFENTRYSTR_SCOPE_SAME, + " + + " }, + + + + + + + + + + + + { RTMSGREFENTRYSTR_SCOPE_SAME, "" }, + + + + + + + + + { RTMSGREFENTRYSTR_SCOPE_SAME, "" }, + + + + + + + + + Only varlistentry elements are supported in variablelist + + + + Expected one or more term members and exactly one listentry member in varlistentry element. + + + + { RTMSGREFENTRYSTR_SCOPE_SAME, "" }, + + + + + + + + + + + + + para, itemizedlist, orderedlist and note + + + + + + + + + + + Only listitem elements are supported in : + + + + + + + inside a para is current not supported. Close the para before the list, it makes no difference to html and latex/pdf output. + + + + { RTMSGREFENTRYSTR_SCOPE_SAME, "" }, + + + + + + + + + + Expected /listitem to only contain para elements: + + + + + + + + + { RTMSGREFENTRYSTR_SCOPE_SAME, "" }, + + + + + + + + + " }, + + + + { RTMSGREFENTRYSTR_SCOPE_SAME, + " + + + + + + + + + + + Support for elements under screen has not been implemented: + + + + + + + " }, + + + + + + + + + + + + + + " }, + { RTMSGREFENTRYSTR_SCOPE_SAME, + " + + + + + + + + + + + + + + + + + + + + + + text: add space + + + + + + + + + + + + + + + + + + + + + + + + + + text: || + + + + + + + text: || + + + + + + + + + text: add space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text! || + + + + + + + + + + + + + + + text! || + + + + + + + text! || + + + + + + + + + The element is not supported + + + + The element is not supported, most likely the linkend is not defined or incorrectly processed by docbook-refentry-link-replacement-xsl-gen.xsl + + + + + + + + + + Misplaced remark/@role=help-scope element. +Only supported on: refsect1, refsect2, refsynopsisdiv/cmdsynopsis + + + + + + + remark/@role=help-copy-synopsis is not supported by this stylesheet. Must preprocess input! + + + + + Warning: Unhandled element: + + / + + + + + + + + + + + + + + + { RTMSGREFENTRYSTR_SCOPE_SAME, + " + + + + + + + + + + + + + " }, + + + + + + + HELP_SCOPE_ + + + + + + + + + + + + + + + + + + + RTMSGREFENTRYSTR_SCOPE_GLOBAL + + + + + + RTMSGREFENTRYSTR_SCOPE_GLOBAL + + + + + + + + + + + + RTMSGREFENTRYSTR_SCOPE_SAME + + + + + + + + + + + + + + RTMSGREFENTRYSTR_SCOPE_SAME + + + + + + + + + + + + + + + + + + + + + expected remark child or id attribute. + + + + + + + + + HELP_SCOPE_ + + + calc-scope-const-from-id is invoked without an refentry ancestor with a id. + + + + + + Expected sId () to contain + + + + + + + + + + + + + + + + + + + + Empty @condition for help-scope remark. + + + + RTMSGREFENTRYSTR_SCOPE_GLOBAL + + + HELP_SCOPE_ + + + + + + + + + + + + + | RTMSGREFENTRYSTR_SCOPE_GLOBAL + + + | HELP_SCOPE_ + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + text() + + + + + + [@id= + + ] + + + [] + + + + + + + + + + + + error: + + + + : + + + + + + + + , + + + + text:text() + + + + + [@id= + + ] + + + + + + + + + + + + + + + + : error: Only are supported as children to + + +Unsupported children: + + + + + + + + + diff --git a/doc/manual/docbook-refentry-to-H-help.xsl b/doc/manual/docbook-refentry-to-H-help.xsl new file mode 100644 index 00000000..69da18cf --- /dev/null +++ b/doc/manual/docbook-refentry-to-H-help.xsl @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +enum +{ +#define HELP_SCOPE_ + + + RT_BIT_64(HELP_SCOPE__BIT) + HELP_SCOPE__BIT = 0 + + + + + HELP_SCOPE_ + + + + + , +#define + + + RT_BIT_64(_BIT) + + _BIT + + + + + + + + HELP_SCOPE_ + + + + + + + + + + + + + + , +#define + + + RT_BIT_64(_BIT) + + _BIT + + + + + , + HELP_SCOPE__END +}; +AssertCompile((int)HELP_SCOPE__END >= 1); +AssertCompile((int)HELP_SCOPE__END < 64); +AssertCompile(RT_BIT_64(HELP_SCOPE__END - 1) & RTMSGREFENTRYSTR_SCOPE_MASK); + + + + + + HELP_CMD_, + + + + + + Bad or missing g_sMode string parameter value. + + + + + + diff --git a/doc/manual/docbook-refentry-to-manpage-preprocessing.xsl b/doc/manual/docbook-refentry-to-manpage-preprocessing.xsl new file mode 100644 index 00000000..8ac32459 --- /dev/null +++ b/doc/manual/docbook-refentry-to-manpage-preprocessing.xsl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + Misplaced remark/@role=help-copy-synopsis element. +Only supported on: refsect2 + + + + + + + + + + + Could not find any cmdsynopsis with id= in refsynopsisdiv. + + + + + + + + + + + + + + + + + diff --git a/doc/manual/docbook-refentry-to-manpage.xsl b/doc/manual/docbook-refentry-to-manpage.xsl new file mode 100644 index 00000000..5c976a51 --- /dev/null +++ b/doc/manual/docbook-refentry-to-manpage.xsl @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/manual/docbook-refentry-to-manual-overview.xsl b/doc/manual/docbook-refentry-to-manual-overview.xsl new file mode 100644 index 00000000..008e3825 --- /dev/null +++ b/doc/manual/docbook-refentry-to-manual-overview.xsl @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + What? No cmdsynopsis in the refsynopsisdiv? + + + -overview + + + + + + + + + + + + diff --git a/doc/manual/docbook-refentry-to-manual-sect1.xsl b/doc/manual/docbook-refentry-to-manual-sect1.xsl new file mode 100644 index 00000000..9f86b5fe --- /dev/null +++ b/doc/manual/docbook-refentry-to-manual-sect1.xsl @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + refentry + + + + + + + + + + + + + + + + + + . + + + + + + Expected refsynopsisdiv to start with cmdsynopsis + No title element supported in refsynopsisdiv + + + not-in-toc + refsynopsisdiv + + Synopsis + + + + + + + + + refsect1 requires title + + not-in-toc + refsect1 + + + + + + + + + + refsect2 requires title + + not-in-toc + refsect2 + + + + + + + + + + refsect3 requires title + + not-in-toc + refsect3 + + + + + + + + + + + + + + + + + + + + + + + + The help-copy-synopsis remark is only applicable in refsect2. + + + + Could not find any cmdsynopsis with id= in refsynopsisdiv. + + + + + + + + + + + + + + + + + diff --git a/doc/manual/docbook2latex.xsl b/doc/manual/docbook2latex.xsl new file mode 100644 index 00000000..049e8071 --- /dev/null +++ b/doc/manual/docbook2latex.xsl @@ -0,0 +1,1305 @@ + + + + + + + + + + + + + Kapitel + chapitre + chapter + + + + + + + + + auf Seite + page + page + + + + + + + + + Hinweis + Note + Note + + + + + + + + + Warnung + Avertissement + Warning + + + + + + + + \ldots{} + |~ + + + + + + + + +\documentclass[oneside,a4paper,10pt,DIV10]{scrbook} +\usepackage{geometry} +\geometry{top=3cm,bottom=4cm} +\usepackage[T1]{fontenc} +\usepackage{tabulary} +\usepackage[pdftex, + a4paper, + colorlinks=true, + linkcolor=blue, + urlcolor=darkgreen, + bookmarksnumbered, + bookmarksopen=true, + bookmarksopenlevel=0, + hyperfootnotes=false, + plainpages=false, + pdfpagelabels + ]{hyperref} + +\usepackage{nameref} +\usepackage{graphicx} +\usepackage{hyperref} +\usepackage{fancybox} +\usepackage{alltt} +\usepackage{color} +\usepackage{scrextend} +\definecolor{darkgreen}{rgb}{0,0.6,0} +\tymin=21pt + + + \usepackage[ngerman]{babel} \PrerenderUnicode{ü} + + + +% use Palatino as serif font: +% \usepackage{mathpazo} +\usepackage{charter} +% use Helvetica as sans-serif font: +\usepackage{helvet} + +% use Bera Mono (a variant of Bitstream Vera Mono) as typewriter font +% (requires texlive-fontsextra) +\usepackage[scaled]{beramono} +% previously: use Courier as typewriter font: +% \usepackage{courier} + +\definecolor{colNote}{rgb}{0,0,0} +\definecolor{colWarning}{rgb}{0,0,0} +\definecolor{colScreenFrame}{rgb}{0,0,0} +\definecolor{colScreenText}{rgb}{0,0,0} + +% number headings down to this level +\setcounter{secnumdepth}{3} +% more space for the section numbers +\makeatletter +\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.9em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.4em}{3.8em}} +\renewcommand*\l@subsubsection{\@dottedtocline{3}{8.2em}{3.8em}} +\renewcommand*\@pnumwidth{1.7em} +\renewcommand*\@tocrmarg{5.0em} +\makeatother + +% more tolerance at 2nd wrap stage: +\tolerance = 1000 +% allow 3rd wrap stage: +\emergencystretch = 10pt +% no Schusterjungen: +\clubpenalty = 10000 +% no Hurenkinder: +\widowpenalty = 10000 +\displaywidowpenalty = 10000 +% max pdf compression: +\pdfcompresslevel9 + +% opening and closing quotes: the OQ and CQ macros define this (and the makefile employs some sed magic also) + + + + \newcommand\OQ{\texorpdfstring{\glqq}{"}} \newcommand\CQ{\texorpdfstring{\grqq}{"}} + + + \newcommand\OQ{\texorpdfstring{``}{"}} \newcommand\CQ{\texorpdfstring{''}{"}} + + + \newcommand\OQ{\texorpdfstring{``}{"}} \newcommand\CQ{\texorpdfstring{''}{"}} + + + + + + + + + +\end{sloppypar} +\end{document} + + + + + + + \newcommand\docbookbookinfocopyright{Copyright \copyright{} \docbookbookinfocopyrightyear{} \docbookbookinfocopyrightholder{}} +\author{ \docbooktitleedition \\ % +\\ % + + + \docbookbookinfoaddress \\ % +\\ % + + + \docbookbookinfocopyright \\ % +} + +\title{\docbooktitle \\ +\docbooksubtitle} +% \subtitle{\docbooksubtitle} +\hypersetup{pdfauthor=\docbookcorpauthor} +\hypersetup{pdftitle=\docbooktitle{} \docbooksubtitle{}} + +\hyphenation{da-ta-ba-ses} +\hyphenation{deb-conf} +\hyphenation{VirtualBox} + +\begin{document} +\frontmatter +% bird/2018-05-14: Use sloppypar so we don't push path names and other long words +% thru the right margin. TODO: Find better solution? microtype? +\begin{sloppypar} +% \maketitle +%\begin{titlepage} +\thispagestyle{empty} +\begin{minipage}{\textwidth} +\begin{center} +\includegraphics[width=4cm]{images/vboxlogo.png} +\end{center}% +\vspace{10mm} + +{\fontsize{40pt}{40pt}\selectfont\rmfamily\bfseries% +\begin{center} +\docbooktitle +\end{center}% +\vspace{10mm} +} + +{\fontsize{30pt}{30pt}\selectfont\rmfamily\bfseries% +\begin{center} +\docbooksubtitle +\end{center}% +\vspace{10mm} +} + +{\fontsize{16pt}{20pt}\selectfont\rmfamily% +\begin{center} + + + \docbookbookinfoothercreditcontrib{}: \docbookbookinfoothercreditfirstname{} \docbookbookinfoothercreditsurname + +\vspace{8mm} + + + \docbooktitleedition + +\vspace{2mm} + +\docbookbookinfocopyright + +\vspace{2mm} + +\docbookbookinfoaddress +\end{center}% +} + +%\end{titlepage} +\end{minipage} + +\tableofcontents + + + + + + + \newcommand\docbooksubtitle{ + + } + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + get-section-level was called on non-section element: + + + + + + + + + + + + + + \mainmatter + + + + + + + [ + + ] + + { + \raisebox{\ht\strutbox}{\hypertarget{ + + }{}} + + } + + + { + + } + + + + + + + + + \newcommand\docbooktitle{ + + } + + + + + + + \chapter + + + + + \section + + + + + \subsection* + + + + + \subsection + + + + + \subsubsection* + + + + + \subsubsection + + + + + \paragraph* + + + + + \paragraph + + + + + \subparagraph* + + + + + \subparagraph + + + + + \chapter + + + + + \section* + + + + + + Role not allowed with simplesect: + + + + + + + + + \section* + + + \subsection* + + + \subsubsection* + + + \paragraph* + + + \subparagraph* + + + Unsupported simplesect/title depth: + + + + + + + + + + + + + + + \newcommand\docbooktitleedition{ + + } + + + + + + + + \newcommand\docbookcorpauthor{ + + } + + + + + + + + \newcommand\docbookbookinfoaddress{ + + } + + + + + + + + \newcommand\docbookbookinfocopyrightyear{ + + } + + + + + + + + \newcommand\docbookbookinfocopyrightholder{ + + } + + + + + + + + \newcommand\docbookbookinfoothercreditfirstname{ + + } + + + + + + + + \newcommand\docbookbookinfoothercreditsurname{ + + } + + + + + + + + \newcommand\docbookbookinfoothercreditcontrib{ + + } + + + + + + \backmatter \chapter{Glossary} + + + + + + + + + + + + + + \end{minipage}}\end{center} \vspace{.2cm} + + + + + + \end{minipage}}\end{center} \vspace{.2cm} + + + + {\footnotesize\begin{alltt} + + \end{alltt}} + + + + {\small\begin{alltt} + + \end{alltt}} + + + + \footnote{ + + } + + + + + + {\small\begin{center} \begin{tabulary}{1.1\textwidth}[] + + + {\small\begin{center} \begin{tabulary}{.9\textwidth}[] + + + { + + + |L| + + + |L|L| + + + |L|L|L| + + + |L|L|L|L| + + + |L|L|L|L|L| + + + |L|L|L|L|L|L| + + + Unsupported number of columns (), fix document or converter + + + } \hline + + \end{tabulary} \end{center}} + + + + + \\ \hline + + + + + & + + + + + + + \begin{itemize} + + \setlength{\parskip}{0pt} + \setlength{\itemsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\partopsep}{0pt} + + + \end{itemize} + + + + + \begin{enumerate} + + \setlength{\parskip}{0pt} + \setlength{\itemsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\partopsep}{0pt} + + + \end{enumerate} + + + + + \begin{description} + + \setlength{\parskip}{0pt} + \setlength{\itemsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\partopsep}{0pt} + + + \end{description} + + + + + Expected at least one term and one listitem element in the varlistentry. + + \item[{\parbox[t]{\linewidth}{\raggedright + + + \\ + + + }}]\hfill\\ + + + + + \item + + + + + + + + + + \item[ + + ] + + + + \begin{description} + + \end{description} + + + + + + + + + + + + + \textbf{ + + + \textit{ + + + + } + + + + \texttt{ + + } + + + + \texttt{ + + } + + + + \textit{ + + } + + + + \textit{ + + } + + + + \url{ + + } + + + + \href{ + + }{ + + } + + + + \url{ + + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \textsuperscript{\textregistered} + + + + + + \begin{center} + + + + + \end{center} + + + + + + Expected refsynopsisdiv to start with cmdsynopsis + No title element supported in refsynopsisdiv + + \subsection*{Synopsis} + + + + + + + Expected exactly one title as the first refsect1 element (remarks goes after title!). + + + + + + + + Expected exactly one title as the first refsect2 element (remarks goes after title!). + + + + + + + + + + sbr only supported inside cmdsynopsis (because of hangindent) + + \newline + + + + is not supported + + + + + %cmdsynopsis + + + \begin{flushleft} + + + {\footnotesize + + \noindent\hspace{1em} + \hangindent3em\hangafter1\texttt{ + + } + + + + + + \linebreak + + + + \par} + + \end{flushleft} + + + + + + + + }\par%command + \noindent\hspace{1em} + \hangindent3em\hangafter1\texttt{ + + + + + \texttt{ + + } + + + + + + + + + + + \texttt{ + + } + + + + + + + + + + \textrm{} + + + + + + + + \textrm{} + \textrm{} + \textrm{} + + Invalid arg choice: "" + + + + + + + + + + + + + \textrm{} + + Invalid rep choice: "" + + + + + \textrm{} + \textrm{} + \textrm{} + + + + + + + + + + + + \texttt{\textit{ + + }} + + + \textit{< + + >} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/manual/dummy-sect1.xml b/doc/manual/dummy-sect1.xml new file mode 100644 index 00000000..f7ed6db9 --- /dev/null +++ b/doc/manual/dummy-sect1.xml @@ -0,0 +1,29 @@ + + + + Blah. + + More blah. + + + diff --git a/doc/manual/en_US/.scm-settings b/doc/manual/en_US/.scm-settings new file mode 100644 index 00000000..818b9e0a --- /dev/null +++ b/doc/manual/en_US/.scm-settings @@ -0,0 +1,32 @@ +# $Id: .scm-settings $ +## @file +# Source code massager settings for the manual. +# + +# +# Copyright (C) 2010-2022 Oracle and/or its affiliates. +# +# This file is part of VirtualBox base platform packages, as +# available from https://www.virtualbox.org. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation, in version 3 of the +# License. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# SPDX-License-Identifier: GPL-3.0-only +# + + +/oracle-accessibility-ohc-en.xml: --external-copyright --no-strip-trailing-blanks +/oracle-support-en.xml: --external-copyright --no-strip-trailing-blanks +/oracle-diversity.xml: --external-copyright --no-strip-trailing-blanks + diff --git a/doc/manual/en_US/Accessibility.xml b/doc/manual/en_US/Accessibility.xml new file mode 100644 index 00000000..f26e2604 --- /dev/null +++ b/doc/manual/en_US/Accessibility.xml @@ -0,0 +1,250 @@ + + + +%all.entities; +]> + + + + &VBOX_PRODUCT; + + Accessibility Reference + + Version &VBOX_VERSION_STRING; + + &VBOX_VENDOR; + +

https://www.virtualbox.org
+ + + 2016-&VBOX_C_YEAR; + + &VBOX_VENDOR; + + + + + Introduction + + Welcome to the VirtualBox Accessibility Support documentation! This document is primarily + a reference to help people who are interested in our project accessibility support and will describe how to use VirtualBox + user interface step-by-step. Since whole the application navigation will be explained here, this document will also be + helpful for those who are not familiar with our product user interface and wish to learn more. It will be written in a bit + excessive manner so that many obvious things will be explained too precisely to make it easier to understand by ear for a + blind users. The document will be periodically updated with recent changes and test-cases allowing us to more strictly + follow the required guidelines and make our product fully accessible. + + + Our application is based on Qt5, a powerful cross-platform library which allows to visualize various user interface ideas + the most flexible and native way. This also means that the library we use is responsible for many navigation and + accessibility aspects (like fonts, size hints, colors, look&feel patterns and many other things), but not for all of + them. Nativity as one of the main ideas of the Qt-based application sometimes brings additional complexity because there is + always at least one host which uses unique combination of fonts and colors which breaks accessibility support in an + unpredictable way. + + + Independently on platform we are supporting screen-reader applications which can communicate with Qt5 accessibility + interface which supports Microsoft Active Accessibility (MSAA), OS X Accessibility, and the Unix/X11 AT-SPI standard. + + + Our application user interface is able to be started in two modes: + + + + First of them is VirtualBox Manager user interface, the main application window + which allows to manage and configure virtual machines and their groups. Besides that, this window provides user with + access to various global and machine related tools allowing to administrate some of VirtualBox objects and their + settings. + + + + + Second application mode is Virtual Machine user interface, which allows to control + virtual machine guest screens as separate application windows. Besides that, this interface allows to access some of + machine tools and adjust guest screens up to your needs, by changing their resolution and toggling full-screen, + seamless and scaled modes. + + + + But first of all we should start from the General Concept which is related to whole the + GUI and summarizes the navigation and accessibility aspects we are using for whole application. + + + + + General concept + + This chapter describes the general navigation and accessibility concept. We should note that not every detail of this + concept is already implemented and not every widget in our project already follows that concept. There is still large work + to be done in that regard. But in the end whole the project should correspond to this concept. + + + In short, every application window of our project should be navigated using the following approaches: + + Mouse Navigation + Keyboard Navigation + Screen-reader Navigation + + + + Mouse Navigation + + + + Each interactable widget can be focused with mouse (if that is not restricted by underlying host OS). + + + + + Each hovered interactable widget causes own tool-tip to appear. + + + + + Each tool-tip is given either in imperative mood (ex. "Create new virtual machine") or in short form (ex. "New"). + + + + + Short tool-tip form is only used if context is obvious for a user. + + + + + Tool-tip can contain shortcut mentioned in parentheses. + + + + + Each hovered menu bar / toolbar action causes own status-tip to appear (if window have status-bar). + + + + + Each status-tip is given in imperative mood only. + + + + + TBD... + + + + + + Keyboard Navigation + + + + Each interactable widget can be focused with keyboard (if that is not restricted by underlying host OS). + + + + + Focusing is possible through tabbing or mnemonic navigation. + + + + + Each button and menu bar / toolbar action can be directly activated with keyboard. + + + + + Activation is possible via shortcut or mnemonic. + + + + + Each shortcut is configurable through application preferences. + + + + + Mnemonic mentioned above is underlined alphanumeric character which is a part of widget label (if widget has label). + Mnemonic being triggered in conjunction with the Alt key. + + + + + Each mnemonic is unique within the visible part of current application window, there are no collisions. + + + + + TBD... + + + + + + Screen-reader Navigation + + + + Each interactable widget can be focused with screen-reader cursor. + + + + + Each focused widget have clear name (or full description) in native user language. + + + + + Each button and menu bar / toolbar action can be directly activated through the screen-reader cursor functionality. + + + + + Each complex widget which has children (like list, tree, table and similar) is represented as closed group which + encapsulates it's children clearly. + + + + + While navigating user is able to skip any group without forcing to be entered inside. + + + + + Each group child can be a group itself with the same rules as above applicable. + + + + + Each text-field can be directly edited through the screen-reader cursor functionality. + + + + + TBD... + + + + + + + diff --git a/doc/manual/en_US/Makefile.kup b/doc/manual/en_US/Makefile.kup new file mode 100644 index 00000000..e69de29b diff --git a/doc/manual/en_US/SDKRef.xml b/doc/manual/en_US/SDKRef.xml new file mode 100644 index 00000000..ec5c5ee6 --- /dev/null +++ b/doc/manual/en_US/SDKRef.xml @@ -0,0 +1,6324 @@ + + + +%all.entities; +]> + + + + &VBOX_PRODUCT; + + Programming Guide and Reference + + Version &VBOX_VERSION_STRING; + + &VBOX_VENDOR; + +
http://www.virtualbox.org
+ + + 2004-&VBOX_C_YEAR; + + &VBOX_VENDOR; + +
+ + + Introduction + + VirtualBox comes with comprehensive support for third-party + developers. This Software Development Kit (SDK) contains all the + documentation and interface files that are needed to write code that + interacts with VirtualBox. + + + Modularity: the building blocks of VirtualBox + + VirtualBox is cleanly separated into several layers, which can be + visualized like in the picture below: + + + + + + + + The orange area represents code that runs in kernel mode, the blue + area represents userspace code. + + At the bottom of the stack resides the hypervisor -- the core of + the virtualization engine, controlling execution of the virtual machines + and making sure they do not conflict with each other or whatever the + host computer is doing otherwise. + + On top of the hypervisor, additional internal modules provide + extra functionality. For example, the RDP server, which can deliver the + graphical output of a VM remotely to an RDP client, is a separate module + that is only loosely tacked into the virtual graphics device. Live + Migration and Resource Monitor are additional modules currently in the + process of being added to VirtualBox. + + What is primarily of interest for purposes of the SDK is the API + layer block that sits on top of all the previously mentioned blocks. + This API, which we call the "Main API", + exposes the entire feature set of the virtualization engine below. It is + completely documented in this SDK Reference -- see and -- and + available to anyone who wishes to control VirtualBox programmatically. + We chose the name "Main API" to differentiate it from other programming + interfaces of VirtualBox that may be publicly accessible. + + With the Main API, you can create, configure, start, stop and + delete virtual machines, retrieve performance statistics about running + VMs, configure the VirtualBox installation in general, and more. In + fact, internally, the front-end programs + VirtualBox and + VBoxManage use nothing but this API as + well -- there are no hidden backdoors into the virtualization engine for + our own front-ends. This ensures the entire Main API is both + well-documented and well-tested. (The same applies to + VBoxHeadless, which is not shown in the + image.) + + + + Two guises of the same "Main API": the web service or + COM/XPCOM + + There are several ways in which the Main API can be called by + other code: + + VirtualBox comes with a web + service that maps nearly the entire Main API. The web + service ships in a stand-alone executable + (vboxwebsrv) that, when running, + acts as an HTTP server, accepts SOAP connections and processes + them. + + Since the entire web service API is publicly described in a + web service description file (in WSDL format), you can write + client programs that call the web service in any language with a + toolkit that understands WSDL. These days, that includes most + programming languages that are available: Java, C++, .NET, PHP, + Python, Perl and probably many more. + + All of this is explained in detail in subsequent chapters of + this book. + + There are two ways in which you can write client code that + uses the web service: + + For Java as well as Python, the SDK contains + easy-to-use classes that allow you to use the web service in + an object-oriented, straightforward manner. We shall refer + to this as the "object-oriented web + service (OOWS)". + + The OO bindings for Java are described in , those for Python in . + + + + Alternatively, you can use the web service directly, + without the object-oriented client layer. We shall refer to + this as the "raw web + service". + + You will then have neither native object orientation + nor full type safety, since web services are neither + object-oriented nor stateful. However, in this way, you can + write client code even in languages for which we do not ship + object-oriented client code; all you need is a programming + language with a toolkit that can parse WSDL and generate + client wrapper code from it. + + We describe this further in , with samples for Java and + Perl. + + + + + + Internally, for portability and easier maintenance, the Main + API is implemented using the Component + Object Model (COM), an interprocess mechanism for + software components originally introduced by Microsoft for + Microsoft Windows. On a Windows host, VirtualBox will use + Microsoft COM; on other hosts where COM is not present, it ships + with XPCOM, a free software implementation of COM originally + created by the Mozilla project for their browsers. + + So, if you are familiar with COM and the C++ programming + language (or with any other programming language that can handle + COM/XPCOM objects, such as Java, Visual Basic or C#), then you can + use the COM/XPCOM API directly. VirtualBox comes with all + necessary files and documentation to build fully functional COM + applications. For an introduction, please see below. + + The VirtualBox front-ends (the graphical user interfaces as + well as the command line), which are all written in C++, use + COM/XPCOM to call the Main API. Technically, the web service is + another front-end to this COM API, mapping almost all of it to + SOAP clients. + + + + If you wonder which way to choose, here are a few + comparisons: + Comparison web service vs. COM/XPCOM + + + + + Web service + + COM/XPCOM + + + + Pro: Easy to use with + Java and Python with the object-oriented web service; + extensive support even with other languages (C++, .NET, PHP, + Perl and others) + + Con: Usable from + languages where COM bridge available (most languages on + Windows platform, Python and C++ on other hosts) + + + + Pro: Client can be on + remote machine + + Con: Client must be on + the same host where virtual machine is executed + + + + Con: Significant + overhead due to XML marshalling over the wire for each method + call + + Pro: Relatively low + invocation overhead + + + +
+ + In the following chapters, we will describe the different ways in + which to program VirtualBox, starting with the method that is easiest to + use and then increase complexity as we go along. +
+ + + About web services in general + + Web services are a particular type of programming interface. + Whereas, with "normal" programming, a program calls an application + programming interface (API) defined by another program or the operating + system and both sides of the interface have to agree on the calling + convention and, in most cases, use the same programming language, web + services use Internet standards such as HTTP and XML to + communicate. + In some ways, web services promise to deliver the same thing + as CORBA and DCOM did years ago. However, while these previous + technologies relied on specific binary protocols and thus proved to + be difficult to use between diverging platforms, web services + circumvent these incompatibilities by using text-only standards like + HTTP and XML. On the downside (and, one could say, typical of things + related to XML), a lot of standards are involved before a web + service can be implemented. Many of the standards invented around + XML are used one way or another. As a result, web services are slow + and verbose, and the details can be incredibly messy. The relevant + standards here are called SOAP and WSDL, where SOAP describes the + format of the messages that are exchanged (an XML document wrapped + in an HTTP header), and WSDL is an XML format that describes a + complete API provided by a web service. WSDL in turn uses XML Schema + to describe types, which is not exactly terse either. However, as + you will see from the samples provided in this chapter, the + VirtualBox web service shields you from these details and is easy to + use. + + + In order to successfully use a web service, a number of things are + required -- primarily, a web service accepting connections; service + descriptions; and then a client that connects to that web service. The + connections are governed by the SOAP standard, which describes how + messages are to be exchanged between a service and its clients; the + service descriptions are governed by WSDL. + + In the case of VirtualBox, this translates into the following + three components: + + The VirtualBox web service (the "server"): this is the + vboxwebsrv executable shipped + with VirtualBox. Once you start this executable (which acts as a + HTTP server on a specific TCP/IP port), clients can connect to the + web service and thus control a VirtualBox installation. + + + + VirtualBox also comes with WSDL files that describe the + services provided by the web service. You can find these files in + the sdk/bindings/webservice/ + directory. These files are understood by the web service toolkits + that are shipped with most programming languages and enable you to + easily access a web service even if you don't use our + object-oriented client layers. VirtualBox is shipped with + pregenerated web service glue code for several languages (Python, + Perl, Java). + + + + A client that connects to the web service in order to + control the VirtualBox installation. + + Unless you play with some of the samples shipped with + VirtualBox, this needs to be written by you. + + + + + + Running the web service + + The web service ships in an stand-alone executable, + vboxwebsrv, that, when running, acts as + a HTTP server, accepts SOAP connections and processes them -- remotely + or from the same machine. + The web service executable is not contained with the + VirtualBox SDK, but instead ships with the standard VirtualBox + binary package for your specific platform. Since the SDK contains + only platform-independent text files and documentation, the binaries + are instead shipped with the platform-specific packages. For this + reason the information how to run it as a service is included in the + VirtualBox documentation. + + + The vboxwebsrv program, which + implements the web service, is a text-mode (console) program which, + after being started, simply runs until it is interrupted with Ctrl-C or + a kill command. + + Once the web service is started, it acts as a front-end to the + VirtualBox installation of the user account that it is running under. In + other words, if the web service is run under the user account of + user1, it will see and manipulate the + virtual machines and other data represented by the VirtualBox data of + that user (for example, on a Linux machine, under + /home/user1/.config/VirtualBox; see the + VirtualBox User Manual for details on where this data is stored). + + + Command line options of vboxwebsrv + + The web service supports the following command line + options: + + + + --help (or + -h): print a brief summary of + command line options. + + + + --background (or + -b): run the web service as a + background daemon. This option is not supported on Windows + hosts. + + + + --host (or + -H): This specifies the host to + bind to and defaults to "localhost". + + + + --port (or + -p): This specifies which port to + bind to on the host and defaults to 18083. + + + + --ssl (or + -s): This enables SSL + support. + + + + --keyfile (or + -K): This specifies the file name + containing the server private key and the certificate. This is a + mandatory parameter if SSL is enabled. + + + + --passwordfile (or + -a): This specifies the file name + containing the password for the server private key. If unspecified + or an empty string is specified this is interpreted as an empty + password (i.e. the private key is not protected by a password). If + the file name - is specified then + then the password is read from the standard input stream, otherwise + from the specified file. The user is responsible for appropriate + access rights to protect the confidential password. + + + + --cacert (or + -c): This specifies the file name + containing the CA certificate appropriate for the server + certificate. + + + + --capath (or + -C): This specifies the directory + containing several CA certificates appropriate for the server + certificate. + + + + --dhfile (or + -D): This specifies the file name + containing the DH key. Alternatively it can contain the number of + bits of the DH key to generate. If left empty, RSA is used. + + + + --randfile (or + -r): This specifies the file name + containing the seed for the random number generator. If left empty, + an operating system specific source of the seed. + + + + --timeout (or + -t): This specifies the session + timeout, in seconds, and defaults to 300 (five minutes). A web + service client that has logged on but makes no calls to the web + service will automatically be disconnected after the number of + seconds specified here, as if it had called the + IWebSessionManager::logoff() + method provided by the web service itself. + + It is normally vital that each web service client call this + method, as the web service can accumulate large amounts of memory + when running, especially if a web service client does not properly + release managed object references. As a result, this timeout value + should not be set too high, especially on machines with a high + load on the web service, or the web service may eventually deny + service. + + + + --check-interval (or + -i): This specifies the interval + in which the web service checks for timed-out clients, in seconds, + and defaults to 5. This normally does not need to be + changed. + + + + --threads (or + -T): This specifies the maximum + number or worker threads, and defaults to 100. This normally does + not need to be changed. + + + + --keepalive (or + -k): This specifies the maximum + number of requests which can be sent in one web service connection, + and defaults to 100. This normally does not need to be + changed. + + + + --authentication (or + -A): This specifies the desired + web service authentication method. If the parameter is not + specified or the empty string is specified it does not change the + authentication method, otherwise it is set to the specified value. + Using this parameter is a good measure against accidental + misconfiguration, as the web service ensures periodically that it + isn't changed. + + + + --verbose (or + -v): Normally, the web service + outputs only brief messages to the console each time a request is + served. With this option, the web service prints much more detailed + data about every request and the COM methods that those requests + are mapped to internally, which can be useful for debugging client + programs. + + + + --pidfile (or + -P): Name of the PID file which is + created when the daemon was started. + + + + --logfile (or + -F) + <file>: If this is + specified, the web service not only prints its output to the + console, but also writes it to the specified file. The file is + created if it does not exist; if it does exist, new output is + appended to it. This is useful if you run the web service + unattended and need to debug problems after they have + occurred. + + + + --logrotate (or + -R): Number of old log files to + keep, defaults to 10. Log rotation is disabled if set to 0. + + + + --logsize (or + -S): Maximum size of log file in + bytes, defaults to 100MB. Log rotation is triggered if the file + grows beyond this limit. + + + + --loginterval (or + -I): Maximum time interval to be + put in a log file before rotation is triggered, in seconds, and + defaults to one day. + + + + + + Authenticating at web service logon + + As opposed to the COM/XPCOM variant of the Main API, a client + that wants to use the web service must first log on by calling the + IWebsessionManager::logon() + API that is specific to the + web service. Logon is necessary for the web service to be stateful; + internally, it maintains a session for each client that connects to + it. + + The IWebsessionManager::logon() + API takes a user name and a password as arguments, which the web + service then passes to a customizable authentication plugin that + performs the actual authentication. + + For testing purposes, it is recommended that you first disable + authentication with this command: + VBoxManage setproperty websrvauthlibrary null + + + This will cause all logons to succeed, regardless of user + name or password. This should of course not be used in a + production environment. + Generally, the mechanism by which clients are + authenticated is configurable by way of the + VBoxManage command: + + VBoxManage setproperty websrvauthlibrary default|null|<library> + + This way you can specify any shared object/dynamic link module + that conforms with the specifications for VirtualBox external + authentication modules as laid out in section VRDE authentication of the VirtualBox User + Manual; the web service uses the same kind of modules as the + VirtualBox VRDE server. For technical details on VirtualBox external + authentication modules see + + By default, after installation, the web service uses the + VBoxAuth module that ships with VirtualBox. This module uses PAM on + Linux hosts to authenticate users. Any valid username/password + combination is accepted, it does not have to be the username and + password of the user running the web service daemon. Unless + vboxwebsrv runs as root, PAM + authentication can fail, because sometimes the file + /etc/shadow, which is used by PAM, is + not readable. On most Linux distribution PAM uses a suid root helper + internally, so make sure you test this before deploying it. One can + override this behavior by setting the environment variable + VBOX_PAM_ALLOW_INACTIVE which will + suppress failures when unable to read the shadow password file. Please + use this variable carefully, and only if you fully understand what + you're doing. + + +
+ + + Environment-specific notes + + The Main API described in and + is mostly identical in all the supported + programming environments which have been briefly mentioned in the + introduction of this book. As a result, the Main API's general concepts + described in are the same whether you use the + object-oriented web service (OOWS) for JAX-WS or a raw web service + connection via, say, Perl, or whether you use C++ COM bindings. + + Some things are different depending on your environment, however. + These differences are explained in this chapter. + + + Using the object-oriented web service (OOWS) + + As explained in , VirtualBox + ships with client-side libraries for Java, Python and PHP that allow you + to use the VirtualBox web service in an intuitive, object-oriented way. + These libraries shield you from the client-side complications of managed + object references and other implementation details that come with the + VirtualBox web service. (If you are interested in these complications, + have a look at ). + + We recommend that you start your experiments with the VirtualBox + web service by using our object-oriented client libraries for JAX-WS, a + web service toolkit for Java, which enables you to write code to + interact with VirtualBox in the simplest manner possible. + + As "interfaces", "attributes" and "methods" are COM concepts, + please read the documentation in and + with the following notes in mind. + + The OOWS bindings attempt to map the Main API as closely as + possible to the Java, Python and PHP languages. In other words, objects + are objects, interfaces become classes, and you can call methods on + objects as you would on local objects. + + The main difference remains with attributes: to read an attribute, + call a "getXXX" method, with "XXX" being the attribute name with a + capitalized first letter. So when the Main API Reference says that + IMachine has a "name" attribute (see + IMachine::name), call + getName() on an IMachine object to + obtain a machine's name. Unless the attribute is marked as read-only in + the documentation, there will also be a corresponding "set" + method. + + + The object-oriented web service for JAX-WS + + JAX-WS is a powerful toolkit by Sun Microsystems to build both + server and client code with Java. It is part of Java 6 (JDK 1.6), but + can also be obtained separately for Java 5 (JDK 1.5). The VirtualBox + SDK comes with precompiled OOWS bindings working with both Java 5 and + 6. + + The following sections explain how to get the JAX-WS sample code + running and explain a few common practices when using the JAX-WS + object-oriented web service. + + + Preparations + + Since JAX-WS is already integrated into Java 6, no additional + preparations are needed for Java 6. + + If you are using Java 5 (JDK 1.5.x), you will first need to + download and install an external JAX-WS implementation, as Java 5 + does not support JAX-WS out of the box; for example, you can + download one from here: https://jax-ws.dev.java.net/2.1.4/JAXWS2.1.4-20080502.jar. + Then perform the installation (java -jar + JAXWS2.1.4-20080502.jar). + + + + Getting started: running the sample code + + To run the OOWS for JAX-WS samples that we ship with the SDK, + perform the following steps: + + Open a terminal and change to the directory where the + JAX-WS samples reside. + In + sdk/bindings/glue/java/. + Examine the header of + Makefile to see if the + supplied variables (Java compiler, Java executable) and a few + other details match your system settings. + + + + To start the VirtualBox web service, open a second + terminal and change to the directory where the VirtualBox + executables are located. Then type: + ./vboxwebsrv -v + + The web service now waits for connections and will run + until you press Ctrl+C in this second terminal. The -v + argument causes it to log all connections to the terminal. + (See for details on how + to run the web service.) + + + + Back in the first terminal and still in the samples + directory, to start a simple client example just type: + make run16 + + if you're on a Java 6 system; on a Java 5 system, run + make run15 instead. + + This should work on all Unix-like systems such as Linux + and Solaris. For Windows systems, use commands similar to what + is used in the Makefile. + + This will compile the + clienttest.java code on the + first call and then execute the resulting + clienttest class to show the + locally installed VMs (see below). + + + + The clienttest sample + imitates a few typical command line tasks that + VBoxManage, VirtualBox's regular + command-line front-end, would provide (see the VirtualBox User + Manual for details). In particular, you can run: + + java clienttest show + vms: show the virtual machines that are + registered locally. + + + + java clienttest list + hostinfo: show various information about the + host this VirtualBox installation runs on. + + + + java clienttest startvm + <vmname|uuid>: start the given virtual + machine. + + + + The clienttest.java sample + code illustrates common basic practices how to use the VirtualBox + OOWS for JAX-WS, which we will explain in more detail in the + following chapters. + + + + Logging on to the web service + + Before a web service client can do anything useful, two + objects need to be created, as can be seen in the + clienttest constructor: + + An instance of + IWebsessionManager, + which is an interface provided by the web service to manage + "web sessions" -- that is, stateful connections to the web + service with persistent objects upon which methods can be + invoked. + + In the OOWS for JAX-WS, the IWebsessionManager class + must be constructed explicitly, and a URL must be provided in + the constructor that specifies where the web service (the + server) awaits connections. The code in + clienttest.java connects to + "http://localhost:18083/", which is the default. + + The port number, by default 18083, must match the port + number given to the + vboxwebsrv command line; see + . + + + + After that, the code calls + IWebsessionManager::logon(), + which is the first call that actually communicates with the + server. This authenticates the client with the web service and + returns an instance of + IVirtualBox, + the most fundamental interface of the VirtualBox web service, + from which all other functionality can be derived. + + If logon doesn't work, please take another look at . + + + + + + Object management + + The current OOWS for JAX-WS has certain memory management + related limitations. When you no longer need an object, call its + IManagedObjectRef::release() + method explicitly, which + frees appropriate managed reference, as is required by the raw + web service; see for + details. This limitation may be reconsidered in a future version of + the VirtualBox SDK. + + + + + The object-oriented web service for Python + + VirtualBox comes with two flavors of a Python API: one for web + service, discussed here, and one for the COM/XPCOM API discussed in + . The client code is mostly similar, except + for the initialization part, so it is up to the application developer + to choose the appropriate technology. Moreover, a common Python glue + layer exists, abstracting out concrete platform access details, see + . + + The minimum supported Python version is 2.6. + + As indicated in , the + COM/XPCOM API gives better performance without the SOAP overhead, and + does not require a web server to be running. On the other hand, the + COM/XPCOM Python API requires a suitable Python bridge for your Python + installation (VirtualBox ships the most important ones for each + platform + On On Mac OS X only the Python versions bundled with the OS + are officially supported. This means 2.6 and 2.7 for 10.9 and later. + ). On Windows, you can use the Main API from Python if the + Win32 extensions package for Python + See http://sourceforge.net/project/showfiles.php?group_id=78018. + is installed. Versions of Python Win32 extensions earlier + than 2.16 are known to have bugs, leading to issues with VirtualBox + Python bindings, so please make sure to use latest available Python + and Win32 extensions. + + The VirtualBox OOWS for Python relies on the Python ZSI SOAP + implementation (see http://pywebsvcs.sourceforge.net/zsi.html), + which you will need to install locally before trying the examples. + Most Linux distributions come with package for ZSI, such as + python-zsi in Ubuntu. + + To get started, open a terminal and change to the + bindings/glue/python/sample + directory, which contains an example of a simple interactive shell + able to control a VirtualBox instance. The shell is written using the + API layer, thereby hiding different implementation details, so it is + actually an example of code share among XPCOM, MSCOM and web services. + If you are interested in how to interact with the web services layer + directly, have a look at + install/vboxapi/__init__.py which + contains the glue layer for all target platforms (i.e. XPCOM, MSCOM + and web services). + + To start the shell, perform the following commands: + /opt/VirtualBox/vboxwebsrv -t 0 + # start web service with object autocollection disabled +export VBOX_PROGRAM_PATH=/opt/VirtualBox + # your VirtualBox installation directory +export VBOX_SDK_PATH=/home/youruser/vbox-sdk + # where you've extracted the SDK +./vboxshell.py -w + See for more + details on the shell's functionality. For you, as a VirtualBox + application developer, the vboxshell sample could be interesting as an + example of how to write code targeting both local and remote cases + (COM/XPCOM and SOAP). The common part of the shell is the same -- the + only difference is how it interacts with the invocation layer. You can + use the connect shell command to + connect to remote VirtualBox servers; in this case you can skip + starting the local web server. + + + + The object-oriented web service for PHP + + VirtualBox also comes with object-oriented web service (OOWS) + wrappers for PHP5. These wrappers rely on the PHP SOAP + Extension + See + https://www.php.net/soap. + , which can be installed by configuring PHP with + --enable-soap. + + + + + Using the raw web service with any language + + The following examples show you how to use the raw web service, + without the object-oriented client-side code that was described in the + previous chapter. + + Generally, when reading the documentation in and , due to + the limitations of SOAP and WSDL lined out in , please have the following notes in + mind: + + + + Any COM method call becomes a plain + function call in the raw web service, with the object + as an additional first parameter (before the "real" parameters + listed in the documentation). So when the documentation says that + the IVirtualBox interface + supports the createMachine() + method (see + IVirtualBox::createMachine()), + the web service operation is + IVirtualBox_createMachine(...), + and a managed object reference to an + IVirtualBox object must be passed + as the first argument. + + + + For attributes in + interfaces, there will be at least one "get" function; there will + also be a "set" function, unless the attribute is "readonly". The + attribute name will be appended to the "get" or "set" prefix, with + a capitalized first letter. So, the "version" readonly attribute + of the IVirtualBox interface can + be retrieved by calling + IVirtualBox_getVersion(vbox), + with vbox being the VirtualBox + object. + + + + Whenever the API documentation says that a method (or an + attribute getter) returns an object, it will returned a managed object + reference in the web service instead. As said above, managed + object references should be released if the web service client + does not log off again immediately! + + + + + + + Raw web service example for Java with Axis + + Axis is an older web service toolkit created by the Apache + foundation. If your distribution does not have it installed, you can + get a binary from http://www.apache.org. The + following examples assume that you have Axis 1.4 installed. + + The VirtualBox SDK ships with an example for Axis that, again, + is called clienttest.java and that + imitates a few of the commands of + VBoxManage over the wire. + + Then perform the following steps: + + Create a working directory somewhere. Under your + VirtualBox installation directory, find the + sdk/webservice/samples/java/axis/ + directory and copy the file + clienttest.java to your working + directory. + + + + Open a terminal in your working directory. Execute the + following command: + java org.apache.axis.wsdl.WSDL2Java /path/to/vboxwebService.wsdl + + The vboxwebService.wsdl + file should be located in the + sdk/webservice/ + directory. + + If this fails, your Apache Axis may not be located on your + system classpath, and you may have to adjust the CLASSPATH + environment variable. Something like this: + export CLASSPATH="/path-to-axis-1_4/lib/*":$CLASSPATH + + Use the directory where the Axis JAR files are located. + Mind the quotes so that your shell passes the "*" character to + the java executable without expanding. Alternatively, add a + corresponding -classpath + argument to the "java" call above. + + If the command executes successfully, you should see an + "org" directory with subdirectories containing Java source files + in your working directory. These classes represent the + interfaces that the VirtualBox web service offers, as described + by the WSDL file. + + This is the bit that makes using web services so + attractive to client developers: if a language's toolkit + understands WSDL, it can generate large amounts of support code + automatically. Clients can then easily use this support code and + can be done with just a few lines of code. + + + + Next, compile the + clienttest.java + source:javac clienttest.java + + This should yield a "clienttest.class" file. + + + + To start the VirtualBox web service, open a second + terminal and change to the directory where the VirtualBox + executables are located. Then type: + ./vboxwebsrv -v + + The web service now waits for connections and will run + until you press Ctrl+C in this second terminal. The -v argument + causes it to log all connections to the terminal. (See for details on how to run the + web service.) + + + + Back in the original terminal where you compiled the Java + source, run the resulting binary, which will then connect to the + web service:java clienttest + + The client sample will connect to the web service (on + localhost, but the code could be changed to connect remotely if + the web service was running on a different machine) and make a + number of method calls. It will output the version number of + your VirtualBox installation and a list of all virtual machines + that are currently registered (with a bit of seemingly random + data, which will be explained later). + + + + + + Raw web service example for Perl + + We also ship a small sample for Perl. It uses the SOAP::Lite + perl module to communicate with the VirtualBox web service. + + The + sdk/bindings/webservice/perl/lib/ + directory contains a pre-generated Perl module that allows for + communicating with the web service from Perl. You can generate such a + module yourself using the "stubmaker" tool that comes with SOAP::Lite, + but since that tool is slow as well as sometimes unreliable, we are + shipping a working module with the SDK for your convenience. + + Perform the following steps: + + If SOAP::Lite is not yet installed on your system, you + will need to install the package first. On Debian-based systems, + the package is called + libsoap-lite-perl; on Gentoo, + it's dev-perl/SOAP-Lite. + + + + Open a terminal in the + sdk/bindings/webservice/perl/samples/ + directory. + + + + To start the VirtualBox web service, open a second + terminal and change to the directory where the VirtualBox + executables are located. Then type: + ./vboxwebsrv -v + + The web service now waits for connections and will run + until you press Ctrl+C in this second terminal. The -v argument + causes it to log all connections to the terminal. (See for details on how to run the + web service.) + + + + In the first terminal with the Perl sample, run the + clienttest.pl script: + perl -I ../lib clienttest.pl + + + + + + Programming considerations for the raw web service + + If you use the raw web service, you need to keep a number of + things in mind, or you will sooner or later run into issues that are + not immediately obvious. By contrast, the object-oriented client-side + libraries described in take care of these + things automatically and thus greatly simplify using the web + service. + + + Fundamental conventions + + If you are familiar with other web services, you may find the + VirtualBox web service to behave a bit differently to accommodate + for the fact that VirtualBox web service more or less maps the + VirtualBox Main COM API. The following main differences had to be + taken care of: + + Web services, as expressed by WSDL, are not + object-oriented. Even worse, they are normally stateless (or, + in web services terminology, "loosely coupled"). Web service + operations are entirely procedural, and one cannot normally + make assumptions about the state of a web service between + function calls. + + In particular, this normally means that you cannot work + on objects in one method call that were created by another + call. + + + + By contrast, the VirtualBox Main API, being expressed in + COM, is object-oriented and works entirely on objects, which + are grouped into public interfaces, which in turn have + attributes and methods associated with them. + + For the VirtualBox web service, this results in + three fundamental conventions: + + All function names in + the VirtualBox web service consist of an interface name and a + method name, joined together by an underscore. This is because + there are only functions ("operations") in WSDL, but no + classes, interfaces, or methods. + + In addition, all calls to the VirtualBox web service + (except for logon, see below) take a managed object reference as the first + argument, representing the object upon which the underlying + method is invoked. (Managed object references are explained in + detail below; see .) + + So, when one would normally code, in the pseudo-code of + an object-oriented language, to invoke a method upon an + object:IMachine machine; +result = machine.getName(); + + In the VirtualBox web service, this looks something like + this (again, pseudo-code):IMachineRef machine; +result = IMachine_getName(machine); + + + + To make the web service stateful, and objects persistent + between method calls, the VirtualBox web service introduces a + session manager (by way of the + IWebsessionManager + interface), which manages object references. Any client wishing + to interact with the web service must first log on to the + session manager and in turn receives a managed object reference + to an object that supports the + IVirtualBox + interface (the basic interface in the Main API). + + + + In other words, as opposed to other web services, the VirtualBox web service is both object-oriented and + stateful. + + + + Example: A typical web service client session + + A typical short web service session to retrieve the version + number of the VirtualBox web service (to be precise, the underlying + Main API version number) looks like this: + + A client logs on to the web service by calling + IWebsessionManager::logon() + with a valid user name and password. See + + for details about how authentication works. + + + + On the server side, + vboxwebsrv creates a session, + which persists until the client calls + IWebsessionManager::logoff() + or the session times out after a configurable period of + inactivity (see ). + + For the new session, the web service creates an instance + of IVirtualBox. + This interface is the most central one in the Main API and + allows access to all other interfaces, either through + attributes or method calls. For example, IVirtualBox contains + a list of all virtual machines that are currently registered + (as they would be listed on the left side of the VirtualBox + main program). + + The web service then creates a managed object reference + for this instance of IVirtualBox and returns it to the calling + client, which receives it as the return value of the logon + call. Something like this: + + string oVirtualBox; +oVirtualBox = webservice.IWebsessionManager_logon("user", "pass"); + + (The managed object reference "oVirtualBox" is just a + string consisting of digits and dashes. However, it is a + string with a meaning and will be checked by the web service. + For details, see below. As hinted above, + IWebsessionManager::logon() + is the only operation provided by the web + service which does not take a managed object reference as the + first argument!) + + + + The VirtualBox Main API documentation says that the + IVirtualBox interface has a + version + attribute, which is a string. For each attribute, there is a + "get" and a "set" method in COM, which maps to according + operations in the web service. So, to retrieve the "version" + attribute of this IVirtualBox + object, the web service client does this: + string version; +version = webservice.IVirtualBox_getVersion(oVirtualBox); + +print version; + + And it will print + "&VBOX_VERSION_MAJOR;.&VBOX_VERSION_MINOR;.&VBOX_VERSION_BUILD;". + + + + The web service client calls + IWebsessionManager::logoff() + with the VirtualBox managed object reference. This will clean + up all allocated resources. + + + + + + Managed object references + + To a web service client, a managed object reference looks like + a string: two 64-bit hex numbers separated by a dash. This string, + however, represents a COM object that "lives" in the web service + process. The two 64-bit numbers encoded in the managed object + reference represent a session ID (which is the same for all objects + in the same web service session, i.e. for all objects after one + logon) and a unique object ID within that session. + + Managed object references are created in two + situations: + + When a client logs on, by calling + IWebsessionManager::logon(). + + Upon logon, the websession manager creates one instance + of IVirtualBox, + which can be used for directly performing calls to its + methods, or used as a parameter for calling some methods of + IWebsessionManager. + Creating Main API session objects is performed using + IWebsessionManager::getSessionObject(). + + (Technically, there is always only one + IVirtualBox object, which + is shared between all websessions and clients, as it is a COM + singleton. However, each session receives its own managed + object reference to it.) + + + + Whenever a web service clients invokes an operation + whose COM implementation creates COM objects. + + For example, + IVirtualBox::createMachine() + creates a new instance of + IMachine; + the COM object returned by the COM method call is then wrapped + into a managed object reference by the web server, and this + reference is returned to the web service client. + + + + Internally, in the web service process, each managed object + reference is simply a small data structure, containing a COM pointer + to the "real" COM object, the web session ID and the object ID. This + structure is allocated on creation and stored efficiently in hashes, + so that the web service can look up the COM object quickly whenever + a web service client wishes to make a method call. The random + session ID also ensures that one web service client cannot intercept + the objects of another. + + Managed object references are not destroyed automatically and + must be released by explicitly calling + IManagedObjectRef::release(). + This is important, as + otherwise hundreds or thousands of managed object references (and + corresponding COM objects, which can consume much more memory!) can + pile up in the web service process and eventually cause it to deny + service. + + To reiterate: The underlying COM object, which the reference + points to, is only freed if the managed object reference is + released. It is therefore vital that web service clients properly + clean up after the managed object references that are returned to + them. + + When a web service client calls + IWebsessionManager::logoff(), + all managed object references created during the session are + automatically freed. For short-lived sessions that do not create a + lot of objects, logging off may therefore be sufficient, although it + is certainly not "best practice". + + + + Some more detail about web service operation + + + SOAP messages + + Whenever a client makes a call to a web service, this + involves a complicated procedure internally. These calls are + remote procedure calls. Each such procedure call typically + consists of two "message" being passed, where each message is a + plain-text HTTP request with a standard HTTP header and a special + XML document following. This XML document encodes the name of the + procedure to call and the argument names and values passed to + it. + + To give you an idea of what such a message looks like, + assuming that a web service provides a procedure called + "SayHello", which takes a string "name" as an argument and returns + "Hello" with a space and that name appended, the request message + could look like this: + + <?xml version="1.0" encoding="UTF-8"?> +<SOAP-ENV:Envelope + xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:test="http://test/"> +<SOAP-ENV:Body> + <test:SayHello> + <name>Peter</name> + </test:SayHello> + </SOAP-ENV:Body> +</SOAP-ENV:Envelope>A similar message -- the "response" message + -- would be sent back from the web service to the client, + containing the return value "Hello Peter". + + Most programming languages provide automatic support to + generate such messages whenever code in that programming language + makes such a request. In other words, these programming languages + allow for writing something like this (in pseudo-C++ code): + + webServiceClass service("localhost", 18083); // server and port +string result = service.SayHello("Peter"); // invoke remote procedure + and would, for these two pseudo-lines, automatically perform these + steps: + + + + prepare a connection to a web service running on port + 18083 of "localhost"; + + + + for the SayHello() + function of the web service, generate a SOAP message like in + the above example by encoding all arguments of the remote + procedure call (which could involve all kinds of type + conversions and complex marshalling for arrays and + structures); + + + + connect to the web service via HTTP and send that + message; + + + + wait for the web service to send a response + message; + + + + decode that response message and put the return value + of the remote procedure into the "result" variable. + + + + + + Service descriptions in WSDL + + In the above explanations about SOAP, it was left open how + the programming language learns about how to translate function + calls in its own syntax into proper SOAP messages. In other words, + the programming language needs to know what operations the web + service supports and what types of arguments are required for the + operation's data in order to be able to properly serialize and + deserialize the data to and from the web service. For example, if + a web service operation expects a number in "double" floating + point format for a particular parameter, the programming language + cannot send to it a string instead. + + For this, the Web Service Definition Language (WSDL) was + invented, another XML substandard that describes exactly what + operations the web service supports and, for each operation, which + parameters and types are needed with each request and response + message. WSDL descriptions can be incredibly verbose, and one of + the few good things that can be said about this standard is that + it is indeed supported by most programming languages. + + So, if it is said that a programming language "supports" web + services, this typically means that a programming language has + support for parsing WSDL files and somehow integrating the remote + procedure calls into the native language syntax -- for example, + like in the Java sample shown in . + + For details about how programming languages support web + services, please refer to the documentation that comes with the + individual languages. Here are a few pointers: + + + + For C++, among many + others, the gSOAP toolkit is a good option. Parts of gSOAP are + also used in VirtualBox to implement the VirtualBox web + service. + + + + For Java, there are + several implementations already described in this document + (see and ). + + + + Perl supports WSDL via + the SOAP::Lite package. This in turn comes with a tool called + stubmaker.pl that allows you + to turn any WSDL file into a Perl package that you can import. + (You can also import any WSDL file "live" by having it parsed + every time the script runs, but that can take a while.) You + can then code (again, assuming the above example): + my $result = servicename->sayHello("Peter"); + + + A sample that uses SOAP::Lite was described in . + + + + + + + + + Using COM/XPCOM directly + + If you do not require remote procedure calls + such as those offered by the VirtualBox web service, and if you know + Python or C++ as well as COM, you might find it preferable to program + VirtualBox's Main API directly via COM. + + COM stands for "Component Object Model" and is a standard + originally introduced by Microsoft in the 1990s for Microsoft Windows. + It allows for organizing software in an object-oriented way and across + processes; code in one process may access objects that live in another + process. + + COM has several advantages: it is language-neutral, meaning that + even though all of VirtualBox is internally written in C++, programs + written in other languages could communicate with it. COM also cleanly + separates interface from implementation, so that external programs need + not know anything about the messy and complicated details of VirtualBox + internals. + + On a Windows host, all parts of VirtualBox will use the COM + functionality that is native to Windows. On other hosts (including + Linux), VirtualBox comes with a built-in implementation of XPCOM, as + originally created by the Mozilla project, which we have enhanced to + support interprocess communication on a level comparable to Microsoft + COM. Internally, VirtualBox has an abstraction layer that allows the + same VirtualBox code to work both with native COM as well as our XPCOM + implementation. + + + Python COM API + + On Windows, Python scripts can use COM and VirtualBox interfaces + to control almost all aspects of virtual machine execution. As an + example, use the following commands to instantiate the VirtualBox + object and start a VM: + vbox = win32com.client.Dispatch("VirtualBox.VirtualBox") + session = win32com.client.Dispatch("VirtualBox.Session") + mach = vbox.findMachine("uuid or name of machine to start") + progress = mach.launchVMProcess(session, "gui", "") + progress.waitForCompletion(-1) + Also, see + /bindings/glue/python/samples/vboxshell.py + for more advanced usage scenarious. However, unless you have specific + requirements, we strongly recommend to use the generic glue layer + described in the next section to access MS COM objects. + + + + Common Python bindings layer + + As different wrappers ultimately provide access to the same + underlying API, and to simplify porting and development of Python + application using the VirtualBox Main API, we developed a common glue + layer that abstracts out most platform-specific details from the + application and allows the developer to focus on application logic. + The VirtualBox installer automatically sets up this glue layer for the + system default Python installation. + + See for details on how to + set up the glue layer if you want to use a different Python installation, + or if the VirtualBox installer failed to detect and set it up accordingly. + + The minimum supported Python version is 2.6. + + In this layer, the class + VirtualBoxManager hides most + platform-specific details. It can be used to access both the local + (COM) and the web service based API. The following code can be used by + an application to use the glue layer. + + # This code assumes vboxapi.py from VirtualBox distribution +# being in PYTHONPATH, or installed system-wide +from vboxapi import VirtualBoxManager + +# This code initializes VirtualBox manager with default style +# and parameters +virtualBoxManager = VirtualBoxManager(None, None) + +# Alternatively, one can be more verbose, and initialize +# glue with web service backend, and provide authentication +# information +virtualBoxManager = VirtualBoxManager("WEBSERVICE", + {'url':'http://myhost.com::18083/', + 'user':'me', + 'password':'secret'}) + + We supply the VirtualBoxManager + constructor with 2 arguments: style and parameters. Style defines + which bindings style to use (could be "MSCOM", "XPCOM" or + "WEBSERVICE"), and if set to None + defaults to usable platform bindings (MS COM on Windows, XPCOM on + other platforms). The second argument defines parameters, passed to + the platform-specific module, as we do in the second example, where we + pass username and password to be used to authenticate against the web + service. + + After obtaining the + VirtualBoxManager instance, one can + perform operations on the IVirtualBox class. For example, the + following code will a start virtual machine by name or ID: + + from vboxapi import VirtualBoxManager +mgr = VirtualBoxManager(None, None) +vbox = mgr.getVirtualBox() +name = "Linux" +mach = vbox.findMachine(name) +session = mgr.getSessionObject(vbox) +progress = mach.launchVMProcess(session, "gui", "") +progress.waitForCompletion(-1) +mgr.closeMachineSession(session) + + + Following code will print all registered machines and their log + folders + + from vboxapi import VirtualBoxManager +mgr = VirtualBoxManager(None, None) +vbox = mgr.getVirtualBox() + +for m in mgr.getArray(vbox, 'machines'): + print "Machine '%s' logs in '%s'" %(m.name, m.logFolder) + + + Code above demonstrates cross-platform access to array properties + (certain limitations prevent one from using + vbox.machines to access a list of + available virtual machines in case of XPCOM), and a mechanism of + uniform session creation and closing + (mgr.getSessionObject()). + + + Manual or subsequent setup + + In case you want to use the glue layer with a different Python + installation or the installer failed to set it up, use these steps + in a shell to install the necessary files: + + # cd VBOX_INSTALL_PATH/sdk/installer + # PYTHON vboxapisetup.py install + + On Windows hosts, a Python distribution along with the + win32api bindings package need to be installed as a prerequisite. + + + + + + C++ COM API + + C++ is the language that VirtualBox itself is written in, so C++ + is the most direct way to use the Main API -- but it is not + necessarily the easiest, as using COM and XPCOM has its own set of + complications. + + VirtualBox ships with sample programs that demonstrate how to + use the Main API to implement a number of tasks on your host platform. + These samples can be found in the + /bindings/xpcom/samples directory for + Linux, Mac OS X and Solaris and + /bindings/mscom/samples for Windows. + The two samples are actually different, because the one for Windows + uses native COM, whereas the other uses our XPCOM implementation, as + described above. + + Since COM and XPCOM are conceptually very similar but vary in + the implementation details, we have created a "glue" layer that + shields COM client code from these differences. All VirtualBox uses is + this glue layer, so the same code written once works on both Windows + hosts (with native COM) as well as on other hosts (with our XPCOM + implementation). It is recommended to always use this glue code + instead of using the COM and XPCOM APIs directly, as it is very easy + to make your code completely independent from the platform it is + running on. + + In order to encapsulate platform differences between Microsoft + COM and XPCOM, the following items should be kept in mind when using + the glue layer: + + + + Attribute getters and + setters. COM has the notion of "attributes" in + interfaces, which roughly compare to C++ member variables in + classes. The difference is that for each attribute declared in + an interface, COM automatically provides a "get" method to + return the attribute's value. Unless the attribute has been + marked as "readonly", a "set" attribute is also provided. + + To illustrate, the IVirtualBox interface has a "version" + attribute, which is read-only and of the "wstring" type (the + standard string type in COM). As a result, you can call the + "get" method for this attribute to retrieve the version number + of VirtualBox. + + Unfortunately, the implementation differs between COM and + XPCOM. Microsoft COM names the "get" method like this: + get_Attribute(), whereas XPCOM + uses this syntax: + GetAttribute() (and accordingly + for "set" methods). To hide these differences, the VirtualBox + glue code provides the + COMGETTER(attrib) and + COMSETTER(attrib) macros. So, + COMGETTER(version)() (note, two + pairs of brackets) expands to + get_Version() on Windows and + GetVersion() on other + platforms. + + + + Unicode conversions. + While the rest of the modern world has pretty much settled on + encoding strings in UTF-8, COM, unfortunately, uses UCS-16 + encoding. This requires a lot of conversions, in particular + between the VirtualBox Main API and the Qt GUI, which, like the + rest of Qt, likes to use UTF-8. + + To facilitate these conversions, VirtualBox provides the + com::Bstr and + com::Utf8Str classes, which + support all kinds of conversions back and forth. + + + + COM autopointers. + Possibly the greatest pain of using COM -- reference counting -- + is alleviated by the + ComPtr<> template + provided by the ptr.h file in + the glue layer. + + + + + + Event queue processing + + Both VirtualBox client programs and frontends should + periodically perform processing of the main event queue, and do that + on the application's main thread. In case of a typical GUI Windows/Mac + OS application this happens automatically in the GUI's dispatch loop. + However, for CLI only application, the appropriate actions have to be + taken. For C++ applications, the VirtualBox SDK provided glue method + + int EventQueue::processEventQueue(uint32_t cMsTimeout) + can be used for both blocking and non-blocking operations. + For the Python bindings, a common layer provides the method + VirtualBoxManager.waitForEvents(ms) + with similar semantics. + + Things get somewhat more complicated for situations where an + application using VirtualBox cannot directly control the main event + loop and the main event queue is separated from the event queue of the + programming librarly (for example in case of Qt on Unix platforms). In + such a case, the application developer is advised to use a + platform/toolkit specific event injection mechanism to force event + queue checks either based on periodical timer events delivered to the + main thread, or by using custom platform messages to notify the main + thread when events are available. See the VBoxSDL and Qt (VirtualBox) + frontends as examples. + + + + Visual Basic and Visual Basic Script (VBS) on Windows + hosts + + On Windows hosts, one can control some of the VirtualBox Main + API functionality from VBS scripts, and pretty much everything from + Visual Basic programs. + The difference results from the way VBS treats COM + safearrays, which are used to keep lists in the Main API. VBS + expects every array element to be a + VARIANT, which is too strict a + limitation for any high performance API. We may lift this + restriction for interface APIs in a future version, or + alternatively provide conversion APIs. + + + VBS is scripting language available in any recent Windows + environment. As an example, the following VBS code will print + VirtualBox version: + set vb = CreateObject("VirtualBox.VirtualBox") + Wscript.Echo "VirtualBox version " & vb.version + See + bindings/mscom/vbs/sample/vboxinfo.vbs + for the complete sample. + + Visual Basic is a popular high level language capable of + accessing COM objects. The following VB code will iterate over all + available virtual machines: + Dim vb As VirtualBox.IVirtualBox + + vb = CreateObject("VirtualBox.VirtualBox") + machines = "" + For Each m In vb.Machines + m = m & " " & m.Name + Next + See + bindings/mscom/vb/sample/vboxinfo.vb + for the complete sample. + + + + C binding to VirtualBox API + + The VirtualBox API originally is designed as object oriented, + using XPCOM or COM as the middleware, which translates natively to C++. + This means that in order to use it from C there needs to be some + helper code to bridge the language differences and reduce the + differences between platforms. + + + Cross-platform C binding to VirtualBox API + + Starting with version 4.3, VirtualBox offers a C binding + which allows using the same C client sources for all platforms, + covering Windows, Linux, Mac OS X and Solaris. It is the + preferred way to write API clients, even though the old style + is still available. + + + + + Getting started + + The following sections describe how to use the VirtualBox API + in a C program. The necessary files are included in the SDK, in the + directories sdk/bindings/c/include + and sdk/bindings/c/glue. + + As part of the SDK, a sample program + tstCAPIGlue.c is provided in the + directory sdk/bindings/c/samples + which demonstrates + using the C binding to initialize the API, get handles for + VirtualBox and Session objects, make calls to list and start virtual + machines, monitor events, and uninitialize resources when done. The + sample program is trying to illustrate all relevant concepts, so it + is a great source of detail information. Among many other generally + useful code sequences it contains a function which shows how to + retrieve error details in C code if they are available from the API + call. + + The sample program tstCAPIGlue + can be built using the provided + Makefile and can be run without + arguments. + + It uses the VBoxCAPIGlue library (source code is in directory + sdk/bindings/c/glue, to be used in + your API client code) to open the C binding layer during runtime, + which is preferred to other means as it isolates the code which + locates the necessary dynamic library, using a known working way + which works on all platforms. If you encounter problems with this + glue code in VBoxCAPIGlue.c, let the + VirtualBox developers know, rather than inventing incompatible + solutions. + + The following sections document the important concepts needed + to correctly use the C binding, as it is vital for developing API + client code which manages memory correctly, updates the reference + counters correctly, avoiding crashes and memory leaks. Often API + clients need to handle events, so the C API specifics are also + described below. + + + + VirtualBox C API initialization + + Just like in C++, the API and the underlying middleware needs + to be initialized before it can be used. The + VBoxCAPI_v4_3.h header provides the + interface to the C binding, but you can alternatively and more + conveniently also include + VBoxCAPIGlue.h, + as this avoids the VirtualBox version dependent header file name and + makes sure the global variable g_pVBoxFuncs contains a + pointer to the structure which contains the helper function pointers. + Here's how to initialize the C API:#include "VBoxCAPIGlue.h" +... +IVirtualBoxClient *vboxclient = NULL; +IVirtualBox *vbox = NULL; +ISession *session = NULL; +HRESULT rc; +ULONG revision; + +/* + * VBoxCGlueInit() loads the necessary dynamic library, handles errors + * (producing an error message hinting what went wrong) and gives you + * the pointer to the function table (g_pVBoxFuncs). + * + * Once you get the function table, then how and which functions + * to use is explained below. + * + * g_pVBoxFuncs->pfnClientInitialize does all the necessary startup + * action and provides us with pointers to an IVirtualBoxClient instance. + * It should be matched by a call to g_pVBoxFuncs->pfnClientUninitialize() + * when done. + */ + +if (VBoxCGlueInit()) +{ + fprintf(stderr, "s: FATAL: VBoxCGlueInit failed: %s\n", + argv[0], g_szVBoxErrMsg); + return EXIT_FAILURE; +} + +g_pVBoxFuncs->pfnClientInitialize(NULL, &vboxclient); +if (!vboxclient) +{ + fprintf(stderr, "%s: FATAL: could not get VirtualBoxClient reference\n", + argv[0]); + return EXIT_FAILURE; +} + + If vboxclient is still + NULL this means the initializationi + failed and the VirtualBox C API cannot be used. + + It is possible to write C applications using multiple threads + which all use the VirtualBox API, as long as you're initializing + the C API in each thread which your application creates. This is done + with g_pVBoxFuncs->pfnClientThreadInitialize() and + likewise before the thread is terminated the API must be + uninitialized with + g_pVBoxFuncs->pfnClientThreadUninitialize(). You don't + have to use these functions in worker threads created by COM/XPCOM + (which you might observe if your code uses active event handling), + everything is initialized correctly already. On Windows the C + bindings create a marshaller which supports a wide range of COM + threading models, from STA to MTA, so you don't have to worry about + these details unless you plan to use active event handlers. See + the sample code how to get this to work reliably (in other words + think twice if passive event handling isn't the better solution after + you looked at the sample code). + + + + C API attribute and method invocation + + Method invocation is straightforward. It looks pretty much + like the C++ way, by using a macro which internally accesses the + vtable, and additionally needs to be passed a pointer to the objecti + as the first argument to serve as the + this pointer. + + Using the C binding, all method invocations return a numeric + result code of type HRESULT (with a few exceptions + which normally are not relevant). + + If an interface is specified as returning an object, a pointer + to a pointer to the appropriate object must be passed as the last + argument. The method will then store an object pointer in that + location. + + Likewise, attributes (properties) can be queried or set using + method invocations, using specially named methods. For each + attribute there exists a getter method, the name of which is composed + of get_ followed by the capitalized + attribute name. Unless the attribute is read-only, an analogous + set_ method exists. Let's apply + these rules to get the IVirtualBox + reference, an ISession instance + reference and read the + IVirtualBox::revision + attribute: + rc = IVirtualBoxClient_get_VirtualBox(vboxclient, &vbox); +if (FAILED(rc) || !vbox) +{ + PrintErrorInfo(argv[0], "FATAL: could not get VirtualBox reference", rc); + return EXIT_FAILURE; +} +rc = IVirtualBoxClient_get_Session(vboxclient, &session); +if (FAILED(rc) || !session) +{ + PrintErrorInfo(argv[0], "FATAL: could not get Session reference", rc); + return EXIT_FAILURE; +} + +rc = IVirtualBox_get_Revision(vbox, &revision); +if (SUCCEEDED(rc)) +{ + printf("Revision: %u\n", revision); +} + + The convenience macros for calling a method are named by + prepending the method name with the interface name (using + _as the separator). + + So far only attribute getters were illustrated, but generic + method calls are straightforward, too: + IMachine *machine = NULL; +BSTR vmname = ...; +... +/* + * Calling IMachine::findMachine(...) + */ +rc = IVirtualBox_FindMachine(vbox, vmname, &machine); + + As a more complicated example of a method invocation, let's + call + IMachine::launchVMProcess + which returns an IProgress object. Note again that the method name is + capitalized: + IProgress *progress; +... +rc = IMachine_LaunchVMProcess( + machine, /* this */ + session, /* arg 1 */ + sessionType, /* arg 2 */ + env, /* arg 3 */ + &progress /* Out */ +); + + All objects with their methods and attributes are documented + in . + + + + String handling + + When dealing with strings you have to be aware of a string's + encoding and ownership. + + Internally, the API uses UTF-16 encoded strings. A set of + conversion functions is provided to convert other encodings to and + from UTF-16. The type of a UTF-16 character is + BSTR (or its constant counterpart + CBSTR), which is an array type, + represented by a pointer to the start of the zero-terminated string. + There are functions for converting between UTF-8 and UTF-16 strings + available through g_pVBoxFuncs: + int (*pfnUtf16ToUtf8)(CBSTR pwszString, char **ppszString); +int (*pfnUtf8ToUtf16)(const char *pszString, BSTR *ppwszString); + + The ownership of a string determines who is responsible for + releasing resources associated with the string. Whenever the API + creates a string (essentially for output parameters), ownership is + transferred to the caller. To avoid resource leaks, the caller + should release resources once the string is no longer needed. + There are plenty of examples in the sample code. + + + + Array handling + + Arrays are handled somewhat similarly to strings, with the + additional information of the number of elements in the array. The + exact details of string passing depends on the platform middleware + (COM/XPCOM), and therefore the C binding offers helper functions to + gloss over these differences. + + Passing arrays as input parameters to API methods is usually + done by the following sequence, calling a hypothetical + IArrayDemo_PassArray API method: + static const ULONG aElements[] = { 1, 2, 3, 4 }; +ULONG cElements = sizeof(aElements) / sizeof(aElements[0]); +SAFEARRAY *psa = NULL; +psa = g_pVBoxFuncs->pfnSafeArrayCreateVector(VT_I4, 0, cElements); +g_pVBoxFuncs->pfnSafeArrayCopyInParamHelper(psa, aElements, sizeof(aElements)); +IArrayDemo_PassArray(pThis, ComSafeArrayAsInParam(psa)); +g_pVBoxFuncs->pfnSafeArrayDestroy(psa); + + Likewise, getting arrays results from output parameters is done + using helper functions which manage memory allocations as part of + their other functionality: + SAFEARRAY *psa = g_pVBoxFuncs->pfnSafeArrayOutParamAlloc(); +ULONG *pData; +ULONG cElements; +IArrayDemo_ReturnArray(pThis, ComSafeArrayAsOutTypeParam(psa, ULONG)); +g_pVBoxFuncs->pfnSafeArrayCopyOutParamHelper((void **)&pData, &cElements, VT_I4, psa); +g_pVBoxFuncs->pfnSafeArrayDestroy(psa); + + This covers the necessary functionality for all array element + types except interface references. These need special helpers to + manage the reference counting correctly. The following code snippet + gets the list of VMs, and passes the first IMachine reference to + another API function (assuming that there is at least one element + in the array, to simplify the example): + SAFEARRAY psa = g_pVBoxFuncs->pfnSafeArrayOutParamAlloc(); +IMachine **machines = NULL; +ULONG machineCnt = 0; +ULONG i; +IVirtualBox_get_Machines(virtualBox, ComSafeArrayAsOutIfaceParam(machinesSA, IMachine *)); +g_pVBoxFuncs->pfnSafeArrayCopyOutIfaceParamHelper((IUnknown ***)&machines, &machineCnt, machinesSA); +g_pVBoxFuncs->pfnSafeArrayDestroy(machinesSA); +/* Now "machines" contains the IMachine references, and machineCnt the + * number of elements in the array. */ +... +SAFEARRAY *psa = g_pVBoxFuncs->pfnSafeArrayCreateVector(VT_IUNKNOWN, 0, 1); +g_pVBoxFuncs->pfnSafeArrayCopyInParamHelper(psa, (void *)&machines[0], sizeof(machines[0])); +IVirtualBox_GetMachineStates(ComSafeArrayAsInParam(psa), ...); +... +g_pVBoxFuncs->pfnSafeArrayDestroy(psa); +for (i = 0; i < machineCnt; ++i) +{ + IMachine *machine = machines[i]; + IMachine_Release(machine); +} +free(machines); + + Handling output parameters needs more special effort than + input parameters, thus only for the former there are special helpers, + and the latter is handled through the generic array support. + + + + Event handling + + The VirtualBox API offers two types of event handling, active + and passive, and consequently there is support for both with the + C API binding. Active event handling (based on asynchronous + callback invocation for event delivery) is more difficult, as it + requires the construction of valid C++ objects in C, which is + inherently platform and compiler dependent. Passive event handling + is much simpler, it relies on an event loop, fetching events and + triggering the necessary handlers explicitly in the API client code. + Both approaches depend on an event loop to make sure that events + get delivered in a timely manner, with differences what exactly needs + to be done. + + The C API sample contains code for both event handling styles, + and one has to modify the appropriate #define to select + which style is actually used by the compiled program. It allows a + good comparison between the two variants, and the code sequences are + probably worth reusing without much change in other API clients + with only minor adaptions. + + Active event handling needs to ensure that the following helper + function is called frequently enough in the primary thread: + g_pVBoxFuncs->pfnProcessEventQueue(cTimeoutMS); + + The actual event handler implementation is quite tedious, as + it has to implement a complete API interface. Especially on Windows + it is a lot of work to implement the complicated + IDispatch interface, requiring to load COM type + information and using it in the IDispatch method + implementation. Overall this is quite tedious compared to passive + event handling. + + Passive event handling uses a similar event loop structure, + which requires calling the following function in a loop, and + processing the returned event appropriately: + rc = IEventSource_GetEvent(pEventSource, pListener, cTimeoutMS, &pEvent); + + After processing the event it needs to be marked as processed + with the following method call: + rc = IEventSource_EventProcessed(pEventSource, pListener, pEvent); + + This is vital for vetoable events, as they would be stuck + otherwise, waiting whether the veto comes or not. It does not do any + harm for other event types, and in the end is cheaper than checking + if the event at hand is vetoable or not. + + The general event handling concepts are described in the API + specification (see ), including how to + aggregate multiple event sources for processing in one event loop. + As mentioned, the sample illustrates the practical aspects of how to + use both types of event handling, active and passive, from a C + application. Additional hints are in the comments documenting + the helper methods in + VBoxCAPI_v4_3.h. The code complexity + of active event handling (and its inherenly platform/compiler + specific aspects) should be motivation to use passive event handling + whereever possible. + + + + C API uninitialization + + Uninitialization is performed by + g_pVBoxFuncs->pfnClientUninitialize(). + If your program can exit from more than one place, it is a good idea + to install this function as an exit handler with Standard C's + atexit() just after calling + g_pVBoxFuncs->pfnClientInitialize() + , e.g. #include <stdlib.h> +#include <stdio.h> + +... + +/* + * Make sure g_pVBoxFuncs->pfnClientUninitialize() is called at exit, no + * matter if we return from the initial call to main or call exit() + * somewhere else. Note that atexit registered functions are not + * called upon abnormal termination, i.e. when calling abort() or + * signal(). + */ + +if (atexit(g_pVBoxFuncs->pfnClientUninitialize()) != 0) { + fprintf(stderr, "failed to register g_pVBoxFuncs->pfnClientUninitialize()\n"); + exit(EXIT_FAILURE); +} + + Another idea would be to write your own void + myexit(int status) function, calling + g_pVBoxFuncs->pfnClientUninitialize() + followed by the real exit(), and + use it instead of exit() throughout + your program and at the end of + main. + + If you expect the program to be terminated by a signal (e.g. + user types CTRL-C sending SIGINT) you might want to install a signal + handler setting a flag noting that a signal was sent and then + calling + g_pVBoxFuncs->pfnClientUninitialize() + later on, not from the handler itself. + + That said, if a client program forgets to call + g_pVBoxFuncs->pfnClientUninitialize() + before it terminates, there is a mechanism in place which will + eventually release references held by the client. On Windows it can + take quite a while, in the order of 6-7 minutes. + + + + Compiling and linking + + A program using the C binding has to open the library during + runtime using the help of glue code provided and as shown in the + example tstCAPIGlue.c. + Compilation and linking can be achieved with a makefile fragment + similar to:# Where is the SDK directory? +PATH_SDK = ../../.. +CAPI_INC = -I$(PATH_SDK)/bindings/c/include +ifdef ProgramFiles +PLATFORM_INC = -I$(PATH_SDK)/bindings/mscom/include +PLATFORM_LIB = $(PATH_SDK)/bindings/mscom/lib +else +PLATFORM_INC = -I$(PATH_SDK)/bindings/xpcom/include +PLATFORM_LIB = $(PATH_SDK)/bindings/xpcom/lib +endif +GLUE_DIR = $(PATH_SDK)/bindings/c/glue +GLUE_INC = -I$(GLUE_DIR) + +# Compile Glue Library +VBoxCAPIGlue.o: $(GLUE_DIR)/VBoxCAPIGlue.c + $(CC) $(CFLAGS) $(CAPI_INC) $(PLATFORM_INC) $(GLUE_INC) -o $@ -c $< + +# Compile interface ID list +VirtualBox_i.o: $(PLATFORM_LIB)/VirtualBox_i.c + $(CC) $(CFLAGS) $(CAPI_INC) $(PLATFORM_INC) $(GLUE_INC) -o $@ -c $< + +# Compile program code +program.o: program.c + $(CC) $(CFLAGS) $(CAPI_INC) $(PLATFORM_INC) $(GLUE_INC) -o $@ -c $< + +# Link program. +program: program.o VBoxCAPICGlue.o VirtualBox_i.o + $(CC) -o $@ $^ -ldl -lpthread + + + + Conversion of code using legacy C binding + + This section aims to make the task of converting code using + the legacy C binding to the new style a breeze, by pointing out some + key steps. + + One necessary change is adjusting your Makefile to reflect the + different include paths. See above. There are now 3 relevant include + directories, and most of it is pointing to the C binding directory. + The XPCOM include directory is still relevant for platforms where + the XPCOM middleware is used, but most of the include files live + elsewhere now, so it's good to have it last. Additionally the + VirtualBox_i.c file needs to be + compiled and linked to the program, it contains the IIDs relevant + for the VirtualBox API, making sure they are not replicated endlessly + if the code refers to them frequently. + + The C API client code should include + VBoxCAPIGlue.h instead of + VBoxXPCOMCGlue.h or + VBoxCAPI_v4_3.h, as this makes sure + the correct macros and internal translations are selected. + + All API method calls (anything mentioning vtbl) + should be rewritten using the convenience macros for calling methods, + as these hide the internal details, are generally easier to use and + shorter to type. You should remove as many as possible + (nsISupports **) or similar typecasts, as the new style + should use the correct type in most places, increasing the type + safety in case of an error in the source code. + + To gloss over the platform differences, API client code should + no longer rely on XPCOM specific interface names such as + nsISupports, nsIException and + nsIEventQueue, and replace them by the platform + independent interface names IUnknown and + IErrorInfo for the first two respectively. Event queue + handling should be replaced by using the platform independent way + described in . + + Finally adjust the string and array handling to use the new + helpers, as these make sure the code works without changes with + both COM and XPCOM, which are significantly different in this area. + The code should be double checked if it uses the correct way to + manage memory, and is freeing it only after the last use. + + + + Legacy C binding to VirtualBox API for XPCOM + + + This section applies to Linux, Mac OS X and Solaris + hosts only and describes deprecated use of the API from C. + + + Starting with version 2.2, VirtualBox offers a C binding for + its API which works only on platforms using XPCOM. Refer to the + old SDK documentation (included in the SDK packages for version 4.3.6 + or earlier), it still applies unchanged. The fundamental concepts are + similar (but the syntactical details are quite different) to the + newer cross-platform C binding which should be used for all new code, + as the support for the old C binding will go away in a major release + after version 4.3. + + + + + + + Basic VirtualBox concepts; some examples + + The following explains some basic VirtualBox concepts such as the + VirtualBox object, sessions and how virtual machines are manipulated and + launched using the Main API. The coding examples use a pseudo-code style + closely related to the object-oriented web service (OOWS) for JAX-WS. + Depending on which environment you are using, you will need to adjust the + examples. + + + Obtaining basic machine information. Reading attributes + + Any program using the Main API will first need access to the + global VirtualBox object (see + IVirtualBox), from which all other + functionality of the API is derived. With the OOWS for JAX-WS, this is + returned from the + IWebsessionManager::logon() + call. + + To enumerate virtual machines, one would look at the "machines" + array attribute in the VirtualBox object (see + IVirtualBox::machines). + This array contains all virtual machines currently registered with the + host, each of them being an instance of + IMachine. + From each such instance, one can query additional information, such as + the UUID, the name, memory, operating system and more by looking at the + attributes; see the attributes list in + IMachine documentation. + + As mentioned in the preceding chapters, depending on your + programming environment, attributes are mapped to corresponding "get" + and (if the attribute is not read-only) "set" methods. So when the + documentation says that IMachine has a + "name" attribute, this means you + need to code something + like the following to get the machine's name: + IMachine machine = ...; +String name = machine.getName(); + Boolean attribute getters can sometimes be called + isAttribute() due to JAX-WS naming + conventions. + + + + Changing machine settings: Sessions + + As said in the previous section, to read a machine's attribute, + one invokes the corresponding "get" method. One would think that to + change settings of a machine, it would suffice to call the corresponding + "set" method -- for example, to set a VM's memory to 1024 MB, one would + call setMemorySize(1024). Try that, and + you will get an error: "The machine is not mutable." + + So unfortunately, things are not that easy. VirtualBox is a + complicated environment in which multiple processes compete for possibly + the same resources, especially machine settings. As a result, machines + must be "locked" before they can either be modified or started. This is + to prevent multiple processes from making conflicting changes to a + machine: it should, for example, not be allowed to change the memory + size of a virtual machine while it is running. (You can't add more + memory to a real computer while it is running either, at least not to an + ordinary PC.) Also, two processes must not change settings at the same + time, or start a machine at the same time. + + These requirements are implemented in the Main API by way of + "sessions", in particular, the ISession + interface. Each process which talks to + VirtualBox needs its own instance of ISession. In the web service, you + can request the creation of such an object by calling + IWebsessionManager::getSessionObject(). + More complex management tasks might need multiple instances of ISession, + and each call returns a new one. + + This session object must then be used like a mutex semaphore in + common programming environments. Before you can change machine settings, + you must write-lock the machine by calling + IMachine::lockMachine() + with your process's session object. + + After the machine has been locked, the + ISession::machine attribute + contains a copy of the original IMachine object upon which the session + was opened, but this copy is "mutable": you can invoke "set" methods on + it. + + When done making the changes to the machine, you must call + IMachine::saveSettings(), + which will copy the changes you have made from your "mutable" machine + back to the real machine and write them out to the machine settings XML + file. This will make your changes permanent. + + Finally, it is important to always unlock the machine again, by + calling + ISession::unlockMachine(). + Otherwise, when the calling process end, the machine will receive the + "aborted" state, which can lead to loss of data. + + So, as an example, the sequence to change a machine's memory to + 1024 MB is something like this:IWebsessionManager mgr ...; +IVirtualBox vbox = mgr.logon(user, pass); +... +IMachine machine = ...; // read-only machine +ISession session = mgr.getSessionObject(); +machine.lockMachine(session, LockType.Write); // machine is now locked for writing +IMachine mutable = session.getMachine(); // obtain the mutable machine copy +mutable.setMemorySize(1024); +mutable.saveSettings(); // write settings to XML +session.unlockMachine(); + + + + Launching virtual machines + + To launch a virtual machine, you call + IMachine::launchVMProcess(). + In doing so, the caller instructs the VirtualBox engine to start a new + process with the virtual machine in it, since to the host, each virtual + machine looks like single process, even if it has hundreds of its own + processes inside. (This new VM process in turn obtains a write lock on + the machine, as described above, to prevent conflicting changes from + other processes; this is why opening another session will fail while the + VM is running.) + + Starting a machine looks something like this: + IWebsessionManager mgr ...; +IVirtualBox vbox = mgr.logon(user, pass); +... +IMachine machine = ...; // read-only machine +ISession session = mgr.getSessionObject(); +IProgress prog = machine.launchVMProcess(session, + "gui", // session type + ""); // possibly environment setting +prog.waitForCompletion(10000); // give the process 10 secs +if (prog.getResultCode() != 0) // check success + System.out.println("Cannot launch VM!") + + The caller's session object can then be used as a sort of remote + control to the VM process that was launched. It contains a "console" + object (see ISession::console) + with which the VM can be paused, + stopped, snapshotted or other things. + + + + VirtualBox events + + In VirtualBox, "events" provide a uniform mechanism to register + for and consume specific events. A VirtualBox client can register an + "event listener" (represented by the + IEventListener interface), which + will then get notified by the server when an event (represented by the + IEvent interface) happens. + + The IEvent interface is an abstract parent interface for all + events that can occur in VirtualBox. The actual events that the server + sends out are then of one of the specific subclasses, for example + IMachineStateChangedEvent + or + IMediumChangedEvent. + + As an example, the VirtualBox GUI waits for machine events and can + thus update its display when the machine state changes or machine + settings are modified, even if this happens in another client. This is + how the GUI can automatically refresh its display even if you manipulate + a machine from another client, for example, from VBoxManage. + + To register an event listener to listen to events, use code like + this:EventSource es = console.getEventSource(); +IEventListener listener = es.createListener(); +VBoxEventType aTypes[] = (VBoxEventType.OnMachineStateChanged); + // list of event types to listen for +es.registerListener(listener, aTypes, false /* active */); + // register passive listener +IEvent ev = es.getEvent(listener, 1000); + // wait up to one second for event to happen +if (ev != null) +{ + // downcast to specific event interface (in this case we have only registered + // for one type, otherwise IEvent::type would tell us) + IMachineStateChangedEvent mcse = IMachineStateChangedEvent.queryInterface(ev); + ... // inspect and do something + es.eventProcessed(listener, ev); +} +... +es.unregisterListener(listener); + + A graphical user interface would probably best start its own + thread to wait for events and then process these in a loop. + + The events mechanism was introduced with VirtualBox 3.3 and + replaces various callback interfaces which were called for each event in + the interface. The callback mechanism was not compatible with scripting + languages, local Java bindings and remote web services as they do not + support callbacks. The new mechanism with events and event listeners + works with all of these. + + To simplify developement of application using events, concept of + event aggregator was introduced. Essentially it's mechanism to aggregate + multiple event sources into single one, and then work with this single + aggregated event source instead of original sources. As an example, one + can evaluate demo recorder in VirtualBox Python shell, shipped with SDK + - it records mouse and keyboard events, represented as separate event + sources. Code is essentially like this: + listener = console.eventSource.createListener() + agg = console.eventSource.createAggregator([console.keyboard.eventSource, console.mouse.eventSource]) + agg.registerListener(listener, [ctx['global'].constants.VBoxEventType_Any], False) + registered = True + end = time.time() + dur + while time.time() < end: + ev = agg.getEvent(listener, 1000) + processEent(ev) + agg.unregisterListener(listener) Without using aggregators + consumer have to poll on both sources, or start multiple threads to + block on those sources. + + + + + The VirtualBox shell + + VirtualBox comes with an extensible shell, which allows you to + control your virtual machines from the command line. It is also a + nontrivial example of how to use the VirtualBox APIs from Python, for all + three COM/XPCOM/WS styles of the API. + + You can easily extend this shell with your own commands. Create a + subdirectory named + .config/VirtualBox/shexts below your home + directory (respectively .VirtualBox/shexts + on a Windows system and + Library/VirtualBox/shexts on OS X) and put + a Python file implementing your shell extension commands in this directory. + This file must contain an array named + commands containing your command + definitions: + commands = { + 'cmd1': ['Command cmd1 help', cmd1], + 'cmd2': ['Command cmd2 help', cmd2] + } + For example, to create a command for creating hard drive + images, the following code can be used: + def createHdd(ctx,args): + # Show some meaningful error message on wrong input + if (len(args) < 3): + print "usage: createHdd sizeM location type" + return 0 + + # Get arguments + size = int(args[1]) + loc = args[2] + if len(args) > 3: + format = args[3] + else: + # And provide some meaningful defaults + format = "vdi" + + # Call VirtualBox API, using context's fields + hdd = ctx['vb'].createMedium(format, loc, ctx['global'].constants.AccessMode_ReadWrite, \ + ctx['global'].constants.DeviceType_HardDisk) + # Access constants using ctx['global'].constants + progress = hdd.createBaseStorage(size, (ctx['global'].constants.MediumVariant_Standard, )) + # use standard progress bar mechanism + ctx['progressBar'](progress) + + + # Report errors + if not hdd.id: + print "cannot create disk (file %s exist?)" %(loc) + return 0 + + # Give user some feedback on success too + print "created HDD with id: %s" %(hdd.id) + + # 0 means continue execution, other values mean exit from the interpreter + return 0 + + commands = { + 'myCreateHDD': ['Create virtual HDD, createHdd size location type', createHdd] + } + Just store the above text in the file + createHdd (or any other meaningful name) + in .config/VirtualBox/shexts/. Start the + VirtualBox shell, or just issue the + reloadExts command, if the shell is + already running. Your new command will now be available. + + + + + + Working with the Cloud + + VirtualBox supports and goes towards the Oracle tendencies like "move to the Cloud". + + + OCI features + VirtualBox supports the Oracle Cloud Infrastructure (OCI). See the interfaces: + ICloudClient, + ICloudProvider, + ICloudProfile, + ICloudProviderManager. + + Each cloud interface has own implementation to support OCI features. There are everal functions in the implementation + which should be explained in details because OCI requires some special data or settings. + + + Also see the enumeration VirtualSystemDescriptionType for the possible values. + + + + + Function ICloudClient::exportVM + + See the ICloudClient::exportVM. + The function exports an existing virtual machine into OCI. The final result of this operation is creation a custom image + from the bootable image of VM. The Id of created image is returned in the parameter "description" (which is + IVirtualSystemDescription) as an entry with the type + VirtualSystemDescriptionType::CloudImageId. The standard steps here are: + + + Upload VBox image to OCI Object Storage. + + + Create OCI custom image from the uploaded object. + + + Parameter "description" must contain all information and settings needed for creation a custom image in OCI. + At least next entries must be presented there before the call: + + + VirtualSystemDescriptionType::Name - Name of new instance in OCI. + + + VirtualSystemDescriptionType::HardDiskImage - The local path or id of bootable VM image. + + + VirtualSystemDescriptionType::CloudBucket - A cloud bucket name where the exported image is uploaded. + + + VirtualSystemDescriptionType::CloudImageDisplayName - A name which is assigned to a new custom image in the OCI. + + + VirtualSystemDescriptionType::CloudKeepObject - Whether keep or delete an uploaded object after its usage. + + + VirtualSystemDescriptionType::CloudLaunchInstance - Whether launch or not a new instance. + + + + + + + Function ICloudClient::launchVM + + See the ICloudClient::launchVM. + The function launches a new instance in OCI with a bootable volume previously created from a custom image in OCI or + as the source may be used an existing bootable volume which shouldn't be attached to any instance. + For launching instance from a custom image use the parameter VirtualSystemDescriptionType::CloudImageId. + For launching instance from a bootable volume use the parameter VirtualSystemDescriptionType::CloudBootVolumeId. + Only one of them must be presented otherwise the error will occur. + The final result of this operation is a running instance. The id of created instance is returned + in the parameter "description" (which is IVirtualSystemDescription) + as an entry with the type VirtualSystemDescriptionType::CloudInstanceId. Parameter "description" must contain all information + and settings needed for creation a new instance in OCI. At least next entries must be presented there before the call: + + + VirtualSystemDescriptionType::Name - Name of new instance in OCI. + + + VirtualSystemDescriptionType::CloudOCISubnet - OCID of existing subnet in OCI which will be used by the instance. + + + + Use VirtualSystemDescriptionType::CloudImageId - OCID of custom image used as a bootable image for the instance + or + VirtualSystemDescriptionType::CloudBootVolumeId - OCID of existing and non-attached bootable volume used as a bootable volume for the instance. + + + + Add VirtualSystemDescriptionType::CloudBootDiskSize - The size of instance bootable volume in GB, + If you use VirtualSystemDescriptionType::CloudImageId. + + + VirtualSystemDescriptionType::CloudInstanceShape - The shape of instance according to OCI documentation, + defines the number of CPUs and RAM memory. + + + VirtualSystemDescriptionType::CloudLaunchInstance - Whether launch or not a new instance. + + + VirtualSystemDescriptionType::CloudDomain - Availability domain in OCI where new instance is created. + + + VirtualSystemDescriptionType::CloudPublicIP - Whether the instance will have a public IP or not. + + + VirtualSystemDescriptionType::CloudPublicSSHKey - Public SSH key which is used to connect to an instance via SSH. + It may be one or more records with the type VirtualSystemDescriptionType::CloudPublicSSHKey in the VirtualSystemDescription. + But at least one should be presented otherwise user won't be able to connect to the instance via SSH. + + + + + + + + Function ICloudClient::getInstanceInfo + + See the ICloudClient::getInstanceInfo. + The function takes an instance id (parameter "uid"), finds the requested instance in OCI and gets back information + about the found instance in the parameter "description" (which is IVirtualSystemDescription) + The entries with next types will be presented in the object: + + + VirtualSystemDescriptionType::Name - Displayed name of the instance. + + + VirtualSystemDescriptionType::CloudDomain - Availability domain in OCI. + + + VirtualSystemDescriptionType::CloudImageId - Name of custom image used for creation this instance. + + + VirtualSystemDescriptionType::CloudInstanceId - The OCID of the instance. + + + VirtualSystemDescriptionType::OS - Guest OS type of the instance. + + + VirtualSystemDescriptionType::CloudBootDiskSize - Size of instance bootable image. + + + VirtualSystemDescriptionType::CloudInstanceState - The instance state according to OCI documentation. + + + VirtualSystemDescriptionType::CloudInstanceShape - The instance shape according to OCI documentation + + + VirtualSystemDescriptionType::Memory - RAM memory in GB allocated for the instance. + + + VirtualSystemDescriptionType::CPU - Number of virtual CPUs allocated for the instance. + + + + + + + Function ICloudClient::importInstance + + See the ICloudClient::importInstance. + The API function imports an existing instance from the OCI to the local host. + The standard steps here are: + + + Create a custom image from an existing OCI instance. + + + Export the custom image to OCI object (the object is created in the OCI Object Storage). + + + Download the OCI object to the local host. + + + As the result of operation user will have a file with the suffix ".oci" on the local host. This file is a TAR archive which + contains a bootable instance image in QCOW2 format and a JSON file with some metadata related to + the imported instance. The function takes the parameter "description" + (which is IVirtualSystemDescription) + Parameter "description" must contain all information and settings needed for successful operation result. + At least next entries must be presented there before the call: + + + VirtualSystemDescriptionType::Name is used for the several purposes: + + + As a custom image name. A custom image is created from an instance. + + + As OCI object name. An object is a file in OCI Object Storage. The object is created from the custom image. + + + Name of imported instance on the local host. Because the result of import is a file, the file will have this + name and extension ".oci". + + + + + + VirtualSystemDescriptionType::CloudInstanceId - The OCID of the existing instance. + + + VirtualSystemDescriptionType::CloudBucket - a cloud bucket name in OCI Object Storage where created an OCI object + from a custom image. + + + + + + + + + + Host-Guest Communication Manager + + The VirtualBox Host-Guest Communication Manager (HGCM) allows a + guest application or a guest driver to call a host shared library. The + following features of VirtualBox are implemented using HGCM: + + Shared Folders + + + + Shared Clipboard + + + + Guest configuration interface + + + + The shared library contains a so called HGCM service. The guest HGCM + clients establish connections to the service to call it. When calling a + HGCM service the client supplies a function code and a number of + parameters for the function. + + + Virtual hardware implementation + + HGCM uses the VMM virtual PCI device to exchange data between the + guest and the host. The guest always acts as an initiator of requests. A + request is constructed in the guest physical memory, which must be + locked by the guest. The physical address is passed to the VMM device + using a 32-bit out edx, eax + instruction. The physical memory must be allocated below 4GB by 64-bit + guests. + + The host parses the request header and data and queues the request + for a host HGCM service. The guest continues execution and usually waits + on a HGCM event semaphore. + + When the request has been processed by the HGCM service, the VMM + device sets the completion flag in the request header, sets the HGCM + event and raises an IRQ for the guest. The IRQ handler signals the HGCM + event semaphore and all HGCM callers check the completion flag in the + corresponding request header. If the flag is set, the request is + considered completed. + + + + Protocol specification + + The HGCM protocol definitions are contained in the + VBox/VBoxGuest.h + + + Request header + + HGCM request structures contains a generic header + (VMMDevHGCMRequestHeader): + HGCM Request Generic Header + + + + + Name + + Description + + + + size + + Size of the entire request. + + + + version + + Version of the header, must be set to + 0x10001. + + + + type + + Type of the request. + + + + rc + + HGCM return code, which will be set by the VMM + device. + + + + reserved1 + + A reserved field 1. + + + + reserved2 + + A reserved field 2. + + + + flags + + HGCM flags, set by the VMM device. + + + + result + + The HGCM result code, set by the VMM device. + + + +
+ + + All fields are 32-bit. + + + + Fields from size to + reserved2 are a standard VMM + device request header, which is used for other interfaces as + well. + + +
+ + The type field indicates the + type of the HGCM request: + Request Types + + + + + Name (decimal + value) + + Description + + + + VMMDevReq_HGCMConnect + (60) + + Connect to a HGCM service. + + + + VMMDevReq_HGCMDisconnect + (61) + + Disconnect from the service. + + + + VMMDevReq_HGCMCall32 + (62) + + Call a HGCM function using the 32-bit + interface. + + + + VMMDevReq_HGCMCall64 + (63) + + Call a HGCM function using the 64-bit + interface. + + + + VMMDevReq_HGCMCancel + (64) + + Cancel a HGCM request currently being processed by a + host HGCM service. + + + +
+ + The flags field may contain: + + Flags + + + + + Name (hexadecimal + value) + + Description + + + + VBOX_HGCM_REQ_DONE + (0x00000001) + + The request has been processed by the host + service. + + + + VBOX_HGCM_REQ_CANCELLED + (0x00000002) + + This request was cancelled. + + + +
+
+ + + Connect + + The connection request must be issued by the guest HGCM client + before it can call the HGCM service (VMMDevHGCMConnect): + Connect request + + + + + Name + + Description + + + + header + + The generic HGCM request header with type equal to + VMMDevReq_HGCMConnect + (60). + + + + type + + The type of the service location information (32 + bit). + + + + location + + The service location information (128 bytes). + + + + clientId + + The client identifier assigned to the connecting + client by the HGCM subsystem (32-bit). + + + +
The type field tells the + HGCM how to look for the requested service: + Location Information Types + + + + + Name (hexadecimal + value) + + Description + + + + VMMDevHGCMLoc_LocalHost + (0x1) + + The requested service is a shared library located on + the host and the location information contains the library + name. + + + + VMMDevHGCMLoc_LocalHost_Existing + (0x2) + + The requested service is a preloaded one and the + location information contains the service name. + + + +
+ Currently preloaded HGCM services are hard-coded in + VirtualBox: + + VBoxSharedFolders + + + + VBoxSharedClipboard + + + + VBoxGuestPropSvc + + + + VBoxSharedOpenGL + + + There is no difference between both types of HGCM services, + only the location mechanism is different.
+ + The client identifier is returned by the host and must be used + in all subsequent requests by the client. +
+ + + Disconnect + + This request disconnects the client and makes the client + identifier invalid (VMMDevHGCMDisconnect): + Disconnect request + + + + + Name + + Description + + + + header + + The generic HGCM request header with type equal to + VMMDevReq_HGCMDisconnect + (61). + + + + clientId + + The client identifier previously returned by the + connect request (32-bit). + + + +
+
+ + + Call32 and Call64 + + Calls the HGCM service entry point (VMMDevHGCMCall) using 32-bit + or 64-bit addresses: + Call request + + + + + Name + + Description + + + + header + + The generic HGCM request header with type equal to + either VMMDevReq_HGCMCall32 + (62) or + VMMDevReq_HGCMCall64 + (63). + + + + clientId + + The client identifier previously returned by the + connect request (32-bit). + + + + function + + The function code to be processed by the service (32 + bit). + + + + cParms + + The number of following parameters (32-bit). This + value is 0 if the function requires no parameters. + + + + parms + + An array of parameter description structures + (HGCMFunctionParameter32 or + HGCMFunctionParameter64). + + + +
+ + The 32-bit parameter description (HGCMFunctionParameter32) + consists of 32-bit type field and 8 bytes of an opaque value, so 12 + bytes in total. The 64-bit variant (HGCMFunctionParameter64) consists + of the type and 12 bytes of a value, so 16 bytes in total. + + + Parameter types + + + + + Type + + Format of the + value + + + + VMMDevHGCMParmType_32bit (1) + + A 32-bit value. + + + + VMMDevHGCMParmType_64bit (2) + + A 64-bit value. + + + + VMMDevHGCMParmType_PhysAddr (3) + + A 32-bit size followed by a 32-bit or 64-bit guest + physical address. + + + + VMMDevHGCMParmType_LinAddr (4) + + A 32-bit size followed by a 32-bit or 64-bit guest + linear address. The buffer is used both for guest to host + and for host to guest data. + + + + VMMDevHGCMParmType_LinAddr_In (5) + + Same as VMMDevHGCMParmType_LinAddr but the buffer is + used only for host to guest data. + + + + VMMDevHGCMParmType_LinAddr_Out (6) + + Same as VMMDevHGCMParmType_LinAddr but the buffer is + used only for guest to host data. + + + + VMMDevHGCMParmType_LinAddr_Locked (7) + + Same as VMMDevHGCMParmType_LinAddr but the buffer is + already locked by the guest. + + + + VMMDevHGCMParmType_LinAddr_Locked_In (1) + + Same as VMMDevHGCMParmType_LinAddr_In but the buffer + is already locked by the guest. + + + + VMMDevHGCMParmType_LinAddr_Locked_Out (1) + + Same as VMMDevHGCMParmType_LinAddr_Out but the buffer + is already locked by the guest. + + + +
+ + The +
+ + + Cancel + + This request cancels a call request (VMMDevHGCMCancel): + Cancel request + + + + + Name + + Description + + + + header + + The generic HGCM request header with type equal to + VMMDevReq_HGCMCancel + (64). + + + +
+
+
+ + + Guest software interface + + The guest HGCM clients can call HGCM services from both drivers + and applications. + + + The guest driver interface + + The driver interface is implemented in the VirtualBox guest + additions driver (VBoxGuest), which works with the VMM virtual device. + Drivers must use the VBox Guest Library (VBGL), which provides an API + for HGCM clients (VBox/VBoxGuestLib.h + and VBox/VBoxGuest.h). + + +DECLR0VBGL(int) VbglR0HGCMConnect(VBGLHGCMHANDLE *pHandle, const char *pszServiceName, HGCMCLIENTID *pidClient); + Connects to the service: + VBoxGuestHGCMConnectInfo data; + + memset(&data, sizeof(VBoxGuestHGCMConnectInfo)); + + data.result = VINF_SUCCESS; + data.Loc.type = VMMDevHGCMLoc_LocalHost_Existing; + strcpy (data.Loc.u.host.achName, "VBoxSharedFolders"); + + rc = VbglHGCMConnect (&handle, "VBoxSharedFolders"&data); + + if (RT_SUCCESS (rc)) + { + rc = data.result; + } + + if (RT_SUCCESS (rc)) + { + /* Get the assigned client identifier. */ + ulClientID = data.u32ClientID; + } + + + +DECLVBGL(int) VbglHGCMDisconnect (VBGLHGCMHANDLE handle, VBoxGuestHGCMDisconnectInfo *pData); + Disconnects from the service. + VBoxGuestHGCMDisconnectInfo data; + + RtlZeroMemory (&data, sizeof (VBoxGuestHGCMDisconnectInfo)); + + data.result = VINF_SUCCESS; + data.u32ClientID = ulClientID; + + rc = VbglHGCMDisconnect (handle, &data); + + + +DECLVBGL(int) VbglHGCMCall (VBGLHGCMHANDLE handle, VBoxGuestHGCMCallInfo *pData, uint32_t cbData); + Calls a function in the service. +typedef struct _VBoxSFRead +{ + VBoxGuestHGCMCallInfo callInfo; + + /** pointer, in: SHFLROOT + * Root handle of the mapping which name is queried. + */ + HGCMFunctionParameter root; + + /** value64, in: + * SHFLHANDLE of object to read from. + */ + HGCMFunctionParameter handle; + + /** value64, in: + * Offset to read from. + */ + HGCMFunctionParameter offset; + + /** value64, in/out: + * Bytes to read/How many were read. + */ + HGCMFunctionParameter cb; + + /** pointer, out: + * Buffer to place data to. + */ + HGCMFunctionParameter buffer; + +} VBoxSFRead; + +/** Number of parameters */ +#define SHFL_CPARMS_READ (5) + +... + + VBoxSFRead data; + + /* The call information. */ + data.callInfo.result = VINF_SUCCESS; /* Will be returned by HGCM. */ + data.callInfo.u32ClientID = ulClientID; /* Client identifier. */ + data.callInfo.u32Function = SHFL_FN_READ; /* The function code. */ + data.callInfo.cParms = SHFL_CPARMS_READ; /* Number of parameters. */ + + /* Initialize parameters. */ + data.root.type = VMMDevHGCMParmType_32bit; + data.root.u.value32 = pMap->root; + + data.handle.type = VMMDevHGCMParmType_64bit; + data.handle.u.value64 = hFile; + + data.offset.type = VMMDevHGCMParmType_64bit; + data.offset.u.value64 = offset; + + data.cb.type = VMMDevHGCMParmType_32bit; + data.cb.u.value32 = *pcbBuffer; + + data.buffer.type = VMMDevHGCMParmType_LinAddr_Out; + data.buffer.u.Pointer.size = *pcbBuffer; + data.buffer.u.Pointer.u.linearAddr = (uintptr_t)pBuffer; + + rc = VbglHGCMCall (handle, &data.callInfo, sizeof (data)); + + if (RT_SUCCESS (rc)) + { + rc = data.callInfo.result; + *pcbBuffer = data.cb.u.value32; /* This is returned by the HGCM service. */ + } + + + + + Guest application interface + + Applications call the VirtualBox Guest Additions driver to + utilize the HGCM interface. There are IOCTL's which correspond to the + Vbgl* functions: + + VBOXGUEST_IOCTL_HGCM_CONNECT + + + + VBOXGUEST_IOCTL_HGCM_DISCONNECT + + + + VBOXGUEST_IOCTL_HGCM_CALL + + + + These IOCTL's get the same input buffer as + VbglHGCM* functions and the output + buffer has the same format as the input buffer. The same address can + be used as the input and output buffers. + + For example see the guest part of shared clipboard, which runs + as an application and uses the HGCM interface. + + + + + HGCM Service Implementation + + The HGCM service is a shared library with a specific set of entry + points. The library must export the + VBoxHGCMSvcLoad entry point: +extern "C" DECLCALLBACK(DECLEXPORT(int)) VBoxHGCMSvcLoad (VBOXHGCMSVCFNTABLE *ptable) + + + The service must check the + ptable->cbSize and + ptable->u32Version fields of the + input structure and fill the remaining fields with function pointers of + entry points and the size of the required client buffer size. + + The HGCM service gets a dedicated thread, which calls service + entry points synchronously, that is the service will be called again + only when a previous call has returned. However, the guest calls can be + processed asynchronously. The service must call a completion callback + when the operation is actually completed. The callback can be issued + from another thread as well. + + Service entry points are listed in the + VBox/hgcmsvc.h in the + VBOXHGCMSVCFNTABLE structure. + Service entry points + + + + + Entry + + Description + + + + pfnUnload + + The service is being unloaded. + + + + pfnConnect + + A client u32ClientID + is connected to the service. The + pvClient parameter points to + an allocated memory buffer which can be used by the service to + store the client information. + + + + pfnDisconnect + + A client is being disconnected. + + + + pfnCall + + A guest client calls a service function. The + callHandle must be used in + the VBOXHGCMSVCHELPERS::pfnCallComplete callback when the call + has been processed. + + + + pfnHostCall + + Called by the VirtualBox host components to perform + functions which should be not accessible by the guest. Usually + this entry point is used by VirtualBox to configure the + service. + + + + pfnSaveState + + The VM state is being saved and the service must save + relevant information using the SSM API + (VBox/ssm.h). + + + + pfnLoadState + + The VM is being restored from the saved state and the + service must load the saved information and be able to + continue operations from the saved state. + + + +
+
+
+ + + RDP Web Control + + The VirtualBox RDP Web Control (RDPWeb) + provides remote access to a running VM. RDPWeb is a RDP (Remote Desktop + Protocol) client based on Flash technology and can be used from a Web + browser with a Flash plugin. + + + RDPWeb features + + RDPWeb is embedded into a Web page and can connect to VRDP server + in order to displays the VM screen and pass keyboard and mouse events to + the VM. + + + + RDPWeb reference + + RDPWeb consists of two required components: + + Flash movie + RDPClientUI.swf + + + + JavaScript helpers + webclient.js + + + + The VirtualBox SDK contains sample HTML code + including: + + JavaScript library for embedding Flash content + SWFObject.js + + + + Sample HTML page + webclient3.html + + + + + RDPWeb functions + + RDPClientUI.swf and + webclient.js work with each other. + JavaScript code is responsible for a proper SWF initialization, + delivering mouse events to the SWF and processing resize requests from + the SWF. On the other hand, the SWF contains a few JavaScript callable + methods, which are used both from + webclient.js and the user HTML + page. + + + JavaScript functions + + webclient.js contains helper + functions. In the following table ElementId refers to an HTML + element name or attribute, and Element to the HTML element itself. + HTML code + <div id="FlashRDP"> + </div> + would have ElementId equal to FlashRDP and Element equal to + the div element. + + + + RDPWebClient.embedSWF(SWFFileName, ElementId) + + Uses SWFObject library to replace the HTML element with + the Flash movie. + + + + RDPWebClient.isRDPWebControlById(ElementId) + + Returns true if the given id refers to a RDPWeb Flash + element. + + + + RDPWebClient.isRDPWebControlByElement(Element) + + Returns true if the given element is a RDPWeb Flash + element. + + + + RDPWebClient.getFlashById(ElementId) + + Returns an element, which is referenced by the given id. + This function will try to resolve any element, event if it is + not a Flash movie. + + + + + + Flash methods callable from JavaScript + + RDPWebClienUI.swf methods can + be called directly from JavaScript code on a HTML page. + + + + getProperty(Name) + + + + setProperty(Name) + + + + connect() + + + + disconnect() + + + + keyboardSendCAD() + + + + + + Flash JavaScript callbacks + + RDPWebClienUI.swf calls + JavaScript functions provided by the HTML page. + + + + + Embedding RDPWeb in an HTML page + + It is necessary to include + webclient.js helper script. If + SWFObject library is used, the + swfobject.js must be also included + and RDPWeb flash content can be embedded to a Web page using dynamic + HTML. The HTML must include a "placeholder", which consists of 2 + div elements. + + + + + RDPWeb change log + + + Version 1.2.28 + + + + keyboardLayout, + keyboardLayouts, + UUID properties. + + + + Support for German keyboard layout on the client. + + + + Rebranding to Oracle. + + + + + + Version 1.1.26 + + + + webclient.js is a part of + the distribution package. + + + + lastError property. + + + + keyboardSendScancodes and + keyboardSendCAD methods. + + + + + + Version 1.0.24 + + + + Initial release. + + + + + + + + Drag and Drop + + Since VirtualBox 4.2 it's possible to transfer files from host to the + Linux guests by dragging files, directories or text from the host into the + guest's screen. This is called drag and drop + (DnD). + + In version 5.0 support for Windows guests has been added, as well as + the ability to transfer data the other way around, that is, from the guest + to the host. + + Currently only the VirtualBox Manager frontend supports drag and + drop. + + This chapter will show how to use the required interfaces provided + by VirtualBox for adding drag and drop functionality to third-party + frontends. + + + Basic concepts + + In order to use the interfaces provided by VirtualBox, some basic + concepts needs to be understood first: To successfully initiate a + drag and drop operation at least two sides needs to be involved, a + source and a target: + + The source is the side which provides the + data, e.g. is the origin of data. This data can be stored within the + source directly or can be retrieved on-demand by the source itself. Other + interfaces don't care where the data from this source actually came + from. + + The target on the other hand is the side which + provides the source a visual representation where the user can drop the + data the source offers. This representation can be a window (or just a + certain part of it), for example. + + The source and the target have abstract interfaces called + IDnDSource and + IDnDTarget. VirtualBox also + provides implementations of both interfaces, called + IGuestDnDSource and + IGuestDnDTarget. Both + implementations are also used in the VirtualBox Manager frontend. + + + + Supported formats + + As the target needs to perform specific actions depending on the + data the source provided, the target first needs to know what type of + data it actually is going to retrieve. It might be that the source offers + data the target cannot (or intentionally does not want to) + support. + + VirtualBox handles those data types by providing so-called + MIME types -- these MIME types were originally + defined in + RFC 2046 and + are also called Content-types. + IGuestDnDSource and + IGuestDnDTarget support + the following MIME types by default: + + text/uri-list - A list of + URIs (Uniform Resource Identifier, see + RFC 3986) + pointing to the file and/or directory paths already transferred + from the source to the target. + + + text/plain;charset=utf-8 and + UTF8_STRING - text in UTF-8 + format. + + + text/plain, TEXT + and STRING - plain ASCII text, + depending on the source's active ANSI page (if any). + + + + + If, for whatever reason, a certain default format should not be + supported or a new format should be registered, + IDnDSource and + IDnDTarget have methods derived from + IDnDBase which provide adding, + removing and enumerating specific formats. + Registering new or removing default formats on the guest side + currently is not implemented. + + + + + + VirtualBox external authentication modules + + VirtualBox supports arbitrary external modules to perform + authentication. The module is used when the authentication method is set + to "external" for a particular VM VRDE access and the library was + specified with VBoxManage setproperty + vrdeauthlibrary. Web service also use the authentication + module which was specified with VBoxManage setproperty + websrvauthlibrary. + + This library will be loaded by the VM or web service process on + demand, i.e. when the first remote desktop connection is made by a client + or when a client that wants to use the web service logs on. + + External authentication is the most flexible as the external handler + can both choose to grant access to everyone (like the "null" + authentication method would) and delegate the request to the guest + authentication component. When delegating the request to the guest + component, the handler will still be called afterwards with the option to + override the result. + + An authentication library is required to implement exactly one entry + point: + + #include "VBoxAuth.h" + +/** + * Authentication library entry point. + * + * Parameters: + * + * szCaller The name of the component which calls the library (UTF8). + * pUuid Pointer to the UUID of the accessed virtual machine. Can be NULL. + * guestJudgement Result of the guest authentication. + * szUser User name passed in by the client (UTF8). + * szPassword Password passed in by the client (UTF8). + * szDomain Domain passed in by the client (UTF8). + * fLogon Boolean flag. Indicates whether the entry point is called + * for a client logon or the client disconnect. + * clientId Server side unique identifier of the client. + * + * Return code: + * + * AuthResultAccessDenied Client access has been denied. + * AuthResultAccessGranted Client has the right to use the + * virtual machine. + * AuthResultDelegateToGuest Guest operating system must + * authenticate the client and the + * library must be called again with + * the result of the guest + * authentication. + * + * Note: When 'fLogon' is 0, only pszCaller, pUuid and clientId are valid and the return + * code is ignored. + */ +AuthResult AUTHCALL AuthEntry( + const char *szCaller, + PAUTHUUID pUuid, + AuthGuestJudgement guestJudgement, + const char *szUser, + const char *szPassword + const char *szDomain + int fLogon, + unsigned clientId) +{ + /* Process request against your authentication source of choice. */ + // if (authSucceeded(...)) + // return AuthResultAccessGranted; + return AuthResultAccessDenied; +} + + A note regarding the UUID implementation of the + pUuid argument: VirtualBox uses a + consistent binary representation of UUIDs on all platforms. For this + reason the integer fields comprising the UUID are stored as little endian + values. If you want to pass such UUIDs to code which assumes that the + integer fields are big endian (often also called network byte order), you + need to adjust the contents of the UUID to e.g. achieve the same string + representation. The required changes are: + + reverse the order of byte 0, 1, 2 and 3 + + + + reverse the order of byte 4 and 5 + + + + reverse the order of byte 6 and 7. + + Using this conversion you will get identical results when + converting the binary UUID to the string representation. + + The guestJudgement argument + contains information about the guest authentication status. For the first + call, it is always set to + AuthGuestNotAsked. In case the + AuthEntry function returns + AuthResultDelegateToGuest, a guest + authentication will be attempted and another call to the + AuthEntry is made with its result. This + can be either granted / denied or no judgement (the guest component chose + for whatever reason to not make a decision). In case there is a problem + with the guest authentication module (e.g. the Additions are not installed + or not running or the guest did not respond within a timeout), the "not + reacted" status will be returned. + + + + Using Java API + + + Introduction + + VirtualBox can be controlled by a Java API, both locally + (COM/XPCOM) and from remote (SOAP) clients. As with the Python bindings, + a generic glue layer tries to hide all platform differences, allowing + for source and binary compatibility on different platforms. + + + + Requirements + + To use the Java bindings, there are certain requirements depending + on the platform. First of all, you need JDK 1.5 (Java 5) or later. Also + please make sure that the version of the VirtualBox API .jar file + exactly matches the version of VirtualBox you use. To avoid confusion, + the VirtualBox API provides versioning in the Java package name, e.g. + the package is named org.virtualbox_3_2 + for VirtualBox version 3.2. + + XPCOM - for all platforms, + but Microsoft Windows. A Java bridge based on JavaXPCOM is shipped + with VirtualBox. The classpath must contain + vboxjxpcom.jar and the + vbox.home property must be set to + location where the VirtualBox binaries are. Please make sure that + the JVM bitness matches bitness of VirtualBox you use as the XPCOM + bridge relies on native libraries. + + Start your application like this: + java -cp vboxjxpcom.jar -Dvbox.home=/opt/virtualbox MyProgram + + + + + COM - for Microsoft + Windows. We rely on Jacob - a + generic Java to COM bridge - which has to be installed seperately. + See http://sourceforge.net/projects/jacob-project/ + for installation instructions. Also, the VirtualBox provided + vboxjmscom.jar must be in the + class path. + + Start your application like this: + java -cp vboxjmscom.jar;c:\jacob\jacob.jar -Djava.library.path=c:\jacob MyProgram + + + + SOAP - all platforms. Java + 6 is required, as it comes with builtin support for SOAP via the + JAX-WS library. Also, the VirtualBox provided + vbojws.jar must be in the class + path. In the SOAP case it's possible to create several + VirtualBoxManager instances to communicate with multiple + VirtualBox hosts. + + Start your application like this: + java -cp vboxjws.jar MyProgram + + + + + Exception handling is also generalized by the generic glue layer, + so that all methods could throw + VBoxException containing human-readable + text message (see getMessage() method) + along with wrapped original exception (see + getWrapped() method). + + + + Example + + This example shows a simple use case of the Java API. Differences + for SOAP vs. local version are minimal, and limited to the connection + setup phase (see ws variable). In the + SOAP case it's possible to create several VirtualBoxManager instances to + communicate with multiple VirtualBox hosts. + import org.virtualbox_4_3.*; + .... + VirtualBoxManager mgr = VirtualBoxManager.createInstance(null); + boolean ws = false; // or true, if we need the SOAP version + if (ws) + { + String url = "http://myhost:18034"; + String user = "test"; + String passwd = "test"; + mgr.connect(url, user, passwd); + } + IVirtualBox vbox = mgr.getVBox(); + System.out.println("VirtualBox version: " + vbox.getVersion() + "\n"); + // get first VM name + String m = vbox.getMachines().get(0).getName(); + System.out.println("\nAttempting to start VM '" + m + "'"); + // start it + mgr.startVm(m, null, 7000); + + if (ws) + mgr.disconnect(); + + mgr.cleanup(); + For more a complete example, see + TestVBox.java, shipped with the + SDK. It contains exception handling and error printing code, which + is important for reliable larger scale projects. + + It is good practice in long-running API clients to process the + system events every now and then in the main thread (does not work + in other threads). As a rule of thumb it makes sense to process them + every few 100msec to every few seconds). This is done by + calling + mgr.waitForEvents(0); + + This avoids that a large number of system events accumulate, which can + need a significant amount of memory, and as they also play a role in + object cleanup it helps freeing additional memory in a timely manner + which is used by the API implementation itself. Java's garbage collection + approach already needs more memory due to the delayed freeing of memory + used by no longer accessible objects, and not processing the system + events exacerbates the memory usage. The + TestVBox.java example code sprinkles + such lines over the code to achieve the desired effect. In multi-threaded + applications it can be called from the main thread periodically. + Sometimes it's possible to use the non-zero timeout variant of the + method, which then waits the specified number of milliseconds for + events, processing them immediately as they arrive. It achieves better + runtime behavior than separate sleeping/processing. + + + + + License information + + The sample code files shipped with the SDK are generally licensed + liberally to make it easy for anyone to use this code for their own + application code. + + The Java files under + bindings/webservice/java/jax-ws/ (library + files for the object-oriented web service) are, by contrast, licensed + under the GNU Lesser General Public License (LGPL) V2.1. + + See + sdk/bindings/webservice/java/jax-ws/src/COPYING.LIB + for the full text of the LGPL 2.1. + + When in doubt, please refer to the individual source code files + shipped with this SDK. + + + + Main API change log + + Generally, VirtualBox will maintain API compatibility within a major + release; a major release occurs when the first or the second of the three + version components of VirtualBox change (that is, in the x.y.z scheme, a + major release is one where x or y change, but not when only z + changes). + + In other words, updates like those from 2.0.0 to 2.0.2 will not come + with API breakages. + + Migration between major releases most likely will lead to API + breakage, so please make sure you updated code accordingly. The OOWS Java + wrappers enforce that mechanism by putting VirtualBox classes into + version-specific packages such as + org.virtualbox_2_2. This approach allows + for connecting to multiple VirtualBox versions simultaneously from the + same Java application. + + The following sections list incompatible changes that the Main API + underwent since the original release of this SDK Reference with VirtualBox + 2.0. A change is deemed "incompatible" only if it breaks existing client + code (e.g. changes in method parameter lists, renamed or removed + interfaces and similar). In other words, the list does not contain new + interfaces, methods or attributes or other changes that do not affect + existing client code. + + + Incompatible API changes with version 7.0 + + + + The machine's audio adapter has been moved into the new IAudioSettings interface, which in turn + takes care of of all audio settings of a virtual machine. + See IMachine::audioSettings and + IAudioSettings for more information. + + + The IVirtualBox::openMachine call now + requires an additional password parameter. If the machine is not encrypted the parameter is ignored. + + + When a new VM is being created, the default audio driver will be now + AudioDriverType_Default. This driver + type will automatically choose the best audio driver (backend) for the host OS &VBOX_PRODUCT; + currently is running on. + + + The host update functionality at IHost::update has been refactored into + IHost::updateHost, which in turn uses the new + IHostUpdateAgent interface, derived from the new + IUpdateAgent interface. + + + IGuestSession::directoryCopyFromGuest() and + IGuestSession::directoryCopyToGuest() no longer implicitly + copy recursively and follow symbolic links -- for this to continue working, the newly introduced flags + DirectoryCopyFlag::Recursive and/or + DirectoryCopyFlag::FollowLinks have to be used. + + + VBoxEventType_Last has been renamed to VBoxEventType_End + for consistency. + + + + + + + Incompatible API changes with version 6.1 + + + + Split off the graphics adapter part of + IMachine into + IGraphicsAdapter. + This moved 5 attributes. + + + + + + + + Incompatible API changes with version 6.0 + + + + Video recording APIs were changed as follows: + + All attributes which were living in IMachine before + have been moved to an own, dedicated interface named IRecordingSettings. + This new interface can be accessed via the new IMachine::recordingSettings + attribute. This should emphasize that recording is not limited to video capturing as such. + + + For further flexibility all specific per-VM-screen settings have been moved to a new interface + called IRecordingScreenSettings. Such settings now exist per configured + VM display and can be retrieved via the IRecordingSettings::screens + attribute or the IRecordingSettings::getScreenSettings + method. + For now all screen settings will share the same settings, e.g. different settings on a per-screen basis + is not implemented yet. + + + + The event IVideoCaptureChangedEvent was renamed into + IRecordingChangedEvent. + + + + + + Guest Control APIs were changed as follows: + + IGuest::createSession(), + IGuestSession::processCreate(), + IGuestSession::processCreateEx(), + IGuestSession::directoryOpen() and + IGuestSession::fileOpen() now will + return the new error code VBOX_E_MAXIMUM_REACHED if the limit for the according object + group has been reached. + + + The enumerations FileOpenExFlags, FsObjMoveFlags and DirectoryCopyFlags have + been renamed to FileOpenExFlag, + FsObjMoveFlag and DirectoryCopyFlag + accordingly to match the rest of the API. + + + + The following methods have been implemented: + IGuestSession::directoryCopyFromGuest() and + IGuestSession::directoryCopyToGuest(). + + + The following attributes have been implemented: + IGuestFsObjInfo::accessTime, + IGuestFsObjInfo::birthTime, + IGuestFsObjInfo::changeTime and + IGuestFsObjInfo::modificationTime. + + + + + + + The webservice version of the ISharedFolder + interface was changed from a struct to a managed object. This causes incompatiblities on the + protocol level as the shared folder attributes are not returned in the responses of + IVirtualBox::getSharedFolders and + IMachine::getSharedFolders anymore. They + return object UUIDs instead which need be wrapped by stub objects. The change is not visible when + using the appropriate client bindings from the most recent VirtualBox SDK. + + + + + + + + Incompatible API changes with version 5.x + + + ProcessCreateFlag::NoProfile has been renamed to + ProcessCreateFlag::Profile, + whereas the semantics also has been changed: ProcessCreateFlag::NoProfile + explicitly did not utilize the guest user's profile data, + which in turn ProcessCreateFlag::Profile + explicitly does now. + + + + + + + Incompatible API changes with version 5.0 + + + + The methods for saving state, adopting a saved state file, + discarding a saved state, taking a snapshot, restoring + a snapshot and deleting a snapshot have been moved from + IConsole to + IMachine. This straightens out the + logical placement of methods and was necessary to resolve a + long-standing issue, preventing 32-bit API clients from invoking + those operations in the case where no VM is running. + + IMachine::saveState() + replaces + IConsole::saveState() + + + IMachine::adoptSavedState() + replaces + IConsole::adoptSavedState() + + + IMachine::discardSavedState() + replaces + IConsole::discardSavedState() + + + IMachine::takeSnapshot() + replaces + IConsole::takeSnapshot() + + + IMachine::deleteSnapshot() + replaces + IConsole::deleteSnapshot() + + + IMachine::deleteSnapshotAndAllChildren() + replaces + IConsole::deleteSnapshotAndAllChildren() + + + IMachine::deleteSnapshotRange() + replaces + IConsole::deleteSnapshotRange() + + + IMachine::restoreSnapshot() + replaces + IConsole::restoreSnapshot() + + + Small adjustments to the parameter lists have been made to reduce + the number of API calls when taking online snapshots (no longer + needs explicit pausing), and taking a snapshot also returns now + the snapshot id (useful for finding the right snapshot if there + are non-unique snapshot names). + + + + Two new machine states have been introduced to allow proper + distinction between saving state and taking a snapshot. + MachineState::Saving + now is used exclusively while the VM's state is being saved, without + any overlaps with snapshot functionality. The new state + MachineState::Snapshotting + is used when an offline snapshot is taken and likewise the new state + MachineState::OnlineSnapshotting + is used when an online snapshot is taken. + + + + A new event has been introduced, which signals when a snapshot + has been restored: + ISnapshotRestoredEvent. + Previously the event + ISnapshotDeletedEvent + was signalled, which isn't logical (but could be distinguished from + actual deletion by the fact that the snapshot was still + there). + + + + The method + IVirtualBox::createMedium() + replaces + VirtualBox::createHardDisk(). + Adjusting existing code needs adding two parameters with + value AccessMode_ReadWrite + and DeviceType_HardDisk + respectively. The new method supports creating floppy and + DVD images, and (less obviously) further API functionality + such as cloning floppy images. + + + + The method + IMachine::getStorageControllerByInstance() + now has an additional parameter (first parameter), for specifying the + storage bus which the storage controller must be using. The method + was not useful before, as the instance numbers are only unique for a + specfic storage bus. + + + + The attribute + IMachine::sessionType has been + renamed to + IMachine::sessionName(). + This cleans up the confusing terminology (as the session type is + something different). + + + + The attribute + IMachine::guestPropertyNotificationPatterns + has been removed. In practice it was not usable because it is too + global and didn't distinguish between API clients. + + + Drag and drop APIs were changed as follows: + + + Methods for providing host to guest drag and drop + functionality, such as + IGuest::dragHGEnter, + IGuest::dragHGMove(), + IGuest::dragHGLeave(), + IGuest::dragHGDrop() and + IGuest::dragHGPutData(), + have been moved to an abstract base class called + IDnDTarget. + VirtualBox implements this base class in the + IGuestDnDTarget + interface. The implementation can be used by using the + IGuest::dnDTarget() + method. + Methods for providing guest to host drag and drop + functionality, such as + IGuest::dragGHPending(), + IGuest::dragGHDropped() and + IGuest::dragGHGetData(), + have been moved to an abstract base class called + IDnDSource. + VirtualBox implements this base class in the + IGuestDnDSource + interface. The implementation can be used by using the + IGuest::dnDSource() + method. + + + + The DragAndDropAction + enumeration has been renamed to + DnDAction. + + + + The DragAndDropMode + enumeration has been renamed to + DnDMode. + + + + The attribute + IMachine::dragAndDropMode + has been renamed to + IMachine::dnDMode(). + + + + The event + IDragAndDropModeChangedEvent + has been renamed to + IDnDModeChangedEvent. + + + + + + IDisplay and IFramebuffer interfaces were changed to + allow IFramebuffer object to reside in a separate frontend + process: + + + IDisplay::ResizeCompleted() has been removed, because the + IFramebuffer object does not provide the screen memory anymore. + + + + IDisplay::SetFramebuffer() has been replaced with + IDisplay::AttachFramebuffer() and IDisplay::DetachFramebuffer(). + + + + IDisplay::GetFramebuffer() has been replaced with + IDisplay::QueryFramebuffer(). + + + + IDisplay::GetScreenResolution() has a new output parameter + guestMonitorStatus + which tells whether the monitor is enabled in the guest. + + + + IDisplay::TakeScreenShot() and IDisplay::TakeScreenShotToArray() + have a new parameter + bitmapFormat. As a consequence of + this, IDisplay::TakeScreenShotPNGToArray() has been removed. + + + + IFramebuffer::RequestResize() has been replaced with + IFramebuffer::NotifyChange(). + + + + IFramebuffer::NotifyUpdateImage() added to support IFramebuffer + objects in a different process. + + + + IFramebuffer::Lock(), IFramebuffer::Unlock(), + IFramebuffer::Address(), IFramebuffer::UsesGuestVRAM() have been + removed because the IFramebuffer object does not provide the screen + memory anymore. + + + + + + IGuestSession, IGuestFile and IGuestProcess interfaces + were changed as follows: + + + Replaced IGuestSession::directoryQueryInfo and + IGuestSession::fileQueryInfo with a new + IGuestSession::fsObjQueryInfo + method that works on any type of file system object. + + + Replaced IGuestSession::fileRemove, + IGuestSession::symlinkRemoveDirectory and + IGuestSession::symlinkRemoveFile with a new + IGuestSession::fsObjRemove + method that works on any type of file system object except + directories. (fileRemove also worked on any type of object + too, though that was not the intent of the method.) + + + Replaced IGuestSession::directoryRename and + IGuestSession::directoryRename with a new + IGuestSession::fsObjRename + method that works on any type of file system object. + (directoryRename and fileRename may already have worked for + any kind of object, but that was never the intent of the + methods.) + + + Replaced the unimplemented IGuestSession::directorySetACL + and IGuestSession::fileSetACL with a new + IGuestSession::fsObjSetACL + method that works on all type of file system object. Also + added a UNIX-style mode parameter as an alternative to the + ACL. + + + Replaced IGuestSession::fileRemove, + IGuestSession::symlinkRemoveDirectory and + IGuestSession::symlinkRemoveFile with a new + IGuestSession::fsObjRemove + method that works on any type of file system object except + directories (fileRemove also worked on any type of object, + though that was not the intent of the method.) + + + Renamed IGuestSession::copyTo to + IGuestSession::fileCopyToGuest. + + + Renamed IGuestSession::copyFrom to + IGuestSession::fileCopyFromGuest. + + + Renamed the CopyFileFlag enum to + FileCopyFlag. + + + Renamed the IGuestSession::environment attribute to + IGuestSession::environmentChanges + to better reflect what it does. + + + Changed the + IGuestProcess::environment + to a stub returning E_NOTIMPL since it wasn't doing what was + advertised (returned changes, not the actual environment). + + + Renamed IGuestSession::environmentSet to + IGuestSession::environmentScheduleSet + to better reflect what it does. + + + Renamed IGuestSession::environmentUnset to + IGuestSession::environmentScheduleUnset + to better reflect what it does. + + + Removed IGuestSession::environmentGet it was only getting + changes while giving the impression it was actual environment + variables, and it did not represent scheduled unset + operations. + + + Removed IGuestSession::environmentClear as it duplicates + assigning an empty array to the + IGuestSession::environmentChanges + (formerly known as IGuestSession::environment). + + + Changed the + IGuestSession::processCreate + and + IGuestSession::processCreateEx + methods to accept arguments starting with argument zero (argv[0]) + instead of argument one (argv[1]). (Not yet implemented on the + guest additions side, so argv[0] will probably be ignored for a + short while.) + + + + Added a followSymlink parameter to the following methods: + + IGuestSession::directoryExists + IGuestSession::fileExists + IGuestSession::fileQuerySize + + + + The parameters to the + IGuestSession::fileOpen + and + IGuestSession::fileOpenEx + methods were altered: + The openMode string parameter was replaced by + the enum + FileAccessMode + and renamed to accessMode. + The disposition string parameter was replaced + by the enum + FileOpenAction + and renamed to openAction. + The unimplemented sharingMode string parameter + was replaced by the enum + FileSharingMode + (fileOpenEx only). + Added a flags parameter taking a list of + FileOpenExFlag values + (fileOpenEx only). + Removed the offset parameter (fileOpenEx + only). + + + + + IGuestFile::seek now + returns the new offset. + + + Renamed the FileSeekType enum used by + IGuestFile::seek + to FileSeekOrigin and + added the missing End value and renaming the Set to + Begin. + + + Extended the unimplemented + IGuestFile::setACL + method with a UNIX-style mode parameter as an alternative to + the ACL. + + + Renamed the IFile::openMode attribute to + IFile::accessMode + and change the type from string to + FileAccessMode to reflect + the changes to the fileOpen methods. + + + Renamed the IGuestFile::disposition attribute to + IFile::openAction and + change the type from string to + FileOpenAction to reflect + the changes to the fileOpen methods. + + + + + Added + IGuestSession::pathStyle + attribute. + + + Added + IGuestSession::fsObjExists + attribute. + + + + + + + + IConsole::GetDeviceActivity() returns information about multiple + devices. + + + + IMachine::ReadSavedThumbnailToArray() has a new parameter + bitmapFormat. As a consequence of + this, IMachine::ReadSavedThumbnailPNGToArray() has been removed. + + + + IMachine::QuerySavedScreenshotPNGSize() has been renamed to + IMachine::QuerySavedScreenshotInfo() which also returns + an array of available screenshot formats. + + + + IMachine::ReadSavedScreenshotPNGToArray() has been renamed to + IMachine::ReadSavedScreenshotToArray() which has a new parameter + bitmapFormat. + + + + IMachine::QuerySavedThumbnailSize() has been removed. + + + + The method + IWebsessionManager::getSessionObject() + now returns a new ISession instance + for every invocation. This puts the behavior in line with other + binding styles, which never forced the equivalent of establishing + another connection and logging in again to get another + instance. + + + + + + Incompatible API changes with version 4.3 + + + + The explicit medium locking methods + IMedium::lockRead() + and IMedium::lockWrite() + have been redesigned. They return a lock token object reference + now, and calling the + IToken::abandon() method (or + letting the reference count to this object drop to 0) will unlock + it. This eliminates the rather common problem that an API client + crash left behind locks, and also improves the safety (API clients + can't release locks they didn't obtain). + + + + The parameter list of + IAppliance::write() + has been changed slightly, to allow multiple flags to be + passed. + + + + IMachine::delete + has been renamed to + IMachine::deleteConfig(), + to improve API client binding compatibility. + + + + IMachine::export + has been renamed to + IMachine::exportTo(), + to improve API client binding compatibility. + + + + For + IMachine::launchVMProcess() + the meaning of the type parameter + has changed slightly. Empty string now means that the per-VM or + global default frontend is launched. Most callers of this method + should use the empty string now, unless they really want to override + the default and launch a particular frontend. + + + + Medium management APIs were changed as follows: + + + The type of attribute + IMedium::variant() + changed from unsigned long + to safe-array MediumVariant. + It is an array of flags instead of a set of flags which were + stored inside one variable. + + + + + The parameter list for + IMedium::cloneTo() + was modified. The type of parameter variant was changed from + unsigned long to safe-array MediumVariant. + + + + + The parameter list for + IMedium::createBaseStorage() + was modified. The type of parameter variant was changed from + unsigned long to safe-array MediumVariant. + + + + + The parameter list for + IMedium::createDiffStorage() + was modified. The type of parameter variant was changed from + unsigned long to safe-array MediumVariant. + + + + + The parameter list for + IMedium::cloneToBase() + was modified. The type of parameter variant was changed from + unsigned long to safe-array MediumVariant. + + + + + + + The type of attribute + IMediumFormat::capabilities() + changed from unsigned long to + safe-array MediumFormatCapabilities. + It is an array of flags instead of a set of flags which were stored + inside one variable. + + + + + The attribute + IMedium::logicalSize() + now returns the logical size of exactly this medium object (whether + it is a base or diff image). The old behavior was no longer + acceptable, as each image can have a different capacity. + + + + Guest control APIs - such as + IGuest, + IGuestSession, + IGuestProcess and so on - now + emit own events to provide clients much finer control and the ability + to write own frontends for guest operations. The event + IGuestSessionEvent acts as + an abstract base class for all guest control events. Certain guest + events contain a + IVirtualBoxErrorInfo + member to provide more information in case of an error happened on + the guest side. + + + + Guest control sessions on the guest started by + IGuest::createSession() + now are dedicated guest processes to provide more safety and + performance for certain operations. Also, the + IGuest::createSession() + call does not wait for the guest session being created anymore due + to the dedicated guest session processes just mentioned. This also + will enable webservice clients to handle guest session creation + more gracefully. To wait for a guest session being started, use the + newly added attribute + IGuestSession::status() + to query the current guest session status. + + + + The IGuestFile + APIs are now implemented to provide native guest file access from + the host. + + + + The parameter list for + IMedium::updateGuestAdditions() + was modified. It now supports specifying optional command line + arguments for the Guest Additions installer performing the actual + update on the guest. + + + + + A new event + IGuestUserStateChangedEvent + was introduced to provide guest user status updates to the host via + event listeners. To use this event there needs to be at least the 4.3 + Guest Additions installed on the guest. At the moment only the states + "Idle" and "InUse" of the + GuestUserState enumeration arei + supported on Windows guests, starting at Windows 2000 SP2. + + + + + The attribute + IGuestSession::protocolVersion + was added to provide a convenient way to lookup the guest session's + protocol version it uses to communicate with the installed Guest + Additions on the guest. Older Guest Additions will set the protocol + version to 1, whereas Guest Additions 4.3 will set the protocol + version to 2. This might change in the future as new features + arise. + + + + IDisplay::getScreenResolution + has been extended to return the display position in the guest. + + + + + The IUSBController + class is not a singleton of + IMachine anymore but + IMachine contains a list of USB + controllers present in the VM. The USB device filter handling was + moved to + IUSBDeviceFilters. + + + + + + + Incompatible API changes with version 4.2 + + + + Guest control APIs for executing guest processes, working with + guest files or directories have been moved to the newly introduced + IGuestSession interface which + can be created by calling + IGuest::createSession(). + + A guest session will act as a + guest user's impersonation so that the guest credentials only have to + be provided when creating a new guest session. There can be up to 32 + guest sessions at once per VM, each session serving up to 2048 guest + processes running or files opened. + + Instead of working with process or directory handles before + version 4.2, there now are the dedicated interfaces + IGuestProcess, + IGuestDirectory and + IGuestFile. To retrieve more + information of a file system object the new interface + IGuestFsObjInfo has been + introduced. + + Even though the guest control API was changed it is backwards + compatible so that it can be used with older installed Guest + Additions. However, to use upcoming features like process termination + or waiting for input / output new Guest Additions must be installed + when these features got implemented. + + The following limitations apply: + + The IGuestFile + interface is not fully implemented yet. + + The symbolic link APIs + IGuestSession::symlinkCreate(), + IGuestSession::symlinkExists(), + IGuestSession::symlinkRead(), + IGuestSession::symlinkRemoveDirectory() and + IGuestSession::symlinkRemoveFile() are not + implemented yet. + + The directory APIs + IGuestSession::directoryRemove(), + IGuestSession::directoryRemoveRecursive(), + IGuestSession::directoryRename() and + IGuestSession::directorySetACL() are not + implemented yet. + + The temporary file creation API + IGuestSession::fileCreateTemp() + is not implemented yet. + + Guest process termination via + IProcess::terminate() + is not implemented yet. + + Waiting for guest process output via + ProcessWaitForFlag::StdOut + and + ProcessWaitForFlag::StdErr + is not implemented yet. + To wait for process output, + IProcess::read() with + appropriate flags still can be used to periodically check for + new output data to arrive. Note that + ProcessCreateFlag::WaitForStdOut + and / or + ProcessCreateFlag::WaitForStdErr + need to be specified when creating a guest process via + IGuestSession::processCreate() + or + IGuestSession::processCreateEx(). + + + ACL (Access Control List) handling in general is not + implemented yet. + + + + + + + The LockType + enumeration now has an additional value + VM which tells + IMachine::lockMachine() + to create a full-blown object structure for running a VM. This was + the previous behavior with Write, + which now only creates the minimal object structure to save time and + resources (at the moment the Console object is still created, but all + sub-objects such as Display, Keyboard, Mouse, Guest are not. + + + + Machines can be put in groups (actually an array of groups). + The primary group affects the default placement of files belonging + to a VM. + IVirtualBox::createMachine() + and + IVirtualBox::composeMachineFilename() + have been adjusted accordingly, the former taking an array of groups + as an additional parameter and the latter taking a group as an + additional parameter. The create option handling has been changed for + those two methods, too. + + + + The method IVirtualBox::findMedium() has been removed, since + it provides a subset of the functionality of + IVirtualBox::openMedium(). + + + + The use of acronyms in API enumeration, interface, attribute + and method names has been made much more consistent, previously they + sometimes were lowercase and sometimes mixed case. They are now + consistently all caps: + Renamed identifiers in VirtualBox 4.2 + + + + + Old name + + New name + + + PointingHidType + PointingHIDType + + + KeyboardHidType + KeyboardHIDType + + + IPciAddress + IPCIAddress + + + IPciDeviceAttachment + IPCIDeviceAttachment + + + IMachine::pointingHidType + IMachine::pointingHIDType + + + IMachine::keyboardHidType + IMachine::keyboardHIDType + + + IMachine::hpetEnabled + IMachine::HPETEnabled + + + IMachine::sessionPid + IMachine::sessionPID + + + IMachine::ioCacheEnabled + IMachine::IOCacheEnabled + + + IMachine::ioCacheSize + IMachine::IOCacheSize + + + IMachine::pciDeviceAssignments + IMachine::PCIDeviceAssignments + + + IMachine::attachHostPciDevice() + IMachine::attachHostPCIDevice + + + IMachine::detachHostPciDevice() + IMachine::detachHostPCIDevice() + + + IConsole::attachedPciDevices + IConsole::attachedPCIDevices + + + IHostNetworkInterface::dhcpEnabled + IHostNetworkInterface::DHCPEnabled + + + IHostNetworkInterface::enableStaticIpConfig() + IHostNetworkInterface::enableStaticIPConfig() + + + IHostNetworkInterface::enableStaticIpConfigV6() + IHostNetworkInterface::enableStaticIPConfigV6() + + + IHostNetworkInterface::enableDynamicIpConfig() + IHostNetworkInterface::enableDynamicIPConfig() + + + IHostNetworkInterface::dhcpRediscover() + IHostNetworkInterface::DHCPRediscover() + + + IHost::Acceleration3DAvailable + IHost::acceleration3DAvailable + + + IGuestOSType::recommendedPae + IGuestOSType::recommendedPAE + + + IGuestOSType::recommendedDvdStorageController + IGuestOSType::recommendedDVDStorageController + + + IGuestOSType::recommendedDvdStorageBus + IGuestOSType::recommendedDVDStorageBus + + + IGuestOSType::recommendedHdStorageController + IGuestOSType::recommendedHDStorageController + + + IGuestOSType::recommendedHdStorageBus + IGuestOSType::recommendedHDStorageBus + + + IGuestOSType::recommendedUsbHid + IGuestOSType::recommendedUSBHID + + + IGuestOSType::recommendedHpet + IGuestOSType::recommendedHPET + + + IGuestOSType::recommendedUsbTablet + IGuestOSType::recommendedUSBTablet + + + IGuestOSType::recommendedRtcUseUtc + IGuestOSType::recommendedRTCUseUTC + + + IGuestOSType::recommendedUsb + IGuestOSType::recommendedUSB + + + INetworkAdapter::natDriver + INetworkAdapter::NATEngine + + + IUSBController::enabledEhci + IUSBController::enabledEHCI" + + + INATEngine::tftpPrefix + INATEngine::TFTPPrefix + + + INATEngine::tftpBootFile + INATEngine::TFTPBootFile + + + INATEngine::tftpNextServer + INATEngine::TFTPNextServer + + + INATEngine::dnsPassDomain + INATEngine::DNSPassDomain + + + INATEngine::dnsProxy + INATEngine::DNSProxy + + + INATEngine::dnsUseHostResolver + INATEngine::DNSUseHostResolver + + + VBoxEventType::OnHostPciDevicePlug + VBoxEventType::OnHostPCIDevicePlug + + + ICPUChangedEvent::cpu + ICPUChangedEvent::CPU + + + INATRedirectEvent::hostIp + INATRedirectEvent::hostIP + + + INATRedirectEvent::guestIp + INATRedirectEvent::guestIP + + + IHostPciDevicePlugEvent + IHostPCIDevicePlugEvent + + +
+
+
+
+ + + Incompatible API changes with version 4.1 + + + + The method + IAppliance::importMachines() + has one more parameter now, which allows to configure the import + process in more detail. + + + + + The method + IVirtualBox::openMedium() + has one more parameter now, which allows resolving duplicate medium + UUIDs without the need for external tools. + + + + The INetworkAdapter + interface has been cleaned up. The various methods to activate an + attachment type have been replaced by the + INetworkAdapter::attachmentType + setter. + Additionally each attachment mode now has its own attribute, + which means that host only networks no longer share the settings with + bridged interfaces. + To allow introducing new network attachment implementations + without making API changes, the concept of a generic network + attachment driver has been introduced, which is configurable through + key/value properties. + + + + This version introduces the guest facilities concept. A guest + facility either represents a module or feature the guest is running + or offering, which is defined by + AdditionsFacilityType. + Each facility is member of a + AdditionsFacilityClass + and has a current status indicated by + AdditionsFacilityStatus, + together with a timestamp (in ms) of the last status update. + To address the above concept, the following changes were made: + + + + In the IGuest interface, the + following were removed: + + + the + supportsSeamless + attribute; + + + the + supportsGraphics + attribute; + + + + + + + The function + IGuest::getFacilityStatus() + was added. It quickly provides a facility's status without + the need to get the facility collection with + IGuest::facilities. + + + + + The attribute + IGuest::facilities + was added to provide an easy to access collection of all + currently known guest facilities, that is, it contains all + facilies where at least one status update was made since the + guest was started. + + + + + The interface + IAdditionsFacility + was added to represent a single facility returned by + IGuest::facilities. + + + + + AdditionsFacilityStatus + was added to represent a facility's overall status. + + + + + AdditionsFacilityType and + AdditionsFacilityClass were + added to represent the facility's type and class. + + + + + + + + + + Incompatible API changes with version 4.0 + + + + A new Java glue layer replacing the previous OOWS JAX-WS + bindings was introduced. The new library allows for uniform code + targeting both local (COM/XPCOM) and remote (SOAP) transports. Now, + instead of IWebsessionManager, the + new class VirtualBoxManager must be + used. See for details. + + + + The confusingly named and impractical session APIs were + changed. In existing client code, the following changes need to be + made: + + Replace any + IVirtualBox::openSession(uuidMachine, + ...) API call with the machine's + IMachine::lockMachine() + call and a + LockType.Write argument. The + functionality is unchanged, but instead of "opening a direct + session on a machine" all documentation now refers to + "obtaining a write lock on a machine for the client + session". + + + + Similarly, replace any + IVirtualBox::openExistingSession(uuidMachine, + ...) call with the machine's + IMachine::lockMachine() + call and a LockType.Shared + argument. Whereas it was previously impossible to connect a + client session to a running VM process in a race-free manner, + the new API will atomically either write-lock the machine for + the current session or establish a remote link to an existing + session. Existing client code which tried calling both + openSession() and + openExistingSession() can now + use this one call instead. + + + + Third, replace any + IVirtualBox::openRemoteSession(uuidMachine, + ...) call with the machine's + IMachine::launchVMProcess() + call. The functionality is unchanged. + + + + The SessionState enum + was adjusted accordingly: "Open" is now "Locked", "Closed" is + now "Unlocked", "Closing" is now "Unlocking". + + + + + + Virtual machines created with VirtualBox 4.0 or later no + longer register their media in the global media registry in the + VirtualBox.xml file. Instead, such + machines list all their media in their own machine XML files. As a + result, a number of media-related APIs had to be modified again. + + + Neither + IVirtualBox::createHardDisk() + nor + IVirtualBox::openMedium() + register media automatically any more. + + + + IMachine::attachDevice() + and + IMachine::mountMedium() + now take an IMedium object instead of a UUID as an argument. It + is these two calls which add media to a registry now (either a + machine registry for machines created with VirtualBox 4.0 or + later or the global registry otherwise). As a consequence, if a + medium is opened but never attached to a machine, it is no + longer added to any registry any more. + + + + To reduce code duplication, the APIs + IVirtualBox::findHardDisk(), getHardDisk(), findDVDImage(), + getDVDImage(), findFloppyImage() and getFloppyImage() have all + been merged into IVirtualBox::findMedium(), and + IVirtualBox::openHardDisk(), openDVDImage() and + openFloppyImage() have all been merged into + IVirtualBox::openMedium(). + + + + The rare use case of changing the UUID and parent UUID + of a medium previously handled by + openHardDisk() is now in a + separate IMedium::setIDs method. + + + + ISystemProperties::get/setDefaultHardDiskFolder() + have been removed since disk images are now by default placed + in each machine's folder. + + + + The + ISystemProperties::infoVDSize + attribute replaces the + getMaxVDISize() + API call; this now uses bytes instead of megabytes. + + + + + + Machine management APIs were enhanced as follows: + + IVirtualBox::createMachine() + is no longer restricted to creating machines in the default + "Machines" folder, but can now create machines at arbitrary + locations. For this to work, the parameter list had to be + changed. + + + + The long-deprecated + IVirtualBox::createLegacyMachine() + API has been removed. + + + + To reduce code duplication and for consistency with the + aforementioned media APIs, + IVirtualBox::getMachine() has + been merged with + IVirtualBox::findMachine(), + and + IMachine::getSnapshot() has + been merged with + IMachine::findSnapshot(). + + + + IVirtualBox::unregisterMachine() + was replaced with + IMachine::unregister() + with additional functionality for cleaning up machine + files. + + + + IMachine::deleteSettings + has been replaced by IMachine::delete, which allows specifying + which disk images are to be deleted as part of the deletion, + and because it can take a while it also returns a + IProgress object reference, + so that the completion of the asynchronous activities can be + monitored. + + + + IConsole::forgetSavedState + has been renamed to + IConsole::discardSavedState(). + + + + + + All event callbacks APIs were replaced with a new, generic + event mechanism that can be used both locally (COM, XPCOM) and + remotely (web services). Also, the new mechanism is usable from + scripting languages and a local Java. See + events for details. The new concept + will require changes to all clients that used event callbacks. + + + + additionsActive() was replaced + with + additionsRunLevel() + and + getAdditionsStatus() + in order to support a more detailed status of the current Guest + Additions loading/readiness state. + IGuest::additionsVersion() + no longer returns the Guest Additions interface version but the + installed Guest Additions version and revision in form of + 3.3.0r12345. + + + + To address shared folders auto-mounting support, the following + APIs were extended to require an additional + automount parameter: + + IVirtualBox::createSharedFolder() + + + + IMachine::createSharedFolder() + + + + IConsole::createSharedFolder() + + Also, a new property named + autoMount was added to the + ISharedFolder + interface. + + + + The appliance (OVF) APIs were enhanced as + follows: + + IMachine::export + received an extra parameter + location, which is used to + decide for the disk naming. + + + + IAppliance::write() + received an extra parameter + manifest, which can suppress + creating the manifest file on export. + + + + IVFSExplorer::entryList() + received two extra parameters + sizes and + modes, which contains the + sizes (in bytes) and the file access modes (in octal form) of + the returned files. + + + + + + Support for remote desktop access to virtual machines has been + cleaned up to allow third party implementations of the remote + desktop server. This is called the VirtualBox Remote Desktop + Extension (VRDE) and can be added to VirtualBox by installing the + corresponding extension package; see the VirtualBox User Manual for + details. + + The following API changes were made to support the VRDE + interface: + + IVRDPServer has been + renamed to + IVRDEServer. + + + + IRemoteDisplayInfo has + been renamed to + IVRDEServerInfo. + + + + IMachine::VRDEServer + replaces + VRDPServer. + + + + IConsole::VRDEServerInfo + replaces + RemoteDisplayInfo. + + + + ISystemProperties::VRDEAuthLibrary + replaces + RemoteDisplayAuthLibrary. + + + + The following methods have been implemented in + IVRDEServer to support + generic VRDE properties: + + IVRDEServer::setVRDEProperty + + + + IVRDEServer::getVRDEProperty + + + + IVRDEServer::VRDEProperties + + + + A few implementation-specific attributes of the old + IVRDPServer interface have + been removed and replaced with properties: + + IVRDPServer::Ports + has been replaced with the + "TCP/Ports" property. + The property value is a string, which contains a + comma-separated list of ports or ranges of ports. Use a + dash between two port numbers to specify a range. + Example: + "5000,5010-5012" + + + + IVRDPServer::NetAddress + has been replaced with the + "TCP/Address" property. + The property value is an IP address string. Example: + "127.0.0.1" + + + + IVRDPServer::VideoChannel + has been replaced with the + "VideoChannel/Enabled" + property. The property value is either + "true" or + "false" + + + + IVRDPServer::VideoChannelQuality + has been replaced with the + "VideoChannel/Quality" + property. The property value is a string which contain a + decimal number in range 10..100. Invalid values are + ignored and the quality is set to the default value 75. + Example: "50" + + + + + + + + The VirtualBox external authentication module interface has + been updated and made more generic. Because of that, + VRDPAuthType enumeration has been + renamed to AuthType. + + + + + + Incompatible API changes with version 3.2 + + + + The following interfaces were renamed for consistency: + + + IMachine::getCpuProperty() is now + IMachine::getCPUProperty(); + + + + IMachine::setCpuProperty() is now + IMachine::setCPUProperty(); + + + + IMachine::getCpuIdLeaf() is now + IMachine::getCPUIDLeaf(); + + + + IMachine::setCpuIdLeaf() is now + IMachine::setCPUIDLeaf(); + + + + IMachine::removeCpuIdLeaf() is now + IMachine::removeCPUIDLeaf(); + + + + IMachine::removeAllCpuIdLeafs() is now + IMachine::removeAllCPUIDLeaves(); + + + + the CpuPropertyType enum is now + CPUPropertyType. + + + + IVirtualBoxCallback::onSnapshotDiscarded() is now + IVirtualBoxCallback::onSnapshotDeleted. + + + + + + When creating a VM configuration with + IVirtualBox::createMachine() + it is now possible to ignore existing configuration files which would + previously have caused a failure. For this the + override parameter was added. + + + + Deleting snapshots via + IConsole::deleteSnapshot() is now + possible while the associated VM is running in almost all cases. + The API is unchanged, but client code that verifies machine states + to determine whether snapshots can be deleted may need to be + adjusted. + + + + The IoBackendType enumeration was replaced with a boolean flag + (see + IStorageController::useHostIOCache). + + + + To address multi-monitor support, the following APIs were + extended to require an additional + screenId parameter: + + IMachine::querySavedThumbnailSize() + + + + IMachine::readSavedThumbnailToArray() + + + + IMachine::querySavedScreenshotPNGSize() + + + + IMachine::readSavedScreenshotPNGToArray() + + + + + + The shape parameter of + IConsoleCallback::onMousePointerShapeChange was changed from a + implementation-specific pointer to a safearray, enabling scripting + languages to process pointer shapes. + + + + + + Incompatible API changes with version 3.1 + + + + Due to the new flexibility in medium attachments that was + introduced with version 3.1 (in particular, full flexibility with + attaching CD/DVD drives to arbitrary controllers), we seized the + opportunity to rework all interfaces dealing with storage media to + make the API more flexible as well as logical. The + IStorageController, + IMedium, + IMediumAttachment and + IMachine interfaces were + affected the most. Existing code using them to configure storage and + media needs to be carefully checked. + + All media (hard disks, floppies and CDs/DVDs) are now + uniformly handled through the IMedium + interface. The device-specific interfaces + (IHardDisk, IDVDImage, + IHostDVDDrive, IFloppyImage and + IHostFloppyDrive) have been merged into IMedium; CD/DVD + and floppy media no longer need special treatment. The device type + of a medium determines in which context it can be used. Some + functionality was moved to the other storage-related + interfaces. + + IMachine::attachHardDisk and similar methods have + been renamed and generalized to deal with any type of drive and + medium. + IMachine::attachDevice() + is the API method for adding any drive to a storage controller. The + floppy and DVD/CD drives are no longer handled specially, and that + means you can have more than one of them. As before, drives can only + be changed while the VM is powered off. Mounting (or unmounting) + removable media at runtime is possible with + IMachine::mountMedium(). + + Newly created virtual machines have no storage controllers + associated with them. Even the IDE Controller needs to be created + explicitly. The floppy controller is now visible as a separate + controller, with a new storage bus type. For each storage bus type + you can query the device types which can be attached, so that it is + not necessary to hardcode any attachment rules. + + This required matching changes e.g. in the callback interfaces + (the medium specific change notification was replaced by a generic + medium change notification) and removing associated enums (e.g. + DriveState). In many places the incorrect use of the + plural form "media" was replaced by "medium", to improve + consistency. + + + + Reading the + IMedium::state attribute no + longer automatically performs an accessibility check; a new method + IMedium::refreshState() + does this. The attribute only returns the state now. + + + + There were substantial changes related to snapshots, triggered + by the "branched snapshots" functionality introduced with version + 3.1. IConsole::discardSnapshot was renamed to + IConsole::deleteSnapshot(). + IConsole::discardCurrentState and + IConsole::discardCurrentSnapshotAndState were removed; corresponding + new functionality is in + IConsole::restoreSnapshot(). + Also, when IConsole::takeSnapshot() + is called on a running virtual machine, a live snapshot will be + created. The old behavior was to temporarily pause the virtual + machine while creating an online snapshot. + + + + The IVRDPServer, + IRemoteDisplayInfo" and + IConsoleCallback interfaces were + changed to reflect VRDP server ability to bind to one of available + ports from a list of ports. + + The IVRDPServer::port + attribute has been replaced with + IVRDPServer::ports, which is a + comma-separated list of ports or ranges of ports. + + An IRemoteDisplayInfo::port" + attribute has been added for querying the actual port VRDP server + listens on. + + An IConsoleCallback::onRemoteDisplayInfoChange() notification + callback has been added. + + + + The parameter lists for the following functions were + modified: + + IHost::removeHostOnlyNetworkInterface() + + + + IHost::removeUSBDeviceFilter() + + + + + + In the OOWS bindings for JAX-WS, the behavior of structures + changed: for one, we implemented natural structures field access so + you can just call a "get" method to obtain a field. Secondly, + setters in structures were disabled as they have no expected effect + and were at best misleading. + + + + + + Incompatible API changes with version 3.0 + + + + In the object-oriented web service bindings for JAX-WS, proper + inheritance has been introduced for some classes, so explicit + casting is no longer needed to call methods from a parent class. In + particular, IHardDisk and other classes now properly derive from + IMedium. + + + + All object identifiers (machines, snapshots, disks, etc) + switched from GUIDs to strings (now still having string + representation of GUIDs inside). As a result, no particular internal + structure can be assumed for object identifiers; instead, they + should be treated as opaque unique handles. This change mostly + affects Java and C++ programs; for other languages, GUIDs are + transparently converted to strings. + + + + The uses of NULL strings have been changed greatly. All out + parameters now use empty strings to signal a null value. For in + parameters both the old NULL and empty string is allowed. This + change was necessary to support more client bindings, especially + using the web service API. Many of them either have no special NULL + value or have trouble dealing with it correctly in the respective + library code. + + + + Accidentally, the TSBool interface still appeared + in 3.0.0, and was removed in 3.0.2. This is an SDK bug, do not use + the SDK for VirtualBox 3.0.0 for developing clients. + + + + The type of + IVirtualBoxErrorInfo::resultCode + changed from + result to + long. + + + + The parameter list of IVirtualBox::openHardDisk was + changed. + + + + The method IConsole::discardSavedState was renamed to + IConsole::forgetSavedState, and a parameter was added. + + + + The method IConsole::powerDownAsync was renamed to + IConsole::powerDown, + and the previous method with that name was deleted. So effectively a + parameter was added. + + + + In the + IFramebuffer interface, the + following were removed: + + the operationSupported + attribute; + + (as a result, the + FramebufferAccelerationOperation + enum was no longer needed and removed as well); + + + + the solidFill() + method; + + + + the copyScreenBits() + method. + + + + + + In the IDisplay + interface, the following were removed: + + the + setupInternalFramebuffer() + method; + + + + the lockFramebuffer() + method; + + + + the unlockFramebuffer() + method; + + + + the + registerExternalFramebuffer() + method. + + + + + + + + Incompatible API changes with version 2.2 + + + + Added explicit version number into JAX-WS Java package names, + such as org.virtualbox_2_2, + allowing connect to multiple VirtualBox clients from single Java + application. + + + + The interfaces having a "2" suffix attached to them with + version 2.1 were renamed again to have that suffix removed. This + time around, this change involves only the name, there are no + functional differences. + + As a result, IDVDImage2 is now IDVDImage; IHardDisk2 is now + IHardDisk; IHardDisk2Attachment is now IHardDiskAttachment. + + Consequentially, all related methods and attributes that had a + "2" suffix have been renamed; for example, IMachine::attachHardDisk2 + now becomes IMachine::attachHardDisk(). + + + + IVirtualBox::openHardDisk has an extra parameter for opening a + disk read/write or read-only. + + + + The remaining collections were replaced by more performant + safe-arrays. This affects the following collections: + + + + IGuestOSTypeCollection + + + + IHostDVDDriveCollection + + + + IHostFloppyDriveCollection + + + + IHostUSBDeviceCollection + + + + IHostUSBDeviceFilterCollection + + + + IProgressCollection + + + + ISharedFolderCollection + + + + ISnapshotCollection + + + + IUSBDeviceCollection + + + + IUSBDeviceFilterCollection + + + + + + Since "Host Interface Networking" was renamed to "bridged + networking" and host-only networking was introduced, all associated + interfaces needed renaming as well. In detail: + + + + The HostNetworkInterfaceType enum has been renamed to + HostNetworkInterfaceMediumType + + + + The IHostNetworkInterface::type attribute has been renamed + to + IHostNetworkInterface::mediumType + + + + INetworkAdapter::attachToHostInterface() has been renamed + to INetworkAdapter::attachToBridgedInterface + + + + In the IHost interface, createHostNetworkInterface() has + been renamed to + createHostOnlyNetworkInterface() + + + + Similarly, removeHostNetworkInterface() has been renamed + to + removeHostOnlyNetworkInterface() + + + + + + + + Incompatible API changes with version 2.1 + + + + With VirtualBox 2.1, error codes were added to many error + infos that give the caller a machine-readable (numeric) feedback in + addition to the error string that has always been available. This is + an ongoing process, and future versions of this SDK reference will + document the error codes for each method call. + + + + The hard disk and other media interfaces were completely + redesigned. This was necessary to account for the support of VMDK, + VHD and other image types; since backwards compatibility had to be + broken anyway, we seized the moment to redesign the interfaces in a + more logical way. + + + + Previously, the old IHardDisk interface had several + derivatives called IVirtualDiskImage, IVMDKImage, IVHDImage, + IISCSIHardDisk and ICustomHardDisk for the various disk formats + supported by VirtualBox. The new IHardDisk2 interface that comes + with version 2.1 now supports all hard disk image formats + itself. + + + + IHardDiskFormat is a new interface to describe the + available back-ends for hard disk images (e.g. VDI, VMDK, VHD or + iSCSI). The IHardDisk2::format attribute can be used to find out + the back-end that is in use for a particular hard disk image. + ISystemProperties::hardDiskFormats[] contains a list of all + back-ends supported by the system. + ISystemProperties::defaultHardDiskFormat + contains the default system format. + + + + In addition, the new + IMedium interface is a generic + interface for hard disk, DVD and floppy images that contains the + attributes and methods shared between them. It can be considered + a parent class of the more specific interfaces for those images, + which are now IHardDisk2, IDVDImage2 and IFloppyImage2. + + In each case, the "2" versions of these interfaces replace + the earlier versions that did not have the "2" suffix. + Previously, the IDVDImage and IFloppyImage interfaces were + entirely unrelated to IHardDisk. + + + + As a result, all parts of the API that previously + referenced IHardDisk, IDVDImage or IFloppyImage or any of the + old subclasses are gone and will have replacements that use + IHardDisk2, IDVDImage2 and IFloppyImage2; see, for example, + IMachine::attachHardDisk2. + + + + In particular, the IVirtualBox::hardDisks2 array replaces + the earlier IVirtualBox::hardDisks collection. + + + + + + IGuestOSType was + extended to group operating systems into families and for 64-bit + support. + + + + The + IHostNetworkInterface + interface was completely rewritten to account for the changes in how + Host Interface Networking is now implemented in VirtualBox + 2.1. + + + + The IVirtualBox::machines2[] array replaces the former + IVirtualBox::machines collection. + + + + Added + IHost::getProcessorFeature() + and ProcessorFeature + enumeration. + + + + The parameter list for + IVirtualBox::createMachine() + was modified. + + + + Added IMachine::pushGuestProperty. + + + + New attributes in IMachine: accelerate3DEnabled, + HWVirtExVPIDEnabled, + IMachine::guestPropertyNotificationPatterns, + CPUCount. + + + + Added + IConsole::powerUpPaused() + and + IConsole::getGuestEnteredACPIMode(). + + + + Removed ResourceUsage enumeration. + + + +
+
+ diff --git a/doc/manual/en_US/UserManual.xml b/doc/manual/en_US/UserManual.xml new file mode 100644 index 00000000..c9d7725d --- /dev/null +++ b/doc/manual/en_US/UserManual.xml @@ -0,0 +1,112 @@ + + + + +%all.entities; +]> + + + + + + + &VBOX_PRODUCT; + + User Manual + + Version &VBOX_VERSION_STRING; + + &VBOX_VENDOR; + +
http://www.virtualbox.org
+ + + + 2004-&VBOX_C_YEAR; + + &VBOX_VENDOR; + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/doc/manual/en_US/docbook-refentry-link-replacement-xsl-gen.xsl b/doc/manual/en_US/docbook-refentry-link-replacement-xsl-gen.xsl new file mode 100644 index 00000000..1fe16adf --- /dev/null +++ b/doc/manual/en_US/docbook-refentry-link-replacement-xsl-gen.xsl @@ -0,0 +1,41 @@ + + + + + + + + + + + + + diff --git a/doc/manual/en_US/images/clone-vm-1.png b/doc/manual/en_US/images/clone-vm-1.png new file mode 100644 index 00000000..f47904a7 Binary files /dev/null and b/doc/manual/en_US/images/clone-vm-1.png differ diff --git a/doc/manual/en_US/images/clone-vm-2.png b/doc/manual/en_US/images/clone-vm-2.png new file mode 100644 index 00000000..d8e98d1f Binary files /dev/null and b/doc/manual/en_US/images/clone-vm-2.png differ diff --git a/doc/manual/en_US/images/clone-vm-3.png b/doc/manual/en_US/images/clone-vm-3.png new file mode 100644 index 00000000..62492a60 Binary files /dev/null and b/doc/manual/en_US/images/clone-vm-3.png differ diff --git a/doc/manual/en_US/images/cloud-profile-manager.png b/doc/manual/en_US/images/cloud-profile-manager.png new file mode 100644 index 00000000..a262d386 Binary files /dev/null and b/doc/manual/en_US/images/cloud-profile-manager.png differ diff --git a/doc/manual/en_US/images/cloudvm-add.png b/doc/manual/en_US/images/cloudvm-add.png new file mode 100644 index 00000000..33cf7f1e Binary files /dev/null and b/doc/manual/en_US/images/cloudvm-add.png differ diff --git a/doc/manual/en_US/images/cloudvm-new.png b/doc/manual/en_US/images/cloudvm-new.png new file mode 100644 index 00000000..9f6016d5 Binary files /dev/null and b/doc/manual/en_US/images/cloudvm-new.png differ diff --git a/doc/manual/en_US/images/cloudvm-oci-group.png b/doc/manual/en_US/images/cloudvm-oci-group.png new file mode 100644 index 00000000..b302f6b2 Binary files /dev/null and b/doc/manual/en_US/images/cloudvm-oci-group.png differ diff --git a/doc/manual/en_US/images/cloudvm-overview.png b/doc/manual/en_US/images/cloudvm-overview.png new file mode 100644 index 00000000..2d75c642 Binary files /dev/null and b/doc/manual/en_US/images/cloudvm-overview.png differ diff --git a/doc/manual/en_US/images/create-vm-1.png b/doc/manual/en_US/images/create-vm-1.png new file mode 100644 index 00000000..88b1cbdc Binary files /dev/null and b/doc/manual/en_US/images/create-vm-1.png differ diff --git a/doc/manual/en_US/images/create-vm-2.png b/doc/manual/en_US/images/create-vm-2.png new file mode 100644 index 00000000..03b16810 Binary files /dev/null and b/doc/manual/en_US/images/create-vm-2.png differ diff --git a/doc/manual/en_US/images/create-vm-3.png b/doc/manual/en_US/images/create-vm-3.png new file mode 100644 index 00000000..90c35138 Binary files /dev/null and b/doc/manual/en_US/images/create-vm-3.png differ diff --git a/doc/manual/en_US/images/create-vm-4.png b/doc/manual/en_US/images/create-vm-4.png new file mode 100644 index 00000000..e3599782 Binary files /dev/null and b/doc/manual/en_US/images/create-vm-4.png differ diff --git a/doc/manual/en_US/images/details-pane.png b/doc/manual/en_US/images/details-pane.png new file mode 100644 index 00000000..f4042a35 Binary files /dev/null and b/doc/manual/en_US/images/details-pane.png differ diff --git a/doc/manual/en_US/images/dnd-modes.png b/doc/manual/en_US/images/dnd-modes.png new file mode 100644 index 00000000..0ef22d8a Binary files /dev/null and b/doc/manual/en_US/images/dnd-modes.png differ diff --git a/doc/manual/en_US/images/export-appliance-oci.png b/doc/manual/en_US/images/export-appliance-oci.png new file mode 100644 index 00000000..312e853b Binary files /dev/null and b/doc/manual/en_US/images/export-appliance-oci.png differ diff --git a/doc/manual/en_US/images/global-tools-menu.png b/doc/manual/en_US/images/global-tools-menu.png new file mode 100644 index 00000000..a1aaa749 Binary files /dev/null and b/doc/manual/en_US/images/global-tools-menu.png differ diff --git a/doc/manual/en_US/images/guest-fm.png b/doc/manual/en_US/images/guest-fm.png new file mode 100644 index 00000000..fa0528e2 Binary files /dev/null and b/doc/manual/en_US/images/guest-fm.png differ diff --git a/doc/manual/en_US/images/import-instance.png b/doc/manual/en_US/images/import-instance.png new file mode 100644 index 00000000..8dfb6ed2 Binary files /dev/null and b/doc/manual/en_US/images/import-instance.png differ diff --git a/doc/manual/en_US/images/log-viewer.png b/doc/manual/en_US/images/log-viewer.png new file mode 100644 index 00000000..dbe4e9cd Binary files /dev/null and b/doc/manual/en_US/images/log-viewer.png differ diff --git a/doc/manual/en_US/images/machine-tools-menu.png b/doc/manual/en_US/images/machine-tools-menu.png new file mode 100644 index 00000000..9272ecff Binary files /dev/null and b/doc/manual/en_US/images/machine-tools-menu.png differ diff --git a/doc/manual/en_US/images/ovf-import.png b/doc/manual/en_US/images/ovf-import.png new file mode 100644 index 00000000..b2d6b1b2 Binary files /dev/null and b/doc/manual/en_US/images/ovf-import.png differ diff --git a/doc/manual/en_US/images/seamless.png b/doc/manual/en_US/images/seamless.png new file mode 100644 index 00000000..7239300d Binary files /dev/null and b/doc/manual/en_US/images/seamless.png differ diff --git a/doc/manual/en_US/images/session-information.png b/doc/manual/en_US/images/session-information.png new file mode 100644 index 00000000..a4a64611 Binary files /dev/null and b/doc/manual/en_US/images/session-information.png differ diff --git a/doc/manual/en_US/images/snapshots-1.png b/doc/manual/en_US/images/snapshots-1.png new file mode 100644 index 00000000..91f790f2 Binary files /dev/null and b/doc/manual/en_US/images/snapshots-1.png differ diff --git a/doc/manual/en_US/images/snapshots-2.png b/doc/manual/en_US/images/snapshots-2.png new file mode 100644 index 00000000..aca79e1e Binary files /dev/null and b/doc/manual/en_US/images/snapshots-2.png differ diff --git a/doc/manual/en_US/images/softkeybd.png b/doc/manual/en_US/images/softkeybd.png new file mode 100644 index 00000000..545211bf Binary files /dev/null and b/doc/manual/en_US/images/softkeybd.png differ diff --git a/doc/manual/en_US/images/upload-key.png b/doc/manual/en_US/images/upload-key.png new file mode 100644 index 00000000..cae44e44 Binary files /dev/null and b/doc/manual/en_US/images/upload-key.png differ diff --git a/doc/manual/en_US/images/vbox-components.png b/doc/manual/en_US/images/vbox-components.png new file mode 100644 index 00000000..ed1326dc Binary files /dev/null and b/doc/manual/en_US/images/vbox-components.png differ diff --git a/doc/manual/en_US/images/vboxlogo.png b/doc/manual/en_US/images/vboxlogo.png new file mode 100644 index 00000000..1394b447 Binary files /dev/null and b/doc/manual/en_US/images/vboxlogo.png differ diff --git a/doc/manual/en_US/images/virtual-disk-manager-2.png b/doc/manual/en_US/images/virtual-disk-manager-2.png new file mode 100644 index 00000000..030043ba Binary files /dev/null and b/doc/manual/en_US/images/virtual-disk-manager-2.png differ diff --git a/doc/manual/en_US/images/virtual-disk-manager.png b/doc/manual/en_US/images/virtual-disk-manager.png new file mode 100644 index 00000000..6e7637d4 Binary files /dev/null and b/doc/manual/en_US/images/virtual-disk-manager.png differ diff --git a/doc/manual/en_US/images/virtual-hard-disk-wizard.png b/doc/manual/en_US/images/virtual-hard-disk-wizard.png new file mode 100644 index 00000000..4a392779 Binary files /dev/null and b/doc/manual/en_US/images/virtual-hard-disk-wizard.png differ diff --git a/doc/manual/en_US/images/virtualbox-main-empty.png b/doc/manual/en_US/images/virtualbox-main-empty.png new file mode 100644 index 00000000..a29aa67e Binary files /dev/null and b/doc/manual/en_US/images/virtualbox-main-empty.png differ diff --git a/doc/manual/en_US/images/virtualbox-main.png b/doc/manual/en_US/images/virtualbox-main.png new file mode 100644 index 00000000..963b709e Binary files /dev/null and b/doc/manual/en_US/images/virtualbox-main.png differ diff --git a/doc/manual/en_US/images/vm-activity-overview.png b/doc/manual/en_US/images/vm-activity-overview.png new file mode 100644 index 00000000..93e4d3a4 Binary files /dev/null and b/doc/manual/en_US/images/vm-activity-overview.png differ diff --git a/doc/manual/en_US/images/vm-close.png b/doc/manual/en_US/images/vm-close.png new file mode 100644 index 00000000..0a018c2b Binary files /dev/null and b/doc/manual/en_US/images/vm-close.png differ diff --git a/doc/manual/en_US/images/vm-groups.png b/doc/manual/en_US/images/vm-groups.png new file mode 100644 index 00000000..0d746db3 Binary files /dev/null and b/doc/manual/en_US/images/vm-groups.png differ diff --git a/doc/manual/en_US/images/vm-hostkey.png b/doc/manual/en_US/images/vm-hostkey.png new file mode 100644 index 00000000..f59aedb1 Binary files /dev/null and b/doc/manual/en_US/images/vm-hostkey.png differ diff --git a/doc/manual/en_US/images/vm-settings-harddisk.png b/doc/manual/en_US/images/vm-settings-harddisk.png new file mode 100644 index 00000000..27ac82cf Binary files /dev/null and b/doc/manual/en_US/images/vm-settings-harddisk.png differ diff --git a/doc/manual/en_US/images/vm-vista-running.png b/doc/manual/en_US/images/vm-vista-running.png new file mode 100644 index 00000000..79f04b09 Binary files /dev/null and b/doc/manual/en_US/images/vm-vista-running.png differ diff --git a/doc/manual/en_US/man_VBoxHeadless.xml b/doc/manual/en_US/man_VBoxHeadless.xml new file mode 100644 index 00000000..2d47d785 --- /dev/null +++ b/doc/manual/en_US/man_VBoxHeadless.xml @@ -0,0 +1,239 @@ + + + + +%all.entities; +]> + + + August 2019 + VBoxHeadless + + + + VBoxHeadless + 1 + + + + VBoxHeadless + &product-name; remote desktop server + Oracle VM VirtualBox + + + + + VBoxHeadless + --startvm= + uuid + vmname + + --vrde= + on + off + config + + --vrdeproperty=prop-name=[prop-value] + --settingspw=[password] + --settingspwfile=password-file + --start-paused=vmname + --capture + --width=width + --height=height + --bitrate=bit-rate + --filename=filename + + + + + Description + + The VBoxHeadless command is an alternate front + end that enables you to remotely manage virtual machines (VMs). + The front end is a CLI rather than the VirtualBox Manager + graphical user interface (GUI). + + + For information about using this command, see + . + + + Command Options + + + + + Specifies the Universally Unique Identifier (UUID) or name + of the VM to start. + + Use the VBoxManage list vms command to + obtain VM information. + + The short versions of this option are + and . + + + + + + Specifies how to use the VRDP server. The default value is + config. Valid values are as follows: + + + on enables the VRDP server. + VBoxHeadless --startvm=vmname --vrde=on + + off disables the VRDP server. + VBoxHeadless --startvm=vmname --vrde=off + + config enables the VRDP server + depending on the VM configuration. + VBoxHeadless --startvm=vmname --vrde=config + + The short version of this option is . + + + + + + Specifies a value for one of the following properties: + + + The TCP/Ports property value is a + comma-separated list of ports to which the VRDE server + can bind. Use a hyphen (-) between + two port numbers to specify a range of ports. + + + The TCP/Address property value is + the interface IP address to which to bind the VRDE + server. + + + + + + + Specifies a settings password to access encrypted + settings. If you do not specify the password on the + command line, VBoxHeadless prompts you + for the password. + + This design does not conform to Oracle's security + guidelines. You should not be able to specify a password + on the command line because the password can be seen in a + process listing. + + + + + + Specifies the file that contains the settings password. + + + + + + Starts the specified VM in the paused state. + + + + + + Records the VM screen output to a file. In addition to + this option, you must use the + option to specify the name of the file. + + + + + + Specifies the frame width of the recording in pixels. This + option is associated with the + option. + + + + + + Specifies the frame height of the recording in pixels. + This option is associated with the + option. + + + + + + Specifies the bit rate of the recording in kilobits per + second. This option is associated with the + option. + + + + + + Specifies the name of the file in which to store the + recording. The codec used is based on the file extension + that you choose. You must specify this option if you use + the option. + + Where can we get information about the file extensions + that are supported? + + + + + + + + Examples + + + The following command starts the ol7u4 VM: + +$ VBoxHeadless --startvm "ol7u4" + + The following command starts the ol7u6 VM in + the Paused state. + +$ VBoxHeadless --startvm "ol7u6" --start-paused + + The following command starts the ol7u6 VM and + records the session. The recording is saved to the + ol7u6-recording WebM file. + +$ VBoxHeadless --startvm "ol7u6" --capture --filename ol7u6-recording.webm + + + + See Also + + , + + + + diff --git a/doc/manual/en_US/man_VBoxManage-adoptstate.xml b/doc/manual/en_US/man_VBoxManage-adoptstate.xml new file mode 100644 index 00000000..51db63e2 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-adoptstate.xml @@ -0,0 +1,112 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage adoptstate + + + + VBoxManage-adoptstate + 1 + + + + VBoxManage-adoptstate + change a virtual machine's state based on a saved state file + &product-name; + + + + + + VBoxManage adoptstate + + uuid + vmname + + state-filename + + + + + Description + + The VBoxManage adoptstate command enables you + to change the state of a virtual machine (VM) to a state described + in a saved state file (.sav). This action is + referred to as a VM adopting a saved state + file. The saved state file must be separate from the VM + configuration. + + + When you start the VM after adopting the saved state, the VM + restores its state from the saved state file. + + + Only use this command for custom deployments. + + + + uuid | vmname + + Specifies the Universally Unique Identifier (UUID) or name + of the VM. + + + + state-filename + + Specifies the name of the saved state file. + + + + + + + Examples + + + The following command adopts a saved state file called + mystate.sav by a VM called vm2. + A subsequent start of the VM called vm2 restores the + state from the saved state file mystate.sav. + +$ VBoxManage adoptstate vm2 /home/user/mystate.sav + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-bandwidthctl.xml b/doc/manual/en_US/man_VBoxManage-bandwidthctl.xml new file mode 100644 index 00000000..c38fe541 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-bandwidthctl.xml @@ -0,0 +1,307 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage bandwidthctl + + + + VBoxManage-bandwidthctl + 1 + + + + VBoxManage-bandwidthctl + manage bandwidth groups + &product-name; + + + + + + VBoxManage bandwidthctl + + uuid + vmname + + add + bandwidth-group-name + --limit=bandwidth-limit[k|m|g|K|M|G] + --type=disk|network + + + + VBoxManage bandwidthctl + + uuid + vmname + + list + --machinereadable + + + + VBoxManage bandwidthctl + + uuid + vmname + + remove + bandwidth-group-name + + + + VBoxManage bandwidthctl + + uuid + vmname + + set + bandwidth-group-name + --limit=bandwidth-limit[k|m|g|K|M|G] + + + + + Description + + The VBoxManage bandwidthctl command enables you + to manage bandwidth groups for virtual machines (VMs). A bandwidth + group specifies the bandwidth limit for the disks or for the + network adapters of a VM. + + + Note that a network bandwidth limit applies only to the outbound + traffic from the VM. The inbound traffic is unlimited. + + + Create a Bandwidth Group + + + The VBoxManage bandwidthctl add command + creates a bandwidth group for the specified VM. You must specify + whether the bandwidth group is for disks or for networks, and + specify the bandwidth limit. + + + + uuid | vmname + + Specifies the Universally Unique Identifier (UUID) or the + name of the VM. + + + + + + Specifies the name of the bandwidth group. + + + + + + Specifies the type of the bandwidth group: + disk and network. + For more information, see + or + . + + + + + + Specifies the bandwidth limit for a bandwidth group. The + default unit is megabytes per second. You can modify this + value while the VM is running. + + You can change the unit by appending one of the following + unit specifiers to the bandwidth limit: + + + k – kilobits per second + + + m – megabits per second + + + g – gigabits per second + + + K – kilobytes per second + + + M – megabytes per second + + + G – gigabytes per second + + + + + + + List Bandwidth Groups + + + The VBoxManage bandwidthctl list command + lists the all the bandwidth groups that have been defined for + the specified VM. Use the + option to produce the output in a machine-readable format, which + uses name-value pairs. + + + + uuid | vmname + + Specifies the UUID or the name of the VM. + + + + + + Outputs the information about the bandwidth groups in + name-value pairs. + + + + + + Remove a Bandwidth Group + + + The VBoxManage bandwidthctl remove command + removes a bandwidth group. + + + + To successfully remove a bandwidth group, ensure that it is + not referenced by any disk or adapter in the running VM. + + + + + uuid | vmname + + Specifies the UUID or the name of the VM. + + + + + + Specifies the name of the bandwidth group. + + + + + + Modify the Bandwidth Limit of a Bandwidth Group + + + The VBoxManage bandwidthctl set command + modifies the bandwidth limit for a bandwidth group. + + + + uuid | vmname + + Specifies the UUID or the name of the VM. + + + + + + Specifies the name of the bandwidth group. + + + + + + Specifies the bandwidth limit for a bandwidth group. The + default unit is megabytes per second. You can modify this + value while the VM is running. + + You can change the unit by appending one of the following + unit specifiers to the bandwidth limit: + + + k – kilobits per second + + + m – megabits per second + + + g – gigabits per second + + + K – kilobytes per second + + + M – megabytes per second + + + G – gigabytes per second + + + + + + + + + Examples + + + The following example shows how to use the VBoxManage + bandwidthctl command to create the + Limit bandwidth group and set the limit to 20 + Mbps. Then use the VBoxManage modifyvm command + to assign this bandwidth group to the first and second adapters of + the vm1 VM. + +$ VBoxManage bandwidthctl "vm1" add Limit --type network --limit 20m +$ VBoxManage modifyvm "vm1" --nicbandwidthgroup1 Limit +$ VBoxManage modifyvm "vm1" --nicbandwidthgroup2 Limit + + You can dynamically modify the limit of a bandwidth group while + the VM is running. The following example shows how to modify the + limit for the Limit bandwidth group from 20 + Mbps to 100 kbps: + +$ VBoxManage bandwidthctl "vm1" set Limit --limit 100k + + The following command disables shaping for all adapters in the + Limit bandwidth group by specifying a limit of + zero (0): + +$ VBoxManage bandwidthctl "vm1" set Limit --limit 0 + + diff --git a/doc/manual/en_US/man_VBoxManage-checkmediumpwd.xml b/doc/manual/en_US/man_VBoxManage-checkmediumpwd.xml new file mode 100644 index 00000000..a66a84e7 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-checkmediumpwd.xml @@ -0,0 +1,113 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage checkmediumpwd + + + + VBoxManage-checkmediumpwd + 1 + + + + VBoxManage-checkmediumpwd + check encryption password on a DEK-encrypted medium or a disk image + &product-name; + + + + + + VBoxManage checkmediumpwd + + uuid + filename + + password-file + + + + + Description + + The VBoxManage checkmediumpwd command checks + the current encryption password on a DEK-encrypted medium or a + disk image. See . + + + The command response indicates if the specified password is + correct. + + + + uuid|filename + + Specifies the Universally Unique Identifier (UUID) or the + absolute path name of the medium or image. + + + + password-file + + Specifies the password to check. The password + can be the absolute path name of a password file + on the host OS or the dash character (-) + to prompt you for the password on the command line. + + + + + + + Examples + + + The following example checks the encryption password for the + ol7u4-1.vdi disk image. The password + is contained in a file called pwfile. + + + The command returns a message indicating that the specified + password is correct. + +$ VBoxManage checkmediumpwd "$HOME/VirtualBox VMs/ol7u4/ol7u4-1.vdi" /home/user/pwfile + The given password is correct + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-clonemedium.xml b/doc/manual/en_US/man_VBoxManage-clonemedium.xml new file mode 100644 index 00000000..2827eca8 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-clonemedium.xml @@ -0,0 +1,214 @@ + + + + +%all.entities; +]> + + + $Date: 2022-12-23 22:36:09 +0100 (Fri, 23 Dec 2022) $ + VBoxManage clonemedium + + + + VBoxManage-clonemedium + 1 + + + + VBoxManage-clonemedium + create a clone of a medium + &product-name; + + + + + + VBoxManage clonemedium + + uuid + source-medium + + + uuid + target-medium + + + disk + dvd + floppy + + --existing + --format= + VDI + VMDK + VHD + RAW + other + + --variant=Standard,Fixed,Split2G,Stream,ESX + + + + + Description + + The VBoxManage clonemedium command enables you + to clone an existing medium (virtual disk, DVD, or floppy), which + is typically an image file. Only the Universally Unique Identifier + (UUID) differs between the original image and the cloned image. + + + You can use the Virtual Media Manager to transfer the cloned image + to another host system or reimport it into &product-name;. See + and . + + + + uuid | source-medium + + Specifies the UUID or the absolute or relative file name of + the source medium to clone. You can specify the UUID of the + medium only if it is registered. Use the VBoxManage + list hdds command to list registered images. + + + + uuid | target-medium + + Specifies the UUID or the absolute or relative file name of + the target (clone) medium. You can specify the UUID of the + target medium only if it is registered. Use the + VBoxManage list hdds command to list + registered images. + + + + disk | dvd | floppy + + Specifies the type of the medium to clone. Valid values are + disk, dvd, and + floppy. The default value is + disk. + + + + + + Performs the clone operation by overwriting an existing + target medium. The result is that only the portion of the + source medium that fits into the existing target medium is + copied. + + If the target medium is smaller than the source, only the + portion of the source medium up to the size of the target + medium is copied. + + If the target medium is larger than the source, the + remaining part of the target medium is unchanged. + + + + + + Specifies the file format of the target medium if it differs + from the format of the source medium. Valid values are + VDI, VMDK, + VHD, RAW, and + other. + + What file formats can other be? + + + + + + Specifies the file format variant for the target medium, + which is a comma-separated list of variants. Following are + the valid values: + + + Standard is the default disk image + type, which has a dynamically allocated file size. + + + Fixed uses a disk image that has a + fixed file size. + + + Split2G indicates that the disk image + is split into 2GB segments. This value is for VMDK only. + + + Stream optimizes the disk image for + downloading. This value is for VMDK only. + + + ESX is used for some VMWare products. + This value is for VMDK only. + + + Note that not all variant combinations are valid. Specifying + incompatible variant values in the list will produce an + error message. + + + + + + For compatibility with earlier versions of &product-name;, you + can use the clonevdi and + clonehd commands instead of the + clonemedium command. + + + + + + Examples + + + The following command creates a clone of the + disk01.vdi disk image file. The clone is + called disk02.vdi. + +$ VBoxManage clonemedium disk01.vdi disk02.vdi + + The following command creates a clone of the + disk01.vdi disk image file. The clone is in + VMDK format and is called disk02.vmdk. + +$ VBoxManage clonemedium disk01.vdi disk02.vmdk --format VMDK + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-clonevm.xml b/doc/manual/en_US/man_VBoxManage-clonevm.xml new file mode 100644 index 00000000..cce7bd60 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-clonevm.xml @@ -0,0 +1,274 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage clonevm + + + + VBoxManage-clonevm + 1 + + + + VBoxManage-clonevm + create a clone of an existing virtual machine + &product-name; + + + + + + VBoxManage clonevm + vmname|uuid + + --basefolder=basefolder + + --groups=group, + + + --mode=machine + --mode=machinechildren + --mode=all + + + --name=name + + --options=option, + + --register + + --snapshot=snapshot-name + + --uuid=uuid + + + + + Description + + The VBoxManage clonevm command creates a clone + of an existing virtual machine (VM). The clone can be a full copy + of the VM or a linked copy of a VM. + + + You must specify the name or the universal unique identifier + (UUID) of the VM you want to clone. + + + + + Command Operand and Options + + The following list describes the operand and the options that you + can use with the VBoxManage clonevm command: + + + + vmname|uuid + + Specifies the name or UUID of the VM to clone. + + + + + + Specifies the name of the folder in which to save the + configuration for the new VM. + + + + + + Assigns the clone to the specified group or groups. If you + specify more than one group, separate each group name with a + comma. + + Note that each group is identified by a group ID that starts + with a slash character (/) + so that groups can be nested. By default, a clone is always + assigned membership to the + / group. + + + + + + Specifies which of the following cloning modes to use: + + + machine mode clones the + current state of the existing VM without any snapshots. + This is the default mode. + + + machineandchildren mode + clones the snapshot specified by by the + option and all child + snapshots. + + + all mode clones all + snapshots and the current state of the existing VM. + + + + + + + Specifies a new name for the new VM. The default value is + original-name + Clone where + original-name is the original + name of the VM. + + + + + + Specifies how to create the new clone. + The argument can be used multiple + times to enable multiple options, or the options can be given as a + comma separated list. The options are case insensitive. + The following options (case-insensitive) are recognized: + + + + + Creates a linked clone from a snapshot only. + + + + + + Specifies that the new clone reuses the MAC addresses + of each virtual network card from the existing VM. + + If you do not specify this option or the + option, the + default behavior is to reinitialize the MAC addresses + of each virtual network card. + + + + + + Specifies that the new clone reuses the MAC addresses + of each virtual network card from the existing VM when + the network type is NAT. + + If you do not specify this option or the + option, the + default behavior is to reinitialize the MAC addresses + of each virtual network card. + + + + + + Specifies that the new clone reuses the disk image + names from the existing VM. By default, disk images + are renamed. + + + + + + Specifies that the new clone reuses the hardware IDs + from the existing VM. By default, new UUIDs are used. + + + + + + + + Automatically registers the new clone in this &product-name; + installation. You can manually register the new VM later by + using the VBoxManage registervm command. + See . + + + + + + Specifies the snapshot on which to base the new VM. By + default, the clone is created from the current state of the + specified VM. + + + + + + Specifies the UUID for the new VM. Ensure that this ID is + unique for the &product-name; instance if you decide to + register this new VM. By default, &product-name; provides a + new UUID. + + + + + + + Examples + + The following command creates and registers an exact clone of the + ol7 VM. The clone is called + ol7-dev-001. + + + The new clone includes all of the source VM's snapshots. The new + VM also reuses all network interface MAC addresses, disk names, + and UUIDs from the source VM. + + +$ VBoxManage clonevm ol7 --name="ol7-dev-001" --register --mode=all \ + --options=keepallmacs --options=keepdisknames --options=keephwuuids + + + The following command creates and registers a clone of the + Snapshot 1 snapshot of the + ol7 VM. The clone is called + ol7-dev-002. + + +$ VBoxManage clonevm ol7 --name="ol7-dev-002" --register --snapshot="Snapshot 1" + + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-closemedium.xml b/doc/manual/en_US/man_VBoxManage-closemedium.xml new file mode 100644 index 00000000..59d6e33e --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-closemedium.xml @@ -0,0 +1,119 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage closemedium + + + + VBoxManage-closemedium + 1 + + + + VBoxManage-closemedium + remove a hard disk, DVD, or floppy image from the media registry + &product-name; + + + + + + VBoxManage closemedium + + disk + dvd + floppy + + + uuid + filename + + --delete + + + + + Description + + The VBoxManage closemedium command removes a + hard disk, DVD, or floppy image from the list of known media used + by &product-name;. The image is then unavailable for selection in + the Virtual Media Manager. + + + To use this command, the image must not be attached to any VMs. + + + Optionally, you can request that the image be deleted. + + + + disk|dvd|floppy + + Specifies the type of medium. Valid values are + disk (hard drive), + dvd, or floppy. + + + + uuid|filename + + Specifies the Universally Unique Identifier (UUID) or + absolute path name of the medium or image. + + + + + + Deletes the image file. + + + + + + + Examples + + + The following command removes the disk image file called + disk01.vdi from the registry. + +$ VBoxManage closemedium disk01.vdi + + The following command removes the disk image file called + disk01.vdi from the registry and deletes the + image file. + +$ VBoxManage closemedium disk01.vdi --delete + + diff --git a/doc/manual/en_US/man_VBoxManage-cloud.xml b/doc/manual/en_US/man_VBoxManage-cloud.xml new file mode 100644 index 00000000..267873e4 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-cloud.xml @@ -0,0 +1,645 @@ + + + + +%all.entities; +]> + + + $Date: 2022-12-27 14:02:02 +0100 (Tue, 27 Dec 2022) $ + VBoxManage cloud + + + + VBoxManage-cloud + 1 + &product-name; + + + + VBoxManage-cloud + Manage the cloud entities + &product-name; + + + + + + + VBoxManage cloud + --provider=name + --profile=name + + list + instances + --state=string + --compartment-id=string + + + VBoxManage cloud + --provider=name + --profile=name + + list + images + --compartment-id=string + --state=string + + + + + VBoxManage cloud + --provider=name + --profile=name + + instance + create + --domain-name=name + + --image-id=id + --boot-volume-id=id + + --display-name=name + --shape=type + --subnet=id + --boot-disk-size=size in GB + --publicip=true/false + --privateip=IP address + --public-ssh-key=key string + --launch-mode=NATIVE/EMULATED/PARAVIRTUALIZED + --cloud-init-script-path=path to a script + + + VBoxManage cloud + --provider=name + --profile=name + + instance + info + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + + instance + terminate + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + + instance + start + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + + instance + pause + --id=unique id + + + + + VBoxManage cloud + --provider=name + --profile=name + + image + create + --display-name=name + --bucket-name=name + --object-name=name + --instance-id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + + image + info + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + + image + delete + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + + image + import + --id=unique id + --bucket-name=name + --object-name=name + + + VBoxManage cloud + --provider=name + --profile=name + + image + export + --id=unique id + --display-name=name + --bucket-name=name + --object-name=name + + + + + VBoxManage cloud + --provider=name + --profile=name + + network setup + --gateway-os-name=string + --gateway-os-version=string + --gateway-shape=string + --tunnel-network-name=string + --tunnel-network-range=string + --proxy=string + --compartment-id=string + + + VBoxManage cloud + --provider=name + --profile=name + + network create + --name=string + --network-id=string + + --enable + --disable + + + + VBoxManage cloud network update + --name=string + --network-id=string + + --enable + --disable + + + + VBoxManage cloud + network delete + --name=string + + + VBoxManage cloud + network info + --name=string + + + + + Description + + + + Common options + + The word "cloud" is an umbrella for all commands related to the interconnection with the Cloud. + The next common options must be placed between the "cloud" and the following sub-commands: + + + --provider=name + Short cloud provider name. + + + --profile=name + Cloud profile name. + + + + + + + cloud list instances + + + Displays the list of the instances for a specified compartment. + + + + --state"running/paused/terminated" + + The state of cloud instance. The possible states are "running/paused/terminated" at moment. + If the state isn't provided the list of instances with all possible states is returned. + + + + + + + A compartment is the logical container used to organize and isolate cloud resources. + The different cloud providers can have the different names for this entity. + + + + + + + + cloud list images + + + Displays the list of the images for a specified compartment. + + + + --state"available/disabled/deleted" + + The state of cloud image. The possible states are "available/disabled/deleted" at moment. + If the state isn't provided the list of images with all possible states is returned. + + + + + + + A compartment is the logical container used to organize and isolate cloud resources. + The different cloud providers can have the different names for this entity. + + + + + + + + + cloud instance create + + + Creates new instance in the Cloud. + There are two standard ways to create an instance in the Cloud: + 1. Create an instance from an existing custom image. + 2. Create an instance from an existing bootable volume. This bootable volume shouldn't be attached to any instance. + For the 1st approach next parameters are required: image-id, boot-disk-size. + For the 2nd approach next parameters are required: boot-volume-id. + The rest parameters are common for both cases: + display-name, launch-mode, subnet-id, publicIP, privateIP, shape, domain. + + + + Cloud domain where new instance is created. + + + Unique identifier which fully identifies a custom image in the Cloud. + + + Unique identifier which fully identifies a boot volume in the Cloud. + + + Name for new instance in the Cloud. + + + The shape of instance, defines the number of CPUs and RAM memory. + + + Unique identifier which fully identifies an existing subnet in the Cloud which will be used by the instance. + + + The size of bootable image in GB. Default is 50GB. + + + Whether the instance will have a public IP or not. + + + Private IP address for the created instance. + + + + + Public SSH key used to connect to the instance via SSH. + This parameter may be repeated if you plan to use more than one key as: + "--public-ssh-key=firstSSHKey --public-ssh-key=secondSSHKey". + + + + + The most known values here may be EMULATED, NATIVE, PARAVIRTUALIZED. + + + Absolute path to the user cloud-init script. + + + + + + cloud instance info + + Display information about a cloud instance with a specified id. + + + + Unique identifier which fully identify the instance in the Cloud. + + + + + + cloud instance termination + + Delete a cloud instance with a specified id. + + + + Unique identifier which fully identify the instance in the Cloud. + + + + + + cloud instance start + + Start a cloud instance with a specified id. + + + + Unique identifier which fully identify the instance in the Cloud. + + + + + + cloud instance pause + + Pause a cloud instance with a specified id. + + + + Unique identifier which fully identify the instance in the Cloud. + + + + + + + + cloud image create + + + Creates new image in the Cloud. + There are two standard ways to create an image in the Cloud: + 1. Create an image from an object in the Cloud Storage; + 2. Create an image from an existing cloud instance. + For the 1st approach next parameters are required: + bucket-name - cloud bucket name where an object is located; + object-name - name of object in the bucket; + display-name - name for new image in the Cloud. + For the 2d approach next parameters are required: + instance-id - Id of instance in the Cloud; + display-name - name for new image in the Cloud. + + + + Name for new image in the Cloud. + + + Cloud bucket name where an object is located. + + + Name of object in the bucket. + + + Unique identifier which fully identifies the instance in the Cloud. + + + + + + cloud image info + + + Display information about a cloud image with a specified id. + + + + Unique identifier which fully identifies the image in the Cloud. + + + + + + cloud image delete + + + Delete an image with a specified id from the Cloud. + + + + Unique identifier which fully identifies the image in the Cloud. + + + + + + cloud image import + + + Import an image with a specified id from the Cloud to a local host. + The result is an object in the local "temp" folder on the local host. + Possible approach may have two general steps: + 1. Create an object from an image in the Cloud Storage; + 2. Download the object to the local host. + So the next parameters may be required: + bucket-name - cloud bucket name where the object will be created; + object-name - name of object in the bucket. if parameter "object-name" is absent a displayed image name is used. + If the first step isn't needed only the parameter "id" is required. + + + + Unique identifier which fully identifies the image in the Cloud. + + + Cloud bucket name where an object will be created. + + + + + + Name of created object in the bucket. The downloaded object will have this name. + + + + + + + + cloud image export + + + Export an existing VBox image with a specified uuid from a local host to the Cloud. + The result is new image in the Cloud. + Possible approach may have two general steps: + 1. Upload VBox image to the Cloud Storage; + 2. Create an image from the uploaded object. + So the next parameters may be required: + bucket-name -cloud bucket name where the object will be uploaded; + object-name - name of object in the bucket. If parameter "object-name" is absent the image id is used; + display-name - name for new image in the Cloud. + If the first step isn't needed the parameters "id" and "display-name" are required only. + + + + Unique identifier of the image in the VirtualBox. + + + Name for new image in the Cloud. + + + Cloud bucket name where the image (object) will be uploaded. + + + Name of object in the bucket. + + + + + + + + cloud network setup + + + Set up a cloud network environment for the specified cloud profile. + + + + The name of OS to use for a cloud gateway. + + + The version of OS to use for a cloud gateway. + + + The instance shape to use for a cloud gateway. + + + The name of VCN/subnet to use for tunneling. + + + The IP address range to use for tunneling. + + + The proxy URL to be used in local gateway installation. + + + The compartment to create the tunnel network in. + + + + + + cloud network create + + + Create a new cloud network descriptor associated with an existing cloud subnet. + + + + The name to assign to the cloud network descriptor. + + + The unique identifier of an existing subnet in the cloud. + + + , --disable + Whether to enable the network descriptor or disable it. If not specified, + the network will be enabled. + + + + + + cloud network update + + + Modify an existing cloud network descriptor. + + + + The name of an existing cloud network descriptor. + + + The unique identifier of an existing subnet in the cloud. + + + , --disable + Whether to enable the network descriptor or disable it. + + + + + + cloud network delete + + + Delete an existing cloud network descriptor. + + + + The name of an existing cloud network descriptor. + + + + + + cloud network info + + + Display information about a cloud network descriptor. + + + + The name of an existing cloud network descriptor. + + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-cloudimage.xml b/doc/manual/en_US/man_VBoxManage-cloudimage.xml new file mode 100644 index 00000000..e4b028af --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-cloudimage.xml @@ -0,0 +1,242 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage cloud image + + + + VBoxManage-cloudimage + 1 + + + + VBoxManage-cloudimage + Manage the cloud images + Oracle VM VirtualBox + + + + + VBoxManage cloud + --provider=name + --profile=name + image + create + --display-name=name + --bucket-name=name + --object-name=name + --instance-id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + image + info + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + image + delete + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + image + import + --id=unique id + --bucket-name=name + --object-name=name + + + VBoxManage cloud + --provider=name + --profile=name + image + export + --id=unique id + --display-name=name + --bucket-name=name + --object-name=name + + + + + Description + + + Common options + + The subcommands of cloudimage implement the standard operations for a cloud image + like create/delete/show/import/export. The next common options must be placed between the "cloud" and the following sub-commands: + + + --provider=name + Short cloud provider name. + + + --profile=name + Cloud profile name. + + + + + + cloud image create + + + Creates new image in the Cloud. + There are two standard ways to create an image in the Cloud: + 1. Create an image from an object in the Cloud Storage; + 2. Create an image from an existing cloud instance. + For the 1st approach next parameters are required: + bucket-name - cloud bucket name where an object is located; + object-name - name of object in the bucket; + display-name - name for new image in the Cloud. + For the 2d approach next parameters are required: + instance-id - Id of instance in the Cloud; + display-name - name for new image in the Cloud. + + + + Name for new image in the Cloud. + + + Cloud bucket name where an object is located. + + + Name of object in the bucket. + + + Unique identifier which fully identifies the instance in the Cloud. + + + + + + cloud image info + + + Display information about a cloud image with a specified id. + + + + Unique identifier which fully identifies the image in the Cloud. + + + + + + cloud image delete + + + Delete an image with a specified id from the Cloud. + + + + Unique identifier which fully identifies the image in the Cloud. + + + + + + cloud image import + + + Import an image with a specified id from the Cloud to a local host. + The result is an object in the local "temp" folder on the local host. + Possible approach may have two general steps: + 1. Create an object from an image in the Cloud Storage; + 2. Download the object to the local host. + So the next parameters may be required: + bucket-name - cloud bucket name where the object will be created; + object-name - name of object in the bucket. if parameter "object-name" is absent a displayed image name is used. + If the first step isn't needed only the parameter "id" is required. + + + + Unique identifier which fully identifies the image in the Cloud. + + + Cloud bucket name where an object will be created. + + + + + + Name of created object in the bucket. The downloaded object will have this name. + + + + + + + + cloud image export + + + Export an existing VBox image with a specified uuid from a local host to the Cloud. + The result is new image in the Cloud. + Possible approach may have two general steps: + 1. Upload VBox image to the Cloud Storage; + 2. Create an image from the uploaded object. + So the next parameters may be required: + bucket-name -cloud bucket name where the object will be uploaded; + object-name - name of object in the bucket. If parameter "object-name" is absent the image id is used; + display-name - name for new image in the Cloud. + If the first step isn't needed the parameters "id" and "display-name" are required only. + + + + Unique identifier of the image in the VirtualBox. + + + Name for new image in the Cloud. + + + Cloud bucket name where the image (object) will be uploaded. + + + Name of object in the bucket. + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-cloudinstance.xml b/doc/manual/en_US/man_VBoxManage-cloudinstance.xml new file mode 100644 index 00000000..de562473 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-cloudinstance.xml @@ -0,0 +1,227 @@ + + + + +%all.entities; +]> + + + $Date: 2022-12-27 14:02:02 +0100 (Tue, 27 Dec 2022) $ + VBoxManage cloud instance + + + + VBoxManage-cloudinstance + 1 + + + + VBoxManage-cloudinstance + Manage the cloud instances + Oracle VM VirtualBox + + + + + VBoxManage cloud + --provider=name + --profile=name + instance + create + --domain-name=name + + --image-id=id + --boot-volume-id=id + + --display-name=name + --shape=type + --subnet=id + --boot-disk-size=size in GB + --publicip=true/false + --privateip=IP address + --public-ssh-key=key string + --launch-mode=NATIVE/EMULATED/PARAVIRTUALIZED + + + VBoxManage cloud + --provider=name + --profile=name + instance + info + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + instance + terminate + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + instance + start + --id=unique id + + + VBoxManage cloud + --provider=name + --profile=name + instance + pause + --id=unique id + + + + + Description + + + Common options + + The subcommands of cloudinstance implement the standard operations for a cloud instance + like start/pause/show/terminate. The next common options must be placed between the "cloud" and the following sub-commands: + + + --provider=name + Short cloud provider name. + + + --profile=name + Cloud profile name. + + + + + + cloud instance create + + + Creates new instance in the Cloud. + There are two standard ways to create an instance in the Cloud: + 1. Create an instance from an existing custom image. + 2. Create an instance from an existing bootable volume. This bootable volume shouldn't be attached to any instance. + For the 1st approach next parameters are required: image-id and boot-disk-size. + For the 2nd approach next parameters are required: boot-volume-id; + The rest parameters are common for both cases: + display-name, launch-mode, subnet-id, publicIP, privateIP, shape, domain. + + + + Cloud domain where new instance is created. + + + Unique identifier which fully identifies a custom image in the Cloud. + + + Unique identifier which fully identifies a boot volume in the Cloud. + + + Name for new instance in the Cloud. + + + The shape of instance, defines the number of CPUs and RAM memory. + + + Unique identifier which fully identifies an existing subnet in the Cloud which will be used by the instance. + + + The size of bootable image in GB. Default is 50GB. + + + Whether the instance will have a public IP or not. + + + Private IP address for the created instance. + + + + + Public SSH key used to connect to the instance via SSH. + This parameter may be repeated if you plan to use more than one key as: + "--public-ssh-key=firstSSHKey --public-ssh-key=secondSSHKey". + + + + + The most known values here may be EMULATED, NATIVE, PARAVIRTUALIZED. + + + + + + cloud instance info + + Display information about a cloud instance with a specified id. + + + + Unique identifier which fully identify the instance in the Cloud. + + + + + + cloud instance termination + + Delete a cloud instance with a specified id. + + + + Unique identifier which fully identify the instance in the Cloud. + + + + + + cloud instance start + + Start a cloud instance with a specified id. + + + + Unique identifier which fully identify the instance in the Cloud. + + + + + + cloud instance pause + + Pause a cloud instance with a specified id. + + + + Unique identifier which fully identify the instance in the Cloud. + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-cloudlist.xml b/doc/manual/en_US/man_VBoxManage-cloudlist.xml new file mode 100644 index 00000000..d458f26f --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-cloudlist.xml @@ -0,0 +1,142 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage cloud list + + + + VBoxManage-cloudlist + 1 + + + + VBoxManage-cloudlist + The cloud list command gives information about some standard entities in the every Cloud + and which can be represented by the list like the list of instances/disk images/networks and etc + Oracle VM VirtualBox + + + + + VBoxManage cloud + --provider=name + --profile=name + list + instances + --state=string + --compartment-id=string + + + VBoxManage cloud + --provider=name + --profile=name + list + images + --compartment-id=string + --state=string + + + + + Description + + Common options + + The word "cloud" is an umbrella for all commands related to the interconnection with the Cloud. + The following common options must be placed between the "cloud" and the following command, in our case "list": + + + --provider=name + Short cloud provider name. + + + --profile=name + Cloud profile name. + + + + + + cloud list instances + + + Displays the list of the instances for a specified compartment. + + + + --state"running/paused/terminated" + + The state of cloud instance. The possible states are "running/paused/terminated" at moment. + If the state isn't provided the list of instances with all possible states is returned. + + + + + + + A compartment is the logical container used to organize and isolate cloud resources. + The different cloud providers can have the different names for this entity. + + + + + + + + cloud list images + + + Displays the list of the images for a specified compartment. + + + + --state"available/disabled/deleted" + + The state of cloud image. The possible states are "available/disabled/deleted" at moment. + If the state isn't provided the list of images with all possible states is returned. + + + + + + + A compartment is the logical container used to organize and isolate cloud resources. + The different cloud providers can have the different names for this entity. + + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-cloudprofile.xml b/doc/manual/en_US/man_VBoxManage-cloudprofile.xml new file mode 100644 index 00000000..da1c8310 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-cloudprofile.xml @@ -0,0 +1,190 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage cloudprofile + + + + VBoxManage-cloudprofile + 1 + + + + VBoxManage-cloudprofile + Manage the cloud profiles + &product-name; + + + + + VBoxManage cloudprofile + --provider=name + --profile=name + add + --clouduser=unique id + --fingerprint=MD5 string + --keyfile=path + --passphrase=string + --tenancy=unique id + --compartment=unique id + --region=string + + + VBoxManage cloudprofile + --provider=name + --profile=name + update + --clouduser=unique id + --fingerprint=MD5 string + --keyfile=path + --passphrase=string + --tenancy=unique id + --compartment=unique id + --region=string + + + VBoxManage cloudprofile + --provider=name + --profile=name + delete + + + VBoxManage cloudprofile + --provider=name + --profile=name + show + + + + + Description + + + Common options + + The subcommands of cloudprofile implement the standard CRUD operations for a cloud profile. + The next common options must be placed between the "cloud" and the following sub-commands: + + + --provider=name + Short cloud provider name. + + + --profile=name + Cloud profile name. + + + + + + cloudprofile add + + + Add new cloud profile for a specified cloud provider. + + + + The name which fully identifies the user in the specified cloud provider. + + + Fingerprint for the key pair being used. + + + Full path and filename of the private key. + + + Passphrase used for the key, if it is encrypted. + + + ID of your tenancy. + + + ID of your compartment. + + + Region name. Region is where you plan to deploy an application. + + + + + + cloudprofile show + + + Display information about a cloud profile for a specified cloud provider. + + + + + cloudprofile update + + + Modify a cloud profile for the specified cloud provider. + + + + The name which fully identifies the user in the specified cloud provider. + + + Fingerprint for the key pair being used. + + + Full path and filename of the private key. + + + Passphrase used for the key, if it is encrypted. + + + ID of your tenancy. + + + ID of your compartment. + + + Region name. Region is where you plan to deploy an application. + + + + + + cloudprofile delete + + + Delete a cloud profile for a specified cloud provider. + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-common.xml b/doc/manual/en_US/man_VBoxManage-common.xml new file mode 100644 index 00000000..e3aaba8e --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-common.xml @@ -0,0 +1,282 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage + + + + VBoxManage + 1 + + + + VBoxManage + &product-name; command-line interface + &product-name; + + + + + + VBoxManage + + -V + --version + + --dump-build-type + + -q + --nologo + + --settingspw=password + --settingspwfile=pw-file + @response-file + help subcommand + + + + + Description + + The VBoxManage command is the command-line + interface (CLI) for the &product-name; software. The CLI supports + all the features that are available with the &product-name; + graphical user interface (GUI). In addition, you can use the + VBoxManage command to manage the features of + the virtualization engine that cannot be managed by the GUI. + + + Each time you invoke the VBoxManage command, + only one command is executed. Note that some + VBoxManage subcommands invoke several + subcommands. + + + Run the VBoxManage command from the command + line of the host operating system (OS) to control &product-name; + software. + + + The VBoxManage command is stored in the + following locations on the host system: + + + + Linux: + /usr/bin/VBoxManage + + + Mac OS X: + /Applications/VirtualBox.app/Contents/MacOS/VBoxManage + + + Oracle Solaris: + /opt/VirtualBox/bin/VBoxManage + + + Windows: + C:\Program + Files\Oracle\VirtualBox\VBoxManage.exe + + + + In addition to managing virtual machines (VMs) with this CLI or + the GUI, you can use the VBoxHeadless CLI to + manage VMs remotely. + + + The VBoxManage command performs particular + tasks by using subcommands, such as list, + createvm, and startvm. See + the associated information for each VBoxManage + subcommand. + + + If required, specify the VM by its name or by its Universally + Unique Identifier (UUID). + + + Use the VBoxManage list vms command to obtain + information about all currently registered VMs, including the VM + names and associated UUIDs. + + + Note that you must enclose the entire VM name in double quotes if + it contains spaces. + + + General Options + + + + + Suppresses the output of the logo information, which is + useful for scripts. + + The short version of this option is . + + + + + + Specifies the settings password. You can optionally + specify the password as an argument to this option. If you + do not specify the password in this way, the + VBoxManage command prompts you for the + password. + + The settings password is a security feature that encrypts + stored settings, which are stored as plain text by + default. + + You cannot unencrypt encrypted settings. So, if the + settings are encrypted, you must continue to specify the + or + option. + + Only the iSCSI secret is encrypted at this time. + + This design does not conform to Oracle's security + guidelines. You should not be able to specify a password + on the command line because the password can be seen in a + process listing. + + + + + + Specifies the file that contains the settings password. + + + + + + Shows version information about the + VBoxManage command. + + The short version of this option is . + + + + @response-file + + Loads arguments from the specified Bourne shell response + file. + + + + subcommand + + Specifies one of the VBoxManage + subcommands, such as controlvm, + createvm, list, + modifyvm, + showvminfo, startvm, + storageattach, and + storagectl. + + Each subcommand is described in its own command topic, + some of which are shown in See Also sections. + + + + + + + + Examples + + + The following command creates a virtual machine called + Win8 and registers it with &product-name; by + using the option. + +$ VBoxManage createvm --name "Win8" --register +Virtual machine 'Win8' is created. +UUID: UUID-string +Settings file: '/home/username/VirtualBox VMs/Win8/Win8.vbox' + + The command output shows that the Win8 VM is + assigned a UUID and an XML machine settings file. + + + You can use the VBoxManage showvminfo command + to view the configuration information of a VM. + + + The following example uses the VBoxManage + modifyvm command to change the amount of memory for the + Windows XP VM to be 1024 megabytes: + +$ VBoxManage modifyvm "Windows XP" --memory 1024 + + Note that you can use the VBoxManage modifyvm + command even when the VM is powered off. + + + You can use the VBoxManage storagectl command + or the VBoxManage storageattach command to + modify the storage configuration for a VM. For example, to create + a SATA storage controller called sata01 and add + it to the ol7 VM: + +$ VBoxManage storagectl ol7 --name "sata01" --add sata + + Use the VBoxManage startvm command to start a + VM that is currently powered off. For example, to start the + win7 VM: + +$ VBoxManage startvm win7 + + Use the VBoxManage controlvm command to pause + or save a VM that is currently running. You can also use this + command to modify settings for the VM. For example, to enable + audio input for the ol6u9 VM. + +$ VBoxManage controlvm ol6u9 audioin on + + + + See Also + + , + , + , + , + , + , + , + + + + diff --git a/doc/manual/en_US/man_VBoxManage-controlvm.xml b/doc/manual/en_US/man_VBoxManage-controlvm.xml new file mode 100644 index 00000000..f022529c --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-controlvm.xml @@ -0,0 +1,2133 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage controlvm + + + + VBoxManage-controlvm + 1 + + + + VBoxManage-controlvm + change state and settings for a running virtual machine + &product-name; + + + + + + VBoxManage controlvm + + uuid + vmname + + pause + + + + VBoxManage controlvm + + uuid + vmname + + resume + + + + VBoxManage controlvm + + uuid + vmname + + reset + + + + VBoxManage controlvm + + uuid + vmname + + poweroff + + + + VBoxManage controlvm + + uuid + vmname + + savestate + + + + VBoxManage controlvm + + uuid + vmname + + acpipowerbutton + + + + VBoxManage controlvm + + uuid + vmname + + acpisleepbutton + + + + VBoxManage controlvm + + uuid + vmname + + reboot + + + + VBoxManage controlvm + + uuid + vmname + + shutdown + --force + + + + VBoxManage controlvm + + uuid + vmname + + keyboardputscancode + hex + hex + + + + VBoxManage controlvm + + uuid + vmname + + keyboardputstring + string + string + + + + VBoxManage controlvm + + uuid + vmname + + keyboardputfile + filename + + + + VBoxManage controlvm + + uuid + vmname + + setlinkstateN + + on + off + + + + + VBoxManage controlvm + + uuid + vmname + + nicN + + null + nat + bridged + intnet + hostonly + generic + natnetwork + + device-name + + + + VBoxManage controlvm + + uuid + vmname + + nictraceN + + on + off + + + + + VBoxManage controlvm + + uuid + vmname + + nictracefileN + filename + + + + VBoxManage controlvm + + uuid + vmname + + nicpropertyN + prop-name=prop-value + + + + VBoxManage controlvm + + uuid + vmname + + nicpromiscN + + deny + allow-vms + allow-all + + + + + VBoxManage controlvm + + uuid + vmname + + natpfN + + [rulename],tcp + udp,host-IP,hostport,guest-IP,guestport + + + + + VBoxManage controlvm + + uuid + vmname + + natpfN delete + + rulename + + + + VBoxManage controlvm + + uuid + vmname + + guestmemoryballoon + balloon-size + + + + VBoxManage controlvm + + uuid + vmname + + usbattach + + uuid + address + + --capturefile=filename + + + + VBoxManage controlvm + + uuid + vmname + + usbdetach + + uuid + address + + + + + VBoxManage controlvm + + uuid + vmname + + audioin + + on + off + + + + + VBoxManage controlvm + + uuid + vmname + + audioout + + on + off + + + + + VBoxManage controlvm + + uuid + vmname + + clipboard mode + + disabled + hosttoguest + guesttohost + bidirectional + + + + + VBoxManage controlvm + + uuid + vmname + + clipboard filetransfers + + on + off + + + + + VBoxManage controlvm + + uuid + vmname + + draganddrop + + disabled + hosttoguest + guesttohost + bidirectional + + + + + VBoxManage controlvm + + uuid + vmname + + vrde + + on + off + + + + + VBoxManage controlvm + + uuid + vmname + + vrdeport + port + + + + VBoxManage controlvm + + uuid + vmname + + vrdeproperty + prop-name=prop-value + + + + VBoxManage controlvm + + uuid + vmname + + vrdevideochannelquality + percentage + + + + VBoxManage controlvm + + uuid + vmname + + setvideomodehint + xres + yres + bpp + display + enabled:yes | no + x-origin y-origin + + + + + VBoxManage controlvm + + uuid + vmname + + setscreenlayout + display + + on + primary x-origin y-origin x-resolution y-resolution bpp + off + + + + + VBoxManage controlvm + + uuid + vmname + + screenshotpng + filename + display + + + + VBoxManage controlvm + + uuid + vmname + + recording + + on + off + + + + + VBoxManage controlvm + + uuid + vmname + + recording screens + + all + none + screen-ID[,screen-ID...] + + + + + VBoxManage controlvm + + uuid + vmname + + recording filename + filename + + + + VBoxManage controlvm + + uuid + vmname + + recording videores + widthxheight + + + + VBoxManage controlvm + + uuid + vmname + + recording videorate + rate + + + + VBoxManage controlvm + + uuid + vmname + + recording videofps + fps + + + + VBoxManage controlvm + + uuid + vmname + + recording maxtime + sec + + + + VBoxManage controlvm + + uuid + vmname + + recording maxfilesize + MB + + + + + + VBoxManage controlvm + + uuid + vmname + + setcredentials + username + --passwordfile= + filename + password + + domain-name + --allowlocallogon= + yes + no + + + + + VBoxManage controlvm + + uuid + vmname + + teleport + --host=host-name + --port=port-name + --maxdowntime=msec + + --passwordfile=filename + --password=password + + + + + VBoxManage controlvm + + uuid + vmname + + plugcpu + ID + + + + VBoxManage controlvm + + uuid + vmname + + unplugcpu + ID + + + + VBoxManage controlvm + + uuid + vmname + + cpuexecutioncap + num + + + + VBoxManage controlvm + + uuid + vmname + + vm-process-priority + + default + flat + low + normal + high + + + + + VBoxManage controlvm + + uuid + vmname + + webcam attach + pathnamesettings + + + + VBoxManage controlvm + + uuid + vmname + + webcam detach + pathname + + + + VBoxManage controlvm + + uuid + vmname + + webcam list + + + + VBoxManage controlvm + + uuid + vmname + + addencpassword + ID + + password-file + - + + --removeonsuspend= + yes + no + + + + + VBoxManage controlvm + + uuid + vmname + + removeencpassword + ID + + + + VBoxManage controlvm + + uuid + vmname + + removeallencpasswords + + + + VBoxManage controlvm + + uuid + vmname + + changeuartmodeN + + disconnected + server pipe-name + client pipe-name + tcpserver port + tcpclient hostname:port + file filename + device-name + + + + + VBoxManage controlvm + + uuid + vmname + + autostart-enabledN + + on + off + + + + + VBoxManage controlvm + + uuid + vmname + + autostart-delayseconds + + + + + Description + + The VBoxManage controlvm command enables you to + change the state of a running virtual machine (VM). The following + sections describe the subcommands that you can use: + + + Pause a Virtual Machine + + + The VBoxManage controlvm + vmname pause command + temporarily stops the execution of a VM. When paused, the VM's + state is not permanently changed. + + + The VM window appears as gray and the title bar of the window + indicates that the VM is currently Paused. This action is + equivalent to selecting Pause + from the Machine menu of the + GUI. + + + + Resume a Paused Virtual Machine + + + The VBoxManage controlvm + vmname resume command + restarts the execution of a paused VM. This action is equivalent + to selecting Resume from the + Machine menu of the GUI. + + + + Reset a Virtual Machine + + + The VBoxManage controlvm + vmname reset command + performs a cold reset the VM. This command has the same effect + on a VM as pressing the Reset button on a physical computer. + + + The cold reboot immediately restarts and reboots the guest + operating system (OS). The state of the VM is not saved prior to + the reset, so data might be lost. This action is equivalent to + selecting Reset from the + Machine menu of the GUI. + + + + Power Off a Virtual Machine + + + The VBoxManage controlvm + vmname poweroff command + powers off the VM. This command has the same effect on a VM as + pulling the power cable on a physical computer. + + + The state of the VM is not saved prior to poweroff, so data + might be lost. This action is equivalent to selecting + Close from the + Machine menu of the GUI or to + clicking the VM window's Close button, and then selecting + Power Off the Machine. + + + When in the powered off state, you can restart the VM. See + . + + + + Save the State of a Virtual Machine + + + The VBoxManage controlvm + vmname savestate command + saves the current state of the VM to disk and then stops the VM. + + + This action is equivalent to selecting + Close from the + Machine menu of the GUI or to + clicking the VM window's Close button, and then selecting + Save the Machine State. + + + When in the saved state, you can restart the VM. It will continue + exactly in the state you saved. + + + + Send an APCI Shutdown Signal to a Virtual Machine + + + The VBoxManage controlvm + vmname acpipowerbutton + command sends an ACPI shutdown signal to the VM. This command + has the same effect on a VM as pressing the Power button on a + physical computer. + + + So long as the VM runs a guest OS that provides appropriately + configured ACPI support, this command triggers an operating + system shutdown from within the VM. + + + + Send an APCI Sleep Signal to a Virtual Machine + + + The VBoxManage controlvm + vmname acpisleepbutton + command sends an ACPI sleep signal to the VM. + + + So long as the VM runs a guest OS that provides appropriately + configured ACPI support, this command triggers a sleep mechanism + from within the VM. + + + + Reboot the guest OS + + + The VBoxManage controlvm + vmname reboot + command asks the guest OS to reboot itself. + + + This commands requires Guest Additions to be installed in the VM. + + + + Shut down the guest OS + + + The VBoxManage controlvm + vmname shutdown + command asks the guest OS to halt + shutdown, optionally forcing + the shutdown. + + + This commands requires Guest Additions to be installed in the VM. + + + + Send Keyboard Scancodes to a Virtual Machine + + + The VBoxManage controlvm + vmname keyboardputscancode + command sends keyboard scancode commands to the VM. + + + For information about keyboard scancodes, see + . + + + + Send Keyboard Strings to a Virtual Machine + + + The VBoxManage controlvm + vmname keyboardputstring + command sends keyboard strings to the VM. + + + + Send a File to a Virtual Machine + + + The VBoxManage controlvm + vmname keyboardputfile + command sends a file to the VM. + + + + Set the Link State for a Virtual Machine + + + VBoxManage controlvm vmname + setlinkstateN command + enables you to connect or disconnect the virtual network cable + from the network interface instance + (N). Valid values are + on and off. The default + value is on. + + + + Set the Type of Networking to Use for a Virtual Machine + + + The VBoxManage controlvm + vmname + nicN command specifies the + type of networking to use on the specified VM's virtual network + card. N numbering begins with + 1. + + + The following valid network types are also described in + : + + + + null specifies that the VM is is not + connected to the host system. + + + nat specifies that the VM uses network + address translation (NAT). + + + bridged specifies that the VM uses + bridged networking. + + + intnet specifies that the VM communicates + with other VMs by using internal networking. + + + hostonly specifies that the VM uses + host-only networking. + + + natnetwork specifies that the VM uses NAT + networking. + + + generic specifies that the VM has access + to rarely used submodes + + + + + Trace the Network Traffic of a Virtual Machine + + + The VBoxManage controlvm + vmname + nictraceN command enables + you to trace the network traffic on the specified virtual + network card (N). + N numbering begins with + 1. Valid values are on and + off. The default value is + off. + + + If you did not configure a file name for the trace file then + a default one is used, placing it in the VM subdirectory. + + + + Specify the Network Traffic Trace Log File for a Virtual Machine + + + The VBoxManage controlvm + vmname + nictracefileN command + enables you to specify the name of the network traffic trace log + file for the specified virtual network card + (N). N + numbering begins with 1. + + + + Specify the Promiscuous Mode to Use for a Virtual Machine + + + The VBoxManage controlvm + vmname + nicpromiscN command enables + you to specify how to handle promiscuous mode for a bridged + network. The default value of deny hides any + traffic that is not intended for this VM. The + allow-vms value hides all host traffic from + this VM but enables the VM to see traffic to and from other VMs. + The allow-all value removes this restriction + completely. + + + + Specify the Network Backend Property Values for a Virtual Machine + + + The VBoxManage controlvm + vmname + nicpropertyN + prop-name=prop-value + command, in combination with nicgenericdrv, + enables you to pass property values to rarely-used network + backends. + + + Those properties are backend engine-specific, and are different + between UDP Tunnel and the VDE backend drivers. See + . + + + + Specify a NAT Port Forwarding Rule for a Virtual Machine + + + The VBoxManage controlvm + vmname + natpfN command specifies a + NAT port-forwarding rule. See . + + + + Delete a NAT Port Forwarding Rule for a Virtual Machine + + + The VBoxManage controlvm + vmname + natpfN delete command deletes + the specified NAT port-forwarding rule. See + . + + + + Change Size of a Virtual Machine's Guest Memory Balloon + + + The VBoxManage controlvm + vmname guestmemoryballoon + command changes the size of the guest memory balloon. The guest + memory balloon is the memory allocated by the &product-name; + Guest Additions from the guest OS and returned to the hypervisor + for reuse by other VMs. The value you specify is in megabytes. + See . + + + + Make a Host System USB Device Visible to a Virtual Machine + + + The VBoxManage controlvm + vmname usbattach command + dynamically attaches a host USB device to the VM, which makes it + visible. You do not need to create a filter. + + + Specify a USB device by its Universally Unique Identifier (UUID) + or by its address on the host system. Use the + VBoxManage list usbhost command to obtain + information about USB devices on the host system. + + + Use the option to specify the + absolute path of a file in which to write logging data. + + + + Make a Host System USB Device Invisible to a Virtual Machine + + + The VBoxManage controlvm + vmname usbdetach command + dynamically detaches a host USB device from the VM, which makes + it invisible. You do not need to create a filter. + + + Specify a USB device by its UUID or by its address on the host + system. Use the VBoxManage list usbhost + command to obtain information about USB devices on the host + system. + + + + Enable or Disable Audio Capture From the Host System + + + The VBoxManage controlvm + vmname audioin command + specifies whether to enable or disable audio capture from the + host system. Valid values are on, which + enables audio capture and off, which disables + audio capture. The default value is off. + + + + Enable or Disable Audio Playback From a Virtual Machine + + + The VBoxManage controlvm + vmname audioout command + specifies whether to enable or disable audio playback from the + guest VM. Valid values are on, which enables + audio playback and off, which disables audio + playback. The default value is off. + + + + Specify How to Share the Host OS or Guest OS Clipboard + + + The VBoxManage controlvm + vmname clipboard mode command + specifies how to share the guest or host OS's clipboard with the + host system or VM. Valid values are disabled, + hosttoguest, guesttohost, + and bidirectional. The default value is + disabled. See + . + + + This feature requires that the &product-name; Guest Additions + are installed in the VM. + + + + + Specify If Files Can Be Transferred Through the Clipboard + + + The VBoxManage controlvm + vmname clipboard filetransfers + command specifies if it is possible to transfer files through the + clipboard between the host and VM, in the direction which is allowed. + Valid values are off and on. + The default value is off. + + + This feature requires that the &product-name; Guest Additions + are installed in the VM. + + + + + Set the Drag and Drop Mode Between the Host System and a Virtual Machine + + + The VBoxManage controlvm + vmname draganddrop command + specifies the current drag and drop mode to use between the host + system and the VM. Valid values are disabled, + hosttoguest, guesttohost, + and bidirectional. The default value is + disabled. See + . + + + This feature requires that the &product-name; Guest Additions + are installed in the VM. + + + + Enable or Disable the VRDE Server + + + The VBoxManage controlvm + vmname vrde command enables + or disables the VirtualBox Remote Desktop Extension (VRDE) + server, if installed. Valid values are on and + off. The default value is + off. + + + + Specify VRDE Server Ports + + + The VBoxManage controlvm + vmname vrdeport command + specifies the port or range of ports to which the VRDE server + can bind. The default value is default or + 0, which is the standard RDP port, + 3389. + + + Also see the option description in + . + + + + Specify VRDE Server Port Numbers and IP Addresses + + + The VBoxManage controlvm + vmname vrdeproperty command + specifies the port numbers and IP address on the VM to which the + VRDE server can bind. + + + + TCP/Ports specifies a port or a range of + ports to which the VRDE server can bind. The default value + is default or 0, which + is the standard RDP port, 3389. + + Also see the option description + in . + + + TCP/Address specifies the IP address of + the host network interface to which the VRDE server binds. + When specified, the server accepts to connect only on the + specified host network interface. + + Also see the option + description in . + + + VideoChannel/Enabled specifies whether to + enable the VirtualBox Remote Desktop Protocol (VRDP) video + channel. Valid values are 1 to enable the + video channel and 0 to disable the video + channel. The default value is off. See + . + + + VideoChannel/Quality specifies the JPEG + compression level on the VRDE server video channel. Valid + values are between 10% and 100%, inclusive. Lower values + mean lower quality but higher compression. The default value + is 100. See + . + + + VideoChannel/DownscaleProtection + specifies whether to enable the video channel downscale + protection feature. Specify 1 to enable + the feature. This feature is disabled by default. + + When enabled, if the video's size equals the shadow buffer + size, the video is shown in full-screen mode. If the video's + size is between full-screen mode and the downscale + threshold, the video is not shown as it might be an + application window that is unreadable when downscaled. When + disabled, the downscale protection feature always attempts + to show videos. + + + Client/DisableDisplay specifies whether + to disable the VRDE server display feature. Valid values are + 1 to disable the feature and an empty + string ("") to enable the feature. + The default value is an empty string. See + . + + + Client/DisableInput specifies whether to + disable the VRDE server input feature. Valid values are + 1 to disable the feature and an empty + string ("") to enable the feature. + The default value is 1. See + . + + + Client/DisableAudio specifies whether to + disable the VRDE server audio feature. Valid values are + 1 to disable the feature and an empty + string ("") to enable the feature. + The default value is 1. See + . + + + Client/DisableUSB specifies whether to + disable the VRDE server USB feature. Valid values are + 1 to disable the feature and an empty + string ("") to enable the feature. + The default value is 1. See + . + + + Client/DisableClipboard specifies whether + to disable the VRDE clipboard feature. Valid values are + 1 to disable the feature and an empty + string ("") to enable the feature. + To reenable the feature, use + Client/DisableClipboard=. The default + value is 1. See + . + + + Client/DisableUpstreamAudio specifies + whether to disable the VRDE upstream audio feature. Valid + values are 1 to disable the feature and + an empty string ("") to enable the + feature. To reenable the feature, use + Client/DisableUpstreamAudio=. The default + value is 1. See + . + + + Client/DisableRDPDR specifies whether to + disable the RDP Device Redirection For Smart Cards feature + on the VRDE server. Valid values are 1 to + disable the feature and an empty string + ("") to enable the feature. + The default value is 1. See + . + + + H3DRedirect/Enabled specifies whether to + enable the VRDE server 3D redirection feature. Valid values + are 1 to enable the feature and an empty + string ("") to disable the feature. + See . + + + Security/Method specifies the security + method to use for a connection. See + . + + + Negotiate accepts both enhanced (TLS) + and standard RDP security connections. The security + method is negotiated with the client. This is the + default value. + + + RDP accepts only standard RDP + security connections. + + + TLS accepts only enhanced RDP + security connections. The client must support TLS. + + + + Security/ServerCertificate specifies the + absolute path of the server certificate to use for a + connection. See . + + + Security/ServerPrivateKey specifies the + absolute path of the server private key. See + . + + + Security/CACertificate specifies the + absolute path of the CA self-signed certificate. See + . + + + Audio/RateCorrectionMode specifies the + rate correction mode to use. + + + VRDP_AUDIO_MODE_VOID indicates that + no mode is specified. Use this value to unset any audio + mode that is already set. + + + VRDP_AUDIO_MODE_RC specifies to use + the rate correction mode. + + + VRDP_AUDIO_MODE_LPF specifies to use + the low pass filter mode. + + + VRDP_AUDIO_MODE_CS specifies to use + the client sync mode to prevent underflow or overflow of + the client queue. + + + + Audio/LogPath specifies the absolute path + of the audio log file. + + + + + Specify the Image Quality for VRDP Video Redirection + + + The VBoxManage controlvm + vmname + vrdevideochannelquality command sets the image + quality, as a JPEG compression level value, for video + redirection. Valid values are between 10% and 100%, inclusive. + Lower values mean lower quality but higher compression. See + . + + + + Specify the Video Mode for the Guest VM + + + The VBoxManage controlvm + vmname setvideomodehint + command specifies the video mode for the guest VM to use. You + must have the &product-name; Guest Additions installed. Note + that this feature does not work for all guest systems. + + + + Specify the Screen Layout for a Display on the Guest VM + + + The VBoxManage controlvm + vmname setscreenlayout + command can be used to configure multiscreen displays. The + specified screen on the guest VM can be enabled or disabled, or + a custom screen layout can be configured. + + + + Take a Screen Shot of the Virtual Machine Display + + + The VBoxManage controlvm + vmname screenshotpng + command takes a screenshot of the guest display and saves it as + PNG in the specified file. + + + + filename specifies the name of + the PNG file to create. + + + display specifies the display + number for the screen shot. For a single monitor guest + display, this is 0. + + + + + Enable or Disable the Recording of a Virtual Machine Session + + + The VBoxManage controlvm + vmname recording command + enables or disables the recording of a VM session into a + WebM/VP8 file. Valid values are on, which + begins recording when the VM session starts and + off, which disables recording. The default + value is off. + + + + Specify the Virtual Machine Screens to Record + + + The VBoxManage controlvm + vmname recording screens + command enables you to specify which VM screens to record. The + recording for each screen that you specify is saved to its own + file in the machine folder. You cannot modify this setting while + recording is enabled. + + + + all specifies that you record all VM + screens. + + + none specifies that you do not record any + VM screens. + + + screen-ID specifies one or more + VM screens to record. + + + + + Specify the File in Which to Save Virtual Machine Recording + + + The VBoxManage controlvm + vmname recording filename + command specifies the file in which to save the recording. You + cannot modify this setting while recording is enabled. + + + The default setting is to store a recording in the machine + folder, using the VM name as the file name, with a + webm file name extension. + + + + Specify the Resolution of the Recorded Video + + + VBoxManage controlvm vmname + recording videores command specifies the resolution of + the recorded video in pixels. You cannot modify this setting + while recording is enabled. + + + Use the Settings tool to view the video recording settings, + which are based on the resolution (frame size). See the Frame + Size field on the Recording tab of the Display page to view the + default value. + + + Specify the resolution as + widthxheight: + + + + width specifies the width in + pixels. + + + height specifies the height in + pixels. + + + + + Specify the Bit Rate of the Video + + + + The VBoxManage controlvm + vmname recording videorate + command specifies the bit rate, + bit-rate, of the video in kilobits + per second. Increasing this value improves the appearance of the + video at the cost of an increased file size. You cannot modify + this setting while recording is enabled. + + + Use the Settings tool to view the video recording settings, + which are based on the frame size. See the Video Quality field + on the Recording tab of the Display page to view the default + value. + + + + Specify the Maximum Frequency of the Video + + + The VBoxManage controlvm + vmname recording videofps + command specifies the maximum frequency of the video to record. + Video frequency is measured in frames per second (FPS). The + recording skips any frames that have a frequency higher than the + specified maximum. Increasing the frequency reduces the number + of skipped frames and increases the file size. You cannot modify + this setting while recording is enabled. + + + Use the Settings tool to view the video recording settings, + which are based on the frame size. See the Frame Rate field on + the Recording tab of the Display page to view the default value. + + + + Specify the Maximum Amount of Time to Record Video + + + + The VBoxManage controlvm + vmname recording maxtime + command specifies the maximum amount time to record in seconds. + The recording stops after the specified number of seconds + elapses. If this value is zero, the recording continues until + you stop the recording. + + + + Specify the Maximum Size of the Recorded Video + + + The VBoxManage controlvm + vmname recording + maxfilesize command specifies the maximum size of the + recorded video file in megabytes. The recording stops when the + file reaches the specified size. If this value is zero, the + recording continues until you stop the recording. You cannot + modify this setting while recording is enabled. + + + + + Specify Credentials for Remote Logins on Windows Virtual Machines + + + The setcredentials command enables you to + specify the credentials for remotely logging in to Windows VMs. + See . + + + + username specifies the user name + with which to log in to the Windows VM. + + + + specifies the file from which to obtain the password for + username. + + The is mutually exclusive + with the option. + + + + specifies the password for + username. + + This design does not conform to Oracle's security + guidelines. You should not be able to specify a password on + the command line because the password can be seen in a + process listing. + + The is mutually exclusive with + the option. + + + specifies whether to + enable or disable local logins. Valid values are + on to enable local logins and + off to disable local logins. + + + + + Configure a Virtual Machine Target for Teleporting + + + The VBoxManage controlvm + vmname teleport command + initiates a teleporting operation between the specified VM and + the specified host system. See . + + + If you specify a password, it must match the password you + specified when you issued the VBoxManage + modifyvm command for the target machine. + + + + + + Specifies the name of the VM. + + + + + + Specifies the port on the VM that should listen for a + teleporting request from other VMs. The port number can be + any free TCP/IP port number, such as + 6000. + + + + + + Specifies the maximum downtime, in milliseconds, for the + teleporting target VM. + + + + + + Specifies the password that the source machine uses for + the teleporting request. The request succeeds only if the + source machine specifies the same password. + + This design does not conform to Oracle's security + guidelines. You should not be able to specify a password + on the command line because the password can be seen in a + process listing. + + The is mutually exclusive with + the option. + + + + + + Specifies the file from which to obtain the password that + the source machine uses for the teleporting request. The + request succeeds only if the source machine specifies the + same password. + + When you specify a file name of stdin, + you can read the password from standard input. + + The is mutually exclusive + with the option. + + + + + + Add a Virtual CPU to a Virtual Machine + + + The VBoxManage controlvm + vmname plugcpu command adds + a virtual CPU to the specified VM if CPU hot-plugging is + enabled. ID specifies the index of + the virtual CPU to be added and must be a number from 0 to the + maximum number of CPUs configured. + + + + Remove a Virtual CPU From a Virtual Machine + + + The VBoxManage controlvm + vmname unplugcpu command + removes a virtual CPU from the specified VM if CPU hot-plugging + is enabled. ID specifies the index of + the virtual CPU to be removed and must be a number from 0 to the + maximum number of CPUs configured. You cannot remove CPU 0. + + + + Set the Maximum Amount of Physical CPU Time Used by a Virtual CPU + + + The VBoxManage controlvm + vmname cpuexecutioncap + command specifies how the maximum amount of physical CPU time + used by a virtual CPU. Valid values are a percentage between + 1 and 100. A value of + 50 specifies that a single virtual CPU can + use up to 50% of a physical CPU. The default value is + 100. + + + Use this feature with caution, it can have unexpected results + including timekeeping problems and lower performance than + specified. If you want to limit the resource usage of a VM + it is more reliable to pick an appropriate number of VCPUs. + + + + Change the Priority of a VM Process + + + The VBoxManage controlvm + vmname vm-process-priority + command specifies the priority scheme of the VM process to use + when starting the specified VM and while the VM runs. + + + Valid values are: + + + + default – Default process + priority determined by the OS. + + + flat – Assumes a scheduling + policy which puts the process at the default priority + and with all threads at the same priority. + + + low – Assumes a scheduling + policy which puts the process mostly below the default + priority of the host OS. + + + normal – Assume a scheduling + policy which shares the CPU resources fairly with + other processes running with the default priority of + the host OS. + + + high – Assumes a scheduling + policy which puts the task above the default priority of + the host OS. This policy might easily cause other tasks + in the system to starve. + + + + + Attach a Webcam to a Virtual Machine + + + The VBoxManage controlvm + vmname webcam attach + command attaches a webcam to a running VM. Specify the webcam as + the absolute path of the webcam on the host OS or as an alias. + Use the VBoxManage list webcams command to + obtain the webcam alias. + + + Note that the .0 alias is the default video + input device on the host OS. .1 is the first + video input device, .2 is the second video + input device, and so on. The order of the devices is specific to + the host system. + + + You can specify optional settings in the form of + semi-colon-separated (;) name-value pairs. + These properties enable you to configure the emulated webcam + device. + + + The following settings are supported: + + + + MaxFramerate + + Specifies the highest rate at which to send video frames + to the VM. The rate is in frames per second. Higher frame + rates increase CPU load, so you can use this setting to + reduce CPU load. The default value is no maximum + limit. This value enables the VM to use any + frame rate supported by the webcam. + + + + MaxPayloadTransferSize + + Specifies the maximum number of bytes that the VM receives + from the emulated webcam in one buffer. The default + setting is 3060 bytes, which is used by + some webcams. If the VM is able to use larger buffers, + higher values might reduce CPU load slightly. Note that + some guest OSes might not suppport higher + MaxPayloadTransferSize values. + + + + + + Detach a Webcam From a Virtual Machine + + + The VBoxManage controlvm + vmname webcam detach + command detaches a webcam from a running VM. Specify the webcam + as the absolute path of the webcam on the host OS or as an + alias. Use the VBoxManage list webcams to + obtain the webcam alias. + + + When a webcam device is detached from the host, the host OS + determines how the emulated webcam behaves. + + + + Windows hosts: The emulated + webcam device is detached from the VM automatically. + + + Mac OS X hosts that run at least OS X + 10.7: The emulated webcam device remains attached + to the VM and you must detach it manually by using the + VBoxManage controlvm webcam detach + command. + + + Linux hosts: The emulated + webcam device is detached from the VM automatically only if + the webcam is actively streaming video. If the emulated + webcam is inactive, manually detach it by using the + VBoxManage controlvm + vmname webcam detach + command. + + + + + List the Webcams Attached to a Virtual Machine + + + The VBoxManage controlvm + vmname webcam list command + lists webcams that are attached to the running VM. The output + shows a list of absolute paths or aliases that attached the + webcams to the VM by using the VBoxManage controlvm + vmname webcam attach + command. + + + + Set an Encryption Password for a Virtual Machine + + + The VBoxManage controlvm + vmname addencpassword + command provides the vmname encrypted + VM with the encryption password to enable a headless start. + Specify the absolute path of a password file on the host system. + If filename is -, + VBoxManage prompts for the encryption + password. + + + Use the option to specify + whether to save the passsword or clear it from VM memory when + the VM is suspended. + + + If the VM is suspended and the password is cleared, use the + VBoxManage controlvm vmname + addencpassword to provide the password to resume + execution on the VM. Use this feature when you do not want to + store the password in VM memory while the VM is suspended by a + host suspend event. + + + + You can encrypt data stored on hard disk images used by the + VM. &product-name; uses the AES algorithm in XTS mode and + supports 128-bit or 256-bit data encryption keys (DEK). The + encrypted DEK is stored in the medium properties and is + decrypted during VM startup when you provide the encryption + password. + + + + Use the VBoxManage encryptmedium command to + create a DEK encrypted medium. See + . + + + The &product-name; GUI prompts you for the encryption password + when you start an encrypted VM. + + + Use the following command to perform a headless start of an + encrypted VM: + + + $ VBoxManage startvm vmname --type headless + + + Then, use the following command to provide the encryption + password: + + + $ VBoxManage vmname controlvm addencpassword vmname - + Password: encryption-password + + + + Disable an Encryption Password for a Virtual Machine + + + The VBoxManage controlvm + vmname removeencpassword + command disables a specific encryption password for all + encrypted media attached to the VM. + + + ID is the password identifier for the + encryption password that you want to disable. + + + + Disable All Encryption Passwords for a Virtual Machine + + + The VBoxManage controlvm + vmname + removeallencpasswords command disables all encryption + passwords for all encrypted media attached to the VM. + + + + Change the Connection Mode for a Virtual Serial Port on a Virtual + Machine + + + The VBoxManage controlvm + vmname changeuartmode + command changes the connection mode for the specified virtual + serial port. Valid serial port values are integers that start + from 1. + + + + disconnected + + Disconnects the device. + + + + server pipe-name + + Specifies the pipe name of the server. + + + + client pipe-name + + Specifies the pipe name of the client. + + + + tcpserver port + + Specifies the port number of the TCP server. + + + + tcpclient hostname:port + + Specifies the host name and port number of the TCP client. + + + + file filename + + Specifies the name of the file. + + + + device-name + + Specifies the name of the device. + + + + + + Enabling autostart the VM during host system boot + + + The VBoxManage controlvm + vmname autostart-enabled + command specifies whether to enable or disable automatically + start the VM at host system boot-up. You must do some host + system configuration before you can use this feature. + See . Valid values are + on, which enables autostart feature for + the VM and off, which disables it. The + default value is off. + + + + Setting the delay of starting the VM on host system boot + + + The VBoxManage controlvm + vmname autostart-delay + command specifies the delay in seconds before the VM starts + on host system boot-up. See . + + + + + + Examples + + + The following command temporarily stops the execution of the + ol7 VM. + +$ VBoxManage controlvm ol7 pause + + The following command configures shared clipboard operation for + the ol7 VM. Copying of clipboard data is + allowed in both directions between the host and guest. + +$ VBoxManage controlvm ol7 clipboard mode bidirectional + + + + See Also + + , + , + + + + diff --git a/doc/manual/en_US/man_VBoxManage-convertfromraw.xml b/doc/manual/en_US/man_VBoxManage-convertfromraw.xml new file mode 100644 index 00000000..c4400191 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-convertfromraw.xml @@ -0,0 +1,250 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage convertfromraw + + + + VBoxManage-convertfromraw + 1 + + + + VBoxManage-convertfromraw + convert a raw disk image to a virtual disk image + &product-name; + + + + + + VBoxManage convertfromraw + inputfile + outputfile + --format= + VDI + VMDK + VHD + + --uuid=uuid + --variant=Standard,Fixed,Split2G,Stream,ESX + + + + VBoxManage convertfromraw stdin + outputfile + --format= + VDI + VMDK + VHD + + --uuid=uuid + --variant=Standard,Fixed,Split2G,Stream,ESX + + + + + Description + + The VBoxManage convertfromraw command enables + you to convert a raw disk image to an &product-name; virtual disk + image (VDI). + + + + For compatibility with earlier versions of &product-name;, you + can use the VBoxManage convertdd command + instead of the VBoxManage convertfromraw + command. + + + + Convert a Raw Disk File to a Virtual Disk Image File + + + The VBoxManage convertfromraw command + converts the specified raw disk image input file to an + &product-name; VDI file. + + + + inputfile + + Specifies the name of the raw disk image file to convert. + + + + outputfile + + Specifies the name of the file in which to write the VDI + output. + + + + + + Specifies the format of the disk image to create. Valid + values are VDI, + VMDK, and VHD. The + default format is VDI. + + + + + + Specifies the Universally Unique Identifier (UUID) of the + output file. + + + + + + Specifies any required file format variants for the output + file. This is a comma-separated list of variant values. + Following are the valid values: + + + Standard is the default disk image + type, which has a dynamically allocated file size. + + + Fixed uses a disk image that has a + fixed file size. + + + Split2G indicates that the disk + image is split into 2GB segments. This value is for + VMDK only. + + + Stream optimizes the disk image for + downloading. This value is for VMDK only. + + + ESX is used for some VMWare + products. This value is for VMDK only. + + + Note that not all variant combinations are valid. + Specifying incompatible variant values in the list will + produce an error message. + + + + + + Convert Raw Data From Standard Input to a Virtual Disk Image File + + + The VBoxManage convertfromraw stdin command + reads the content of the disk image from standard input. + Consider using this form of the command in a pipe sequence. + + + + outputfile + + Specifies the name of the file in which to write the VDI + output. + + + + + + Specifies the format of the disk image to create. Valid + values are VDI, + VMDK, and VHD. The + default format is VDI. + + + + + + Specifies the UUID of the output file. + + + + + + Specifies any required file format variants for the output + file. This is a comma-separated list of variant values. + Following are the valid values: + + + Standard is the default disk image + type, which has a dynamically allocated file size. + + + Fixed uses a disk image that has a + fixed file size. + + + Split2G indicates that the disk + image is split into 2GB segments. This value is for + VMDK only. + + + Stream optimizes the disk image for + downloading. This value is for VMDK only. + + + ESX is used for some VMWare + products. This value is for VMDK only. + + + Note that not all variant combinations are valid. + Specifying incompatible variant values in the list will + produce an error message. + + + + + + + + Examples + + + The following command converts the raw disk image input file + disk01.raw. The output file is a VDI disk + image called disk02.vdi. + +$ VBoxManage convertfromraw disk01.raw disk02.vdi + + The following command converts the raw disk image input file + disk01.raw. The output file is a VMDK disk + image called disk02.vmdk. + +$ VBoxManage convertfromraw disk01.raw disk02.vmdk --format VMDK + + diff --git a/doc/manual/en_US/man_VBoxManage-createmedium.xml b/doc/manual/en_US/man_VBoxManage-createmedium.xml new file mode 100644 index 00000000..a73ad8f7 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-createmedium.xml @@ -0,0 +1,224 @@ + + + + +%all.entities; +]> + + + $Date: 2022-10-26 20:27:37 +0200 (Wed, 26 Oct 2022) $ + VBoxManage createmedium + + + + VBoxManage-createmedium + 1 + + + + VBoxManage-createmedium + create a new medium + &product-name; + + + + + + VBoxManage createmedium + + disk + dvd + floppy + + --filename=filename + + --size=megabytes + --sizebyte=bytes + + --diffparent= + UUID + filename + + --format= + VDI + VMDK + VHD + + --variant Standard,Fixed,Split2G,Stream,ESX,Formatted,RawDisk + --property + name=value + --property-file + name=/path/to/file/with/value + + + + + Description + + The VBoxManage createmedium command creates a + new medium, such as a disk image file. + + + + For compatibility with earlier versions of &product-name;, you + can use the createvdi and + createhd commands instead of the + createmedium command. + + + + + disk | dvd | floppy + + Specifies the media type. The default value is + disk. + + + + + + Specifies the absolute path name to a file on the host file + system. + + + + + + Specifies the image capacity in one megabyte units. + + + + + + Specifies the image capacity in one byte units. + + + + + + Specifies the Universally Unique Identifier (UUID) or + absolute path name of a differencing image parent file on + the host file system. + + Use this file to share a base box disk image among VMs. + + + + + + Specifies the file format of the output file. Valid formats + are VDI, VMDK, and + VHD. The default format is + VDI. + + + + + + Specifies the file format variant for the target medium, + which is a comma-separated list of variants. Following are + the valid values: + + + Standard is the default disk image + type, which has a dynamically allocated file size. + + + Fixed uses a disk image that has a + fixed file size. + + + Split2G indicates that the disk image + is split into 2GB segments. This value is valid for VMDK + disk images only. + + + Stream optimizes the disk image for + downloading. This value is valid for VMDK disk images + only. + + + ESX is used for some VMWare products. + This value is valid for VMDK disk images only. + + + Formatted formats the medium automatically. + This value is valid for floppy images only. + + + RawDisk is used for creating a VMDK + image which provides direct access to the hard disk on + the host using its raw interface. This value is valid for + VMDK disk images only. For detailed information about raw + disk access, see . + + + Note that not all variant combinations are valid. Specifying + incompatible variant values in the list will produce an + error message. + + + + + + Specifies any required file format dependent parameters in + key=value form. Optional. + + + + + + + Specifies any required file format dependent parameters in + key=file/with/value form. The value is + taken from the file. Optional. + + + + + + + Examples + + + The following command creates a new disk image file named + disk01.vdi. The file size is 1024 megabytes. + +$ VBoxManage createmedium --filename disk01.vdi --size 1024 + + The following command creates a new floppy disk image file named + floppy01.vdi. The file size is 1 megabyte. + +$ VBoxManage createmedium floppy --filename floppy01.img --size 1 + + The following command creates a raw disk image of an entire physical disk + on a Linux host. + + $ VBoxManage createmedium disk --filename=/path/to/rawdisk.vmdk --variant=RawDisk --format=VMDK --property RawDrive=/dev/sda + + diff --git a/doc/manual/en_US/man_VBoxManage-createvm.xml b/doc/manual/en_US/man_VBoxManage-createvm.xml new file mode 100644 index 00000000..53cde459 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-createvm.xml @@ -0,0 +1,210 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage createvm + + + + VBoxManage-createvm + 1 + + + + VBoxManage-createvm + create a new virtual machine + &product-name; + + + + + + VBoxManage createvm + --name=name + --basefolder=basefolder + --default + --group=group-ID,... + --ostype=ostype + --register + --uuid=uuid + --cipher cipher + --password-id password-id + --password file + + + + + Description + + The VBoxManage createvm command creates a new + XML virtual machine (VM) definition file. + + + You must specify the name of the VM by using . This name is used by + default as the name of the settings file that has the + .vbox extension and the machine folder, which + is a subfolder of the $HOME/VirtualBox VMs + directory. + + + The actual file name may not correspond directly to the VM name + if it violates the host OS file name requirements (such as using + the path separator or other reserved characters, they will be + substituted with a placeholder). If you later rename the VM, the + file and folder names will be updated to match the new name + automatically. + + + + + Command Options + + In addition to specifying the name or UUID of the VM, which is + required, you can specify any of the following options: + + + + + + Specifies the name of the folder in which to save the + machine configuration file for the new VM. + + Note that the names of the file and the folder do not change + if you rename the VM. + + + + + + Applies a default hardware configuration for the specified + guest OS. By default, the VM is created with minimal + hardware. + + + + + + Assigns the VM to the specified groups. If you specify more + than one group, separate each group name with a comma. + + Note that each group is identified by a group ID that starts + with a slash character (/) so that groups + can be nested. By default, a VM is always assigned + membership to the / group. + + + + + + Specifies the guest OS to run in the VM. Run the + VBoxManage list ostypes command to see + the available OS types. + + + + + + Registers the VM with your &product-name; installation. By + default, the VBoxManage createvm command + creates only the XML configuration for the VM but does not + register the VM. If you do not register the VM at creation, + you can run the VBoxManage registervm + command after you create the VM. + + + + + + Specifies the Universally Unique Identifier (UUID) of the + VM. Ensure that this UUID is unique within the + &product-name; namespace of the host or of its VM group + memberships if you decide to register the VM. By default, + &product-name; provides the UUID. + + + + + + Specifies the cipher to use for encryption. Valid values are + AES-128 or + AES-256. + + This option enables you to set up encryption on VM. + + + + + + Specifies a new password identifier that is used for correct + identification when supplying multiple passwords for the VM. + + This option enables you to set up encryption on VM. + + + + + + Use the to supply the encryption + password of the VM. Either specify the absolute pathname of a + password file on the host operating system, or - + to prompt you for the password on the command line. + + This option enables you to set up encryption on VM. + + + + + + + Examples + + + The following command creates a VM called vm2 + where you plan to run a 64-bit version of Oracle Linux. + +$ VBoxManage createvm --name "vm2" --ostype "Oracle_64" + + The following command creates and registers a VM called + vm3. + +$ VBoxManage createvm --name "vm3" --register + + + + See Also + + , + + + + diff --git a/doc/manual/en_US/man_VBoxManage-debugvm.xml b/doc/manual/en_US/man_VBoxManage-debugvm.xml new file mode 100644 index 00000000..83f21db4 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-debugvm.xml @@ -0,0 +1,666 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage debugvm + + + + VBoxManage-debugvm + 1 + + + + VBoxManage-debugvm + introspection and guest debugging + &product-name; + + + + + VBoxManage debugvm + uuid|vmname + dumpvmcore + --filename=name + + + VBoxManage debugvm + uuid|vmname + info + item + args + + + VBoxManage debugvm + uuid|vmname + injectnmi + + + VBoxManage debugvm + uuid|vmname + log + --release--debug + group-settings + + + VBoxManage debugvm + uuid|vmname + logdest + --release--debug + destinations + + + VBoxManage debugvm + uuid|vmname + logflags + --release--debug + flags + + + VBoxManage debugvm + uuid|vmname + osdetect + + + VBoxManage debugvm + uuid|vmname + osinfo + + + VBoxManage debugvm + uuid|vmname + osdmesg + --lines=lines + + + VBoxManage debugvm + uuid|vmname + getregisters + --cpu=id + reg-set.reg-name + + + VBoxManage debugvm + uuid|vmname + setregisters + --cpu=id + reg-set.reg-name=value + + + VBoxManage debugvm + uuid|vmname + show + --human-readable--sh-export--sh-eval--cmd-set + settings-item + + + VBoxManage debugvm + uuid|vmname + stack + --cpu=id + + + VBoxManage debugvm + uuid|vmname + statistics + --reset + --descriptions + --pattern=pattern + + + VBoxManage debugvm + uuid|vmname + guestsample + --filename=filename + --sample-interval-us=interval + --sample-time-us=time + + + + Description + + The "debugvm" commands are for experts who want to tinker with the + exact details of virtual machine execution. Like the VM debugger + described in , these commands are only useful if you are + very familiar with the details of the PC architecture and how to debug + software. + + + Common options + + The subcommands of debugvm all operate on a running virtual + machine: + + + uuid|vmname + Either the UUID or the name (case sensitive) of a VM. + + + + + + debugvm dumpvmcore + + + Creates a system dump file of the specified VM. This file will have + the standard ELF core format (with custom sections); see + . + + + This corresponds to the writecore command in the debugger. + + + + + The name of the output file. + + + + + + debugvm info + + + Displays info items relating to the VMM, device emulations and + associated drivers. + + + This corresponds to the info command in the debugger. + + + + item + + Name of the info item to display. The special name + will list all the available info items and + hints about optional arguments. + + + + args + + Optional argument string for the info item handler. Most info items + does not take any extra arguments. Arguments not recognized are generally + ignored. + + + + + + + debugvm injectnmi + + + Causes a non-maskable interrupt (NMI) to be injected into the guest. This + might be useful for certain debugging scenarios. What happens exactly is + dependent on the guest operating system, but an NMI can crash the whole + guest operating system. Do not use unless you know what you're doing. + + + + + debugvm log + + + Changes the group settings for either debug () + or release () logger of the VM process. + + + The group-settings are typically strings on the form + em.e.f.l, hm=~0 + and -em.f. Basic wildcards are supported for + group matching. The all group is an alias for + all the groups. + + + Please do keep in mind that the group settings are applied as modifications + to the current ones. + + + This corresponds to the log command in the debugger. + + + + + debugvm logdest + + + Changes the destination settings for either debug () + or release () logger of the VM process. For details + on the destination format, the best source is src/VBox/Runtime/common/log/log.cpp. + + + The destinations is one or more mnemonics, optionally + prefixed by "no" to disable them. Some of them take values after a ":" or "=" + separator. Multiple mnemonics can be separated by space or given as separate + arguments on the command line. + + + List of available destination: + + + + + Specifies a log file. If no filename is given, one will be + generated based on the current UTC time and VM process name and placed in + the current directory of the VM process. Note that this will currently not + have any effect if the log file has already been opened. + + + + + Specifies the output directory for log files. Note that this + will currently not have any effect if the log file has already been opened. + + + + + A non-zero value enables log historization, with the value + specifying how many old log files to keep. + + + + + The max size of a log file before it is historized. Default is infinite. + + + + The max age (in seconds) of a log file before it is historized. Default is infinite. + + + + Only log to the log buffer until an explicit flush (e.g. via an assertion) + occurs. This is fast and saves diskspace. + + + + Write the log content to standard output. + + + + Write the log content to standard error. + + + + Write the log content to the debugger, if supported by the host OS. + + + + Writes logging to the COM port. This is only applicable for raw-mode and ring-0 logging. + + + + Custom destination which has no meaning to VM processes.. + + + + This corresponds to the logdest command in the debugger. + + + + + debugvm logflags + + + Changes the flags on either debug () or release + () logger of the VM process. Please note that the + modifications are applied onto the existing changes, they are not replacing them. + + + The flags are a list of flag mnemonics, optionally + prefixed by a "no", "!", "~" or "-" to negate their meaning. The "+" prefix + can be used to undo previous negation or use as a separator, though better use + whitespace or separate arguments for that. + + + List of log flag mnemonics, with their counter form where applicable + (asterisk indicates defaults): + + + + + Enables or disables logging. + + + + Enabling buffering of log output before it hits the destinations. + + + + Whether to open the destination file with writethru buffering settings or not. + + + + Enables flushing of the output file (to disk) after each log statement. + + + + + Prefix each log line with lock counts for the current thread. + + + + Prefix each log line with the ID of the current CPU. + + + + Prefix each log line with the current process ID. + + + + Prefix each log line with the numberic flags corresponding to the log statement. + + + + Prefix each log line with the flag mnemonics corresponding to the log statement. + + + + Prefix each log line with the log group number for the log statement producing it. + + + + Prefix each log line with the log group name for the log statement producing it. + + + + Prefix each log line with the current thread identifier. + + + + Prefix each log line with the current thread name. + + + + Prefix each log line with the current UTC wall time. + + + + Prefix each log line with the current monotonic time since the start of the program. + + + + Prefix each log line with the current monotonic timestamp value in milliseconds since the start of the program. + + + + Prefix each log line with the current monotonic timestamp value in nanoseconds. + + + + Prefix each log line with the current CPU timestamp counter (TSC) value. + + + + Selects the whether ts and + tsc prefixes should be displayed as relative to the + previous log line or as absolute time. + + + + Selects the whether the ts and + tsc prefixes should be formatted as hexadecimal + or decimal. + + + + + + Custom log prefix, has by default no meaning for VM processes. + + + + + Output with DOS style (CRLF) or just UNIX style (LF) line endings. + + + + Overwrite the destination file or append to it. + + + + + This corresponds to the logflags command in the debugger. + + + + + debugvm osdetect + + + Make the VMM's debugger facility (re)-detect the guest operating system (OS). + This will first load all debugger plug-ins. + + + This corresponds to the detect command in the debugger. + + + + + debugvm osinfo + + + Displays information about the guest operating system (OS) previously + detected by the VMM's debugger facility. + + + + + debugvm osdmesg + + + Displays the guest OS kernel log, if detected and supported. + + + + + Number of lines of the log to display, counting from + the end. The default is infinite. + + + + + + debugvm getregisters + + + Retrieves register values for guest CPUs and emulated devices. + + + + reg-set.reg-name + + One of more registers, each having one of the following forms: + + register-set.register-name.sub-field + register-set.register-name + cpu-register-name.sub-field + cpu-register-name + all + + The all form will cause all registers + to be shown (no sub-fields). The registers names are case-insensitive. + + + + + + Selects the CPU register set when specifying just a + CPU register (3rd and 4th form). The default is 0. + + + + + + + debugvm setregisters + + + Changes register values for guest CPUs and emulated devices. + + + + reg-set.reg-name=value + + One of more register assignment, each having one of the following forms: + + register-set.register-name.sub-field=value + register-set.register-name=value + cpu-register-name.sub-field=value + cpu-register-name=value + + The value format should be in the same style as what + getregisters displays, with the exception that + both octal and decimal can be used instead of hexadecimal. + + + + + Selects the CPU register set when specifying just a + CPU register (3rd and 4th form). The default is 0. + + + + + + + debugvm show + + + Shows logging settings for the VM. + + + + + Selects human readable output. + + + + Selects output format as bourne shell style export commands. + + + + Selects output format as bourne shell style eval command input. + + + + Selects output format as DOS style SET commands. + + + settings-item + + What to display. One or more of the following: + + logdbg-settings - debug log settings. + logrel-settings - release log settings. + log-settings - alias for both debug and release log settings. + + + + + + + + + debugvm stack + + + Unwinds the guest CPU stacks to the best of our ability. It is + recommended to first run the osdetect command, as this + gives both symbols and perhaps unwind information. + + + + + Selects a single guest CPU to display the stack for. The default is all CPUs. + + + + + + + debugvm statistics + + + Displays or resets VMM statistics. + + + Retrieves register values for guest CPUs and emulated devices. + + + + + DOS/NT-style wildcards patterns for selecting statistics. Multiple + patterns can be specified by using the '|' (pipe) character as separator. + + + + + Select reset instead of display mode. + + + + + + + debugvm guestsample + + + Creates a sample report of the guest activity. + + + Retrieves the filename to dump the report to. + + + + + The filename to dump the sample report to. + + + + + The interval in microseconds between guest samples. + + + + + The amount of microseconds to take guest samples. + + + + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml b/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml new file mode 100644 index 00000000..4ca9dde3 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xml @@ -0,0 +1,231 @@ + + + + + + + 1 - SubnetMask + IPv4 netmask. Set to the value of the --netmask option by default. + + 2 - TimeOffset + UTC offset in seconds (32-bit decimal value). + + 3 - Routers + Space separated list of IPv4 router addresses. + + 4 - TimeServers + Space separated list of IPv4 time server (RFC 868) addresses. + + 5 - NameServers + Space separated list of IPv4 name server (IEN 116) addresses. + + 6 - DomainNameServers + Space separated list of IPv4 DNS addresses. + + 7 - LogServers + Space separated list of IPv4 log server addresses. + + 8 - CookieServers + Space separated list of IPv4 cookie server (RFC 865) addresses. + + 9 - LPRServers + Space separated list of IPv4 line printer server (RFC 1179) addresses. + + 10 - ImpressServers + Space separated list of IPv4 imagen impress server addresses. + + 11 - ResourseLocationServers + Space separated list of IPv4 resource location (RFC 887) addresses. + + 12 - HostName + The client name. See RFC 1035 for character limits. + + 13 - BootFileSize + Number of 512 byte blocks making up the boot file (16-bit decimal value). + + 14 - MeritDumpFile + Client core file. + + 15 - DomainName + Domain name for the client. + + 16 - SwapServer + IPv4 address of the swap server that the client should use. + + 17 - RootPath + The path to the root disk the client should use. + + 18 - ExtensionPath + Path to a file containing additional DHCP options (RFC2123). + + 19 - IPForwarding + Whether IP forwarding should be enabled by the client (boolean). + + 20 - OptNonLocalSourceRouting + Whether non-local datagrams should be forwarded by the client (boolean) + + 21 - PolicyFilter + List of IPv4 addresses and masks paris controlling non-local source routing. + + 22 - MaxDgramReassemblySize + The maximum datagram size the client should reassemble (16-bit decimal value). + + 23 - DefaultIPTTL + The default time-to-leave on outgoing (IP) datagrams (8-bit decimal value). + + 24 - PathMTUAgingTimeout + RFC1191 path MTU discovery timeout value in seconds (32-bit decimal value). + + 25 - PathMTUPlateauTable + RFC1191 path MTU discovery size table, sorted in ascending order (list of 16-bit decimal values). + + 26 - InterfaceMTU + The MTU size for the interface (16-bit decimal value). + + 27 - AllSubnetsAreLocal + Indicates whether the MTU size is the same for all subnets (boolean). + + 28 - BroadcastAddress + Broadcast address (RFC1122) for the client to use (IPv4 address). + + 29 - PerformMaskDiscovery + Whether to perform subnet mask discovery via ICMP (boolean). + + 30 - MaskSupplier + Whether to respond to subnet mask requests via ICMP (boolean). + + 31 - PerformRouterDiscovery + Whether to perform router discovery (RFC1256) (boolean). + + 32 - RouterSolicitationAddress + Where to send router solicitation requests (RFC1256) (IPv4 address). + + 33 - StaticRoute + List of network and router address pairs addresses. + + 34 - TrailerEncapsulation + Whether to negotiate the use of trailers for ARP (RTF893) (boolean). + + 35 - ARPCacheTimeout + The timeout in seconds for ARP cache entries (32-bit decimal value). + + 36 - EthernetEncapsulation + Whether to use IEEE 802.3 (RTF1042) rather than of v2 (RFC894) ethernet encapsulation (boolean). + + 37 - TCPDefaultTTL + Default time-to-live for TCP sends (non-zero 8-bit decimal value). + + 38 - TCPKeepaliveInterval + The interface in seconds between TCP keepalive messages (32-bit decimal value). + + 39 - TCPKeepaliveGarbage + Whether to include a byte of garbage in TCP keepalive messages for backward compatibility (boolean). + + 40 - NISDomain + The NIS (Sun Network Information Services) domain name (string). + + 41 - NISServers + Space separated list of IPv4 NIS server addresses. + + 42 - NTPServers + Space separated list of IPv4 NTP (RFC1035) server addresses. + + 43 - VendorSpecificInfo + Vendor specific information. Only accessible using --set-opt-hex. + + 44 - NetBIOSNameServers + Space separated list of IPv4 NetBIOS name server (NBNS) addresses (RFC1001,RFC1002). + + 45 - NetBIOSDatagramServers + Space separated list of IPv4 NetBIOS datagram distribution server (NBDD) addresses (RFC1001,RFC1002). + + 46 - NetBIOSNodeType + NetBIOS node type (RFC1001,RFC1002): 1=B-node, 2=P-node, 4=M-node, and 8=H-node (8-bit decimal value). + + 47 - NetBIOSScope + NetBIOS scope (RFC1001,RFC1002). Only accessible using --set-opt-hex. + + 48 - XWindowsFontServers + Space separated list of IPv4 X windows font server addresses. + + 49 - XWindowsDisplayManager + Space separated list of IPv4 X windows display manager addresses. + + 62 - NetWareIPDomainName + Netware IP domain name (RFC2242) (string). + + 63 - NetWareIPInformation + Netware IP information (RFC2242). Only accessible using --set-opt-hex. + + 64 - NISPlusDomain + The NIS+ domain name (string). + + 65 - NISPlusServers + Space separated list of IPv4 NIS+ server addresses. + + 66 - TFTPServerName + TFTP server name (string). + + 67 - BootfileName + Bootfile name (string). + + 68 - MobileIPHomeAgents + Space separated list of IPv4 mobile IP agent addresses. + + 69 - SMTPServers + Space separated list of IPv4 simple mail transport protocol (SMPT) server addresses. + + 70 - POP3Servers + Space separated list of IPv4 post office protocol 3 (POP3) server addresses. + + 71 - NNTPServers + Space separated list of IPv4 network news transport protocol (NTTP) server addresses. + + 72 - WWWServers + Space separated list of default IPv4 world wide web (WWW) server addresses. + + 73 - FingerServers + Space separated list of default IPv4 finger server addresses. + + 74 - IRCServers + Space separated list of default IPv4 internet relay chat (IRC) server addresses. + + 75 - StreetTalkServers + Space separated list of IPv4 StreetTalk server addresses. + + 76 - STDAServers + Space separated list of IPv4 StreetTalk directory assistance (STDA) server addresses. + + 78 - SLPDirectoryAgent + Addresses of one or more service location protocol (SLP) directory agent, and an indicator of whether their use is mandatory. Only accessible using --set-opt-hex. + + 79 - SLPServiceScope + List of service scopes for the service location protocol (SLP) and whether using the list is mandator. Only accessible using --set-opt-hex. + + 119 - DomainSearch + Domain search list, see RFC3397 and section 4.1.4 in RFC1035 for encoding. Only accessible using --set-opt-hex. + + diff --git a/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xsl b/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xsl new file mode 100644 index 00000000..5b4e1d5b --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-dhcpserver-dhcpoptions.xsl @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + the value of the --netmask option + + + + --set-opt-hex + + + + + + + + + <varlistentry> + <term></term> + <listitem><para> + + </para></listitem> + </varlistentry> + + + + <?xml version="1.0" encoding="UTF-8"?> +<!-- + Manually generated from src/VBox/Main/idl/VirtualBox.xidl by 'kmk dhcpoptions'. + DO NOT EDIT! +--> +<!-- +Copyright (C) 2019-2022 Oracle Corporation and/or its affiliates. + +This file is part of VirtualBox Open Source Edition (OSE), as +available from https://www.virtualbox.org. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation, in version 3 of the +License. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, see <https://www.gnu.org/licenses>. +--> + + <variablelist> + + + + </variablelist> + + + + + + + + + + + + text() + + + + + + [@id= + + ] + + + [] + + + + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-dhcpserver.xml b/doc/manual/en_US/man_VBoxManage-dhcpserver.xml new file mode 100644 index 00000000..5cc3053a --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-dhcpserver.xml @@ -0,0 +1,608 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage dhcpserver + + + + VBoxManage-dhcpserver + 1 + + + + VBoxManage-dhcpserver + DHCP server management + &product-name; + + + + + VBoxManage dhcpserver add + + --network=netname + --interface=ifname + + --server-ip=address + --netmask=mask + --lower-ip=address + --upper-ip=address + + --enable + --disable + + + + --global + --set-opt=dhcp-opt-no value + --set-opt-hex=dhcp-opt-no hexstring + --force-opt=dhcp-opt-no + --supress-opt=dhcp-opt-no + --min-lease-time=seconds + --default-lease-time=seconds + --max-lease-time=seconds + + + + --group=name + --set-opt=dhcp-opt-no value + --set-opt-hex=dhcp-opt-no hexstring + --force-opt=dhcp-opt-no + --supress-opt=dhcp-opt-no + --incl-mac=address + --excl-mac=address + --incl-mac-wild=pattern + --excl-mac-wild=pattern + --incl-vendor=string + --excl-vendor=string + --incl-vendor-wild=pattern + --excl-vendor-wild=pattern + --incl-user=string + --excl-user=string + --incl-user-wild=pattern + --excl-user-wild=pattern + --min-lease-time=seconds + --default-lease-time=seconds + --max-lease-time=seconds + + + + --vm=name|uuid + --nic=1-N + --set-opt=dhcp-opt-no value + --set-opt-hex=dhcp-opt-no hexstring + --force-opt=dhcp-opt-no + --supress-opt=dhcp-opt-no + --min-lease-time=seconds + --default-lease-time=seconds + --max-lease-time=seconds + --fixed-address=address + + + + --mac-address=address + --set-opt=dhcp-opt-no value + --set-opt-hex=dhcp-opt-no hexstring + --force-opt=dhcp-opt-no + --supress-opt=dhcp-opt-no + --min-lease-time=seconds + --default-lease-time=seconds + --max-lease-time=seconds + --fixed-address=address + + + + VBoxManage dhcpserver modify + + --network=netname + --interface=ifname + + --server-ip=address + --lower-ip=address + --upper-ip=address + --netmask=mask + + --enable + --disable + + + + --global + --del-opt=dhcp-opt-no + --set-opt=dhcp-opt-no value + --set-opt-hex=dhcp-opt-no hexstring + --force-opt=dhcp-opt-no + --unforce-opt=dhcp-opt-no + --supress-opt=dhcp-opt-no + --unsupress-opt=dhcp-opt-no + --min-lease-time=seconds + --default-lease-time=seconds + --max-lease-time=seconds + --remove-config + + + + --group=name + --set-opt=dhcp-opt-no value + --set-opt-hex=dhcp-opt-no hexstring + --force-opt=dhcp-opt-no + --unforce-opt=dhcp-opt-no + --supress-opt=dhcp-opt-no + --unsupress-opt=dhcp-opt-no + --del-mac=address + --incl-mac=address + --excl-mac=address + --del-mac-wild=pattern + --incl-mac-wild=pattern + --excl-mac-wild=pattern + --del-vendor=string + --incl-vendor=string + --excl-vendor=string + --del-vendor-wild=pattern + --incl-vendor-wild=pattern + --excl-vendor-wild=pattern + --del-user=string + --incl-user=string + --excl-user=string + --del-user-wild=pattern + --incl-user-wild=pattern + --excl-user-wild=pattern + --zap-conditions + --min-lease-time=seconds + --default-lease-time=seconds + --max-lease-time=seconds + --remove-config + + + + --vm=name|uuid + --nic=1-N + --del-opt=dhcp-opt-no + --set-opt=dhcp-opt-no value + --set-opt-hex=dhcp-opt-no hexstring + --force-opt=dhcp-opt-no + --unforce-opt=dhcp-opt-no + --supress-opt=dhcp-opt-no + --unsupress-opt=dhcp-opt-no + --min-lease-time=seconds + --default-lease-time=seconds + --max-lease-time=seconds + --fixed-address=address + --remove-config + + + + --mac-address=address + --del-opt=dhcp-opt-no + --set-opt=dhcp-opt-no value + --set-opt-hex=dhcp-opt-no hexstring + --force-opt=dhcp-opt-no + --unforce-opt=dhcp-opt-no + --supress-opt=dhcp-opt-no + --unsupress-opt=dhcp-opt-no + --min-lease-time=seconds + --default-lease-time=seconds + --max-lease-time=seconds + --fixed-address=address + --remove-config + + + + VBoxManage dhcpserver remove + + --network=netname + --interface=ifname + + + + VBoxManage dhcpserver start + + --network=netname + --interface=ifname + + + + VBoxManage dhcpserver restart + + --network=netname + --interface=ifname + + + + VBoxManage dhcpserver stop + + --network=netname + --interface=ifname + + + + VBoxManage dhcpserver findlease + + --network=netname + --interface=ifname + + --mac-address=mac + + + + + Description + + + The dhcpserver commands enable you to control the DHCP + server that is built into VirtualBox. You may find this useful when + using internal or host-only networking. Theoretically, you can also + enable it for a bridged network, but that may cause conflicts with other + DHCP servers in your physical network. + + + + Common options + + The subcommands of dhcpserver all operate on an + internal network that can be identified via its name or in the host-only + case via the host-only interface name: + + + --network=netname + The internal network name. This is the same as you + would use as value to the VBoxManage modifyvm --intnet + option when configuring a VM for internal networking. Or you see as + VBoxNetworkName in the output from + VBoxManage list intnets, + VBoxManage list natnets, or + VBoxManage list hostonlyifs. + + + + --interface=ifname + The host only interface name. This would be same value + as you would use for the VBoxManage modifyvm --host-only-adapter + option when configuring a VM to use a host-only network. The value + can also be found in the Name row in VBoxManage list hostonlyifs. + + + + + + + dhcpserver add + + + Adds a new DHCP server to a network or host-only interface. + + + Options configuring the DHCP server core: + + + + + The IP address the DHCP server should use. + + + , + The IP address range for the DHCP server to manage. This + should not include the address of the DHCP server itself, but it must be + in the same network as it. The boundraries are inclusive, so both the + lower and upper addresses will be handed out to clients. + + + + The network mask. Typically 255.255.255.0. + + + , --disable + Whether to enable the DHCP server or disable it. If not specified, + the server will be created in disabled state and no IP addresses handed out. + + + + Options selecting the scope: + + + + + Set the configuration scope to global. Any subsequent + options will be apply to all the DHCP clients. + + + + Set the configuration scope to the first NIC of the specified VM. Any + subsequent options will apply just to that interface, + nothing else. + + + + Set the configuration scope to a NIC other than first of + the VM specified the in . + + + + + Set the configuration scope to the specified MAC address. + + + + Set the configuration scope to the specified group. + + + + Options configuring the currently selected scope: + + + + + Adds the specified DHCP option number (0-255) and value. The + value format is option specific (typically human readable) and will be + validated by the API and the DHCP server. + + + + + Adds the specified DHCP option number (0-255) and value. The option value + is specified as a raw series of hex bytes, optionally separated by colons. No validation + is performed on these by the API or the DHCP server, they will be pass as specified to the + client. + + + + + Forces the specified DHCP option number (0-255) onto to be + sent to the client whether it requested it or not (provided the option is + configured with a value at some level). + + + + + Prevents the specified DHCP option number (0-255) from being + sent to the client when present in this or a high configuration scope. + + + + + Sets the minimum lease time for the current scope in seconds. + Zero means taking the value from a higher option level or use default. + + + + + Sets the default lease time for the current scope in seconds. + Zero means taking the value from a higher option level or use default. + + + + + Sets the maximum lease time for the current scope in seconds. + Zero means taking the value from a higher option level or use default. + + + + + Fixed address assignment for a or + configuration scope. Any empty + address turns it back to dynamic address assignment. + + + + + + Options configuring group membership conditions (excludes overrides includes): + + + + + Include the specific MAC address in the group. + + + + Exclude the specific MAC address from the group. + + + + Include the specific MAC address pattern in the group. + + + + Exclude the specific MAC address pattern from the group. + + + + Include the specific vendor class ID in the group. + + + + Exclude the specific vendor class ID from the group. + + + + Include the specific vendor class ID pattern in the group. + + + + Exclude the specific vendor class ID pattern from the group. + + + + Include the specific user class ID in the group. + + + + Exclude the specific user class ID from the group. + + + + Include the specific user class ID pattern in the group. + + + + Exclude the specific user class ID pattern from the group. + + + + + + dhcpserver modify + + + This modifies an existing DHCP server configuration. It takes the same + options as the add command with the addition of the following + on scope configuration: + + + + + Counterpart to that will cause the specified + DHCP option number (0-255) to be deleted from the server settings. Like with + the scope of the deletion is governed by the + , , + and options. + + + + + Removes the specified DHCP option number (0-255) from the forced + option list (i.e. the reverse of ). Like with + the scope of the deletion is governed by the + , , + and options. + + + + + Removes the specified DHCP option number (0-255) from the supressed + option list (i.e. the reverse of ). Like with + the scope of the deletion is governed by the + , , + and options. + + + + + Removes the configuration currently being scoped. The + scope is not removable. The configuration scope will + change to after this option. + + + + + And the addition of these group membership condition options: + + + + + Delete the specific MAC address from the group conditions. + + + + Delete the specific MAC address pattern from the group conditions. + + + + Delete the specific vendor class ID from the group conditions. + + + + Delete the specific vendor class ID pattern from the group conditions. + + + + Delete the specific user class ID from the group conditions. + + + + Delete the specific user class ID pattern from the group conditions. + + + + Deletes all the group conditions. + + + + + + dhcpserver remove + + + Removes the specified DHCP server. + + + + + dhcpserver start + + + Start the specified DHCP server. + + + + + dhcpserver restart + + + Restarts the specified DHCP server. The DHCP server must be running. + + + + + dhcpserver stop + + + Stops the specified DHCP server. + + + + + dhcpserver findlease + + + Performs a lease database lookup. This is mainly for getting the IP + address of a running VM. + + + + + The MAC address to lookup in the lease database. + + + + + + Common DHCP Options: + + + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-discardstate.xml b/doc/manual/en_US/man_VBoxManage-discardstate.xml new file mode 100644 index 00000000..72c11cc2 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-discardstate.xml @@ -0,0 +1,102 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage discardstate + + + + VBoxManage-discardstate + 1 + + + + VBoxManage-discardstate + discard the saved state of a virtual machine + &product-name; + + + + + + VBoxManage discardstate + + uuid + vmname + + + + + + Description + + The VBoxManage discardstate command discards + the saved state of a virtual machine (VM) that is not currently + running. This command causes the VM's operating system to restart + the next time you start the VM. + + + + Where possible, avoid performing this action. The effects of + this command are equivalent to unplugging the power cable on a + physical machine. + + + + + uuid|vmname + + Specifies the Universally Unique Identifier (UUID) or name + of the VM. + + + + + + + Examples + + + The following command discards the saved state file for the VM + called vm2. When you next start the VM, the + VM's operating system is restarted. + +$ VBoxManage discardstate vm2 + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-encryptmedium.xml b/doc/manual/en_US/man_VBoxManage-encryptmedium.xml new file mode 100644 index 00000000..a31ceb14 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-encryptmedium.xml @@ -0,0 +1,174 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage encryptmedium + + + + VBoxManage-encryptmedium + 1 + + + + VBoxManage-encryptmedium + manage a DEK-encrypted medium or image + &product-name; + + + + + + VBoxManage encryptmedium + + uuid + filename + + --cipher=cipher-ID + --newpassword=password + --newpasswordid=password-ID + --oldpassword=password + + + + + Description + + The VBoxManage encryptmedium command enables + you to create and manage a DEK-encrypted medium or image. You can + encrypt an image, decrypt an image, and change the encryption + password of an image. See + . + + + + uuid | filename + + Specifies the Universally Unique Identifier (UUID) or the + absolute path name of the medium or image to encrypt. + + + + + + Specifies the new encryption password. + password is either the absolute + path name of a password file on the host operating system or + -, which prompts you for the password. + + You must use the option + with this option. + + + + + + Specifies the original encryption password. + password is either the absolute + path name of a password file on the host operating system or + -, which prompts you for the original + password. + + This option enables you to gain access to an encrypted + medium or image to do the following: + + + Decrypt an encrypted image by using this option by + itself. + + + Change the password of the encrypted image by using the + option. + + + Change the encryption cipher of the image by using the + option. + + + + + + + Specifies the cipher to use for encryption. Valid values are + AES-XTS128-PLAIN64 or + AES-XTS256-PLAIN64. + + This option enables you to set up or change encryption on + the medium or image. + + + + + + Specifies a new password identifier that is used for correct + identification when supplying multiple passwords during VM + startup. + + If you use the same password and password identifier when + encrypting multiple images, you need to supply the password + only one time during VM startup. + + + + + + + Examples + + + The following example shows how to encrypt the + ol7u4-1.vdi image by using the + AES-XTS128-PLAIN64 cipher, specifying a + password identifier of 1001, and using the + $HOME/pwfile password file: + +$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-1.vdi" \ + --cipher="AES-XTS128-PLAIN64" --newpasswordid="1001" --newpassword=$HOME/pwfile + + The following example shows how to decrypt an encrypted image + called ol7u4-2.vdi: + +$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-2.vdi" \ + --oldpassword=- + Password: original-password + + The following example shows how to change the password for an + encrypted image called ol7u4-3.vdi. The + command reads the original password from the + $HOME/pwfile.orig file, reads the new + password from the $HOME/pwfile file, and + assigns a password identifier of 1001. + +$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-3.vdi" \ + --oldpassword=$HOME/pwfile.orig --newpassword=$HOME/pwfile --newpasswordid="1001" + + diff --git a/doc/manual/en_US/man_VBoxManage-encryptvm.xml b/doc/manual/en_US/man_VBoxManage-encryptvm.xml new file mode 100644 index 00000000..175c73c2 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-encryptvm.xml @@ -0,0 +1,204 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage encryptvm + + + + VBoxManage-encryptvm + 1 + + + + VBoxManage-encryptvm + change encryption and passwords of the VM + &product-name; + + + + + + VBoxManage encryptvm + + uuid + vmname + + setencryption + --old-password file + --cipher cipher-identifier + --new-password file + --new-password-id password-identifier + --force + + + + VBoxManage encryptvm + + uuid + vmname + + checkpassword + file + + + + VBoxManage encryptvm + + uuid + vmname + + addpassword + --password file + --password-id password-identifier + + + + VBoxManage encryptvm + + uuid + vmname + + removepassword + password-identifier + + + + + Description + + The VBoxManage encryptvm command enables you to + change the encryption or add and remove user passwords for the + virtual machine (VM). The following sections describe the subcommands + that you can use: + + + Set encryption of the Virtual Machine + + + The VBoxManage encryptvm + vmname setencryption command + changes encryption of a VM. + + + Use the to supply old encryption + password. Either specify the absolute pathname of a password file + on the host operating system, or - to prompt + you for the old password. + + + Use the option to specify the + new cipher for encryption of the VM. Only AES-128 + and AES-256 are supported. Appropriate mode + GCM, CTR or XTS will be selected by VM depending on encrypting + component. + + + Use the option to specify the + new password for encryption of the VM. Either specify the absolute + pathname of a password file on the host operating system, or + - to prompt you for the new password. + + + Use the option to specify the + new id for the password for encryption of the VM. + + + Use the option to make the system + to reencrypt the VM instead of simple changing the password. + + + + Check the supplied password is correct + + + The VBoxManage encryptvm + vmname checkpassword command + checks the correctness of the supplied password. + + + The password can be supplied from file. Specify the absolute + pathname of a password file on the host operating system. Also, + you can specify - to prompt you for the password. + + + + Add password for decrypting the Virtual Machine + + + The VBoxManage encryptvm + vmname addpassword command + adds a password for decrypting the VM. + + + Use the to supply the encryption + password. Either specify the absolute pathname of a password file + on the host operating system, or - to prompt + you for the password. + + + Use the option to specify the + id the password is supplied for. + + + + Remove password used for decrypting the Virtual Machine + + + The VBoxManage encryptvm + vmname removepassword command + removes a password used for decrypting the VM. + + + Specify the password identifier for removing. The password becomes + unknown and the VM can not be decrypted. + + + + + + Examples + + + The following command encrypts the ol7 VM using + AES-256 giving password via command prompt: + +$ VBoxManage encryptvm ol7 setencryption --cipher=AES-256 --new-password - --new-password-id vmid + + + + See Also + + , + + + diff --git a/doc/manual/en_US/man_VBoxManage-export.xml b/doc/manual/en_US/man_VBoxManage-export.xml new file mode 100644 index 00000000..44666b69 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-export.xml @@ -0,0 +1,441 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage export + + + + VBoxManage-export + 1 + + + + VBoxManage-export + export one or more virtual machines to a virtual appliance or to a cloud service + &product-name; + + + + + + VBoxManage export + machines + --output=name + + --legacy09 + --ovf09 + --ovf10 + --ovf20 + + --manifest + --options= + manifest + iso + nomacs + nomacsbutnat + + --vsys=virtual-system-number + --description=description-info + --eula=license-text + --eulafile=filename + --product=product-name + --producturl=product-URL + --vendor=vendor-name + --vendorurl=vendor-URL + --version=version-info + --vmname=vmname + + + + VBoxManage export + machine + --output=cloud-service-provider + --opc10 + --vmname=vmname + --cloud=virtual-system-number + --cloudprofile=cloud-profile-name + --cloudshape=cloud-shape-name + --clouddomain=cloud-domain + --clouddisksize=disk-size-in-GB + --cloudbucket=bucket-name + --cloudocivcn=OCI-VCN-ID + --cloudocisubnet=OCI-subnet-ID + --cloudkeepobject= + true + false + + --cloudlaunchinstance= + true + false + + --cloudlaunchmode= + EMULATED + PARAVIRTUALIZED + + --cloudpublicip= + true + false + + + + + + Description + + The VBoxManage export command enables you to + export one or more virtual machines (VMs) from &product-name;. You + can export the VM to one of the following: + + + + Virtual appliance in OVF + format. Includes the copying of its virtual disk + images to compressed VMDK. + + + Cloud service such as &oci;. + Exports a single VM. + + + + For more information about exporting VMs from &product-name;, see + + + + Export a Virtual Machine to an OVF Virtual Appliance + + + The VBoxManage export command enables you to + export a VM as a virtual appliance in OVF format. + + + + machines + + Specifies a comma-separated list of one or more machines + to export to the same OVF file. + + + + + + Specifies the target OVF file. The file can be OVF, OVA, + or a ZIP file compressed with the gzip + command. Because the directory that contains the target + OVF file will also store the exported disk images in the + compressed VMDK format, ensure that this directory has + sufficient disk space in which to store the images. + + The short form of this option is . + + + + + + Exports in OVF 0.9 legacy mode if the virtualization + product is not fully compatible with the OVF 1.0 standard. + + + + + + Exports in OVF 0.9 format. + + + + + + Exports in OVF 1.0 format. + + + + + + Exports in OVF 2.0 format. + + + + + + Creates a manifest of the exported files. + + + + + + Specifies information to control the exact content of the + appliance file. Specify one or more comma-separated + arguments: + + + manifest + + Produces a manifest file that detects corrupted + appliances on import. + + + + iso + + Exports DVD images in an ISO file. + + + + nomacs + + Excludes all MAC addresses. + + + + nomacsbutnat + + Excludes all MAC addresses except for those in a NAT + network. + + + + + + + + Specifies a description of the VM. + + + + + + Specifies end-user license text. + + + + + + Specifies an end-user license file. + + + + + + Specifies a product name. + + + + + + Specifies a product URL. + + + + + + Specifies a vendor name. + + + + + + Specifies a vendor URL. + + + + + + Specifies version information. + + + + + + Specifies the name of the exported VM. + + + + + + Specifies the number of the virtual system. + + + + + + Export a Virtual Machine to &oci; + + + The VBoxManage export command enables you to + export a VM to a cloud service provider such as &oci;. By + default, the exported disk image is converted into compressed VMDK + format. This minimizes the amount of data to transfer to the cloud + service. + + + Some of the following options are configuration settings for the + VM instance. As a result, specify an Oracle Cloud Identifier + (OCID) for a resource. Use the &oci; Console to view OCIDs. + + + + + + Specifies the short name of the cloud service provider to + which you export the VM. For &oci;, specify + OCI://. + + The short form of this option is . + + + + + + Exports in &oci; format. + + + + + + Specifies a number that identifies the VM to export. + Numbering starts at 0 for the first VM. + + + + + + Specifies the name of the exported VM, which is used as + the VM instance name in &oci;. + + + + + + Specifies the cloud profile to use to connect to the cloud + service provider. The cloud profile contains your &oci; + account details, such as your user OCID and the + fingerprint for your public key. + + To use a cloud profile, you must have the required + permissions on &oci;. + + + + + + Specifies the shape used by the VM instance. The shape + defines the number of CPUs and the amount of memory that + is allocated to the VM instance. Ensure that the shape is + compatible with the exported image. + + + + + + Specifies the availability domain to use for the VM + instance. Enter the full name of the availability domain. + + + + + + Specifies the amount of disk space, in gigabytes, to use + for the exported disk image. Valid values are from 50 GB + to 300 GB. + + + + + + Specifies the bucket in which to store uploaded files. In + &oci;, a bucket is a logical container for storing + objects. + + + + + + Specifies the OCID of the virtual cloud network (VCN) to + use for the VM instance. + + + + + + Specifies the OCID of the VCN subnet to use for the VM + instance. + + + + + + Specifies whether to store the exported disk image in + Oracle Object Storage. + + + + + + Specifies whether to start the VM instance after the + export to &oci; completes. + + + + + + Specifies the launch mode used for the instance. + Paravirtualized mode gives improved performance. + + + + + + Specifies whether to enable a public IP address for the VM + instance. + + + + + + + + Example + + + The following example shows how to export the + myVM VM to &oci;. The command's option + arguments describe the configuration of the + myVM_Cloud VM in &oci;. + +# VBoxManage export myVM --output=OCI:// --cloud=0 --vmname=myVM_Cloud \ +--cloudprofile="standard user" --cloudbucket=myBucket \ +--cloudshape=VM.Standard2.1 --clouddomain=US-ASHBURN-AD-1 --clouddisksize=50 \ +--cloudocivcn=ocid1.vcn.oc1.iad.aaaa... --cloudocisubnet=ocid1.subnet.oc1.iad.aaaa... \ +--cloudkeepobject=true --cloudlaunchinstance=true --cloudpublicip=true + + diff --git a/doc/manual/en_US/man_VBoxManage-extpack.xml b/doc/manual/en_US/man_VBoxManage-extpack.xml new file mode 100644 index 00000000..14fbda47 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-extpack.xml @@ -0,0 +1,158 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage extpack + + + + VBoxManage-extpack + 1 + + + + VBoxManage-extpack + extension package management + &product-name; + + + + + VBoxManage extpack install + --replace + --accept-license=sha256 + tarball + + + VBoxManage extpack uninstall + --force + name + + + VBoxManage extpack cleanup + + + + + Description + + + extpack install + + + Installs a new extension pack on the system. This command will fail if an older + version of the same extension pack is already installed. The + option can be used to uninstall any + old package before the new one is installed. + + + + Uninstall existing extension pack version. + + + + + Accept the license text with the given SHA-256 hash value. + VBoxManage will display the SHA-256 value when performing a manual + installation. The hash can of course be calculated by looking inside + the extension pack and using sha256sum or similar on the license file. + + + + tarball + + The file containing the extension pack to be installed. + + + + + + + extpack uninstall + + + Uninstalls an extension pack from the system. The subcommand will also succeed + in the case where the specified extension pack is not present on the system. + You can use VBoxManage list extpacks to show + the names of the extension packs which are currently installed. + + + + + + Overrides most refusals to uninstall an extension pack + + + + name + + The name of the extension pack to be uninstalled. + + + + + + + extpack cleanup + + + Used to remove temporary files and directories that may have been left behind + if a previous install or uninstall command failed. + + + + + + + Examples + + + How to list extension packs: +$ VBoxManage list extpacks +Extension Packs: 1 +Pack no. 0: Oracle VM VirtualBox Extension Pack +Version: 4.1.12 +Revision: 77218 +Edition: +Description: USB 2.0 Host Controller, VirtualBox RDP, PXE ROM with E1000 support. +VRDE Module: VBoxVRDP +Usable: true +Why unusable: + + How to remove an extension pack: +$ VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack" +0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +Successfully uninstalled "Oracle VM VirtualBox Extension Pack". + + + + diff --git a/doc/manual/en_US/man_VBoxManage-getextradata.xml b/doc/manual/en_US/man_VBoxManage-getextradata.xml new file mode 100644 index 00000000..3c70b6ef --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-getextradata.xml @@ -0,0 +1,151 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage getextradata + + + + VBoxManage-getextradata + 1 + + + + VBoxManage-getextradata + view keyword values that are associated with a virtual machine or + configuration + &product-name; + + + + + + VBoxManage getextradata + + global + uuid + vmname + + + keyword + enumerate + + + + + + Description + + The VBoxManage getextradata command enables you + to retrieve keyword data that is associated with a virtual machine + (VM) or with an &product-name; configuration. + + + + global + + Specifies to retrieve information about the configuration + rather than a VM. + + + + uuid | vmname + + Specifies the Universally Unique Identifier (UUID) or name + of the VM. + + + + enumerate + + Shows all keyword values for the specified VM or + configuration. + + + + keyword + + Specifies the keyword for which to retrieve its value. + + + + + + + Examples + + + The following command retrieves the installdate + keyword value for the Fedora5 VM: + +$ VBoxManage getextradata Fedora5 installdate +VirtualBox Command Line Management Interface Version version-number +Copyright (C) 2005-2022 Oracle and/or its affiliates + +Value: 2006.01.01 + + The following command retrieves the information for all keywords + of the OracleLinux7u4 VM: + +$ VBoxManage getextradata OracleLinux7u4 enumerate +Key: GUI/LastCloseAction, Value: PowerOff +Key: GUI/LastGuestSizeHint, Value: 1048,696 +Key: GUI/LastNormalWindowPosition, Value: 851,286,1048,738 + + The following command retrieves the information for all keywords + in the configuration: + +$ VBoxManage getextradata global enumerate +Key: GUI/Details/Elements, Value: general,system,preview,display,storage,audio,network,usb,sharedFolders,description +Key: GUI/DetailsPageBoxes, Value: general,system,preview,display,storage,audio,network,usb,sharedFolders,description +Key: GUI/GroupDefinitions/, Value: m=43349dd8-2aa3-41b8-988f-0e255ce68090,m=9ebcd81e-5231-48ce-a27d-28218757f3fe,m=c690e8b1-93a0-4c95-9cd7-6437fff93251,m=f7c1e10d-3722-4891-887e-07b3c4104946 +Key: GUI/HideDescriptionForWizards, Value: NewVM +Key: GUI/LastItemSelected, Value: m=ol7u4 +Key: GUI/LastWindowPosition, Value: 951,510,960,520 +Key: GUI/RecentFolderCD, Value: C:/Users/user1 +Key: GUI/RecentListCD, Value: C:\Users\user1\V1.iso,C:\Users\user1\V2.iso,C:\Users\user1\V3.iso +Key: GUI/SplitterSizes, Value: 318,637 +Key: GUI/SuppressMessages, Value: remindAboutMouseIntegration,remindAboutAutoCapture +Key: GUI/Toolbar/MachineTools/Order, Value: Details +Key: GUI/Tools/LastItemsSelected, Value: Welcome,Details +Key: GUI/UpdateCheckCount, Value: 71 +Key: GUI/UpdateDate, Value: 1 d, 2019-04-10, stable, 5.2.22 +Key: GUI/VirtualMediaManager/Details/Expanded, Value: true + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-guestcontrol.xml b/doc/manual/en_US/man_VBoxManage-guestcontrol.xml new file mode 100644 index 00000000..c7cb6334 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-guestcontrol.xml @@ -0,0 +1,1301 @@ + + + + +%all.entities; +]> + + + $Date: 2023-01-05 14:44:46 +0100 (Thu, 05 Jan 2023) $ + VBoxManage guestcontrol + + + + VBoxManage-guestcontrol + 1 + + + + VBoxManage-guestcontrol + control a virtual machine from the host system + &product-name; + + + + + + VBoxManage guestcontrol + + uuid + vmname + + run + --domain=domainname + --dos2unix + --exe=filename + --ignore-orphaned-processes + + --no-wait-stderr + --wait-stderr + + + --no-wait-stdout + --wait-stdout + + + --passwordfile=password-file + --password=password + + --profile + --putenv=var-name=[value] + --quiet + --timeout=msec + --unix2dos + --unquoted-args + --username=username + --verbose + -- program/arg0 argument + + + + VBoxManage guestcontrol + + uuid + vmname + + start + --domain=domainname + --exe=filename + --ignore-orphaned-processes + + --passwordfile=password-file + --password=password + + --profile + --putenv=var-name=[value] + --quiet + --timeout=msec + --unquoted-args + --username=username + --verbose + -- program/arg0 argument + + + + VBoxManage guestcontrol + + uuid + vmname + + copyfrom + --dereference + --domain=domainname + + --passwordfile=password-file + --password=password + + --quiet + --no-replace + --recursive + --target-directory=host-destination-dir + --update + --username=username + --verbose + guest-source0 + guest-source1 [...] + host-destination + + + + VBoxManage guestcontrol + + uuid + vmname + + copyto + --dereference + --domain=domainname + + --passwordfile=password-file + --password=password + + --quiet + --no-replace + --recursive + --target-directory=guest-destination-dir + --update + --username=username + --verbose + host-source0 + host-source1 [...] + + + + VBoxManage guestcontrol + + uuid + vmname + + mkdir + --domain=domainname + --mode=mode + --parents + + --passwordfile=password-file + --password=password + + --quiet + --username=username + --verbose + guest-directory + + + + VBoxManage guestcontrol + + uuid + vmname + + rmdir + --domain=domainname + + --passwordfile=password-file + --password=password + + --quiet + --recursive + --username=username + --verbose + guest-directory + + + + VBoxManage guestcontrol + + uuid + vmname + + rm + --domain=domainname + --force + + --passwordfile=password-file + --password=password + + --quiet + --username=username + --verbose + guest-directory + + + + VBoxManage guestcontrol + + uuid + vmname + + mv + --domain=domainname + + --passwordfile=password-file + --password=password + + --quiet + --username=username + --verbose + source + destination-directory + + + + VBoxManage guestcontrol + + uuid + vmname + + mktemp + --directory + --domain=domainname + --mode=mode + + --passwordfile=password-file + --password=password + + --quiet + --secure + --tmpdir=directory-name + --username=username + --verbose + template-name + + + + VBoxManage guestcontrol + + uuid + vmname + + stat + --domain=domainname + + --passwordfile=password-file + --password=password + + --quiet + --username=username + --verbose + filename + + + + VBoxManage guestcontrol + + uuid + vmname + + list + + all + files + processes + sessions + + --quiet + --verbose + + + + VBoxManage guestcontrol + + uuid + vmname + + closeprocess + + --session-id=ID + --session-name=name-or-pattern + + --quiet + --verbose + PID + + + + VBoxManage guestcontrol + + uuid + vmname + + closesession + + --all + --session-id=ID + --session-name=name-or-pattern + + --quiet + --verbose + + + + VBoxManage guestcontrol + + uuid + vmname + + updatega + --quiet + --verbose + --source=guest-additions.ISO + --wait-start + -- argument + + + + VBoxManage guestcontrol + + uuid + vmname + + watch + --quiet + --verbose + + + + + Description + + The VBoxManage guestcontrol command enables you + to control a guest (VM) from the host system. See + . + + + Common Options and Operands + + The following options can be used by any of the + VBoxManage guestcontrol subcommands: + + + + uuid|vmname + + Specifies the Universally Unique Identifier (UUID) or name + of the VM. + + + + + + Specifies that the command produce quieter output. + + The short form of this option is . + + + + + + Specifies that the command produce more detailed output. + + The short form of this option is . + + + + + Some of the VBoxManage guestcontrol + subcommands require that you provide guest credentials for + authentication. The subcommands are: + copyfrom, copyto, + mkdir, mktemp, + mv, rmdir, + rm, run, + start, and stat. + + + While you cannot perform anonymous executions, a user account + password is optional and depends on the guest's OS security + policy. If a user account does not have an associated password, + specify an empty password. On OSes such as Windows, you might + need to adjust the security policy to permit user accounts with + an empty password. In additional, global domain rules might + apply and therefore cannot be changed. + + + The following options are used for authentication on the guest + VM: + + + + + + Specifies the user domain for Windows guest VMs. + + + + + + Specifies the password for the specified user. If you do + not specify a password on the command line or if the + password file is empty, the specified user needs to have + an empty password. + + + + + + Specifies the absolute path to a file on the guest OS that + contains the password for the specified user. If the + password file is empty or if you do not specify a password + on the command line, the specified user needs to have an + empty password. + + + + + + Specifies an existing user on the guest OS that runs the + process. If unspecified, the host user runs the process. + + + + + + Guest Process Restrictions + + By default, you can run up to five guest processes + simultaneously. If a new guest process starts and would exceed + this limit, the oldest not-running guest process is discarded to + run the new process. You cannot retrieve output from a discarded + guest process. If all five guest processes are active and + running, attempting to start a new guest process fails. + + + You can modify the guest process execution limit in two ways: + + + + Use the VBoxManage setproperty command to + update the + /VirtualBox/GuestAdd/VBoxService/--control-procs-max-kept + guest property value. + + + Use the VBoxService command and specify + the + + option. + + + + After you change the limit, you must restart the guest OS. + + + You can serve an unlimited number guest processes by specifing a + value of 0, however this action is not + recommended. + + + + Run a Command on the guest + + + The VBoxManage guestcontrol + vmname run command enables + you to execute a program on the guest VM. Standard input, + standard output, and standard error are redirected from the VM + to the host system until the program completes. + + + + The Windows OS imposes certain limitations for graphical + applications. See . + + + + + + + Specifies the absolute path of the executable program to + run on the guest VM. For example: + C:\Windows\System32\calc.exe. + + + + + + Specifies the maximum amount of time, in milliseconds, + that the program can run. While the program runs, + VBoxManage receives its output. + + If you do not specify a timeout value, + VBoxManage waits indefinitely for the + process to end, or for an error to occur. + + + + + + Sets, modifies, and unsets environment variables in the + guest VM environment. + + When you create a guest process, it runs with the default + standard guest OS environment. Use this option to modify + environment variables in that default environment. + + Use the + + option to set or modify the environment variable specified + by NAME. + + Use the + + option to unset the environment variable specified by + NAME. + + Ensure that any environment variable name or value that + includes spaces is enclosed by quotes. + + Specify a option for each + environment variable that you want to modify. + + The short form of this option is . + + + + + + Disables the escaped double quoting of arguments that you + pass to the program. For example, + \"fred\". + + + + + + Ignores orphaned processes. Not yet implemented. + + + + + + Uses a shell profile to specify the environment to use. + Not yet implemented. + + + + + + Does not wait for the guest process to end or receive its + exit code and any failure explanation. + + + + + + Waits for the guest process to end to receive its exit + code and any failure explanation. The + VBoxManage command receives the + standard output of the guest process while the process + runs. + + + + + + Does not wait for the guest process to end to receive its + exit code, error messages, and flags. + + + + + + Waits for the guest process to end to receive its exit + code, error messages, and flags. The + VBoxManage command receives the + standard error of the guest process while the process + runs. + + + + + + Transform DOS or Windows guest output to UNIX or Linux + output. This transformation changes CR + LF line endings + to LF. Not yet implemented. + + + + + + Transform UNIX or Linux guest output to DOS or Windows + output. This transformation changes LF line endings to CR + + LF. + + + + + + Specifies the name of the program and any arguments to + pass to the program. + + Ensure that any command argument that includes spaces is + enclosed by quotes. + + + + + + Start a Command on the guest + + + The VBoxManage guestcontrol + vmname start command + enables you to execute a guest program until it completes. + + + + The Windows OS imposes certain limitations for graphical + applications. See . + + + + + Copy a file from the guest to the host. + + + The VBoxManage guestcontrol + vmname copyfrom command + enables you to copy a file from the guest VM to the host system. + + + + + + Enables following of symbolic links on the guest file + system. + + + + + + Only copies a file if it does not exist on the host yet. + + The short form of this option is . + + + + + + Recursively copies files and directories from the + specified guest directory to the host. + + The short form of this option is . + + + + + + Specifies the absolute path of the destination directory + on the host system. For example, + C:\Temp. + + + + + + Only copies a file if the guest file is newer than on the host. + + The short form of this option is . + + + + guest-source0 [guest-source1 [...]] + + Specifies the absolute path of one or more files to copy + from the guest VM. For example, + C:\Windows\System32\calc.exe. You can + use wildcards to specify multiple files. For example, + C:\Windows\System*\*.dll. + + + + + + Copy a file from the host to the guest. + + + The VBoxManage guestcontrol + vmname copyto command + enables you to copy a file from the host system to the guest VM. + + + + + + Enables following of symbolic links on the host system. + + + + + + Only copies a file if it does not exist on the guest yet. + + The short form of this option is . + + + + + + Recursively copies files and directories from the + specified host directory to the guest. + + The short form of this option is . + + + + + + Specifies the absolute path of the destination directory + on the guest. For example, + /home/myuser/fromhost. + + + + + + Only copies a file if the host file is newer than on the guest. + + The short form of this option is . + + + + host-source0 [host-source1 [...]] + + Specifies the absolute path of a file to + copy from the host system. For example, + C:\Windows\System32\calc.exe. You can + use wildcards to specify multiple files. For example, + C:\Windows\System*\*.dll. + + + + + + Create a directory on the guest. + + + The VBoxManage guestcontrol + vmname mkdir command + enables you to create one or more directories on the guest VM. + + + Alternate forms of this subcommand are md, + createdir, and + createdirectory. + + + + + + Creates any of the missing parent directories of the + specified directory. + + For example, if you attempt to create the + D:\Foo\Bar directory and the + D:\Foo directory does not exist, + using the creates the missing + D:\Foo directory. However, if you + attempt to create the D:\Foo\Bar and + do not specify the option, the + command fails. + + + + + + Specifies the permission mode to use for the specified + directory. If you specify the + option, the mode is used for the associated parent + directories, as well. mode is a + four-digit octal mode such as 0755. + + + + guest-dir [guest-dir...] + + Specifies an absolute path of one or more directories to + create on the guest VM. For example, + D:\Foo\Bar. + + If all of the associated parent directories do not exist + on the guest VM, you must specify the + option. + + You must have sufficient rights on the guest VM to create + the specified directory and its parent directories. + + + + + + Remove a directory from the guest. + + + The VBoxManage guestcontrol + vmname rmdir command + enables you to delete the specified directory from the guest VM. + + + Alternate forms of this subcommand are + removedir and + removedirectory. + + + + + + Recursively removes directories from the specified from + the guest VM. + + The short form of this option is . + + + + guest-dir [guest-dir...] + + Specifies an absolute path of one or more directories to + remove from the guest VM. You can use wildcards to specify + the directory names. For example, + D:\Foo\*Bar. + + You must have sufficient rights on the guest VM to remove + the specified directory and its parent directories. + + + + + + Remove a file from the guest. + + + The VBoxManage guestcontrol + vmname rm command enables + you to delete the specified files from the guest VM. + + + The alternate form of this subcommand is + removefile. + + + + + + Forces the operation and overrides any confirmation + requests. + + The short form of this option is . + + + + guest-file [guest-file...] + + Specifies an absolute path of one or more file to remove + from the guest VM. You can use wildcards to specify the + file names. For example, + D:\Foo\Bar\text*.txt. + + You must have sufficient rights on the guest VM to remove + the specified file. + + + + + + Rename a file or Directory on the guest + + + The VBoxManage guestcontrol + vmname mv command enables + you to rename files and directories on the guest VM. + + + Alternate forms of this subcommand are move, + ren, and rename. + + + + guest-source [guest-source...] + + Specifies an absolute path of a file or a single directory + to move or rename on the guest VM. You can use wildcards + to specify the file names. + + You must have sufficient rights on the guest VM to access + the specified file or directory. + + + + dest + + Specifies the absolute path of the renamed file or + directory, or the destination directory to which to move + the files. If you move only one file, + dest can be a file or a + directory, otherwise dest must + be a directory. + + You must have sufficient rights on the guest VM to access + the destination file or directory. + + + + + + Create a Temporary File or Directory on the guest + + + The VBoxManage guestcontrol + vmname mktemp command + enables you to create a temporary file or temporary directory on + the guest VM. You can use this command to assist with the + subsequent copying of files from the host system to the guest + VM. By default, this command creates the file or directory in + the guest VM's platform-specific temp + directory. + + + Alternate forms of this subcommand are + createtemp and + createtemporary. + + + + + + Creates a temporary directory that is specified by the + template operand. + + + + + + Enforces secure file and directory creation by setting the + permission mode to 0755. Any operation + that cannot be performed securely fails. + + + + + + Specifies the permission mode to use for the specified + directory. mode is a four-digit + octal mode such as 0755. + + + + + + Specifies the absolute path of the directory on the guest + VM in which to create the specified file or directory. If + unspecified, directory is the + platform-specific temp directory. + + + + template + + Specifies a template file name for the temporary file, + without a directory path. The template file name must + contain at least one sequence of three consecutive X + characters, or must end in X. + + + + + + Show a file or File System Status on the guest + + + The VBoxManage guestcontrol + vmname stat command enables + you to show the status of files or file systems on the guest VM. + + + + file [file ...] + + Specifies an absolute path of a file or file system on the + guest VM. For example, + /home/foo/a.out. + + You must have sufficient rights on the guest VM to access + the specified files or file systems. + + + + + + List the Configuration and Status Information for a Guest Virtual + Machine + + + The VBoxManage guestcontrol + vmname list command enables + you to list guest control configuration and status information. + For example, the output shows open guest sessions, guest + processes, and files. + + + + all|sessions|processes|files + + Indicates the type of information to show. + all shows all available data, + sessions shows guest sessions, + processes shows processes, and + files shows files. + + + + + + Terminate a Process in a guest Session + + + The VBoxManage guestcontrol + vmname closeprocess command + enables you to terminate a guest process that runs in a guest + session. Specify the process by using a process identifier (PID) + and the session by using the session ID or name. + + + + + + Specifies the ID of the guest session. + + + + + + Specifies the name of the guest session. Use a pattern + that contains wildcards to specify multiple sessions. + + + + PID [PID ...] + + Specifies the list of PIDs of guest processes to + terminate. + + + + + + Close a guest Session + + + The VBoxManage guestcontrol + vmname closesession command + enables you to close a guest session. Specify the guest session + either by session ID or by name. + + + + + + Specifies the ID of the guest session. + + + + + + Specifies the name of the guest session. Use a pattern + that contains wildcards to specify multiple sessions. + + + + + + Closes all guest sessions. + + + + + + Update the Guest Additions Software on the guest + + + The VBoxManage guestcontrol + vmname updatega command + enables you to update the Guest Additions software installed in + the specified guest VM. + + + Alternate forms of this subcommand are + updateadditions and + updateguestadditions. + + + + + + Specifies the absolute path of the Guest Additions update + .ISO file on the guest VM. + + + + + + Automatically reboots the guest after a successful Guest Additions + update. + + + + + + Sets the timeout (in ms) to wait for the overall Guest Additions update + to complete. By default no timeout is being used. + + + + + + Verifies whether the Guest Additions were updated successfully after + a successful installation. A guest reboot is mandatory. + + + + + + Waits for the current Guest Additions being ready to handle the + Guest Additions update. + + + + + + + Starts the VBoxManage update process on + the guest VM and then waits for the Guest Additions update + to begin before terminating the + VBoxManage process. + + By default, the VBoxManage command + waits for the Guest Additions update to complete before it + terminates. Use this option when a running + VBoxManage process affects the + interaction between the installer and the guest OS. + + + + + + Specifies optional command-line arguments to pass to the + Guest Additions updater. You might use the + option to pass the appropriate updater + arguments to retrofit features that are not yet installed. + + Ensure that any command argument that includes spaces is + enclosed by quotes. + + + + + + Wait for a guest run level + + The VBoxManage guestcontrol + vmname waitrunlevel command + enables you to wait for a guest run level being reached. + + + + + + Sets the timeout (in ms) to wait for reaching the run level. + By default no timeout is being used. + + + + + + Specifies the run level to wait for. + + + + + + Show Current Guest Control Activity + + + The VBoxManage guestcontrol + vmname watch command + enables you to show current guest control activity. + + + + + + Examples + + + The following VBoxManage guestcontrol run + command executes the ls -l /usr command on the + My OL VM Oracle Linux VM as the + user1 user. + + +$ VBoxManage --nologo guestcontrol "My OL VM" run --exe "/bin/ls" \ +--username user1 --passwordfile pw.txt --wait-stdout -- -l /usr + + + The option specifies the absolute path of + the command to run in the guest VM, /bin/ls. + Use the option to pass any arguments that + follow it to the ls command. + + + Use the option to specify the user + name, user1 and use the + option to specify the name of a + file that includes the password for the user1 + user, pw.txt. + + + The option waits for the + ls guest process to complete before providing + the exit code and the command output. The + option suppresses the output of the logo + information. + + + The following VBoxManage guestcontrol run + command executes the ipconfig command on the + My Win VM Windows VM as the + user1 user. Standard input, standard output, + and standard error are redirected from the VM to the host system + until the program completes. + + +$ VBoxManage --nologo guestcontrol "My Win VM" run \ +--exe "c:\\windows\\system32\\ipconfig.exe" \ +--username user1 --passwordfile pw.txt --wait-stdout + + + The specifies the absolute path of command + to run in the guest VM, + c:\windows\system32\ipconfig.exe. The double + backslashes shown in this example are required only on UNIX host + systems. + + + Use the option to specify the user + name, user1 and use the + option to specify the name of a + file that includes the password for the user1 + user, pw.txt. + + + The option waits for the + ls guest process to complete before providing + the exit code and the command output. The + option to suppress the output of the + logo information. + + + The following VBoxManage guestcontrol start + command executes the ls -l /usr command on the + My OL VM Oracle Linux VM until the program + completes. + + +$ VBoxManage --nologo guestcontrol "My Win VM" start \ +--exe "c:\\windows\\system32\\ipconfig.exe" \ +--username user1 --passwordfile pw.txt --wait-stdout + + + diff --git a/doc/manual/en_US/man_VBoxManage-guestproperty.xml b/doc/manual/en_US/man_VBoxManage-guestproperty.xml new file mode 100644 index 00000000..09231641 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-guestproperty.xml @@ -0,0 +1,359 @@ + + + + +%all.entities; +]> + + + $Date: 2022-09-07 16:31:32 +0200 (Wed, 07 Sep 2022) $ + VBoxManage guestproperty + + + + VBoxManage-guestproperty + 1 + + + + VBoxManage-guestproperty + manage virtual machine guest properties + &product-name; + + + + + + VBoxManage guestproperty get + + uuid + vmname + + property-name + --verbose + + + + VBoxManage guestproperty enumerate + + uuid + vmname + + --no-timestamp + --no-flags + --relative + --old-format + patterns + + + + VBoxManage guestproperty set + + uuid + vmname + + property-name + property-value--flags=flags + + + + VBoxManage guestproperty unset + + uuid + vmname + + property-name + + + + VBoxManage guestproperty wait + + uuid + vmname + + patterns + --timeout=msec + --fail-on-timeout + + + + + Description + + The VBoxManage guestproperty command enables + you to set or retrieve the properties of a running virtual machine + (VM). See . Guest properties + are arbitrary name-value string pairs that can be written to and + read from by either the guest or the host. As a result, these + properties can be used as a low-volume communication channel for + strings provided that a guest is running and has the Guest + Additions installed. In addition, the Guest Additions + automatically set and maintain values whose keywords begin with + /VirtualBox/. + + + General Command Operand + + + uuid|vmname + + Specifies the Universally Unique Identifier (UUID) or name + of the VM. + + + + + + List All Properties for a Virtual Machine + + + + The VBoxManage guestproperty enumerate command + lists each guest property and value for the specified + VM. Note that the output is limited if the guest's service is + not updating the properties, for example because the VM is not + running or because the Guest Additions are not installed. + + + + + Display the timestamp relative to current time. + + + + Do not display the timestamp of the last update. + + + + Do not display the flags. + + + + Use the output format from VirtualBox 6.1 and earlier. + + + + + Filters the list of properties based on the specified + pattern, which can contain the following wildcard + characters: + + + * (asterisk) + + Represents any number of characters. For example, + the /VirtualBox* pattern matches + all properties that begin with + /VirtualBox. + + + + ? (question mark) + + Represents a single arbitrary character. For + example, the fo? pattern matches + both foo and + for. + + + + | (pipe) + + Specifies multiple alternative patterns. For + example, the s*|t* pattern + matches any property that begins with + s or t. + + + + + + + + + Retrieve a Property Value for a Virtual Machine + + + The VBoxManage guestproperty get command + retrieves the value of the specified property. If the property + cannot be found, for example because the guest is not running, + the command issues the following message: + +No value set! + + + property-name + + Specifies the name of the property. + + + + + + Provides the property value, timestamp, and any specified + value attributes. + + + + + + Set a Property Value for a Virtual Machine + + + The VBoxManage guestproperty set command + enables you to set a guest property by specifying the property + and its value. If you omit the value, the property is deleted. + + + + property-name + + Specifies the name of the property. + + + + property-value + + Specifies the value of the property. If no value is + specified, any existing value is removed. + + + + + + Specify the additional attributes of the value. The + following attributes can be specified as a comma-separated + list: + + + TRANSIENT + + Removes the value with the VM data when the VM + exits. + + + + TRANSRESET + + Removes the value when the VM restarts or exits. + + + + RDONLYGUEST + + Specifies that the value can be changed only by the + host and that the guest can read the value. + + + + RDONLYHOST + + Specifies that the value can be changed only by the + guest and that the host can read the value. + + + + READONLY + + Specifies that the value cannot be changed. + + + + + + + + Wait for a Property Value to Be Created, Deleted, or Changed + + + The VBoxManage guestproperty wait command + waits for a particular value that is described by the pattern + string to change, to be deleted, or to be created. + + + + patterns + + Specifies a pattern that matches the properties on which + you want to wait. For information about the pattern + wildcards, see the description of the + option. + + + + + + Specifies the number of microseconds to wait. + + + + + + Specifies that the command fails if the timeout is + reached. + + + + + + Unset a Virtual Machine Property Value + + + The VBoxManage guestproperty unset command + unsets the value of a guest property. + + + The alternate form of this subcommand is + delete. + + + + property-name + + Specifies the name of the property. + + + + + + + + Examples + + + The following command lists the guest properties and their values + for the win8 VM. + +$ VBoxManage guestproperty enumerate win8 + + The following command creates a guest property called + region for the win8 VM. The + value of the property is set to west. + +$ VBoxManage guestproperty set win8 region west + + diff --git a/doc/manual/en_US/man_VBoxManage-hostonlyif.xml b/doc/manual/en_US/man_VBoxManage-hostonlyif.xml new file mode 100644 index 00000000..4f0f1713 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-hostonlyif.xml @@ -0,0 +1,201 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage hostonlyif + + + + VBoxManage-hostonlyif + 1 + + + + VBoxManage-hostonlyif + manage host-only network interfaces + &product-name; + + + + + + VBoxManage hostonlyif ipconfig + ifname + + --dhcp + --ip=IPv4-address --netmask=IPv4-netmask + --ipv6=IPv6-address --netmasklengthv6=length + + + + + VBoxManage hostonlyif create + + + + VBoxManage hostonlyif remove + ifname + + + + + Description + + The VBoxManage hostonlyif command enables you + to change the IP configuration of a host-only network interface. + For a description of host-only networking, see + . Each host-only network + interface is identified by a name and can either use the internal + DHCP server or a manual IP configuration, both IPv4 and IPv6. + + + Configure a Host-Only Interface + + + The VBoxManage hostonlyif ipconfig command + configures a host-only interface. + + + + ifname + + Specifies the name of the network interface. The name is + of the form + vboxnetN + where N is the interface + instance. + + + + + + Uses DHCP for the network interface. + + You cannot use this option with the , + , , and + options. + + + + + + Specifies the IPv4 IP address for the network interface. + + You cannot use this option with the + , , and + options. + + + + + + Specifies the IPv4 netmask of the network interface. The + default value is 255.255.255.0. + + You can use this option only with the + option. + + + + + + Specifies the IPv6 IP address for the network interface. + + You cannot use this option with the + , , and + options. + + + + + + Specifies the length of the IPv6 network interface. The + default value is 64. + + You can use this option only with the + option. + + + + + + Create a Network Interface on the Host System + + + The VBoxManage hostonlyif create command + creates a new host-only network interface on the host operating + system (OS). The network interface name is of the form + vboxnetN where + N is the interface instance. You must + run this command before you can attach virtual machines (VMs) to + the host-only network. + + + + Remove a Network Interface From the Host System + + + The VBoxManage hostonlyif remove command + removes the specified host-only network interface from the host + OS. + + + + ifname + + Specifies the name of the network interface. The name is + of the form + vboxnetN + where N is the interface + instance. + + + + + + + + Examples + + + The following command creates a new host-only network interface. + +$ VBoxManage hostonlyif create +0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +Interface 'vboxnet2' was successfully created + + The following command configures the IPv4 address for the + vboxnet2 host-only network interface. + +$ VBoxManage hostonlyif ipconfig vboxnet2 --ip 10.0.2.18 + + diff --git a/doc/manual/en_US/man_VBoxManage-hostonlynet.xml b/doc/manual/en_US/man_VBoxManage-hostonlynet.xml new file mode 100644 index 00000000..d55362b4 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-hostonlynet.xml @@ -0,0 +1,163 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage hostonlynet + + + + VBoxManage-hostonlynet + 1 + + + + VBoxManage-hostonlynet + Host Only Network management + &product-name; + + + + + VBoxManage hostonlynet add + --name=netname + --id=netid + --netmask=mask + --lower-ip=address + --upper-ip=address + + --enable + --disable + + + + VBoxManage hostonlynet modify + + --name=netname + --id=netid + + --lower-ip=address + --upper-ip=address + --netmask=mask + + --enable + --disable + + + + VBoxManage hostonlynet remove + + --name=netname + --id=netid + + + + + + Description + + + The hostonlynet commands enable you to control + host-only networks. + + + + Common options + + The subcommands of hostonlynet all operate on an + host-only network that can be identified via its name or uuid: + + + --name=netname + The host-only network name. You see it as + VBoxNetworkName in the output from + VBoxManage list hostonlynets. + + + + --id=netid + The host-only network uuid. If not specified when + adding a new network, one will be generated automatically. + + + + + + + hostonlynet add + + + Adds a new host-only network. + + + Options configuring the host-only network: + + + + + The network mask. Typically 255.255.255.0. + + + , + The IP address range for handing out via DHCP. The upper + boundrary is inclusive while the lower one is not, so the upper address + will be handed out to a client, while the lower + address will be used by the host itself. + + + , --disable + Whether to enable the host-only network or disable it. If not specified, + the network will be created in enabled state. + + + + + + hostonlynet modify + + + This modifies an existing host-only network configuration. It takes the same + options as the add command. + + + + + hostonlynet remove + + + Removes the specified host-only network. + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-import.xml b/doc/manual/en_US/man_VBoxManage-import.xml new file mode 100644 index 00000000..b64f4769 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-import.xml @@ -0,0 +1,461 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage import + + + + VBoxManage-import + 1 + + + + VBoxManage-import + import a virtual appliance in OVF format or from a cloud service and create virtual machines + &product-name; + + + + + + VBoxManage import + + ovfname + ovaname + + --dry-run + --options= + keepallmacs + keepnatmacs + importtovdi + + --vsys=n + --ostype=ostype + --vmname=name + --settingsfile=file + --basefolder=folder + --group=group + --memory=MB + --cpus=n + --description=text + --eula= + show + accept + + --unit=n + --ignore + --scsitype= + BusLogic + LsiLogic + + + --disk=path + --controller=index + --port=n + + + + + VBoxManage import + OCI:// + --cloud + --ostype=ostype + --vmname=name + --basefolder=folder + --memory=MB + --cpus=n + --description=text + --cloudprofile=profile + --cloudinstanceid=id + --cloudbucket=bucket + + + + + Description + + The VBoxManage import command imports a virtual + appliance either in OVF format or from a cloud service such as &oci;. + The import is performed by copying virtual disk images (by default using + the VMDK image format) and by creating virtual machines (VMs) in + &product-name;. See . + + + You must specify the path name of an OVF file or OVA archive to + use as input, or a placeholder for the cloud case. For OVF appliances + ensure that any disk images are in the same directory as the OVF file. + + + Note that any options you specify to control the imported virtual + appliance or to modify the import parameters rely on the contents + of the OVF file or the information from the cloud service. + + + Before you use the import operation to create the VM, perform a + dry run to verify the correctness of your configuration. This is more + useful with an OVF or OVA appliance, because with a cloud service even + a dry run needs to perform most of the time consuming steps. + + + The import from a cloud service downloads a temporary file containing + both the boot image and some metadata describing the details of the + VM instance. The temporary file is deleted after successful import. + + + Common Options + + + ovfname | ovaname + + Specifies the name of the OVF file or OVA archive that + describes the appliance. In the cloud case this is usually + a fixed string such as OCI://. + + + + + + + Performs a dry run of the VBoxManage + import command before you perform the actual + import operation. A dry run operation does the following: + + + Outputs a description of the appliance's contents + based on the specified OVF or OVA file. + + + Shows how the appliance would be imported into + &product-name;. In addition, the output shows any + options that you can use to change the import + behavior. + + + The shortened form of this option is . + + + + + + + Enables you to fine tune the import operation. + + Valid arguments are as follows: + + + keepallmacs: Specifies that the MAC + addresses of every virtual network card are left + unchanged. + + + keepnatmacs: Specifies that the MAC + addresses of every virtual network card are left + unchanged if the network type is NAT. + + + importtovdi: Specifies that all new + disk images are in VDI file format. + + + + + + + Specifies the guest operating system (OS) information for + the VM. Use the VBoxManage list ostypes + command to view the OS type identifiers. + + + + + + Specifies the name of the VM to be used by &product-name;. + + + + + + + Specifies the folder where the files of the imported VM + are stored. + + + + + + Specifies the memory size in Megabytes for the imported VM. + + + + + + Specifies the number of CPUs for the imported VM. + + + + + + Specifies the description text visible in the GUI and + CLI when checking the VM details. + + + + + + + OVF / OVA Import Options + + The following options are specific for importing a virtual appliance + in OVF or OVA format. Such an appliance can contain one or more VMs, + which requires specifying which VM configuration should be adjusted + in case you want to change it. See . + + + + + + + Specifies the index selecting a specific VM within the + appliance. Affects the following options. + + + + + + Specifies the index selecting a specific unit of a VM + within the appliance. Affects the following options. + + + + + + Specifies the name (with or without path) of the VM config + file which will be created as part of the import. Usually + the preferred way is overriding the VM name with + and if necessary specify the + folder in which to create the VM with + . + + + + + + Specifies the primary group of the imported VM. + + + + + + Enables you to show or accept the license conditions of a + VM within the appliance, + + Valid arguments are as follows: + + + show: Shows the EULA of a VM. + + + accepts: Accepts the EULA of a VM. + Any VMs in an appliance which have an EULA require + accepting it, otherwise the import will fail. + + + + + + + Ignores the current unit of an imported VM, effectively + removing the associated hardware. + + + + + + Enables you to select the type of the SCSI controller for + the current unit of an imported VM. + + Valid arguments are as follows: + + + BusLogic: Uses the (very old) BusLogic + SCSI controller type. + + + LsiLogic: Uses the (more modern) + LsiLogic SCSI controller type. + + + + + + + + Cloud Import Options + + The following options are specific for importing a VM instance + from a cloud service provider. It always deals with a single VM. + See . + + + + + + + Specifies that the import should be from the cloud. + + + + + + Specifies the cloud profile which is used to connect to the + cloud service provider. The cloud profile contains your &oci; + account details, such as your user OCID and the fingerprint + for your public key. To use a cloud profile, you must have + the required permissions on &oci;. + + + + + + Specifies the ID of an existing instance in the cloud. + + + + + + Specifies the bucket name in which to store the object created + from the instance. In &oci;, a bucket is a logical container + for storing objects. By default the first bucket available with + the cloud profile is used. + + + + + + + + Examples + + + The following example performs the dry run of an OVF import operation + for a sample appliance that contains a Windows 10 guest: + +$ VBoxManage import Windows10.ovf --dry-run +Interpreting Windows10.ovf... +OK. +Virtual system 0: + 0: Suggested OS type: "Windows10_64" + (change with "--vsys 0 --ostype <type>"; use "list ostypes" to list all) + 1: Suggested VM name "win10-appliance" + (change with "--vsys 0 --vmname <name>") + 2: Suggested VM group "/" + (change with "--vsys 0 --group <group>") + 3: Suggested VM settings file name "/home/user1/VirtualBox VMs/win10-appliance/win10-appliance.vbox" + (change with "--vsys 0 --settingsfile <filename>") + 4: Suggested VM base folder "/home/user1/VirtualBox VMs" + (change with "--vsys 0 --basefolder <path>") + 5: End-user license agreement + (display with "--vsys 0 --eula show"; + accept with "--vsys 0 --eula accept") + 6: Number of CPUs: 1 + (change with "--vsys 0 --cpus <n>") + 7: Guest memory: 2048 MB (change with "--vsys 0 --memory <MB>") + 8: Sound card (appliance expects "ensoniq1371", can change on import) + (disable with "--vsys 0 --unit 8 --ignore") + 9: USB controller + (disable with "--vsys 0 --unit 9 --ignore") +10: Network adapter: orig bridged, config 2, extra type=bridged +11: Floppy + (disable with "--vsys 0 --unit 11 --ignore") +12: SCSI controller, type BusLogic + (change with "--vsys 0 --unit 12 --scsitype {BusLogic|LsiLogic}"; + disable with "--vsys 0 --unit 12 --ignore") +13: IDE controller, type PIIX4 + (disable with "--vsys 0 --unit 13 --ignore") +14: Hard disk image: source image=Windows10.vmdk, + target path=/home/user1/disks/Windows10.vmdk, controller=12;channel=0 + (change target path with "--vsys 0 --unit 14 --disk <path>"; + change controller with "--vsys 0 --unit 14 --controller <index>"; + change controller port with "--vsys 0 --unit 14 --port <n>"; + disable with "--vsys 0 --unit 14 --ignore") + + The dry run output lists and numbers the individual configuration + items that are described in the Windows10.ovf + file. Some of the items include information about how to disable + or change the configuration of the item. + + + You can disable many of the items by using the options. X is the + number of the virtual system. The value is 0 + unless the appliance includes several virtual system descriptions. + Y is the configuration item number. + + + Item 1 in the example command output specifies the name of the + target machine. Items 12 and 13 specify the IDE and SCSI hard disk + controllers, respectively. + + + Item 14 indicates the hard disk image and the + option specifies the target path where the + image will be stored, the option specifies + which controller the disk will be attached to, and the + option specifies which port on the controller the + disk will be attached to. The default values are specified in the OVF file. + + + You can combine several items for the same virtual system by + specifying the same value for the option. + For example use the following command to import a machine as + described in the OVF, exclude the sound card and USB controller + and specify that the disk image is stored with a different name. + +$ VBoxManage import Windows10.ovf --vsys 0 --unit 8 --ignore \ + --unit 9 --ignore --unit 14 --disk Windows10_disk0.vmdk + + The following example illustrates how to import a VM from &oci;. To find + the &oci; VM instances and its ID you can list all available instances + with: + +$ VBoxManage cloud --provider=OCI --profile=cloud-profile-name list instances + + Once you know the ID the following command imports the instance from + &oci;: + +$ VBoxManage import OCI:// --cloud --vmname OCI_FreeBSD_VM --memory 4000 \ + --cpus 3 --ostype FreeBSD_64 --cloudprofile "standard user" \ + --cloudinstanceid ocid1.instance.oc1.iad.abuwc... --cloudbucket myBucket + + diff --git a/doc/manual/en_US/man_VBoxManage-list.xml b/doc/manual/en_US/man_VBoxManage-list.xml new file mode 100644 index 00000000..4111ab88 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-list.xml @@ -0,0 +1,526 @@ + + + + +%all.entities; +]> + + + $Date: 2022-10-06 17:22:35 +0200 (Thu, 06 Oct 2022) $ + VBoxManage list + + + + VBoxManage-list + 1 + + + + VBoxManage-list + view system information and VM configuration details + &product-name; + + + + + + VBoxManage list + --long + --sorted + + bridgedifs + cloudnets + cloudprofiles + cloudproviders + cpu-profiles + dhcpservers + dvds + extpacks + floppies + groups + hddbackends + hdds + hostcpuids + hostdrives + hostdvds + hostfloppies + hostinfo + hostonlyifs + hostonlynets + intnets + natnets + ostypes + runningvms + screenshotformats + systemproperties + usbfilters + usbhost + vms + webcams + + + + + + Description + + The VBoxManage list subcommands enable you to + obtain information about the &product-name; software, the VMs + and associated services that you create. + + + Common Options + + + + + Shows detailed information about each information entry + if available. The short form of this option is + . + + + + + + Sorts the list of information entries alphabetically. The + short form of this option is . + + + + + + List the Bridged Network Interfaces on the Host System + + VBoxManage list + bridgedifs + + + The VBoxManage list bridgedifs command lists + the bridged network interfaces that are currently available on + the host system. The output shows detailed configuration + information about each interface. See . + + + + List the Cloud Network Interfaces + + VBoxManage list + cloudnets + + + The VBoxManage list cloudnets command + lists the cloud network interfaces that have been configured. A cloud + network interface provides connectivity between local VMs and a + cloud network. + + + + List the Cloud Profiles + + VBoxManage list + cloudprofiles + + + The VBoxManage list cloudprofiles command + lists the cloud profiles that have been configured. A cloud + profile contains settings for a cloud service account. + + + + List the Cloud Providers + + VBoxManage list + cloudproviders + + + The VBoxManage list cloudproviders command + lists the cloud providers that are supported by &product-name;. + Oracle Cloud Infrastructure is an example of a cloud provider. + + + + List the known CPU Profiles + + VBoxManage list + cpu-profiles + + + The VBoxManage list cpu-profiles command + lists the CPU profiles that are known by &product-name;. + + + + List the DHCP Servers on the Host System + + VBoxManage list + dhcpservers + + + The VBoxManage list dhcpservers command lists + the DHCP servers that are currently available on the host + system. The output shows detailed configuration information + about each DHCP server. See . + + + + List the DVD Virtual Disk Images + + VBoxManage list + dvds + + + The VBoxManage list dvds command shows + information about the DVD virtual disk images that are currently + in use by the &product-name; software. For each image, the + output shows all the settings, the UUIDs associated with the + image by &product-name;, and all files associated with the + image. + + + This command performs the same function as the Virtual Media + Manager. See . + + + + List the Installed &product-name; Extension Packs + + VBoxManage list + extpacks + + + The VBoxManage list extpacks command shows + all &product-name; extension packs that are currently installed. + See and + . + + + + List the Floppy Disk Virtual Disk Images + + VBoxManage list + floppies + + + The VBoxManage list floppies command shows + information about the floppy disk images that are currently in + use by the &product-name; software. For each image, the output + shows all the settings, the UUIDs associated with the image by + &product-name;, and all files associated with the image. + + + This command performs the same function as the Virtual Media + Manager. See . + + + + List the Virtual Machine Groups + + VBoxManage list + groups + + + The VBoxManage list groups command shows + all VM groups. See . + + + + List the Virtual Disk Backends + + VBoxManage list + hddbackends + + + The VBoxManage list hddbackends command lists + all known virtual disk backends of the &product-name; software. + For each such format, such as VDI, VMDK, or RAW, this command + lists the backend's capabilities and configuration. + + + + List the Hard Disk Virtual Disk Images + + VBoxManage list + hdds + + + The VBoxManage list hdds command shows + information about the hard disk virtual disk images that are + currently in use by the &product-name; software. For each image, + the output shows all the settings, the UUIDs associated with the + image by &product-name;, and all files associated with the + image. + + + This command performs the same function as the Virtual Media + Manager. See . + + + + List the CPUID Information for the Host System CPUs + + VBoxManage list + hostcpuids + + + The VBoxManage list hostcpuids command lists + CPUID information for each CPU on the host system. Use this + information to perform a more fine grained analyis of the host + system's virtualization capabilities. + + + + List the Storage Drives on the Host System + + VBoxManage list + hostdrives + + + The VBoxManage list hostdrives command lists + the disk drives on the host system potentially useful for creating + a VMDK raw disk image. Each entry includes the name used to + reference them from within &product-name;. + + + + List the DVD Drives on the Host System + + VBoxManage list + hostdvds + + + The VBoxManage list hostdvds command lists + the DVD drives on the host system. Each DVD entry includes + the name used to access them from within &product-name;. + + + + List the Floppy Disk Drives on the Host System + + VBoxManage list + hostfloppies + + + The VBoxManage list hostfloppies command + lists the floppy disk drives on the host system. Each floppy + disk entry includes the name used to access them from within + &product-name;. + + + + List Information About the Host System + + VBoxManage list + hostinfo + + + The VBoxManage list hostinfo command shows + information about the host system. The output includes + information about the CPUs, memory, and the OS version. + + + + List the Host-Only Network Interfaces on the Host System + + VBoxManage list + hostonlyifs + + + The VBoxManage list hostonlyifs command lists + the host-only network interfaces that are currently available on + the host system. The output shows detailed configuration + information about each interface. See . + + + + List Host-Only Networks + + VBoxManage list + hostonlynets + + + The VBoxManage list hostonlynets command + lists the host-only networks that have been configured. A + host-only network provides connectivity between the host and + local VMs. See . + + + + List Internal Networks + + VBoxManage list + intnets + + + The VBoxManage list intnets command shows + information about the internal networks. See + . + + + + List the NAT Network Interfaces on the Host System + + VBoxManage list + natnets + + + The VBoxManage list natnets command lists the + NAT network interfaces that are currently available on the host + system. See . + + + + List the Guest Operating Systems + + VBoxManage list + ostypes + + + The VBoxManage list ostypes command lists all + guest operating systems (OSes) that are known to &product-name;. + Each OS entry includes an identifier, a description, a family + identifier, a family description, and whether the OS has 64-bit + support. + + + You can use these identifiers with the VBoxManage + modifyvm command. + + + + List the Running Virtual Machines + + VBoxManage list + runningvms + + + The VBoxManage list runningvms command lists + all virtual machines (VMs) that are currently running. By + default this displays a compact list that shows the name and + UUID of each VM. + + + + List the Available Screen Shot Formats + + VBoxManage list + screenshotformats + + + The VBoxManage list screenshotformats command + shows the list of available screen shot formats. + + + + List System Properties + + VBoxManage list + systemproperties + + + The VBoxManage list systemproperties command + shows a large collection of global &product-name; settings and + limits, such as minimum and maximum guest RAM, virtual hard disk + size, folder settings, and the current authentication library in + use. + + + + List the Registered Global USB Filters + + VBoxManage list + usbfilters + + + The VBoxManage list usbfilters command lists + all global USB filters registered with &product-name; and + displays the filter parameters. Global USB filters are for + devices which are accessible to all virtual machines. + + + + List the USB Devices on the Host System + + VBoxManage list + usbhost + + + The VBoxManage list usbhost command shows + information about the USB devices that are attached to the host + system. The output includes information that you can use to + construct USB filters and indicates whether the device is + currently in use by the host system. + + + + List Virtual Machines + + VBoxManage list + vms + + + The VBoxManage list vms command lists all + virtual machines (VMs) that are currently registered with + &product-name;. By default this command displays a compact list + that shows the name and UUID of each VM. + + + + List the Webcams Attached to a Running Virtual Machine + + VBoxManage list + webcams + + + The VBoxManage list webcams command shows the + list of webcams that are attached to the running VM. + + + The output is a list of absolute paths or aliases that are used + to attach the webcams to the VM by using the VBoxManage + webcam attach command. + + + + + + Examples + + + The following command lists the VM groups configured for + &product-name;. + +$ VBoxManage list groups +"/Linux-VMs" +"/Windows-VMs" + + The following command lists the VMs that are currently running. + +$ VBoxManage list runningvms +"ol7" {ol7-UUID} +"win8" {win8-UUID} + + diff --git a/doc/manual/en_US/man_VBoxManage-mediumio.xml b/doc/manual/en_US/man_VBoxManage-mediumio.xml new file mode 100644 index 00000000..49230189 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-mediumio.xml @@ -0,0 +1,178 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage mediumio + + + + VBoxManage-mediumio + 1 + + + + VBoxManage-mediumio + medium content access + &product-name; + + + + + VBoxManage mediumio + + --disk=uuid|filename + --dvd=uuid|filename + --floppy=uuid|filename + + --password-file=-|filename + formatfat + --quick + + + VBoxManage mediumio + + --disk=uuid|filename + --dvd=uuid|filename + --floppy=uuid|filename + + --password-file=-|filename + cat + --hex + --offset=byte-offset + --size=bytes + --output=-|filename + + + VBoxManage mediumio + + --disk=uuid|filename + --dvd=uuid|filename + --floppy=uuid|filename + + --password-file=-|filename + stream + --format=image-format + --variant=image-variant + --output=-|filename + + + + + Description + + + Common options + + The subcommands of mediumio all operate on a medium which need to be specified, optionally + with an encryption password. The following common options can be placed before or after the sub-command: + + + --disk=uuid|filename + Either the UUID or filename of a harddisk image, e.g. VDI, VMDK, VHD, ++. + + + --dvd=uuid|filename + Either the UUID or filename of a DVD image, e.g. ISO, DMG, CUE. + + + --floppy=uuid|filename + Either the UUID or filename of a floppy image, e.g. IMG. + + + --password-file=-|filename + The name of a file containing the medium encryption password. If + is specified, the password will be read from stdin. + + + + + + mediumio formatfat + + + Formats a floppy medium with the FAT file system. This will erase the + content of the medium. + + + + Quickformat the medium. + + + + + + mediumio cat + + + Dumps the medium content to stdout or the specified file. + + + + Dump as hex bytes. + + + The byte offset in the medium to start. + + + The number of bytes to dump. + + + + The output filename. As usual is take to mean stdout. + + + + + + mediumio stream + + + Converts the medium to a streamable format and dumps it to the given output. + + + + The format of the destination image. + + + The medium variant for the destination. + + + + The output filename. As usual is take to mean stdout. + + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-mediumproperty.xml b/doc/manual/en_US/man_VBoxManage-mediumproperty.xml new file mode 100644 index 00000000..734b75fc --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-mediumproperty.xml @@ -0,0 +1,220 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage mediumproperty + + + + VBoxManage-mediumproperty + 1 + + + + VBoxManage-mediumproperty + manage medium properties + &product-name; + + + + + + VBoxManage mediumproperty + + disk + dvd + floppy + + set + + uuid + filename + + property-name + property-value + + + + VBoxManage mediumproperty + + disk + dvd + floppy + + get + + uuid + filename + + property-name + + + + VBoxManage mediumproperty + + disk + dvd + floppy + + delete + + uuid + filename + + property-name + + + + + Description + + The VBoxManage mediumproperty command enables + you to set, retrieve, or delete a medium property. + + + Set a Medium Property + + + The VBoxManage mediumproperty set command + enables you to set a medium property. + + + + disk | dvd | floppy + + Specifies the type of medium. Valid values are + disk (hard drive), + dvd, or floppy. + + + + uuid | filename + + Specifies the Universally Unique Identifier (UUID) or + absolute path name of the medium or image. + + + + property-name + + Specifies the name of the property. + + + + property-value + + Specifies the value of the specified property. + + + + + + Retrieve a Medium Property Value + + + The VBoxManage mediumproperty get command + enables you to retrieve the value of a medium property. + + + + disk | dvd | floppy + + Specifies the type of medium. Valid values are + disk (hard drive), + dvd, or floppy. + + + + uuid | filename + + Specifies the Universally Unique Identifier (UUID) or + absolute path name of the medium or image. + + + + property-name + + Specifies the name of the property. + + + + + + Delete a Medium Property + + + The VBoxManage mediumproperty delete command + enables you to delete a medium property. + + + + disk | dvd | floppy + + Specifies the type of medium. Valid values are + disk (hard drive), + dvd, or floppy. + + + + uuid | filename + + Specifies the Universally Unique Identifier (UUID) or + absolute path name of the medium or image. + + + + property-name + + Specifies the name of the property. + + + + + + + + Examples + + + The following command sets the property called + prop1 to val1 for the + ol7.vdi disk image. + +$ VBoxManage mediumproperty disk set ol7.vdi prop1 val1 + + The following command gets the value of the property called + prop1 for the ol7.vdi disk + image. + +$ VBoxManage mediumproperty disk get ol7.vdi prop1 + + diff --git a/doc/manual/en_US/man_VBoxManage-metrics.xml b/doc/manual/en_US/man_VBoxManage-metrics.xml new file mode 100644 index 00000000..5913bf6f --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-metrics.xml @@ -0,0 +1,425 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage metrics + + + + VBoxManage-metrics + 1 + + + + VBoxManage-metrics + monitor system resource usage + &product-name; + + + + + VBoxManage metrics collect + --detach + --list + --period=seconds + --samples=count + + * + host + vmname metric-list + + + + + VBoxManage metrics disable + --list + + * + host + vmname metric-list + + + + + VBoxManage metrics enable + --list + + * + host + vmname metric-list + + + + + VBoxManage metrics list + + * + host + vmname metric-list + + + + + VBoxManage metrics query + + * + host + vmname metric-list + + + + + VBoxManage metrics setup + --list + --period seconds + --samples count + + * + host + vmname metric-list + + + + + + Description + + The VBoxManage metrics command enables you to + monitor system resource usage for the host system and for virtual + machines (VMs). For example, you can monitor particular metrics, + such as the percentage of time CPUs spend executing in user mode + (CPU/Load/User) over a specified sampling + period. + + + While it runs, the VBoxSVC process collects and + saves the specified metric data internally. The + VBoxSVC process runs until shortly after you + close all VMs and frontends. Use the VBoxManage metrics + query command to retrieve data at any time. + + + By default, metrics are not collected unless you run the + VBoxManage metrics setup command to specify a + sampling interval in seconds and the number of metrics to save. + + + Note that you can enable metric collection only for started VMs. + Collected data and collection settings for a VM are discarded when + the VM shuts down. + + + Metrics + + The host and VMs have different sets of associated metrics, + which you can view by running the VBoxManage metrics + list command. + + + Each metric is represented as a string that is composed of a + category and a metric. Optionally, the metric string can include + any of the following: a submetric, a sub-submetric, and an + aggregate. The metric string has the following format: + +category/metric[/submetric[/sub-submetric]][:aggregate] + + + category is the resource type, + such as CPU, RAM, + FS, Net. + + + metric is a measurement type that + is associated with the resource category. For example, the + Load and MHz metrics + are associated with the CPU resource + category. + + + submetric is an optional + measurement type that is associated with the metric. For + example, the User, + Kernel, and Idle + submetrics are associated with the Load + metric. + + + sub-submetric is an optional + measurement type that is associated with the submetric. For + example, the Rx and Tx + sub-submetrics are associated with the + Rate submetric of the + Net resource category. The associated + metric is the network interface. + + + aggregate is an optional function + to provide minimum, maximum, and average measurements for a + resource category. For example, the + RAM/Usage/Free:min metric represents the + minimum amount of available memory found in all saved data + on the host system. + + + + By default, the VBoxManage metrics commands + operate on the host system and all VMs, and report on all + metrics. You can optionally limit these commands to operate on + the host system or on a particular VM, and report on a list of + one or more metrics. + + + + Common Options + + + * | host | vmname + + Specifies the component on which to operate. By default, + this command operates on the host system and all running + VMs. + + If you specify host, the + VBoxManage metrics command operates on + the host system only. If you specify an asterisk + (*), the command operates on all VMs. + If you specify the name of a VM, the VBoxManage + metrics command operates on that VM. + + + + metric-list + + Specifies a comma-separated list of one or more metrics. + + The form of the metric must include the + category and + metric part of the metric + string separated by a slash. + + Note that the VBoxManage metrics enable + and VBoxManage metrics disable commands + require that you specify metrics as parameters. The + metrics must include only the resource category and metric + part, such as CPU/Load and + RAM/Usage. + + + + + + Collect Data Metrics + + + The VBoxManage metrics collect command + collects and outputs data periodically until you stop the + process by pressing Ctrl+C. + + + + + + Disables the collection of metric data, so no data is + output. Using this option is the same as running the + VBoxManage metrics setup command. + + + + + + Shows which metrics match the specified filter. + + + + + + Specifies the number of seconds to wait between collecting + metric data samples. The default value is 1. + + + + + + Specifies the number of metric data samples to save. To + view the saved data, use the VBoxManage metrics + query command. The default value is 1. + + + + + + Disable Metric Data Collection + + + The VBoxManage metrics disable command + suspends data collection. This action does not affect the data + collection properties or the collected data. Note that + specifying a submetric in the metric list does not disable its + underlying metrics. + + + Note that the VBoxManage metrics disable + command requires that you specify metrics as parameters. The + metrics must include only the resource category and metric part, + such as CPU/Load and + RAM/Usage. + + + + + + Shows whether the command succeeded as expected. + + + + + + Enable Metric Data Collection + + + The VBoxManage metrics enable command resumes + data collection after it has been suspended by using the + VBoxManage metrics disable command. Note that + specifying a submetric in the metric list does not enable its + underlying metrics. + + + Unlike the VBoxManage metrics setup command, + the VBoxManage metrics enable command does + not discard previously collected samples for the specified set + of objects and metrics. + + + Note that the VBoxManage metrics enable + command requires that you specify metrics as parameters. The + metrics must include only the resource category and metric part, + such as CPU/Load and + RAM/Usage. + + + + + + Shows whether the command succeeded as expected. + + + + + + List Metric Values + + + The VBoxManage metrics list command shows the + metrics that are currently available. Note that VM-specific + metrics are shown only when that VM is running. + + + + List Saved Metric Data + + + The VBoxManage metrics query command + retrieves and shows the saved metric data. + + + Note that the VBoxManage metrics query + command does not remove or flush saved data but older samples + are replaced by newer samples over time. + + + + Configure Metric-Gathering Properties + + + The VBoxManage metrics setup command + configures metric-gathering properties. + + + Note that this command discards any previously collected samples + for the specified set of objects and metrics. To enable or + disable metrics collection without discarding the data, use the + VBoxManage metrics enable command or the + VBoxManage metrics disable command, + respectively. + + + + + + Shows which metrics have been modified as a result of the + command execution. + + + + + + Specifies the number of seconds to wait between collecting + metric data samples. The default value is 1. + + + + + + Specifies the number of metric data samples to save. To + view the saved data, use the VBoxManage metrics + query command. The default value is 1. + + + + + + + + Examples + + + The following example command enables the collection of host + processor and memory usage metrics every second. The + option saves the five latest samples. + +$ VBoxManage metrics setup --period 1 --samples 5 host CPU/Load,RAM/Usage + + The following command lists the metrics that are available to the + host system and VMs: + +$ VBoxManage metrics list + + Note that the host system and VMs have different sets of metrics. + + + The following example shows how to query metric data about the CPU + time spent in user and kernel modes for the + test VM: + +$ VBoxManage metrics query test CPU/Load/User,CPU/Load/Kernel + + diff --git a/doc/manual/en_US/man_VBoxManage-modifymedium.xml b/doc/manual/en_US/man_VBoxManage-modifymedium.xml new file mode 100644 index 00000000..e4d3eb04 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-modifymedium.xml @@ -0,0 +1,256 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage modifymedium + + + + VBoxManage-modifymedium + 1 + + + + VBoxManage-modifymedium + change the characteristics of an existing disk image + &product-name; + + + + + + VBoxManage modifymedium + + disk + dvd + floppy + + + uuid + filename + + --autoreset=on | off + --compact + --description=description + --move=pathname + --property=name=[value] + --resize=megabytes | --resizebyte=bytes + --setlocation=pathname + --type=normal | writethrough | immutable | shareable | readonly | multiattach + + + + + Description + + The VBoxManage modifymedium command enables you + to change the characteristics of an existing disk image. + + + + For compatibility with earlier versions of &product-name;, you + can use the modifyvdi and + modifyhd commands. + + + + + disk | dvd | floppy + + Specifies the media type of the image. + + + + filename + + Specifies the Universally Unique Identifier (UUID) or path + name of the disk image on the host file system. You can + specify the UUID only if the medium is registered. Use the + VBoxManage list hdds command to list the + registered images. You can specfy an absolute or relative + path to the medium. + + + + + + Specifies whether to automatically reset an immutable hard + disk on every virtual machine (VM) startup. This option is + only for immutable hard disks and the default value is + on. See . + + + + + + Compresses disk images by removing blocks that contain only + zeroes. This option shrinks a dynamically allocated image + and reduces the physical size of the + image without affecting the logical size of the virtual + disk. + + You can use this option for base images and for differencing + images that are created as part of a snapshot. + + + Before you compress the image, you must use a suitable + software tool to zero out free space in the guest system. + For example: + + + + Windows guests. Run + the sdelete -z command. + + + Linux guests. Use the + zerofree utility, which supports + ext2 and ext3 + file systems. + + + Mac OS X guests. Use + the diskutil secureErase freespace 0 + / command. + + + + Note that you can only use this option to compress VDI + images. To compress non-VID images, you can zero out free + blocks and then clone the disk to any other dynamically + allocated format. + + + + + + Specifies a text description of the medium. + + + + + + Specifies a relative or absolute path to a medium on the + host system. Use this option to relocate a medium to a + different location on the host system. + + + + + + Specifies a property name and value for the medium. + + + + + + Specifes the new capacity of an existing image in MB. You + can use this option only to expand the capacity of an image. + You can cannot shrink the capacity of an image. + + Note that you can resize only dynamically allocated disk + images that use the VDI and VHD formats. This option adjusts + the logical size of a virtual disk and + has only a minor affect on the physical size. + + For example, if your dynamically allocated 10 GB disk is + full, you can use the option + to increase the capacity of the existing disk to 15 GB + (15,360 MB). This operation enables you to avoid having to + create a new image and copy all data from within a VM. + + Note that using this option only changes the capacity of the + drive. So, you might need to subsequently use a partition + management tool in the guest to adjust the main partition to + fill the drive. + + + + + + Specifes the new capacity of an existing image in bytes. + This option is similar to the + option, but you specify the size in bytes instead of + megabytes. + + + + + + Specifies the new location of the medium on the host system + after the medium has been moved. The path name can be + relative to the current directory or be absolute to the + root. + + Note that the VBoxManage modifymedium + command does not perform any sanity checks on the path name + you specify. Ensure that the path name is valid. + + + + + + Specifies the new mode type of an existing image. Valid + values are normal, + immutable, + writethrough, + multi-attach, + shareable, and + readonly. For descriptions of these mode + types, see . + + + + + + + Examples + + + The following command modifies the description for the disk image + file called disk01.vdi. + +$ VBoxManage modifymedium disk disk01.vdi --description "Oracle Linux 7 image" + + The following command modifies the write mode for the disk image + file called disk01.vdi. + +$ VBoxManage modifymedium disk disk01.vdi --type writethrough + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-modifynvram.xml b/doc/manual/en_US/man_VBoxManage-modifynvram.xml new file mode 100644 index 00000000..9d4e02eb --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-modifynvram.xml @@ -0,0 +1,241 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage modifynvram + + + + VBoxManage-modifynvram + 1 + + + + VBoxManage-modifynvram + List and modify the NVRAM content of a virtual machine + &product-name; + + + + + VBoxManage modifynvram + uuid|vmname + inituefivarstore + + + VBoxManage modifynvram + uuid|vmname + enrollmssignatures + + + VBoxManage modifynvram + uuid|vmname + enrollorclpk + + + VBoxManage modifynvram + uuid|vmname + enrollpk + --platform-key=filename + --owner-uuid=uuid + + + VBoxManage modifynvram + uuid|vmname + listvars + + + VBoxManage modifynvram + uuid|vmname + queryvar + --name=name + --filename=filename + + + VBoxManage modifynvram + uuid|vmname + deletevar + --name=name + --owner-uuid=uuid + + + VBoxManage modifynvram + uuid|vmname + changevar + --name=name + --filename=filename + + + + + Description + + The "modifynvram" commands are for experts who want to inspect and modify the + UEFI variable store of a virtual machine. Any mistakes done here can bring the virtual + machine in a non working state. + + + Common options + + The subcommands of modifynvram all operate on a running virtual + machine: + + + uuid|vmname + Either the UUID or the name (case sensitive) of a VM. + + + + + + modifynvram inituefivarstore + + + Iniitalizes the UEFI variable store to a default state. Any previous existing variable + store is deleted. Use with extreme caution! + + + + + modifynvram enrollmssignatures + + + Enrolls the default Microsoft KEK and DB signatures required for UEFI secure boot. + + + + + modifynvram enrollorclpk + + + Enrolls the default platform key provided by Oracle required for UEFI secure boot. + + + + + modifynvram enrollpk + + + Enrolls a custom platform key provided by the user required for UEFI secure boot. + The following commands use openssl to generate a new platform key: + +$ openssl req -new -x509 -newkey rsa:2048 -keyout PK.key -out PK.crt +$ openssl x509 -in PK.crt -out PK.cer -outform DER + + + + The platform key provided as a DER encoded X.509 signature. + + + + + The UUID identifying the owner of the platform key. + + + + + + + modifynvram listvars + + + Lists all UEFI variables in the virtual machines's store along with their owner UUID. + + + + + modifynvram queryvar + + + Queries the content of a given UEFI variable identified by its name. + + + + + UEFI variable name to query. + + + + + + + Where to store the content of the variable upon success. This is optional, + if omitted the content will be dumped to the terminal as a hex dump. + + + + + + + + modifynvram deletevar + + + Deletes the given variable identified by its name and owner UUID. + + + + + UEFI variable name to delete. + + + + + The UUID identifying the owner of the variable to delete. + + + + + + + modifynvram changevar + + + Changes the UEFI variable content to the one form the given file. + + + + + UEFI variable name to change the data for. + + + + + + The file to read the data from. + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-modifyvm.xml b/doc/manual/en_US/man_VBoxManage-modifyvm.xml new file mode 100644 index 00000000..2e3b4ffe --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-modifyvm.xml @@ -0,0 +1,2818 @@ + + + + +%all.entities; +]> + + + $Date: 2023-01-11 01:49:16 +0100 (Wed, 11 Jan 2023) $ + VBoxManage modifyvm + + + + VBoxManage-modifyvm + 1 + + + + VBoxManage-modifyvm + Change settings for a virtual machine that is stopped + &product-name; + + + + + + VBoxManage modifyvm + + uuid + vmname + + --name=name + --groups= group [,group...] + --description=description + --os-type=OS-type + --icon-file=filename + --memory=size-in-MB + --page-fusion= + on + off + + --vram=size-in-MB + --acpi= + on + off + + --ioapic= + on + off + + --hardware-uuid=UUID + --cpus=CPU-count + --cpu-hotplug= + on + off + + --plug-cpu=CPU-ID + --unplug-cpu=CPU-ID + --cpu-execution-cap=number + --pae= + on + off + + --long-mode= + on + off + + --ibpb-on-vm-exit= + on + off + + --ibpb-on-vm-entry= + on + off + + --spec-ctrl= + on + off + + --l1d-flush-on-sched= + on + off + + --l1d-flush-on-vm-entry= + on + off + + --mds-clear-on-sched= + on + off + + --mds-clear-on-vm-entry= + on + off + + --cpu-profile= + host + Intel 8086 + Intel 80286 + Intel 80386 + + --hpet= + on + off + + --hwvirtex= + on + off + + --triple-fault-reset= + on + off + + --apic= + on + off + + --x2apic= + on + off + + --paravirt-provider= + none + default + legacy + minimal + hyperv + kvm + + --paravirt-debug= key=value [,key=value...] + --nested-paging= + on + off + + --large-pages= + on + off + + --vtx-vpid= + on + off + + --vtx-ux= + on + off + + --nested-hw-virt= + on + off + + --virt-vmsave-vmload= + on + off + + --accelerate-3d= + on + off + + --accelerate-2d-video= + on + off + + --chipset= + ich9 + piix3 + + --iommu= + none + automatic + amd + intel + + --tpm-type= + none + 1.2 + 2.0 + host + swtpm + + --tpm-location= + location + + --bios-logo-fade-in= + on + off + + --bios-logo-fade-out= + on + off + + --bios-logo-display-time=msec + --bios-logo-image-path=pathname + --bios-boot-menu= + disabled + menuonly + messageandmenu + + --bios-apic= + disabled + apic + x2apic + + --bios-system-time-offset=msec + --bios-pxe-debug= + on + off + + --system-uuid-le= + on + off + + --bootX= + none + floppy + dvd + disk + net + + --rtc-use-utc= + on + off + + --graphicscontroller= + none + vboxvga + vmsvga + vboxsvga + + --snapshot-folder= + default + pathname + + --firmware= + bios + efi + efi32 + efi64 + + --guest-memory-balloon=size-in-MB + --default-frontend= + default + name + + + --vm-process-priority= + default + flat + low + normal + high + + + + + VBoxManage modifyvm + + uuid + vmname + + --nicN= + none + null + nat + bridged + intnet + hostonly + hostonlynet + generic + natnetwork + cloud + + --nic-typeN= + Am79C970A + Am79C973 + 82540EM + 82543GC + 82545EM + virtio + + --cable-connectedN= + on + off + + --nic-traceN= + on + off + + --nic-trace-fileN=filename + --nic-propertyN=name= value + --nic-speedN=kbps + --nic-boot-prioN=priority + --nic-promiscN= + deny + allow-vms + allow-all + + --nic-bandwidth-groupN= + none + name + + --bridge-adapterN= + none + device-name + + --cloud-networkN=network-name + --host-only-adapterN= + none + device-name + + --host-only-netN=network-name + --intnetN=network-name + --nat-networkN=network-name + --nic-generic-drvN=driver-name + --mac-addressN= + auto + MAC-address + + + + + VBoxManage modifyvm + + uuid + vmname + + --nat-netN= + network + default + + --nat-pfN= + [rule-name],tcp + udp,[host-IP],hostport,[guest-IP],guestport + + --nat-pfN=delete=rule-name + --nat-tftp-prefixN=prefix + --nat-tftp-fileN=filename + --nat-tftp-serverN=IP-address + --nat-bind-ipN=IP-address + --nat-dns-pass-domainN= + on + off + + --nat-dns-proxyN= + on + off + + --nat-dns-host-resolverN= + on + off + + --nat-localhostreachableN= + on + off + + --nat-settingsN=[mtu],[socksnd],[sockrcv],[tcpsnd],[tcprcv] + --nat-alias-modeN= + default + [log],[proxyonly],[sameports] + + + + + VBoxManage modifyvm + + uuid + vmname + + --mouse= + ps2 + usb + usbtablet + usbmultitouch + usbmtscreenpluspad + + --keyboard= + ps2 + usb + + --uartN= + off + IO-base IRQ + + --uart-modeN= + disconnected + server pipe + client pipe + tcpserver port + tcpclient hostname:port + file filename + device-name + + --uart-typeN= + 16450 + 16550A + 16750 + + --lpt-modeN=device-name + --lptN= + off + IO-base IRQ + + --audio-controller= + ac97 + hda + sb16 + + --audio-codec= + stac9700 + ad1980 + stac9221 + sb16 + + --audio-driver= + none + default + null + dsound + was + oss + alsa + pulse + coreaudio + + --audio-enabled= + on + off + + --audio-in= + on + off + + --audio-out= + on + off + + --clipboard-mode= + disabled + hosttoguest + guesttohost + bidirectional + + + --drag-and-drop= + disabled + hosttoguest + guesttohost + bidirectional + + --monitor-count=number + --usb-ehci= + on + off + + --usb-ohci= + on + off + + --usb-xhci= + on + off + + --usb-rename=old-name new-name + + + + VBoxManage modifyvm + + uuid + vmname + + --recording= + on + off + + --recording-screens= + all + none + screen-ID[,screen-ID...] + + --recording-file=filename + --recording-max-size=MB + --recording-max-time=msec + --recording-opts= key=value[,key=value...] + --recording-video-fps=fps + --recording-video-rate=rate + --recording-video-res=width height + + + + VBoxManage modifyvm + + uuid + vmname + + --vrde= + on + off + + --vrde-property=property-name= property-value + --vrde-extpack= + default + name + + --vrde-port=port + --vrde-address=hostip + --vrde-auth-type= + null + external + guest + + --vrde-auth-library= + default + name + + --vrde-multi-con= + on + off + + --vrde-reuse-con= + on + off + + --vrde-video-channel= + on + off + + --vrde-video-channel-quality=percent + + + + VBoxManage modifyvm + + uuid + vmname + + --teleporter= + on + off + + --teleporter-port=port + --teleporter-address= + address + empty + + --teleporter-password=password + --teleporter-password-file= + filename + stdin + + --cpuid-portability-level=level + --cpuid-set=leaf:subleaf eax ebx ecx edx + --cpuid-remove=leaf:subleaf + --cpuid-remove-all + + + + VBoxManage modifyvm + + uuid + vmname + + --tracing-enabled= + on + off + + --tracing-config=string + --tracing-allow-vm-access= + on + off + + + + + VBoxManage modifyvm + + uuid + vmname + + --usb-card-reader= + on + off + + + + + VBoxManage modifyvm + + uuid + vmname + + --autostart-enabled= + on + off + + --autostart-delay=seconds + + + + + VBoxManage modifyvm + + uuid + vmname + + --guest-debug-provider= + none + native + gdb + kd + + --guest-debug-io-provider= + none + tcp + udp + ipc + + --guest-debug-address= + IP-Address + path + + --guest-debug-port=port + + + + VBoxManage modifyvm + + uuid + vmname + + --pci-attach=host-PCI-address@guest-PCI-bus-address + --pci-detach=host-PCI-address + + + + VBoxManage modifyvm + + uuid + vmname + + --testing-enabled=onoff + --testing-mmio=onoff + --testing-cfg-dwordidx=value + + + + + Description + + The VBoxManage modifyvm command enables you to + change the properties of a registered virtual machine (VM) that is + not running. + + + Most of these properties correspond to the VM settings that are + shown in each VM's Settings + dialog in the VirtualBox Manager. See + . However, some settings can only + be viewed and managed with the VBoxManage + command. + + + You can use the VBoxManage modifyvm command to + change VM settings only when the VM is powered off. The VM cannot + be running or in saved state when you use this command. + + + You can use the VBoxManage controlvm command to + dynamically change some VM machine settings while the VM is + running. See . + + + General Settings + + + The following options enable you to modify general information + about your VM. + + + The VBoxManage modifyvm command supports the + following options: + + + + + + Changes the name of the VM and its related internal VM + files. See . + + + + + + Changes the group membership of a VM. Group names always + begin with a slash character (/) and + can be nested. By default, VMs are members of the + / group. A VM can be member of multiple + groups, but its primary group determines the directory + structure where the internal VM files are placed by default. + + + + + + Changes the optional VM description. Use a description to + record details about the VM in a meaningful way. The GUI + interprets HTML markup while the VBoxManage + modifyvm command enables you include arbitrary + strings that can contain multiple lines. + + + + + + Specifies the guest operating system (OS) information for + the VM. Use the VBoxManage list ostypes + command to view the OS type identifiers. + + + + + + Specifies the path to the VM icon file in PNG format + on the host system. The icon is shown in the VM manager + UI and when running the VM with UI. + + + + + + Specifies the amount of host system RAM to allocate to the + VM. The size is in MB. See + . + + + + + + Enables or disables the Page Fusion feature, which is + disabled by default. Use the Page Fusion feature to + minimize the memory duplication between VMs that have + similar configurations and that run on the same host + system. See . + + + + + + Specifies the amount of RAM to allocate to the virtual + graphics card. See . + + + + + + Determines whether the VM has ACPI support. See + . + + + + + + Determines whether the VM has I/O APIC support. See + . + + + + + + Specifies the Universally Unique Identifier (UUID) to + present to the guest VM in memory tables (DMI/SMBIOS), + hardware, and VM properties. By default this hardware UUID + is the same as the VM UUID. Cloning a VM and the teleporting + feature automatically preserve the hardware UUID value. + Likewise for Virtual Appliance export and import, but only + if both operations are done by &product-name;. + + + + + + Specifies the number of virtual CPUs to assign to the VM. + See . + + If CPU hot-plugging is enabled, this option specifies the + maximum number of virtual CPUs that can be plugged into + the VMs. + + + + + + Enables or disables CPU hot-plugging. When enabled, you + can dynamically add virtual CPUs to a VM or remove virtual + CPUs from a VM. See . + + + + + + Adds a virtual CPU to the VM. + CPU-ID is the index of the + virtual CPU to add. A valid index value is a number from + 0 to the maximum number of CPUs that + you configured by using the + option. + + Only use this option if CPU hot-plugging is enabled. + + + + + + Removes a virtual CPU from the VM. + CPU-ID is the index of the + virtual CPU to remove. A valid index value is a number + from 1 to the maximum number of CPUs + that you configured by using the + option. + + Only use this option if CPU hot-plugging is enabled. + + Note that you cannot remove CPU 0. + + + + + + + Specifies how much CPU time a virtual CPU can use. A valid + value is from 1 to + 100. A value of 50 indicates that a + single virtual CPU can use up to 50% of a single host CPU. + + + Use this feature with caution, it can have unexpected results + including timekeeping problems and lower performance than + specified. If you want to limit the resource usage of a VM + it is more reliable to pick an appropriate number of VCPUs. + + + + + + + Enables or disables physical address extension (PAE). See + . + + + + + + Enables or disables long mode. See + . + + + + + + Enables use of Indirect Branch Prediction Barrier (IBPB) + on every VM exit. + + + + + + Enables use of Indirect Branch Prediction Barrier (IBPB) + on every VM entry. + + + + + + Enables or disables the exposure of speculation control + interfaces to the guest VM. These interfaces must be + available on the host system. + + Depending on the host CPU and the workload, enabling + speculation control might significantly reduce + performance. + + + + + + Enables or disables level 1 data cache flushing when a + thread is scheduled to execute guest code. See + . + + + + + + Enables or disables level 1 data cache flushing on every + VM entry. See . + + + + + + Enables CPU buffer clearing when a thread is scheduled to + execute guest code. See + . + + + + + + Enables CPU buffer clearing on every VM entry. See + . + + + + + + Specifies the profile to use for guest CPU emulation. + Specify a value that is based on the host system CPU + (host) or one of the following older + Intel micro-architectures: 8086, + 80286, or 80386. + + + + + + Enables or disables a High Precision Event Timer (HPET) + that can replace a legacy system timer. This feature is + disabled by default. Note HPET is supported on Windows + versions starting with Vista. + + + + + + Enables or disables the use of hardware virtualization + extensions in the processor of the host system. Such + extensions are Intel VT-x or AMD-V. See + . + + + + + + Enables or disables the resetting of the guest VM instead + of triggering a Guru Meditation. Some guest VMs raise a + triple fault to reset the CPU, so sometimes resetting the + guest VM is the best outcome. This option only applies to + guests that do not use symmetric multiprocessing (SMP). + + + + + + Enables or disables APIC. With APIC, OSes can use + more than 16 interrupt requests (IRQs) to avoid IRQ + sharing and to improve reliability. APIC is enabled by + default. See . + + + + + + Enables or disables the CPU x2APIC feature. CPU x2APIC + enables an OS to run more efficiently on high core count + configurations and to optimize interrupt distribution in + virtualized environments. This feature is enabled by + default. + + Disable this feature when the OS that runs on a host + system or a guest VM is incompatible with CPU x2APIC. + + + + + + Specifies one of the following paravirtualization + interfaces to provide to the guest OS: + + + none does not expose any + paravirtualization interface. + + + default selects the appropriate + interface based on the guest OS type when starting the + VM. This is the default value used when creating new + VMs. + + + legacy selects a paravirtual + interface for VMs that were created by older + &product-name; versions. + + + minimal is required for Mac OS X + guest VMs. + + + kvm is recommended for Linux guest + VMs. See . + + + hyperv is recommended for Windows + guest VMs. See . + + + + + + + Specifies debugging properties that are specific to the + paravirtualization provider configured for the specified + VM. See . + + + + + + Enables or disables the nested paging feature in the + processor of the host system. This option is available + only when hardware virtualization is enabled. See + and + . + + + + + + Enables or disables the hypervisor's use of large pages, + which can improve performance by up to 5%. The use of + large pages reduces TLB use and overhead. This option is + available only when both hardware virtualization and + nested paging are enabled. + + + + + + Enables or disables the use of the tagged TLB (VPID) + feature in the processor of your host system. See + . This option is available only + when hardware virtualization is enabled on Intel VT-x. + + + + + + Enables or disables the use of unrestricted guest mode for + executing the guest VM. This option is available only when + hardware virtualization is enabled on Intel VT-x. + + + + + + Enables or disables nested virtualization. Enabling makes + hardware virtualization features available to the VM. See + . + + + + + + If hardware virtualization is enabled and the host has an + AMD CPU, this setting enables or disables the use of the + virtualized vmsave/vmload host feature while executing the + VM. It is enabled by default. It is recommended to leave it + enabled as it has a drastic impact on performance while + executing nested VMs when using the nested hardware + virtualization feature. + . + + + + + + Enables or disables hardware 3D acceleration for the + graphics adapter variants which support it. This option + has an effect only when the Guest Additions are installed. + See . + + + + + + Enables or disables 2D video acceleration for the graphics + adapter variants which support it. This option has an effect + only when the Guest Additions are installed. See + . + + + + + + Specify the Intel chipset for &product-name; to emulate. + The default value is the Intel PIIX3 chipset + (piix3). + + Change this value only if you need to relax some of the + chipset constraints. See + . + + + + + + Specifies the IOMMU type for &product-name; to emulate. + Both Intel and AMD IOMMU emulation currently require the + use of the Intel ICH9 chipset (see + option). + + Valid values are as follows: + + + none – No IOMMU is present + and is the default value. + + + automatic – An IOMMU is + present but its type is automatically chosen to match + the host CPU vendor when the VM is powered on. + + + amd – An AMD IOMMU is + present. + + + intel – An Intel IOMMU is + present. + + + + + + + Specifies the TPM type for &product-name; to emulate. + + Valid values are as follows: + + + none – No TPM is present + and is the default value. + + + 1.2 – A TPM conforming to the TCG specification + version 1.2 is present. + + + 2.0 – A TPM conforming to the TCG specification + version 2.0 is present. + + + host – The host TPM is passed through to the guest. + May not be available on all supported host platforms. + + + swtpm – The VM connects to an external TPM emulation + compliant to swtpm. Requires to set the TPM location to connect to (see + option). + + + + + + + Specifies whether the BIOS logo fades in on VM startup. By + default, an &product-name; logo is shown. + + + + + + Specifies whether the BIOS logo fades out on VM startup. + + + + + + Specifies the amount of time in milliseconds that the BIOS + logo is visible. + + + + + + Replaces the existing BIOS logo with a different image. + The replacement image must be an uncompressed 16, 256 or 16M + color bitmap file (BMP) that does not contain color space + information (Windows 3.0 format). Also ensure that the + image is no larger than 640 X 480 pixels. + + + + + + Specifies whether the BIOS permits you to select a + temporary boot device. Valid values are: + + + disabled outputs the alternate boot + device message and permits you to select a temporary + boot device by pressing F12. + + + menuonly suppresses the alternate + boot device message, but permits you to select a + temporary boot device by pressing F12. + + + messageandmenu suppresses the + alternate boot device message and prevents you from + selecting a temporary boot device by pressing F12. + + + + + + + Specifies the APIC level of the firmware. Valid values + are: x2apic, apic, + and disabled. When the value is + disabled, neither the + apic nor the x2apic + version of the firmware is used. + + Note that if you specify the x2apic + value and x2APIC is unsupported by the virtual CPU, the + APIC level downgrades to apic, if + supported. Otherwise, the APIC level downgrades to + disabled. Similarly, if you specify the + apic value and APIC is unsupported by + the virtual CPU, the APIC level downgrades to + disabled. + + + + + + Specifies the time offset in milliseconds of the guest VM + relative to the time on the host system. If the offset + value is positive, the guest VM time runs ahead of the + time on the host system. + + + + + + Enables or disables additional debugging output when using + the Intel PXE boot ROM. The debug output is written to the + release log file. See + . + + + + + + Enables or disables representing the system UUID in little + endian form. The default value is on for + new VMs. For old VMs the setting is off to + keep the content of the DMI/SMBIOS table unchanged, which can + be important for Windows license activation. + + + + + + Enables you to specify the boot device order for the VM by + assigning one of the device types to each of the four boot + device slots that are represented by + N in the option name. + + A value of 1 for N represents + the first boot device slot, and so on. + + The device types are floppy for floppy + disks, dvd for DVDs or CDs, + disk for hard disks, and + net for a network device. A value of + none indicates that no boot device is + associated with the specified slot. + + + + + + Specifies whether the real-time clock (RTC) uses + coordinated universal time (UTC). See + . + + + + + + Specifies the graphics controller type to use. See + . + + + + + + Specifies the name of the VM's snapshot storage folder. If + you specify default, the folder name is + Snapshots/ in the machine folder. + + + + + + Specifies the firmware used to boot the VM. Valid values + are: bios, efi, + efi32, or efi64. Use + EFI values with care. + + By default, BIOS firmware is used. + + + + + + Specifies the size of the guest memory balloon. The guest + memory balloon is the memory allocated by the Guest + Additions from the guest OS and returned to the hypervisor + for use by other VMs. Specify + size in megabytes. The default + value is 0 megabytes. See + . + + + + + + Specifies the default frontend to use when starting the + specified VM. If you specify default, + the VM is shown in a window on the user's desktop. See + . + + + + + + Specifies the priority scheme of the VM process to use + when starting the specified VM and while the VM runs. + + The following valid values are: + + + default – Default process + priority determined by the OS. + + + flat – Assumes a scheduling + policy which puts the process at the default priority + and with all threads at the same priority. + + + low – Assumes a scheduling + policy which puts the process mostly below the default + priority of the host OS. + + + normal – Assume a scheduling + policy which shares the CPU resources fairly with + other processes running with the default priority of + the host OS. + + + high – Assumes a scheduling + policy which puts the task above the default priority of + the host OS. This policy might easily cause other tasks + in the system to starve. + + + + + + + Networking Settings + + + The following options enable you to modify networking on your + VM. With all these options, N is an + integer greater than zero that represents the particular virtual + network adapter to configure. + + + + + + Configures the network type used by each virtual network + card in the VM. + + The following valid values correspond to the modes + described in : + + + none – No networking present + + + null – Not connected to the + host system + + + nat – Use network address + translation (NAT) + + + natnetwork – Use a NAT + network + + + bridged – Use bridged + networking + + + intnet – Use internal + networking + + + hostonly – Use host-only + networking + + + generic – Access rarely used + sub-modes + + + + + + + Identifies the type of networking hardware that + &product-name; presents to the guest VM for the specified + virtual network card. See . + + Valid values are as follows: + + + Am79C970A represents the AMD PCNet + PCI II. + + + Am79C973 represents the AMD PCNet + FAST III, which is the default value. + + + 82540EM represents the Intel + PRO/1000 MT Desktop. + + + 82543GC represents the Intel + PRO/1000 T Server. + + + 82545EM represents the Intel + PRO/1000 MT Server. + + + virtio represents a paravirtualized + network adapter. + + + + + + + Temporarily disconnects a virtual network interface, as if + you pull a network cable from a physical network card. You + might use this option to reset certain software components + in the VM. + + + + + + Enables or disables network tracing for the specified + virtual network card. + + + + + + Specifies the absolute path of the file in which to write + trace log information. Use this option if network tracing + is enabled. + + + + + + Enables you to set property values and pass them to rarely + used network backends. To use this option, you must also + use the option. + + These properties are specific to the backend engine and + differ between the UDP Tunnel and the VDE backend drivers. + For property examples, see + . + + + + + + Specifies the throughput rate in kilobits per second for + rarely used networking sub-modes such as VDE network and + UDP Tunnel. Use this option only if you used the + option to enable generic networking + for the specified virtual network card. + + + + + + Assigns a priority to each NIC that determines the order + in which that NIC is used to perform a PXE network boot. + The priority value is an integer in the range from + 0 to 4. Priority + 0, which is the default value, is the + lowest priority. Priority 1 is the + highest priority, and priorities 3 and + 4 are lower. + + This option has an effect only when using the Intel PXE + boot ROM. + + + + + + Enables you to specify whether to deny or allow + promiscuous mode for the specified VM virtual network + card. This option is relevant only for bridged networking. + Valid values are as follows: + + + deny hides any traffic that is not + intended for the VM. This is the default value. + + + allow-vms hides all host traffic + from the VM, but allows the VM to see traffic to and + from other VMs. + + + allow-all allows the VM to see all + traffic. + + + + + + + Adds or removes a bandwidth group assignment to the + specified virtual network interface. Valid values are as + follows: + + + none removes any current bandwidth + group assignment from the specified virtual network + interface. + + + name adds a bandwidth group + assignment to the specified virtual network interface. + + + See . + + + + + + Specifies the host interface to use for the specified + virtual network interface. See + . Use this option only + if you used the option to enable + bridged networking for the specified virtual network card. + + + + + + Specifies which host-only networking interface to use for + the specified virtual network interface. See + . Use this option only + if you used the option to enable + host-only networking for the specified virtual network + card. + + + + + + Specifies the name of the internal network. See + . Use this option only + if you used the option to enable + internal networking for the specified virtual network + card. + + + + + + Specifies the name of the NAT network to which this + adapter is connected. Use this option only if the + networking type is natnetwork, not + nat. + + + + + + Enables you to access rarely used networking sub-modes, + such as VDE networks and UDP Tunnel. Use this option only + if you used the option to enable + generic networking for a virtual network card. + + + + + + Specifies the MAC address of the specified network adapter + on the VM. By default, &product-name; assigns a random MAC + address to each network adapter at VM creation. + + + + + + NAT Networking Settings + + + The following options use N to + specify the particular virtual network adapter to modify. + + + + + + Specifies the IP address range to use for this network. + See . Use this option only if + the networking type is nat, not + natnetwork. + + + + + + Specifies the NAT port-forwarding rule to use. See + . + + + + + + Specifies the NAT port-forwarding rule to delete. See + . + + + + + + Specifies a prefix to use for the built-in TFTP server. + For example, you might use a prefix to indicate where the + boot file is located. See and + . + + + + + + Specifies the name of the TFT boot file. See + . + + + + + + Specifies the address of the TFTP server from which to + boot. See . + + + + + + Specifies an alternate IP address to which the NAT engine + binds. See . By + default, &product-name;'s NAT engine routes TCP/IP packets + through the default interface assigned by the host's + TCP/IP stack. + + + + + + Specifies whether the built-in DHCP server passes the + domain name for network name resolution. + + + + + + Specifies whether the NAT engine is the proxy for all + guest DNS requests to the host system's DNS servers. See + . + + + + + + Specifies whether the NAT engine uses the host system's + resolver mechanisms to handle DNS requests. See + . + + + + + + Specifies whether the NAT engine allows traffic from the guest directed to + 10.0.2.2 to pass to the host's loopback interface, i.e. localhost or 127.0.0.1. + + + + + + Specifies values for tuning NAT performance. See + . + + + + + + Specifies the behavior of the NAT engine core as follows: + + + log enables logging + + + proxyonly switches off aliasing + mode and makes NAT transparent + + + sameports enforces that the NAT + engine sends packets through the same port on which + they originated + + + default disables all aliasing modes + + + For more information, see + . + + + + + + Other Hardware Settings + + + The following options enable you to configure other hardware, + such as the serial port, monitor, audio device, USB ports, and + the clipboard, and drag-and-drop features. + + + + + + Specifies the mode of the mouse to use in the VM. Valid + values are: ps2, + usb, usbtablet, + usbmultitouch and + usbmtscreenpluspad. + + + + + + Specifies the mode of the keyboard to use in the VM. Valid + values are: ps2 and + usb. + + + + + + Configures virtual serial ports for the VM. + N represents the serial port to + modify. Valid values are off to disable + the port or an I/O base address and IRQ. For information + about the traditional COM port I/O base address and IRQ + values, see . + + + + + + Specifies how &product-name; connects the specified + virtual serial port to the host system that runs the VM. + See . + + Ensure that you first configure the virtual serial port by + using the + + option. + + Specify one of the following connection modes for each + port: + + + disconnected indicates that even + though the serial port is shown to the guest VM, it is + not connected. This state is like a physical COM port + without a cable attached. + + + server + pipe-name creates the + specified named pipe or local domain socket on the + host system and connects the virtual serial device to + it. + + On a Windows host system, + pipe-name is a named pipe + that has a name that uses the following form: + \\.\pipe\pipe-name. + + On a Linux host system, + pipe-name is a local domain + socket. + + + client + pipe-name connects the + virtual serial device to the specified named pipe or + local domain socket. + + Note that the named pipe or local domain socket must + already exist. + + + tcpserver + port creates a TCP socket + with the specified TCP port on the host system and + connects the virtual serial device to it. + + For UNIX-like systems, use ports over 1024 for + non-root users. + + + tcpclient + hostname:port + connects the virtual serial device to the TCP socket. + + Note that the TCP socket must already exist. + + + file + filename redirects the + serial port output to the specified raw file. Ensure + that filename is the + absolute path of the file on the host system. + + + device-name: specifies the + device name of a physical hardware serial port on the + specified host system to which the virtual serial port + connects. + + Use this mode to connect a physical serial port to a + VM. + + On a Windows host system, the device name is a COM + port such as COM1. On a Linux host + system, the device name is similar to + /dev/ttyS0. + + + + + + + Configures the UART type for the specified virtual serial + port (N). Valid values are + 16450, 16550A, and + 16750. The default value is + 16550A. + + + + + + Specifies the device name of the parallel port to use. + + For a Windows host system, use a device name such as + lpt1. For a Linux host system, use a + device name such as /dev/lp0. + + + + + + Specifies the I/O base address and IRQ of the parallel + port. + + You can view the I/O base address and IRQ that the VM uses + for the parallel port in the Device Manager. + + + + + + Specifies the audio controller to be used with the VM. + Valid audio controller type values are: + ac97, hda, and + sb16. + + + + + + Specifies the audio codec to be used with the VM. Valid + audio codec type values are: stac9700, + ad1980, stac9221, + and sb16. + + + + + + Specifies whether which audio driver (backend) to use. + none, default, + null, dsound, + was, oss, + alsa, pulse, and + coreaudio. + + Note that the audio driver are dependent on the host + operating system. Use the VBoxManage + modifyvm command usage output to determine the + supported audio types for your host system. + + + For maximum interoperability between hosts, the default + audio driver can be used. The VM will then automatically select + the most appropriate audio driver for the current host available. + + + + + + Specifies whether to enable or disable audio for the VM. + + + This option has precedence over the --audio-on and --audio-off + options, i.e. turning off audio via this option will turn off + both, input and output, audio. + + + + + + Specifies whether to enable or disable audio capture from + the host system. + + + + + + Specifies whether to enable or disable audio playback from + the guest VM. + + + + + + Specifies how to share the guest VM or host system OS's + clipboard with the host system or guest VM, respectively. + Valid values are: disabled, + hosttoguest, + guesttohost, and + bidirectional. See + . + + The clipboard feature is available only if you have the + Guest Additions be installed in the VM. + + + + + + Specifies how to use the drag and drop feature between the + host system and the VM. Valid values are: + disabled, + hosttoguest, + guesttohost, and + bidirectional. See + . + + The drag and drop feature is available only if you have + the Guest Additions be installed in the VM. + + + + + + Enables you to configure multiple monitors. See + . + + + + + + Enables or disables the VM's virtual USB 1.1 controller. + See . + + + + + + Enables or disables the VM's virtual USB 2.0 controller. + See . + + + + + + Enables or disables the VM's virtual USB 3.0 controller. + This is the most efficient option if the VM supports it. + See . + + + + + + Rename's the VM's virtual USB controller from + old-name to + new-name. + + + + + + Recording Settings + + + The following options enable you to modify settings for video + recording, audio recording, or both. + + + + + + Enables or disables the recording of a VM session into a + WebM or VP8 file. When set to on, + recording begins when the VM session starts. + + + + + + Enables you to specify the VM screens to record. The + recording for each screen is output to its own file. Valid + values are: all, which records all + screens, none, which records no + screens, or one or more specified screens. + + + + + + Specifies the name of the file in which to save the + recording. + + + + + + Specifies the maximum size of the recorded video file in + megabytes. When the file reaches the specified size, + recording stops. If the value is 0, + recording continues until you manually stop recording. + + + + + + Specifies the maximum amount of time to record in seconds. + When the specified time elapses, recording stops. If the + value is 0, recording continues until + you manually stop recording. + + + + + + Specifies additional video-recording properties as a + comma-separated property keyword-value list. For example, + foo=bar,a=b. + + Only use this option if you are an advanced user. For + information about keywords, see the Oracle VM + VirtualBox Programming Guide and Reference. + + + + + + Specifies the maximum number of video frames per second + (FPS) to record. The recording ignores any frames that + have a higher frequency. When you increase the FPS, fewer + frames are ignored but the recording and the size of the + recording file increases. + + + + + + Specifies the bit rate of the video in kilobits per + second. When you increase the bit rate, the recording + appearance improves and the size of the recording file + increases. + + + + + + Specifies the video resolution (width and height) of the + recorded video in pixels. + + + + + + Remote Machine Settings + + + The following options enable you to modify the VirtualBox Remote + Desktop Extension (VRDE) behavior. + + + + + + Enables or disables the VRDE server. + + + + + + port is the port or port range + to which the VRDE server binds. The + default or 0 value + uses port 3389, which is the standard + RDP port. + + Also see the option + description. + + + + + + IP-address is the IP address of + the host network interface to which the VRDE server binds. + When specified, the server accepts connections only on the + host network interface at that IP address. + + Also see the option + description. + + + + + + Specifies whether the VRDP video channel is on or off. + 1 means on and + 0 means off. See + . + + + + + + Specifies a value between 10% and 100%, inclusive, that + represents the JPEG compression level on the VRDE server + video channel. A lower value produces lower JPEG quality + but higher compression. See + . + + + + + + Enables or disables the video downscale protection + feature. Valid values are 1 to enable + the feature and 0 to disable the + feature. + + When this feature is enabled, &product-name; determines + whether to display the video: + + + When the video size equals the size of the shadow + buffer, the video is considered to be full screen and + is displayed. + + + When the video size is between full screen and the + downscale threshold, the video is not displayed. Such + a video might be an application window, which is + unreadable when downscaled. + + + When this feature is disabled, an attempt is always made + to display a video. + + + + + + Disables the display VRDE server feature. + + To reenable a feature, assign an empty value. For example, + to reenable the display feature, specify the + VBoxManage modifyvm + --vrde-property=Client/DisableDisplay= command. + See . + + + + + + Disables the input VRDE server feature. + + + + + + Disables the audio VRDE server feature. + + + + + + Disables the USB VRDE server feature. + + + + + + Disables the clipboard VRDE server feature. To reenable + the feature, assign an empty value. See + . + + + + + + Disables the upstream audio VRDE server feature. To + reenable the feature, assign an empty value. See + . + + + + + + Disables the RDP device redirection for smart cards VRDE + server feature. To reenable this feature, assign an empty + value. + + + + + + Enables the 3D redirection VRDE server feature. To disable + this feature, assign an empty value. + + + + + + Specifies the following information that is required for a + connection: + + + Negotiate indicates that both + Enhanced (TLS) and Standard RDP Security connections + are permitted. The security method is negotiated with + the client. This is the default value. + + + RDP indicates that only Standard + RDP Security is accepted. + + + TLS indicates that only Enhanced + RDP Security is accepted. The client must support TLS. + + + See . + + + + + + Specifies the absolute path to the server certificate. See + . + + + + + + Specifies the absolute path to the server private key. See + . + + + + + + Specifies the absolute path to the CA self-signed + certificate. See . + + + + + + Specifies the audio connection mode or the path to the + audio log file. Valid values are as follows: + + + VRDP_AUDIO_MODE_VOID is no mode. + Use this value to unset any set audio mode. + + + VRDP_AUDIO_MODE_RC is the rate + correction mode. + + + VRDP_AUDIO_MODE_LPF is the low pass + filter mode. + + + VRDP_AUDIO_MODE_CS is the client + sync sync mode to prevent an underflow or overflow of + the client queue. + + + + + + + Specifies the absolute path to the audio log file. + + + + + + Specifies the library to use to access the VM remotely. + The default value uses the RDP code + that is part of the &product-name; Extension Pack. + + To use the VRDE module in VNC, specify + VNC. See + . + + + + + + port is the port or port range + to which the VRDE server binds. The + default or 0 value + uses port 3389, which is the standard + RDP port. + + You can specify a comma-separated list of ports or port + ranges of ports. Use a dash between two port numbers to + specify a port range. The VRDE server binds to only one of + the available ports from the list. Only one machine can + use a given port at a time. For example, the + option + specifies that server can bind to one of following ports: + 5000, 5010, + 5011, or 5012. + + + + + + Specifies the IP address of the host network interface to + which the VRDE server binds. If you specify an IP address, + the server accepts connections only on the specified host + network interface. + + Use this option to specify whether the VRDP server should + accept IPv4, IPv6, or both type of connections: + + + Only IPv4: Use the + option. + + + Only IPv6: Use the + option. + + + Both IPv6 and IPv4: + Use the + option. This is the default value. + + + + + + + Specify whether to use authorization and how to perform + authorization. See . Valid + values are as follows: + + + null provides no authentication. + + + external provides external + authentication through an authentication library. + + + guest performs authentication by + using guest user accounts. This unsupported method + requires that you install the Guest Additions on the + VM. + + + + + + + Specifies the library to use for RDP authentication. The + default library for external authentication is + VBoxAuth. See + . + + + + + + Enables or disables the multiple connections VRDE server + feature, if supported. See + . + + + + + + Specifies how the VRDE server behaves when multiple + connections are disabled. When the value is + on, the server permits a new client to + connect and drops the existing connection. When the value + is off, a new connection is not + accepted if a client is already connected to the server. + This is the default value. + + + + + + Enables video redirection if supported by the VRDE server. + See . + + + + + + Specifies the image quality for video redirection as a + value from 10 to 100 percent. The percentage represents + the JPEG compression level where a lower number diminishes + quality and provides higher compression. See + . + + + + + + Teleporting Settings + + + The following options enable you to configure a machine as a + teleporting target. See and the + teleporting related entries in . + + + + + + Enables or disables the teleporter. When enabled, a + machine starts up and waits to receive a teleporting + request from the network instead of booting normally. + + Teleporting requests are received on the port and address + specified using the following parameters. + + + + + + Specifies the port on which the VM listens to receive a + teleporting request from another VM. + port is any free TCP/IP port + number, such as 6000. You must also + specify the option. + + + + + + Specifies the IP address on which the VM listens to + receive a teleporting request from another VM. + IP-address is any IP address or + host name and specifies the TCP/IP socket on which to + bind. The default IP address is + 0.0.0.0, which represents any IP + address. You must also specify the + option. + + + + + + Specifies the password to use for authentication. When + specified, the teleporting request only succeeds if the + password on the source machine is the same password as the + one you specify. + + + + + + Specifies a file that contains the password to use for + authentication. When specified, the teleporting request + only succeeds if the password on the source machine is the + same password as the one you specify in the password file. + A value of stdin reads the password + from standard input. + + + + + + + Restricts the virtual CPU capabilities that &product-name; + presents to the guest OS by using portability rules. Higher + integer values designate more restrictive behavior. The + default level of 0 indicates that all + virtualized features supported by the host are made available + to the guest. The value 3 supresses most + features. Values of 1 and 2 + represent restrictions in between. The behavior may change + depending on the product version. + + + + + + + Advanced users can use this setting before a teleporting + operation (in fact before starting the VM) to restrict the + virtual CPU capabilities that &product-name; presents to + the guest operating system. This must be run on both the + source and the target machines involved in teleporting and + will then modify what the guest sees when it executes the + CPUID machine instruction. This might help with misbehaving + applications that wrongly assume that certain CPU + capabilities are present. The meaning of the parameters + is hardware dependent. Refer to the AMD or Intel processor + documentation. + + The values of leaf, + subleaf (optional), + eax, ebx, + ecx and edx + are integers given in hexadecimal format, i.e. using a radix + (base) of 16 without requiring any prefix. + + + + + + + Removes an adjustment established with . + + + + + + + Removes all adjustments established with . + + + + + + Debugging Settings + + + Only use the following options to perform low-level VM + debugging. These options are for advanced users only. + + + + + + Enables or disables the trace buffer. Note that when + specified, the trace buffer consumes some memory and adds + overhead. + + + + + + Enables a tracing configuration that defines which group + of trace points are enabled. + + + + + + Enables or disables VM access to the trace buffer. The + default value is off, which disables + access. + + + + + + USB Card Reader Settings + + + The following options specify the access to a USB Card Reader by + the guest environment. A USB card reader can access data on + memory cards, such as CompactFlash (CF), Secure Digital (SD), + and MultiMediaCard (MMC). + + + + + + Enables or disables the USB card reader interface. + + + + + + Autostarting VMs During Host System Boot + + The following options enable you to configure the VM autostart + feature, which automatically starts the VM at host system + boot-up. You must do some host system configuration before you + can use this feature. See . + + + + + + + Enables or disables VM autostart at host system boot-up + for the specified users. + + + + + + Specifies the number of seconds after host system boot-up + to autostart the VM. + + + + + + Guest Debugging + + These options are for configuring the VMM for guest debugging. + + + + + + Selects the given debug stub provider. + + + + Selects the given I/O transport backend for the selected provider. + + + + Sets the path the debugger is accessible under, depends on the selected I/O transport. + + + + Sets the port the debugger is accessible under, depends on the selected I/O transport. + + + + + PCI Passthrough Settings + + The following options enable you to configure the PCI passthrough + feature, which currently is not available in &product-name;. It is + planned to bring this functionality back in the future. + + + + + + + Attaches the specified PCI network controller on the host + to the guest VM. You can optionally specify the PCI bus on + the guest VM on which to attach the controller. + + + + + + + Detaches the specified PCI network controller from the + attached PCI bus on the guest VM. + + + + + + + Testing (ValidationKit / Bootsector) + + These options are for configuring the testing functionality of the VMM + device and almost exclusively used by the bootsector testcases in the + ValidationKit. + + + + + + Enabled the testing functionality of the VMMDev. See VMMDevTesting.h for details. + + + + Enabled the MMIO region of the VMMDev testing feature. + + + + + This sets one of the 10 dword configuration values. The + idx must be in the range 0 thru 9. + The value is limited to 32 bits (dword). + + + + + + + + + Examples + + + The following command changes the description for the + ol7 VM. + +$ VBoxManage modifyvm ol7 --description "Oracle Linux 7 with UEK4" + + The following command enables VirtualBox Remote Display Protocol + (VRDP) support for the ol7 VM. + +$ VBoxManage modifyvm ol7 --vrde on + + + + See Also + + , + , + , + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-movevm.xml b/doc/manual/en_US/man_VBoxManage-movevm.xml new file mode 100644 index 00000000..df48144e --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-movevm.xml @@ -0,0 +1,113 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage movevm + + + + VBoxManage-movevm + 1 + + + + VBoxManage-movevm + move a virtual machine to a new location on the host system + &product-name; + + + + + + VBoxManage movevm + + uuid + vmname + + --type=basic + --folder=folder-name + + + + + Description + + The VBoxManage movevm command moves a virtual + machine (VM) to a new location on the host system. + + + When moved, all of the files that are associated with the VM, such + as settings files and disk image files, are moved to the new + location. The &product-name; configuration is updated + automatically. + + + + uuid|vmname + + Specifies the Universally Unique Identifier (UUID) or name + of the VM to move. + + + + + + Specifies the type of the move operation. So far + basic is the only recognized value and also + the default if not specified. + + + + + + Specifies a full path name or relative path name of the new + location on the host file system. Not specifying the option + or specifying the current location is allowed, and moves + disk images and other parts of the VM to this location if + they are currently in other locations. + + + + + + + Examples + + + The following command moves the ol7 VM to a + new location on the host system. + +$ VBoxManage movevm ol7 --folder "/home/testuser/vms" --type basic +0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +Machine has been successfully moved into /home/testuser/vms + + diff --git a/doc/manual/en_US/man_VBoxManage-natnetwork.xml b/doc/manual/en_US/man_VBoxManage-natnetwork.xml new file mode 100644 index 00000000..9b8e948e --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-natnetwork.xml @@ -0,0 +1,371 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage natnetwork + + + + VBoxManage-natnetwork + 1 + + + + VBoxManage-natnetwork + create, modify, and manage a NAT network + &product-name; + + + + + + VBoxManage natnetwork add + + --disable + --enable + + --netname=name + --network=network + --dhcp=on|off + --ipv6=on|off + --loopback-4=rule + --loopback-6=rule + --port-forward-4=rule + --port-forward-6=rule + + + + VBoxManage natnetwork list + filter-pattern + + + + VBoxManage natnetwork modify + --dhcp=on|off + + --disable + --enable + + --netname=name + --network=network + --ipv6=on|off + --loopback-4=rule + --loopback-6=rule + --port-forward-4=rule + --port-forward-6=rule + + + + VBoxManage natnetwork remove + --netname=name + + + + VBoxManage natnetwork start + --netname=name + + + + VBoxManage natnetwork stop + --netname=name + + + + + Description + + The VBoxManage natnetwork command enables you + to create, modify and manage a NAT network. + + + NAT networks use the Network Address Translation (NAT) service. + The service groups systems into a network and prevents external + systems from directly accessing the systems in the network. The + service also enables the systems in the network to communicate + with each other and with external systems by means of TCP and UDP + over IPv4 and IPv6. + + + A NAT service is attached to an internal network. For a VM to use + the NAT service, you must attach the VM to the internal network. + Specify the name of the internal network when you create the NAT + service. Note that the internal network is created if it does not + already exist. + + + Add a NAT Network Service + + + The VBoxManage natnetwork add command creates + a new internal network interface, and adds a NAT network + service. You must use this command before you can attach the VM + to the NAT network. + + + + + + Disables the NAT network service. + + + + + + Enables the NAT network service. + + + + + + Specifies the name of the new internal network interface + on the host OS. + + + + + + Specifies the static or DHCP network address and mask of + the NAT service interface. By default, this value + specifies the static network address. + + + + + + Enables or disables the DHCP server that you specify by + using the option. + + + + + + Enables or disables IPv6. By default, IPv6 is disabled and + IPv4 is enabled. + + + + + + Enables an IPv4 loopback interface by using the specified + rule. + + + + + + Enables an IPv6 loopback interface by using the specified + rule. + + + + + + Enables IPv4 port forwarding by using the rule specified + by rule. + + + + + + Enables IPv6 port forwarding by using the rule specified + by rule. + + + + + + Remove a NAT Network Service + + + The VBoxManage natnetwork remove command + removes the specified NAT network service. + + + + + + Specifies the name of the NAT network service to remove. + + + + + + Start a NAT Network Service + + + The VBoxManage natnetwork start command + starts a NAT network service and any associated DHCP server. + + + + + + Specifies the name of the NAT network service to start. + + + + + + Stop a NAT Network Service + + + The VBoxManage natnetwork stop command stops + a NAT network service and any associated DHCP server. + + + + + + Specifies the name of the NAT network service to stop. + + + + + + List All NAT Network Services + + + The VBoxManage natnetwork list command lists + all NAT network services. You can use a pattern to show a subset + of the NAT network services. + + + + filter-pattern + + Specifies an optional filtering pattern. + + + + + + Modify the Settings of a NAT Network Service + + + The VBoxManage natnetwork modify command + modifies the settings of an existing internal network interface. + + + + + + Disables the NAT network service. + + + + + + Enables the NAT network service. + + + + + + Specifies the name of the new internal network interface + on the host OS. + + + + + + Specifies the static or DHCP network address and mask of + the NAT service interface. By default, this value + specifies the static network address. + + + + + + Enables or disables the DHCP server that you specify by + using the option. + + + + + + Enables or disables IPv6. By default, IPv6 is disabled and + IPv4 is enabled. + + + + + + Enables an IPv4 loopback interface by using the specified + rule. + + + + + + Enables an IPv6 loopback interface by using the specified + rule. + + + + + + Enables IPv4 port forwarding by using the rule specified + by rule. + + + + + + Enables IPv6 port forwarding by using the rule specified + by rule. + + + + + + + + Examples + + + The following command shows how to create a NAT network for the + natnet1 internal network that uses the + 192.168.15.0/24 network address and mask of the + NAT service interface. In this static configuration, the gateway + is assigned the 192.168.15.1 IP address by + default. Note that this IP address is the next address after the + network address that you specify with the + option. + +$ VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable + + The following command shows how to add a DHCP server to the + natnet1 NAT network after creation: + +$ VBoxManage natnetwork modify --netname natnet1 --dhcp on + + diff --git a/doc/manual/en_US/man_VBoxManage-registervm.xml b/doc/manual/en_US/man_VBoxManage-registervm.xml new file mode 100644 index 00000000..68309bfc --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-registervm.xml @@ -0,0 +1,114 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage registervm + + + + VBoxManage-registervm + 1 + + + + VBoxManage-registervm + register a virtual machine + &product-name; + + + + + + VBoxManage registervm + filename + --password file + + + + + Description + + The VBoxManage registervm command enables you + to create a virtual machine (VM) by importing an XML machine + configuration file into &product-name;. The VM cannot have the + same UUID as a VM that is already registered in &product-name;. + Ensure that the XML machine configuration file is in the machines + folder prior to registration. + + + + When you use the VBoxManage createvm command + to create a VM, you can specify the + option to register the VM. + + + + + filename + + Specifies the XML machine configuration file. This file has + the .vbox file extension. + + + + + + + Use the to supply the encryption + password of the VM. Either specify the absolute pathname of a + password file on the host operating system, or - + to prompt you for the password on the command line. + + + + + + + + Examples + + + The following command registers a VM called + vm2. The XML machine configuration file for the + VM is located in the default machines folder. + +$ VBoxManage registervm "/home/user/VirtualBox VMs/vm2/vm2.vbox" + + + + See Also + + , + + + + diff --git a/doc/manual/en_US/man_VBoxManage-setextradata.xml b/doc/manual/en_US/man_VBoxManage-setextradata.xml new file mode 100644 index 00000000..b637fdaf --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-setextradata.xml @@ -0,0 +1,123 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage setextradata + + + + VBoxManage-setextradata + 1 + + + + VBoxManage-setextradata + set a keyword value that is associated with a virtual machine or + configuration + &product-name; + + + + + + VBoxManage setextradata + + global + uuid + vmname + + keyword + value + + + + + Description + + The VBoxManage setextradata command enables you + to set a keyword value that is associated with a virtual machine + (VM) or with an &product-name; configuration. + + + + global + + Sets information about the configuration rather than a VM. + + + + uuid|vmname + + Specifies the Universally Unique Identifier (UUID) or name + of the VM. + + + + keyword + + Specifies the keyword for which to set its value. + + + + value + + Specifies the keyword value. Specifying no value removes the + keyword. + + + + + + + Examples + + + The following command sets the installdate + keyword value for the Fedora5 VM to + 2019.01.01: + +$ VBoxManage setextradata Fedora5 installdate 2019.01.01 + + The following command unsets the value of the + installdate keyword for the + Fedora5 VM: + +$ VBoxManage setextradata Fedora5 installdate + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-setproperty.xml b/doc/manual/en_US/man_VBoxManage-setproperty.xml new file mode 100644 index 00000000..7402c46a --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-setproperty.xml @@ -0,0 +1,230 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage setproperty + + + + VBoxManage-setproperty + 1 + + + + VBoxManage-setproperty + change global settings + &product-name; + + + + + + VBoxManage setproperty + property-name + property-value + + + + + Description + + The VBoxManage setproperty command enables you + to change global settings that affect the entire &product-name; + installation. Some of these settings correspond to the settings in + the Preferences dialog in the + VirtualBox Manager. + + + The following properties are available: + + + + autostartdbpath + + Specifies the path to the autostart database. Valid values + are null, which disables the autostart + database, or the name of the folder that contains the + database. See . + + + + defaultfrontend + + Specifies the global default VM frontend. Valid values are + default, which specifies the default + frontend, or the name of the frontend to use. + + + + hwvirtexclusive + + Specifies whether &product-name; makes exclusive use of the + Intel VT-x or AMD-V hardware virtualization extensions of + the host system's processor. See . + + Valid values are as follows: + + + on enables &product-name; to make + exclusive use of these extensions. This is the default + value. + + + off shares these extensions with + other hypervisors that run simultaneously. Note that + disabling this setting has negative performance + implications. + + + + + language + + Specifies the user language used to translate API messages. + Valid values are C, which means no + translation or language code in form either ll + or ll_CC, where ll is + language 2 letters code in lower case and + CC is country 2 letter code in upper case. + + + + logginglevel + + Specifies the VBoxSVC release logging details. See + . + + + + loghistorycount + + Specifies the number of rotated VM logs to retain. + + + + machinefolder + + Specifies the default folder in which virtual machine (VM) + definitions are stored. Valid values are + default, which specifies the default + storage folder, or the name of the folder to use. See + . + + + + proxymode + + Configures the mode for an HTTP proxy server. Valid values + are as follows: + + + manual + + Configure the URL of a HTTP proxy server manually, + using the proxyurl property value. + + + + noproxy + + Do not use an HTTP proxy server. A direct connection + to the Internet is used. + + + + system + + Detect the proxy settings automatically for the host + network. This is the default value. + + + + + + proxyurl + + Specifies the URL for an HTTP proxy server when you specify + a manual proxy by setting the proxymode + property to manual. + + + + vrdeauthlibrary + + Specifies which library to use when external authentication + has been configured for a particular VM. Valid values are + default, which specifies the default + library, or the name of the library to use. See + . + + + + vrdeextpack + + Specifies the library that implements the VirtualBox Remote + Desktop Extension (RDE). Valid values are + null, which disables the RDE, or the name + of the library to use. + + + + websrvauthlibrary + + Specifies which library the web service uses to authenticate + users. Valid values are default, which + specifies the default library, null, + which disables authentication, or the name of the library to + use. For information about the &product-name; web service, + see . + + + + + + + Examples + + + The following command configures &product-name; to use the + specified HTTP proxy server. + +$ VBoxManage setproperty proxymode manual +$ VBoxManage setproperty proxyurl "http://myproxy.com:8080" + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-sharedfolder.xml b/doc/manual/en_US/man_VBoxManage-sharedfolder.xml new file mode 100644 index 00000000..d7adcf5e --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-sharedfolder.xml @@ -0,0 +1,212 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage sharedfolder + + + + VBoxManage-sharedfolder + 1 + + + + VBoxManage-sharedfolder + add and remove shared folders + &product-name; + + + + + + VBoxManage sharedfolder add + + uuid + vmname + + --name=name + --hostpath=hostpath + --readonly + --transient + --automount + --auto-mount-point=path + + + + VBoxManage sharedfolder remove + + uuid + vmname + + --name=name + --transient + + + + + Description + + Shared folders enable you to share data between the host system + and guests. To use shared folders, you must first install the + &product-name; Guest Additions software on the guest OS. + + + The shared folder is associated with a share name and the full + path name of the folder or directory on the host system. The share + name is a unique name within the namespace of the host OS. + + + Add a Shared Folder + + + The VBoxManage sharedfolder add command + creates a shared folder. The folder you specify is on the host + computer. When configured, the contents of the folder on the + host system can be shared with the guest OS. + + + + uuid|vmname + + Specifies the name or UUID of the guest VM that shares a + folder with the host system. + + + + --name=name + + Specifies the name of the share, which is a unique name + within the namespace of the host OS. + + + + --hostpath=hostpath + + Specifies the absolute path of the folder or directory on + the host OS to share with the guest OS. + + + + --readonly + + Specifies that the share has only read-only access to + files at the host path. + + By default, shared folders have read-write access to the + files at the host path. However on Linux distributions, + shared folders are mounted with 770 file permissions with + the root user and the + vboxsf group. By using this option, the + file permissions become 700. + + + + --transient + + Specifies that the share is transient, which means that it + can be added and removed at runtime and does not persist + after the VM stops. + + + + --automount + + Specifies that the share is automatically mounted. + + + + --auto-mount-point=path + + Specifies the mount point of the share. This guest OS specific. + + For Windows and OS/2 guest this must be an unused drive letter. + If left blank (or if the drive letter is already in use), the + last unused drive letter is used instead (i.e. searching from + Z: thru A:). + + For Linux, Solaris and other unix guest, it must be an absolute + path like /mnt/mysharedfolder. If left + empty the default location is + /media/sf_sharename. + + + + + + Remove a Shared Folder + + + The VBoxManage sharedfolder remove command + removes a shared folder. + + + + uuid|vmname + + Specifies the name or UUID of the guest VM that shares a + folder with the host system. + + + + --name=name + + Specifies the name of the share to remove. + + + + --transient + + Specifies that the share is transient, which means that it + can be added and removed at runtime and does not persist + after the VM stops. + + + + + + + + Examples + + + The following command creates a shared folder called + o7share for the ol7 VM. + The share is mounted automatically when the VM is started. + +$ VBoxManage sharedfolder add ol7 --name ol7share --hostpath "/home/user/ol7share" --automount + + The following command removes the shared folder called + o7share for the ol7 VM. + +$ VBoxManage sharedfolder remove ol7 --name ol7share + + diff --git a/doc/manual/en_US/man_VBoxManage-showmediuminfo.xml b/doc/manual/en_US/man_VBoxManage-showmediuminfo.xml new file mode 100644 index 00000000..93185043 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-showmediuminfo.xml @@ -0,0 +1,142 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage showmediuminfo + + + + VBoxManage-showmediuminfo + 1 + + + + VBoxManage-showmediuminfo + show information about a medium + &product-name; + + + + + + VBoxManage showmediuminfo + + disk + dvd + floppy + + + uuid + filename + + + + + + Description + + The VBoxManage showmediuminfo command shows the + following information about a medium: + + + + Size + + + Size on disk + + + Type + + + In use by virtual machines (VMs) + + + + The medium must be specified either by its UUID, if the medium is + registered, or by its filename. Registered images can be listed + using VBoxManage list hdds, VBoxManage + list dvds, or VBoxManage list + floppies, as appropriate. + + + For backward compatibility, you can also use the + showvdiinfo command to obtain information about + the medium. + + + + disk | dvd | floppy + + Specifies the type of medium. Valid values are + disk (hard drive), + dvd, or floppy. + + + + uuid | filename + + Specifies the Universally Unique Identifier (UUID) or + absolute path name of the medium or image. + + If the medium is registered, you can specify the UUID. You + can also list registered images by using the + VBoxManage list hdds, VBoxManage + list dvds, or VBoxManage list + floppies command. + + + + + + + Examples + + + The following command shows information about the + disk01.vdi disk image: + +$ VBoxManage showmediuminfo disk01.vdi + + The following command shows information about the + floppy01.img floppy disk image. + +$ VBoxManage showmediuminfo floppy floppy01.img + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-showvminfo.xml b/doc/manual/en_US/man_VBoxManage-showvminfo.xml new file mode 100644 index 00000000..cb17c92f --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-showvminfo.xml @@ -0,0 +1,221 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage showvminfo + + + + VBoxManage-showvminfo + 1 + + + + VBoxManage-showvminfo + show configuration information or log file contents for a virtual + machine + &product-name; + + + + + + VBoxManage showvminfo + + uuid + vmname + + --details + --machinereadable + --password-id + --password + + + + VBoxManage showvminfo + + uuid + vmname + + --log=index + --password-id id + --password file|- + + + + + Description + + The VBoxManage showvminfo command outputs + configuration information or log file contents for a specified + virtual machine (VM). + + + Viewing Virtual Machine Information + + + The VBoxManage showvminfo command outputs + information about the specified VM in a detailed format or in a + machine-readable format. + + + The VBoxManage showvminfo command shows the + same information for the specified VM in the same format as the + VBoxManage list vms --long command. + + + + + + Includes detailed information about the VM. + + + + + + Specifies that the VM information be in a machine-readable + format. + + + + + + Specifies password id of the VM if it is encrypted. + + + + + + Specifies password of the VM if it is encrypted. Either + specify the absolute pathname of a password file on the + host operating system, or - to prompt + you for the password. + + + + + + Viewing Virtual Machine Log Contents + + + The VBoxManage showvminfo --log command + outputs the contents of one of the specified VM's log files. + + + + + + Specifies a numerical index that identifies the log file. + + The index value starts at 0, which + indicates the VBox.log file. An index + value of 1 indicates the + VBoxHardening.log file. Index values + starting at 2 indicate other log files, + such as the VBox.log.1 file. + + + + + + Specifies password id of the VM if it is encrypted. + + + + + + Specifies password of the VM if it is encrypted. Either + specify the absolute pathname of a password file on the + host operating system, or - to prompt + you for the password. + + + + + + + + Examples + + + The following example shows typical output for this command: + +$ VBoxManage showvminfo "Windows 10" +VirtualBox Command Line Management Interface Version version-number +Copyright (C) 2005-2022 Oracle and/or its affiliates + +Name: Windows 10 +Groups: / +Guest OS: Windows 10 (64-bit) +UUID: 1bf3464d-57c6-4d49-92a9-a5cc3816b7e7 +Config file: /home/username/VirtualBox VMs/Windows 10/Windows 10.vbox +Snapshot folder: /home/username/VirtualBox VMs/Windows 10/Snapshots +Log folder: /home/username/VirtualBox VMs/Windows 10/Logs +Hardware UUID: 1bf3464d-57c6-4d49-92a9-a5cc3816b7e7 +Memory size: 2048MB +Page Fusion: off +VRAM size: 12MB +CPU exec cap: 100% +... + + The following example shows the information output in a + machine-readable format, which shows the entries as a + property=value + string: + +$ VBoxManage showvminfo "Windows 10" --machinereadable +... +groups="/" +ostype="Windows 10 (64-bit)" +UUID="1bf3464d-57c6-4d49-92a9-a5cc3816b7e7" +... + + The following example shows the contents of the + VBox.log log file: + +$ VBoxManage showvminfo "Windows 10" --log 0 +00:00:02.895106 VirtualBox VM 6.0.0_RC1 r127378 linux.amd64 (Dec 10 2018 17:16:06) release log +00:00:02.895109 Log opened 2018-12-14T14:31:44.088259000Z +00:00:02.895111 Build Type: release +00:00:02.895115 OS Product: Linux +00:00:02.895117 OS Release: 4.1.12-61.1.22.el7uek.x86_64 +00:00:02.895119 OS Version: #2 SMP Fri Dec 2 09:28:44 PST 2016 +... + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-signova.xml b/doc/manual/en_US/man_VBoxManage-signova.xml new file mode 100644 index 00000000..fcaa8629 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-signova.xml @@ -0,0 +1,144 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage signova + + + + VBoxManage-signova + 1 + + + + VBoxManage-signova + Digitally sign an OVA + &product-name; + + + + + + VBoxManage signova + ova + --certificate=file + --private-key=file + + --private-key-password-file=password-file + --private-key-password=password + + --digest-type=type + + --pkcs7 + --no-pkcs7 + + --intermediate-cert=file + --force + --verbose + --quiet + --dry-run + + + + + Description + + The VBoxManage signova command adds a digital + signature to an OVA file. + + + + + ova + The OVA file to sign. + + + + File containing the certificate that the OVA should be + signed with. This can either be in PEM format (base64) or DER (binary), + the command will detect which. + + + + The file containing the private key. This can either be + in PEM (base64) or DER (binary) format, the command will detect + which. + + + + File containing the private key password. + + + + The private key password. + + + + + Select the cryptographic digest algorithm to use in the + signing. Possible values: SHA-256 (default), SHA-512 and SHA-1. + Some older versions of OVFTool and other VMware produces may + require to accept the OVA. + + + + , + Enables or disables the creation of an additional + PKCS#7/CMS signature. This is enabled by default. + + + + File containing an intermediary certificate that should be + included in the optional PKCS#7/CMS signature. Like the others, the file can + either be in PEM or DER format. This option can be repeated to add + multiple intermediate certificates. This option implies the + option. + + + + Overwrite existing signature if present. The default + behaviour is to fail if the OVA is already signed. + + + + Do not actually modify the OVA, just test-run the signing operation. + + + , , , + Controls the verbositity of the command execution. The + option can be used multiple times to get more output. + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-snapshot.xml b/doc/manual/en_US/man_VBoxManage-snapshot.xml new file mode 100644 index 00000000..0e6b43f2 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-snapshot.xml @@ -0,0 +1,403 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage snapshot + + + + VBoxManage-snapshot + 1 + + + + VBoxManage-snapshot + manage virtual machine snapshots + &product-name; + + + + + + VBoxManage snapshot + uuid|vmname + + + + VBoxManage snapshot + uuid|vmname + + take + + snapshot-name + + --description=description + + --live + + --uniquename Number,Timestamp,Space,Force + + + + VBoxManage snapshot + uuid|vmname + + delete + + snapshot-name + + + + VBoxManage snapshot + uuid|vmname + + restore + + snapshot-name + + + + VBoxManage snapshot + uuid|vmname + + restorecurrent + + + + VBoxManage snapshot + uuid|vmname + + edit + + + snapshot-name + --current + + + --description=description + + --name=new-name + + + + VBoxManage snapshot + uuid|vmname + + list + + --details--machinereadable + + + + VBoxManage snapshot + uuid|vmname + + showvminfo + + snapshot-name + + + + + Description + + The VBoxManage snapshot command manages + snapshots. + + + &product-name; uses the snapshot to capture the state of a virtual + machine (VM). You can later use the snapshot to revert to the + state described by the snapshot. + + + A snapshot is a complete copy of a VM's settings. If you take the + snapshot while the VM is running, the snapshot also includes the + VM's state file. + + + After you take a snapshot, &product-name; creates a + differencing hard disk for each normal hard + disk that is associated with the host machine. When you restore a + snapshot, &product-name; uses these differencing files to quickly + reset the contents of the VM's virtual hard disks. + + + For each VBoxManage snapshot command, you must + specify the name or the universal unique identifier (UUID) of the + VM for which you want to take a snapshot. + + + General Command Operand + + + uuid|vmname + + Specifies the UUID or name of the VM. + + + + + + Take a Snapshot of a Virtual Machine + + + The VBoxManage snapshot take command takes a + snapshot of the current state of the VM. You must supply a name + for the snapshot and can optionally supply a description. The + new snapshot is inserted into the snapshots tree as a child of + the current snapshot and then becomes the new current snapshot. + + + + + + Specifies a description of the snapshot. + + + + + + Specifies that the VM is not stopped while you create the + snapshot. This operation is know as live snapshotting. + + + + + + TBD. + + What does this option do and how is it used? + + + + snapshot-name + + Specifies the name of the snapshot to create. + + + + + + Delete a Snapshot + + + The VBoxManage snapshot delete command + removes the specified snapshot. + + + The delete operation may take some time to finish. This is + because the differencing images that are associated with the + snapshot may need to be merged with their child differencing + images. + + + + snapshot-name + + Specifies the UUID or name of the snapshot. + + + + + + Restore a Snapshot + + + The VBoxManage snapshot restore command + restores the specified snapshot. This operation resets the VM's + settings and current state to that of the snapshot. The state of + the VM on which you restore a snapshot is lost. When restored, + the specified snapshot becomes the new current snapshot and + subsequent snapshots are children of that snapshot. + + + + snapshot-name + + Specifies the UUID or name of the snapshot. + + + + + + Restore the Current Snapshot + + + The VBoxManage snapshot restorecurrent + command restores the current snapshot. The current snapshot is + the one from which the current state is derived. This command is + equivalent to using the VBoxManage snapshot + restore command and specifying the name or UUID of the + current snapshot. + + + + Change the Name or Description of an Existing Snapshot + + + The VBoxManage snapshot edit command enables + you to change the name or the description of a specified + snapshot. + + + + snapshot-name + + Specifies the UUID or name of the snapshot to edit. + + This option is mutually exclusive with the + option. + + + + + + Specifies that you update the current version of the + snapshot. + + This option is mutually exclusive with a specific snapshot + name or its UUID. + + + + + + Specifies a new description for the snapshot. + + + + + + Specifies a new name for the snapshot. + + + + + + List the Snapshots + + + The VBoxManage snapshot list command lists + all the snapshots for a VM. + + + + + + Specifies that the output shows detailed information about + the snapshot. + + This option is mutually exclusive with the + option. + + + + + + Specifies that the output is shown in a machine-readable + format. + + This option is mutually exclusive with the + option. + + + + + + Show Information About a Snapshot's Settings + + + The VBoxManage snapshot showvminfo command + enables you to view the VM settings that are part of an existing + snapshot. + + + + snapshot-name + + Specifies the UUID or name of the snapshot. + + + + + + + + Examples + + + The following command creates a snapshot of the + ol7u4 VM. The snapshot is called + ol7u4-snap-001. The command uses + the option to provide a description + of the snapshot contents. + + +$ VBoxManage snapshot ol7u4 take ol7u4-snap-001 \ +--description="Oracle Linux 7.4" + + + The following command lists the snapshots for the + ol7u4 VM. + + +$ VBoxManage snapshot ol7u4 list + + + The following command changes the description for the + ol7u4-snap-001 snapshot of the + ol7u4 VM. + + +$ VBoxManage snapshot ol7u4 edit ol7u4-snap-001 \ +--description="Oracle Linux 7.4 with UEK4 kernel" + + + The following command shows VM settings for the + ol7u1-snap-001 snapshot of the + ol7u4 VM. + + +$ VBoxManage snapshot ol7u4 showvminfo ol7u4-snap-001 +Name: ol7u4 +Groups: / +Guest OS: Oracle (64-bit) +UUID: 43349d78-2ab3-4cb8-978f-0e755cd98090 +Config file: C:\Users\user1\VirtualBox VMs\ol7u4\ol7u4.vbox +... +Snapshots: + + Name: ol7u4-snap-001 (UUID: 1cffc37d-5c37-4b86-b9c5-a0f157a55f43) + Description: Oracle Linux 7.4 with UEK4 kernel + + + diff --git a/doc/manual/en_US/man_VBoxManage-startvm.xml b/doc/manual/en_US/man_VBoxManage-startvm.xml new file mode 100644 index 00000000..0e729e2d --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-startvm.xml @@ -0,0 +1,195 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage startvm + + + + VBoxManage-startvm + 1 + + + + VBoxManage-startvm + start a virtual machine + &product-name; + + + + + + VBoxManage startvm + + uuid + vmname + + --putenv=name[=value] + --type= + gui + headless + sdl + separate + + --password file + --password-id password identifier + + + + + Description + + The VBoxManage startvm command starts an + &product-name; virtual machine (VM) that is in the Powered Off or + Saved state. + + + + uuid | vmname + + Specifies the name or Universally Unique Identifier (UUID) + of the VM. + + + + + + Assigns a value to an environment variable as a name-value + pair. For example, VBOX_DISABLE_HOST_DISK_CACHE=1. + + The short form of this option is . + + + + + + Specifies the frontend used to start the VM. + + You can use the VBoxManage setproperty + command to set a global default value for the frontend. + Alternatively, you can use the VBoxManage + modifyvm command to specify a default frontend + value for a specific VM. If neither a global or per-VM + default value is set and you do not specify the + option, then the VM opens in a + window on the host desktop. + + The option accepts the following + values: + + + gui + + Starts a VM in a graphical user interface (GUI) + window. This is the default. + + + + headless + + Starts a VM for remote display only. + + + + sdl + + Starts a VM using the VBoxSDL frontend. + + + + separate + + Starts a VM with a detachable user interface (UI), + which means that the VM runs headless with the UI in a + separate process. + + This is an experimental feature that lacks certain + functionality, such as 3D acceleration. + + + + + + + + + Use the to supply the encryption + password. Either specify the absolute pathname of a password file + on the host operating system, or - to prompt + you for the password on the command line. + + + + + + + + Use the option to specify the + id the password is supplied for. + + + + + + + If a VM fails to start with a particular frontend and the error + information is inconclusive, consider starting the VM directly + by running the frontend. This workaround might provide + additional error information. + + + + + + Examples + + + The following command starts the ol7u6 VM: + +$ VBoxManage startvm ol7u6 + + The following command starts the + ol7u6-mininstall VM in headless mode. + +$ VBoxManage startvm ol7u6-mininstall --type headless + + + + See Also + + + , + , + . + + + diff --git a/doc/manual/en_US/man_VBoxManage-storageattach.xml b/doc/manual/en_US/man_VBoxManage-storageattach.xml new file mode 100644 index 00000000..d61e3308 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-storageattach.xml @@ -0,0 +1,549 @@ + + + + +%all.entities; +]> + + + August 2019 + VBoxManage storageattach + + + + VBoxManage-storageattach + 1 + + + + VBoxManage-storageattach + attach, remove, and modify storage media used by a virtual machine + &product-name; + + + + + + VBoxManage storageattach + + uuid + vmname + + --storagectl=name + --bandwidthgroup= + name + none + + --comment=text + --device=number + --discard= + on + off + + --encodedlun=lun + --forceunmount + --hotpluggable= + on + off + + --initiator=initiator + --intnet + --lun=lun + --medium= + none + emptydrive + additions + uuid + filename + host:drive + iscsi + + --mtype= + normal + writethrough + immutable + shareable + readonly + multiattach + + --nonrotational= + on + off + + --passthrough= + on + off + + --passwordfile=file + --password=password + --port=number + --server= + name + ip + + --setparentuuid=uuid + --setuuid=uuid + --target=target + --tempeject= + on + off + + --tport=port + --type= + dvddrive + fdd + hdd + + --username=username + + + + + Description + + The VBoxManage storageattach command enables + you to manage a storage medium that you connected to a storage + controller by using the VBoxManage storagectl + command. + + + + uuid | vmname + + Specifies the Universally Unique Identifier (UUID) or the + name of the virtual machine (VM). + + + + + + Specifies the name of the storage controller. Use the + VBoxManage showvminfo command to list the + storage controllers that are attached to the VM. + + + + + + Specifies the port number of the storage controller to + modify. You must specify this option unless the storage + controller has only a single port. + + + + + + Specifies the port's device number to modify. You must + specify this option unless the storage controller has only + one device per port. + + + + + + Specifies the drive type to which the medium is associated. + Only omit this option if the medium type can be determined + by using the option or by + information provided by an earlier medium attachment + command. + + + + + + Specifies one of the following values: + + + none + + Removes any existing device from the specified slot. + + + + emptydrive + + For a virtual DVD or floppy drive only. + + Makes the device slot behave like a removeable drive + into which no media has been inserted. + + + + additions + + For a virtual DVD drive only. + + Attaches the VirtualBox Guest Additions image to the + specified device slot. + + + + uuid + + Specifies the UUID of a storage medium to attach to + the specified device slot. The storage medium must + already be known to &product-name;, such as a storage + medium that is attached to another VM. Use the + VBoxManage list command to list + media. + + + + filename + + Specifies the full path of an existing disk image to + attach to the specified device slot. The disk image + can be in ISO, RAW, VDI, VMDK, or other format. + + + + host:drive + + For a virtual DVD or floppy drive only. + + Connects the specified device slot to the specified + DVD or floppy drive on the host computer. + + + + iscsi + + For virtual hard disks only. + + Specifies an iSCSI target for which you must specify + additional information. See + . + + + + For removeable media such as floppies and DVDs, you can make + configuration changes while a VM is running. Changes to + devices or hard disk device slots require that the VM be + powered off. + + + + + + Specifies how this medium behaves with respect to snapshots + and write operations. See . + + + + + + Specifies an optional description to store with the medium. + + + + + + Modifies the UUID of a medium before attaching it to a VM. + + This is an expert option. Inappropriate values might make + the medium unusable or lead to broken VM configurations if + another VM already refers to the same medium. + + Using the option + assigns a new random UUID to an image, which can resolve + duplicate UUID errors if you used a file copy utility to + duplicate an image. + + + + + + Modifies the parent UUID of a medium before attaching it to + a VM. + + This is an expert option. Inappropriate values might make + the medium unusable or lead to broken VM configurations if + another VM already refers to the same medium. + + + + + + For a virtual DVD drive only. + + Enables writing to a DVD. This feature is experimental, see + . + + + + + + For a virtual DVD drive only. + + Specifies whether to permit a temporary guest-triggered + medium eject operation. When set to on, + you can eject a medium. The ability for a guest-triggered + eject operation does not persist if the VM is powered off + and restarted. So, when you set this option to + on and the VM is restarted, the + originally configured medium is still in the drive. + + + + + + Enables you to specify that the virtual hard disk is + non-rotational. Some guest OSes, such as Windows 7 or later, + treat such disks as solid state drives (SSDs) and do not + perform disk fragmentation on them. + + + + + + Specifies whether to enable the auto-discard feature for a + virtual hard disk. When set to on, a VDI + image is shrunk in response to a trim + command from the guest OS. + + The virtual hard disk must meet the following requirements: + + + The disk format must be VDI. + + + The size of the cleared area of the disk must be at + least 1 MB. + + + Ensure that the space being trimmed is at least a 1 MB + contiguous block at a 1 MB boundary. + + + Consider running defragmentation commands as background cron + jobs to save space. On Windows, run the defrag.exe + /D command. On Linux, run the btrfs + filesystem defrag command. + + + When you configure the guest OS to issue the + trim command, the guest OS typically + sees the disk as an SSD. + + + Ext4 supports the mount + option. Mac OS X might require additional settings. + Windows 7, 8, and 10 automatically detect and support + SSDs. The Linux exFAT driver from + Samsung supports the trim command. + + + The Microsoft implementation of exFAT might not support this + feature. + + You can use other methods to issue trim commands. The Linux + fstrim command is part of the + util-linux package. Earlier solutions + required you to zero out unused areas by using the + zerofree or a similar command, and then + to compact the disk. You can only perform these steps when + the VM is offline. + + + + + + Specifies the bandwidth group to use for the device. See + . + + + + + + For a virtual DVD or floppy drive only. + + Forcibly unmounts the DVD, CD, or floppy or mounts a new + DVD, CD, or floppy even if the previous removable storage is + locked by the guest for reading. See + . + + + + + The following options are applicable when you specify the + option: + + + + + + Specifies the host name or IP address of the iSCSI target. + + + + + + Specifies the target name string, which is determined by the + iSCSI target and is used to identify the storage resource. + + + + + + Specifies the TCP/IP port number of the iSCSI service on the + target. + + + + + + Specifies the logical unit number (LUN) of the target + resource. For a single disk drive, the value is zero. + + + + + + Specifies the hexadecimal-encoded of the target resource. + For a single disk drive, the value is zero. + + + + + + Specifies the user name to use for target authentication. + + + Unless you provide a settings password, the user name is + stored as clear text in the XML machine configuration + file. + + + + + + + Specifies the password used for target authentication. + + + Unless you provide a settings password, this password is + stored as clear text in the XML machine configuration + file. When you specify a settings password for the first + time, the target authentication password is stored in + encrypted form. + + + This design does not conform to Oracle's security + guidelines. You should not be able to specify a password on + the command line because the password can be seen in a + process listing. + + + + + + Specifies a file that contains the target authentication + password as clear text. + + + Use permission and ownership settings to ensure that the + contents of this file cannot be read by unauthorized + users. + + + + + + + Specifies the iSCSI initiator. + + The Microsoft iSCSI Initiator is a system, such as a server, + that attaches to an IP network and initiates requests and + receives responses from an iSCSI target. The SAN components + in the iSCSI initiator are largely analogous to Fibre + Channel SAN components, and they include the following: + + + iSCSI driver. + Transports blocks of iSCSI commands over the IP network. + This iSCSI driver is installed on the iSCSI host and is + included with the Microsoft iSCSI Initiator. + + + Gigabit Ethernet + adapter. Connects to an iSCSI target. Use an + Ethernet adapter that can transmit 1000 megabits per + second (Mbps). Like standard 10/100 adapters, most + gigabit adapters use a preexisting Category 5 or + Category 6E cable. Each port on the adapter is + identified by a unique IP address. + + + iSCSI target. Is any + device that receives iSCSI commands. The device can be + an end node such as a storage device, or it can be an + intermediate device such as a network bridge between IP + and Fibre Channel devices. Each port on the storage + array controller or network bridge is identified by one + or more IP addresses. + + + + + + + Specifies whether to connect to the iSCSI target that uses + internal networking. This configuration requires further + configuration. See . + + + + + + + Examples + + + The following command attaches the o7.vdi + disk image to the specified SATA storage controller on the + ol7 VM. + +$ storageattach ol7 --storagectl "SATA Controller" --port 0 --device 0 \ +--type hdd --medium /VirtualBox/ol7/ol7.vdi + + The following command attaches the + o7-r6-dvd.iso DVD image to the specified IDE + storage controller on the ol7 VM. + +$ VBoxManage storageattach ol7 --storagectl "IDE Controller" --port 0 --device 0 \ +--type dvddrive --medium ol7-r6-dvd.iso + + + + See Also + + , + , + + + + diff --git a/doc/manual/en_US/man_VBoxManage-storagectl.xml b/doc/manual/en_US/man_VBoxManage-storagectl.xml new file mode 100644 index 00000000..3b18a824 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-storagectl.xml @@ -0,0 +1,205 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage storagectl + + + + VBoxManage-storagectl + 1 + + + + VBoxManage-storagectl + manage a storage controller + &product-name; + + + + + + VBoxManage storagectl + + uuid + vmname + + --name=controller-name + --add= + floppy + ide + pcie + sas + sata + scsi + usb + + --controller= + BusLogic + I82078 + ICH6 + IntelAhci + LSILogic + LSILogicSAS + NVMe + PIIX3 + PIIX4 + USB + VirtIO + + --bootable= + on + off + + --hostiocache= + on + off + + --portcount=count + --remove + --rename=new-controller-name + + + + + Description + + The VBoxManage storagectl command enables you + to attach, modify, and remove a storage controller. After you + configure the storage controller, you can use the + VBoxManage storageattach command to attach + virtual media to the controller. + + + + uuid | vmname + + Specifies the Universally Unique Identifier (UUID) or name + of the virtual machine (VM). + + + + + + Specifies the name of the storage controller. + + + + + + Specifies the type of the system bus to which to connect the + storage controller. Valid values are + floppy, ide, + pcie, sas, + sata, scsi, and + usb. + + + + + + Specifies the chipset type to emulate for the specified + storage controller. Valid values are + BusLogic, I82078, + ICH6, IntelAHCI, + LSILogic, LSILogicSAS, + NVMe, PIIX3, + PIIX4, and USB. + + The default value varies, according to the type of storage + controller. + + + + + + Specifies the number of ports that the storage controller + supports. Valid values depend on the type of storage + controller. + + + + + + Specifies whether to use the host I/O cache for all disk + images attached to this storage controller. Valid values are + on and off. See + . + + + + + + Specifies whether this controller is bootable. Valid values + are on and off. + + + + + + Specifies a new name for the storage controller. + + + + + + Removes a storage controller from the VM configuration. + + + + + + + Examples + + + The following command creates a SATA storage controller called + sata01 and adds it to the + ol7 VM. The storage controller emulates the + IntelAHCI chipset. + +$ VBoxManage storagectl ol7 --name "sata01" --add sata --controller IntelAHCI + + The following command creates an IDE storage controller called + ide01 and adds it to the ol7 + VM. + +$ VBoxManage storagectl ol7 --name "ide01" --add ide + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-unattended.xml b/doc/manual/en_US/man_VBoxManage-unattended.xml new file mode 100644 index 00000000..14ee4d0a --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-unattended.xml @@ -0,0 +1,256 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage unattended + + + + VBoxManage-unattended + 1 + + + + VBoxManage-unattended + unattended guest OS installation + &product-name; + + + + + VBoxManage unattended detect + --iso=install-iso + --machine-readable + + + VBoxManage unattended install + uuid|vmname + --iso=install-iso + --user=login + --password=password + --password-file=file + --full-user-name=name + --key=product-key + --install-additions + --no-install-additions + --additions-iso=add-iso + --install-txs + --no-install-txs + --validation-kit-iso=testing-iso + --locale=ll_CC + --country=CC + --time-zone=tz + --hostname=fqdn + --package-selection-adjustment=keyword + --dry-run + --auxiliary-base-path=path + --image-index=number + --script-template=file + --post-install-template=file + --post-install-command=command + --extra-install-kernel-parameters=params + --language=lang + --start-vm=session-type + + + + + Description + + + unattended detect + + + Detects the guest operating system (OS) on the specified installation ISO + and displays the result. This can be used as input when creating a VM for + the ISO to be installed in. + + + + + The installation ISO to run the detection on. + + + + Produce output that is simpler to parse from a script. + + + + + + unattended install + + + Reconfigures the specified VM for installation and optionally starts it up. + + + + uuid|vmname + Either the UUID or the name (case sensitive) of a VM. + + + + The installation ISO to run the detection on. + + + + The login name. (default: vboxuser) + + + + + The login password. This is used for the user given by as well as the + root/administrator user. (default: changeme) + + + + + Alternative to for providing the password. Special filename + stdin can be used to read the password from standard input. + + + + The full user name. (default: --user) + + + + The guest OS product key. Not all guest OSes requires this. + + + , + Whether to install the VirtualBox guest additions. (default: --no-install-addations) + + + + + Path to the VirtualBox guest additions ISO. (default: installed/downloaded GAs) + + + , + + Whether to install the test execution service (TXS) from the VirtualBox ValidationKit. + This is useful when preparing VMs for testing or similar. (default: --no-install-txs) + + + + + Path to the VirtualBox ValidationKit ISO. This is required if + is specified. + + + + + The base locale specification for the guest, like en_US, de_CH, or nn_NO. (default: host or en_US) + + + + The two letter country code if it differs from the specified by . + + + + The time zone to set up the guest OS with. (default: host time zone or UTC) + + + + + The fully qualified domain name of the guest machine. + (default: vmname.myguest.virtualbox.org) + + + + + Adjustments to the guest OS packages/components selection. This can be specfied more than once. Currently + the only recognized keyword is minimal which triggers a minimal installation for + some of the guest OSes. + + + + Do not create any files or make any changes to the VM configuration. + + + + + Start the VM using the front end given by session-type. This is the same as + the option for the startvm command, but we have add + none for indicating that the VM should not be started. + (default: none) + + + + Advanced options: + + + + + The path prefix to the media related files generated for the installation. + (default: vm-config-dir/Unattended-vm-uuid-) + + + + Windows installation image index. (default: 1) + + + + The unattended installation script template. (default: IMachine::OSTypeId dependent) + + + + The post installation script template. (default: IMachine::OSTypeId dependent) + + + + + A single command to run after the installation is completed. The exact format and exactly + when this is run is guest OS installer dependent. + + + + + + List of extra linux kernel parameters to use during the installation. (default: IMachine::OSTypeId dependent) + + + + + + + Specifies the UI language for a Windows installation. The lang is + generally on the form {ll}-{CC}. See detectedOSLanguages results from VBoxManage unattended detect. + (default: detectedOSLanguages[0]) + + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-unregistervm.xml b/doc/manual/en_US/man_VBoxManage-unregistervm.xml new file mode 100644 index 00000000..4923c8f0 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-unregistervm.xml @@ -0,0 +1,132 @@ + + + + +%all.entities; +]> + + + $Date: 2023-01-10 07:35:56 +0100 (Tue, 10 Jan 2023) $ + VBoxManage unregistervm + + + + VBoxManage-unregistervm + 1 + + + + VBoxManage-unregistervm + unregister a virtual machine + &product-name; + + + + + + VBoxManage unregistervm + + uuid + vmname + + --delete + --delete-all + + + + + Description + + The VBoxManage unregistervm command unregisters + a virtual machine (VM). + + + + uuid|vmname + + Specifies the name or Universally Unique Identifier (UUID) + of the VM. + + + + + + Deletes the following files related to the VM automatically: + + + All hard disk image files, including differencing files. + + + All saved state files that the machine created, + including one for each snapshot. + + + XML VM machine definition file and its backups. + + + VM log files. + + + The empty directory associated with the unregistered VM. + + + + + + + Deletes the files described in the option, + as well as all DVDs and Floppy disks located in the VM folder and + attached only to this VM. + + + + + + + Examples + + + The following command unregisters a VM called + vm2. + +$ VBoxManage unregistervm vm2 + + The following command unregisters a VM called + vm3. All files associated with the VM are + deleted. + +$ VBoxManage unregistervm vm3 --delete +%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% + + + + See Also + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-updatecheck.xml b/doc/manual/en_US/man_VBoxManage-updatecheck.xml new file mode 100644 index 00000000..4f9cd981 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-updatecheck.xml @@ -0,0 +1,151 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage updatecheck + + + + VBoxManage-updatecheck + 1 + + + + VBoxManage-updatecheck + Checks for a newer version of VirtualBox + &product-name; + + + + + VBoxManage updatecheck perform + --machine-readable + + + VBoxManage updatecheck list + --machine-readable + + + VBoxManage updatecheck modify + + --disable + --enable + + --channel=stable | withbetas | all + --frequency=days + + + + + Description + + The updatecheck subcommand is used to check if a newer + version of VirtualBox is available. The two subcommand options of updatecheck + are used for modifying or viewing the settings associated with checking for a newer version + of VirtualBox. + + + updatecheck perform + + + Checks if a newer version of VirtualBox is available. + + + + Machine readable output. + + + + + + updatecheck list + + + Displays the current settings used for specifying when to check for a newer version of VirtualBox. + + + + Machine readable output. + + + + + + updatecheck modify + + + Modifies the settings used for specifying when to check for a newer version of VirtualBox. + + + + Enable the update check service. + + + Disable the update check service. + + + + The preferred release type used for determining whether a newer version of VirtualBox is available. The default is 'stable'. + + + + Checks for newer stable releases (maintenance and minor releases within the same major release) of VirtualBox. + + + + Checks for newer stable releases (maintenance and minor releases within the same major release) and major releases of VirtualBox. + + + + Checks for newer stable releases (maintenance and minor releases within the same major release), major releases, and beta releases of VirtualBox. + + + + + + + Specifies how often in days to check for a newer version of VirtualBox. + + + + Specifies the proxy mode to use. + + + + Specifies the proxy address to use. Set to empty string to clear proxy address. + + + + + + + diff --git a/doc/manual/en_US/man_VBoxManage-usbdevsource.xml b/doc/manual/en_US/man_VBoxManage-usbdevsource.xml new file mode 100644 index 00000000..be507201 --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-usbdevsource.xml @@ -0,0 +1,129 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage usbdevsource + + + + vboxmanage-usbdevsource + 1 + + + + vboxmanage-usbdevsource + add and remove USB device sources + &product-name; + + + + + VBoxManage usbdevsource add + source-name + --backend=backend + --address=address + + + + VBoxManage usbdevsource remove + source-name + + + + + Description + + The VBoxManage usbdevsource command adds a USB + device source and makes it available to the guests on the host + system. You can also use this command to remove the USB device + source. + + + Add a USB Device Source + + + The VBoxManage usbdevsource add command adds + a USB device source, which is available to all guests on the + host system. + + + + source-name + + Specifies a unique name for the USB device source. + + + + --address=address + + Specifies the address of the USB backend. + + + + --backend=backend + + Specifies the USB proxy service backend to use. + + For now only USBIP is supported to specify a remote + server using the USB/IP protocol. + + + + + + Remove a USB Device + + + The VBoxManage usbdevsource remove command + removes a USB device. + + + + source-name + + Specifies the name of the USB device source to remove. + + + + + + + + Examples + + + The following command adds a USB device server called + hostusb01. + +$ VBoxManage usbdevsource add hostusb01 --backend USBIP --address 10.0.1.16 + + diff --git a/doc/manual/en_US/man_VBoxManage-usbfilter.xml b/doc/manual/en_US/man_VBoxManage-usbfilter.xml new file mode 100644 index 00000000..2be29e1c --- /dev/null +++ b/doc/manual/en_US/man_VBoxManage-usbfilter.xml @@ -0,0 +1,324 @@ + + + + +%all.entities; +]> + + + $Date: 2023-01-11 13:15:45 +0100 (Wed, 11 Jan 2023) $ + VBoxManage usbfilter + + + + VBoxManage-usbfilter + 1 + + + + VBoxManage-usbfilter + manage USB filters + &product-name; + + + + + + VBoxManage usbfilter add + index,0-N + --target= + uuid + vmname + global + + --name=string + --action=ignore | hold + --active=yes | no + --vendorid=XXXX + --productid=XXXX + --revision=IIFF + --manufacturer=string + --product=string + --port=hex + --remote=yes | no + --serialnumber=string + --maskedinterfaces=XXXXXXXX + + + + VBoxManage usbfilter modify + index,0-N + --target= + uuid + vmname + global + + --name=string + --action=ignore | hold + --active=yes | no + --vendorid=XXXX | "" + --productid=XXXX | "" + --revision=IIFF | "" + --manufacturer=string | "" + --product=string | "" + --port=hex + --remote=yes | no + --serialnumber=string | "" + --maskedinterfaces=XXXXXXXX + + + + VBoxManage usbfilter remove + index,0-N + --target= + uuid + vmname + global + + + + + + Description + + The VBoxManage usbfilter command enables you to + manage USB filters for a specific virtual machine (VM), or global + USB filters that affect the entire &product-name; configuration. + + + Global filters are applied before VM-specific filters. This means + that you can use a global filter to prevent devices from being + captured by any VM. + + + Global filters are applied in a particular order. Only the first + filter that fits a device is applied. For example, the first + global filter makes a specific Kingston memory stick device + available while the second filter ignores all Kingston devices. + The result of applying these filters is that the specific Kingston + memory stick is made available to any machine that has the + appropriate filter, but no other Kingston devices are made + available. + + + Common Operand and Options + + + index,0-N + + Specifies a single integer that indicates the position of + the filter in the list. Zero (0) + represents the first position in the list. If a filter + already exists at the specified position, the existing + filter and any existing filters that follow are moved down + the list. Otherwise, the new filter is appended to the + list. + + + + + + Specifies whether to permit VMs access to devices that fit + the filter description (hold) or to + deny them access (ignore). This option + applies only to global filters. + + + + + + Specifies whether the USB filter is active or temporarily + disabled. Valid values are yes, which + activates the filter, and no, which + disables the filter. The default value is + yes. + + + + + + Specifies a manufacturer ID filter as a string. The + default value is an empty string (""). + + + + + + Specifies a masked interface filter that is used to hide + one or more USB interfaces from the guest. The value is a + bit mask where the set bits correspond to the USB + interfaces to hide, or mask off. This feature is supported + on Linux host systems only. + + + + + + Specifies the name of the filter. + + + + + + Specifies a hub port number filter as a string. The default + value is an empty string (""). + + + + + + Specifies a product ID filter as a string. The default + value is an empty string (""). + + + + + + Specifies a product ID filter. The string representation + for an exact match has the form + XXXX, where + X is a hexadecimal digit + including leading zeroes. The default value is an empty string + (""). + + + + + + Specifies a remote filter that indicates whether the + device is physically connected to a remote VRDE client or + to a local host system. This option applies to VM filters + only. The default value is an empty string + (""). + + Why is the default value an empty string when valid values + are yes or no? + + + + + + Specifies a revision ID filter. The string representation + for an exact match has the form + IIFF. + I is a decimal digit of the + integer part of the revision. F + is a decimal digit of its fractional part that includes + leading and trailing zeros. The default value is an empty + string (""). + + To specify a range of revision IDs, ensure that you use + the hexadecimal form so that the revision is stored as a + 16-bit packed BCD value. For example, the + int:0x0100-0x0199 expression matches + any revision from 1.0 to 1.99, inclusive. + + + + + + Specifies a serial number filter as a string. The default + value is an empty string (""). + + + + + + Specifies the VM that the filter is attached to. You can + specify the Universally Unique Identifier (UUID) or the + name of the VM. To apply the filter description to all + VMs, specify global. + + + + + + Specifies a vendor ID filter, which is a string + representation of a four-digit hexadecimal number. + X is the hexadecimal digit + including leading zeroes. The default value is an empty + string (""). + + + + + + Add a USB Filter or a Global Filter + + + Use the VBoxManage usbfilter add command to + create a new USB filter. + + + In addition, specify parameters by which to filter. You can use + the VBoxManage list usbhost command to view + the parameters for devices that are attached to your system. + + + + Modify a USB Filter or a Global Filter + + + Use the VBoxManage usbfilter modify command + to modify a USB filter. You can use the VBoxManage list + usbfilters command to list global filter indexes and + the VBoxManage showvminfo command to list + indexes for a specific machine. + + + + Remove a USB Filter or a Global Filter + + + Use the VBoxManage usbfilter remove command + to remove a USB filter entry. + + + + + + Examples + + + The following command lists the available USB devices on the host + system. + +$ VBoxManage list usbhost + + The following command adds a USB filter called + filter01 to the ol7 VM. + The filter specifies a Kingston DataTraveler memory stick and is + placed first in the list of USB filters for the VM. + +$ VBoxManage usbfilter add 0 --target ol7 --name filter01 --vendorid 0x0930 --productid 0x6545 + + The following command removes the USB filter that is second in the + list for the ol7 VM. + +$ VBoxManage usbfilter remove 1 --target ol7 + + diff --git a/doc/manual/en_US/man_vboximg-mount.xml b/doc/manual/en_US/man_vboximg-mount.xml new file mode 100644 index 00000000..58a5ae4c --- /dev/null +++ b/doc/manual/en_US/man_vboximg-mount.xml @@ -0,0 +1,409 @@ + + + + +%all.entities; +]> + + + November 2019 + vboximg-mount + + + + vboximg-mount + 1 + + + + vboximg-mount + FUSE mount a virtual disk image for Mac OS and Linux hosts + Oracle VM VirtualBox + + + + + + vboximg-mount + + -? + -h + --help + + + + + vboximg-mount + --image=image-UUID + --guest-filesystem + -o=FUSE-option[,FUSE-option] + --root + --rw + mountpoint + + + + vboximg-mount + --list + --image=image-UUID + --guest-filesystem + --verbose + --vm=vm-UUID + --wide + + + + + Description + + The vboximg-mount command enables you to make + &product-name; disk images available to a Mac OS or Linux host + operating system (OS) for privileged or non-priviliged access. You + can mount any version of the disk from its available history of + snapshots. Use this command to mount, view, and optionally modify + the contents of an &product-name; virtual disk image, and you can + also use this command to view information about registered virtual + machines (VMs). + + + This command uses the Filesystem in Userspace (FUSE) technology to + provide raw access to an &product-name; virtual disk image. + + + When you use the option to specify a base + image identifier, only the base image is mounted. Any related + snapshots are disregarded. Alternatively, if you use the + option to specify a snapshot, the state + of the FUSE-mounted virtual disk is synthesized from the implied + chain of snapshots, including the base image. + + + The vboximg-mount command includes experimental + read-only access to file systems inside a VM disk image. This + feature enables you to extract some files from the VM disk image + without starting the VM and without requiring third-party file + system drivers on the host system. &product-name; supports the + FAT, NTFS, ext2, ext3, + and ext4 file systems. + + + The virtual disk is exposed as a device node within a FUSE-based + file system that overlays the specified mount point. + + + The FUSE file system includes a directory that contains a number + of files. The file system can also contain a directory that + includes a symbolic link that has the same base name (see the + basename(1) man page) as the virtual disk base + image and points to the location of the virtual disk base image. + The directory can be of the following types: + + + + vhdd provides access to the raw disk + image data as a flat image + + + volID provides + access to an individual volume on the specified disk image + + + fsID provides + access to a supported file system without requiring a host + file system driver + + + + General Command Options + + + Use the following options to obtain information about the + vboximg-mount command and its options. + + + + , , or + + Shows usage information. + + + + + + Mounting an &product-name; Disk Image + + + Use the vboximg-mount command to mount an + &product-name; virtual disk image on a Mac OS or Linux host + system. When mounted, you can view the contents of the disk + image or modify the contents of the disk image. + + + You can use the vboximg-mount command to + restrict FUSE-based access to a subsection of the virtual disk. + + + + + + Specifies the Universally Unique Identifier (UUID), name, + or path of the &product-name; disk image. + + The short form of the option is + . + + + + + + Enables experimental read-only support for guest file + systems. When you specify this option, all known file + systems are made available to access. + + The short form of the + option is . + + + + + + Specifies FUSE mount options. + + The vboximg-mount command enables you + to use the FUSE mount options that are described in the + mount.fuse(8) man page. + + + + + + Overrides the security measure that restricts file access + to the file system owner by also granting file access to + the root user. + + Same as the option. See the + option description. + + This option is incompatible with the option. + + + + + + Mounts the specified image as read-write, which is + required if you want to modify its contents. By default, + images are mounted as read-only. + + + + mount-point + + Specifies the path name of a directory on which to mount + the &product-name; disk image. + + + + + + Viewing &product-name; Disk Image Information + + + Use the vboximg-mount command to view + information about registered VMs or an &product-name; virtual + disk image. + + + + + + Specifies the UUID, name, or path of the &product-name; + disk image. + + The short form of the option is + . + + + + + + Enables experimental read-only support for guest file + systems. When you specify this option, all known file + systems are made available to access. + + The short form of the + option is . + + + + + + Shows information about the disks that are associated with + the registered VMs. If you specify a disk image, this + option shows information about the partitions of the + specified image. + + When you specify the option, + the output includes detailed information about the VMs and + media, including snapshot images and file paths. + + The short form of the option is + . + + + + + + Shows or logs detailed information. + + The short form of the option is + . + + + + + + Outputs information about the VM that is associated with + the specified UUID. + + + + + + Outputs information in a wide format. This output includes + the lock state information of running VMs. For VMs that + are not running, the state is created. + + The wide output uses a tree-like structure in the VM + column to show the relationship between a VM base image + and its snapshots. + + + + + + + + Examples + + + The following example shows how to mount a virtual disk image on + the host operating system (OS). + +$ mkdir fuse_mount_point +$ vboximg-mount --image=b490e578-08be-4f7d-98e9-4c0ef0952377 fuse_mount_point +$ ls fuse_mount_point +ubu.vdi[32256:2053029880] vhdd +$ sudo mount fuse_mount_point/vhdd /mnt + + The mkdir command creates a mount point called + fuse_mount_point on the host OS. The + vboximg-mount command is then used to mount the + specified disk image on the fuse_mount_point + mount point. The mount includes all snapshots for the disk image. + + + The ls command shows the contents of + fuse_mount_point. The + mount command is then used to mount the + FUSE-mounted device node, vhdd, on the + /mnt mount point. The vhdd + device node represents the virtual disk image. + + + The following example shows how to make the known file systems of + the b490e578-08be-4f7d-98e9-4c0ef0952377 disk + image accessible when the image is mounted on the + fuse_mount_point mount point: + +$ vboximg-mount --image=b490e578-08be-4f7d-98e9-4c0ef0952377 \ +--guest-filesystem fuse_mount_point + + + The following command outputs detailed information about all + registered VMs and their snapshots: + +$ vboximg-mount --list --verbose + + The following command shows an excerpt of the list output in wide + format. + +$ vboximg-mount --list --wide + +VM Image Size Type State UUID (hierarchy) +------------------------------------------ ------------------------------------ +Proxy 0833f5bc-6304-42e1-b799-cdc81c576c60 + | + +- Proxy.vdi 4.8G VDI rlock d5f84afb-0794-4952-ab71-6bbcbee07737 + | +- <snapshot> 12.3G VDI rlock dffc67aa-3023-477f-8033-b27e3daf4f54 + | +- <snapshot> 8.8G VDI rlock 3b2755bd-5f2a-4171-98fe-647d510b6274 + | +- <snapshot> 14.6G VDI rlock e2ccdb5f-49e8-4123-8623-c61f363cc5cf + | +- <snapshot> 7.4G VDI wlock 3c1e6794-9091-4be3-9e80-11aba40c2649 + +------------------------------------------ ------------------------------------ +Oracle Linux 7 5365ab5f-470d-44c0-9863-dad532ee5905 + | + +- Oracle Linux 7.vdi 7.0G VDI created 96d2e92e-0d4e-46ab-a0f1-008fdbf997e7 + | +- <snapshot> 15.9G VDI created f9cc866a-9166-42e9-a503-bbfe9b7312e8 + | + +- kernel.vdi 11.1G VDI created 79a370bd-0c4f-480a-30bb-10cdea68423f + + + The output shows that the Proxy VM is running the fourth snapshot + of the Proxy.vdi virtual disk image. The + running state is indicated by the wlock value + in the State column. + + + The Oracle Linux 7 VM is not running. It has two images: + Oracle Linux 7.vdi and + kernel.vdi. The Oracle Linux + 7.vdi image has a snapshot. + + + The following command shows information about the VM with the + specified UUID: + + +$ vboximg-mount --list --vm=b1d5563b-2a5b-4013-89f1-26c81d6bbfa0 +----------------------------------------------------------------- +VM: ubu +UUID: b1d5563b-2a5b-4013-89f1-26c81d6bbfa0 + + Image: ubu.vdi + UUID: b490e578-08be-4f7d-98e9-4c0ef0952377 + + Snapshot: 35afe1e0-0a51-44f3-a228-caf172f3306f + Size: 12.1G + + Snapshot: 874279c1-4425-4282-ada8-a9c07c00bbf9 + Size: 13.6G + + Image: kernel.vdi + UUID: 79a370bd-6eb7-4dbf-8bc6-d29118f127e0 + + diff --git a/doc/manual/en_US/oracle-accessibility-ohc-en.xml b/doc/manual/en_US/oracle-accessibility-ohc-en.xml new file mode 100644 index 00000000..cdebe716 --- /dev/null +++ b/doc/manual/en_US/oracle-accessibility-ohc-en.xml @@ -0,0 +1,16 @@ + + +%all.entities; +]> + + Documentation Accessibility + For information about Oracle's commitment to accessibility, visit the Oracle Accessibility + Program website at . + For information about the accessibility of the Oracle Help Center, see the Oracle + Accessibility Conformance Report at . + diff --git a/doc/manual/en_US/oracle-diversity.xml b/doc/manual/en_US/oracle-diversity.xml new file mode 100644 index 00000000..99123727 --- /dev/null +++ b/doc/manual/en_US/oracle-diversity.xml @@ -0,0 +1,14 @@ + + + + Diversity and Inclusion + Oracle is fully committed to diversity and inclusion. Oracle respects and values having a + diverse workforce that increases thought leadership and innovation. As part of our + initiative to build a more inclusive culture that positively impacts our employees, + customers, and partners, we are working to remove insensitive terms from our products and + documentation. We are also mindful of the necessity to maintain compatibility with our + customers' existing technologies and the need to ensure continuity of service as Oracle's + offerings and industry standards evolve. Because of these technical constraints, our effort + to remove insensitive terms is ongoing and will take time and external cooperation. + diff --git a/doc/manual/en_US/oracle-support-en.xml b/doc/manual/en_US/oracle-support-en.xml new file mode 100644 index 00000000..09b64007 --- /dev/null +++ b/doc/manual/en_US/oracle-support-en.xml @@ -0,0 +1,27 @@ + + +%all.entities; +]> + + + + + Access to Oracle Support + + + Oracle customers that have purchased support have access to + electronic support through My Oracle Support. For information, visit + + + + http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info + or visit + http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs + if you are hearing impaired. + + + diff --git a/doc/manual/en_US/user_AdvancedTopics.xml b/doc/manual/en_US/user_AdvancedTopics.xml new file mode 100644 index 00000000..3069578c --- /dev/null +++ b/doc/manual/en_US/user_AdvancedTopics.xml @@ -0,0 +1,7676 @@ + + + +%all.entities; +]> + + + Advanced Topics + + + + Automated Guest Logins + + + &product-name; provides Guest Addition modules for Windows, Linux, + and Oracle Solaris to enable automated logins on the guest. + + + + When a guest operating system is running in a virtual machine, it + might be desirable to perform coordinated and automated logins + using credentials passed from the host. Credentials are user name, + password, and domain name, where each value might be empty. + + + + + Automated Windows Guest Logins + + + Windows provides a modular system login subsystem, called + Winlogon, which can be customized and extended by means of + so-called GINA (Graphical Identification and Authentication) + modules. In Windows Vista and later releases, the GINA modules + were replaced with a new mechanism called credential providers. + The &product-name; Guest Additions for Windows come with both, a + GINA and a credential provider module, and therefore enable any + Windows guest to perform automated logins. + + + + To activate the &product-name; GINA or credential provider + module, install the Guest Additions using the command line + switch . All the following + manual steps required for installing these modules will be then + done by the installer. + + + + To manually install the &product-name; GINA module, extract the + Guest Additions as shown in + , and copy the + VBoxGINA.dll file to the Windows + SYSTEM32 directory. In the registry, create + the following key with a value of + VBoxGINA.dll: + + +HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL + + + + The &product-name; GINA module is implemented as a wrapper + around the MSGINA.DLL standard Windows + GINA module. As a result, it might not work correctly with + third-party GINA modules. + + + + + To manually install the &product-name; credential provider + module, extract the Guest Additions as shown in + and copy the + VBoxCredProv.dll file to the Windows + SYSTEM32 directory. In the registry, create + the following keys: + + +HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ +Authentication\Credential Providers\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B} + +HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B} + +HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32 + + + All default values, the key named Default, + must be set to VBoxCredProv. + + + + Create the following string and assign it a value of + Apartment. + + +HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32\ThreadingModel + + + To set credentials, use the following command on a + running VM: + + +$ VBoxManage controlvm "Windows XP" setcredentials "John Doe" "secretpassword" "DOMTEST" + + + While the VM is running, the credentials can be queried by the + &product-name; login modules, GINA or credential provider, using + the &product-name; Guest Additions device driver. When Windows + is in logged out mode, the login modules + will constantly poll for credentials and if they are present, a + login will be attempted. After retrieving the credentials, the + login modules will erase them so that the above command will + have to be repeated for subsequent logins. + + + + For security reasons, credentials are not stored in any + persistent manner and will be lost when the VM is reset. Also, + the credentials are write-only. There is no way to retrieve the + credentials from the host side. Credentials can be reset from + the host side by setting empty values. + + + + Depending on the Windows guest version, the following + restrictions apply: + + + + + + + For Windows XP guests. The + login subsystem needs to be configured to use the classic + login dialog, as the &product-name; GINA module does not + support the Windows XP-style welcome dialog. + + + + + + Windows Vista, Windows 7, Windows 8, + and Windows 10 guests. The login subsystem does + not support the so-called Secure Attention Sequence, + Ctrl+Alt+Del. As a result, the guest's + group policy settings need to be changed to not use the + Secure Attention Sequence. Also, the user name given is only + compared to the true user name, not the user friendly name. + This means that when you rename a user, you still have to + supply the original user name as Windows never renames user + accounts internally. + + + + + + Automatic login handling of the built-in + Windows Remote Desktop + Service, formerly known as Terminal Services, is + disabled by default. To enable it, create the following + registry key with a DWORD value of + 1. + + +HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\VirtualBox Guest Additions\AutoLogon + + + + + + The following command forces &product-name; to keep the + credentials after they were read by the guest and on VM reset: + + +$ VBoxManage setextradata "Windows XP" VBoxInternal/Devices/VMMDev/0/Config/KeepCredentials 1 + + + Note that this is a potential security risk, as a malicious + application running on the guest could request this information + using the proper interface. + + + + + + + Automated Linux and UNIX Guest Logins + + + &product-name; provides a custom PAM module (Pluggable + Authentication Module) which can be used to perform automated + guest logins on platforms which support this framework. + Virtually all modern Linux and UNIX distributions rely on PAM. + + + + For automated logins on Ubuntu, or Ubuntu-derived, distributions + using LightDM as the display manager. See + . + + + + The pam_vbox.so module itself + does not do an actual verification of the + credentials passed to the guest OS. Instead it relies on other + modules such as pam_unix.so or + pam_unix2.so down in the PAM stack to do + the actual validation using the credentials retrieved by + pam_vbox.so. Therefore + pam_vbox.so has to be on top of the + authentication PAM service list. + + + + + The pam_vbox.so module only supports the + auth primitive. Other primitives such as + account, session, or + password are not supported. + + + + + The pam_vbox.so module is shipped as part + of the Guest Additions but it is not installed and/or activated + on the guest OS by default. In order to install it, it has to be + copied from + /opt/VBoxGuestAdditions-version/other/ + to the security modules directory. This is usually + /lib/security/ on 32-bit Linux guests or + /lib64/security/ on 64-bit Linux guests. + Please refer to your guest OS documentation for the correct PAM + module directory. + + + + For example, to use pam_vbox.so with a + Ubuntu Linux guest OS and the GNOME Desktop Manager (GDM) to log + in users automatically with the credentials passed by the host, + configure the guest OS as follows: + + + + + + + Copy the pam_vbox.so module to the + security modules directory. In this case, + /lib/security. + + + + + + Edit the PAM configuration file for GDM, found at + /etc/pam.d/gdm. Add the line + auth requisite pam_vbox.so at the top. + Additionally, in most Linux distributions there is a file + called /etc/pam.d/common-auth. This + file is included in many other services, like the GDM file + mentioned above. There you also have to add the line + auth requisite pam_vbox.so. + + + + + + If authentication against the shadow database using + pam_unix.so or + pam_unix2.so is desired, the argument + try_first_pass for + pam_unix.so or + use_first_pass for + pam_unix2.so is needed in order to pass + the credentials from the &product-name; module to the shadow + database authentication module. For Ubuntu, this needs to be + added to /etc/pam.d/common-auth, to the + end of the line referencing + pam_unix.so. This argument tells the + PAM module to use credentials already present in the stack, + such as the ones provided by the &product-name; PAM module. + + + + + + + + An incorrectly configured PAM stack can effectively prevent + you from logging into your guest system. + + + + + To make deployment easier, you can pass the argument + debug right after the + pam_vbox.so statement. Debug log output + will then be recorded using syslog. + + + + + By default, pam_vbox does not wait for + credentials to arrive from the host. When a login prompt is + shown, for example by GDM/KDM or the text console, and + pam_vbox does not yet have credentials it + does not wait until they arrive. Instead the next module in + the PAM stack, depending on the PAM configuration, will have + the chance for authentication. + + + + + pam_vbox supports various guest property + parameters that are located in + /VirtualBox/GuestAdd/PAM/. These parameters + allow pam_vbox to wait for credentials to be + provided by the host and optionally can show a message while + waiting for those. The following guest properties can be set: + + + + + + + CredsWait: Set to 1 if + pam_vbox should start waiting until + credentials arrive from the host. Until then no other + authentication methods such as manually logging in will be + available. If this property is empty or gets deleted no + waiting for credentials will be performed and + pam_vbox will act like before. This + property must be set read-only for the guest + (RDONLYGUEST). + + + + + + CredsWaitAbort: Aborts waiting for + credentials when set to any value. Can be set from host and + the guest. + + + + + + CredsWaitTimeout: Timeout, in seconds, to + let pam_vbox wait for credentials to + arrive. When no credentials arrive within this timeout, + authentication of pam_vbox will be set to + failed and the next PAM module in chain will be asked. If + this property is not specified, set to 0 or an invalid + value, an infinite timeout will be used. This property must + be set read-only for the guest + (RDONLYGUEST). + + + + + + + To customize pam_vbox further there are the + following guest properties: + + + + + + + CredsMsgWaiting: Custom message showed + while pam_vbox is waiting for credentials from the host. + This property must be set read-only for the guest + (RDONLYGUEST). + + + + + + CredsMsgWaitTimeout: Custom message + showed when waiting for credentials by + pam_vbox has timed out. For example, they + did not arrive within time. This property must be set + read-only for the guest (RDONLYGUEST). + + + + + + + + If a pam_vbox guest property does not have + the correct flag set (RDONLYGUEST) the + property is ignored and, depending on the property, a default + value will be used. This can result in pam_vbox not waiting + for credentials. Consult the appropriate syslog file for more + information and use the debug option. + + + + + + &product-name; Greeter for Ubuntu/LightDM + + + &product-name; comes with a greeter module, named + vbox-greeter, that can be used with + LightDM. LightDM is the default display manager for Ubuntu + Linux and therefore can also be used for automated guest + logins. + + + + vbox-greeter does not need the + pam_vbox module described in + in order to function. It comes + with its own authentication mechanism provided by LightDM. + However, to provide maximum flexibility both modules can be + used together on the same guest. + + + + As with the pam_vbox module, + vbox-greeter is shipped as part of the + Guest Additions but it is not installed or activated on the + guest OS by default. To install + vbox-greeter automatically upon Guest + Additions installation, use the + option when starting the + VBoxLinuxAdditions.run file: + + +# ./VBoxLinuxAdditions.run -- --with-autologon + + + For manual or postponed installation, copy the + vbox-greeter.desktop file from + /opt/VBoxGuestAdditions-<version>/other/ + to the xgreeters directory, which is + usually /usr/share/xgreeters/. See your + guest OS documentation for the name of the correct LightDM + greeter directory. + + + + The vbox-greeter module is installed by the + &product-name; Guest Additions installer and is located in + /usr/sbin/. To enable + vbox-greeter as the standard greeter + module, edit the file + /etc/lightdm/lightdm.conf as follows: + + +[SeatDefaults] +greeter-session=vbox-greeter + + + + + + + The LightDM server must be fully restarted in order for + vbox-greeter to be used as the + default greeter. As root on Ubuntu, + run service lightdm --full-restart or + restart the guest. + + + + + + vbox-greeter is independent of the + graphical session you choose, such as Gnome, KDE, or + Unity. However, vbox-greeter does + require FLTK 1.3 or later to implement its own user + interface. + + + + + + + + There are numerous guest properties which can be used to + further customize the login experience. For automatically + logging in users, the same guest properties apply as for + pam_vbox. See + . + + + + In addition to the previously mentioned guest properties, + vbox-greeter enables you to further + customize its user interface. The following guest properties + are located in the + /VirtualBox/GuestAdd/Greeter/ directory: + + + + + + + HideRestart: Set to 1 if + vbox-greeter should hide the button to + restart the guest. This property must be set read-only for + the guest (RDONLYGUEST). + + + + + + HideShutdown: Set to 1 if + vbox-greeter should hide the button to + shutdown the guest. This property must be set read-only + for the guest (RDONLYGUEST). + + + + + + BannerPath: Path to a + .PNG file to use as a banner image on + the top of the greeter. The image size must be 460 x 90 + pixels, any bit depth. This property must be set read-only + for the guest (RDONLYGUEST). + + + + + + UseTheming: Set to 1 for turning on the + following theming options. This property must be set + read-only for the guest (RDONLYGUEST). + + + + + + Theme/BackgroundColor: Hexadecimal + RRGGBB color for the background. This property must be set + read-only for the guest (RDONLYGUEST). + + + + + + Theme/LogonDialog/HeaderColor: + Hexadecimal RRGGBB foreground color for the header text. + This property must be set read-only for the guest + (RDONLYGUEST). + + + + + + Theme/LogonDialog/BackgroundColor: + Hexadecimal RRGGBB color for the login dialog background. + This property must be set read-only for the guest + (RDONLYGUEST). + + + + + + Theme/LogonDialog/ButtonColor: + Hexadecimal RRGGBB background color for the login dialog + button. This property must be set read-only for the guest + (RDONLYGUEST). + + + + + + + + The same restrictions for the guest properties above apply + as for the ones specified in the pam_vbox + section. + + + + + + + + + + + + Advanced Configuration for Windows Guests + + + + Automated Windows System Preparation + + + Microsoft offers a system preparation tool called Sysprep, to + prepare a Windows system for deployment or redistribution. Some + Windows releases include Sysprep on the installation medium, but + the tool is also available for download from the Microsoft web + site. In a standard For most Windows versions, Sysprep is + included in a default installation. Sysprep mainly consists of + an executable called sysprep.exe which is + invoked by the user to put the Windows installation into + preparation mode. + + + + The Guest Additions offer a way to launch a system preparation + on the guest operating system in an automated way, controlled + from the host system. See + for details of how to + use this feature with the special identifier + sysprep as the program to execute, along with + the user name sysprep and password + sysprep for the credentials. Sysprep is then + started with the required system rights. + + + + + Specifying the location of sysprep.exe is + not possible. Instead the + following paths are used, based on the Windows release: + + + + + + + C:\sysprep\sysprep.exe for Windows XP + and earlier + + + + + + %WINDIR%\System32\sysprep\sysprep.exe + for Windows Vista and later + + + + + + + The Guest Additions will automatically use the appropriate + path to execute the system preparation tool. + + + + + + + + + + Advanced Configuration for Linux and Oracle Solaris Guests + + + + Manual Setup of Selected Guest Services on Linux + + + The &product-name; Guest Additions contain several different + drivers. If you do not want to configure them all, use the + following command to install the Guest Additions: + + +$ sh ./VBoxLinuxAdditions.run no_setup + + + After running this script, run the rcvboxadd + setup command as root to compile + the kernel modules. + + + + On some 64-bit guests, you must replace lib + with lib64. On older guests that do not run + the udev service, you must add the + vboxadd service to the default runlevel to + ensure that the modules are loaded. + + + + To set up the time synchronization service, add the + vboxadd-service service to the default + runlevel. To set up the X11 and OpenGL part of the Guest + Additions, run the rcvboxadd-x11 setup + command. Note that you do not need to enable additional + services. + + + + Use the rcvboxadd setup to recompile the + guest kernel modules. + + + + After compilation, reboot your guest to ensure that the new + modules are loaded. + + + + + + + Guest Graphics and Mouse Driver Setup in Depth + + + This section assumes that you are familiar with configuring the + X.Org server using xorg.conf and optionally the newer mechanisms + using hal or udev and xorg.conf.d. If not you can learn about + them by studying the documentation which comes with X.Org. + + + + The &product-name; Guest Additions includes drivers for X.Org. + By default these drivers are in the following directory: + + + + /opt/VBoxGuestAdditions-version/other/ + + + + The correct versions for the X server are symbolically linked + into the X.Org driver directories. + + + + For graphics integration to work correctly, the X server must + load the vboxvideo driver. Many recent X + server versions look for it automatically if they see that they + are running in &product-name;. For an optimal user experience, + the guest kernel drivers must be loaded and the Guest Additions + tool VBoxClient must be running as a client + in the X session. + + + + For mouse integration to work correctly, the guest kernel + drivers must be loaded. In addition, for legacy X servers the + correct vboxmouse driver must be loaded and + associated with /dev/mouse or + /dev/psaux. For most guests, a driver for a + PS/2 mouse must be loaded and the correct vboxmouse driver must + be associated with /dev/vboxguest. + + + + The &product-name; guest graphics driver can use any graphics + configuration for which the virtual resolution fits into the + virtual video memory allocated to the virtual machine, minus a + small amount used by the guest driver, as described in + . The driver will offer a + range of standard modes at least up to the default guest + resolution for all active guest monitors. The default mode can + be changed by setting the output property VBOX_MODE to + "<width>x<height>" for any guest monitor. When + VBoxClient and the kernel drivers are active this is done + automatically when the host requests a mode change. The driver + for older versions can only receive new modes by querying the + host for requests at regular intervals. + + + + With legacy X Servers before version 1.3, you can also add your + own modes to the X server configuration file. Add them to the + "Modes" list in the "Display" subsection of the "Screen" + section. For example, the following section has a custom + 2048x800 resolution mode added: + + +Section "Screen" + Identifier "Default Screen" + Device "VirtualBox graphics card" + Monitor "Generic Monitor" + DefaultDepth 24 + SubSection "Display" + Depth 24 + Modes "2048x800" "800x600" "640x480" + EndSubSection +EndSection + + + + + + + + CPU Hot-Plugging + + + With virtual machines running modern server operating systems, + &product-name; supports CPU hot-plugging. + + + + On a physical computer CPU hot-plugging would mean that a CPU can + be added or removed while the machine is running. &product-name; + supports adding and removing of virtual CPUs while a virtual + machine is running. + + + + CPU hot-plugging works only with guest operating systems that + support the feature. So far this applies only to Linux and Windows + Server. Windows supports only hot-add, while Linux supports + hot-add and hot-remove. To use this feature with more than 8 CPUs, + a 64-bit Linux guest is required. + + + + CPU hot-plugging is done using the VBoxManage + command-line interface. First, hot-plugging needs to be enabled + for a virtual machine: + + +$ VBoxManage modifyvm VM-name --cpu-hotplug on + + + The option is used to specify the maximum + number of CPUs that the virtual machine can have: + + +$ VBoxManage modifyvm VM-name --cpus 8 + + + When the VM is off, you can then add and remove virtual CPUs with + the VBoxManage modifyvm --plug-cpu and + VBoxManage modifyvm --unplug-cpu commands, + which take the number of the virtual CPU as a parameter, as + follows: + + +$ VBoxManage modifyvm VM-name --plug-cpu 3 +$ VBoxManage modifyvm VM-name --unplug-cpu 3 + + + Note that CPU 0 can never be removed. + + + + While the VM is running, CPUs can be added and removed with the + VBoxManage controlvm plugcpu and + VBoxManage controlvm unplugcpu commands + instead, as follows: + + +$ VBoxManage controlvm VM-name plugcpu 3 +$ VBoxManage controlvm VM-name unplugcpu 3 + + + See and + for details. + + + + With Linux guests, the following applies: + + + + To prevent ejection while the CPU is still used it has to be + ejected from within the guest before. The Linux Guest Additions + contain a service which receives hot-remove events and ejects the + CPU. Also, after a CPU is added to the VM it is not automatically + used by Linux. The Linux Guest Additions service will take care of + that if installed. If not a CPU can be started with the following + command: + + +$ echo 1 > /sys/devices/system/cpu/cpu<id>/online + + + + + + + + Webcam Passthrough + + + + Using a Host Webcam in the Guest + + + &product-name; includes a feature called webcam + passthrough, which enables a guest to use a host + webcam. This complements the general USB passthrough support + which was the typical way of using host webcams in legacy + releases. The webcam passthrough support can handle non-USB + video sources in theory, but this is completely untested. + + + + + The webcam passthrough module is shipped as part of the + &product-name; extension pack, which must be installed + separately. See . + + + + + The host webcam can be attached to the VM using the + Devices menu in the VM menu + bar. The Webcams menu contains + a list of available video input devices on the host. Clicking on + a webcam name attaches or detaches the corresponding host + device. + + + + The VBoxManage command line tool can be used + to enable webcam passthrough. Please see the host-specific + sections below for additional details. The following commands + are available: + + + + + + + Get a list of host webcams, or other video input devices: + + +$ VBoxManage list webcams + + + The output format is as follows: + + +alias "user friendly name" +host path or identifier + + + The alias can be used as a shortcut in other commands. Alias + '.0' means the default video input device on the host. Alias + '.1', '.2'means first, second video input device, and so on. + The device order is host-specific. + + + + + + Attach a webcam to a running VM, as follows: + + +VBoxManage controlvm VM name webcam attach [host_path|alias [settings]] + + + This attaches a USB webcam device to the guest. + + + + The settings parameter is a string + Setting1=Value1;Setting2=Value2, which + enables you to configure the emulated webcam device. The + following settings are supported: + + + + + + + MaxFramerate: The highest rate at + which video frames are sent to the guest. A higher frame + rate requires more CPU power. Therefore sometimes it is + useful to set a lower limit. Default is no limit and + allow the guest to use all frame rates supported by the + host webcam. + + + + + + MaxPayloadTransferSize: How many + bytes the emulated webcam can send to the guest at a + time. Default value is 3060 bytes, which is used by some + webcams. Higher values can slightly reduce CPU load, if + the guest is able to use larger buffers. However, a high + MaxPayloadTransferSize might be not + supported by some guests. + + + + + + + + + Detach a webcam from a running VM, as follows: + + +VBoxManage controlvm VM-name webcam detach [host_path|alias] + + + + + List the webcams attached to a running VM, as follows: + + +VBoxManage controlvm VM-name webcam list + + + The output contains the path or alias which was used in the + webcam attach command for each attached + webcam. + + + + + + + + + + Windows Hosts + + + When the webcam device is detached from the host, the emulated + webcam device is automatically detached from the guest. + + + + + + + macOS Hosts + + + When the webcam device is detached from the host, the emulated + webcam device remains attached to the guest and must be manually + detached using the VBoxManage controlvm + VM-name webcam detach + command. + + + + + + + Linux and Oracle Solaris Hosts + + + When the webcam is detached from the host the emulated webcam + device is automatically detached from the guest only if the + webcam is streaming video. If the emulated webcam is inactive it + should be manually detached using the VBoxManage + controlvm VM-name webcam + detach command. + + + + Aliases .0 and .1 are + mapped to /dev/video0, alias + .2 is mapped to + /dev/video1 and so forth. + + + + + + + + + Advanced Display Configuration + + + + Custom VESA Resolutions + + + Apart from the standard VESA resolutions, the &product-name; + VESA BIOS enables you to add up to 16 custom video modes which + will be reported to the guest operating system. When using + Windows guests with the &product-name; Guest Additions, a custom + graphics driver will be used instead of the fallback VESA + solution so this information does not apply. + + + + Additional video modes can be configured for each VM using the + extra data facility. The extra data key is called + CustomVideoModex + with x being a number from 1 to 16. + Please note that modes will be read from 1 until either the + following number is not defined or 16 is reached. The following + example adds a video mode that corresponds to the native display + resolution of many notebook computers: + + +$ VBoxManage setextradata VM-name "CustomVideoMode1" "1400x1050x16" + + + The VESA mode IDs for custom video modes start at + 0x160. In order to use the above defined + custom video mode, the following command line has to be supplied + to Linux: + + +vga = 0x200 | 0x160 +vga = 864 + + + For guest operating systems with &product-name; Guest Additions, + a custom video mode can be set using the video mode hint + feature. + + + + + + + Configuring the Maximum Resolution of Guests When Using the Graphical + Frontend + + + When guest systems with the Guest Additions installed are + started using the graphical frontend, the normal &product-name; + application, they will not be allowed to use screen resolutions + greater than the host's screen size unless the user manually + resizes them by dragging the window, switching to full screen or + seamless mode or sending a video mode hint using + VBoxManage. This behavior is what most users + will want, but if you have different needs, you can change it by + issuing one of the following commands from the command line: + + + + + + + Remove all limits on guest resolutions. + + +VBoxManage setextradata global GUI/MaxGuestResolution any + + + + + Manually specify a maximum resolution. + + +VBoxManage setextradata global GUI/MaxGuestResolution widthxheight + + + + + Restore the default settings to all guest VMs. + + +VBoxManage setextradata global GUI/MaxGuestResolution auto + + + + + + + + + + + Advanced Storage Configuration + + + + Using a Raw Host Hard Disk From a Guest + + + As an alternative to using virtual disk images as described in + , &product-name; can also present + either entire physical hard disks or selected partitions as + virtual disks to virtual machines. + + + + With &product-name;, this type of access is called raw + hard disk access. It enables a guest operating system + to access its virtual hard disk without going through the host + OS file system. The actual performance difference for image + files compared to raw disk varies greatly depending on the + overhead of the host file system, whether dynamically growing + images are used, and on host OS caching strategies. The caching + indirectly also affects other aspects such as failure behavior. + For example, whether the virtual disk contains all data written + before a host OS crash. Consult your host OS documentation for + details on this. + + + + + Raw hard disk access is for expert users only. Incorrect use + or use of an outdated configuration can lead to + total loss of data on the + physical disk. Most importantly, do not + attempt to boot the partition with the currently running host + operating system in a guest. This will lead to severe data + corruption. + + + + + Raw hard disk access, both for entire disks and individual + partitions, is implemented as part of the VMDK image format + support. As a result, you will need to create a special VMDK + image file which defines where the data will be stored. After + creating such a special VMDK image, you can use it like a + regular virtual disk image. For example, you can use the Virtual + Media Manager, see , or + VBoxManage to assign the image to a virtual + machine. + + + + + Access to Entire Physical Hard Disk + + + While this variant is the simplest to set up, you must be + aware that this will give a guest operating system direct and + full access to an entire physical disk. + If your host operating system is also + booted from this disk, please take special care to not access + the partition from the guest at all. On the positive side, the + physical disk can be repartitioned in arbitrary ways without + having to recreate the image file that gives access to the raw + disk. + + + + On a Linux host, to create an image that represents an entire + physical hard disk which will not contain any actual data, as + this will all be stored on the physical disk, use the + following command: + + +$ VBoxManage createmedium disk --filename path-to-file.vmdk --format=VMDK + --variant RawDisk --property RawDrive=/dev/sda + + + This creates the + path-to-file.vmdk + file image that must be an absolute path. All data is read and + written from /dev/sda. + + + + On a Windows host, instead of the above device specification, + for example use \\.\PhysicalDrive0. On a + macOS host, instead of the above device specification use for + example /dev/rdisk1. Note that on Mac OS + X you can only get access to an entire disk if no volume is + mounted from it. + + + + Creating the image requires read/write access for the given + device. Read/write access is also later needed when using the + image from a virtual machine. On some host platforms, such as + Windows, raw disk access may be restricted and not permitted + by the host OS in some situations. + + + + Just like with regular disk images, this does not + automatically attach the newly created image to a virtual + machine. This can be done as follows: + + +$ VBoxManage storageattach WindowsXP --storagectl "IDE Controller" \ + --port 0 --device 0 --type hdd --medium path-to-file.vmdk + + + When this is done the selected virtual machine will boot from + the specified physical disk. + + + + + + + Access to Individual Physical Hard Disk Partitions + + + This raw partition support is quite + similar to the full hard disk access described above. However, + in this case, any partitioning information will be stored + inside the VMDK image. This means that you can install a + different boot loader in the virtual hard disk without + affecting the host's partitioning information. While the guest + will be able to see all partitions that + exist on the physical disk, access will be filtered in that + reading from partitions for which no access is allowed the + partitions will only yield zeroes, and all writes to them are + ignored. + + + + To create a special image for raw partition support, which + will contain a small amount of data, on a Linux host, use the + command: + + +$ VBoxManage createmedium disk --filename path-to-file.vmdk --format=VMDK +--variant RawDisk --property RawDrive=/dev/sda --property Partitions=1,5 + + + The command is identical to the one for full hard disk access, + except for the additional parameter. This example would create + the image + path-to-file.vmdk, + which must be absolute, and partitions 1 and 5 of + /dev/sda would be made accessible to the + guest. + + + + &product-name; uses the same partition numbering as your Linux + host. As a result, the numbers given in the above example + would refer to the first primary partition and the first + logical drive in the extended partition, respectively. + + + + On a Windows host, instead of the above device specification, + use for example \\.\PhysicalDrive0. On a + macOS host, instead of the above device specification use + /dev/rdisk1, for example. Note that on OS + X you can only use partitions which are not mounted. Unmount + the respective disk first using diskutil unmountDisk + /dev/diskX. Partition numbers + are the same on Linux, Windows, and macOS hosts. + + + + The numbers for the list of partitions can be taken from the + output of the following command: + + +$ VBoxManage list hostdrives + + + The output lists available drives and their partitions with + the partition types and sizes to give the user enough + information to identify the partitions necessary for the + guest. + + + + Images which give access to individual partitions are specific + to a particular host disk setup. You cannot transfer these + images to another host. Also, whenever the host partitioning + changes, the image must be recreated. + + + + Creating the image requires read/write access for the given + device. Read/write access is also later needed when using the + image from a virtual machine. If this is not feasible, there + is a special variant for raw partition access, currently only + available on Linux hosts, that avoids having to give the + current user access to the entire disk. To set up such an + image, use: + + +$ VBoxManage createmedium disk --filename path-to-file.vmdk --format=VMDK +--variant RawDisk --property RawDrive=/dev/sda --property Partitions=1,5 +--property Relative=1 + + + When used from a virtual machine, the image will then refer + not to the entire disk, but only to the individual partitions. + In this example, /dev/sda1 and + /dev/sda5. As a consequence, read/write + access is only required for the affected partitions, not for + the entire disk. During creation however, read-only access to + the entire disk is required to obtain the partitioning + information. + + + + In some configurations it may be necessary to change the MBR + code of the created image. For example, to replace the Linux + boot loader that is used on the host by another boot loader. + This enables for example the guest to boot directly to + Windows, while the host boots Linux from the "same" disk. For + this purpose the + parameter is provided. It specifies a file name from which to + take the MBR code. The partition table is not modified at all, + so a MBR file from a system with totally different + partitioning can be used. An example of this is: + + +$ VBoxManage createmedium disk --filename path-to-file.vmdk --format=VMDK +--variant RawDisk --property RawDrive=/dev/sda --property Partitions=1,5 +--property-file BootSector=winxp.mbr + + + The modified MBR will be stored inside the image, not on the + host disk. + + + + The created image can be attached to a storage controller in a + VM configuration as usual. + + + + + + + + + Configuring the Hard Disk Vendor Product Data (VPD) + + + &product-name; reports vendor product data for its virtual hard + disks which consist of hard disk serial number, firmware + revision and model number. These can be changed using the + following commands: + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/ahci/0/Config/Port0/FirmwareRevision" "firmware" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" "model" + + + The serial number is a 20 byte alphanumeric string, the firmware + revision an 8 byte alphanumeric string and the model number a 40 + byte alphanumeric string. Instead of Port0, referring to the + first port, specify the desired SATA hard disk port. + + + + The above commands apply to virtual machines with an AHCI (SATA) + controller. The commands for virtual machines with an IDE + controller are: + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/SerialNumber" "serial" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/FirmwareRevision" "firmware" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/ModelNumber" "model" + + + For hard disks, you can mark the drive as having a + non-rotational medium by using the following command: + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/ahci/0/Config/Port0/NonRotational" "1" + + + Additional three parameters are needed for CD/DVD drives to + report the vendor product data: + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/ahci/0/Config/Port0/ATAPIVendorId" "vendor" +VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/ahci/0/Config/Port0/ATAPIProductId" "product" +VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/ahci/0/Config/Port0/ATAPIRevision" "revision" + + + The vendor id is an 8 byte alphanumeric string, the product id + an 16 byte alphanumeric string and the revision a 4 byte + alphanumeric string. Instead of Port0, referring to the first + port, specify the desired SATA hard disk port. + + + + + + + Access iSCSI Targets Using Internal Networking + + + As an experimental feature, &product-name; enables access to an + iSCSI target running in a virtual machine which is configured to + use Internal Networking mode. See + , + , and + . + + + + The IP stack accessing Internal Networking must be configured in + the virtual machine which accesses the iSCSI target. A free + static IP and a MAC address not used by other virtual machines + must be chosen. In the example below, adapt the name of the + virtual machine, the MAC address, the IP configuration, and the + Internal Networking name (MyIntNet) according to your needs. The + following eight commands must first be issued: + + +$ VBoxManage setextradata VM-name \ +VBoxInternal/Devices/IntNetIP/0/Trusted 1 +$ VBoxManage setextradata VM-name \ +VBoxInternal/Devices/IntNetIP/0/Config/MAC 08:00:27:01:02:0f +$ VBoxManage setextradata VM-name \ +VBoxInternal/Devices/IntNetIP/0/Config/IP 10.0.9.1 +$ VBoxManage setextradata VM-name \ +VBoxInternal/Devices/IntNetIP/0/Config/Netmask 255.255.255.0 +$ VBoxManage setextradata VM-name \ +VBoxInternal/Devices/IntNetIP/0/LUN#0/Driver IntNet +$ VBoxManage setextradata VM-name \ +VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/Network MyIntNet +$ VBoxManage setextradata VM-name \ +VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/TrunkType 2 +$ VBoxManage setextradata VM-name \ +VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/IsService 1 + + + Finally the iSCSI disk must be attached with the + option to tell the iSCSI initiator to + use internal networking, as follows: + + +$ VBoxManage storageattach ... --medium iscsi --server 10.0.9.30 \ +--target iqn.2008-12.com.sun:sampletarget --intnet + + + Compared to a regular iSCSI setup, the IP address of the target + must be specified as a numeric IP address, + as there is no DNS resolver for internal networking. + + + + The virtual machine with the iSCSI target should be started + before the VM using it is powered on. If a virtual machine using + an iSCSI disk is started without having the iSCSI target powered + up, it can take up to 200 seconds to detect this situation. The + VM will fail to power up. + + + + + + + + + Fine Tuning the &product-name; NAT Engine + + + + Configuring the Address of a NAT Network Interface + + + In NAT mode, the guest network interface is assigned to the IPv4 + range 10.0.x.0/24 + by default where x corresponds to the + instance of the NAT interface +2. So + x is 2 when there is only one NAT + instance active. In that case the guest is assigned to the + address 10.0.2.15, the gateway is set to + 10.0.2.2 and the name server can be found at + 10.0.2.3. + + + + If the NAT network needs to be changed, use the following + command: + + +$ VBoxManage modifyvm VM-name \ +--natnet1 "192.168/16" + + + This command would reserve the network addresses from + 192.168.0.0 to + 192.168.254.254 for the first NAT network + instance of VM-name The guest IP + would be assigned to 192.168.0.15 and the + default gateway could be found at + 192.168.0.2. + + + + + + + Configuring the Boot Server (Next Server) of a NAT Network Interface + + + For network booting in NAT mode, by default &product-name; uses + a built-in TFTP server at the IP address 10.0.2.4. This default + behavior should work fine for typical remote-booting scenarios. + However, it is possible to change the boot server IP and the + location of the boot image with the following commands: + + +$ VBoxManage modifyvm VM-name \ +--nattftpserver1 10.0.2.2 +$ VBoxManage modifyvm VM-name \ +--nattftpfile1 /srv/tftp/boot/MyPXEBoot.pxe + + + + + + Tuning TCP/IP Buffers for NAT + + + The &product-name; NAT stack performance is often determined by + its interaction with the host's TCP/IP stack and the size of + several buffers, SO_RCVBUF and + SO_SNDBUF. For certain setups users might + want to adjust the buffer size for a better performance. This + can by achieved using the following commands, where values are + in kilobytes and can range from 8 to 1024: + + +$ VBoxManage modifyvm VM-name \ +--natsettings1 16000,128,128,0,0 + + + This example illustrates tuning the NAT settings. The first + parameter is the MTU, then the size of the socket's send buffer + and the size of the socket's receive buffer, the initial size of + the TCP send window, and lastly the initial size of the TCP + receive window. Note that specifying zero means fallback to the + default value. + + + + Each of these buffers has a default size of 64KB and default MTU + is 1500. + + + + + + + Binding NAT Sockets to a Specific Interface + + + By default, &product-name;'s NAT engine will route TCP/IP + packets through the default interface assigned by the host's + TCP/IP stack. The technical reason for this is that the NAT + engine uses sockets for communication. If you want to change + this behavior, you can tell the NAT engine to bind to a + particular IP address instead. For example, use the following + command: + + +$ VBoxManage modifyvm VM-name \ +--natbindip1 "10.45.0.2" + + + After this, all outgoing traffic will be sent through the + interface with the IP address 10.45.0.2. Ensure that this + interface is up and running before changing the NAT bind + address. + + + + + + + Enabling DNS Proxy in NAT Mode + + + The NAT engine by default offers the same DNS servers to the + guest that are configured on the host. In some scenarios, it can + be desirable to hide the DNS server IPs from the guest, for + example when this information can change on the host due to + expiring DHCP leases. In this case, you can tell the NAT engine + to act as DNS proxy using the following command: + + +$ VBoxManage modifyvm VM-name --natdnsproxy1 on + + + + + + Using the Host's Resolver as a DNS Proxy in NAT Mode + + + For resolving network names, the DHCP server of the NAT engine + offers a list of registered DNS servers of the host. If for some + reason you need to hide this DNS server list and use the host's + resolver settings, thereby forcing the &product-name; NAT engine + to intercept DNS requests and forward them to host's resolver, + use the following command: + + +$ VBoxManage modifyvm VM-name --natdnshostresolver1 on + + + Note that this setting is similar to the DNS proxy mode, however + whereas the proxy mode just forwards DNS requests to the + appropriate servers, the resolver mode will interpret the DNS + requests and use the host's DNS API to query the information and + return it to the guest. + + + + + User-Defined Host Name Resolving + + + In some cases it might be useful to intercept the name + resolving mechanism, providing a user-defined IP address on a + particular DNS request. The intercepting mechanism enables the + user to map not only a single host but domains and even more + complex naming conventions if required. + + + + The following command sets a rule for mapping a name to a + specified IP: + + +VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ +unique-rule-name-of-interception-rule/HostIP" IPv4 + +VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ +unique-rule-name/HostName" hostname + + + The following command sets a rule for mapping a pattern name + to a specified IP: + + +VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ +unique-rule-name/HostIP" IPv4 + +VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ +unique-rule-name/HostNamePattern" hostpattern + + + The host name pattern can include the following wildcard + characters: pipe (|), question mark + (?), and asterisk (*). + + + + This example demonstrates how to instruct the host-resolver + mechanism to resolve all domain and probably some mirrors of + www.blocked-site.info site with IP 127.0.0.1: + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/e1000/0/LUN#0/AttachedDriver/Config/HostResolverMappings/all_blocked_site/HostIP" 127.0.0.1 +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/e1000/0/LUN#0/AttachedDriver/Config/HostResolverMappings/all_blocked_site/HostNamePattern" "*.blocked-site.*|*.fb.org" + + + The host resolver mechanism should be enabled to use + user-defined mapping rules, otherwise they do not have any + effect. + + + + + + + + + Configuring Aliasing of the NAT Engine + + + By default, the NAT core uses aliasing and uses random ports + when generating an alias for a connection. This works well for + the most protocols like SSH, FTP and so on. Though some + protocols might need a more transparent behavior or may depend + on the real port number the packet was sent from. You can change + the NAT mode by using the following commands: + + +$ VBoxManage modifyvm VM-name \ +--nataliasmode1 proxyonly + +$ VBoxManage modifyvm "Linux Guest" --nataliasmode1 sameports + + + The first example disables aliasing and switches NAT into + transparent mode, the second example enforces preserving of port + values. These modes can be combined if necessary. + + + + + + + + + Configuring the BIOS DMI Information + + + The DMI data that &product-name; provides to guests can be changed + for a specific VM. Use the following commands to configure the DMI + BIOS information. In case your VM is configured to use EFI + firmware you need to replace pcbios by + efi in the keys. + + + + + + + DMI BIOS information (type 0) + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" "BIOS Vendor" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" "BIOS Version" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseDate" "BIOS Release Date" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMajor" 1 +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMinor" 2 +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMajor" 3 +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMinor" 4 + + + + + DMI system information (type 1) + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "System Vendor" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct" "System Product" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion" "System Version" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "System Serial" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSKU" "System SKU" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiSystemFamily" "System Family" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid" \ +"9852bf98-b83c-49db-a8de-182c42c7226b" + + + + + DMI board information (type 2) + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBoardVendor" "Board Vendor" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBoardProduct" "Board Product" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBoardVersion" "Board Version" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBoardSerial" "Board Serial" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBoardAssetTag" "Board Tag" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBoardLocInChass" "Board Location" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiBoardBoardType" 10 + + + + + DMI system enclosure or chassis (type 3) + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiChassisVendor" "Chassis Vendor" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiChassisType" 3 +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiChassisVersion" "Chassis Version" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiChassisSerial" "Chassis Serial" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiChassisAssetTag" "Chassis Tag" + + + + + DMI processor information (type 4) + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiProcManufacturer" "GenuineIntel" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiProcVersion" "Pentium(R) III" + + + + + DMI OEM strings (type 11) + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiOEMVBoxVer" "vboxVer_1.2.3" +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiOEMVBoxRev" "vboxRev_12345" + + + + + + If a DMI string is not set, the default value of &product-name; is + used. To set an empty string use + "<EMPTY>". + + + + Note that in the above list, all quoted parameters (DmiBIOSVendor, + DmiBIOSVersion but not DmiBIOSReleaseMajor) are expected to be + strings. If such a string is a valid number, the parameter is + treated as number and the VM will most probably refuse to start + with an VERR_CFGM_NOT_STRING error. In that + case, use + "string:value". For + example: + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:1234" + + + Changing this information can be necessary to provide the DMI + information of the host to the guest to prevent Windows from + asking for a new product key. On Linux hosts, the DMI BIOS + information can be obtained with the following command: + + +$ dmidecode -t0 + + + The DMI system information can be obtained as follows: + + +$ dmidecode -t1 + + + + + + Configuring Custom ACPI Tables + + + You can configure &product-name; to present up to four custom ACPI + tables to the guest. Use a command such as the following to + configure custom ACPI tables. Note that + CustomTable1, CustomTable2, + and CustomTable3 are available in addition to + CustomTable0. + + +$ VBoxManage setextradata VM-name \ +"VBoxInternal/Devices/acpi/0/Config/CustomTable0" "/path-to-table.bin" + + + Configuring custom ACPI tables can for example avoid the need for + asking for a new product key on Windows Vista, Windows 7, Windows + 8 and later guests. On Linux hosts, one of the system's ACPI + tables can be read from + /sys/firmware/acpi/tables/. + + + + + + + Fine Tuning Timers and Time Synchronization + + + + Configuring the Guest Time Stamp Counter (TSC) to Reflect Guest + Execution + + + By default, &product-name; keeps all sources of time visible to + the guest synchronized to a single time source, the monotonic + host time. This reflects the assumptions of many guest operating + systems, which expect all time sources to reflect "wall clock" + time. In special circumstances it may be useful however to make + the time stamp counter (TSC) in the guest reflect the time + actually spent executing the guest. + + + + This special TSC handling mode can be enabled on a per-VM basis, + and for best results must be used only in combination with + hardware virtualization. To enable this mode use the following + command: + + +$ VBoxManage setextradata VM-name "VBoxInternal/TM/TSCTiedToExecution" 1 + + + To revert to the default TSC handling mode use: + + +$ VBoxManage setextradata VM-name "VBoxInternal/TM/TSCTiedToExecution" + + + Note that if you use the special TSC handling mode with a guest + operating system which is very strict about the consistency of + time sources you may get a warning or error message about the + timing inconsistency. It may also cause clocks to become + unreliable with some guest operating systems depending on how + they use the TSC. + + + + + + + Accelerate or Slow Down the Guest Clock + + + For certain purposes it can be useful to accelerate or to slow + down the virtual guest clock. This can be achieved as follows: + + +$ VBoxManage setextradata VM-name "VBoxInternal/TM/WarpDrivePercentage" 200 + + + The above example will double the speed of the guest clock while + + +$ VBoxManage setextradata VM-name "VBoxInternal/TM/WarpDrivePercentage" 50 + + + will halve the speed of the guest clock. Note that changing the + rate of the virtual clock can confuse the guest and can even + lead to abnormal guest behavior. For instance, a higher clock + rate means shorter timeouts for virtual devices with the result + that a slightly increased response time of a virtual device due + to an increased host load can cause guest failures. Note further + that any time synchronization mechanism will frequently try to + resynchronize the guest clock with the reference clock, which is + the host clock if the &product-name; Guest Additions are active. + Therefore any time synchronization should be disabled if the + rate of the guest clock is changed as described above. See + . + + + + + + + Tuning the Guest Additions Time Synchronization Parameters + + + The &product-name; Guest Additions ensure that the guest's + system time is synchronized with the host time. There are + several parameters which can be tuned. The parameters can be set + for a specific VM using the following command: + + +$ VBoxManage guestproperty set VM-name "/VirtualBox/GuestAdd/VBoxService/property" value + + + property is one of the following: + + + + + + + + + + + + Specifies the interval at which to synchronize the time + with the host. The default is 10000 ms (10 seconds). + + + + + + + + + + + + The minimum absolute drift value measured in milliseconds + to make adjustments for. The default is 1000 ms on OS/2 + and 100 ms elsewhere. + + + + + + + + + + + + The factor to multiply the time query latency with to + calculate the dynamic minimum adjust time. The default is + 8 times, which means as follows: + + + + Measure the time it takes to determine the host time, the + guest has to contact the VM host service which may take + some time. Multiply this value by 8 and do an adjustment + only if the time difference between host and guest is + bigger than this value. Do not do any time adjustment + otherwise. + + + + + + + + + + + + The max host timer query latency to accept. The default is + 250 ms. + + + + + + + + + + + + The absolute drift threshold, given as milliseconds where + to start setting the time instead of trying to smoothly + adjust it. The default is 20 minutes. + + + + + + + + + + + + Set the time when starting the time sync service. + + + + + + + + + + + + Set the time after the VM was restored from a saved state + when passing 1 as parameter. This is the default. Disable + by passing 0. In the latter case, the time will be + adjusted smoothly, which can take a long time. + + + + + + + + All these parameters can be specified as command line parameters + to VBoxService as well. + + + + + + + Disabling the Guest Additions Time Synchronization + + + Once installed and started, the &product-name; Guest Additions + will try to synchronize the guest time with the host time. This + can be prevented by forbidding the guest service from reading + the host clock: + + +$ VBoxManage setextradata VM-name "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1 + + + + + + + + Installing the Alternate Bridged Networking Driver on Oracle Solaris 11 + Hosts + + + &product-name; includes a network filter driver that utilizes + Oracle Solaris 11's Crossbow functionality. By default, this new + driver is installed for Oracle Solaris 11 hosts that have support + for it. + + + + To force installation of the older STREAMS based network filter + driver, execute as root the following command before installing + the &product-name; package: + + +$ touch /etc/vboxinst_vboxflt + + + To force installation of the Crossbow based network filter driver, + execute as root the following command before installing the + &product-name; package: + + +$ touch /etc/vboxinst_vboxbow + + + To check which driver is currently being used by &product-name;, + execute: + + +$ modinfo | grep vbox + + + If the output contains "vboxbow", it indicates &product-name; is + using the Crossbow network filter driver, while the name "vboxflt" + indicates usage of the older STREAMS network filter. + + + + + + + &product-name; VNIC Templates for VLANs on Oracle Solaris 11 Hosts + + + &product-name; supports Virtual Network Interface (VNIC) templates + for configuring VMs over VLANs. An &product-name; VNIC template is + a VNIC whose name starts with + vboxvnic_template. The string is + case-sensitive. + + + + On Oracle Solaris 11 hosts, when Crossbow-based bridged networking + is used, a VNIC template may be used to specify the VLAN ID to use + while bridging over a network link. + + + + The following is an example of how to use a VNIC template to + configure a VM over a VLAN. Create an &product-name; VNIC + template, by executing as root: + + +# dladm create-vnic -t -l nge0 -v 23 vboxvnic_template0 + + + This will create a temporary VNIC template over interface + nge0 with the VLAN ID 23. To create VNIC + templates that are persistent across host reboots, skip the + parameter in the above command. You may check + the current state of links using the following command: + + +$ dladm show-link +LINK CLASS MTU STATE BRIDGE OVER +nge0 phys 1500 up -- -- +nge1 phys 1500 down -- -- +vboxvnic_template0 vnic 1500 up -- nge0 + +$ dladm show-vnic +LINK OVER SPEED MACADDRESS MACADDRTYPE VID +vboxvnic_template0 nge0 1000 2:8:20:25:12:75 random 23 + + + Once the VNIC template is created, any VMs that need to be on VLAN + 23 over the interface nge0 can be configured to + bridge using this VNIC template. + + + + VNIC templates makes managing VMs on VLANs simpler and efficient. + The VLAN details are not stored as part of every VM's + configuration but rather inherited from the VNIC template while + starting the VM. The VNIC template itself can be modified anytime + using the dladm command. + + + + VNIC templates can be created with additional properties such as + bandwidth limits and CPU fanout. Refer to your Oracle Solaris + network documentation for details. The additional properties are + also applied to VMs which bridge using the VNIC template. + + + + + + + Configuring Multiple Host-Only Network Interfaces on Oracle Solaris + Hosts + + + By default &product-name; provides you with one host-only network + interface. Adding more host-only network interfaces on Oracle + Solaris hosts requires manual configuration. Here is how to add + another host-only network interface. + + + + Begin by stopping all running VMs. Then, unplumb the existing + "vboxnet0" interface by execute the following command as root: + + +# ifconfig vboxnet0 unplumb + + + If you have several vboxnet interfaces, you will need to unplumb + all of them. Once all vboxnet interfaces are unplumbed, remove the + driver by executing the following command as root: + + +# rem_drv vboxnet + + + Edit the file + /platform/i86pc/kernel/drv/vboxnet.conf and + add a line for the new interface we want to add as shown below: + + +name="vboxnet" parent="pseudo" instance=1; +name="vboxnet" parent="pseudo" instance=2; + + + Add as many of these lines as required with each line having a + unique instance number. + + + + Next, reload the vboxnet driver by executing the following command + as root: + + +# add_drv vboxnet + + + On Oracle Solaris 11.1 and newer hosts you may want to rename the + default vanity interface name. To check what name has been + assigned, execute: + + +$ dladm show-phys +LINK MEDIA STATE SPEED DUPLEX DEVICE +net0 Ethernet up 100 full e1000g0 +net2 Ethernet up 1000 full vboxnet1 +net1 Ethernet up 1000 full vboxnet0 + + + In the above example, we can rename "net2" to "vboxnet1" before + proceeding to plumb the interface. This can be done by executing + as root: + + +# dladm rename-link net2 vboxnet1 + + + Now plumb all the interfaces using ifconfig + vboxnetX plumb, where + X would be 1 in this case. Once the + interface is plumbed, it may be configured like any other network + interface. Refer to the ifconfig documentation + for further details. + + + + To make the settings for the newly added interfaces persistent + across reboots, you will need to edit the files + /etc/inet/netmasks, and if you are using NWAM + /etc/nwam/llp and add the appropriate entries + to set the netmask and static IP for each of those interfaces. The + &product-name; installer only updates these configuration files + for the one "vboxnet0" interface it creates by default. + + + + + + + Configuring the &product-name; CoreDumper on Oracle Solaris Hosts + + + &product-name; is capable of producing its own core files for + extensive debugging when things go wrong. Currently this is only + available on Oracle Solaris hosts. + + + + The &product-name; CoreDumper can be enabled using the following + command: + + +$ VBoxManage setextradata VM-name VBoxInternal2/CoreDumpEnabled 1 + + + You can specify which directory to use for core dumps with this + command, as follows: + + +$ VBoxManage setextradata VM-name VBoxInternal2/CoreDumpDir path-to-directory + + + Make sure the directory you specify is on a volume with sufficient + free space and that the &product-name; process has sufficient + permissions to write files to this directory. If you skip this + command and do not specify any core dump directory, the current + directory of the &product-name; executable will be used. This + would most likely fail when writing cores as they are protected + with root permissions. It is recommended you explicitly set a core + dump directory. + + + + You must specify when the &product-name; CoreDumper should be + triggered. This is done using the following commands: + + +$ VBoxManage setextradata VM-name VBoxInternal2/CoreDumpReplaceSystemDump 1 +$ VBoxManage setextradata VM-name VBoxInternal2/CoreDumpLive 1 + + + At least one of the above two commands will have to be provided if + you have enabled the &product-name; CoreDumper. + + + + Setting CoreDumpReplaceSystemDump sets up the + VM to override the host's core dumping mechanism and in the event + of any crash only the &product-name; CoreDumper would produce the + core file. + + + + Setting CoreDumpLive sets up the VM to produce + cores whenever the VM process receives a + SIGUSR2 signal. After producing the core file, + the VM will not be terminated and will continue to run. You can + thus take cores of the VM process using the following command: + + +$ kill -s SIGUSR2 VM-process-id + + + The &product-name; CoreDumper creates core files of the form + core.vb.process-name.process-ID + such as core.vb.VBoxHeadless.11321. + + + + + + + &product-name; and Oracle Solaris Kernel Zones + + + Oracle Solaris kernel zones on x86-based systems make use of + hardware-assisted virtualization features like &product-name; + does. However, for kernel zones and &product-name; to share this + hardware resource, they need to cooperate. + + + + By default, due to performance reasons, &product-name; acquires + the hardware-assisted virtualization resource (VT-x/AMD-V) + globally on the host machine and uses it until the last + &product-name; VM that requires it is powered off. This prevents + other software from using VT-x/AMD-V during the time + &product-name; has taken control of it. + + + + &product-name; can be instructed to relinquish use of + hardware-assisted virtualization features when not executing guest + code, thereby allowing kernel zones to make use of them. To do + this, shutdown all &product-name; VMs and execute the following + command: + + +$ VBoxManage setproperty hwvirtexclusive off + + + This command needs to be executed only once as the setting is + stored as part of the global &product-name; settings which will + continue to persist across host-reboots and &product-name; + upgrades. + + + + + + + Locking Down &vbox-mgr; + + + + Customizing &vbox-mgr; + + + There are several advanced customization settings for locking + down &vbox-mgr;. Locking down means removing some features that + the user should not see. + + +VBoxManage setextradata global GUI/Customizations property[,property ...] + + + property is one of the following + properties: + + + + + + + noSelector + + + + + Do not allow users to start &vbox-mgr;. Trying to do so + will show a window containing a proper error message. + + + + + + + noMenuBar + + + + + VM windows will not contain a menu bar. + + + + + + + noStatusBar + + + + + VM windows will not contain a status bar. + + + + + + + + To disable any of these &vbox-mgr; customizations use the + following command: + + +$ VBoxManage setextradata global GUI/Customizations + + + + + + VM Selector Customization + + + The following per-machine VM extradata settings can be used to + change the behavior of the VM selector window in respect of + certain VMs: + + +$ VBoxManage setextradata VM-name property true + + + property can be any of the following: + + + + + + + GUI/HideDetails + + + + + Do not show the VM configuration of a certain VM. The + details window will remain just empty if this VM is + selected. + + + + + + + GUI/PreventReconfiguration + + + + + Do not allow the user to open the + Settings dialog for a + certain VM. + + + + + + + GUI/PreventSnapshotOperations + + + + + Prevent snapshot operations for a VM from the GUI, either + at runtime or when the VM is powered off. + + + + + + + GUI/HideFromManager + + + + + Hide a certain VM in the VM selector window. + + + + + + + GUI/PreventApplicationUpdate + + + + + Disable the automatic update check and hide the + corresponding menu item. + + + + + + + + Note that these settings do not prevent the user from + reconfiguring the VM by using the VBoxManage + modifyvm command. + + + + + + + Configure VM Selector Menu Entries + + + You can disable certain entries in the global settings page of + the VM selector: + + +$ VBoxManage setextradata global GUI/RestrictedGlobalSettingsPages property[,property...] + + + property is one of the following: + + + + + + + General + + + + + Do not show the General + settings pane. + + + + + + + Input + + + + + Do not show the Input + settings pane. + + + + + + + Update + + + + + Do not show the Update + settings pane. + + + + + + + Language + + + + + Do not show the Language + settings pane. + + + + + + + Display + + + + + Do not show the Display + settings pane. + + + + + + + Network + + + + + Do not show the Network + settings pane. + + + + + + + Extensions + + + + + Do not show the + Extensions settings pane. + + + + + + + Proxy + + + + + Do not show the Proxy + settings pane. + + + + + + + + This is a global setting. You can specify any combination of + properties. To restore the default behavior, use the following + command: + + +$ VBoxManage setextradata global GUI/RestrictedGlobalSettingsPages + + + + + + Configure VM Window Menu Entries + + + You can disable certain menu actions in the VM window: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeMenus OPTION[,OPTION...] + + + where OPTION is one of the following + keywords: + + + + + + + All + + + + + Do not show any menu in the VM window. + + + + + + + Application + + + + + Do not show + Application/File menu in + the VM window. + + + + + + + Machine + + + + + Do not show the Machine + menu in the VM window. + + + + + + + View + + + + + Do not show the View menu + in the VM window. + + + + + + + Input + + + + + Do not show Input menu in + the VM window. + + + + + + + Devices + + + + + Do not show the Devices + menu in the VM window. + + + + + + + Help + + + + + Do not show the Help menu + in the VM window. + + + + + + + Debug + + + + + Do not show the Debug + menu in the VM window. The Debug menu is only visible if + the GUI was started with special command line parameters + or environment variable settings. + + + + + + + + This is a per-VM or global setting. Any combination of the above + is allowed. To restore the default behavior, use the following + command: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeMenus + + + You can also disable certain menu actions of certain menus. Use + the following command to disable certain actions of the + Application menu. This is only + available on macOS hosts. + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeApplicationMenuActions OPTION[,OPTION...] + + + where OPTION is one of the following + keywords: + + + + + + + All + + + + + Do not show any menu item in this menu. + + + + + + + About + + + + + Do not show the About + menu item in this menu. + + + + + + + Preferences + + + + + Do not show the + Preferences menu item in + this menu. + + + + + + + NetworkAccessManager + + + + + Do not show the Network Operations + Manager menu item in this menu. + + + + + + + ResetWarnings + + + + + Do not show the Reset All + Warnings menu item in this menu. + + + + + + + Close + + + + + Do not show the Close + menu item in this menu. + + + + + + + + This is a per-VM or global setting. Any combination of the above + is allowed. To restore the default behavior, use the following + command: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeMenus + + + Use the following command to disable certain actions of the + Machine menu: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeMachineMenuActions OPTION[,OPTION...] + + + where OPTION is one of the following + keywords: + + + + + + + All + + + + + Do not show any menu item in this menu. + + + + + + + SettingsDialog + + + + + Do not show the Settings + menu item in this menu. + + + + + + + TakeSnapshot + + + + + Do not show the Take + Snapshot... menu item in this menu. + + + + + + + InformationDialog + + + + + Do not show the Session + Information... menu item in this menu. + + + + + + + FileManagerDialog + + + + + Do not show the File + Manager... menu item in this menu. + + + + + + + Pause + + + + + Do not show the Pause + menu item in this menu. + + + + + + + Reset + + + + + Do not show the Reset + menu item in this menu. + + + + + + + Shutdown + + + + + Do not show the ACPI + Shutdown menu item in this menu. + + + + + + + + This is a per-VM or global setting. Any combination of the above + is allowed. To restore the default behavior, use + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeMachineMenuActions + + + Use the following command to disable certain actions of the + View menu: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeViewMenuActions OPTION[,OPTION...] + + + where OPTION is one of the following + keywords: + + + + + + + All + + + + + Do not show any menu item in this menu. + + + + + + + Fullscreen + + + + + Do not show the Full-screen + Mode menu item in this menu. + + + + + + + Seamless + + + + + Do not show the Seamless + Mode menu item in this menu. + + + + + + + Scale + + + + + Do not show the Scaled + Mode menu item in this menu. + + + + + + + GuestAutoresize + + + + + Do not show the Auto-resize Guest + Display menu item in this menu. + + + + + + + AdjustWindow + + + + + Do not show the Adjust Window + Size menu item in this menu. + + + + + + + TakeScreenshot + + + + + Do not show the Take + Screenshot... menu item in this menu. + + + + + + + Recording + + + + + Do not show the Recording + menu item in this menu. + + + + + + + VRDEServer + + + + + Do not show the Remote + Display menu item in this menu. + + + + + + + MenuBar + + + + + Do not show the Menu Bar + menu item in this menu. + + + + + + + MenuBarSettings + + + + + Do not show the Menu Bar + Settings... menu item in this menu. + + + + + + + StatusBar + + + + + Do not show the Status + Bar menu item in this menu. + + + + + + + StatusbarSettings + + + + + Do not show the Statusbar + Settings... menu item in this menu. + + + + + + + + This is a per-VM or global setting. Any combination of the above + is allowed. To restore the default behavior, use + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeViewMenuActions + + + Use the following command to disable certain actions of the + Input menu: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeInputMenuActions OPTION[,OPTION...] + + + where OPTION is one of the following + keywords: + + + + + + + All + + + + + Do not show any menu item in this menu. + + + + + + + Keyboard + + + + + Do not show the Keyboard + menu item in this menu. + + + + + + + KeyboardSettings + + + + + Do not show the Keyboard + Settings... menu item in this menu. + + + + + + + SoftKeyboard + + + + + Do not show the Soft + Keyboard... menu item in this menu. + + + + + + + TypeCAD + + + + + Do not show the Insert + Ctrl-Alt-Del menu item in this menu. + + + + + + + TypeCABS + + + + + Do not show the Insert + Ctrl-Alt-Backspace menu item in this menu. + + + + + + + TypeCtrlBreak + + + + + Do not show the Insert + Ctrl-Break menu item in this menu. + + + + + + + TypeInsert + + + + + Do not show the Insert + Insert menu item in this menu. + + + + + + + TypePrintScreen + + + + + Do not show the Insert Print + Screen menu item in this menu. + + + + + + + TypeAltPrintScreen + + + + + Do not show the Insert Alt Print + Screen menu item in this menu. + + + + + + + TypeHostKeyCombo + + + + + Do not show the Insert Host Key + Combo menu item in this menu. + + + + + + + MouseIntegration + + + + + Do not show the + MouseIntegration menu + item in this menu. + + + + + + + + This is a per-VM or global setting. Any combination of the above + is allowed. To restore the default behavior, use + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeInputMenuActions + + + Use the following command to disable certain actions of the + Devices menu: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeDevicesMenuActions OPTION[,OPTION...] + + + where OPTION is one of the following keywords + to disable actions in the + Devices menu: + + + + + + + All + + + + + Do not show any menu item in this menu. + + + + + + + HardDrives + + + + + Do not show the Hard + Disks menu item in this menu. + + + + + + + OpticalDevices + + + + + Do not show the Optical + Devices menu item in this menu. + + + + + + + FloppyDevices + + + + + Do not show the Floppy + Drives menu item in this menu. + + + + + + + Audio + + + + + Do not show the Audio + menu item in this menu. + + + + + + + Network + + + + + Do not show the Network + menu item in this menu. + + + + + + + NetworkSettings + + + + + Do not show the Network + Settings menu item in this menu. + + + + + + + USBDevices + + + + + Do not show the USB menu + item in this menu. + + + + + + + WebCams + + + + + Do not show the WebCams + menu item in this menu. + + + + + + + SharedFolders + + + + + Do not show the Shared + Folders menu item in this menu. + + + + + + + SharedFoldersSettings + + + + + Do not show the Shared Folders + Settings... menu item in this menu. + + + + + + + SharedClipboard + + + + + Do not show the Shared + Clipboard menu item in this menu. + + + + + + + DragAndDrop + + + + + Do not show the Drag and + Drop menu item in this menu. + + + + + + + InstallGuestTools + + + + + Do not show the Insert Guest + Additions CD image... menu item in this menu. + + + + + + + + This is a per-VM or global or global setting. Any combination of + the above is allowed. To restore the default behavior, use + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeDevicesMenuActions + + + Use the following command to disable certain actions of the + Debug menu: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeDebuggerMenuActions OPTION[,OPTION...] + + + where OPTION is one of the following keywords + to disable actions in the Debug menu, which + is normally completely disabled: + + + + + + + All + + + + + Do not show any menu item in this menu. + + + + + + + Statistics + + + + + Do not show the + Statistics... menu item + in this menu. + + + + + + + CommandLine + + + + + Do not show the Command + Line... menu item in this menu. + + + + + + + Logging + + + + + Do not show the + Logging... menu item in + this menu. + + + + + + + LogDialog + + + + + Do not show the Show + Log... menu item in this menu. + + + + + + + GuestControlConsole + + + + + Do not show the Guest Control + Terminal... menu item in this menu. + + + + + + + + This is a per-VM or global setting. Any combination of the above + is allowed. To restore the default behavior, use + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeDebuggerMenuActions + + + Use the following command to disable certain actions of the + View menu: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeHelpMenuActions OPTION[,OPTION...] + + + where OPTION is one of the following keywords + to disable actions in the Help + menu, which is normally completely disabled: + + + + + + + All + + + + + Do not show any menu item in this menu. + + + + + + + Contents + + + + + Do not show the + Contents... menu item in + this menu. + + + + + + + WebSite + + + + + Do not show the VirtualBox Web + Site... menu item in this menu. + + + + + + + BugTracker + + + + + Do not show the VirtualBox Bug + Tracker... menu item in this menu. + + + + + + + Forums + + + + + Do not show the VirtualBox + Forums... menu item in this menu. + + + + + + + Oracle + + + + + Do not show the Oracle Web + Site... menu item in this menu. + + + + + + + About + + + + + Do not show the About + VirtualBox... menu item in this menu. Only for + non-macOS hosts. + + + + + + + + This is a per-VM or global setting. Any combination of the above + is allowed. To restore the default behavior, use + + +VBoxManage setextradata "VM name"|global GUI/RestrictedRuntimeHelpMenuActions + + + + + + Configure VM Window Status Bar Entries + + + You can disable certain status bar items: + + +VBoxManage setextradata "VM name"|global GUI/RestrictedStatusBarIndicators OPTION[,OPTION...] + + + where OPTION is one of the following + keywords: + + + + + + + HardDisks + + + + + Do not show the hard disk icon in the VM window status + bar. By default the hard disk icon is only shown if the VM + configuration contains one or more hard disks. + + + + + + + OpticalDisks + + + + + Do not show the CD icon in the VM window status bar. By + default the CD icon is only shown if the VM configuration + contains one or more CD drives. + + + + + + + FloppyDisks + + + + + Do not show the floppy icon in the VM window status bar. + By default the floppy icon is only shown if the VM + configuration contains one or more floppy drives. + + + + + + + Network + + + + + Do not show the network icon in the VM window status bar. + By default the network icon is only shown if the VM + configuration contains one or more active network + adapters. + + + + + + + USB + + + + + Do not show the USB icon in the status bar. + + + + + + + SharedFolders + + + + + Do not show the shared folders icon in the status bar. + + + + + + + Capture + + + + + Do not show the capture icon in the status bar. + + + + + + + Features + + + + + Do not show the CPU features icon in the status bar. + + + + + + + Mouse + + + + + Do not show the mouse icon in the status bar. + + + + + + + Keyboard + + + + + Do not show the keyboard icon in the status bar. + + + + + + + + This is a per-VM or global setting. Any combination of the above + is allowed. If all options are specified, no icons are displayed + in the status bar of the VM window. To restore the default + behavior, use + + +VBoxManage setextradata "VM name"|global GUI/RestrictedStatusBarIndicators + + + + + + Configure VM Window Visual Modes + + + You can disable certain VM visual modes: + + +$ VBoxManage setextradata VM-name GUI/RestrictedVisualStates property[,property...] + + + property is one of the following: + + + + + + + Fullscreen + + + + + Do not allow to switch the VM into full screen mode. + + + + + + + Seamless + + + + + Do not allow to switch the VM into seamless mode. + + + + + + + Scale + + + + + Do not allow to switch the VM into scale mode. + + + + + + + + This is a per-VM setting. You can specify any combination of + properties. To restore the default behavior, use the following + command: + + +$ VBoxManage setextradata VM-name GUI/RestrictedVisualStates + + + + + + Host Key Customization + + + To disable all Host key combinations, open the preferences and + change the Host key to None. This might be useful when using + &product-name; in a kiosk mode. + + + + To redefine or disable certain Host key actions, use the + following command: + + +$ VBoxManage setextradata global GUI/Input/MachineShortcuts "FullscreenMode=F,...." + + + The following table shows the possible Host key actions, + together with their default Host key shortcut. Setting an action + to None will disable that Host key action. + + + + Host Key Customization + + + + + Action + + + Default Key + + + Action + + + + + + + TakeSnapshot + + + T + + + Take a snapshot + + + + + TakeScreenshot + + + E + + + Take a screenshot + + + + + MouseIntegration + + + I + + + Toggle mouse integration + + + + + TypeCAD + + + Del + + + Inject Ctrl+Alt+Del + + + + + TypeCABS + + + Backspace + + + Inject Ctrl+Alt+Backspace + + + + + Pause + + + P + + + Pause the VM + + + + + Reset + + + R + + Hard reset the guest + + + + SaveState + + + + Save the VM state and terminate the VM + + + + + Shutdown + + + H + + + Press the virtual ACPI power button + + + + + PowerOff + + + + Power off the VM without saving the state + + + + + Close + + + Q + + + Show the Close VM dialog + + + + + FullscreenMode + + + F + + + Switch the VM into full screen mode + + + + + SeamlessMode + + + L + + + Switch the VM into seamless mode + + + + + ScaleMode + + + C + + + Switch the VM into scaled mode + + + + + GuestAutoResize + + + G + + + Automatically resize the guest window + + + + + WindowAdjust + + + A + + + Immediately resize the guest window + + + + + PopupMenu + + + Home + + + Show the popup menu in full screen mode and seamless + mode + + + + + SettingsDialog + + + S + + + Open the VM Settings dialog + + + + + InformationDialog + + + N + + + Show the VM Session Information window + + + + + NetworkAdaptersDialog + + + + Show the VM Network Adapters dialog + + + + + SharedFoldersDialog + + + + Show the VM Shared Folders dialog + + + + + InstallGuestAdditions + + + D + + + Mount the ISO containing the Guest Additions + + + + +
+ + + To disable full screen mode and seamless mode, use the following + command: + + +$ VBoxManage setextradata global GUI/Input/MachineShortcuts "FullscreenMode=None,SeamlessMode=None" + +
+ + + + Action when Terminating the VM + + + You can disallow certain actions when terminating a VM. To + disallow specific actions, use the following command: + + +$ VBoxManage setextradata VM-name GUI/RestrictedCloseActions property[,property...] + + + property is one of the following: + + + + + + + SaveState + + + + + Do not allow the user to save the VM state when + terminating the VM. + + + + + + + Shutdown + + + + + Do not allow the user to shutdown the VM by sending the + ACPI power-off event to the guest. + + + + + + + PowerOff + + + + + Do not allow the user to power off the VM. + + + + + + + PowerOffRestoringSnapshot + + + + + Do not allow the user to return to the last snapshot when + powering off the VM. + + + + + + + Detach + + + + + Do not allow the user to detach from the VM process if the + VM was started in separate mode. + + + + + + + + This is a per-VM setting. You can specify any combination of + properties. If all properties are specified, the VM cannot be + shut down. + + + + + + + Default Action when Terminating the VM + + + You can define a specific action for terminating a VM. In + contrast to the setting decribed in the previous section, this + setting allows only one action when the user terminates the VM. + No exit menu is shown. Use the following command: + + +$ VBoxManage setextradata VM-name GUI/DefaultCloseAction action + + + action is one of the following: + + + + + + + SaveState + + + + + Save the VM state before terminating the VM process. + + + + + + + Shutdown + + + + + The VM is shut down by sending the ACPI power-off event to + the guest. + + + + + + + PowerOff + + + + + The VM is powered off. + + + + + + + PowerOffRestoringSnapshot + + + + + The VM is powered off and the saved state returns to the + last snapshot. + + + + + + + Detach + + + + + Terminate the frontend but leave the VM process running. + + + + + + + + This is a per-VM setting. You can specify any combination of + properties. If all properties are specified, the VM cannot be + shut down. + + + + + + + Action for Handling a Guru Meditation + + + A VM runs into a Guru Meditation if there is a problem which + cannot be fixed by other means than terminating the process. The + default is to show a message window which instructs the user to + open a bug report. + + + + This behavior can be configured as follows: + + +$ VBoxManage setextradata VM-name GUI/GuruMeditationHandler mode + + + mode is one of the following: + + + + + + + Default + + + + + A message window is shown. After the user confirmed, the + VM is terminated. + + + + + + + PowerOff + + + + + The VM is immediately powered-off without showing any + message window. The VM logfile will show information about + what happened. + + + + + + + Ignore + + + + + The VM is left in stuck mode. Execution is stopped but no + message window is shown. The VM has to be powered off + manually. + + + + + + + + This is a per-VM setting. + + + + + + + Configuring Automatic Mouse Capturing + + + By default, the mouse is captured if the user clicks on the + guest window and the guest expects relative mouse coordinates at + this time. This happens if the pointing device is configured as + PS/2 mouse and the guest has not yet started the &product-name; + Guest Additions. For instance, the guest is booting or the Guest + Additions are not installed, or if the pointing device is + configured as a USB tablet but the guest has no USB driver + loaded yet. Once the Guest Additions become active or the USB + guest driver is started, the mouse capture is automatically + released. + + + + The default behavior is sometimes not desired. Therefore it can + be configured as follows: + + +VBoxManage setextradata VM-name GUI/MouseCapturePolicy mode + + + mode is one of the following: + + + + + + + Default + + + + + The default behavior as described above. + + + + + + + HostComboOnly + + + + + The mouse is only captured if the Host Key is toggled. + + + + + + + Disabled + + + + + The mouse is never captured, also not by toggling the Host + Key + + + + + + + + This is a per-VM setting. + + + + + + + Requesting Legacy Full-Screen Mode + + + &product-name; uses special window manager facilities to switch + a multi-screen machine to full-screen on a multi-monitor host + system. However, not all window managers provide these + facilities correctly. &product-name; can be configured to use a + legacy method of switching to full-screen mode instead, by using + the command: + + +VBoxManage setextradata global GUI/Fullscreen/LegacyMode true + + + You can go back to the default method by using the following + command: + + +VBoxManage setextradata global GUI/Fullscreen/LegacyMode + + + This is a global setting. + + + + + + + Removing Certain Modes of Networking From the GUI + + + It is possible to remove networking modes from &product-name; + GUI. To do this, use the following command: + + +VBoxManage setextradata global GUI/RestrictedNetworkAttachmentTypes property[,property...] + + + property is one of the following: + + + + + + + NAT + + + + + Remove the NAT option + from the GUI. + + + + + + + NATNetwork + + + + + Remove the NAT network + option from the GUI. + + + + + + + BridgedAdapter + + + + + Remove the Bridged + networking option from the GUI. + + + + + + + InternalNetwork + + + + + Remove the Internal + networking option from the GUI. + + + + + + + HostOnlyAdapter + + + + + Remove the Host Only + networking option from the GUI. + + + + + + + GenericDriver + + + + + Remove the Generic + networking option from the GUI. + + + + + + + + This is a global setting. You can specify any combination of + properties. To restore the default behavior, use the following + command: + + +VBoxManage setextradata global GUI/RestrictedNetworkAttachmentTypes + + + +
+ + + + Starting the &product-name; Web Service Automatically + + + The &product-name; web service, vboxwebsrv, is + used for controlling &product-name; remotely. It is documented in + detail in the &product-name; Software Development Kit (SDK). See + . Web service start scripts are + available for supported host operating systems. The following + sections describe how to use the scripts. The &product-name; web + service is never started automatically as a result of a standard + installation. + + + + + Linux: Starting the Web Service With init + + + On Linux, the web service can be automatically started during + host boot by adding appropriate parameters to the file + /etc/default/virtualbox. There is one + mandatory parameter, VBOXWEB_USER, which must + be set to the user which will later start the VMs. The + parameters in the following table all start with the + VBOXWEB_ prefix string. For example: + VBOXWEB_HOST and + VBOXWEB_PORT. + + + + Web Service Configuration Parameters + + + + + Parameter + + + Description + + + Default + + + + + + + USER + + + The user which the web service runs as + + + + + + HOST + + + The host to bind the web service to + + + localhost + + + + + PORT + + + The port to bind the web service to + + + 18083 + + + + + SSL_KEYFILE + + + Server key and certificate file, in PEM format + + + + + + SSL_PASSWORDFILE + + + File name for password to server key + + + + + + SSL_CACERT + + + CA certificate file, in PEM format + + + + + + SSL_CAPATH + + + CA certificate path + + + + + + SSL_DHFILE + + + DH file name or DH key length in bits + + + + + + SSL_RANDFILE + + + File containing seed for random number generator + + + + + + TIMEOUT + + + Session timeout in seconds, 0 disables timeouts + + + 300 + + + + + CHECK_INTERVAL + + + Frequency of timeout checks in seconds + + + 5 + + + + + THREADS + + + Maximum number of worker threads to run in parallel + + + 100 + + + + + KEEPALIVE + + + Maximum number of requests before a socket will be + closed + + + 100 + + + + + ROTATE + + + Number of log files, 0 disables log rotation + + + 10 + + + + + LOGSIZE + + + Maximum log file size to trigger rotation, in bytes + + + 1MB + + + + + LOGINTERVAL + + + Maximum time interval to trigger log rotation, in + seconds + + + 1 day + + + + +
+ + + Setting the parameter SSL_KEYFILE enables the + SSL/TLS support. Using encryption is strongly encouraged, as + otherwise everything, including passwords, is transferred in + clear text. + + +
+ + + + Oracle Solaris: Starting the Web Service With SMF + + + On Oracle Solaris hosts, the &product-name; web service daemon + is integrated into the SMF framework. You can change the + parameters, but do not have to if the defaults below already + match your needs: + + +svccfg -s svc:/application/virtualbox/webservice:default setprop config/host=localhost +svccfg -s svc:/application/virtualbox/webservice:default setprop config/port=18083 +svccfg -s svc:/application/virtualbox/webservice:default setprop config/user=root + + + The table in showing the + parameter names and defaults also applies for Oracle Solaris. + The parameter names must be changed to lowercase and a prefix of + config/ has to be added. For example: + config/user or + config/ssl_keyfile. If you make any change, + do not forget to run the following command to put the changes + into effect immediately: + + +svcadm refresh svc:/application/virtualbox/webservice:default + + + If you forget the above command then the previous settings are + used when enabling the service. Check the current property + settings as follows: + + +svcprop -p config svc:/application/virtualbox/webservice:default + + + When everything is configured correctly you can start the + &product-name; web service with the following command: + + +svcadm enable svc:/application/virtualbox/webservice:default + + + For more information about SMF, please refer to the Oracle + Solaris documentation. + + + + + + + macOS: Starting the Web Service With launchd + + + On macOS, launchd is used to start the &product-name; + webservice. An example configuration file can be found in + $HOME/Library/LaunchAgents/org.virtualbox.vboxwebsrv.plist. + It can be enabled by changing the Disabled + key from true to false. To + manually start the service use the following command: + + +launchctl load ~/Library/LaunchAgents/org.virtualbox.vboxwebsrv.plist + + + For additional information on how launchd services could be + configured see: + + + + . + + + + +
+ + + + &product-name; Watchdog + + + The memory ballooning service, formerly known as + VBoxBalloonCtrl, was renamed to VBoxWatchdog. + This service now incorporates the following host services that are + meant to be run in a server environment: + + + + + + + Memory ballooning control. + This service automatically takes care of a VM's configured + memory balloon. See . This + service is useful for server environments where VMs may + dynamically require more or less memory during runtime. + + + + The service periodically checks a VM's current memory balloon + and its free guest RAM and automatically adjusts the current + memory balloon by inflating or deflating it accordingly. This + handling only applies to running VMs having recent Guest + Additions installed. + + + + + + Host isolation detection. + This service provides a way to detect whether the host cannot + reach the specific &product-name; server instance anymore and + take appropriate actions, such as shutting down, saving the + current state or even powering down certain VMs. + + + + + + + All configuration values can be either specified using the command + line or global extradata, whereas command line values always have + a higher priority when set. Some of the configuration values also + be specified on a per-VM basis. So the overall lookup order is: + command line, per-VM basis extradata if available, global + extradata. + + + + + Memory Ballooning Control + + + The memory ballooning control inflates and deflates the memory + balloon of VMs based on the VMs free memory and the desired + maximum balloon size. + + + + To set up the memory ballooning control the maximum ballooning + size a VM can reach needs to be set. This can be specified using + the command line, as follows: + + +--balloon-max <Size in MB> + + + Using a per-VM basis extradata value, as follows: + + +VBoxManage setextradata <VM-Name> VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax <Size in MB> + + + Using a global extradata value, as follows: + + +VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax <Size in MB> + + + + If no maximum ballooning size is specified by at least one of + the parameters above, no ballooning will be performed at all. + + + + + Setting the ballooning increment in MB can be either done using + command line, as follows: + + +--balloon-inc <Size in MB> + + + Using a global extradata value, as follows: + + +VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonIncrementMB <Size in MB> + + + The default ballooning increment is 256 MB if not specified. + + + + The same options apply for a ballooning decrement. Using the + command line, as follows: + + +--balloon-dec <Size in MB> + + + Using a global extradata value, as follows: + + +VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonDecrementMB <Size in MB> + + + The default ballooning decrement is 128 MB if not specified. + + + + The lower limit in MB for a balloon can be defined using the + command line, as follows: + + +--balloon-lower-limit <Size in MB> + + + Using a global extradata value, as follows: + + +VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonLowerLimitMB <Size in MB> + + + The default lower limit is 128 MB if not specified. + + + + + + + Host Isolation Detection + + + To detect whether a host is being isolated, that is, the host + cannot reach the &product-name; server instance anymore, the + host needs to set an alternating value to a global extradata + value within a time period. If this value is not set within that + time period a timeout occurred and the so-called host isolation + response will be performed to the VMs handled. Which VMs are + handled can be controlled by defining VM groups and assigning + VMs to those groups. By default no groups are set, meaning that + all VMs on the server will be handled when no host response is + received within 30 seconds. + + + + Set the groups handled by the host isolation detection using the + following command line: + + +--apimon-groups=<string[,stringN]> + + + Using a global extradata value, as follows: + + +VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/Groups <string[,stringN]> + + + Set the host isolation timeout using the following command line: + + +--apimon-isln-timeout=<ms> + + + Using a global extradata value, as follows: + + +VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationTimeoutMS <ms> + + + Set the actual host isolation response using the following + command line: + + +--apimon-isln-response=<cmd> + + + Using a global extradata value, as follows: + + +VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationResponse <cmd> + + + The following response commands are available: + + + + + + + none. This has no effect. + + + + + + pause. Pauses the execution of a VM. + + + + + + poweroff. Shuts down the VM by pressing + the virtual power button. The VM will not have the chance of + saving any data or veto the shutdown process. + + + + + + save. Saves the current machine state and + powers off the VM afterwards. If saving the machine state + fails the VM will be paused. + + + + + + shutdown. Shuts down the VM in a gentle + way by sending an ACPI shutdown event to + the VM's operating system. The OS then has the chance of + doing a clean shutdown. + + + + + + + + + + More Information + + + For more advanced options and parameters like verbose logging + check the built-in command line help accessible with + . + + + + + + + Linux: Starting the Watchdog Service With init + + + On Linux, the watchdog service can be automatically started + during host boot by adding appropriate parameters to the file + /etc/default/virtualbox. There is one + mandatory parameter, VBOXWATCHDOG_USER, which + must be set to the user which will later start the VMs. For + backward compatibility you can also specify + VBOXBALLOONCTRL_USER. + + + + The parameters in the following table all start with the + VBOXWATCHDOG_ prefix string. For example: + VBOXWATCHDOG_BALLOON_INTERVAL and + VBOXWATCHDOG_LOGSIZE. Legacy parameters such + as VBOXBALLOONCTRL_INTERVAL can still be + used. + + + + &product-name; Watchdog Configuration Parameters + + + + + Parameter + + + Description + + + Default + + + + + + + USER + + + The user which the watchdog service runs as + + + + + + ROTATE + + + Number of log files, 0 disables log rotation + + + 10 + + + + + LOGSIZE + + + Maximum log file size to trigger rotation, in bytes + + + 1MB + + + + + LOGINTERVAL + + + Maximum time interval to trigger log rotation, in + seconds + + + 1 day + + + + + BALLOON_INTERVAL + + + Interval for checking the balloon size, in + milliseconds + + + 30000 + + + + + BALLOON_INCREMENT + + + Balloon size increment, in megabytes + + + 256 + + + + + BALLOON_DECREMENT + + + Balloon size decrement, in megabytes + + + 128 + + + + + BALLOON_LOWERLIMIT + + + Balloon size lower limit, in megabytes + + + 64 + + + + + BALLOON_SAFETYMARGIN + + + Free memory required for decreasing the balloon size, + in megabytes + + + 1024 + + + + +
+ +
+ + + + Oracle Solaris: Starting the Watchdog Service With SMF + + + On Oracle Solaris hosts, the &product-name; watchdog service + daemon is integrated into the SMF framework. You can change the + parameters, but do not have to if the defaults already match + your needs: + + +svccfg -s svc:/application/virtualbox/balloonctrl:default setprop \ + config/balloon_interval=10000 +svccfg -s svc:/application/virtualbox/balloonctrl:default setprop \ +config/balloon_safetymargin=134217728 + + + also applies + for Oracle Solaris. The parameter names must be changed to + lowercase and a prefix of config/ has to be + added. For example: config/user or + config/balloon_safetymargin. If you made any + change, do not forget to run the following command to put the + changes into effect immediately: + + +svcadm refresh svc:/application/virtualbox/balloonctrl:default + + + If you forget the above command then the previous settings will + be used when enabling the service. Check the current property + settings with the following command: + + +svcprop -p config svc:/application/virtualbox/balloonctrl:default + + + When everything is configured correctly you can start the + &product-name; watchdog service with the following command: + + +svcadm enable svc:/application/virtualbox/balloonctrl:default + + + For more information about SMF, please refer to the Oracle + Solaris documentation. + + + + +
+ + + + Other Extension Packs + + + Another extension pack called VNC is available. This extension + pack is open source and replaces the previous integration of the + VNC remote access protocol. This is experimental code, and is + initially available in the &product-name; source code package + only. It is to a large portion code contributed by users, and is + not supported in any way by Oracle. + + + + The keyboard handling is severely limited, and only the US + keyboard layout works. Other keyboard layouts will have at least + some keys which produce the wrong results, often with quite + surprising effects, and for layouts which have significant + differences to the US keyboard layout it is most likely unusable. + + + + It is possible to install both the &product-name; Extension Pack + and VNC, but only one VRDE module can be active at any time. The + following command switches to the VNC VRDE module in VNC: + + +VBoxManage setproperty vrdeextpack VNC + + + Configuring the remote access works very similarly to VRDP, see + , with some limitations. VNC does not + support specifying several port numbers, and the authentication is + done differently. VNC can only deal with password authentication, + and there is no option to use password hashes. This leaves no + other choice than having a clear-text password in the VM + configuration, which can be set with the following command: + + +VBoxManage modifyvm VM-name --vrde-property VNCPassword=secret + + + The user is responsible for keeping this password secret, and it + should be removed when a VM configuration is passed to another + person, for whatever purpose. Some VNC servers claim to have + encrypted passwords in the configuration. This is not true + encryption, it is only concealing the passwords, which is only as + secure as using clear-text passwords. + + + + The following command switches back to VRDP, if installed: + + +VBoxManage setproperty vrdeextpack "&product-name; Extension Pack" + + + + + + Starting Virtual Machines During System Boot + + + You can start VMs automatically during system boot on Linux, + Oracle Solaris, and macOS platforms for all users. + + + + + Linux: Starting the Autostart Service With init + + + On Linux, the autostart service is activated by setting two + variables in /etc/default/virtualbox. The + first one is VBOXAUTOSTART_DB which contains + an absolute path to the autostart database directory. The + directory should have write access for every user who should be + able to start virtual machines automatically. Furthermore the + directory should have the sticky bit set. The second variable is + VBOXAUTOSTART_CONFIG which points the service + to the autostart configuration file which is used during boot to + determine whether to allow individual users to start a VM + automatically and configure startup delays. The configuration + file can be placed in /etc/vbox and + contains several options. One is + default_policy which controls whether the + autostart service allows or denies to start a VM for users which + are not in the exception list. The exception list starts with + exception_list and contains a comma separated + list with usernames. Furthermore a separate startup delay can be + configured for every user to avoid overloading the host. A + sample configuration is given below: + + + +# Default policy is to deny starting a VM, the other option is "allow". +default_policy = deny + +# Bob is allowed to start virtual machines but starting them +# will be delayed for 10 seconds +bob = { + allow = true + startup_delay = 10 +} + +# Alice is not allowed to start virtual machines, useful to exclude certain users +# if the default policy is set to allow. +alice = { + allow = false +} + + + + Any user who wants to enable autostart for individual machines + must set the path to the autostart database directory with the + following command: + + +VBoxManage setproperty autostartdbpath autostart-directory + + + + + + Oracle Solaris: Starting the Autostart Service With SMF + + + On Oracle Solaris hosts, the &product-name; autostart daemon is + integrated into the SMF framework. To enable it you must point + the service to an existing configuration file which has the same + format as on Linux, see . For + example: + + +# svccfg -s svc:/application/virtualbox/autostart:default setprop \ + config/config=/etc/vbox/autostart.cfg + + + When everything is configured correctly you can start the + &product-name; autostart service with the following command: + + +# svcadm enable svc:/application/virtualbox/autostart:default + + + For more information about SMF, see the Oracle Solaris + documentation. + + + + + + + macOS: Starting the Autostart Service With launchd + + + On macOS, launchd is used to start the &product-name; autostart + service. An example configuration file can be found in + /Applications/VirtualBox.app/Contents/MacOS/org.virtualbox.vboxautostart.plist. + To enable the service copy the file to + /Library/LaunchDaemons and change the + Disabled key from true to + false. Furthermore replace the second + parameter to an existing configuration file which has the same + format as on Linux, see . + + + + To manually start the service use the following command: + + +# launchctl load /Library/LaunchDaemons/org.virtualbox.vboxautostart.plist + + + For additional information on how launchd services can be + configured see: + + + + . + + + + + + + Windows: Starting the Autostart Service + + + On Windows, autostart functionality consist of two components. + The first component is a configuration file where the + administrator can both set a delayed start for the VMs and + temporarily disable autostarting for a particular user. The + configuration file should be located in a folder accessible by + all required users but it should have permissions allowing only + reading by everyone but administrators. The configuration file + contains several options. The default_policy + controls whether the autostart service allows or denies starting + of a VM for users that are not in the exception list. The + exception list starts with exception_list and + contains a comma separated list with usernames. Furthermore, a + separate startup delay can be configured for every user to avoid + overloading the host. A sample configuration is given below: + + + + # Default policy is to deny starting a VM, the other option is "allow". + default_policy = deny + + # Bob is allowed to start virtual machines but starting them + # will be delayed for 10 seconds + bob = { + allow = true + startup_delay = 10 + } + + # Alice is not allowed to start virtual machines, useful to exclude certain users + # if the default policy is set to allow. + alice = { + allow = false + } + + + + The user name can be specified using the following forms: + "user", "domain\user", ".\user" and "user@domain". An + administrator must add the + VBOXAUTOSTART_CONFIG environment variable + into system variables containing the path to the configuration + file described above. The environment variable tells the + autostart services which configuration file is used. + + + + The second component of autostart functionality is a Windows + service. Every instance of this works on behalf of a particular + user using their credentials. + + + + To enable autostarting for a particular user, a member of the + administrators group must run the following command: + + +VBoxAutostartSvc install --user=user [--password-file=password_file] + + + The password file should contain the password followed by a line + break. The rest of the file is ignored. The user will be asked + for a password if the password file is not specified. + + + + To disable autostarting for particular user, a member of the + administrators group must run the following command: + + +VBoxAutostartSvc delete --user=user + + + If a user has changed their password then a member of the + administrators group must either reinstall the service or change + the service credentials using Windows Service Manager. Due to + Windows security policies, the autostart service cannot be + installed for users with empty passwords. + + + + Finally, the user should define which VMs should be started at + boot. The user should run the following command for every VM + they wish to start at boot: + + +VBoxManage modifyvm VM name or UUID --autostart-enabled on + + + The user can remove a particular VM from the VMs starting at + boot by running the following command: + + +VBoxManage modifyvm VM name or UUID --autostart-enabled off + + + + On Windows hosts, starting VMs via the autostart service might + cause some issues, as the virtual machines are starting within + the same session as VBoxSVC. For more information see + . + + + + + + + + + + Encryption of VMs + + + &product-name; enables you to transparently encrypt the VM data + stored in the configuration file, saved state, and EFI boot data + for the guest. + + + + &product-name; uses the AES algorithm in various modes. The + selected mode depends on the encrypting component of the VM. + &product-name; supports 128-bit or 256-bit data encryption keys + (DEK). The DEK is stored encrypted in the VM configuration file + and is decrypted during VM startup. + + + + Since the DEK is stored as part of the VM configuration file, it + is important that the file is kept safe. Losing the DEK means that + the data stored in the VM is lost irrecoverably. Having complete + and up to date backups of all data related to the VM is the + responsibility of the user. + + + + The VM, even if it is encrypted, may contain media encrypted with + different passwords. To deal with this, the password for the VM + has a password identifier, in the same way as passwords for media. + The password ID is an arbitrary string which uniquely identifies + the password in the VM and its media. You can use the same + password and ID for both the VM and its media. + + + + + Limitations of VM Encryption + + + There are some limitations the user needs to be aware of when + using this feature: + + + + + + + Exporting appliances containing an encrypted VM is not + possible, because the OVF specification does not support + this. The VM is therefore decrypted during export. + + + + + + The DEK is kept in memory while the VM is running to be able + to encrypt and decrypt VM data. While this should be obvious + the user needs to be aware of this because an attacker might + be able to extract the key on a compromised host and decrypt + the data. + + + + + + When encrypting or decrypting the VM, the password is passed + in clear text using the &product-name; API. This needs to be + kept in mind, especially when using third party API clients + which make use of the web service where the password might + be transmitted over the network. The use of HTTPS is + mandatory in such a case. + + + + + + + + + + Encrypting a VM + + + Encrypting a VM can be done either using &vbox-mgr; or the + VBoxManage. To encrypt an unencrypted VM with + VBoxManage, use: + + +VBoxManage encryptvm uuid|vmname setencryption --new-password filename|- \ +--cipher cipher-ID --new-password-id ID + + + To supply the encryption password, point + VBoxManage to the file where the password is + stored or specify to let + VBoxManage prompt for the password on the + command line. + + + + The cipher parameter specifies the cipher to use for encryption + and can be either AES-128 or + AES-256. The appropriate mode of operation, + such as GCM, CTR, or XTS will be selected by the VM depending on + the encrypting component. The specified password identifier can + be freely chosen by the user and is used for correct + identification when supplying multiple passwords for the VM. + + + + + + + Opening the Encrypted VM + + + When &product-name; has just started up the encrypted VM cannot + be opened and it stays inaccessible. Also, the encrypted VM + stays inaccessible if it was just registered without a password + or the password is incorrect. The user needs to provide the + password using &vbox-mgr; or with the following + VBoxManage command: + + +VBoxManage encryptvm uuid|vmname addpassword --password filename|- --password-id ID + + + To supply the encryption password point + VBoxManage to the file where the password is + stored or specify to let + VBoxManage prompt for the password on the + command line. + + + + If ID is the same as the password + identifier supplied when encrypting the VM it updates the + accessibility state. + + + + To remove the entered password from the VM memory, use + VBoxManage as follows: + + +VBoxManage encryptvm uuid|vmname removepassword ID + + + If ID is the same as the password + identifier supplied when encrypting the VM it updates the + accessibility state. + + + + + If a machine becomes inaccessible all passwords are purged. + You have to add required passwords again, using the + VBoxManage encryptvm + vmname addpassword + command. See . + + + + + + + + Decrypting Encrypted VMs + + + In some circumstances it might be required to decrypt previously + encrypted VMs. This can be done in &vbox-mgr; or using + VBoxManage with the following command: + + +VBoxManage encryptvm uuid|vmname setencryption --old-password file|- + + + The only required parameter is the password the VM was encrypted + with. The options are the same as for encrypting VMs. + + + + + + + + + &product-name; Expert Storage Management + + + In case the snapshot model of &product-name; is not sufficient it + is possible to enable a special mode which makes it possible to + reconfigure storage attachments while the VM is paused. The user + has to make sure that the disk data stays consistent to the guest + because unlike with hotplugging the guest is not informed about + detached or newly attached media. + + + + The expert storage management mode can be enabled per VM + executing: + + +$ VBoxManage setextradata VM-name "VBoxInternal2/SilentReconfigureWhilePaused" 1 + + + You can reconfigure storage attachments later while the VM is + paused by using the VBoxManage storageattach + command. + + + + + + + Handling of Host Power Management Events + + + Some host power management events are handled by &product-name;. + The actual behavior depends on the platform: + + + + + + + Host Suspends. This event is + generated when the host is about to suspend, that is, the host + saves the state to some non-volatile storage and powers off. + + + + This event is currently only handled on Windows hosts and Mac + OS X hosts. When this event is generated, &product-name; will + pause all running VMs. + + + + + + Host Resumes. This event is + generated when the host woke up from the suspended state. + + + + This event is currently only handled on Windows hosts and Mac + OS X hosts. When this event is generated, &product-name; will + resume all VMs which are where paused before. + + + + + + Battery Low. The battery + level reached a critical level, usually less than 5 percent + charged. + + + + This event is currently only handled on Windows hosts and Mac + OS X hosts. When this event is generated, &product-name; will + save the state and terminate all VMs in preparation of a + potential host powerdown. + + + + The behavior can be configured. By executing the following + command, no VM is saved: + + +$ VBoxManage setextradata global "VBoxInternal2/SavestateOnBatteryLow" 0 + + + This is a global setting as well as a per-VM setting. The + per-VM value has higher precedence than the global value. The + following command will save the state of all VMs but will not + save the state of VM "foo": + + +$ VBoxManage setextradata global "VBoxInternal2/SavestateOnBatteryLow" 1 +$ VBoxManage setextradata "foo" "VBoxInternal2/SavestateOnBatteryLow" 0 + + + The first line is actually not required as by default the + savestate action is performed. + + + + + + + + + + Passing Through SSE4.1/SSE4.2 Instructions + + + To provide SSE 4.1/SSE 4.2 support to guests, the host CPU has to + implement these instruction sets. The instruction sets are exposed + to guests by default, but it is possible to disable the + instructions for certain guests by using the following commands: + + +$ VBoxManage setextradata VM-name \ +VBoxInternal/CPUM/IsaExts/SSE4.1 0 +$ VBoxManage setextradata VM-name \ +VBoxInternal/CPUM/IsaExts/SSE4.2 0 + + + These are per-VM settings which are enabled by default. + + + + + + + Support for Keyboard Indicator Synchronization + + + This feature makes the host keyboard indicators (LEDs) match those + of the VM's emulated keyboard when the machine window is active. + It is currently implemented for macOS and Windows hosts. This + feature is enabled by default on supported host OSes. You can + disable this feature by running the following command: + + +$ VBoxManage setextradata VM-name GUI/HidLedsSync 0 + + + This is a per-VM setting that is enabled by default. + + + + + + + Capturing USB Traffic for Selected Devices + + + You can capture USB traffic for single USB devices or on the root + hub level, which captures the traffic of all USB devices attached + to the root hub. &product-name; stores the traffic in a format + which is compatible with Wireshark. To capture the traffic of a + specific USB device it must be attached to the VM with + VBoxManage using the following command: + + +VBoxManage controlvm VM-name usbattach device uuid|address --capturefile filename + + + In order to enable capturing on the root hub use the following + command while the VM is not running: + + +VBoxManage setextradata VM-name \ +VBoxInternal/Devices/usb-ehci/0/LUN#0/Config/CaptureFilename filename + + + The command above enables capturing on the root hub attached to + the EHCI controller. To enable it for the OHCI or XHCI controller + replace usb-ehci with + usb-ohci or usb-xhci, + respectively. + + + + + + + Configuring the Heartbeat Service + + + &product-name; ships a simple heartbeat service. Once the Guest + Additions are active, the guest sends frequent heartbeat pings to + the host. If the guest stops sending the heartbeat pings without + properly terminating the service, the VM process will log this + event in the VBox.log file. In the future it might be possible to + configure dedicated actions but for now there is only a warning in + the log file. + + + + There are two parameters to configure. The heartbeat + interval defines the time between two heartbeat pings. + The default value is 2 seconds, that is, the heartbeat service of + the &product-name; Guest Additions will send a heartbeat ping + every two seconds. The value in nanoseconds can be configured like + this: + + +VBoxManage setextradata VM-name \ +VBoxInternal/Devices/VMMDev/0/Config/HeartbeatInterval 2000000000 + + + The heartbeat timeout defines the time the + host waits starting from the last heartbeat ping before it defines + the guest as unresponsive. The default value is 2 times the + heartbeat interval (4 seconds) and can be configured as following, + in nanoseconds: + + +VBoxManage setextradata VM-name \ +VBoxInternal/Devices/VMMDev/0/Config/HeartbeatTimeout 4000000000 + + + If the heartbeat timeout expires, there will be a log message like + VMMDev: HeartBeatCheckTimer: Guest seems to be + unresponsive. Last heartbeat received 5 seconds ago. If + another heartbeat ping arrives after this warning, there will be a + log message like VMMDev: GuestHeartBeat: Guest is + alive. + + + + + + + Encryption of Disk Images + + + &product-name; enables you to transparently encrypt the data + stored in hard disk images for the guest. It does not depend on a + specific image format to be used. Images which have the data + encrypted are not portable between &product-name; and other + virtualization software. + + + + &product-name; uses the AES algorithm in XTS mode and supports + 128-bit or 256-bit data encryption keys (DEK). The DEK is stored + encrypted in the medium properties and is decrypted during VM + startup by entering a password which was chosen when the image was + encrypted. + + + + Since the DEK is stored as part of the VM configuration file, it + is important that it is kept safe. Losing the DEK means that the + data stored in the disk images is lost irrecoverably. Having + complete and up to date backups of all data related to the VM is + the responsibility of the user. + + + + + Limitations of Disk Encryption + + + There are some limitations the user needs to be aware of when + using this feature: + + + + + + + This feature is part of the &product-name; Extension Pack, + which needs to be installed. Otherwise disk encryption is + unavailable. + + + + + + Since encryption works only on the stored user data, it is + currently not possible to check for metadata integrity of + the disk image. Attackers might destroy data by removing or + changing blocks of data in the image or change metadata + items such as the disk size. + + + + + + Exporting appliances which contain encrypted disk images is + not possible because the OVF specification does not support + this. All images are therefore decrypted during export. + + + + + + The DEK is kept in memory while the VM is running to be able + to decrypt data read and encrypt data written by the guest. + While this should be obvious the user needs to be aware of + this because an attacker might be able to extract the key on + a compromised host and decrypt the data. + + + + + + When encrypting or decrypting the images, the password is + passed in clear text using the &product-name; API. This + needs to be kept in mind, especially when using third party + API clients which make use of the webservice where the + password might be transmitted over the network. The use of + HTTPS is mandatory in such a case. + + + + + + Encrypting images with differencing images is only possible + if there are no snapshots or a linear chain of snapshots. + This limitation may be addressed in a future &product-name; + version. + + + + + + The disk encryption feature can protect the content of the + disks configured for a VM only. It does not cover any other + data related to a VM, including saved state or the + configuration file itself. + + + + + + + + + + Encrypting Disk Images + + + Encrypting disk images can be done either using &vbox-mgr; or + the VBoxManage. While &vbox-mgr; is easier to + use, it works on a per VM basis and encrypts all disk images + attached to the specific VM. With VBoxManage + one can encrypt individual images, including all differencing + images. To encrypt an unencrypted medium with + VBoxManage, use: + + +VBoxManage encryptmedium uuid|filename \ +--newpassword filename|- --cipher cipher-ID --newpasswordid "ID + + + To supply the encryption password point + VBoxManage to the file where the password is + stored or specify to let VBoxManage ask you + for the password on the command line. + + + + The cipher parameter specifies the cipher to use for encryption + and can be either AES-XTS128-PLAIN64 or + AES-XTS256-PLAIN64. The specified password + identifier can be freely chosen by the user and is used for + correct identification when supplying multiple passwords during + VM startup. + + + + If the user uses the same password when encrypting multiple + images and also the same password identifier, the user needs to + supply the password only once during VM startup. + + + + + + + Starting a VM with Encrypted Images + + + When a VM is started using &vbox-mgr;, a dialog will open where + the user needs to enter all passwords for all encrypted images + attached to the VM. If another frontend like VBoxHeadless is + used, the VM will be paused as soon as the guest tries to access + an encrypted disk. The user needs to provide the passwords + through VBoxManage using the following + command: + + +VBoxManage controlvm uuid|vmname addencpassword ID password [--removeonsuspend yes|no] + + + ID must be the same as the password + identifier supplied when encrypting the images. + password is the password used when + encrypting the images. Optionally, you can specify + to specify whether to + remove the password from VM memory when the VM is suspended. + Before the VM can be resumed, the user needs to supply the + passwords again. This is useful when a VM is suspended by a host + suspend event and the user does not want the password to remain + in memory. + + + + + + + Decrypting Encrypted Images + + + In some circumstances it might be required to decrypt previously + encrypted images. This can be done in &vbox-mgr; for a complete + VM or using VBoxManage with the following + command: + + +VBoxManage encryptmedium uuid|filename --oldpassword file|- + + + The only required parameter is the password the image was + encrypted with. The options are the same as for encrypting + images. + + + + + + + + + Paravirtualized Debugging + + + This section covers debugging of guest operating systems using + interfaces supported by paravirtualization providers. + + + + + Paravirtualized debugging significantly alter guest operating + system behaviour and should only be used by expert users for + debugging and diagnostics. + + + + + These debug options are specified as a string of key-value pairs + separated by commas. An empty string disables paravirtualized + debugging. + + + + + Hyper-V Debug Options + + + All of the options listed below are optional, and thus the + default value specified will be used when the corresponding + key-value pair is not specified. + + + + + + + Key: + enabled + + + + Value: 0 or 1 + + + + Default: 0 + + + + Specify 1 to enable the Hyper-V debug + interface. If this key-value pair is not specified or the + value is not 1, the Hyper-V debug + interface is disabled regardless of other key-value pairs + being present. + + + + + + Key: + address + + + + Value: IPv4 address + + + + Default: 127.0.0.1 + + + + Specify the IPv4 address where the remote debugger is + connected. + + + + + + Key: + port + + + + Value: UDP port number + + + + Default: 50000 + + + + Specify the UDP port number where the remote debugger is + connected. + + + + + + Key: + vendor + + + + Value: Hyper-V vendor signature reported by CPUID to the + guest + + + + Default: When debugging is enabled: Microsoft + Hv, otherwise: VBoxVBoxVBox + + + + Specify the Hyper-V vendor signature which is exposed to the + guest by CPUID. For debugging Microsoft Windows guests, it + is required the hypervisor reports the Microsoft vendor. + + + + + + Key: + hypercallinterface + + + + + Value: 0 or 1 + + + + Default: 0 + + + + Specify whether hypercalls should be suggested for + initiating debug data transfers between host and guest + rather than MSRs when requested by the guest. + + + + + + Key: vsinterface + + + + + Value: 0 or 1 + + + + Default: When debugging is enabled, 1, + otherwise 0 + + + + Specify whether to expose the VS#1 virtualization service + interface to the guest. This interface is required for + debugging Microsoft Windows 10 32-bit guests, but is + optional for other Windows versions. + + + + + + + + Setting up Windows Guests for Debugging with the Hyper-V + Paravirtualization Provider + + + Windows supports debugging over a serial cable, USB, IEEE 1394 + Firewire, and Ethernet. USB and IEEE 1394 are not applicable + for virtual machines, and Ethernet requires Windows 8 or + later. While a serial connection is universally usable, it is + slow. + + + + Debugging using the Hyper-V debug transport, supported on + Windows Vista and later, offers significant benefits. It + provides excellent performance due to direct host-to-guest + transfers, it is easy to set up and requires minimal support + from the hypervisor. It can be used with the debugger running + on the same host as the VM or with the debugger and VM on + separate machines connected over a network. + + + + Prerequisites + + + + + + + A VM configured for Hyper-V paravirtualization running a + Windows Vista or newer Windows guest. You can check the + effective paravirtualization provider for your VM with the + output of the following VBoxManage + command: + + +$ VBoxManage showvminfo VM-name + + + + + A sufficiently up-to-date version of the Microsoft WinDbg + debugger required to debug the version of Windows in your + VM. + + + + + + While Windows 8 and newer Windows guests ship with Hyper-V + debug support, Windows 7 and Vista do not. To use Hyper-V + debugging with a Windows 7 or Vista guest, copy the file + kdvm.dll from a Windows 8.0 + installation. This file is typically located in + C:\Windows\System32. Copy it to the + same location in your Windows 7/Vista guest. Make sure you + copy the 32-bit or 64-bit version of the DLL which matches + your guest OS. + + + + + Only Windows 8.0 ships kdvm.dll. + Windows 8.1 and newer Windows versions do not. + + + + + + + + VM and Guest Configuration + + + + + + + Power off the VM. + + + + + + Enable the debug options with the following + VBoxManage command: + + +$ VBoxManage modifyvm VM-name --paravirt-debug "enabled=1" + + + The above command assumes your debugger will connect to + your host machine on UDP port 50000. However, if you need + to run the debugger on a remote machine you may specify + the remote address and port here. For example: + + +$ VBoxManage modifyvm VM-name \ +--paravirt-debug "enabled=1,address=192.168.32.1,port=55000" + + + See for the complete set + of options. + + + + + + Start the VM. + + + + + + In the guest, start an elevated command prompt and execute + the following commands: + + + + + + + For a Windows 8 or newer Windows guest: + + +bcdedit /dbgsettings net hostip:5.5.5.5 port:50000 key:1.2.3.4 + + + + + For a Windows 7 or Vista guest: + + +bcdedit /set loadoptions host_ip=5.5.5.5,host_port=50000,encryption_key=1.2.3.4 + +bcdedit /set dbgtransport kdvm.dll + + + The IP address and port in the + bcdedit command are ignored when + using the Hyper-V debug transport. Any valid IP and a + port number greater than 49151 and lower than 65536 + can be entered. + + + + The encryption key in the bcdedit + command is relevant and must be valid. The key + "1.2.3.4" used in the above example is valid and may + be used if security is not a concern. If you do not + specify any encryption key, bcdedit + will generate one for you and you will need to copy + this key to later enter in Microsoft WinDbg on the + remote end. This encryption key is used to encrypt the + debug data exchanged between Windows and the debugger. + + + + + + Run one or more of the following commands to enable + debugging for the appropriate phase or component of + your Windows guest: + + +bcdedit /set debug on + +bcdedit /set bootdebug on + +bcdedit /set {bootmgr} bootdebug on + + + Please note that the bootdebug + options are only effective on Windows 8 or newer when + using the Hyper-V debug transport. Refer to Microsoft + Windows documentation for detailed explanation of + bcdedit options. + + + + + + + + + Start Microsoft WinDbg on your host machine or remote + host. + + + + From the File menu, + select Kernel Debug. On + the NET tab, specify the + UDP port number you used in the + paravirtdebug options. If you did not + specify any, leave it as 50000. Ensure that the UDP port + is not blocked by a firewall or other security software. + + + + In the Key field, enter + 1.2.3.4 or the encryption key from the + bcdedit command in your Windows guest. + + + + Click OK to start + listening for connections. Microsoft WinDbg typically + shows a Waiting to Reconnect message during this phase. + + + + Alternatively, to directly start a debug session, run + WinDbg from the command line as follows : + + +windbg.exe -k net:port=50000,key=1.2.3.4 + + + See the WinDbg documentation for the complete command line + syntax. + + + + + + Reboot your Windows guest and it should then connect as a + debuggee with Microsoft WinDbg. + + + + + + + + + + + + + + PC Speaker Passthrough + + + As an experimental feature, primarily due to being limited to + Linux host only and unknown Linux distribution coverage, + &product-name; supports passing through the PC speaker to the + host. The PC speaker, sometimes called the system speaker, is a + way to produce audible feedback such as beeps without the need for + regular audio and sound card support. + + + + The PC speaker passthrough feature in &product-name; handles beeps + only. Advanced PC speaker use by the VM, such as PCM audio, will + not work, resulting in undefined host behavior. + + + + Producing beeps on Linux is a very complex topic. &product-name; + offers a collection of options, in an attempt to make this work + deterministically and reliably on as many Linux distributions and + system configurations as possible. These are summarized in the + following table. + + + + PC Speaker Configuration Options + + + + + Code + + + Device + + + Notes + + + + + + + 1 + + + /dev/input/by-path/platform-pcspkr-event-spkr + + + Direct host PC speaker use. + + + + + 2 + + /dev/tty + + Uses the terminal association of the VM process. VM + needs to be started on a virtual console. + + + + + 3 + + + /dev/tty0 or + /dev/vc/0 + + + Can only be used by user root or + users with cap_sys_tty_config + capability. + + + + + 9 + + + A user-specified console or evdev device path. + + + As for codes 1 to 3, but with a custom device path. + + + + + 70 + + + /dev/tty + + + Standard beep only. Loses frequency and length. See code + 2. + + + + + 79 + + + A user-specified terminal device path. + + + As for code 70, but with a custom device path. + + + + + 100 + + + All of the above. + + + Tries all the available codes. + + + + +
+ + + To enable PC speaker passthrough use the following command: + + +VBoxManage setextradata VM-name "VBoxInternal/Devices/i8254/0/Config/PassthroughSpeaker" N + + + Replace N with the code representing + the case you want to use. Changing this setting takes effect when + you next start the VM. It is safe to enable PC speaker passthrough + on all host OSes. It will only have an effect on Linux. + + + + The VM log file, VBox.log, contains lines + with the prefix PIT: speaker: showing the PC + speaker passthrough setup activities. It gives hints which device + it picked or why it failed. + + + + Enabling PC speaker passthrough for the VM is usually the simple + part. The real difficulty is making sure that &product-name; can + access the necessary device, because in a typical Linux install + most of them can only be accessed by user root. + You should follow the preferred way to persistently change this, + such as by referring to your distribution's documentation. Since + there are countless Linux distribution variants, we can only give + the general hints that there is often a way to give the X11 + session user access to additional devices, or you need to find a + working solution using a udev configuration file. If everything + fails you might try setting the permissions using a script which + is run late enough in the host system startup. + + + + Sometimes additional rules are applied by the kernel to limit + access. For example, that the VM process must have the same + controlling terminal as the device configured to be used for + beeping, something which is often very difficult to achieve for + GUI applications such as &product-name;. The table above contains + some hints, but in general refer to the Linux documentation. + + + + If you have trouble getting any beeps even if the device + permissions are set up and VBox.log confirms that it uses evdev or + console for the PC speaker control, check if your system has a PC + speaker. Some systems do not have one. Other complications can + arise from Linux rerouting the PC speaker output to a sound card. + Check if the beeps are audible if you connect speakers to your + sound card. Today almost all systems have one. Finally, check if + the audio mixer control has a channel named "beep", which could be + hidden in the mixer settings, and that it is not muted. + + +
+ + + + Accessing USB devices Exposed Over the Network with USB/IP + + + &product-name; supports passing through USB devices which are + exposed over the network using the USB over IP protocol without + the need to configure the client side provided by the kernel and + usbip tools. Furthermore, this feature works with &product-name; + running on any supported host, rather than just Linux alone, as is + the case with the official client. + + + + To enable support for passing through USB/IP devices, use the + following command to add the device server that exports the + devices: + + +VBoxManage usbdevsource add unique-name --backend USBIP --address device-server[:port] + + + USB devices exported on the device server are then accessible + through &vbox-mgr; or VBoxManage, like any USB + devices attached locally. This can be used multiple times to + access different device servers. + + + + To remove a device server, the following command can be used: + + +$ VBoxManage usbdevsource remove unique-name + + + + Setting up USB/IP Support on a Linux System + + + This section gives a brief overview on how to set up a Linux + based system to act as a USB device server. The system on the + server requires that the usbip-core.ko and + usbip-host.ko kernel drivers are available, + and that the USB/IP tools package is installed. The particular + installation method for the necessary tools depends on which + distribution is used. For example, for Debian based systems, use + the following command to install the required tools: + + +$ apt-get install usbip-utils + + + To check whether the necessary tools are already installed use + the following command: + + + +$ usbip list -l + + + + This should produce output similar to that shown in the example + below: + + + + - busid 4-2 (0bda:0301) + Realtek Semiconductor Corp. : multicard reader (0bda:0301) + + - busid 5-1 (046d:c52b) + Logitech, Inc. : Unifying Receiver (046d:c52b) + + + + If everything is installed, the USB/IP server needs to be + started as root using the following command: + + +# usbipd -D + + + See the documentation for the installed distribution to + determine how to start the service when the system boots. + + + + By default, no device on the server is exported. This must be + done manually for each device. To export a device use the + following command: + + +# usbip bind -b "bus identifier" + + + To export the multicard reader in the previous example: + + +# usbip bind -b 4-2 + + + + + + Security Considerations + + + The communication between the server and client is unencrypted + and there is no authorization required to access exported + devices. An attacker might sniff sensitive data or gain control + over a device. To mitigate this risk, the device should be + exposed over a local network to which only trusted clients have + access. To access the device remotely over a public network, a + VPN solution should be used to provide the required level of + security protection. + + + + + + + + + Using Hyper-V with &product-name; + + + &product-name; can be used on a Windows host where Hyper-V is + running. This is an experimental feature. + + + + No configuration is required. &product-name; detects Hyper-V + automatically and uses Hyper-V as the virtualization engine for + the host system. The CPU icon in the VM window status bar + indicates that Hyper-V is being used. + + + + + When using this feature, some host systems might experience + significant &product-name; performance degradation. + + + + + + + + Nested Virtualization + + + &product-name; supports nested + virtualization. This feature enables the passthrough of + hardware virtualization functions to the guest VM. That means that + you can install a hypervisor, such as &product-name;, Oracle VM + Server or KVM, on an &product-name; guest. You can then create and + run VMs within the guest VM. + + + + Hardware virtualization features not present on the host CPU will + not be exposed to the guest. In addition, some features such as + nested paging are not yet supported for passthrough to the guest. + + + + You can enable the nested virtualization feature in one of the + following ways: + + + + + + + From &vbox-mgr;, select the Enable + Nested VT-x/AMD-V check box on the + Processor tab. To disable the + feature, deselect the check box. + + + + + + Use the option of the + VBoxManage modifyvm command to enable or + disable nested virtualization. See + . + + + + + + + + + + VBoxSVC running in Windows Session 0 + + + &product-name; supports executing the VBoxSVC in Windows session + 0. This allows VBoxSVC to run like a regular Windows service, + which in turn enables headless VMs to continue running even if the + user logs out. + + + + This is currently an experimental feature. + + + + + + The feature is disabled by default and can be enabled by creating + a REG_DWORD value ServerSession0 in the key + HKEY_LOCAL_MACHINE\Software\Oracle\VirtualBox\VBoxSDS + of the Windows registry. Specify 1 as the + value's data to enable the feature, or 0 to + disable the feature. A host reboot is needed in order to make the + change effective. + + + + + Known Issues + + + + + + Due to different Windows sessions having their own set of + resources, there might be some issues with accessing network + shares created in the interactive user session when at least + one of the &product-name; processes are running in session + 0. + + + + For accessing network shares within session 0, a possible + workaround is to establish permanent access to the share and + then restart the host. + + + + + + + + + + + +
diff --git a/doc/manual/en_US/user_BasicConcepts.xml b/doc/manual/en_US/user_BasicConcepts.xml new file mode 100644 index 00000000..40f3c5d6 --- /dev/null +++ b/doc/manual/en_US/user_BasicConcepts.xml @@ -0,0 +1,3052 @@ + + + +%all.entities; +]> + + + Configuring Virtual Machines + + + This chapter provides detailed steps for configuring an + &product-name; virtual machine (VM). For an introduction to + &product-name; and steps to get your first virtual machine running, + see . + + + + You have considerable latitude when deciding what virtual hardware + to provide to the guest. Use virtual hardware to communicate with + the host system or with other guests. For example, you can use + virtual hardware in the following ways: + + + + + + + Have &product-name; present an ISO CD-ROM image to a guest + system as if it were a physical CD-ROM. + + + + + + Provide a guest system access to the physical network through + its virtual network card. + + + + + + Provide the host system, other guests, and computers on the + Internet access to the guest system. + + + + + + + + Supported Guest Operating Systems + + + Because &product-name; is designed to provide a generic + virtualization environment for x86 systems, it can run guest + operating systems (OSes) of any kind. + + + + The following guest OS platforms are supported: + + + + + + + Platforms With Full Support. + These guest OS platforms qualify for Oracle Premier Support. + See . + + + + + + Platforms With Limited + Support. These legacy guest OS platforms can be + used with &product-name;, but only qualify for best + effort support. Therefore, resolution of customer + issues is not guaranteed. See + . + + + + + + + Guest Operating Systems With Full Support + + + + + Operating System + + + Comments + + + + + + + Windows 11 (64-bit) + + + Insider preview builds are not supported + + + + + Windows 10 (32-bit and 64-bit) + + + Insider preview builds are not supported + + + + + Windows 8 and 8.1 (32-bit and 64-bit) + + + + + + Windows Server 2019 (64-bit) + + + + + + Windows Server 2016 (64-bit) + + + + + + Windows Server 2012 and 2012 R2 (64-bit) + + + + + + Solaris 11 (32-bit and 64-bit) + + + + + + Solaris 10 8/11 Update 10 and later (32-bit and 64-bit) + + + + + + Oracle Linux 8 (64-bit) + + + Includes Red Hat Enterprise Linux 8, CentOS 8 + + + + + Oracle Linux 7 (64-bit) + + + Includes Red Hat Enterprise Linux 7, CentOS 7 + + + + + Oracle Linux 6 (32-bit and 64-bit) + + + Includes Red Hat Enterprise Linux 6, CentOS 6 + + + + + Ubuntu 16.04 LTS (Xenial Xerus) (32-bit and 64-bit) + + + + + + Ubuntu 18.04 LTS (Bionic Beaver) (64-bit) + + + + + + Ubuntu 20.04 LTS (Focal Fossa) (64-bit) + + + + + + SUSE Linux Enterprise Server 15 (64-bit) + + + + + + SUSE Linux Enterprise Server 12 (64-bit) + + + + + +
+ + + Legacy Guest Operating Systems With Limited Support + + + + + Operating System + + + Comments + + + + + + + Windows 7 (32-bit and 64-bit) + + + + + + Windows Vista SP2 and later (32-bit and 64-bit) + + + + + + Windows XP (32-bit) + + + + + + Windows Vista (32-bit) + + + + + + Windows Server 2008 and 2008 R2 (32-bit and 64-bit) + + + + + + Windows Server 2003 (32-bit and 64-bit) + + + + + + Oracle Linux 5 (32-bit and 64-bit) + + + Includes Red Hat Enterprise Linux 5, CentOS 5 + + + + + Ubuntu 14.04.5 LTS (Trusty Tahr) (32-bit and 64-bit) + + + + + + OS/2 Warp 4.5 + + + + + +
+ + + + Mac OS X Guests + + + &product-name; enables you to install and execute unmodified + versions of Mac OS X guests on supported host hardware. Note + that this feature is experimental and thus unsupported. + + + + &product-name; is the first product to provide the modern PC + architecture expected by OS X without requiring any of the + modifications used by competing virtualization solutions. For + example, some competing solutions perform modifications to the + Mac OS X install DVDs, such as a different boot loader and + replaced files. + + + + Be aware of the following important issues before you attempt to + install a Mac OS X guest: + + + + + + + Mac OS X is commercial, licensed software and contains + both license and technical + restrictions that limit its use to certain + hardware and usage scenarios. You must understand and comply + with these restrictions. + + + + In particular, Apple prohibits the installation of most + versions of Mac OS X on non-Apple hardware. + + + + These license restrictions are also enforced on a technical + level. Mac OS X verifies that it is running on Apple + hardware. Most DVDs that accompany Apple hardware check for + the exact model. These restrictions are + not circumvented by &product-name; and + continue to apply. + + + + + + Only CPUs that are known + and tested by Apple are supported. As a result, if your + Intel CPU is newer than the Mac OS X build, or if you have a + non-Intel CPU, you will likely encounter a panic during + bootup with an "Unsupported CPU" exception. + + + + Ensure that you use the Mac OS X DVD that comes with your + Apple hardware. + + + + + + The Mac OS X installer expects the hard disk to be + partitioned. So, the installer will not + offer a partition selection to you. Before you can install + the software successfully, start the Disk Utility from the + Tools menu and partition the hard disk. Close the Disk + Utility and proceed with the installation. + + + + + + In addition, Mac OS X support in &product-name; is an + experimental feature. See . + + + + + + + + + + 64-bit Guests + + + + Be sure to enable I/O APIC + for virtual machines that you intend to use in 64-bit mode. + This is especially true for 64-bit Windows VMs. See + . For 64-bit Windows + guests, ensure that the VM uses the + Intel networking device + because there is no 64-bit driver support for the AMD PCNet + card. See . + + + + + If you use the Create VM wizard + of &vbox-mgr;, &product-name; automatically uses the correct + settings for each selected 64-bit OS type. See + . + + + + +
+ + + + Unattended Guest Installation + + + &product-name; can install a guest OS automatically. You only need + to provide the installation medium and a few other parameters, + such as the name of the default user. + + + + You can perform an unattended guest installation in the following + ways: + + + + + + + Use the Create Virtual Machine + wizard. An optional step in the wizard enables you + to configure unattended installation. You can specify the + default user credentials for the guest OS and also whether to + install the Guest Additions automatically. See + . + + + + During this step, &product-name; scans the installation medium + and changes certain parameters to ensure a seamless + installation as a guest running on &product-name;. + + + + + + Use the VBoxManage + commands. + describes + how to perform an unattended guest installation for an Oracle + Linux guest. + + + + + + + When you first start a VM that has been configured for unattended + installation, the guest OS installation is performed + automatically. + + + + The installation operation changes the boot device order to boot + the virtual hard disk first and then the virtual DVD drive. If the + virtual hard disk is empty prior to the automatic installation, + the VM boots from the virtual DVD drive and begins the + installation. + + + + If the virtual hard disk contains a bootable OS, the installation + operation exits. In this case, change the boot device order + manually by pressing F12 during the BIOS splash screen. + + + + + Using VBoxManage Commands for Unattended Guest Installation + + + The following example shows how to perform an unattended guest + installation for an Oracle Linux VM. The example uses various + VBoxManage commands to prepare the guest VM. + The VBoxManage unattended install command is + then used to install and configure the guest OS. + + + + + + + Create the virtual machine. + + +# VM="ol7-autoinstall" +# VBoxManage list ostypes +# VBoxManage createvm --name $VM --ostype "Oracle_64" --register + + + Note the following: + + + + + + + The $VM variable represents the name of the VM. + + + + + + The VBoxManage list ostypes command + lists the guest OSes supported by &product-name;, + including the name used for each OS in the + VBoxManage commands. + + + + + + A 64-bit Oracle Linux 7 VM is created and registered + with &product-name;. + + + + + + The VM has a unique UUID. + + + + + + An XML settings file is generated. + + + + + + + + + Create a virtual hard disk and storage devices for the VM. + + +# VBoxManage createhd --filename /VirtualBox/$VM/$VM.vdi --size 32768 +# VBoxManage storagectl $VM --name "SATA Controller" --add sata --controller IntelAHCI +# VBoxManage storageattach $VM --storagectl "SATA Controller" --port 0 --device 0 \ +--type hdd --medium /VirtualBox/$VM/$VM.vdi +# VBoxManage storagectl $VM --name "IDE Controller" --add ide +# VBoxManage storageattach $VM --storagectl "IDE Controller" --port 0 --device 0 \ +--type dvddrive --medium /u01/Software/OL/OracleLinux-R7-U6-Server-x86_64-dvd.iso + + + The previous commands do the following: + + + + + + + Create a 32768 MB virtual hard disk. + + + + + + Create a SATA storage controller and attach the virtual + hard disk. + + + + + + Create an IDE storage controller for a virtual DVD drive + and attach an Oracle Linux installation ISO. + + + + + + + + + (Optional) Configure some settings for the VM. + + +# VBoxManage modifyvm $VM --ioapic on +# VBoxManage modifyvm $VM --boot1 dvd --boot2 disk --boot3 none --boot4 none +# VBoxManage modifyvm $VM --memory 8192 --vram 128 + + + The previous commands do the following: + + + + + + + Enable I/O APIC for the motherboard of the VM. + + + + + + Configure the boot device order for the VM. + + + + + + Allocate 8192 MB of RAM and 128 MB of video RAM to the + VM. + + + + + + + + + Perform an unattended install of the OS. + + +# VBoxManage unattended install $VM \ +--iso=/u01/Software/OL/OracleLinux-R7-U6-Server-x86_64-dvd.iso \ +--user=login --full-user-name=name --password password \ +--install-additions --time-zone=CET + + + The previous command does the following: + + + + + + + Specifies an Oracle Linux ISO as the installation ISO. + + + + + + Specifies a login name, full name, and login password + for a default user on the guest OS. + + + + Note that the specified password is also used for the + root user account on the guest. + + + + + + Installs the Guest Additions on the VM. + + + + + + Sets the time zone for the guest OS to Central European + Time (CET). + + + + + + + + + Start the virtual machine. + + + + This step completes the unattended installation process. + + +# VBoxManage startvm $VM --type headless + + + The VM starts in headless mode, which means that the + &vbox-mgr; window does not open. + + + + + + (Optional) Update the guest OS to use the latest Oracle + Linux packages. + + + + On the guest VM, run the following command: + + +# yum update + + + + + + + + + + + Emulated Hardware + + + &product-name; virtualizes nearly all hardware of the host. + Depending on a VM's configuration, the guest will see the + following virtual hardware: + + + + + + + Input devices. &product-name; + can emulate a standard PS/2 keyboard and mouse. These devices + are supported by most guest OSes. + + + + In addition, &product-name; can provide virtual USB input + devices to avoid having to capture mouse and keyboard, as + described in . + + + + + + Graphics. The default + &product-name; graphics device for Windows guests is an SVGA + device. For Linux guests, the default graphics device emulates + a VMware SVGA graphics device. See + . + + + + For legacy guest OSes, a VGA-compatible graphics device is + available. + + + + + + Storage. &product-name; + emulates the most common types of hard disk controllers. See + . Whereas supporting + only one of these controllers would be enough for + &product-name; by itself, this multitude of storage adapters + is required for compatibility with other hypervisors. Windows + is very selective about its boot devices, and migrating VMs + between hypervisors is very difficult or impossible if the + storage controllers are different. + + + + + + Networking. See + . + + + + + + USB. &product-name; emulates + these types of USB host controllers: xHCI, EHCI, and OHCI. + While xHCI handles all USB transfer speeds, some legacy guest + OSes may not support xHCI. Note that for some legacy Windows + guests, third party drivers must be installed for xHCI + support. + + + + Legacy guest OSes typically support OHCI and EHCI. These two + controllers are needed because OHCI only handles USB low-speed + and full-speed devices (both USB 1.x and 2.0), while EHCI only + handles high-speed devices (USB 2.0 only). + + + + The emulated USB controllers do not communicate directly with + devices on the host. Instead they communicate with a virtual + USB layer which abstracts the USB protocol and enables the use + of remote USB devices. + + + + + + Audio. See + . + + + + + + + + + + General Settings + + + In the Settings window, under + General, you can configure the + most fundamental aspects of the virtual machine such as memory and + essential hardware. The following tabs are available. + + + + + Basic Tab + + + In the Basic tab of the + General settings category, you + can find these settings: + + + + + + + Name: The name of the the + VM, as shown in the list of VMs in the main VirtualBox + Manager window. Using this name, &product-name; also saves + the VM's configuration files. If you change the name, + &product-name; renames these files as well. As a result, you + can only use characters which are allowed for file names on + your host OS. + + + + Note that internally, &product-name; uses unique identifiers + (UUIDs) to identify virtual machines. You can display these + using the VBoxManage commands. + + + + + + Type: The type of the guest + OS for the VM. This is the same setting that is specified in + the New Virtual Machine + wizard. See . + + + + Whereas the default settings of a newly created VM depend on + the selected OS type, changing the type later has no effect + on VM settings. This value is purely informational and + decorative. + + + + + + Version: The version of the + guest OS for the VM. This is the same setting that is + specified in the New Virtual + Machine wizard. See + . + + + + + + + + + + Advanced Tab + + + The following settings are available in the + Advanced tab: + + + + + + + Snapshot Folder: By + default, &product-name; saves snapshot data together with + your other &product-name; configuration data. See + . With this setting, you + can specify any other folder for each VM. + + + + + + Shared Clipboard: You can + select here whether the clipboard of the guest OS should be + shared with that of your host. If you select + Bidirectional, then + &product-name; will always make sure that both clipboards + contain the same data. If you select + Host to Guest or + Guest to Host, then + &product-name; will only ever copy clipboard data in one + direction. + + + + Clipboard sharing requires that the &product-name; Guest + Additions be installed. In such a case, this setting has no + effect. See . + + + + For security reasons, the shared clipboard is disabled by + default. This setting can be changed at any time using the + Shared Clipboard menu item + in the Devices menu of the + virtual machine. + + + + + + Drag and Drop: This setting + enables support for drag and drop. Select an object, such as + a file, from the host or guest and directly copy or open it + on the guest or host. Multiple drag and drop modes for a VM + enable restricting of access in either direction. + + + + For drag and drop to work the Guest Additions need to be + installed on the guest. + + + + + Drag and drop is disabled by default. This setting can be + changed at any time using the Drag + and Drop menu item in the + Devices menu of the + virtual machine. + + + + + See . + + + + + + + + + + Description Tab + + + On the Description tab you can + enter a description for your virtual machine. This has no effect + on the functionality of the machine, but you may find this space + useful to note down things such as the configuration of a + virtual machine and the software that has been installed into + it. + + + + To insert a line break into the + Description text field, press + Shift+Enter. + + + + + + + Disk Encryption Tab + + + The Disk Encryption tab enables + you to encrypt disks that are attached to the virtual machine. + + + + To enable disk encryption, select the + Enable Disk Encryption check + box. + + + + Settings are available to configure the cipher used for + encryption and the encryption password. + + + + + All files related to the virtual machine except disk images + are stored unencrypted. To encrypt these files, use the + VBoxManage encryptvm command as described + in . + + + + + + + + + + System Settings + + + The System category groups + various settings that are related to the basic hardware that is + presented to the virtual machine. + + + + + As the activation mechanism of Microsoft Windows is sensitive to + hardware changes, if you are changing hardware settings for a + Windows guest, some of these changes may trigger a request for + another activation with Microsoft. + + + + + The following tabs are available. + + + + + Motherboard Tab + + + On the Motherboard tab, you can + configure virtual hardware that would normally be on the + motherboard of a real computer. + + + + + + + Base Memory: Sets the + amount of RAM that is allocated and given to the VM when it + is running. The specified amount of memory will be requested + from the host OS, so it must be available or made available + as free memory on the host when attempting to start the VM + and will not be available to the host while the VM is + running. This is the same setting that was specified in the + New Virtual Machine wizard, + as described in . + + + + Generally, it is possible to change the memory size after + installing the guest OS. But you must not reduce the memory + to an amount where the OS would no longer boot. + + + + + + Boot Order: Determines the + order in which the guest OS will attempt to boot from the + various virtual boot devices. Analogous to a real PC's BIOS + setting, &product-name; can tell a guest OS to start from + the virtual floppy, the virtual CD/DVD drive, the virtual + hard drive (each of these as defined by the other VM + settings), the network, or none of these. + + + + If you select Network, the + VM will attempt to boot from a network using the PXE + mechanism. This needs to be configured in detail on the + command line. See . + + + + + + Chipset: You can select + which chipset will be presented to the virtual machine. + PIIX3 is the default chipset for most guests. For some guest + OSes such as Mac OS X, the PIIX3 chipset is not well + supported. As a result, &product-name; supports an emulation + of the ICH9 chipset, which supports PCI express, three PCI + buses, PCI-to-PCI bridges and Message Signaled Interrupts + (MSI). This enables modern OSes to address more PCI devices + and no longer requires IRQ sharing. Using the ICH9 chipset + it is also possible to configure up to 36 network cards, + compared to a maximum of eight network adapters with PIIX3. + Note that ICH9 support is experimental and not recommended + for guest OSes which do not require it. + + + + + + TPM: Enables support for a + Trusted Platform Module (TPM) security processor. Choose + from the supported TPM versions. + + + + + + Pointing Device: The + default virtual pointing device for some guest OSes is the + traditional PS/2 mouse. If set to USB + Tablet, &product-name; reports to the virtual + machine that a USB tablet device is present and communicates + mouse events to the virtual machine through this device. + Another setting is USB Multi-Touch + Tablet, which is suitable for guests running + Windows 8 or later. + + + + Using the virtual USB tablet has the advantage that + movements are reported in absolute coordinates, instead of + as relative position changes. This enables &product-name; to + translate mouse events over the VM window into tablet events + without having to "capture" the mouse in the guest as + described in . This + makes using the VM less tedious even if Guest Additions are + not installed. + + + + + + Enable I/O APIC: Advanced + Programmable Interrupt Controllers (APICs) are an x86 + hardware feature that have replaced Programmable Interrupt + Controllers (PICs). With an I/O APIC, OSes can use more than + 16 interrupt requests (IRQs) and therefore avoid IRQ sharing + for improved reliability. + + + + + Enabling the I/O APIC is required, + especially for 64-bit Windows guest OSes. It is also + required if you want to use more than one virtual CPU in a + virtual machine. + + + + + However, software support for I/O APICs has been unreliable + with some OSes other than Windows. Also, the use of an I/O + APIC slightly increases the overhead of virtualization and + therefore slows down the guest OS a little. + + + + + All Windows OSes install different kernels, depending on + whether an I/O APIC is available. As with ACPI, the I/O + APIC therefore must not be turned off after + installation of a Windows guest OS. Turning it + on after installation will have no effect however. + + + + + + + Hardware Clock in UTC Time: + If selected, &product-name; will report the system time in + UTC format to the guest instead of the local (host) time. + This affects how the virtual real-time clock (RTC) operates + and may be useful for UNIX-like guest OSes, which typically + expect the hardware clock to be set to UTC. + + + + + + Enable EFI: Enables + Extensible Firmware Interface (EFI), which replaces the + legacy BIOS and may be useful for certain advanced use + cases. See . + + + + + + Enable Secure Boot: Enables + Secure Boot, to provide a secure environment for starting + the guest OS. + + + + + + + In addition, you can turn off the Advanced + Configuration and Power Interface (ACPI) which + &product-name; presents to the guest OS by default. + + + + ACPI is the current industry standard to allow OSes to recognize + hardware, configure motherboards and other devices and manage + power. As most computers contain this feature and Windows and + Linux support ACPI, it is also enabled by default in + &product-name;. ACPI can only be turned off using the command + line. See . + + + + + All Windows OSes install different kernels, depending on + whether ACPI is available. This means that ACPI must + not be turned off after installation of a Windows + guest OS. However, turning it on after installation will have + no effect. + + + + + + + + Processor Tab + + + On the Processor tab, you can + configure settings for the CPU used by the virtual machine. + + + + + + + Processor(s): Sets the + number of virtual CPU cores the guest OSes can see. + &product-name; supports symmetrical multiprocessing (SMP) + and can present up to 32 virtual CPU cores to each virtual + machine. + + + + You should not configure virtual machines to use more CPU + cores than are available physically. This includes real + cores, with no hyperthreads. + + + + + + Execution Cap: Configures + the CPU execution cap. This limits the amount of time a host + CPU spends to emulate a virtual CPU. The default setting is + 100%, meaning that there is no limitation. A setting of 50% + implies a single virtual CPU can use up to 50% of a single + host CPU. Note that limiting the execution time of the + virtual CPUs may cause guest timing problems. + + + + A warning is displayed at the bottom of the Processor tab if + an Execution Cap setting is made that may affect system + performance. + + + + + + Enable PAE/NX: Determines + whether the PAE and NX capabilities of the host CPU will be + exposed to the virtual machine. + + + + PAE stands for Physical Address Extension. Normally, if + enabled and supported by the OS, then even a 32-bit x86 CPU + can access more than 4 GB of RAM. This is made possible by + adding another 4 bits to memory addresses, so that with 36 + bits, up to 64 GB can be addressed. Some OSes, such as + Ubuntu Server, require PAE support from the CPU and cannot + be run in a virtual machine without it. + + + + + + Enable Nested VT-x/AMD-V: + Enables nested virtualization, with passthrough of hardware + virtualization functions to the guest VM. + + + + + + + With virtual machines running modern server OSes, &product-name; + also supports CPU hot-plugging. For details, see + . + + + + + + + Acceleration Tab + + + On this tab, you can configure &product-name; to use hardware + virtualization extensions that your host CPU supports. + + + + + + + Paravirtualization + Interface: &product-name; provides + paravirtualization interfaces to improve time-keeping + accuracy and performance of guest OSes. The options + available are documented under the + option in + . For further details + on the paravirtualization providers, see + . + + + + + + Hardware Virtualization: + You can configure hardware virtualization features for each + virtual machine. + + + + + + + Enable Nested Paging: + If the host CPU supports the nested paging (AMD-V) or + EPT (Intel VT-x) features, then you can expect a + significant performance increase by enabling nested + paging in addition to hardware virtualization. For + technical details, see . + For Intel EPT security recommendations, see + . + + + + + + + Advanced users may be interested in technical details about + hardware virtualization. See . + + + + + + + In most cases, the default settings on the + Acceleration tab will work + well. &product-name; selects sensible defaults, depending on the + OS that you selected when you created the virtual machine. In + certain situations, however, you may want to change the + preconfigured defaults. + + + + + + + + + Display Settings + + + The following tabs are available for configuring the display for a + virtual machine. + + + + + Screen Tab + + + + + + Video Memory: Sets the size + of the memory provided by the virtual graphics card + available to the guest, in MB. As with the main memory, the + specified amount will be allocated from the host's resident + memory. Based on the amount of video memory, higher + resolutions and color depths may be available. + + + + &vbox-mgr; will show a warning if the amount of video memory + is too small to be able to switch the VM into full screen + mode. The minimum value depends on the number of virtual + monitors, the screen resolution and the color depth of the + host display as well as on the use of 3D + acceleration and 2D video + acceleration. A rough estimate is + (color depth / 8) x vertical + pixels x horizontal pixels x + number of screens = number of + bytes. Extra memory may be required if display + acceleration is used. + + + + + + Monitor Count: With this + setting, &product-name; can provide more than one virtual + monitor to a virtual machine. If a guest OS supports + multiple attached monitors, &product-name; can pretend that + multiple virtual monitors are present. Up to eight such + virtual monitors are supported. + + + + The output of the multiple monitors are displayed on the + host in multiple VM windows which are running side by side. + However, in full screen and seamless mode, they use the + available physical monitors attached to the host. As a + result, for full screen and seamless modes to work with + multiple monitors, you will need at least as many physical + monitors as you have virtual monitors configured, or + &product-name; will report an error. + + + + You can configure the relationship between guest and host + monitors using the View + menu by pressing Host key + Home when you are in full screen + or seamless mode. + + + + See also . + + + + + + Scale Factor: Enables + scaling of the display size. For multiple monitor displays, + you can set the scale factor for individual monitors, or + globally for all of the monitors. Use the slider to select a + scaling factor up to 200%. + + + + You can set a default scale factor for all VMs. Use the + Display tab in the + Preferences window. + + + + + + Graphics Controller: + Specifies the graphics adapter type used by the guest VM. + Note that you must install the Guest Additions on the guest + VM to specify the VBoxSVGA or VMSVGA graphics controller. + The following options are available: + + + + + + + VBoxSVGA: The default + graphics controller for new VMs that use Windows 7 or + later. + + + + This graphics controller improves performance and 3D + support when compared to the legacy VBoxVGA option. + + + + + + VBoxVGA: Use this + graphics controller for legacy guest OSes. This is the + default graphics controller for Windows versions before + Windows 7 and for Oracle Solaris. + + + + 3D acceleration is not supported for this graphics + controller. + + + + + + VMSVGA: Use this + graphics controller to emulate a VMware SVGA graphics + device. This is the default graphics controller for + Linux guests. + + + + + + None: Does not emulate + a graphics adapter type. + + + + + + + + + Enable 3D Acceleration: If + a virtual machine has Guest Additions installed, you can + select here whether the guest should support accelerated 3D + graphics. See . + + + + + + + + + + Remote Display Tab + + + On the Remote Display tab, if + the VirtualBox Remote Display Extension (VRDE) is installed, you + can enable the VRDP server that is built into &product-name;. + This enables you to connect to the console of the virtual + machine remotely with any standard RDP viewer, such as + mstsc.exe that comes with Microsoft Windows. + On Linux and Oracle Solaris systems you can use the standard + open source rdesktop program. These features + are described in . + + + + + + + Enable Server: Select this + check box and configure settings for the remote display + connection. + + + + + + + + + + Recording Tab + + + On the Recording tab you can + enable video and audio recording for a virtual machine and + change related settings. Note that these features can be enabled + and disabled while a VM is running. + + + + + + + Enable Recording: Select + this check box and select a Recording + Mode option. + + + + + + Recording Mode: You can + choose to record video, audio, or both video and audio. + + + + Some settings on the + Recording tab may be grayed + out, depending on the Recording + Mode setting. + + + + + + File Path: The file where + the recording is saved. + + + + + + Frame Size: The video + resolution of the recorded video, in pixels. The drop-down + list enables you to select from common frame sizes. + + + + + + Frame Rate: Use the slider + to set the maximum number of video frames per second (FPS) + to record. Frames that have a higher frequency are skipped. + Increasing this value reduces the number of skipped frames + and increases the file size. + + + + + + Video Quality: Use the + slider to set the the bit rate of the video in kilobits per + second. Increasing this value improves the appearance of the + video at the cost of an increased file size. + + + + + + Audio Quality: Use the + slider to set the quality of the audio recording. Increasing + this value improves the audio quality at the cost of an + increased file size. + + + + + + Screens: For a multiple + monitor display, you can select which screens to record + video from. + + + + + + + As you adjust the video and audio recording settings, the + approximate output file size for a five minute video is shown. + + + + + + + + + Storage Settings + + + The Storage category in the VM + settings enables you to connect virtual hard disk, CD/DVD, and + floppy images and drives to your virtual machine. + + + + In a real computer, so-called storage + controllers connect physical disk drives to the rest of + the computer. Similarly, &product-name; presents virtual storage + controllers to a virtual machine. Under each controller, the + virtual devices, such as hard disks, CD/DVD or floppy drives, + attached to the controller are shown. + + + + + This section gives a quick introduction to the &product-name; + storage settings. See for a full + description of the available storage settings in &product-name;. + + + + + If you have used the Create Virtual + Machine wizard to create a machine, you will normally + see something like the following: + + +
+ Storage Settings for a Virtual Machine + + + + + +
+ + + Depending on the guest OS type that you selected when you created + the VM, a new VM includes the following storage devices: + + + + + + + IDE controller. A virtual + CD/DVD drive is attached to device 0 on the secondary channel + of the IDE controller. + + + + + + SATA controller. This is a + modern type of storage controller for higher hard disk data + throughput, to which the virtual hard disks are attached. + Initially you will normally have one such virtual disk, but as + shown in the previous screenshot, you can have more than one. + Each is represented by a disk image file, such as a VDI file + in this example. + + + + + + + If you created your VM with an older version of &product-name;, + the default storage layout may differ. You might then only have an + IDE controller to which both the CD/DVD drive and the hard disks + have been attached. This might also apply if you selected an older + OS type when you created the VM. Since older OSes do not support + SATA without additional drivers, &product-name; will make sure + that no such devices are present initially. See + . + + + + &product-name; also provides a floppy + controller. You cannot add devices other than floppy + drives to this controller. Virtual floppy drives, like virtual + CD/DVD drives, can be connected to either a host floppy drive, if + you have one, or a disk image, which in this case must be in RAW + format. + + + + You can modify these media attachments freely. For example, if you + wish to copy some files from another virtual disk that you + created, you can connect that disk as a second hard disk, as in + the above screenshot. You could also add a second virtual CD/DVD + drive, or change where these items are attached. The following + options are available: + + + + + + + To add another virtual hard disk, or a + CD/DVD or floppy drive, select the storage + controller to which it should be added (such as IDE, SATA, + SCSI, SAS, floppy controller) and then click the + Add Disk button below the + tree. You can then either select Optical + Drive or Hard + Disk. If you clicked on a floppy controller, you + can add a floppy drive instead. Alternatively, right-click on + the storage controller and select a menu item there. + + + + A dialog is displayed, enabling you to select an existing disk + image file or to create a new disk image file. Depending on + the type of disk image, the dialog is called + Hard Disk Selector, + Optical Disk Selector, or + Floppy Disk Selector. + + + + See for information on the image + file types that are supported by &product-name;. + + + + For virtual CD/DVD drives, the image files will typically be + in the standard ISO format instead. Most commonly, you will + select this option when installing an OS from an ISO file that + you have obtained from the Internet. For example, most Linux + distributions are available in this way. + + + + Depending on the type of disk image, you can set the following + Attributes for the disk image + in the right part of the Storage settings page: + + + + + + + The device slot of the + controller that the virtual disk is connected to. IDE + controllers have four slots: primary device 0, primary + device 1, secondary device 0, and secondary device 1. By + contrast, SATA and SCSI controllers offer you up to 30 + slots for attaching virtual devices. + + + + + + Solid-state Drive + presents a virtual disk to the guest as a solid-state + device. + + + + + + Hot-pluggable presents a + virtual disk to the guest as a hot-pluggable device. + + + + + + For virtual CD/DVD drives, you can select + Live CD/DVD. This means + that the virtual optical disk is not removed from when the + guest system ejects it. + + + + + + + + + To remove an attachment, + either select it and click on the + Remove icon at the bottom, or + right-click on it and select the menu item. + + + + + + + Removable media, such as CD/DVDs and floppies, can be changed + while the guest is running. Since the + Settings window is not available + at that time, you can also access these settings from the + Devices menu of your virtual + machine window. + + +
+ + + + Audio Settings + + + The Audio section in a virtual + machine's Settings window + determines whether the VM will detect a connected sound card, and + if the audio output should be played on the host system. + + + + To enable audio for a guest, select the + Enable Audio check box. The + following settings are available: + + + + + + + Host Audio Driver: The audio + driver that &product-name; uses on the host. + + + + The Default option is enabled + by default for all new VMs. This option selects the best audio + driver for the host platform automatically. This enables you + to move VMs between different platforms without having to + change the audio driver. + + + + On a Linux host, depending on your host configuration, you can + select between the OSS, ALSA, or the PulseAudio subsystem. On + newer Linux distributions, the PulseAudio subsystem is + preferred. + + + + Only OSS is supported on Oracle Solaris hosts. The Oracle + Solaris Audio audio backend is no longer supported on Oracle + Solaris hosts. + + + + + + Audio Controller: You can + choose between the emulation of an Intel AC'97 controller, an + Intel HD Audio controller, or a SoundBlaster 16 card. + + + + + + Enable Audio Output: Enables + audio output only for the VM. + + + + + + Enable Audio Input: Enables + audio input only for the VM. + + + + + + + + + + Network Settings + + + The Network section in a virtual + machine's Settings window enables + you to configure how &product-name; presents virtual network cards + to your VM, and how they operate. + + + + When you first create a virtual machine, &product-name; by default + enables one virtual network card and selects the Network Address + Translation (NAT) mode for it. This way the guest can connect to + the outside world using the host's networking and the outside + world can connect to services on the guest which you choose to + make visible outside of the virtual machine. + + + + This default setup is good for the majority of &product-name; + users. However, &product-name; is extremely flexible in how it can + virtualize networking. It supports many virtual network cards per + virtual machine. The first four virtual network cards can be + configured in detail in &vbox-mgr;. Additional network cards can + be configured using the VBoxManage command. + + + + Many networking options are available. See + for more information. + + + + + + + Serial Ports + + + &product-name; supports the use of virtual serial ports in a + virtual machine. + + + + Ever since the original IBM PC, personal computers have been + equipped with one or two serial ports, also called COM ports by + DOS and Windows. Serial ports were commonly used with modems, and + some computer mice used to be connected to serial ports before USB + became commonplace. + + + + While serial ports are no longer as common as they used to be, + there are still some important uses left for them. For example, + serial ports can be used to set up a primitive network over a + null-modem cable, in case Ethernet is not available. Also, serial + ports are indispensable for system programmers needing to do + kernel debugging, since kernel debugging software usually + interacts with developers over a serial port. With virtual serial + ports, system programmers can do kernel debugging on a virtual + machine instead of needing a real computer to connect to. + + + + If a virtual serial port is enabled, the guest OS sees a standard + 16550A compatible UART device. Other UART types can be configured + using the VBoxManage modifyvm command. Both + receiving and transmitting data is supported. How this virtual + serial port is then connected to the host is configurable, and the + details depend on your host OS. + + + + You can use either the Settings tabs or the + VBoxManage command to set up virtual serial + ports. For the latter, see + for information on the , + and + options. + + + + You can configure up to four virtual serial ports per virtual + machine. For each device, you must set the following: + + + + + + + Port Number: This determines + the serial port that the virtual machine should see. For best + results, use the traditional values as follows: + + + + + + + COM1: I/O base 0x3F8, IRQ 4 + + + + + + COM2: I/O base 0x2F8, IRQ 3 + + + + + + COM3: I/O base 0x3E8, IRQ 4 + + + + + + COM4: I/O base 0x2E8, IRQ 3 + + + + + + + You can also configure a user-defined serial port. Enter an + I/O base address and interrupt (IRQ). + + + + + + Port Mode: What the virtual + port is connected to. For each virtual serial port, you have + the following options: + + + + + + + Disconnected: The guest + will see the device, but it will behave as if no cable had + been connected to it. + + + + + + Host Device: Connects the + virtual serial port to a physical serial port on your + host. On a Windows host, this will be a name like + COM1. On Linux or Oracle Solaris hosts, + it will be a device node like + /dev/ttyS0. &product-name; will then + simply redirect all data received from and sent to the + virtual serial port to the physical device. + + + + + + Host Pipe: Configure + &product-name; to connect the virtual serial port to a + software pipe on the host. This depends on your host OS, + as follows: + + + + + + + On a Windows host, data will be sent and received + through a named pipe. The pipe name must be in the + format + \\.\pipe\name + where name should identify + the virtual machine but may be freely chosen. + + + + + + On a Mac OS, Linux, or Oracle Solaris host, a local + domain socket is used instead. The socket filename + must be chosen such that the user running + &product-name; has sufficient privileges to create and + write to it. The /tmp directory + is often a good candidate. + + + + On Linux there are various tools which can connect to + a local domain socket or create one in server mode. + The most flexible tool is socat and + is available as part of many distributions. + + + + + + + In this case, you can configure whether &product-name; + should create the named pipe, or the local domain socket + non-Windows hosts, itself or whether &product-name; should + assume that the pipe or socket exists already. With the + VBoxManage command-line options, this + is referred to as server mode or client mode, + respectively. + + + + For a direct connection between two virtual machines, + corresponding to a null-modem cable, simply configure one + VM to create a pipe or socket and another to attach to it. + + + + + + Raw File: Send the + virtual serial port output to a file. This option is very + useful for capturing diagnostic output from a guest. Any + file may be used for this purpose, as long as the user + running &product-name; has sufficient privileges to create + and write to the file. + + + + + + TCP: Useful for + forwarding serial traffic over TCP/IP, acting as a server, + or it can act as a TCP client connecting to other servers. + This option enables a remote machine to directly connect + to the guest's serial port using TCP. + + + + + + + TCP Server: Deselect + the Connect to Existing + Pipe/Socket check box and specify the port + number in the + Path/Address field. + This is typically 23 or 2023. Note that on UNIX-like + systems you will have to use a port a number greater + than 1024 for regular users. + + + + The client can use software such as + PuTTY or the + telnet command line tool to access + the TCP Server. + + + + + + TCP Client: To create + a virtual null-modem cable over the Internet or LAN, + the other side can connect using TCP by specifying + hostname:port + in the Path/Address + field. The TCP socket will act in client mode if you + select the Connect to Existing + Pipe/Socket check box. + + + + + + + + + + + + + Up to four serial ports can be configured per virtual machine, but + you can pick any port numbers out of the above. However, serial + ports cannot reliably share interrupts. If both ports are to be + used at the same time, they must use different interrupt levels, + for example COM1 and COM2, but not COM1 and COM3. + + + + + + + USB Support + + + + USB Settings + + + The USB section in a virtual + machine's Settings window + enables you to configure &product-name;'s sophisticated USB + support. + + + + &product-name; can enable virtual machines to access the USB + devices on your host directly. To achieve this, &product-name; + presents the guest OS with a virtual USB controller. As soon as + the guest system starts using a USB device, it will appear as + unavailable on the host. + + + + + + + + Be careful with USB devices that are currently in use on + the host. For example, if you allow your guest to connect + to your USB hard disk that is currently mounted on the + host, when the guest is activated, it will be disconnected + from the host without a proper shutdown. This may cause + data loss. + + + + + + Oracle Solaris hosts have a few known limitations + regarding USB support. See . + + + + + + + + In addition to allowing a guest access to your local USB + devices, &product-name; even enables your guests to connect to + remote USB devices by use of the VirtualBox Remote Desktop + Extension (VRDE). See . + + + + To enable USB for a VM, select the Enable + USB Controller check box. The following settings are + available: + + + + + + + USB Controller: Selects a + controller with the specified level of USB support, as + follows: + + + + + + + OHCI for USB 1.1 + + + + + + EHCI for USB 2.0. This also enables OHCI. + + + + + + xHCI for USB 3.0. This supports all USB speeds. + + + + + + + + + USB Device Filters: When + USB support is enabled for a VM, you can determine in detail + which devices will be automatically attached to the guest. + For this, you can create filters by specifying certain + properties of the USB device. USB devices with a matching + filter will be automatically passed to the guest once they + are attached to the host. USB devices without a matching + filter can be passed manually to the guest, for example by + using the Devices, + USB menu. + + + + Clicking on the + button to + the right of the USB Device + Filters window creates a new filter. You can give + the filter a name, for later reference, and specify the + filter criteria. The more criteria you specify, the more + precisely devices will be selected. For instance, if you + specify only a vendor ID of 046d, all devices produced by + Logitech will be available to the guest. If you fill in all + fields, on the other hand, the filter will only apply to a + particular device model from a particular vendor, and not + even to other devices of the same type with a different + revision and serial number. + + + + In detail, the following criteria are available: + + + + + + + Vendor and Product ID. + With USB, each vendor of USB products carries an + identification number that is unique world-wide, called + the vendor ID. Similarly, each line + of products is assigned a product + ID number. Both numbers are commonly written + in hexadecimal, and a colon separates the vendor from + the product ID. For example, + 046d:c016 stands for Logitech as a + vendor, and the M-UV69a Optical Wheel Mouse product. + + + + Alternatively, you can also specify + Manufacturer and + Product by name. + + + + To list all the USB devices that are connected to your + host machine with their respective vendor IDs and + product IDs, use the following command: + + +VBoxManage list usbhost + + + On Windows, you can also see all USB devices that are + attached to your system in the Device Manager. On Linux, + you can use the lsusb command. + + + + + + Serial Number. While + vendor ID and product ID are quite specific to identify + USB devices, if you have two identical devices of the + same brand and product line, you will also need their + serial numbers to filter them out correctly. + + + + + + Remote. This setting + specifies whether the device will be local only, remote + only, such as over VRDP, or either. + + + + + + + On a Windows host, you will need to unplug and reconnect a + USB device to use it after creating a filter for it. + + + + As an example, you could create a new USB filter and specify + a vendor ID of 046d for Logitech, Inc, a manufacturer index + of 1, and "not remote". Then any USB devices on the host + system produced by Logitech, Inc with a manufacturer index + of 1 will be visible to the guest system. + + + + Several filters can select a single device. For example, a + filter which selects all Logitech devices, and one which + selects a particular webcam. + + + + You can deactivate filters without deleting them by + deselecting the check box next to the filter name. + + + + + + + + + + Implementation Notes for Windows and Linux Hosts + + + On Windows hosts, a kernel mode device driver provides USB proxy + support. It implements both a USB monitor, which enables + &product-name; to capture devices when they are plugged in, and + a USB device driver to claim USB devices for a particular + virtual machine. System reboots are not necessary after + installing the driver. Also, you do not need to replug devices + for &product-name; to claim them. + + + + On supported Linux hosts, &product-name; accesses USB devices + through special files in the file system. When &product-name; is + installed, these are made available to all users in the + vboxusers system group. In order to be able + to access USB from guest systems, make sure that you are a + member of this group. + + + + + + + + + Shared Folders + + + Shared folders enable you to easily exchange data between a + virtual machine and your host. This feature requires that the + &product-name; Guest Additions be installed in a virtual machine + and is described in detail in . + + + + + + + User Interface + + + The User Interface section + enables you to change certain aspects of the user interface of the + selected VM. + + + + + + + Menu Bar: This widget enables + you to disable a complete menu, by clicking on the menu name + to deselect it. Menu entries can be disabled, by deselecting + the check box next to the entry. On Windows and Linux hosts, + the complete menu bar can be disabled by deselecting the check + box on the right. + + + + + + Mini ToolBar: In full screen + or seamless mode, &product-name; can display a small toolbar + that contains some of the items that are normally available + from the virtual machine's menu bar. This toolbar reduces + itself to a small gray line unless you move the mouse over it. + With the toolbar, you can return from full screen or seamless + mode, control machine execution, or enable certain devices. If + you do not want to see the toolbar, disable the + Show in Full Screen/Seamless + setting. + + + + The Show at Top of Screen + setting enables you to show the toolbar at the top of the + screen, instead of showing it at the bottom. + + + + The Mini Toolbar is not available on macOS hosts. + + + + + + Status Bar: This widget + enables you to disable and reorder icons on the status bar. + Deselect the check box of an icon to disable it, or rearrange + icons by dragging and dropping the icon. To disable the + complete status bar deselect the check box on the left. + + + + + + + + + + Alternative Firmware (EFI) + + + &product-name; includes experimental support for the Extensible + Firmware Interface (EFI), which is an industry standard intended + to replace the legacy BIOS as the primary interface for + bootstrapping computers and certain system services later. + + + + By default, &product-name; uses the BIOS firmware for virtual + machines. To use EFI for a given virtual machine, you can enable + EFI in the machine's Settings + window. See . Alternatively, + use the VBoxManage command line interface as + follows: + + +VBoxManage modifyvm "VM name" --firmware efi + + + To switch back to using the BIOS: + + +VBoxManage modifyvm "VM name" --firmware bios + + + One notable user of EFI is Apple Mac OS X. More recent Linux + versions and Windows releases, starting with Vista, also offer + special versions that can be booted using EFI. + + + + Another possible use of EFI in &product-name; is development and + testing of EFI applications, without booting any OS. + + + + Note that the &product-name; EFI support is experimental and will + be enhanced as EFI matures and becomes more widespread. Mac OS X, + Linux, and newer Windows guests are known to work fine. Windows 7 + guests are unable to boot with the &product-name; EFI + implementation. + + + + + Video Modes in EFI + + + EFI provides two distinct video interfaces: GOP (Graphics Output + Protocol) and UGA (Universal Graphics Adapter). Modern OSes, + such as Mac OS X, generally use GOP, while some older ones still + use UGA. &product-name; provides a configuration option to + control the graphics resolution for both interfaces, making the + difference mostly irrelevant for users. + + + + The default resolution is 1024x768. To select a graphics + resolution for EFI, use the following + VBoxManage command: + + +VBoxManage setextradata "VM name" VBoxInternal2/EfiGraphicsResolution HxV + + + Determine the horizontal resolution H and the vertical + resolution V from the following list of default resolutions: + + + + + + + VGA + + + + + 640x480, 32bpp, 4:3 + + + + + + + SVGA + + + + + 800x600, 32bpp, 4:3 + + + + + + + XGA + + + + + 1024x768, 32bpp, 4:3 + + + + + + + XGA+ + + + + + 1152x864, 32bpp, 4:3 + + + + + + + HD + + + + + 1280x720, 32bpp, 16:9 + + + + + + + WXGA + + + + + 1280x800, 32bpp, 16:10 + + + + + + + SXGA + + + + + 1280x1024, 32bpp, 5:4 + + + + + + + SXGA+ + + + + + 1400x1050, 32bpp, 4:3 + + + + + + + WXGA+ + + + + + 1440x900, 32bpp, 16:10 + + + + + + + HD+ + + + + + 1600x900, 32bpp, 16:9 + + + + + + + UXGA + + + + + 1600x1200, 32bpp, 4:3 + + + + + + + WSXGA+ + + + + + 1680x1050, 32bpp, 16:10 + + + + + + + Full HD + + + + + 1920x1080, 32bpp, 16:9 + + + + + + + WUXGA + + + + + 1920x1200, 32bpp, 16:10 + + + + + + + DCI 2K + + + + + 2048x1080, 32bpp, 19:10 + + + + + + + Full HD+ + + + + + 2160x1440, 32bpp, 3:2 + + + + + + + Unnamed + + + + + 2304x1440, 32bpp, 16:10 + + + + + + + QHD + + + + + 2560x1440, 32bpp, 16:9 + + + + + + + WQXGA + + + + + 2560x1600, 32bpp, 16:10 + + + + + + + QWXGA+ + + + + + 2880x1800, 32bpp, 16:10 + + + + + + + QHD+ + + + + + 3200x1800, 32bpp, 16:9 + + + + + + + WQSXGA + + + + + 3200x2048, 32bpp, 16:10 + + + + + + + 4K UHD + + + + + 3840x2160, 32bpp, 16:9 + + + + + + + WQUXGA + + + + + 3840x2400, 32bpp, 16:10 + + + + + + + DCI 4K + + + + + 4096x2160, 32bpp, 19:10 + + + + + + + HXGA + + + + + 4096x3072, 32bpp, 4:3 + + + + + + + UHD+ + + + + + 5120x2880, 32bpp, 16:9 + + + + + + + WHXGA + + + + + 5120x3200, 32bpp, 16:10 + + + + + + + WHSXGA + + + + + 6400x4096, 32bpp, 16:10 + + + + + + + HUXGA + + + + + 6400x4800, 32bpp, 4:3 + + + + + + + 8K UHD2 + + + + + 7680x4320, 32bpp, 16:9 + + + + + + + + If this list of default resolution does not cover your needs, + see . Note that the color depth + value specified in a custom video mode must be specified. Color + depths of 8, 16, 24, and 32 are accepted. EFI assumes a color + depth of 32 by default. + + + + The EFI default video resolution settings can only be changed + when the VM is powered off. + + + + + + + Specifying Boot Arguments + + + It is currently not possible to manipulate EFI variables from + within a running guest. For example, setting the + boot-args variable by running the + nvram tool in a Mac OS X guest will not work. + As an alternative method, + VBoxInternal2/EfiBootArgs extradata can be + passed to a VM in order to set the boot-args + variable. To change the boot-args EFI + variable, use the following command: + + +VBoxManage setextradata "VM name" VBoxInternal2/EfiBootArgs <value> + + + + + +
diff --git a/doc/manual/en_US/user_ChangeLog.xml b/doc/manual/en_US/user_ChangeLog.xml new file mode 100644 index 00000000..3b342dd5 --- /dev/null +++ b/doc/manual/en_US/user_ChangeLog.xml @@ -0,0 +1,69 @@ + + + +%all.entities; +]> + + + Change Log + + + This section summarizes the changes between &product-name; versions. + Note that this change log is not exhaustive and not all changes are + listed. + + + + &product-name; version numbers consist of three numbers separated by + dots where the first and second number represent the major version + and the third number the minor version. Minor version numbers of + official releases are always even. An odd minor version number + represents an internal development or test build. In addition, each + build contains a revision number. + + + + + + + Change Logs for Legacy Versions + + + To view the change log for a legacy version of VirtualBox see the + documentation for the relevant &product-name; release. + + + + Change logs are also available at: + + + + . + + + + + diff --git a/doc/manual/en_US/user_Frontends.xml b/doc/manual/en_US/user_Frontends.xml new file mode 100644 index 00000000..1a507966 --- /dev/null +++ b/doc/manual/en_US/user_Frontends.xml @@ -0,0 +1,1208 @@ + + + +%all.entities; +]> + + + Remote Virtual Machines + + + + Remote Display (VRDP Support) + + + &product-name; can display virtual machines remotely, meaning that + a virtual machine can execute on one computer even though the + machine will be displayed on a second computer, and the machine + will be controlled from there as well, as if the virtual machine + was running on that second computer. + + + + For maximum flexibility, &product-name; implements remote machine + display through a generic extension interface called the + VirtualBox Remote Desktop Extension (VRDE). The base open source + &product-name; package only provides this interface, while + implementations can be supplied by third parties with + &product-name; extension packages, which must be installed + separately from the base package. See + . + + + + Oracle provides support for the VirtualBox Remote Display Protocol + (VRDP) in such an &product-name; extension package. + + + + VRDP is a backwards-compatible extension to Microsoft's Remote + Desktop Protocol (RDP). As a result, you can use any standard RDP + client to control the remote VM. + + + + Even when the extension is installed, the VRDP server is disabled + by default. It can easily be enabled on a per-VM basis either from + &vbox-mgr; in the Display + settings, see , or with the + VBoxManage command, as follows: + + +$ VBoxManage modifyvm VM-name --vrde on + + + By default, the VRDP server uses TCP port 3389. + You will need to change the default port if you run more than one + VRDP server, since the port can only be used by one server at a + time. You might also need to change it on Windows hosts since the + default port might already be used by the RDP server that is built + into Windows itself. Ports 5000 through 5050 are typically not + used and might be a good choice. + + + + The port can be changed either in the + Display settings of the graphical + user interface or with the option of + the VBoxManage modifyvm command. You can + specify a comma-separated list of ports or ranges of ports. Use a + dash between two port numbers to specify a range. The VRDP server + will bind to one of the available ports from + the specified list. For example, VBoxManage modifyvm + VM-name --vrde-port + 5000,5010-5012 configures the server to bind to one of + the ports 5000, 5010, 5011, or 5012. See + . + + + + The actual port used by a running VM can be either queried with + the VBoxManage showvminfo command or seen in + &vbox-mgr; on the Runtime tab of + the Session Information dialog, + which is accessible from the + Machine menu of the VM window. + + + + &product-name; supports IPv6. If the host OS supports IPv6 the + VRDP server will automatically listen for IPv6 connections in + addition to IPv4. + + + + + Common Third-Party RDP Viewers + + + Since VRDP is backwards-compatible to RDP, you can use any + standard RDP viewer to connect to such a remote virtual machine. + For this to work, you must specify the IP address of your + host system, not of the virtual machine, as + the server address to connect to. You must also specify the port + number that the VRDP server is using. + + + + The following examples are for the most common RDP viewers: + + + + + + + On Windows, you can use the Microsoft Terminal Services + Connector, mstsc.exe, that is included + with Windows. Press the Windows key + R, to display the + Run dialog. Enter + mstsc to start the program. You can also + find the program in Start, + All Programs, + Accessories, + Remote Desktop Connection. + If you use the Run dialog, + you can enter options directly. For example: + + +mstsc 1.2.3.4:3389 + + + Replace 1.2.3.4 with the host IP address, + and 3389 with a different port, if + necessary. + + + + + + + + IPv6 addresses must be enclosed in square brackets to + specify a port. For example: mstsc + [fe80::1:2:3:4]:3389 + + + + + + When connecting to localhost in order to test the + connection, the addresses localhost + and 127.0.0.1 might not work using + mstsc.exe. Instead, the address + 127.0.0.2[:3389] has to be used. + + + + + + + + + + On other systems, you can use the standard open source + rdesktop program. This ships with most + Linux distributions. + + + + With rdesktop, use a command line such as + the following: + + +$ rdesktop -a 16 -N 1.2.3.4:3389 + + + Replace 1.2.3.4 with the host IP address, + and 3389 with a different port, if + necessary. The option requests a + color depth of 16 bits per pixel, which we recommend. For + best performance, after installation of the guest operating + system, you should set its display color depth to the same + value. The option enables use of the + NumPad keys. + + + + + + You can use the Remmina remote desktop client with VRDP. + This application is included with some Linux distributions, + such as Debian and Ubuntu. + + + + + + If you run the KDE desktop, you can use + krdc, the KDE RDP viewer. A typical + command line is as follows: + + +$ krdc rdp://1.2.3.4:3389 + + + Replace 1.2.3.4 with the host IP address, + and 3389 with a different port, if + necessary. The rdp:// prefix is required + with krdc to switch it into RDP mode. + + + + + + With Sun Ray thin clients you can use + uttsc, which is part of the Sun Ray + Windows Connector package. See the Sun Ray documentation for + details. + + + + + + + + + + VBoxHeadless, the Remote Desktop Server + + + While any VM started from &vbox-mgr; is capable of running + virtual machines remotely, it is not convenient to have to run + the full GUI if you never want to have VMs displayed locally in + the first place. In particular, if you are running server + hardware whose only purpose is to host VMs, and all your VMs are + supposed to run remotely over VRDP, then it is pointless to have + a graphical user interface on the server at all. This is + especially true for Linux or Oracle Solaris hosts, as the + &vbox-mgr; comes with dependencies on the Qt and SDL libraries. + This is inconvenient if you would rather not have the X Window + system on your server at all. + + + + &product-name; therefore comes with a front-end called + VBoxHeadless, which produces no visible + output on the host at all, but still can optionally deliver VRDP + data. This front-end has no dependencies on the X Window system + on Linux and Oracle Solaris hosts. + + + + + In legacy releases of &product-name;, the headless server was + called VBoxVRDP. For backwards + compatibility, the &product-name; installation still includes + an executable with that name. + + + + + To start a virtual machine with VBoxHeadless, + you have the following options: + + + + + + + Use the VBoxManage command, as follows: + + +$ VBoxManage startvm VM-name --type headless + + + The option causes &product-name; to + use VBoxHeadless as the front-end to the + internal virtualization engine, instead of the Qt front-end. + + + + + + Use the VBoxHeadless command, as follows: + + +VBoxHeadless --startvm uuid|vmname + + + This way of starting the VM helps troubleshooting problems + reported by VBoxManage startvm, because + you can sometimes see more detailed error messages, + especially for early failures before the VM execution is + started. In normal situations VBoxManage + startvm is preferred, since it runs the VM + directly as a background process which has to be done + explicitly when directly starting with + VBoxHeadless. The full documentation of + the command is in . + + + + + + Start VBoxHeadless from &vbox-mgr;, by + pressing the Shift key when starting a virtual machine or by + selecting Headless Start + from the Machine menu. + + + + + + + When you use the VBoxHeadless command to + start a VM, the VRDP server will be enabled according to the VM + configuration. You can override the VM's setting using + command line parameter. To enable the + VRDP server, start the VM as follows: + + +VBoxHeadless --startvm uuid|vmname --vrde on + + + To disable the VRDP server: + + +VBoxHeadless --startvm uuid|vmname --vrde off + + + To have the VRDP server enabled depending on the VM + configuration, as for other front-ends: + + +VBoxHeadless --startvm uuid|vmname --vrde config + + + This command is the same as the following: + + +VBoxHeadless --startvm uuid|vmname + + + If you start the VM with VBoxManage startvm + then the configuration settings of the VM are always used. + + + + + + + Step by Step: Creating a Virtual Machine on a Headless Server + + + The following instructions describe how to create a virtual + machine on a headless server over a network connection. This + example creates a virtual machine, establishes an RDP connection + and installs a guest operating system. All of these tasks are + done without having to touch the headless server. You need the + following prerequisites: + + + + + + + &product-name; on a server machine with a supported host + operating system. The &product-name; Extension Pack for the + VRDP server must be installed, see . + The procedures assume a Linux server is used. + + + + + + An ISO file accessible from the server, containing the + installation data for the guest operating system to install. + Windows XP is used in the example. + + + + + + A terminal connection to that host through which you can + access a command line, such as ssh. + + + + + + An RDP viewer on the remote client. See + for examples. + + + + + + + Note that on the server machine, since we will only use the + headless server, Qt and the X Window system are not required. + + + + + + + On the headless server, create a new virtual machine. For + example: + + +VBoxManage createvm --name "Windows XP" --ostype WindowsXP --register + + + If you do not specify , you will + have to manually use the registervm + command later. + + + + You do not need to specify , but + doing so selects some sensible default values for certain VM + parameters. For example, the RAM size and the type of the + virtual network device. To get a complete list of supported + operating systems you can use the following command: + + +VBoxManage list ostypes + + + + + Make sure the settings for the VM are appropriate for the + guest operating system that we will install. For example: + + +VBoxManage modifyvm "Windows XP" --memory 256 --acpi on --boot1 dvd --nic1 nat + + + + + Create a virtual hard disk for the VM. For example, to + create a 10 GB virtual hard disk: + + +VBoxManage createhd --filename "WinXP.vdi" --size 10000 + + + + + Add an IDE Controller to the new VM. For example: + + +VBoxManage storagectl "Windows XP" --name "IDE Controller" + --add ide --controller PIIX4 + + + + + Set the VDI file you created as the first virtual hard disk + of the new VM. For example: + + +VBoxManage storageattach "Windows XP" --storagectl "IDE Controller" + --port 0 --device 0 --type hdd --medium "WinXP.vdi" + + + + + Attach the ISO file that contains the operating system + installation that you want to install later to the virtual + machine. This is done so that the VM can boot from it. + + +VBoxManage storageattach "Windows XP" --storagectl "IDE Controller" + --port 0 --device 1 --type dvddrive --medium /full/path/to/iso.iso + + + + + Enable the VirtualBox Remote Desktop Extension, the VRDP + server, as follows: + + +VBoxManage modifyvm "Windows XP" --vrde on + + + + + Start the virtual machine using the + VBoxHeadless command: + + +VBoxHeadless --startvm "Windows XP" + + + If the configuration steps worked, you should see a + copyright notice. If you are returned to the command line, + then something did not work correctly. + + + + + + On the client machine, start the RDP viewer and connect to + the server. See for details + of how to use various common RDP viewers. + + + + The installation routine of your guest operating system + should be displayed in the RDP viewer. + + + + + + + + + + Remote USB + + + As a special feature additional to the VRDP support, + &product-name; also supports remote USB devices over the wire. + That is, an &product-name; guest that runs on one computer can + access the USB devices of the remote computer on which the VRDP + data is being displayed the same way as USB devices that are + connected to the actual host. This enables running of virtual + machines on an &product-name; host that acts as a server, where + a client can connect from elsewhere that needs only a network + adapter and a display capable of running an RDP viewer. When USB + devices are plugged into the client, the remote &product-name; + server can access them. + + + + For these remote USB devices, the same filter rules apply as for + other USB devices. See . All you + have to do is specify Remote, or Any, when setting up these + rules. + + + + Accessing remote USB devices is only possible if the RDP client + supports this extension. Some versions of + uttsc, a client tailored for the use with Sun + Ray thin clients, support accessing remote USB devices. RDP + clients for other platforms will be provided in future + &product-name; versions. + + + + + + + RDP Authentication + + + For each virtual machine that is remotely accessible using RDP, + you can individually determine if and how client connections are + authenticated. For this, use the VBoxManage + modifyvm command with the + option. See + . The following methods of + authentication are available: + + + + + + + The null method means that + there is no authentication at all. Any client can connect to + the VRDP server and thus the virtual machine. This is very + insecure and only to be recommended for private networks. + + + + + + The external method + provides external authentication through a special + authentication library. &product-name; ships with two + special authentication libraries: + + + + + + + The default authentication library, + VBoxAuth, authenticates against user + credentials of the hosts. Depending on the host + platform, this means the following: + + + + + + + On Linux hosts, VBoxAuth.so + authenticates users against the host's PAM system. + + + + + + On Windows hosts, VBoxAuth.dll + authenticates users against the host's WinLogon + system. + + + + + + On macOS hosts, VBoxAuth.dylib + authenticates users against the host's directory + service. + + + + + + + In other words, the external method by default performs + authentication with the user accounts that exist on the + host system. Any user with valid authentication + credentials is accepted. For example, the username does + not have to correspond to the user running the VM. + + + + + + An additional library called + VBoxAuthSimple performs + authentication against credentials configured in the + extradata section of a virtual + machine's XML settings file. This is probably the + simplest way to get authentication that does not depend + on a running and supported guest. The following steps + are required: + + + + + + + Enable VBoxAuthSimple with the + following command: + + +VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple" + + + + + To enable the library for a particular VM, you must + switch authentication to external, as follows: + + +VBoxManage modifyvm VM-name --vrde-auth-type external + + + Replace VM-name with the + VM name or UUID. + + + + + + You then need to configure users and passwords by + writing items into the machine's extradata. Since + the XML machine settings file, into whose + extradata section the password + needs to be written, is a plain text file, + &product-name; uses hashes to encrypt passwords. The + following command must be used: + + +VBoxManage setextradata VM-name "VBoxAuthSimple/users/user" hash + + + Replace VM-name with the + VM name or UUID, user + with the user name who should be allowed to log in + and hash with the + encrypted password. The following command example + obtains the hash value for the password + secret: + + +$ VBoxManage internalcommands passwordhash "secret" +2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b + + + You then use VBoxManage + setextradata to store this value in the + machine's extradata section. + + + + As a combined example, to set the password for the + user john and the machine + My VM to + secret, use this command: + + +VBoxManage setextradata "My VM" "VBoxAuthSimple/users/john" + 2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b + + + + + + + + + + + The guest authentication + method performs authentication with a special component that + comes with the Guest Additions. As a result, authentication + is not performed on the host, but with the guest user + accounts. + + + + This method is currently still in testing and not yet + supported. + + + + + + + In addition to the methods described above, you can replace the + default external authentication module with any other module. + For this, &product-name; provides a well-defined interface that + enables you to write your own authentication module. This is + described in detail in the &product-name; Software Development + Kit (SDK) reference. See . + + + + + + + RDP Encryption + + + RDP features data stream encryption, which is based on the RC4 + symmetric cipher, with keys up to 128-bit. The RC4 keys are + replaced at regular intervals, every 4096 packets. + + + + RDP provides the following different authentication methods: + + + + + + + RDP 4 authentication was + used historically. With RDP 4, the RDP client does not + perform any checks in order to verify the identity of the + server it connects to. Since user credentials can be + obtained using a man in the middle (MITM) attack, RDP4 + authentication is insecure and should generally not be used. + + + + + + RDP 5.1 authentication + employs a server certificate for which the client possesses + the public key. This way it is guaranteed that the server + possess the corresponding private key. However, as this + hard-coded private key became public some years ago, RDP 5.1 + authentication is also insecure. + + + + + + RDP 5.2 or later + authentication uses Enhanced RDP Security, which means that + an external security protocol is used to secure the + connection. RDP 4 and RDP 5.1 use Standard RDP Security. The + VRDP server supports Enhanced RDP Security with TLS protocol + and, as a part of the TLS handshake, sends the server + certificate to the client. + + + + The Security/Method VRDE property sets + the desired security method, which is used for a connection. + Valid values are as follows: + + + + + + + Negotiate. Both + Enhanced (TLS) and Standard RDP Security connections are + allowed. The security method is negotiated with the + client. This is the default setting. + + + + + + RDP. Only Standard RDP + Security is accepted. + + + + + + TLS. Only Enhanced RDP + Security is accepted. The client must support TLS. + + + + The version of OpenSSL used by &product-name; supports + TLS versions 1.0, 1.1, 1.2, and 1.3. + + + + + + + For example, the following command enables a client to use + either Standard or Enhanced RDP Security connection: + + +vboxmanage modifyvm VM-name --vrde-property "Security/Method=negotiate" + + + If the Security/Method property is set to + either Negotiate or TLS, the TLS protocol will be + automatically used by the server, if the client supports + TLS. However, in order to use TLS the server must possess + the Server Certificate, the Server Private Key and the + Certificate Authority (CA) Certificate. The following + example shows how to generate a server certificate. + + + + + + + Create a CA self signed certificate. + + +openssl req -new -x509 -days 365 -extensions v3_ca \ + -keyout ca_key_private.pem -out ca_cert.pem + + + + + Generate a server private key and a request for signing. + + +openssl genrsa -out server_key_private.pem +openssl req -new -key server_key_private.pem -out server_req.pem + + + + + Generate the server certificate. + + +openssl x509 -req -days 365 -in server_req.pem \ + -CA ca_cert.pem -CAkey ca_key_private.pem -set_serial 01 -out server_cert.pem + + + + + + The server must be configured to access the required files. + For example: + + +vboxmanage modifyvm VM-name \ + --vrde-property "Security/CACertificate=path/ca_cert.pem" + +vboxmanage modifyvm VM-name \ + --vrde-property "Security/ServerCertificate=path/server_cert.pem" + +vboxmanage modifyvm VM-name \ + --vrde-property "Security/ServerPrivateKey=path/server_key_private.pem" + + + + + + As the client that connects to the server determines what type + of encryption will be used, with rdesktop, + the Linux RDP viewer, use the or + options. + + + + + + + Multiple Connections to the VRDP Server + + + The VRDP server of &product-name; supports multiple simultaneous + connections to the same running VM from different clients. All + connected clients see the same screen output and share a mouse + pointer and keyboard focus. This is similar to several people + using the same computer at the same time, taking turns at the + keyboard. + + + + The following command enables multiple connection mode: + + +VBoxManage modifyvm VM-name --vrde-multi-con on + + + + + + Multiple Remote Monitors + + + To access two or more remote VM displays you have to enable the + VRDP multiconnection mode. See + . + + + + The RDP client can select the virtual monitor number to connect + to using the domain login parameter + (). If the parameter ends with + @ followed by a number, &product-name; + interprets this number as the screen index. The primary guest + screen is selected with @1, the first + secondary screen is @2, and so on. + + + + The Microsoft RDP 6 client does not let you specify a separate + domain name. Instead, enter + domain\username + in the Username field. For + example, @2\name. + name must be supplied, and must be + the name used to log in if the VRDP server is set up to require + credentials. If it is not, you may use any text as the username. + + + + + + + VRDP Video Redirection + + + The VRDP server can redirect video streams from the guest to the + RDP client. Video frames are compressed using the JPEG algorithm + allowing a higher compression ratio than standard RDP bitmap + compression methods. It is possible to increase the compression + ratio by lowering the video quality. + + + + The VRDP server automatically detects video streams in a guest + as frequently updated rectangular areas. As a result, this + method works with any guest operating system without having to + install additional software in the guest. In particular, the + Guest Additions are not required. + + + + On the client side, however, currently only the Windows 7 Remote + Desktop Connection client supports this feature. If a client + does not support video redirection, the VRDP server falls back + to regular bitmap updates. + + + + The following command enables video redirection: + + +VBoxManage modifyvm VM-name --vrde-video-channel on + + + The quality of the video is defined as a value from 10 to 100 + percent, representing a JPEG compression level, where lower + numbers mean lower quality but higher compression. The quality + can be changed using the following command: + + +VBoxManage modifyvm VM-name --vrde-video-channel-quality 75 + + + + + + VRDP Customization + + + You can disable display output, mouse and keyboard input, audio, + remote USB, or clipboard individually in the VRDP server. + + + + The following commands change the corresponding server settings: + + +$ VBoxManage modifyvm VM-name --vrde-property Client/DisableDisplay=1 +$ VBoxManage modifyvm VM-name --vrde-property Client/DisableInput=1 +$ VBoxManage modifyvm VM-name --vrde-property Client/DisableUSB=1 +$ VBoxManage modifyvm VM-name --vrde-property Client/DisableAudio=1 +$ VBoxManage modifyvm VM-name --vrde-property Client/DisableClipboard=1 +$ VBoxManage modifyvm VM-name --vrde-property Client/DisableUpstreamAudio=1 + + + To reenable a feature, use a similar command without the + trailing 1. For example: + + +$ VBoxManage modifyvm VM-name --vrde-property Client/DisableDisplay= + + + + + + + + Teleporting + + + &product-name; supports teleporting. + Teleporting is moving a virtual machine over a network from one + &product-name; host to another, while the virtual machine is + running. This works regardless of the host operating system that + is running on the hosts. You can teleport virtual machines between + Oracle Solaris and macOS hosts, for example. + + + + Teleporting requires that a machine be currently running on one + host, which is called the source. The host to + which the virtual machine will be teleported is called the + target. The machine on the target is then + configured to wait for the source to contact the target. The + machine's running state will then be transferred from the source + to the target with minimal downtime. + + + + Teleporting happens over any TCP/IP network. The source and the + target only need to agree on a TCP/IP port which is specified in + the teleporting settings. + + + + At this time, there are a few prerequisites for this to work, as + follows: + + + + + + + On the target host, you must configure a virtual machine in + &product-name; with exactly the same hardware settings as the + machine on the source that you want to teleport. This does not + apply to settings which are merely descriptive, such as the VM + name, but obviously for teleporting to work, the target + machine must have the same amount of memory and other hardware + settings. Otherwise teleporting will fail with an error + message. + + + + + + The two virtual machines on the source and the target must + share the same storage, hard disks as well as floppy disks and + CD/DVD images. This means that they either use the same iSCSI + targets or that the storage resides somewhere on the network + and both hosts have access to it using NFS or SMB/CIFS. + + + + This also means that neither the source nor the target machine + can have any snapshots. + + + + + + + To configure teleporting, perform the following steps: + + + + + + + On the target host, configure the virtual + machine to wait for a teleport request to arrive when it is + started, instead of actually attempting to start the machine. + This is done with the following VBoxManage + command: + + +VBoxManage modifyvm targetvmname --teleporter on --teleporter-port port + + + targetvmname is the name of the + virtual machine on the target host and + port is a TCP/IP port number to be + used on both the source and the target hosts. For example, use + 6000. See . + + + + + + Start the VM on the target host. Instead of running, the VM + shows a progress dialog, indicating that it is waiting for a + teleport request to arrive. + + + + + + Start the VM on the source host as usual. + When it is running and you want it to be teleported, issue the + following command on the source host: + + +VBoxManage controlvm sourcevmname teleport --host targethost --port port + + + where sourcevmname is the name of + the virtual machine on the source host, which is the machine + that is currently running. + targethost is the host or IP name + of the target host on which the machine is waiting for the + teleport request, and port must be + the same number as specified in the command on the target + host. See . + + + + + + + For testing, you can also teleport machines on the same host. In + that case, use localhost as the hostname on both the source and + the target host. + + + + + In rare cases, if the CPUs of the source and the target are very + different, teleporting can fail with an error message, or the + target may hang. This may happen especially if the VM is running + application software that is highly optimized to run on a + particular CPU without correctly checking that certain CPU + features are actually present. &product-name; filters what CPU + capabilities are presented to the guest operating system. + Advanced users can attempt to restrict these virtual CPU + capabilities with the VBoxManage modifyvm + --cpuid-portability-level command. See + . + + + + + + + + diff --git a/doc/manual/en_US/user_Glossary.xml b/doc/manual/en_US/user_Glossary.xml new file mode 100644 index 00000000..ef03c017 --- /dev/null +++ b/doc/manual/en_US/user_Glossary.xml @@ -0,0 +1,721 @@ + + + +%all.entities; +]> + + + + A + + ACPI + + + + + Advanced Configuration and Power Interface, an industry + specification for BIOS and hardware extensions to configure PC + hardware and perform power management. Windows 2000 and later, + as well as Linux 2.4 and later support ACPI. Windows can only + enable or disable ACPI support at installation time. + + + + + + + AHCI + + + + + Advanced Host Controller Interface, the interface that + supports SATA devices such as hard disks. See + . + + + + + + + AMD-V + + + + + The hardware virtualization features built into modern AMD + processors. See . + + + + + + + API + + + + + Application Programming Interface. + + + + + + + APIC + + + + + Advanced Programmable Interrupt Controller, a newer version of + the original PC PIC (programmable interrupt controller). Most + modern CPUs contain an on-chip APIC, called a local APIC. Many + systems also contain an I/O APIC (input output APIC) as a + separate chip which provides more than 16 IRQs. Windows 2000 + and later use a different kernel if they detect an I/O APIC + during installation. Therefore, an I/O APIC must not be + removed after installation. + + + + + + + ATA + + + + + Advanced Technology Attachment, an industry standard for hard + disk interfaces which is synonymous with IDE. See + . + + + + + + + + + + + B + + BIOS + + + + + Basic Input/Output System, the firmware built into most + personal computers which is responsible of initializing the + hardware after the computer has been turned on and then + booting an operating system. &product-name; ships with its own + virtual BIOS that runs when a virtual machine is started. + + + + + + + + + + + C + + COM + + + + + Microsoft Component Object Model, a programming infrastructure + for modular software. COM enables applications to provide + application programming interfaces which can be accessed from + various other programming languages and applications. + &product-name; makes use of COM both internally and externally + to provide a comprehensive API to 3rd party developers. + + + + + + + + + + + D + + DHCP + + + + + Dynamic Host Configuration Protocol. This enables a networking + device in a network to acquire its IP address and other + networking details automatically, in order to avoid having to + configure all devices in a network with fixed IP addresses. + &product-name; has a built-in DHCP server that delivers an IP + addresses to a virtual machine when networking is configured + to NAT. See . + + + + + + + + + + + E + + EFI + + + + + Extensible Firmware Interface, a firmware built into computers + which is designed to replace the aging BIOS. Originally + designed by Intel, most modern operating systems can now boot + on computers which have EFI instead of a BIOS built into them. + See . + + + + + + + EHCI + + + + + Enhanced Host Controller Interface, the interface that + implements the USB 2.0 standard. + + + + + + + + + + + G + + GUI + + + + + Graphical User Interface. Commonly used as an antonym to a + "command line interface". In the context of &product-name;, we + sometimes refer to the main graphical + VirtualBox program as the "GUI", to + differentiate it from the VBoxManage + interface. + + + + + + + GUID + + + + + See UUID. + + + + + + + + + + + I + + IDE + + + + + Integrated Drive Electronics, an industry standard for hard + disk interfaces. See . + + + + + + + I/O APIC + + + + + See APIC. + + + + + + + iSCSI + + + + + Internet SCSI. See . + + + + + + + + + + + M + + MAC + + + + + Media Access Control, a part of an Ethernet network card. A + MAC address is a 6-byte number which identifies a network + card. It is typically written in hexadecimal notation where + the bytes are separated by colons, such as + 00:17:3A:5E:CB:08. + + + + + + + MSI + + + + + Message Signaled Interrupts, as supported by modern chipsets + such as the ICH9. See . + As opposed to traditional pin-based interrupts, with MSI, a + small amount of data can accompany the actual interrupt + message. This reduces the amount of hardware pins required and + allows for more interrupts and better performance. + + + + + + + + + + + N + + NAT + + + + + Network Address Translation. A technique to share networking + interfaces by which an interface modifies the source and/or + target IP addresses of network packets according to specific + rules. Commonly employed by routers and firewalls to shield an + internal network from the Internet, &product-name; can use NAT + to easily share a host's physical networking hardware with its + virtual machines. See . + + + + + + + + + + + O + + OVF + + + + + Open Virtualization Format, a cross-platform industry standard + to exchange virtual appliances between virtualization + products. See . + + + + + + + + + + + P + + PAE + + + + + Physical Address Extension. This enables access to more than 4 + GB of RAM, even in 32-bit environments. See + . + + + + + + + PIC + + + + + See APIC. + + + + + + + PXE + + + + + Preboot Execution Environment, an industry standard for + booting PC systems from remote network locations. It includes + DHCP for IP configuration and TFTP for file transfer. Using + UNDI, a hardware independent driver stack for accessing the + network card from bootstrap code is available. + + + + + + + + + + + R + + RDP + + + + + Remote Desktop Protocol, a protocol developed by Microsoft as + an extension to the ITU T.128 and T.124 video conferencing + protocol. With RDP, a PC system can be controlled from a + remote location using a network connection over which data is + transferred in both directions. Typically graphics updates and + audio are sent from the remote machine and keyboard and mouse + input events are sent from the client. An &product-name; + extension package by Oracle provides VRDP, an enhanced + implementation of the relevant standards which is largely + compatible with Microsoft's RDP implementation. See + for details. + + + + + + + + + + + S + + SAS + + + + + Serial Attached SCSI, an industry standard for hard disk + interfaces. See . + + + + + + + SATA + + + + + Serial ATA, an industry standard for hard disk interfaces. See + . + + + + + + + SCSI + + + + + Small Computer System Interface. An industry standard for data + transfer between devices, especially for storage. See + . + + + + + + + SMP + + + + + Symmetrical Multiprocessing, meaning that the resources of a + computer are shared between several processors. These can + either be several processor chips or, as is more common with + modern hardware, multiple CPU cores in one processor. + + + + + + + SSD + + + + + Solid-state drive, uses microchips for storing data in a + computer system. Compared to classical hard-disks they are + having no mechanical components like spinning disks. + + + + + + + + + + + T + + TAR + + + + + A widely used file format for archiving. Originally, this + stood for Tape ARchive and was already supported by very early + UNIX versions for backing up data on tape. The file format is + still widely used today. For example, with OVF archives using + an .ova file extension. See + . + + + + + + + + + + + U + + UUID + + + + + A Universally Unique Identifier, often also called GUID + (Globally Unique Identifier). A UUID is a string of numbers + and letters which can be computed dynamically and is + guaranteed to be unique. Generally, it is used as a global + handle to identify entities. &product-name; makes use of UUIDs + to identify VMs, Virtual Disk Images (VDI files), and other + entities. + + + + + + + + + + + V + + VM + + + + + Virtual Machine. A virtual computer that &product-name; + enables you to run on top of your actual hardware. See + for details. + + + + + + + VMM + + + + + Virtual Machine Manager. The component of &product-name; that + controls VM execution. See + for a list of + &product-name; components. + + + + + + + VRDE + + + + + VirtualBox Remote Desktop Extension. This interface is built + into &product-name; to allow &product-name; extension packages + to supply remote access to virtual machines. An &product-name; + extension package by Oracle provides VRDP support. See + . + + + + + + + VRDP + + + + + See RDP. + + + + + + + VT-x + + + + + The hardware virtualization features built into modern Intel + processors. See . + + + + + + + + + + + X + + xHCI + + + + + eXtended Host Controller Interface, the interface that + implements the USB 3.0 standard. + + + + + + + XML + + + + + The eXtensible Markup Language, a metastandard for all kinds + of textual information. XML only specifies how data in the + document is organized generally and does not prescribe how to + semantically organize content. + + + + + + + XPCOM + + + + + Mozilla Cross Platform Component Object Model, a programming + infrastructure developed by the Mozilla browser project which + is similar to Microsoft COM and enables applications to + provide a modular programming interface. &product-name; makes + use of XPCOM on Linux both internally and externally to + provide a comprehensive API to third-party developers. + + + + + + + + + diff --git a/doc/manual/en_US/user_GuestAdditions.xml b/doc/manual/en_US/user_GuestAdditions.xml new file mode 100644 index 00000000..abc28aad --- /dev/null +++ b/doc/manual/en_US/user_GuestAdditions.xml @@ -0,0 +1,2672 @@ + + + +%all.entities; +]> + + + Guest Additions + + + The previous chapter covered getting started with &product-name; and + installing operating systems in a virtual machine. For any serious + and interactive use, the &product-name; Guest Additions will make + your life much easier by providing closer integration between host + and guest and improving the interactive performance of guest + systems. This chapter describes the Guest Additions in detail. + + + + + Introduction to Guest Additions + + + As mentioned in , the Guest Additions + are designed to be installed inside a virtual + machine after the guest operating system has been installed. They + consist of device drivers and system applications that optimize + the guest operating system for better performance and usability. + See for details on what guest + operating systems are fully supported with Guest Additions by + &product-name;. + + + + The &product-name; Guest Additions for all supported guest + operating systems are provided as a single CD-ROM image file which + is called VBoxGuestAdditions.iso. This image + file is located in the installation directory of &product-name;. + To install the Guest Additions for a particular VM, you mount this + ISO file in your VM as a virtual CD-ROM and install from there. + + + + The Guest Additions offer the following features: + + + + + + + Mouse pointer integration. To + overcome the limitations for mouse support described in + , this feature provides + you with seamless mouse support. You will only have one mouse + pointer and pressing the Host key is no longer required to + free the mouse from being captured by the + guest OS. To make this work, a special mouse driver is + installed in the guest that communicates with the physical + mouse driver on your host and moves the guest mouse pointer + accordingly. + + + + + + Shared folders. These provide + an easy way to exchange files between the host and the guest. + Much like ordinary Windows network shares, you can tell + &product-name; to treat a certain host directory as a shared + folder, and &product-name; will make it available to the guest + operating system as a network share, irrespective of whether + the guest actually has a network. See + . + + + + + + Better video support. While + the virtual graphics card which &product-name; emulates for + any guest operating system provides all the basic features, + the custom video drivers that are installed with the Guest + Additions provide you with extra high and non-standard video + modes, as well as accelerated video performance. + + + + In addition, with Windows, Linux, and Oracle Solaris guests, + you can resize the virtual machine's window if the Guest + Additions are installed. The video resolution in the guest + will be automatically adjusted, as if you had manually entered + an arbitrary resolution in the guest's + Display settings. See + . + + + + If the Guest Additions are installed, 3D graphics and 2D video + for guest applications can be accelerated. See + . + + + + + + Seamless windows. With this + feature, the individual windows that are displayed on the + desktop of the virtual machine can be mapped on the host's + desktop, as if the underlying application was actually running + on the host. See . + + + + + + Generic host/guest communication + channels. The Guest Additions enable you to control + and monitor guest execution. The guest + properties provide a generic string-based mechanism + to exchange data bits between a guest and a host, some of + which have special meanings for controlling and monitoring the + guest. See . + + + + Additionally, applications can be started in a guest from the + host. See . + + + + + + Time synchronization. With + the Guest Additions installed, &product-name; can ensure that + the guest's system time is better synchronized with that of + the host. + + + + For various reasons, the time in the guest might run at a + slightly different rate than the time on the host. The host + could be receiving updates through NTP and its own time might + not run linearly. A VM could also be paused, which stops the + flow of time in the guest for a shorter or longer period of + time. When the wall clock time between the guest and host only + differs slightly, the time synchronization service attempts to + gradually and smoothly adjust the guest time in small + increments to either catch up or lose time. When the + difference is too great, for example if a VM paused for hours + or restored from saved state, the guest time is changed + immediately, without a gradual adjustment. + + + + The Guest Additions will resynchronize the time regularly. See + for how to configure the + parameters of the time synchronization mechanism. + + + + + + Shared clipboard. With the + Guest Additions installed, the clipboard of the guest + operating system can optionally be shared with your host + operating system. See . + + + + + + Automated logins. Also called + credentials passing. See . + + + + + + + Each version of &product-name;, even minor releases, ship with + their own version of the Guest Additions. While the interfaces + through which the &product-name; core communicates with the Guest + Additions are kept stable so that Guest Additions already + installed in a VM should continue to work when &product-name; is + upgraded on the host, for best results, it is recommended to keep + the Guest Additions at the same version. + + + + The Windows and Linux Guest Additions therefore check + automatically whether they have to be updated. If the host is + running a newer &product-name; version than the Guest Additions, a + notification with further instructions is displayed in the guest. + + + + To disable this update check for the Guest Additions of a given + virtual machine, set the value of its + /VirtualBox/GuestAdd/CheckHostVersion guest + property to 0. See + . + + + + + + + Installing and Maintaining Guest Additions + + + Guest Additions are available for virtual machines running + Windows, Linux, Oracle Solaris, or OS/2. The following sections + describe the specifics of each variant in detail. + + + + + Guest Additions for Windows + + + The &product-name; Windows Guest Additions are designed to be + installed in a virtual machine running a Windows operating + system. The following versions of Windows guests are supported: + + + + + + + Microsoft Windows NT 4.0 (any service pack) + + + + + + Microsoft Windows 2000 (any service pack) + + + + + + Microsoft Windows XP (any service pack) + + + + + + Microsoft Windows Server 2003 (any service pack) + + + + + + Microsoft Windows Server 2008 + + + + + + Microsoft Windows Vista (all editions) + + + + + + Microsoft Windows 7 (all editions) + + + + + + Microsoft Windows 8 (all editions) + + + + + + Microsoft Windows 10 RTM build 10240 + + + + + + Microsoft Windows Server 2012 + + + + + + + + Installing the Windows Guest Additions + + + In the Devices menu in the + virtual machine's menu bar, &product-name; has a menu item + Insert Guest Additions CD + Image, which mounts the Guest Additions ISO file + inside your virtual machine. A Windows guest should then + automatically start the Guest Additions installer, which + installs the Guest Additions on your Windows guest. + + + + For other guest operating systems, or if automatic start of + software on a CD is disabled, you need to do a manual start of + the installer. + + + + + For the basic Direct3D acceleration to work in a Windows + guest, you have to install the WDDM video driver available + for Windows Vista or later. + + + + For Windows 8 and later, only the WDDM Direct3D video driver + is available. For basic Direct3D acceleration to work in + Windows XP guests, you have to install the Guest Additions + in Safe Mode. See for + details. + + + + + If you prefer to mount the Guest Additions manually, you can + perform the following steps: + + + + + + + Start the virtual machine in which you have installed + Windows. + + + + + + Select Optical Drives + from the Devices menu in + the virtual machine's menu bar and then + Choose/Create a Disk + Image. This displays the Virtual Media Manager, + described in . + + + + + + In the Virtual Media Manager, click + Add and browse your host + file system for the + VBoxGuestAdditions.iso file. + + + + + + + On a Windows host, this file is in the &product-name; + installation directory, usually in + C:\Program + files\Oracle\VirtualBox. + + + + + + On macOS hosts, this file is in the application bundle + of &product-name;. Right-click on the &product-name; + icon in Finder and choose Show + Package Contents. The file is located in + the Contents/MacOS folder. + + + + + + On a Linux host, this file is in the + additions folder where you + installed &product-name;, usually + /opt/VirtualBox/. + + + + + + On Oracle Solaris hosts, this file is in the + additions folder where you + installed &product-name;, usually + /opt/VirtualBox. + + + + + + + + + In the Virtual Media Manager, select the ISO file and + click the Add button. + This mounts the ISO file and presents it to your Windows + guest as a CD-ROM. + + + + + + + Unless you have the Autostart feature disabled in your Windows + guest, Windows will now autostart the &product-name; Guest + Additions installation program from the Additions ISO. If the + Autostart feature has been turned off, choose + VBoxWindowsAdditions.exe from the CD/DVD + drive inside the guest to start the installer. + + + + The installer will add several device drivers to the Windows + driver database and then invoke the hardware detection wizard. + + + + Depending on your configuration, it might display warnings + that the drivers are not digitally signed. You must confirm + these in order to continue the installation and properly + install the Additions. + + + + After installation, reboot your guest operating system to + activate the Additions. + + + + + + + Updating the Windows Guest Additions + + + Windows Guest Additions can be updated by running the + installation program again. This replaces the previous + Additions drivers with updated versions. + + + + Alternatively, you can also open the Windows Device Manager + and select Update Driver... + for the following devices: + + + + + + + &product-name; Graphics Adapter + + + + + + &product-name; System Device + + + + + + + For each, choose the option to provide your own driver, click + Have Disk and navigate to the + CD-ROM drive with the Guest Additions. + + + + + + + Unattended Installation of the Windows Guest Additions + + + You can configure unattended installation of the + &product-name; Guest Additions when you create a new VM using + the Create Virtual Machine + wizard. Select the Guest + Additions check box on the + Unattended Guest OS Install + page of the wizard. + + + + Guest Additions are installed automatically, following + completion of the guest OS installation. + + + + + Installing Code Signing Certificates + + + To avoid popups when performing an unattended installation + of the &product-name; Guest Additions, the code signing + certificates used to sign the drivers needs to be installed + in the correct certificate stores on the guest operating + system. Failure to do this will cause a typical Windows + installation to display multiple dialogs asking whether you + want to install a particular driver. + + + + + On some legacy Windows versions, such as Windows 2000 and + Windows XP, the user intervention popups mentioned above + are always displayed, even after importing the Oracle + certificates. + + + + + Installing the code signing certificates on a Windows guest + can be done automatically. Use the + VBoxCertUtil.exe utility from the + cert folder on the Guest Additions + installation CD. + + + + Use the following steps: + + + + + + + Log in as Administrator on the guest. + + + + + + Mount the &product-name; Guest Additions .ISO. + + + + + + Open a command line window on the guest and change to + the cert folder on the + &product-name; Guest Additions CD. + + + + + + Run the following command: + + +VBoxCertUtil.exe add-trusted-publisher vbox*.cer --root vbox*.cer + + + This command installs the certificates to the + certificate store. When installing the same certificate + more than once, an appropriate error will be displayed. + + + + + + + To allow for completely unattended guest installations, you + can specify a command line parameter to the install + launcher: + + +VBoxWindowsAdditions.exe /S + + + This automatically installs the right files and drivers for + the corresponding platform, either 32-bit or 64-bit. + + + + + By default on an unattended installation on a Vista or + Windows 7 guest, there will be the XPDM graphics driver + installed. This graphics driver does not support Windows + Aero / Direct3D on the guest. Instead, the WDDM graphics + driver needs to be installed. To select this driver by + default, add the command line parameter + /with_wddm when invoking the Windows + Guest Additions installer. This is only required for Vista + and Windows 7. + + + + + + For Windows Aero to run correctly on a guest, the guest's + VRAM size needs to be configured to at least 128 MB. + + + + + For more options regarding unattended guest installations, + consult the command line help by using the command: + + +VBoxWindowsAdditions.exe /? + + + + + + + + Manual File Extraction + + + If you would like to install the files and drivers manually, + you can extract the files from the Windows Guest Additions + setup as follows: + + +VBoxWindowsAdditions.exe /extract + + + To explicitly extract the Windows Guest Additions for another + platform than the current running one, such as 64-bit files on + a 32-bit system, you must use the appropriate platform + installer. Use + VBoxWindowsAdditions-x86.exe or + VBoxWindowsAdditions-amd64.exe with the + /extract parameter. + + + + + + + + + Guest Additions for Linux + + + Like the Windows Guest Additions, the &product-name; Guest + Additions for Linux are a set of device drivers and system + applications which may be installed in the guest operating + system. + + + + The following Linux distributions are officially supported: + + + + + + + Oracle Linux as of version 5, including UEK kernels + + + + + + Fedora as of Fedora Core 4 + + + + + + Red Hat Enterprise Linux as of version 3 + + + + + + SUSE and openSUSE Linux as of version 9 + + + + + + Ubuntu as of version 5.10 + + + + + + + Many other distributions are known to work with the Guest + Additions. + + + + The version of the Linux kernel supplied by default in SUSE and + openSUSE 10.2, Ubuntu 6.10 (all versions) and Ubuntu 6.06 + (server edition) contains a bug which can cause it to crash + during startup when it is run in a virtual machine. The Guest + Additions work in those distributions. + + + + Note that some Linux distributions already come with all or part + of the &product-name; Guest Additions. You may choose to keep + the distribution's version of the Guest Additions but these are + often not up to date and limited in functionality, so we + recommend replacing them with the Guest Additions that come with + &product-name;. The &product-name; Linux Guest Additions + installer tries to detect an existing installation and replace + them but depending on how the distribution integrates the Guest + Additions, this may require some manual interaction. It is + highly recommended to take a snapshot of the virtual machine + before replacing preinstalled Guest Additions. + + + + + Installing the Linux Guest Additions + + + The &product-name; Guest Additions for Linux are provided on + the same virtual CD-ROM file as the Guest Additions for + Windows. See . They also + come with an installation program that guides you through the + setup process. However, due to the significant differences + between Linux distributions, installation may be slightly more + complex when compared to Windows. + + + + Installation generally involves the following steps: + + + + + + + Before installing the Guest Additions, you prepare your + guest system for building external kernel modules. This + works as described in + , except that this + step must be performed in your Linux + guest instead of on a Linux host + system. + + + + If you suspect that something has gone wrong, check that + your guest is set up correctly and run the following + command as root: + + +rcvboxadd setup + + + + + Insert the VBoxGuestAdditions.iso CD + file into your Linux guest's virtual CD-ROM drive, as + described for a Windows guest in + . + + + + + + Change to the directory where your CD-ROM drive is mounted + and run the following command as root: + + +sh ./VBoxLinuxAdditions.run + + + + + + + + + Unattended Installation of the Linux Guest Additions + + + You can configure unattended installation of the + &product-name; Guest Additions when you create a new VM using + the Create Virtual Machine + wizard. Select the Guest + Additions check box on the + Unattended Guest OS Install + page of the wizard. + + + + Guest Additions are installed automatically, following + completion of the guest OS installation. + + + + + + + Graphics and Mouse Integration + + + In Linux and Oracle Solaris guests, &product-name; graphics + and mouse integration goes through the X Window System. + &product-name; can use the X.Org variant of the system, or + XFree86 version 4.3 which is identical to the first X.Org + release. During the installation process, the X.Org display + server will be set up to use the graphics and mouse drivers + which come with the Guest Additions. + + + + After installing the Guest Additions into a fresh installation + of a supported Linux distribution or Oracle Solaris system, + many unsupported systems will work correctly too, the guest's + graphics mode will change to fit the size of the + &product-name; window on the host when it is resized. You can + also ask the guest system to switch to a particular resolution + by sending a video mode hint using the + VBoxManage tool. + + + + Multiple guest monitors are supported in guests using the + X.Org server version 1.3, which is part of release 7.3 of the + X Window System version 11, or a later version. The layout of + the guest screens can be adjusted as needed using the tools + which come with the guest operating system. + + + + If you want to understand more about the details of how the + X.Org drivers are set up, in particular if you wish to use + them in a setting which our installer does not handle + correctly, see . + + + + Starting from &product-name; 7, Linux guest screen resize + functionality for guests running VMSVGA graphics configuration + has been changed. Since then, this functionality consists of a + standalone daemon called VBoxDRMClient and its Desktop + Environment helper counterpart. + + + + VBoxDRMClient runs as a root process and is a bridge between + the host and the guest's vmwgfx driver. This means that + VBoxDRMClient listens to screen resize hints from the host and + forwards them to the vmwgfx driver. This enables guest screen + resize functionality to be available before the user has + performed a graphical login. + + + + In order to perform Desktop Environment specific actions, such + as setting the primary screen in a multimonitor setup, a + Desktop Environment helper is used. Once the user has + performed a graphical login operation, the helper daemon + starts with user session scope and attempts to connect to + VBoxDRMClient using an IPC connection. When VBoxDRMClient has + received a corresponding command from the host, it is + forwarded to the helper daemon over IPC and the action is then + performed. + + + + By default, VBoxDRMClient allows any process to connect to its + IPC socket. This can be restricted by using the following + steps: + + + + + + + The Guest Additions Linux installer creates a + vboxdrmipc user group. A corresponding + user needs to be added to this group. + + + + + + You must set the DRMIpcRestricted guest + property, as follows: + + +VBoxManage guestproperty set "VM name" /VirtualBox/GuestAdd/DRMIpcRestricted 1 \ +--flags RDONLYGUEST + + + It is important to set only the RDONLYGUEST flag for the + property, so that it cannot be changed from inside the + guest. + + + + + + + + Both steps are required. If one of them is missing, all + processes will have access to the IPC socket. + + + + + Restricted mode can be disabled by unsetting the guest + property, as follows: + + +VBoxManage guestproperty unset "VM name" /VirtualBox/GuestAdd/DRMIpcRestricted + + + + + + Updating the Linux Guest Additions + + + The Guest Additions can simply be updated by going through the + installation procedure again with an updated CD-ROM image. + This will replace the drivers with updated versions. You + should reboot after updating the Guest Additions. + + + + + + + Uninstalling the Linux Guest Additions + + + If you have a version of the Guest Additions installed on your + virtual machine and wish to remove it without installing new + ones, you can do so by inserting the Guest Additions CD image + into the virtual CD-ROM drive as described above. Then run the + installer for the current Guest Additions with the + uninstall parameter from the path that the + CD image is mounted on in the guest, as follows: + + +sh ./VBoxLinuxAdditions.run uninstall + + + While this will normally work without issues, you may need to + do some manual cleanup of the guest in some cases, especially + of the XFree86Config or xorg.conf file. In particular, if the + Additions version installed or the guest operating system were + very old, or if you made your own changes to the Guest + Additions setup after you installed them. + + + + You can uninstall the Additions as follows: + + +/opt/VBoxGuestAdditions-version/uninstall.sh + + + Replace + /opt/VBoxGuestAdditions-version + with the correct Guest Additions installation directory. + + + + + + + + + Guest Additions for Oracle Solaris + + + Like the Windows Guest Additions, the &product-name; Guest + Additions for Oracle Solaris take the form of a set of device + drivers and system applications which may be installed in the + guest operating system. + + + + The following Oracle Solaris distributions are officially + supported: + + + + + + + Oracle Solaris 11, including Oracle Solaris 11 Express + + + + + + Oracle Solaris 10 4/08 and later + + + + + + + Other distributions may work if they are based on comparable + software releases. + + + + + Installing the Oracle Solaris Guest Additions + + + The &product-name; Guest Additions for Oracle Solaris are + provided on the same ISO CD-ROM as the Additions for Windows + and Linux. They come with an installation program that guides + you through the setup process. + + + + Installation involves the following steps: + + + + + + + Mount the VBoxGuestAdditions.iso file + as your Oracle Solaris guest's virtual CD-ROM drive, + exactly the same way as described for a Windows guest in + . + + + + If the CD-ROM drive on the guest does not get mounted, as + seen with some versions of Oracle Solaris 10, run the + following command as root: + + +svcadm restart volfs + + + + + Change to the directory where your CD-ROM drive is mounted + and run the following command as root: + + +pkgadd -G -d ./VBoxSolarisAdditions.pkg + + + + + Choose 1 and confirm + installation of the Guest Additions package. After the + installation is complete, log out and log in to X server + on your guest, to activate the X11 Guest Additions. + + + + + + + + + + Unattended Installation of the Oracle Solaris Guest Additions + + + You can configure unattended installation of the + &product-name; Guest Additions when you create a new VM using + the Create Virtual Machine + wizard. Select the Guest + Additions check box on the + Unattended Guest OS Install + page of the wizard. + + + + Guest Additions are installed automatically, following + completion of the guest OS installation. + + + + + + + Uninstalling the Oracle Solaris Guest Additions + + + The Oracle Solaris Guest Additions can be safely removed by + removing the package from the guest. Open a root terminal + session and run the following command: + + +pkgrm SUNWvboxguest + + + + + + Updating the Oracle Solaris Guest Additions + + + The Guest Additions should be updated by first uninstalling + the existing Guest Additions and then installing the new ones. + Attempting to install new Guest Additions without removing the + existing ones is not possible. + + + + + + + + + Guest Additions for OS/2 + + + &product-name; also ships with a set of drivers that improve + running OS/2 in a virtual machine. Due to restrictions of OS/2 + itself, this variant of the Guest Additions has a limited + feature set. See for details. + + + + The OS/2 Guest Additions are provided on the same ISO CD-ROM as + those for the other platforms. Mount the ISO in OS/2 as + described previously. The OS/2 Guest Additions are located in + the directory \OS2. + + + + We do not provide an automatic installer at this time. See the + readme.txt file in the CD-ROM directory, + which describes how to install the OS/2 Guest Additions + manually. + + + + + + + + + Shared Folders + + + With the shared folders feature of + &product-name;, you can access files of your host system from + within the guest system. This is similar to how you would use + network shares in Windows networks, except that shared folders do + not require networking, only the Guest Additions. Shared folders + are supported with Windows 2000 or later, Linux, and Oracle + Solaris guests. &product-name; includes experimental support for + Mac OS X and OS/2 guests. + + + + Shared folders physically reside on the host + and are then shared with the guest, which uses a special file + system driver in the Guest Additions to talk to the host. For + Windows guests, shared folders are implemented as a pseudo-network + redirector. For Linux and Oracle Solaris guests, the Guest + Additions provide a virtual file system. + + + + To share a host folder with a virtual machine in &product-name;, + you must specify the path of the folder and choose a + share name that the guest can use to access + the shared folder. This happens on the host. In the guest you can + then use the share name to connect to it and access files. + + + + There are several ways in which shared folders can be set up for a + virtual machine: + + + + + + + In the window of a running VM, you select + Shared Folders from the + Devices menu, or click on the + folder icon on the status bar in the bottom right corner. + + + + + + If a VM is not currently running, you can configure shared + folders in the virtual machine's + Settings window. + + + + + + From the command line, you can create shared folders using + VBoxManage, as follows: + + +VBoxManage sharedfolder add "VM name" --name "sharename" --hostpath "C:\test" + + + See . + + + + + + + There are two types of shares: + + + + + + + Permanent shares, that are saved with the VM settings. + + + + + + Transient shares, that are added at runtime and disappear when + the VM is powered off. These can be created using a check box + in &vbox-mgr;, or by using the + option of the VBoxManage sharedfolder add + command. + + + + + + + Shared folders can either be read-write or read-only. This means + that the guest is either allowed to both read and write, or just + read files on the host. By default, shared folders are read-write. + Read-only folders can be created using a check box in the + &vbox-mgr;, or with the option of the + VBoxManage sharedfolder add command. + + + + &product-name; shared folders also support symbolic links, also + called symlinks, under the following + conditions: + + + + + + + The host operating system must support symlinks. For example, + a macOS, Linux, or Oracle Solaris host is required. + + + + + + Currently only Linux and Oracle Solaris Guest Additions + support symlinks. + + + + + + For security reasons the guest OS is not allowed to create + symlinks by default. If you trust the guest OS to not abuse + the functionality, you can enable creation of symlinks for a + shared folder as follows: + + +VBoxManage setextradata "VM name" VBoxInternal2/SharedFoldersEnableSymlinksCreate/sharename 1 + + + + + + + Manual Mounting + + + You can mount the shared folder from inside a VM, in the same + way as you would mount an ordinary network share: + + + + + + + In a Windows guest, shared folders are browseable and + therefore visible in Windows Explorer. To attach the host's + shared folder to your Windows guest, open Windows Explorer + and look for the folder in My + Networking Places, Entire + Network, &product-name; + Shared Folders. By right-clicking on a shared + folder and selecting Map Network + Drive from the menu that pops up, you can assign + a drive letter to that shared folder. + + + + Alternatively, on the Windows command line, use the + following command: + + +net use x: \\vboxsvr\sharename + + + While vboxsvr is a fixed name, note that + vboxsrv would also work, replace + x: with the drive letter that you + want to use for the share, and + sharename with the share name + specified with VBoxManage. + + + + + + In a Linux guest, use the following command: + + +mount -t vboxsf [-o OPTIONS] sharename mountpoint + + + To mount a shared folder during boot, add the following + entry to /etc/fstab: + + +sharename mountpoint vboxsf defaults 0 0 + + + + + In a Oracle Solaris guest, use the following command: + + +mount -F vboxfs [-o OPTIONS] sharename mountpoint + + + Replace sharename, use a + lowercase string, with the share name specified with + VBoxManage or &vbox-mgr;. Replace + mountpoint with the path where + you want the share to be mounted on the guest, such as + /mnt/share. The usual mount rules + apply. For example, create this directory first if it does + not exist yet. + + + + Here is an example of mounting the shared folder for the + user jack on Oracle Solaris: + + +$ id +uid=5000(jack) gid=1(other) +$ mkdir /export/home/jack/mount +$ pfexec mount -F vboxfs -o uid=5000,gid=1 jackshare /export/home/jack/mount +$ cd ~/mount +$ ls +sharedfile1.mp3 sharedfile2.txt +$ + + + Beyond the standard options supplied by the + mount command, the following are + available: + + +iocharset CHARSET + + + This option sets the character set used for I/O operations. + Note that on Linux guests, if the + iocharset option is not specified, then + the Guest Additions driver will attempt to use the character + set specified by the CONFIG_NLS_DEFAULT kernel option. If + this option is not set either, then UTF-8 is used. + + +convertcp CHARSET + + + This option specifies the character set used for the shared + folder name. This is UTF-8 by default. + + + + The generic mount options, documented in the + mount manual page, apply also. Especially + useful are the options uid, + gid and mode, as they + can allow access by normal users in read/write mode, + depending on the settings, even if root has mounted the + filesystem. + + + + + + In an OS/2 guest, use the VBoxControl + command to manage shared folders. For example: + + +VBoxControl sharedfolder use D: MyShareName +VBoxControl sharedfolder unuse D: +VBoxControl sharedfolder list + + + As with Windows guests, shared folders can also be accessed + via UNC using \\VBoxSF\, + \\VBoxSvr\ or + \\VBoxSrv\ as the server name and the + shared folder name as sharename. + + + + + + + + + + Automatic Mounting + + + &product-name; provides the option to mount shared folders + automatically. When automatic mounting is enabled for a shared + folder, the Guest Additions service will mount it for you + automatically. For Windows or OS/2, a preferred drive letter can + also be specified. For Linux or Oracle Solaris, a mount point + directory can also be specified. + + + + If a drive letter or mount point is not specified, or is in use + already, an alternative location is found by the Guest Additions + service. The service searches for an alternative location + depending on the guest OS, as follows: + + + + + + + Windows and OS/2 guests. + Search for a free drive letter, starting at + Z:. If all drive letters are assigned, + the folder is not mounted. + + + + + + Linux and Oracle Solaris + guests. Folders are mounted under the + /media directory. The folder name is + normalized (no spaces, slashes or colons) and is prefixed + with sf_. + + + + For example, if you have a shared folder called + myfiles, it will appear as + /media/sf_myfiles in the guest. + + + + The guest properties + /VirtualBox/GuestAdd/SharedFolders/MountDir + and the more generic + /VirtualBox/GuestAdd/SharedFolders/MountPrefix + can be used to override the automatic mount directory and + prefix. See . + + + + + + + Access to an automatically mounted shared folder is granted to + everyone in a Windows guest, including the guest user. For Linux + and Oracle Solaris guests, access is restricted to members of + the group vboxsf and the + root user. + + + + + + + + + Drag and Drop + + + &product-name; enables you to drag and drop content from the host + to the guest, and vice versa. For this to work the latest version + of the Guest Additions must be installed on the guest. + + + + Drag and drop transparently allows copying or opening files, + directories, and even certain clipboard formats from one end to + the other. For example, from the host to the guest or from the + guest to the host. You then can perform drag and drop operations + between the host and a VM, as it would be a native drag and drop + operation on the host OS. + + + + At the moment drag and drop is implemented for Windows-based and + X-Windows-based systems, both on the host and guest side. As + X-Windows supports many different drag and drop protocols only the + most common one, XDND, is supported for now. Applications using + other protocols, such as Motif or OffiX, will not be recognized by + &product-name;. + + + + In the context of using drag and drop, the origin of the data is + called the source. That is, where the actual + data comes from and is specified. The + destination specifies where the data from the + source should go to. Transferring data from the source to the + destination can be done in various ways, such as copying, moving, + or linking. + + + + + At the moment only copying of data is supported. Moving or + linking is not yet implemented. + + + + + When transferring data from the host to the guest OS, the host in + this case is the source, whereas the guest OS is the destination. + However, when transferring data from the guest OS to the host, the + guest OS this time became the source and the host is the + destination. + + + + For security reasons drag and drop can be configured at runtime on + a per-VM basis either using the Drag and + Drop menu item in the + Devices menu of the virtual + machine, as shown below, or the VBoxManage + command. + + +
+ Drag and Drop Menu Options + + + + + +
+ + + The following drag and drop modes are available: + + + + + + + Disabled. Disables the drag + and drop feature entirely. This is the default when creating a + new VM. + + + + + + Host To Guest. Enables drag + and drop operations from the host to the guest only. + + + + + + Guest To Host. Enables drag + and drop operations from the guest to the host only. + + + + + + Bidirectional. Enables drag + and drop operations in both directions: from the host to the + guest, and from the guest to the host. + + + + + + + + Drag and drop support depends on the frontend being used. At the + moment, only the &vbox-mgr; frontend provides this + functionality. + + + + + To use the VBoxManage command to control the + current drag and drop mode, see . The + modifyvm and controlvm + commands enable setting of a VM's current drag and drop mode from + the command line. + + + + + Supported Formats + + + As &product-name; can run on a variety of host operating systems + and also supports a wide range of guests, certain data formats + must be translated after transfer. This is so that the + destination operating system, which receives the data, is able + to handle them in an appropriate manner. + + + + + When dragging files no data conversion is done in any way. For + example, when transferring a file from a Linux guest to a + Windows host the Linux-specific line endings are not converted + to Windows line endings. + + + + + The following formats are handled by the &product-name; drag and + drop service: + + + + + + + Plain text: From + applications such as text editors, internet browsers and + terminal windows. + + + + + + Files: From file managers + such as Windows Explorer, Nautilus, and Finder. + + + + + + Directories: For + directories, the same formats apply as for files. + + + + + + + + + + Known Limitations + + + The following limitations are known for drag and drop: + + + + On Windows hosts, dragging and dropping content between + UAC-elevated (User Account Control) programs and + non-UAC-elevated programs is not allowed. If you start + &product-name; with Administrator privileges then drag and drop + will not work with Windows Explorer, which runs with regular + user privileges by default. + + + + On Linux hosts and guests, programs can query for drag and drop + data while the drag operation is still in progress. For example, + on LXDE using the PCManFM file manager. This currently is not + supported. As a workaround, a different file manager, such as + Nautilus, can be used instead. + + + + +
+ + + + Hardware-Accelerated Graphics + + + + Hardware 3D Acceleration (OpenGL and Direct3D 8/9) + + + The &product-name; Guest Additions contain experimental hardware + 3D support for Windows, Linux, and Oracle Solaris guests. + + + + With this feature, if an application inside your virtual machine + uses 3D features through the OpenGL or Direct3D 8/9 programming + interfaces, instead of emulating them in software, which would + be slow, &product-name; will attempt to use your host's 3D + hardware. This works for all supported host platforms, provided + that your host operating system can make use of your accelerated + 3D hardware in the first place. + + + + The 3D acceleration feature currently has the following + preconditions: + + + + + + + It is only available for certain Windows, Linux, and Oracle + Solaris guests. In particular: + + + + + + + 3D acceleration with Windows guests requires Windows + 2000 or later. Apart from on Windows 2000 guests, both + OpenGL and Direct3D 8/9 are supported on an experimental + basis. + + + + + + OpenGL on Linux requires kernel 2.6.27 or later, as well + as X.org server version 1.5 or later. Ubuntu 10.10 and + Fedora 14 have been tested and confirmed as working. + + + + + + OpenGL on Oracle Solaris guests requires X.org server + version 1.5 or later. + + + + + + + + + The Guest Additions must be installed. + + + + + For the basic Direct3D acceleration to work in a Windows + Guest, &product-name; needs to replace Windows system + files in the virtual machine. As a result, the Guest + Additions installation program offers Direct3D + acceleration as an option that must be explicitly enabled. + Also, you must install the Guest Additions in Safe Mode. + This does not apply to the WDDM + Direct3D video driver available for Windows Vista and + later. See for details. + + + + + + + Because 3D support is still experimental at this time, it is + disabled by default and must be manually + enabled in the VM settings. See + . + + + + + Untrusted guest systems should not be allowed to use the + 3D acceleration features of &product-name;, just as + untrusted host software should not be allowed to use 3D + acceleration. Drivers for 3D hardware are generally too + complex to be made properly secure and any software which + is allowed to access them may be able to compromise the + operating system running them. In addition, enabling 3D + acceleration gives the guest direct access to a large body + of additional program code in the &product-name; host + process which it might conceivably be able to use to crash + the virtual machine. + + + + + + + + To enable Aero theme support, the &product-name; WDDM video + driver must be installed, which is available with the Guest + Additions installation. The WDDM driver is not installed by + default for Vista and Windows 7 guests and must be + manually selected in the Guest Additions + installer by clicking No in the + Would You Like to Install Basic Direct3D + Support dialog displayed when the Direct3D feature is + selected. + + + + The Aero theme is not enabled by default on Windows. See your + Windows platform documentation for details of how to enable the + Aero theme. + + + + Technically, &product-name; implements 3D acceleration by + installing an additional hardware 3D driver inside the guest + when the Guest Additions are installed. This driver acts as a + hardware 3D driver and reports to the guest operating system + that the virtual hardware is capable of 3D hardware + acceleration. When an application in the guest then requests + hardware acceleration through the OpenGL or Direct3D programming + interfaces, these are sent to the host through a special + communication tunnel implemented by &product-name;. The + host then performs the requested 3D + operation using the host's programming interfaces. + + + + + + + Hardware 2D Video Acceleration for Windows Guests + + + The &product-name; Guest Additions contain experimental hardware + 2D video acceleration support for Windows guests. + + + + With this feature, if an application such as a video player + inside your Windows VM uses 2D video overlays to play a movie + clip, then &product-name; will attempt to use your host's video + acceleration hardware instead of performing overlay stretching + and color conversion in software, which would be slow. This + currently works for Windows, Linux and macOS host platforms, + provided that your host operating system can make use of 2D + video acceleration in the first place. + + + + Hardware 2D video acceleration currently has the following + preconditions: + + + + + + + Only available for Windows guests, running Windows XP or + later. + + + + + + Guest Additions must be installed. + + + + + + Because 2D support is still experimental at this time, it is + disabled by default and must be manually + enabled in the VM settings. See + . + + + + + + + Technically, &product-name; implements this by exposing video + overlay DirectDraw capabilities in the Guest Additions video + driver. The driver sends all overlay commands to the host + through a special communication tunnel implemented by + &product-name;. On the host side, OpenGL is then used to + implement color space transformation and scaling. + + + + + + + + + Seamless Windows + + + With the seamless windows feature of + &product-name;, you can have the windows that are displayed within + a virtual machine appear side by side next to the windows of your + host. This feature is supported for the following guest operating + systems, provided that the Guest Additions are installed: + + + + + + + Windows guests. + + + + + + Supported Linux or Oracle Solaris guests running the X Window + System. + + + + + + + After seamless windows are enabled, &product-name; suppresses the + display of the desktop background of your guest, allowing you to + run the windows of your guest operating system seamlessly next to + the windows of your host. + + +
+ Seamless Windows on a Host Desktop + + + + + +
+ + + To enable seamless mode, after starting the virtual machine, press + the Host key + L. The Host key is + normally the right control key. This will enlarge the size of the + VM's display to the size of your host screen and mask out the + guest operating system's background. To disable seamless windows + and go back to the normal VM display, press the Host key + L + again. + + +
+ + + + Guest Properties + + + &product-name; enables requests of some properties from a running + guest, provided that the &product-name; Guest Additions are + installed and the VM is running. This provides the following + advantages: + + + + + + + A number of predefined VM characteristics are automatically + maintained by &product-name; and can be retrieved on the host. + For example, to monitor VM performance and statistics. + + + + + + Arbitrary string data can be exchanged between guest and host. + This works in both directions. + + + + + + + To accomplish this, &product-name; establishes a private + communication channel between the &product-name; Guest Additions + and the host, and software on both sides can use this channel to + exchange string data for arbitrary purposes. Guest properties are + simply string keys to which a value is attached. They can be set, + or written to, by either the host and the guest. They can also be + read from both sides. + + + + In addition to establishing the general mechanism of reading and + writing values, a set of predefined guest properties is + automatically maintained by the &product-name; Guest Additions to + allow for retrieving interesting guest data such as the guest's + exact operating system and service pack level, the installed + version of the Guest Additions, users that are currently logged + into the guest OS, network statistics and more. These predefined + properties are all prefixed with /VirtualBox/ + and organized into a hierarchical tree of keys. + + + + Some of this runtime information is shown when you select + Session Information Dialog from a + virtual machine's Machine menu. + + + + A more flexible way to use this channel is with the + VBoxManage guestproperty command. See + . For example, to have + all the available guest properties for a + given running VM listed with their respective values, use this + command: + + +$ VBoxManage guestproperty enumerate "Windows Vista III" +VirtualBox Command Line Management Interface Version version-number +Copyright (C) 2005-2022 Oracle and/or its affiliates + +Name: /VirtualBox/GuestInfo/OS/Product, value: Windows Vista Business Edition, + timestamp: 1229098278843087000, flags: +Name: /VirtualBox/GuestInfo/OS/Release, value: 6.0.6001, + timestamp: 1229098278950553000, flags: +Name: /VirtualBox/GuestInfo/OS/ServicePack, value: 1, + timestamp: 1229098279122627000, flags: +Name: /VirtualBox/GuestAdd/InstallDir, + value: C:/Program Files/Oracle/VirtualBox + Guest Additions, timestamp: 1229098279269739000, flags: +Name: /VirtualBox/GuestAdd/Revision, value: 40720, + timestamp: 1229098279345664000, flags: +Name: /VirtualBox/GuestAdd/Version, value: version-number, + timestamp: 1229098279479515000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxControl.exe, value: version-numberr40720, + timestamp: 1229098279651731000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxHook.dll, value: version-numberr40720, + timestamp: 1229098279804835000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxDisp.dll, value: version-numberr40720, + timestamp: 1229098279880611000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxMRXNP.dll, value: version-numberr40720, + timestamp: 1229098279882618000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxService.exe, value: version-numberr40720, + timestamp: 1229098279883195000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxTray.exe, value: version-numberr40720, + timestamp: 1229098279885027000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxGuest.sys, value: version-numberr40720, + timestamp: 1229098279886838000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxMouse.sys, value: version-numberr40720, + timestamp: 1229098279890600000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxSF.sys, value: version-numberr40720, + timestamp: 1229098279893056000, flags: +Name: /VirtualBox/GuestAdd/Components/VBoxVideo.sys, value: version-numberr40720, + timestamp: 1229098279895767000, flags: +Name: /VirtualBox/GuestInfo/OS/LoggedInUsers, value: 1, + timestamp: 1229099826317660000, flags: +Name: /VirtualBox/GuestInfo/OS/NoLoggedInUsers, value: false, + timestamp: 1229098455580553000, flags: +Name: /VirtualBox/GuestInfo/Net/Count, value: 1, + timestamp: 1229099826299785000, flags: +Name: /VirtualBox/HostInfo/GUI/LanguageID, value: C, + timestamp: 1229098151272771000, flags: +Name: /VirtualBox/GuestInfo/Net/0/V4/IP, value: 192.168.2.102, + timestamp: 1229099826300088000, flags: +Name: /VirtualBox/GuestInfo/Net/0/V4/Broadcast, value: 255.255.255.255, + timestamp: 1229099826300220000, flags: +Name: /VirtualBox/GuestInfo/Net/0/V4/Netmask, value: 255.255.255.0, + timestamp: 1229099826300350000, flags: +Name: /VirtualBox/GuestInfo/Net/0/Status, value: Up, + timestamp: 1229099826300524000, flags: +Name: /VirtualBox/GuestInfo/OS/LoggedInUsersList, value: username, + timestamp: 1229099826317386000, flags: + + + To query the value of a single property, use the + get subcommand as follows: + + +$ VBoxManage guestproperty get "Windows Vista III" "/VirtualBox/GuestInfo/OS/Product" +VirtualBox Command Line Management Interface Version version-number +Copyright (C) 2005-2022 Oracle and/or its affiliates + +Value: Windows Vista Business Edition + + + To add or change guest properties from the guest, use the tool + VBoxControl. This tool is included in the Guest + Additions. When started from a Linux guest, this tool requires + root privileges for security reasons. + + +$ sudo VBoxControl guestproperty enumerate +VirtualBox Guest Additions Command Line Management Interface Version version-number +Copyright (C) 2005-2022 Oracle and/or its affiliates + +Name: /VirtualBox/GuestInfo/OS/Release, value: 2.6.28-18-generic, + timestamp: 1265813265835667000, flags: <NULL> +Name: /VirtualBox/GuestInfo/OS/Version, value: #59-Ubuntu SMP Thu Jan 28 01:23:03 UTC 2010, + timestamp: 1265813265836305000, flags: <NULL> + ... + + + For more complex needs, you can use the &product-name; programming + interfaces. See . + + + + + Using Guest Properties to Wait on VM Events + + + The properties /VirtualBox/HostInfo/VBoxVer, + /VirtualBox/HostInfo/VBoxVerExt or + /VirtualBox/HostInfo/VBoxRev can be waited on + to detect that the VM state was restored from saved state or + snapshot: + + +$ VBoxControl guestproperty wait /VirtualBox/HostInfo/VBoxVer + + + Similarly the + /VirtualBox/HostInfo/ResumeCounter can be + used to detect that a VM was resumed from the paused state or + saved state. + + + + + + + + + Guest Control File Manager + + + The Guest Control File Manager is a feature of the Guest Additions + that enables easy copying and moving of files between a guest and + the host system. Other file management operations provide support + to create new folders and to rename or delete files. + + + + This feature is useful when the VM window of a guest is not + visible. For example, when the guest is running in headless mode. + + + + + To use the Guest Control File Manager, the guest must be + running. For powered-off guests, it is disabled automatically. + + + +
+ Guest Control File Manager + + + + + + +
+ + + The Guest Control File Manager works by mounting the host file + system. Guest users must authenticate and create a guest session + before they can transfer files. + + + + + Using the Guest Control File Manager + + + The following steps describe how to use the Guest Control File + Manager. + + + + + + + Open the Guest Control File Manager. Do either of the + following: + + + + + + + In the guest VM, select + Machine, + File Manager. + + + + + + In &vbox-mgr;, click on the machine name. Click + File Manager in the + machine tools menu for the VM. + + + + + + + The left pane shows the files on the host system. + + + + + + Create a guest session. + + + + At the bottom of the Guest Control File Manager, enter + authentication credentials for a user on the guest system. + + + + Click Create Session. + + + + The contents of the guest VM file system appears in the + right pane of the Guest Control File Manager. + + + + + + Transfer files between the guest and the host system by + using the move and copy file transfer icons. + + + + You can copy and move files from the guest to the host + system or from the host system to the guest. + + + + + + Close the Guest Control File Manager. + + + + Click Close to end the + guest session. + + + + + + + +
+ + + + Guest Control of Applications + + + The Guest Additions enable starting of applications inside a guest + VM from the host system. This feature can be used to automate + deployment of software within the guest. + + + + For this to work, the application needs to be installed on the + guest. No additional software needs to be installed on the host. + Additionally, text mode output to stdout and stderr can be shown + on the host for further processing. There are options to specify + user credentials and a timeout value, in milliseconds, to limit + the time the application is able to run. + + + + The Guest Additions for Windows allow for automatic updating. This + applies for already installed Guest Additions versions. Also, + copying files from host to the guest as well as remotely creating + guest directories is available. + + + + To use these features, use the &product-name; command line. See + . + + + + + + + Memory Overcommitment + + + In server environments with many VMs, the Guest Additions can be + used to share physical host memory between several VMs. This + reduces the total amount of memory in use by the VMs. If memory + usage is the limiting factor and CPU resources are still + available, this can help with running more VMs on each host. + + + + + Memory Ballooning + + + The Guest Additions can change the amount of host memory that a + VM uses, while the machine is running. Because of how this is + implemented, this feature is called memory + ballooning. + + + + + + + + &product-name; supports memory ballooning only on 64-bit + hosts. It is not supported on macOS hosts. + + + + + + Memory ballooning does not work well with large pages + enabled. To turn off large pages support for a VM, run + VBoxManage modifyvm + vmname --large-pages + off + + + + + + + + Normally, to change the amount of memory allocated to a virtual + machine, you have to shut down the virtual machine entirely and + modify its settings. With memory ballooning, memory that was + allocated for a virtual machine can be given to another virtual + machine without having to shut the machine down. + + + + When memory ballooning is requested, the &product-name; Guest + Additions, which run inside the guest, allocate physical memory + from the guest operating system on the kernel level and lock + this memory down in the guest. This ensures that the guest will + not use that memory any longer. No guest applications can + allocate it, and the guest kernel will not use it either. + &product-name; can then reuse this memory and give it to another + virtual machine. + + + + The memory made available through the ballooning mechanism is + only available for reuse by &product-name;. It is + not returned as free memory to the host. + Requesting balloon memory from a running guest will therefore + not increase the amount of free, unallocated memory on the host. + Effectively, memory ballooning is therefore a memory + overcommitment mechanism for multiple virtual machines while + they are running. This can be useful to temporarily start + another machine, or in more complicated environments, for + sophisticated memory management of many virtual machines that + may be running in parallel depending on how memory is used by + the guests. + + + + At this time, memory ballooning is only supported through + VBoxManage. Use the following command to + increase or decrease the size of the memory balloon within a + running virtual machine that has Guest Additions installed: + + +VBoxManage controlvm "VM name" guestmemoryballoon n + + + where VM name is the name or UUID of + the virtual machine in question and n + is the amount of memory to allocate from the guest in megabytes. + See . + + + + You can also set a default balloon that will automatically be + requested from the VM every time after it has started up with + the following command: + + +VBoxManage modifyvm "VM name" --guest-memory-balloon n + + + By default, no balloon memory is allocated. This is a VM + setting, like other modifyvm settings, and + therefore can only be set while the machine is shut down. See + . + + + + + + + Page Fusion + + + Whereas memory ballooning simply reduces the amount of RAM that + is available to a VM, Page Fusion works differently. It avoids + memory duplication between several similar running VMs. + + + + In a server environment running several similar VMs on the same + host, lots of memory pages are identical. For example, if the + VMs are using identical operating systems. &product-name;'s Page + Fusion technology can efficiently identify these identical + memory pages and share them between multiple VMs. + + + + + &product-name; supports Page Fusion only on 64-bit hosts, and + it is not supported on macOS hosts. Page Fusion currently + works only with Windows 2000 and later guests. + + + + + The more similar the VMs on a given host are, the more + efficiently Page Fusion can reduce the amount of host memory + that is in use. It therefore works best if all VMs on a host run + identical operating systems. Instead of having a complete copy + of each operating system in each VM, Page Fusion identifies the + identical memory pages in use by these operating systems and + eliminates the duplicates, sharing host memory between several + machines. This is called deduplication. If + a VM tries to modify a page that has been shared with other VMs, + a new page is allocated again for that VM with a copy of the + shared page. This is called copy on write. + All this is fully transparent to the virtual machine. + + + + You may be familiar with this kind of memory overcommitment from + other hypervisor products, which call this feature + page sharing or same page + merging. However, Page Fusion differs significantly + from those other solutions, whose approaches have several + drawbacks: + + + + + + + Traditional hypervisors scan all guest + memory and compute checksums, also called hashes, for every + single memory page. Then, they look for pages with identical + hashes and compare the entire content of those pages. If two + pages produce the same hash, it is very likely that the + pages are identical in content. This process can take rather + long, especially if the system is not idling. As a result, + the additional memory only becomes available after a + significant amount of time, such as hours or sometimes days. + Even worse, this kind of page sharing algorithm generally + consumes significant CPU resources and increases the + virtualization overhead by 10 to 20%. + + + + Page Fusion in &product-name; uses logic in the + &product-name; Guest Additions to quickly identify memory + cells that are most likely identical across VMs. It can + therefore achieve most of the possible savings of page + sharing almost immediately and with almost no overhead. + + + + + + Page Fusion is also much less likely to be confused by + identical memory that it will eliminate, just to learn + seconds later that the memory will now change and having to + perform a highly expensive and often service-disrupting + reallocation. + + + + + + + At this time, Page Fusion can only be controlled with + VBoxManage, and only while a VM is shut down. + To enable Page Fusion for a VM, use the following command: + + +VBoxManage modifyvm "VM name" --page-fusion on + + + You can observe Page Fusion operation using some metrics. + RAM/VMM/Shared shows the total amount of + fused pages, whereas the per-VM metric + Guest/RAM/Usage/Shared will return the amount + of fused memory for a given VM. See + for information on how to + query metrics. + + + + + Enabling Page Fusion might indirectly increase the chances for + malicious guests to successfully attack other VMs running on + the same host. See . + + + + + + + + + + Controlling Virtual Monitor Topology + + + + X11/Wayland Desktop Environments + + + The Guest Additions provide services for controlling the guest + system's monitor topology. Monitor topology means the resolution + of each virtual monitor and its state (disabled/enabled). The + resolution of a virtual monitor can be modified from the host + side either by resizing the window that hosts the virtual + monitor, by using the View menu + or the VBoxManage controlvm + vmname setscreenlayout + command. On guest operating systems with X11/Wayland desktops + this is put into effect by either of the following two services: + + + + VBoxClient --vmsvga + VBoxDRMClient + + + + The following are some details about guest screen resolution + control functionality: + + + + + + + On X11/Wayland desktops the resizing service is started + during desktop session initialization, that is desktop + login. On X11 desktops VBoxClient --vmsvga + handles screen topology through the RandR extension. On + Wayland clients VBoxDRMClient is used. The + decision is made automatically at each desktop session + start. + + + + + + On 32-bit guest operating systems + VBoxDRMClient is always used, in order to + work around bugs. + + + + + + Since the monitor topology control services are initialized + during the desktop session start, it is impossible to + control the monitor resolution of display managers such as + GDM or LightDM. This default behavior can be changed by + setting the guest property + /VirtualBox/GuestAdd/DRMResize of the + virtual machine to any value. See + for details of how to + update guest properties. When this guest property is set + then VBoxDRMClient is started during the + guest OS boot and stays active all the time, for both the + display manager login screen and the desktop session. + + + + + + + + Known Limitations + + + VBoxDRMClient is not able to handle + arbitrary guest monitor topologies. Specifically, disabling a + guest monitor that is not the last one invalidates the monitor + topology due to limitations in the + vmwgfx.ko Linux kernel module. For example, + when the guest is configured to have four monitors it is not + recommended to disable the second or third monitor. + + + + + + + + +
diff --git a/doc/manual/en_US/user_Installation.xml b/doc/manual/en_US/user_Installation.xml new file mode 100644 index 00000000..dd3e8b26 --- /dev/null +++ b/doc/manual/en_US/user_Installation.xml @@ -0,0 +1,1535 @@ + + + +%all.entities; +]> + + + Installation Details + + + As installation of &product-name; varies depending on your host + operating system, the following sections provide installation + instructions for Windows, macOS, Linux, and Oracle Solaris. + + + + + Installing on Windows Hosts + + + + Prerequisites + + + For the various versions of Windows that are supported as host + operating systems, please refer to + . + + + + In addition, Windows Installer must be present on your system. + This should be the case for all supported Windows platforms. + + + + + + + Performing the Installation + + + The &product-name; installation can be started in either of the + following ways: + + + + + + + By double-clicking on the executable file. + + + + + + By entering the following command: + + +VirtualBox-<version>-<revision>-Win.exe -extract + + + This will extract the installer into a temporary directory, + along with the .MSI file. Run the following command to + perform the installation: + + +msiexec /i VirtualBox-<version>-<revision>-Win.msi + + + + + + Using either way displays the installation + Welcome dialog and enables you + to choose where to install &product-name;, and which components + to install. In addition to the &product-name; application, the + following components are available: + + + + + + + USB support. This package + contains special drivers for your Windows host that + &product-name; requires to fully support USB devices inside + your virtual machines. + + + + + + Networking. This package + contains extra networking drivers for your Windows host that + &product-name; needs to support Bridged Networking. This + enables your VM's virtual network cards to be accessed from + other machines on your physical network. + + + + + + Python support. This + package contains Python scripting support for the + &product-name; API, see . + For this to work, an already working Windows Python + installation on the system is required. + + + + See, for example: + . + + + + + Python version at least 2.6 is required. Python 3 is also + supported. + + + + + + + + Depending on your Windows configuration, you may see warnings + about unsigned drivers, or similar. Click + Continue for these warnings, as + otherwise &product-name; might not function correctly after + installation. + + + + The installer will create an &product-name; group in the Windows + Start menu, which enables you + to launch the application and access its documentation. + + + + With standard settings, &product-name; will be installed for all + users on the local system. If this is not wanted, you must + invoke the installer by first extracting as follows: + + +VirtualBox.exe -extract + + + Then, run either of the following commands on the extracted .MSI + file. This will install &product-name; only for the current + user. + + +VirtualBox.exe -msiparams ALLUSERS=2 + +msiexec /i VirtualBox-<version>-Win.msi ALLUSERS=2 + + + If you do not want to install all features of &product-name;, + you can set the optional ADDLOCAL parameter + to explicitly name the features to be installed. The following + features are available: + + + + + + + VBoxApplication + + + + + Main binaries of &product-name;. + + + + + This feature must not be absent, since it contains the + minimum set of files to have working &product-name; + installation. + + + + + + + + VBoxUSB + + + + + USB support. + + + + + + + VBoxNetwork + + + + + All networking support. This includes the VBoxNetworkFlt + and VBoxNetworkAdp features. + + + + + + + VBoxNetworkFlt + + + + + Bridged networking support. + + + + + + + VBoxNetworkAdp + + + + + Host-only networking support + + + + + + + VBoxPython + + + + + Python support + + + + + + + + For example, to only install USB support along with the main + binaries, run either of the following commands: + + +VirtualBox.exe -msiparams ADDLOCAL=VBoxApplication,VBoxUSB + +msiexec /i VirtualBox-<version>-Win.msi ADDLOCAL=VBoxApplication,VBoxUSB + + + The user is able to choose between NDIS5 and NDIS6 host network + filter drivers during the installation. This is done using a + command line parameter, NETWORKTYPE. The + NDIS6 driver is the default for most supported Windows hosts. + For some legacy Windows versions, the installer will + automatically select the NDIS5 driver and this cannot be + changed. + + + + You can force an install of the legacy NDIS5 host network filter + driver by specifying NETWORKTYPE=NDIS5. For + example, to install the NDIS5 driver on Windows 7 use either of + the following commands: + + +VirtualBox.exe -msiparams NETWORKTYPE=NDIS5 + +msiexec /i VirtualBox-<version>-Win;.msi NETWORKTYPE=NDIS5 + + + + + + Uninstallation + + + As &product-name; uses the standard Microsoft Windows installer, + &product-name; can be safely uninstalled at any time. Click the + program entry in the Add/Remove + Programs list in the Windows Control Panel. + + + + + + + Unattended Installation + + + Unattended installations can be performed using the standard MSI + support. + + + + + + + Public Properties + + + Public properties can be specified with the MSI API, to control + additional behavior and features of the Windows host installer. + Use either of the following commands: + + +VirtualBox.exe -msiparams NAME=VALUE [...] + +msiexec /i VirtualBox-<version>-Win.msi NAME=VALUE [...] + + + The following public properties are available. + + + + + + + VBOX_INSTALLDESKTOPSHORTCUT + + + + Specifies whether or not an &product-name; icon on the + desktop should be created. + + + + Set to 1 to enable, 0 + to disable. Default is 1. + + + + + + VBOX_INSTALLQUICKLAUNCHSHORTCUT + + + + Specifies whether or not an &product-name; icon in the Quick + Launch Bar should be created. + + + + Set to 1 to enable, 0 + to disable. Default is 1. + + + + + + VBOX_REGISTERFILEEXTENSIONS + + + + Specifies whether or not the file extensions .vbox, + .vbox-extpack, .ovf, .ova, .vdi, .vmdk, .vhd and .vdd should + be associated with &product-name;. Files of these types then + will be opened with &product-name;. + + + + Set to 1 to enable, 0 + to disable. Default is 1. + + + + + + VBOX_START + + + + Specifies whether to start &product-name; right after + successful installation. + + + + Set to 1 to enable, 0 + to disable. Default is 1. + + + + + + + + + + + + Installing on macOS Hosts + + + + Performing the Installation + + + For macOS hosts, &product-name; ships in a + dmg disk image file. Perform the following + steps to install on a macOS host: + + + + + + + Double-click on the dmg file, to mount + the contents. + + + + + + A window opens, prompting you to double-click on the + VirtualBox.pkg installer file displayed + in that window. + + + + + + This starts the installer, which enables you to select where + to install &product-name;. + + + + + + An &product-name; icon is added to the + Applications folder in the Finder. + + + + + + + + + + Uninstallation + + + To uninstall &product-name;, open the disk image + dmg file and double-click on the uninstall + icon shown. + + + + + + + Unattended Installation + + + To perform a non-interactive installation of &product-name; you + can use the command line version of the installer application. + + + + Mount the dmg disk image file, as described + in the installation procedure, or use the following command + line: + + +hdiutil attach /path/to/VirtualBox-xyz.dmg + + + Open a terminal session and run the following command: + + +sudo installer -pkg /Volumes/VirtualBox/VirtualBox.pkg -target /Volumes/Macintosh\ HD + + + + + + + + Installing on Linux Hosts + + + + Prerequisites + + + For the various versions of Linux that are supported as host + operating systems, see . + + + + You may need to install the following packages on your Linux + system before starting the installation. Some systems will do + this for you automatically when you install &product-name;. + + + + + + + Qt 5.3.2 or later. Qt 5.6.2 or later is recommended. + + + + + + SDL 1.2.7 or later. This graphics library is typically + called libsdl or similar. + + + + + + + + These packages are only required if you want to run the + &product-name; graphical user interfaces. In particular, + VirtualBox, the graphical VirtualBox + Manager, requires both Qt and SDL. If you only want to run + VBoxHeadless, neither Qt nor SDL are + required. + + + + + + + + The &product-name; Kernel Modules + + + In order to run other operating systems in virtual machines + alongside your main operating system, &product-name; needs to + integrate very tightly with your system. To do this it installs + a driver module called vboxdrv into the + system kernel. The kernel is the part of the operating system + which controls your processor and physical hardware. Without + this kernel module, you can still use &vbox-mgr; to configure + virtual machines, but they will not start. + + + + Network drivers called vboxnetflt and + vboxnetadp are also installed. They enable + virtual machines to make more use of your computer's network + capabilities and are needed for any virtual machine networking + beyond the basic NAT mode. + + + + Since distributing driver modules separately from the kernel is + not something which Linux supports well, the &product-name; + install process creates the modules on the system where they + will be used. This means that you may need to install some + software packages from the distribution which are needed for the + build process. Required packages may include the following: + + + + + + + GNU compiler (GCC) + + + + + + GNU Make (make) + + + + + + Kernel header files + + + + + + + Also ensure that all system updates have been installed and that + your system is running the most up-to-date kernel for the + distribution. + + + + + The running kernel and the kernel header files must be updated + to matching versions. + + + + + The following list includes some details of the required files + for some common distributions. Start by finding the version name + of your kernel, using the command uname -r in + a terminal. The list assumes that you have not changed too much + from the original installation, in particular that you have not + installed a different kernel type. + + + + + + + With Debian and Ubuntu-based distributions, you must install + the correct version of the + linux-headers, usually whichever of + linux-headers-generic, + linux-headers-amd64, + linux-headers-i686 or + linux-headers-i686-pae best matches the + kernel version name. Also, the + linux-kbuild package if it exists. + Basic Ubuntu releases should have the correct packages + installed by default. + + + + + + On Fedora, Red Hat, Oracle Linux and many other RPM-based + systems, the kernel version sometimes has a code of letters + or a word close to the end of the version name. For example + "uek" for the Oracle Unbreakable Enterprise Kernel or + "default" or "desktop" for the standard kernels. In this + case, the package name is + kernel-uek-devel or equivalent. If + there is no such code, it is usually + kernel-devel. + + + + + + On some SUSE and openSUSE Linux versions, you may need to + install the kernel-source and + kernel-syms packages. + + + + + + + If you suspect that something has gone wrong with module + installation, check that your system is set up as described + above and try running the following command, as root: + + +rcvboxdrv setup + + + + Kernel Modules and UEFI Secure Boot + + + If you are running on a system using UEFI (Unified Extensible + Firmware Interface) Secure Boot, you may need to sign the + following kernel modules before you can load them: + + + + + + + vboxdrv + + + + + + vboxnetadp + + + + + + vboxnetflt + + + + + + vboxpci + + + + + + + See your system documentation for details of the kernel module + signing process. + + + + + + + + + Performing the Installation + + + &product-name; is available in a number of package formats + native to various common Linux distributions. See + . In addition, there is an + alternative generic installer (.run) which you can use on + supported Linux distributions. + + + + + Installing &product-name; from a Debian or Ubuntu Package + + + Download the appropriate package for your distribution. The + following example assumes that you are installing to a 64-bit + Ubuntu Xenial system. Use dpkg to install + the Debian package,as follows: + + +sudo dpkg -i virtualbox-version-number_Ubuntu_xenial_amd64.deb + + + The installer will also try to build kernel modules suitable + for the current running kernel. If the build process is not + successful you will be shown a warning and the package will be + left unconfigured. Look at + /var/log/vbox-install.log to find out why + the compilation failed. You may have to install the + appropriate Linux kernel headers, see + . After correcting any + problems, run the following command: + + +sudo rcvboxdrv setup + + + This will start a second attempt to build the module. + + + + If a suitable kernel module was found in the package or the + module was successfully built, the installation script will + attempt to load that module. If this fails, please see + for + further information. + + + + Once &product-name; has been successfully installed and + configured, you can start it by clicking + VirtualBox in your + Start menu or from the + command line. See . + + + + + + + Using the Alternative Generic Installer (VirtualBox.run) + + + The alternative generic installer performs the following + steps: + + + + + + + Unpacks the application files to the target directory + /opt/VirtualBox/, which cannot be + changed. + + + + + + Builds and installs the &product-name; kernel modules: + vboxdrv, vboxnetflt, + and vboxnetadp. + + + + + + Creates /sbin/rcvboxdrv, an init + script to start the &product-name; kernel module. + + + + + + Creates a new system group called + vboxusers. + + + + + + Creates symbolic links in /usr/bin to + a shell script /opt/VirtualBox/VBox + which does some sanity checks and dispatches to the actual + executables: VirtualBox, + VBoxVRDP, + VBoxHeadless and + VBoxManage. + + + + + + Creates + /etc/udev/rules.d/60-vboxdrv.rules, a + description file for udev, if that is present, which makes + the USB devices accessible to all users in the + vboxusers group. + + + + + + Writes the installation directory to + /etc/vbox/vbox.cfg. + + + + + + + The installer must be executed as root with either + install or uninstall as + the first parameter. For example: + + +sudo ./VirtualBox.run install + + + Or if you do not have the sudo command + available, run the following as root instead: + + +./VirtualBox.run install + + + Add every user who needs to access USB devices from a + VirtualBox guests to the group vboxusers. + Either use the OS user management tools or run the following + command as root: + + +sudo usermod -a -G vboxusers username + + + + The usermod command of some older Linux + distributions does not support the + option, which adds the user to the given group without + affecting membership of other groups. In this case, find out + the current group memberships with the + groups command and add all these groups + in a comma-separated list to the command line after the + option. For example: usermod -G + group1,group2,vboxusers + username. + + + + + + + + Performing a Manual Installation + + + If you cannot use the shell script installer described in + , you can perform + a manual installation. Run the installer as follows: + + +./VirtualBox.run --keep --noexec + + + This will unpack all the files needed for installation in the + directory install under the current + directory. The &product-name; application files are contained + in VirtualBox.tar.bz2 which you can + unpack to any directory on your system. For example: + + +sudo mkdir /opt/VirtualBox +sudo tar jxf ./install/VirtualBox.tar.bz2 -C /opt/VirtualBox + + + To run the same example as root, use the following commands: + + +mkdir /opt/VirtualBox +tar jxf ./install/VirtualBox.tar.bz2 -C /opt/VirtualBox + + + The sources for &product-name;'s kernel module are provided in + the src directory. To build the module, + change to the directory and use the following command: + + +make + + + If everything builds correctly, run the following command to + install the module to the appropriate module directory: + + +sudo make install + + + In case you do not have sudo, switch the user account to root + and run the following command: + + +make install + + + The &product-name; kernel module needs a device node to + operate. The above make command will tell + you how to create the device node, depending on your Linux + system. The procedure is slightly different for a classical + Linux setup with a /dev directory, a + system with the now deprecated devfs and a + modern Linux system with udev. + + + + On certain Linux distributions, you might experience + difficulties building the module. You will have to analyze the + error messages from the build system to diagnose the cause of + the problems. In general, make sure that the correct Linux + kernel sources are used for the build process. + + + + Note that the /dev/vboxdrv kernel module + device node must be owned by root:root and must be + read/writable only for the user. + + + + Next, you install the system initialization script for the + kernel module and activate the initialization script using the + right method for your distribution, as follows: + + +cp /opt/VirtualBox/vboxdrv.sh /sbin/rcvboxdrv + + + This example assumes you installed &product-name; to the + /opt/VirtualBox directory. + + + + Create a configuration file for &product-name;, as follows: + + +mkdir /etc/vbox +echo INSTALL_DIR=/opt/VirtualBox > /etc/vbox/vbox.cfg + + + Create the following symbolic links: + + +ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VirtualBox +ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxManage +ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxHeadless + + + + + + Updating and Uninstalling &product-name; + + + Before updating or uninstalling &product-name;, you must + terminate any virtual machines which are currently running and + exit the &product-name; or VBoxSVC applications. To update + &product-name;, simply run the installer of the updated + version. To uninstall &product-name;, run the installer as + follows: + + +sudo ./VirtualBox.run uninstall + + + As root, you can use the following command: + + +./VirtualBox.run uninstall + + + You can uninstall the .run package as follows: + + +/opt/VirtualBox/uninstall.sh + + + To manually uninstall &product-name;, perform the manual + installation steps in reverse order. + + + + + + + Automatic Installation of Debian Packages + + + The Debian packages will request some user feedback when + installed for the first time. The debconf system is used to + perform this task. To prevent any user interaction during + installation, default values can be defined. A file + vboxconf can contain the following debconf + settings: + + +virtualbox virtualbox/module-compilation-allowed boolean true +virtualbox virtualbox/delete-old-modules boolean true + + + The first line enables compilation of the vboxdrv kernel + module if no module was found for the current kernel. The + second line enables the package to delete any old vboxdrv + kernel modules compiled by previous installations. + + + + These default settings can be applied prior to the + installation of the &product-name; Debian package, as follows: + + +debconf-set-selections vboxconf + + + In addition there are some common configuration options that + can be set prior to the installation. See + . + + + + + + + Automatic Installation of RPM Packages + + + The RPM format does not provide a configuration system + comparable to the debconf system. See + for how to set some + common installation options provided by &product-name;. + + + + + + + Automatic Installation Options + + + To configure the installation process for .deb and .rpm + packages, you can create a response file named + /etc/default/virtualbox. The automatic + generation of the udev rule can be prevented with the + following setting: + + +INSTALL_NO_UDEV=1 + + + The creation of the group vboxusers can be prevented as + follows: + + +INSTALL_NO_GROUP=1 + + + If the following line is specified, the package installer will + not try to build the vboxdrv kernel module + if no module fitting the current kernel was found. + + +INSTALL_NO_VBOXDRV=1 + + + + + + + + The vboxusers Group + + + The Linux installers create the system user group + vboxusers during installation. Any system + user who is going to use USB devices from &product-name; guests + must be a member of that group. A user can be made a member of + the group vboxusers either by using the + desktop user and group tools, or with the following command: + + +sudo usermod -a -G vboxusers username + + + + + + Starting &product-name; on Linux + + + The easiest way to start an &product-name; program is by running + the program of your choice (VirtualBox, + VBoxManage, or + VBoxHeadless) from a terminal. These are + symbolic links to VBox.sh that start the + required program for you. + + + + The following detailed instructions should only be of interest + if you wish to execute &product-name; without installing it + first. You should start by compiling the + vboxdrv kernel module and inserting it into + the Linux kernel. &product-name; consists of a service daemon, + VBoxSVC, and several application programs. + The daemon is automatically started if necessary. All + &product-name; applications will communicate with the daemon + through UNIX local domain sockets. There can be multiple daemon + instances under different user accounts and applications can + only communicate with the daemon running under the user account + as the application. The local domain socket resides in a + subdirectory of your system's directory for temporary files + called .vbox-<username>-ipc. In case + of communication problems or server startup problems, you may + try to remove this directory. + + + + All &product-name; applications (VirtualBox, + VBoxManage, and + VBoxHeadless) require the &product-name; + directory to be in the library path, as follows: + + +LD_LIBRARY_PATH=. ./VBoxManage showvminfo "Windows XP" + + + + + + + + Installing on Oracle Solaris Hosts + + + For the specific versions of Oracle Solaris that are supported as + host operating systems, see . + + + + If you have a previously installed instance of &product-name; on + your Oracle Solaris host, please uninstall it first before + installing a new instance. See + for uninstall + instructions. + + + + + Performing the Installation + + + &product-name; is available as a standard Oracle Solaris + package. Download the &product-name; SunOS package, which + includes the 64-bit version of &product-name;. The + installation must be performed as root and from the global + zone. This is because the &product-name; installer + loads kernel drivers, which cannot be done from non-global + zones. To verify which zone you are currently in, execute the + zonename command. + + + + To start installation, run the following commands: + + +gunzip -cd VirtualBox-version-number-SunOS.tar.gz | tar xvf - + + + The &product-name; kernel package is integrated into the main + package. Install the &product-name; package as follows: + + +pkgadd -d VirtualBox-version-number-SunOS.pkg + + + The installer will then prompt you to enter the package you wish + to install. Choose 1 or + all and proceed. Next the + installer will ask you if you want to allow the postinstall + script to be executed. Choose y + and proceed, as it is essential to execute this script which + installs the &product-name; kernel module. Following this + confirmation the installer will install &product-name; and + execute the postinstall setup script. + + + + Once the postinstall script has been executed your installation + is now complete. You may now safely delete the uncompressed + package and autoresponse files from your + system. &product-name; is installed in + /opt/VirtualBox. + + + + + If you need to use &product-name; from non-global zones, see + . + + + + + + + + The vboxuser Group + + + The installer creates the system user group + vboxuser during installation for Oracle + Solaris hosts that support the USB features required by + &product-name;. Any system user who is going to use USB devices + from &product-name; guests must be a member of this group. A + user can be made a member of this group either by using the + desktop user and group tools or by running the following command + as root: + + +usermod -G vboxuser username + + + Note that adding an active user to the + vboxuser group will require the user to log + out and then log in again. This should be done manually after + successful installation of the package. + + + + + + + Starting &product-name; on Oracle Solaris + + + The easiest way to start an &product-name; program is by running + the program of your choice (VirtualBox, + VBoxManage, or + VBoxHeadless) from a terminal. These are + symbolic links to VBox.sh that start the + required program for you. + + + + Alternatively, you can directly invoke the required programs + from /opt/VirtualBox. Using the links + provided is easier as you do not have to enter the full path. + + + + You can configure some elements of the + VirtualBox Qt GUI, such as fonts and colours, + by running VBoxQtconfig from the terminal. + + + + + + + Uninstallation + + + Uninstallation of &product-name; on Oracle Solaris requires root + permissions. To perform the uninstallation, start a root + terminal session and run the following command: + + +pkgrm SUNWvbox + + + After confirmation, this will remove &product-name; from your + system. + + + + + + + Unattended Installation + + + To perform a non-interactive installation of &product-name; + there is a response file named + autoresponse. The installer uses this for + responses to inputs, rather than prompting the user. + + + + Extract the tar.gz package as described in + . Then open a root + terminal session and run the following command: + + +pkgadd -d VirtualBox-version-number-SunOS-x86 -n -a autoresponse SUNWvbox + + + To perform a non-interactive uninstallation, open a root + terminal session and run the following command: + + +pkgrm -n -a /opt/VirtualBox/autoresponse SUNWvbox + + + + + + Configuring a Zone for Running &product-name; + + + Assuming that &product-name; has already been installed into + your zone, you need to give the zone access to &product-name;'s + device node. This is done by performing the following steps. + Start a root terminal and run the following command: + + +zonecfg -z vboxzone + + + Replace vboxzone with the name of the + zone where you intend to run &product-name;. + + + + Use zonecfg to add the + device resource and match + properties to the zone, as follows: + + +zonecfg:vboxzone>add device +zonecfg:vboxzone:device>set match=/dev/vboxdrv +zonecfg:vboxzone:device>end +zonecfg:vboxzone>add device +zonecfg:vboxzone:device>set match=/dev/vboxdrvu +zonecfg:vboxzone:device>end +zonecfg:vboxzone>exit + + + On Oracle Solaris 11 or later, you may also add a device for + /dev/vboxusbmon, similar to that shown + above. + + + + If you are not using sparse root zones, you will need to + loopback mount /opt/VirtualBox from the + global zone into the non-global zone at the same path. This is + specified below using the dir attribute and + the special attribute. For example: + + +zonecfg:vboxzone>add fs +zonecfg:vboxzone:device>set dir=/opt/VirtualBox +zonecfg:vboxzone:device>set special=/opt/VirtualBox +zonecfg:vboxzone:device>set type=lofs +zonecfg:vboxzone:device>end +zonecfg:vboxzone>exit + + + Reboot the zone using zoneadm and you should + be able to run &product-name; from within the configured zone. + + + + + + + + + Installing an Extension Pack + + + Extension packs provide extra functionality to the &product-name; + base package, such as extended USB device support and cloud + integration features. See . + + + + To install an &product-name; extension pack, do the following: + + + + + + + Double-click on the extension package file name. + + + + &product-name; extension packs have a + .vbox-extpack file name extension. + + + + + + Follow the on-screen instructions to install the extension + pack. + + + + + + + You can also use the Extension Pack Manager tool to install an + extension pack. See . + + + + + The Extension Pack Manager + + + Extension packs can be installed and managed using the + Extension Pack Manager tool in + &vbox-mgr;. + + + + The Extension Pack Manager lists the extension packs that are + currently installed on the host, and enables you to install and + uninstall extension packs. + + + + To display the Extension Pack Manager, go to the global + Tools menu and click + Extensions. The Extension Pack + Manager is shown. + + + + To install an extension pack using the Extension Pack Manager, + click Install and select an + extension package file. The extension pack is installed on the + host and listed in Extension Pack Manager. + + + + To uninstall an extension pack with the Extension Pack Manager, + do the following: + + + + + + + Select the extension pack in the Extension Pack Manager + window and click Uninstall. + + + + + + Click Remove in the prompt + dialog. + + + + The extension pack is uninstalled from the host and removed + from the Extension Pack Manager. + + + + + + + Alternatively, you can use the VBoxManage + command line to install and manage &product-name; extension + packs. See . + + + + + + + diff --git a/doc/manual/en_US/user_Introduction.xml b/doc/manual/en_US/user_Introduction.xml new file mode 100644 index 00000000..9bab90e6 --- /dev/null +++ b/doc/manual/en_US/user_Introduction.xml @@ -0,0 +1,6796 @@ + + + +%all.entities; +]> + + + First Steps + + + Welcome to &product-name;. + + + + &product-name; is a cross-platform virtualization application. What + does that mean? For one thing, it installs on your existing Intel or + AMD-based computers, whether they are running Windows, macOS, Linux, + or Oracle Solaris operating systems (OSes). Secondly, it extends the + capabilities of your existing computer so that it can run multiple + OSes, inside multiple virtual machines, at the same time. As an + example, you can run Windows and Linux on your Mac, run Windows + Server on your Linux server, run Linux on your Windows PC, and so + on, all alongside your existing applications. You can install and + run as many virtual machines as you like. The only practical limits + are disk space and memory. + + + + &product-name; is deceptively simple yet also very powerful. It can + run everywhere from small embedded systems or desktop class machines + all the way up to datacenter deployments and even Cloud + environments. + + + + The following screenshot shows how &product-name;, installed on an + Apple Mac computer, is running Windows Server 2016 in a virtual + machine window. + + +
+ Windows Server 2016 Virtual Machine, Displayed on a macOS Host + + + + + +
+ + + In this User Manual, we will begin simply with a quick introduction + to virtualization and how to get your first virtual machine running + with the easy-to-use &product-name; graphical user interface. + Subsequent chapters will go into much more detail covering more + powerful tools and features, but fortunately, it is not necessary to + read the entire User Manual before you can use &product-name;. + + + + You can find a summary of &product-name;'s capabilities in + . For existing &product-name; + users who just want to find out what is new in this release, see the + . + + + + + Why is Virtualization Useful? + + + The techniques and features that &product-name; provides are + useful in the following scenarios: + + + + + + + Running multiple operating systems + simultaneously. &product-name; enables you to run + more than one OS at a time. This way, you can run software + written for one OS on another, such as Windows software on + Linux or a Mac, without having to reboot to use it. Since you + can configure what kinds of virtual + hardware should be presented to each such OS, you can install + an old OS such as DOS or OS/2 even if your real computer's + hardware is no longer supported by that OS. + + + + + + Easier software + installations. Software vendors can use virtual + machines to ship entire software configurations. For example, + installing a complete mail server solution on a real machine + can be a tedious task. With &product-name;, such a complex + setup, often called an appliance, can be + packed into a virtual machine. Installing and running a mail + server becomes as easy as importing such an appliance into + &product-name;. + + + + + + Testing and disaster + recovery. Once installed, a virtual machine and its + virtual hard disks can be considered a + container that can be arbitrarily frozen, + woken up, copied, backed up, and transported between hosts. + + + + Using virtual machines enables you to build and test a + multi-node networked service, for example. Issues with + networking, operating system, and software configuration can + be investigated easily. + + + + In addition to that, with the use of another &product-name; + feature called snapshots, one can save a + particular state of a virtual machine and revert back to that + state, if necessary. This way, one can freely experiment with + a computing environment. If something goes wrong, such as + problems after installing software or infecting the guest with + a virus, you can easily switch back to a previous snapshot and + avoid the need of frequent backups and restores. + + + + Any number of snapshots can be created, allowing you to travel + back and forward in virtual machine time. You can delete + snapshots while a VM is running to reclaim disk space. + + + + + + Infrastructure consolidation. + Virtualization can significantly reduce hardware and + electricity costs. Most of the time, computers today only use + a fraction of their potential power and run with low average + system loads. A lot of hardware resources as well as + electricity is thereby wasted. So, instead of running many + such physical computers that are only partially used, one can + pack many virtual machines onto a few powerful hosts and + balance the loads between them. + + + + + + + + + + Some Terminology + + + When dealing with virtualization, and also for understanding the + following chapters of this documentation, it helps to acquaint + oneself with a bit of crucial terminology, especially the + following terms: + + + + + + + Host operating system (host + OS). This is the OS of the physical computer on + which &product-name; was installed. There are versions of + &product-name; for Windows, macOS, Linux, and Oracle Solaris + hosts. See . + + + + Most of the time, this manual discusses all &product-name; + versions together. There may be platform-specific differences + which we will point out where appropriate. + + + + + + Guest operating system (guest + OS). This is the OS that is running inside the + virtual machine. Theoretically, &product-name; can run any x86 + OS such as DOS, Windows, OS/2, FreeBSD, and OpenBSD. But to + achieve near-native performance of the guest code on your + machine, we had to go through a lot of optimizations that are + specific to certain OSes. So while your favorite OS + may run as a guest, we officially support + and optimize for a select few, which include the most common + OSes. + + + + See . + + + + + + Virtual machine (VM). This is + the special environment that &product-name; creates for your + guest OS while it is running. In other words, you run your + guest OS in a VM. Normally, a VM is shown + as a window on your computer's desktop. Depending on which of + the various frontends of &product-name; you use, the VM might + be shown in full screen mode or remotely on another computer. + + + + Internally, &product-name; treats a VM as a set of parameters + that specify its behavior. Some parameters describe hardware + settings, such as the amount of memory and number of CPUs + assigned. Other parameters describe the state information, + such as whether the VM is running or saved. + + + + You can view these VM settings in &vbox-mgr;, in the + Settings window, and by + running the VBoxManage command. See + . + + + + + + Guest Additions. This refers + to special software packages which are shipped with + &product-name; but designed to be installed + inside a VM to improve performance of the + guest OS and to add extra features. See + . + + + + + + + + + + Features Overview + + + The following is a brief outline of &product-name;'s main + features: + + + + + + + Portability. &product-name; + runs on a large number of 64-bit host operating systems. See + . + + + + &product-name; is a so-called hosted + hypervisor, sometimes referred to as a type + 2 hypervisor. Whereas a + bare-metal or type 1 + hypervisor runs directly on the hardware, &product-name; + requires an existing OS to be installed. It can thus run + alongside existing applications on that host. + + + + To a very large degree, &product-name; is functionally + identical on all of the host platforms, and the same file and + image formats are used. This enables you to run virtual + machines created on one host on another host with a different + host OS. For example, you can create a virtual machine on + Windows and then run it on Linux. + + + + In addition, virtual machines can easily be imported and + exported using the Open Virtualization Format (OVF), an + industry standard created for this purpose. You can even + import OVFs that were created with a different virtualization + software. See . + + + + For users of &oci; the functionality extends to exporting and + importing virtual machines to and from the cloud. This + simplifies development of applications and deployment to the + production environment. See + . + + + + + + Guest Additions: shared folders, + seamless windows, 3D virtualization. The + &product-name; Guest Additions are software packages which can + be installed inside of supported guest + systems to improve their performance and to provide additional + integration and communication with the host system. After + installing the Guest Additions, a virtual machine will support + automatic adjustment of video resolutions, seamless windows, + accelerated 3D graphics and more. See + . + + + + In particular, Guest Additions provide for shared + folders, which let you access files on the host + system from within a guest machine. See + . + + + + + + Comprehensive hardware + support. Among other features, &product-name; + supports the following: + + + + + + + Guest multiprocessing + (SMP). &product-name; can present up to 32 + virtual CPUs to each virtual machine, irrespective of how + many CPU cores are physically present on your host. + + + + + + USB device support. + &product-name; implements a virtual USB controller and + enables you to connect arbitrary USB devices to your + virtual machines without having to install device-specific + drivers on the host. USB support is not limited to certain + device categories. See . + + + + + + Hardware compatibility. + &product-name; virtualizes a vast array of virtual + devices, among them many devices that are typically + provided by other virtualization platforms. That includes + IDE, SCSI, and SATA hard disk controllers, several virtual + network cards and sound cards, virtual serial and parallel + ports and an Input/Output Advanced Programmable Interrupt + Controller (I/O APIC), which is found in many computer + systems. This enables easy cloning of disk images from + real machines and importing of third-party virtual + machines into &product-name;. + + + + + + Full ACPI support. The + Advanced Configuration and Power Interface (ACPI) is fully + supported by &product-name;. This enables easy cloning of + disk images from real machines or third-party virtual + machines into &product-name;. With its unique + ACPI power status support, + &product-name; can even report to ACPI-aware guest OSes + the power status of the host. For mobile systems running + on battery, the guest can thus enable energy saving and + notify the user of the remaining power, for example in + full screen modes. + + + + + + Multiscreen resolutions. + &product-name; virtual machines support screen resolutions + many times that of a physical screen, allowing them to be + spread over a large number of screens attached to the host + system. + + + + + + Built-in iSCSI support. + This unique feature enables you to connect a virtual + machine directly to an iSCSI storage server without going + through the host system. The VM accesses the iSCSI target + directly without the extra overhead that is required for + virtualizing hard disks in container files. See + . + + + + + + PXE Network boot. The + integrated virtual network cards of &product-name; fully + support remote booting using the Preboot Execution + Environment (PXE). + + + + + + + + + Multigeneration branched + snapshots. &product-name; can save arbitrary + snapshots of the state of the virtual machine. You can go back + in time and revert the virtual machine to any such snapshot + and start an alternative VM configuration from there, + effectively creating a whole snapshot tree. See + . You can create and delete + snapshots while the virtual machine is running. + + + + + + VM groups. &product-name; + provides a groups feature that enables the user to organize + and control virtual machines collectively, as well as + individually. In addition to basic groups, it is also possible + for any VM to be in more than one group, and for groups to be + nested in a hierarchy. This means you can have groups of + groups. In general, the operations that can be performed on + groups are the same as those that can be applied to individual + VMs: Start, Pause, Reset, Close (Save state, Send Shutdown, + Poweroff), Discard Saved State, Show in File System, Sort. + + + + + + Clean architecture and unprecedented + modularity. &product-name; has an extremely modular + design with well-defined internal programming interfaces and a + clean separation of client and server code. This makes it easy + to control it from several interfaces at once. For example, + you can start a VM simply by clicking on a button in the + &product-name; graphical user interface and then control that + machine from the command line, or even remotely. See + . + + + + Due to its modular architecture, &product-name; can also + expose its full functionality and configurability through a + comprehensive software development kit + (SDK), which enables integration of &product-name; + with other software systems. See + . + + + + + + Remote machine display. The + VirtualBox Remote Desktop Extension (VRDE) enables + high-performance remote access to any running virtual machine. + This extension supports the Remote Desktop Protocol (RDP) + originally built into Microsoft Windows, with special + additions for full client USB support. + + + + The VRDE does not rely on the RDP server that is built into + Microsoft Windows. Instead, the VRDE is plugged directly into + the virtualization layer. As a result, it works with guest + OSes other than Windows, even in text mode, and does not + require application support in the virtual machine either. The + VRDE is described in detail in . + + + + On top of this special capacity, &product-name; offers you + more unique features: + + + + + + + Extensible RDP + authentication. &product-name; already supports + Winlogon on Windows and PAM on Linux for RDP + authentication. In addition, it includes an easy-to-use + SDK which enables you to create arbitrary interfaces for + other methods of authentication. See + . + + + + + + USB over RDP. Using RDP + virtual channel support, &product-name; also enables you + to connect arbitrary USB devices locally to a virtual + machine which is running remotely on an &product-name; RDP + server. See . + + + + + + + + + + + + + Supported Host Operating Systems + + + Currently, &product-name; runs on the following host OSes: + + + + + + + Windows hosts (64-bit): + + + + + + + Windows 8.1 + + + + + + Windows 10 + + + + + + Windows 11 21H2 + + + + + + Windows Server 2012 + + + + + + Windows Server 2012 R2 + + + + + + Windows Server 2016 + + + + + + Windows Server 2019 + + + + + + Windows Server 2022 + + + + + + + + + macOS hosts (64-bit): + + + + + + + 10.15 (Catalina) + + + + + + 11 (Big Sur) + + + + + + 12 (Monterey) + + + + + + + Intel hardware is required. See also + . + + + + An installer package is available for macOS/Arm64, for systems + using an Apple silicon CPU. With this package, you can run + some guest operating systems for Intel x86/x64 CPUs in an + emulation. + + + + The macOS/Arm64 installer package for Apple silicon platform + is available as a Developer Preview release. This package + represents a work in progress project and the performance is + very modest. + + + + + Developer Preview is a public release for developers, which + provides early access to unsupported software release and + features. + + + + + + + Linux hosts (64-bit). + Includes the following: + + + + + + + Ubuntu 18.04 LTS, 20.04 LTS and 22.04 + + + + + + Debian GNU/Linux 10 ("Buster") and 11 ("Bullseye") + + + + + + Oracle Linux 7, 8 and 9 + + + + + + CentOS/Red Hat Enterprise Linux 7, 8 and 9 + + + + + + Fedora 35 and 36 + + + + + + Gentoo Linux + + + + + + SUSE Linux Enterprise server 12 and 15 + + + + + + openSUSE Leap 15.3 + + + + + + + It should be possible to use &product-name; on most systems + based on Linux kernel 2.6, 3.x, 4.x or 5.x using either the + &product-name; installer or by doing a manual installation. + See . However, the + formally tested and supported Linux distributions are those + for which we offer a dedicated package. + + + + Note that Linux 2.4-based host OSes are no longer supported. + + + + + + Oracle Solaris hosts (64-bit + only). The following versions are supported with + the restrictions listed in : + + + + + + + Oracle Solaris 11.4 + + + + + + + + + + Note that any feature which is marked as + experimental is not supported. Feedback and + suggestions about such features are welcome. + + + + + Host CPU Requirements + + + SSE2 (Streaming SIMD Extensions 2) support is required for host + CPUs. + + + + + + + + + Installing &product-name; and Extension Packs + + + &product-name; comes in many different packages, and installation + depends on your host OS. If you have installed software before, + installation should be straightforward. On each host platform, + &product-name; uses the installation method that is most common + and easy to use. If you run into trouble or have special + requirements, see for details + about the various installation methods. + + + + &product-name; is split into the following components: + + + + + + + Base package. The base + package consists of all open source components and is licensed + under the GNU General Public License V2. + + + + + + Extension packs. Additional + extension packs can be downloaded which extend the + functionality of the &product-name; base package. Currently, + Oracle provides a single extension pack, available from: + . The extension pack + provides the following added functionality: + + + + + + + VirtualBox Remote Desktop Protocol (VRDP) support. See + . + + + + + + Host webcam passthrough. See + . + + + + + + Intel PXE boot ROM. + + + + + + + + Disk image encryption with AES algorithm. See + . + + + + + + Cloud integration features. See + . + + + + + + + For details of how to install an extension pack, see + . + + + + + + + + + + Starting &product-name; + + + After installation, you can start &product-name; as follows: + + + + + + + Windows hosts. In the + Programs menu, click on the + item in the VirtualBox group. + On some Windows platforms, you can also enter + VirtualBox in the search box of the + Start menu. + + + + + + macOS hosts. In the Finder, + double-click on the + VirtualBox item in the + Applications folder. You may want to drag this item onto your + Dock. + + + + + + Linux or Oracle Solaris + hosts. Depending on your desktop environment, an + &product-name; item may have been placed in either the System + or System Tools group of your + Applications menu. + Alternatively, you can enter VirtualBox in + a terminal window. + + + + + + + When you start &product-name;, the &vbox-mgr; interface is shown. + See . + + + + + + + &vbox-mgr; + + + &vbox-mgr; is the user interface for &product-name;. You can use + &vbox-mgr; to create, configure, and manage your virtual machines. + + + + This section describes the main features of the &vbox-mgr; user + interface. Subsequent sections and chapters describe how to use + &vbox-mgr; to perform tasks in &product-name;. + + + + When you start &product-name;, the + &vbox-mgr; window is displayed. + + + + shows &vbox-mgr; the + first time you start &product-name;, before you have created any + virtual machines. + + +
+ &vbox-mgr;, Showing Welcome Screen After Initial Startup + + + + + +
+ + + shows how &vbox-mgr; + might look after you have created some virtual machines. + + +
+ &vbox-mgr; Window, After Creating Virtual Machines + + + + + +
+ + + The main components of the &vbox-mgr; window are as follows: + + + + + + + The machine list. The left + pane of the VirtualBox + Manager window lists all your virtual machines. If + you have not yet created any virtual machines, this list is + empty. See . + + + + + + The Details pane. The pane on + the right displays the properties of the currently selected + virtual machine. If you do not have any machines yet, the pane + displays a welcome message. + + + + The toolbar buttons on the Details pane can be used to create + and work with virtual machines. See + . + + + + + + Help Viewer. A window that + displays context-sensitive help topics for &vbox-mgr; tasks. + See . + + + + + + + + The Machine List + + + The list of virtual machines in the left pane is called the + machine list. + + + + The following methods can be used to control and configure + virtual machines in the machine list: + + + + + + + Right-click on the virtual machine name, to display menu + options. + + + + + + Click on the Machine Tools menu, to the right of the virtual + machine name. See . + + + + + + Click a button in the toolbar in the Details pane. See + . + + + + + + + + + + The Details Pane + + + The Details pane shows configuration information for a virtual + machine that is selected in the machine list. The pane also + includes a toolbar for performing tasks. + + +
+ &vbox-mgr; Details Pane, Including Toolbar + + + + + +
+ + + The Details pane includes the following: + + + + + &vbox-mgr; Toolbar + + + A toolbar at the top of the Details pane contains buttons that + enable you to configure the selected virtual machine, or to + create a new virtual machine. + + + + The toolbar includes the following buttons: + + + + + + + New. Creates a new + virtual machine, and adds it to the machine list. + + + + + + Add. Adds an existing + virtual machine to the machine list. + + + + + + Settings. Displays the + Settings window for the + virtual machine, enabling you to make configuration + changes. + + + + + + Discard. For a running + virtual machine, discards the saved state for the virtual + machine and closes it down. + + + + + + Show/Start. For a running + virtual machine, Show + displays the virtual machine window. For a stopped virtual + machine, Start displays + options for powering up the virtual machine. + + + + + + + + + + Settings + + + A summary of settings is shown for the virtual machine. + + + + You can change some virtual machine settings, by clicking on + the setting in the Details pane. + + + + + If a virtual machine is running, some settings cannot be + altered. You must stop the virtual machine first in order to + change the setting. + + + + + Virtual machine settings can also be changed using the + Settings button on the + &vbox-mgr; toolbar. + + + + The virtual machine settings on the Details pane are organized + in sections that correspond to those used in the + Settings window. See + . + + + + Click the arrow icon to hide or show each section. + + + + + + + Preview Window + + + The virtual machine display is shown in a small window. + + + + You can use the Preview window to check if your virtual + machine has finished booting up. + + + + Click the arrow icon to hide or show the Preview window. + + + + + + + Notification Center + + + Notification messages may be shown in a sliding panel on the + right of the Details pane, called the + Notification Center. Click + the warning triangle to show the notification messages. + + + + Most system messages that do not require user interaction are + displayed in the Notification Center, including task failure + alerts. + + + + The progress of some tasks can be observed and stopped using + the Notification Center. + + + + +
+ + + + &vbox-mgr; Tools + + + &vbox-mgr; provides two types of user tools, to enable you to + perform common tasks easily. + + + + + + + Global Tools. These tools + apply to all virtual machines. See + . + + + + + + Machine Tools. These tools + apply to a specific virtual machine. + See . + + + + + + + + Global Tools + + + In the left pane of the &vbox-mgr; window, click the + Menu icon in the + Tools banner located above + the machine list. The Global + Tools menu is displayed. + + +
+ Global Tools Menu + + + + + +
+ + + A drop-down list enables you to select from the following + global tools: + + + + + + + Welcome. Displays the + &vbox-mgr; welcome message. The &vbox-mgr; toolbar is also + included, to enable you to get started with using + &product-name;. See + . + + + + + + Extensions. Displays the + Extension Pack Manager + tool. This tool is used to install and uninstall + &product-name; Extension Packs. See + . + + + + + + Media. Displays the + Virtual Media Manager + tool. This tool is used to manage the disk images used by + &product-name;. See + . + + + + + + Network. Displays the + Network Manager tool. + This tool is used to create and configure some types of + networks used by &product-name;. See + . + + + + + + Cloud. Displays the + Cloud Profile Editor + tool. This tool is used to configure connections to a + cloud service, such as &oci;. See + . + + + + + + Activities. Displays the + VM Activity Overview + tool. This tool is used to monitor performance and + resource usage of virtual machines. See + . + + + + + + + The Pin icon is used to keep + the Tools banner visible as + you scroll down the entries in the machine list. + + +
+ + + + Machine Tools + + + In the machine list in the left pane of the &vbox-mgr; window, + select a virtual machine. + + + + Click the Menu icon to the + right of the virtual machine name. The + Machine Tools menu is + displayed. + + +
+ Machine Tools Menu + + + + + +
+ + + A drop-down list enables you to select from the following + machine tools: + + + + + + + Details. Displays the + Details pane for the selected virtual machine. See + . + + + + + + Snapshots. Displays the + Snapshots tool. This tool + enables you to view and manage snapshots for the virtual + machine. See . + + + + + + Logs. Displays the + Log Viewer tool. This + tool enables you to view and search system logs for the + virtual machine. See . + + + + + + Activity. Displays the + VM Activity page of the + Session Information + dialog. This dialog enables you to view and analyze + performance metrics for the virtual machine. See + . + + + + + + File Manager. Displays + the Guest Control File + Manager tool. This tool enables you to manage + files on the guest system. See + . + + + + + +
+ +
+ + + + Help Viewer + + + The Help Viewer is a window that displays context-sensitive help + to assist you in completing common &vbox-mgr; tasks. You can + display the Help Viewer in the following ways: + + + + + + + In a &vbox-mgr; wizard or dialog, click + Help to display the + relevant help topic. + + + + + + In &vbox-mgr; or from a guest VM, do either of the + following: + + + + + + + Select the Help, + Contents menu option. + + + + + + Press the F1 button. + + + + The keyboard shortcut used to access the Help Viewer can + be configured in the + Preferences window. + + + + + + + + + + The Help Viewer has the following features: + + + + + + + Navigation tools. The left + hand pane contains the following navigation tools: + + + + + + + Contents. Displays the + help topic location in the &product-name; documentation. + + + + + + Search. Enables you to + search the documentation for help topics. + + + + + + Bookmarks. Enables you + to bookmark useful help topics. + + + + + + + + + Tabbed browsing. Help + topics that you have visited are displayed in tabs in the + main window pane. + + + + + + Zoomable topics. Zoom + controls enable you to enlarge help topic details. + + + + + + Printing. Help topics can + be printed to PDF file or to a local printer. + + + + + + + + + + About &vbox-mgr; Wizards + + + &vbox-mgr; includes wizards that enable you to complete tasks + easily. Examples of such tasks are when you create a new virtual + machine or use the cloud integration features of &product-name;. + + + + To display a help topic for the wizard, click the + Help button. + + + + Some wizards can be displayed in either of the following modes: + + + + + + + Guided mode. This is the + default display mode. Wizards are shown in the conventional + manner, using a series of pages with descriptions to guide + the user through the steps for a task. + + + + + + Expert + mode. This display mode is designed + for more advanced users of &product-name;. All settings are + displayed on a single page, enabling quicker completion of + tasks. + + + + + + + Click the button at the bottom of the wizard window to switch + between Guided mode and Expert mode. + + + + +
+ + + + Creating Your First Virtual Machine + + + Click New in the VirtualBox + Manager window. The Create Virtual + Machine wizard is shown, to guide you through the + required steps for setting up a new virtual machine (VM). + + + + The Create Virtual Machine wizard + pages are described in the following sections. + + + + + Create Virtual Machine Wizard: Name and Operating System + +
+ Creating a Virtual Machine: Name and Operating System + + + + + +
+ + + Use this page to specify a name and operating system (OS) for + the virtual machine and to change the storage location used for + VMs. + + + + You can also choose to disable the unattended guest operating + system install feature. See also + . + + + + The following fields are available on this wizard page: + + + + + + + Name. A name for the new + VM. The name you enter is shown in the machine list of + &vbox-mgr; and is also used for the virtual machine's files + on disk. + + + + Be sure to assign each VM an informative name that describes + the OS and software running on the VM. For example, a name + such as Windows 10 with Visio. + + + + + + Folder. The location where + VMs are stored on your computer, called the + machine folder. The default folder + location is shown. + + + + Ensure that the folder location has enough free space, + especially if you intend to use the snapshots feature. See + also . + + + + + + ISO Image. Select an ISO + image file. The image file can be used to install an OS on + the new virtual machine or it can be attached to a DVD drive + on the new virtual machine. + + + + + + Type and Version. These + fields are used to select the OS that you want to install on + the new virtual machine. + + + + The supported OSes are grouped into types. If you want to + install something very unusual that is not listed, select + the Other type. Depending + on your selection, &product-name; will enable or disable + certain VM settings that your guest OS may require. This is + particularly important for 64-bit guests. See + . It is therefore + recommended to always set this field to the correct value. + + + + If an ISO image is selected and &product-name; detects the + operating system for the ISO, the + Type and + Version fields are + populated automatically and are disabled. + + + + + + Skip Unattended + Installation. Disables unattended guest OS + installation, even if an ISO image is selected that supports + unattended installation. In that case, the selected ISO + image is mounted automatically on the DVD drive of the new + virtual machine and user interaction is required to complete + the OS installation. + + + + The unattended installation step in the wizard is skipped. + + + + + This option is disabled if you do not select an + installation medium in the ISO + Image field. + + + + + + + + Click Next to go to the next + wizard page. + + +
+ + + + (Optional) Create Virtual Machine Wizard: Unattended Guest OS Install + + + Unattended guest OS installation enables you to install the OS + on a virtual machine automatically. + + + + + This page is optional. It is not displayed if you have + selected the Skip Unattended + Installation option on the initial wizard page. + + + + + Use this page to set up the required parameters for unattended + guest OS installation and to configure automatic installation of + the &product-name; Guest Additions. See also + for some + typical scenarios when using automated installation. + + +
+ Creating a Virtual Machine: Unattended Guest OS Installation + + + + + +
+ + + The following fields are available on this wizard page: + + + + + + + Username and Password. + Enter the credentials for a default user on the guest OS. + + + + + + Guest Additions. Enables + automatic installation of the Guest Additions, following + installation of the guest OS. Use the drop-down list to + select the location of the ISO image file for the Guest + Additions. + + + + + + Additional Options. The + following options enable you to perform extra configuration + of the guest OS: + + + + + + + Product Key. For + Windows guests only. Enter the product key required for + Windows installation. + + + + + + Hostname. Host name for + the guest. By default, this is the same as the VM name. + + + + + + Domain Name. Domain + name for the guest. + + + + + + Install in Background. + Enable headless mode for the VM, where a graphical user + interface is not shown. + + + + + + + + + + Click Next to go to the next + wizard page. + + +
+ + + + Create Virtual Machine Wizard: Hardware + + + Use this page to configure hardware settings for the virtual + machine. + + +
+ Creating a Virtual Machine: Hardware + + + + + +
+ + + The following fields are available on this wizard page: + + + + + + + Base Memory. Select the + amount of RAM that &product-name; should allocate every time + the virtual machine is started. The amount of memory + selected here will be taken away from your host machine and + presented to the guest OS, which will report this size as + the virtual machines installed RAM. + + + + + Choose this setting carefully. The memory you give to the + VM will not be available to your host OS while the VM is + running, so do not specify more than you can spare. + + + + For example, if your host machine has 4 GB of RAM and you + enter 2048 MB as the amount of RAM for a particular + virtual machine, you will only have 2 GB left for all the + other software on your host while the VM is running. If + you run two VMs at the same time, even more memory will be + allocated for the second VM, which may not even be able to + start if that memory is not available. + + + + On the other hand, you should specify as much as your + guest OS and your applications will require to run + properly. A guest OS may require at least 1 or 2 GB of + memory to install and boot up. For best performance, more + memory than that may be required. + + + + + Always ensure that the host OS has enough RAM remaining. If + insufficient RAM remains, the system might excessively swap + memory to the hard disk, which effectively brings the host + system to a standstill. + + + + As with other Create Virtual + Machine wizard settings, you can change this + setting later, after you have created the VM. + + + + + + Processor(s). Select the + number of virtual processors to assign to the VM. + + + + It is not advised to assign more than half of the total + processor threads from the host machine. + + + + + + Enable EFI. Enables + Extensible Firware Interface (EFI) booting for the guest OS. + + + + + + + Click Next to go to the next + wizard page. + + +
+ + + + Create Virtual Machine Wizard: Virtual Hard Disk + + + Use this page to specify a virtual hard disk for the virtual + machine. + + + + There are many ways in which &product-name; can provide hard + disk space to a VM, see . The most + common way is to use a large image file on your physical hard + disk, whose contents &product-name; presents to your VM as if it + were a complete hard disk. This file then represents an entire + hard disk, so you can even copy it to another host and use it + with another &product-name; installation. + + +
+ Creating a New Virtual Machine: Virtual Hard Disk + + + + + +
+ + + The following fields are available on this wizard page: + + + + + + + Create a Virtual Hard Disk + Now. Creates a new empty virtual hard disk image, + located in the VM's machine folder. + + + + Enter the following settings: + + + + + + + Disk Size. Use the + slider to select a maximum size for the hard disk in the + new VM. + + + + + + Pre-Allocate Full Size. + This setting determines the type of image file used for + the disk image. Select this setting to use a + fixed-size file for the disk image. + Deselect this setting to use a dynamically + allocated file for the disk image. + + + + The different types of image file behave as follows: + + + + + + + Dynamically allocated + file. This type of image file only grows + in size when the guest actually stores data on its + virtual hard disk. Therefore, this file is small + initially. As the drive is filled with data, the + file grows to the specified size. + + + + + + Fixed-size file. + This type of image file immediately occupies the + file specified, even if only a fraction of that + virtual hard disk space is actually in use. While + occupying much more space, a fixed-size file incurs + less overhead and is therefore slightly faster than + a dynamically allocated file. + + + + + + + For more details about the differences, see + . + + + + + + + + + Use an Existing Hard Disk + File. Enables you to select an + existing disk image file to use with + the new VM. + + + + The drop-down list presented in the window lists all disk + images which are known by &product-name;. These disk images + are currently attached to a virtual machine, or have been + attached to a virtual machine. + + + + Alternatively, click on the small folder icon next to the + drop-down list. In the Hard Disk + Selector window that is displayed, click + Add to select a disk image + file on your host disk. + + + + + + Do Not Add a Virtual Hard + Disk. The new VM is created without a hard disk. + + + + + + + To prevent your physical hard disk on the host OS from filling + up, &product-name; limits the size of the image file. But the + image file must be large enough to hold the contents of the + guest OS and the applications you want to install. For a Windows + or Linux guest, you will probably need several gigabytes for any + serious use. The limit of the image file size can be changed + later, see . + + + + + You can skip attaching a virtual hard disk file to the new + virtual machine you are creating. But you will then need to + attach an hard disk later on, in order to install a guest + operating system. + + + + + After having selected or created your image file, click + Next to go to the next wizard + page. + + +
+ + + + Create Virtual Machine Wizard: Summary + + + This page displays a summary of the configuration for the + virtual machine. + + + + If you are not happy with any of the settings, use the + Back button to return to the + corresponding page and modify the setting. + + + + Click Finish to create your new + virtual machine. The virtual machine is displayed in the machine + list on the left side of the &vbox-mgr; window, with the name + that you entered on the first page of the wizard. + + + + + + + Some Examples of Unattended Installation + + + To configure unattended installation, you typically just need to + specify an ISO image in the Create Virtual + Machine wizard. &product-name; then detects the OS + type and the unattended installation process is done + automatically when the wizard is completed. However, in some + situations the installation may need be completed manually. + + + + The following list describes some common scenarios for + unattended installation: + + + + + + + OS type is detected + automatically. The following outcomes are + possible: + + + + + + + If unattended installation is supported for the selected + ISO, the guest OS is installed automatically. No user + input is required. + + + + + + If unattended installation is not supported for the + selected ISO, the ISO image is inserted automatically + into the DVD drive of the new VM. The guest OS + installation must then be completed manually. + + + + + + + + + OS type is not detected + automatically. You must configure + Type and + Version settings in the + wizard. + + + + The ISO image is inserted automatically into the DVD drive + of the new VM. The guest OS installation must then be + completed manually. + + + + + + Unattended Installation is + disabled. Users can disable unattended + installation, by selecting the Skip + Unattended Installation check box on the initial + wizard page. + + + + The ISO image is inserted automatically into the DVD drive + of the new VM. The guest OS installation must then be + completed manually. + + + + + + + See also for details of how + to perform unattended installation from the command line. + + + + +
+ + + + Running Your Virtual Machine + + + To start a virtual machine, you have the following options: + + + + + + + Double-click on the VM's entry in the machine list in + &vbox-mgr;. + + + + + + Select the VM's entry in the machine list in &vbox-mgr;, and + click Start in the toolbar + the top of the window. + + + + + + Go to the VirtualBox VMs folder in your + system user's home directory. Find the subdirectory of the + machine you want to start and double-click on the machine + settings file. This file has a .vbox file + extension. + + + + + + + Starting a virtual machine displays a new window, and the virtual + machine which you selected will boot up. Everything which would + normally be seen on the virtual system's monitor is shown in the + window. See . + + + + In general, you can use the virtual machine as you would use a + real computer. The following topics describe a few points to note + when running a VM. + + + + + Starting a New VM for the First Time + + + When you start a VM for the first time the OS installation + process is started automatically, using the ISO image file + specified in the Create Virtual + Machine wizard. + + + + Follow the onscreen instructions to install your OS. + + + + + + + + + Capturing and Releasing Keyboard and Mouse + + + &product-name; provides a virtual USB tablet device to new + virtual machines through which mouse events are communicated to + the guest OS. If you are running a modern guest OS that can + handle such devices, mouse support may work out of the box + without the mouse being captured as + described below. See . + + + + Otherwise, if the virtual machine detects only standard PS/2 + mouse and keyboard devices, since the OS in the virtual machine + does not know that it is not running on a real computer, it + expects to have exclusive control over your keyboard and mouse. + But unless you are running the VM in full screen mode, your VM + needs to share keyboard and mouse with other applications and + possibly other VMs on your host. + + + + After installing a guest OS and before you install the Guest + Additions, described in , either + your VM or the rest of your computer can + own the keyboard and the mouse. Both cannot + own the keyboard and mouse at the same time. You will see a + second mouse pointer which is always + confined to the limits of the VM window. You activate the VM by + clicking inside it. + + + + To return ownership of keyboard and mouse to your host OS, + &product-name; reserves a special key on your keyboard: the + Host key. By default, this is the + right Ctrl key on your keyboard. On a Mac + host, the default Host key is the left Command key. You can + change this default using the Preferences window. See + . The current setting for the Host + key is always displayed at the bottom right of your VM window. + + +
+ Host Key Setting on the Virtual Machine Taskbar + + + + + +
+ + + This means the following: + + + + + + + Your keyboard is owned by + the VM if the VM window on your host desktop has the + keyboard focus. If you have many windows open in your guest + OS, the window that has the focus in your VM is used. This + means that if you want to enter text within your VM, click + on the title bar of your VM window first. + + + + To release keyboard ownership, press the Host key. As + explained above, this is typically the right Ctrl key. + + + + Note that while the VM owns the keyboard, some key + sequences, such as Alt+Tab, will no longer be seen by the + host, but will go to the guest instead. After you press the + Host key to reenable the host keyboard, all key presses will + go through the host again, so that sequences such as Alt+Tab + will no longer reach the guest. For technical reasons it may + not be possible for the VM to get all keyboard input even + when it does own the keyboard. Examples of this are the + Ctrl+Alt+Del sequence on Windows hosts or single keys + grabbed by other applications on X11 hosts such as the GNOME + desktop Locate Pointer feature. + + + + + + Your mouse is owned by the + VM only after you have clicked in the VM window. The host + mouse pointer will disappear, and your mouse will drive the + guest's pointer instead of your normal mouse pointer. + + + + Note that mouse ownership is independent of that of the + keyboard. Even after you have clicked on a titlebar to be + able to enter text into the VM window, your mouse is not + necessarily owned by the VM yet. + + + + To release ownership of your mouse by the VM, press the Host + key. + + + + + + + As this behavior is inconvenient, &product-name; provides a set + of tools and device drivers for guest systems called the + &product-name; Guest Additions. These tools make VM keyboard and + mouse operations much more seamless. Most importantly, the Guest + Additions suppress the second "guest" mouse pointer and make + your host mouse pointer work directly in the guest. See + . + + +
+ + + + Typing Special Characters + + + Some OSes expect certain key combinations to initiate certain + procedures. The key combinations that you type into a VM might + target the host OS, the &product-name; software, or the guest + OS. The recipient of these keypresses depends on a number of + factors, including the key combination itself. + + + + + + + Host OSes reserve certain key combinations for themselves. + For example, you cannot use the + Ctrl+Alt+Delete combination + to reboot the guest OS in your VM, because this key + combination is reserved by the host OS. Even though both + Windows and Linux OSes can intercept this key combination, + the host OS is rebooted automatically. + + + + On Linux and Oracle Solaris hosts, which use the X Window + System, the key combination + Ctrl+Alt+Backspace normally + resets the X server and restarts the entire graphical user + interface. As the X server intercepts this combination, + pressing it will usually restart your + host graphical user interface and kill + all running programs, including &product-name;, in the + process. + + + + On Linux hosts supporting virtual terminals, the key + combination Ctrl+Alt+Fx, + where Fx is one of the function keys from F1 to F12, + normally enables you to switch between virtual terminals. As + with Ctrl+Alt+Delete, these + combinations are intercepted by the host OS and therefore + always switch terminals on the host. + + + + If, instead, you want to send these key combinations to the + guest OS in the virtual machine, you + will need to use one of the following methods: + + + + + + + Use the items in the + Input, + Keyboard menu of the + virtual machine window. This menu includes the settings + Insert Ctrl+Alt+Delete + and Insert + Ctrl+Alt+Backspace. However, the latter + setting affects only Linux guests or Oracle Solaris + guests. + + + + This menu also includes an option for inserting the Host + key combination. + + + + + + Use special key combinations with the Host key, which is + normally the right Control key. &product-name; then + translates the following key combinations for the VM: + + + + + + + Host key + Del + sends Ctrl+Alt+Del + to reboot the guest OS. + + + + + + Host key + + Backspace sends + Ctrl+Alt+Backspace + to restart the graphical user interface of a Linux + or Oracle Solaris guest. + + + + + + Host key + Function + key. For example, use this key + combination to simulate + Ctrl+Alt+Fx to + switch between virtual terminals in a Linux guest. + + + + + + + + + + + + For some other keyboard combinations such as + Alt+Tab to switch between + open windows, &product-name; enables you to configure + whether these combinations will affect the host or the + guest, if a virtual machine currently has the focus. This is + a global setting for all virtual machines and can be found + under File, + Preferences, + Input. + + + + + + A soft keyboard can be used to input key combinations in the + guest. See . + + + + + + + + + + Changing Removable Media + + + While a virtual machine is running, you can change removable + media in the Devices menu of + the VM's window. Here you can select in detail what + &product-name; presents to your VM as a CD, DVD, or floppy + drive. + + + + The settings are the same as those available for the VM in the + Settings window of &vbox-mgr;. + But as the Settings window is + disabled while the VM is in the Running or Saved state, the + Devices menu saves you from + having to shut down and restart the VM every time you want to + change media. + + + + Using the Devices menu, you can + attach the host drive to the guest or select a floppy or DVD + image, as described in . + + + + The Devices menu also includes + an option for creating a virtual ISO (VISO) from selected files + on the host. + + + + + + + Resizing the Machine's Window + + + You can resize the VM's window while that VM is running. When + you do, the window is scaled as follows: + + + + + + + If you have scaled mode + enabled, then the virtual machine's screen will be scaled to + the size of the window. This can be useful if you have many + machines running and want to have a look at one of them + while it is running in the background. Alternatively, it + might be useful to enlarge a window if the VM's output + screen is very small, for example because you are running an + old OS in it. + + + + To enable scaled mode, press Host key + + C, or select Scaled + Mode from the + View menu in the VM window. + To leave scaled mode, press Host key + + C again. + + + + The aspect ratio of the guest screen is preserved when + resizing the window. To ignore the aspect ratio, press + Shift during the resize + operation. + + + + See for additional remarks. + + + + + + If you have the Guest Additions installed and they support + automatic resizing, the + Guest Additions will automatically adjust the screen + resolution of the guest OS. For example, if you are running + a Windows guest with a resolution of 1024x768 pixels and you + then resize the VM window to make it 100 pixels wider, the + Guest Additions will change the Windows display resolution + to 1124x768. + + + + See . + + + + + + Otherwise, if the window is bigger than the VM's screen, the + screen will be centered. If it is smaller, then scroll bars + will be added to the machine window. + + + + + + + + + + Saving the State of the Machine + + + When you click on the Close + button of your virtual machine window, at the top right of the + window, just like you would close any other window on your + system, &product-name; asks you whether you want to save or + power off the VM. As a shortcut, you can also press + Host key + Q. + + +
+ Closing Down a Virtual Machine + + + + + +
+ + + The difference between the three options is crucial. They mean + the following: + + + + + + + Save the machine state: + With this option, &product-name; + freezes the virtual machine by + completely saving its state to your local disk. + + + + When you start the VM again later, you will find that the VM + continues exactly where it was left off. All your programs + will still be open, and your computer resumes operation. + Saving the state of a virtual machine is thus in some ways + similar to suspending a laptop computer by closing its lid. + + + + + + Send the shutdown signal. + This will send an ACPI shutdown signal to the virtual + machine, which has the same effect as if you had pressed the + power button on a real computer. This should trigger a + proper shutdown mechanism from within the VM. + + + + + + Power off the machine: With + this option, &product-name; also stops running the virtual + machine, but without saving its state. + + + + + This is equivalent to pulling the power plug on a real + computer without shutting it down properly. If you start + the machine again after powering it off, your OS will have + to reboot completely and may begin a lengthy check of its + virtual system disks. As a result, this should not + normally be done, since it can potentially cause data loss + or an inconsistent state of the guest system on disk. + + + + + As an exception, if your virtual machine has any snapshots, + see , you can use this option to + quickly restore the current + snapshot of the virtual machine. In that case, + powering off the machine will discard the current state and + any changes made since the previous snapshot was taken will + be lost. + + + + + + + The Discard button in the + &vbox-mgr; window discards a virtual machine's saved state. This + has the same effect as powering it off, and the same warnings + apply. + + +
+ +
+ + + + Using VM Groups + + + VM groups are groups of VMs that you can create as and when + required. You can manage and perform functions on them + collectively, as well as individually. + + + + The following figure shows VM groups displayed in VirtualBox + Manager. + + +
+ Groups of Virtual Machines + + + + + +
+ + + The following features are available for groups: + + + + + + + Create a group using &vbox-mgr;. Do one of the following: + + + + + + + Drag a VM on top of another VM. + + + + + + Select multiple VMs and select + Group from the + right-click menu. + + + + + + + + + Create and manage a group using the command line. Do one of + the following: + + + + + + + Create a group and assign a VM. For example: + + +VBoxManage modifyvm "vm01" --groups "/TestGroup" + + + This command creates a group TestGroup + and attaches the VM vm01 to that group. + + + + + + Detach a VM from the group, and delete the group if empty. + For example: + + +VBoxManage modifyvm "vm01" --groups "" + + + This command detaches all groups from the VM + vm01 and deletes the empty group. + + + + + + + + + Create multiple groups. For example: + + +VBoxManage modifyvm "vm01" --groups "/TestGroup,/TestGroup2" + + + This command creates the groups TestGroup + and TestGroup2, if they do not exist, and + attaches the VM vm01 to both of them. + + + + + + Create nested groups, having a group hierarchy. For example: + + +VBoxManage modifyvm "vm01" --groups "/TestGroup/TestGroup2" + + + This command attaches the VM vm01 to the + subgroup TestGroup2 of the + TestGroup group. + + + + + + Use &vbox-mgr; menu options to control and manage all the VMs + in a group. For example: + Start, + Pause, + Reset, + Close (save state, send + shutdown signal, poweroff), Discard + Saved State, Show in + Explorer, Sort. + + + + + +
+ + + + Snapshots + + + With snapshots, you can save a particular state of a virtual + machine for later use. At any later time, you can revert to that + state, even though you may have changed the VM considerably since + then. A snapshot of a virtual machine is thus similar to a machine + in Saved state, but there can be many of them, and these saved + states are preserved. + + + + To see the snapshots of a virtual machine, click on the machine + name in &vbox-mgr;. In the machine tools menu for the VM, click + Snapshots. The Snapshots tool is + displayed. + + +
+ Snapshots Tool, Showing Snapshot Properties + + + + + +
+ + + If you select multiple VMs in the machine list, all snapshots are + listed for each VM. + + + + Until you take a snapshot of the virtual machine, the list of + snapshots will be empty, except for the + Current State item. This item + represents the current point in the lifetime of the virtual + machine. + + + + The Snapshots window includes a toolbar, enabling you to perform + the following snapshot operations: + + + + + + + Take. Takes a snapshot of the + selected VM. See + . + + + + + + Delete. Removes a snapshot + from the list of snapshots. See + . + + + + + + Restore. Restores the VM + state to be the same as the selected snapshot. See + . + + + + + + Properties. Displays the + properties for the selected snapshot. The + Attributes tab is used to + specify a Name and Description for the snapshot. The + Information tab shows VM + settings for the snapshot. + + + + + + Clone. Displays the + Clone Virtual Machine wizard. + This enables you to create a clone of the VM, based on the + selected snapshot. + + + + + + Settings. Available for the + Current State snapshot only. Displays the + Settings window for the VM, + enabling you to make configuration changes. + + + + + + Discard. For a running VM, + discards the saved state for the VM and closes it down. + + + + + + Start. Start the VM. This + operation is available for the Current + State item. + + + + + + + + Taking, Restoring, and Deleting Snapshots + + + There are three operations related to snapshots, as follows: + + + + + + + Take a snapshot. This makes + a copy of the machine's current state, to which you can go + back at any given time later. + + + + + + + If your VM is running: + + + + Select Take Snapshot + from the Machine menu + in the VM window. + + + + The VM is paused while the snapshot is being created. + After snapshot creation, the VM continues to run as + normal. + + + + + + If your VM is in either the Saved or the Powered Off + state, as displayed next to the VM name in the machine + list: + + + + Display the Snapshots window and do one of the + following: + + + + + + + Click Take in the + Snapshots window toolbar. + + + + + + Right-click on the Current + State item in the list and select + Take. + + + + + + + + + + A dialog is displayed, prompting you for a snapshot name. + This name is purely for reference purposes, to help you + remember the state of the snapshot. For example, a useful + name would be "Fresh installation from scratch, no Guest + Additions", or "Service Pack 3 just installed". You can also + add a longer text description in the + Snapshot Description field. + + + + Your new snapshot will then appear in the snapshots list. + Underneath your new snapshot, you will see an item called + Current State, signifying + that the current state of your VM is a variation based on + the snapshot you took earlier. If you later take another + snapshot, you will see that they are displayed in sequence, + and that each subsequent snapshot is derived from an earlier + one. + + +
+ Snapshots List For a Virtual Machine + + + + + +
+ + + &product-name; imposes no limits on the number of snapshots + you can take. The only practical limitation is disk space on + your host. Each snapshot stores the state of the virtual + machine and thus occupies some disk space. See + for details on what is + stored in a snapshot. + +
+ + + + Restore a snapshot. In the + Snapshots window, select the snapshot you have taken and + click Restore in the + toolbar. By restoring a snapshot, you go back or forward in + time. The current state of the machine is lost, and the + machine is restored to the exact state it was in when the + snapshot was taken. + + + + + Restoring a snapshot will affect the virtual hard drives + that are connected to your VM, as the entire state of the + virtual hard drive will be reverted as well. This means + also that all files that have been created since the + snapshot and all other file changes will be + lost. In order to prevent such data loss while + still making use of the snapshot feature, it is possible + to add a second hard drive in + write-through mode using the + VBoxManage interface and use it to + store your data. As write-through hard drives are + not included in snapshots, they + remain unaltered when a machine is reverted. See + . + + + + + To avoid losing the current state when restoring a snapshot, + you can create a new snapshot before the restore operation. + + + + By restoring an earlier snapshot and taking more snapshots + from there, it is even possible to create a kind of + alternate reality and to switch between these different + histories of the virtual machine. This can result in a whole + tree of virtual machine snapshots. + + + + + + Delete a snapshot. This + does not affect the state of the virtual machine, but only + releases the files on disk that &product-name; used to store + the snapshot data, thus freeing disk space. To delete a + snapshot, select the snapshot name in the Snapshots window + and click Delete in the + toolbar. Snapshots can be deleted even while a machine is + running. + + + + + Whereas taking and restoring snapshots are fairly quick + operations, deleting a snapshot can take a considerable + amount of time since large amounts of data may need to be + copied between several disk image files. Temporary disk + files may also need large amounts of disk space while the + operation is in progress. + + + + + There are some situations which cannot be handled while a VM + is running, and you will get an appropriate message that you + need to perform this snapshot deletion when the VM is shut + down. + + + +
+ +
+ + + + Snapshot Contents + + + Think of a snapshot as a point in time that you have preserved. + More formally, a snapshot consists of the following: + + + + + + + The snapshot contains a complete copy of the VM settings, + including the hardware configuration, so that when you + restore a snapshot, the VM settings are restored as well. + For example, if you changed the hard disk configuration or + the VM's system settings, that change is undone when you + restore the snapshot. + + + + The copy of the settings is stored in the machine + configuration, an XML text file, and thus occupies very + little space. + + + + + + The complete state of all the virtual disks attached to the + machine is preserved. Going back to a snapshot means that + all changes that had been made to the machine's disks, file + by file and bit by bit, will be undone as well. Files that + were since created will disappear, files that were deleted + will be restored, changes to files will be reverted. + + + + Strictly speaking, this is only true for virtual hard disks + in "normal" mode. You can configure disks to behave + differently with snapshots, see + . In technical terms, it is + not the virtual disk itself that is restored when a snapshot + is restored. Instead, when a snapshot is taken, + &product-name; creates differencing images which contain + only the changes since the snapshot were taken. When the + snapshot is restored, &product-name; throws away that + differencing image, thus going back to the previous state. + This is both faster and uses less disk space. For the + details, which can be complex, see + . + + + + Creating the differencing image as such does not occupy much + space on the host disk initially, since the differencing + image will initially be empty and grow dynamically later + with each write operation to the disk. The longer you use + the machine after having created the snapshot, however, the + more the differencing image will grow in size. + + + + + + If you took a snapshot while the machine was running, the + memory state of the machine is also saved in the snapshot. + This is in the same way that memory can be saved when you + close a VM window. When you restore such a snapshot, + execution resumes at exactly the point when the snapshot was + taken. + + + + The memory state file can be as large as the memory size of + the VM and will therefore occupy considerable disk space. + + + + + + + +
+ + + + Virtual Machine Configuration + + + When you select a virtual machine from the list in the VirtualBox + Manager window, you will see a summary of that machine's settings + on the right. + + + + Clicking on Settings displays a + window, where you can configure many of the properties of the + selected VM. But be careful when changing VM settings. It is + possible to change all VM settings after installing a guest OS, + but certain changes might prevent a guest OS from functioning + correctly if done after installation. + + + + + The Settings button is disabled + while a VM is either in the Running or Saved state. This is + because the Settings window + enables you to change fundamental characteristics of the virtual + machine that is created for your guest OS. For example, the + guest OS may not perform well if half of its memory is taken + away. As a result, if the + Settings button is disabled, + shut down the current VM first. + + + + + &product-name; provides a wide range of parameters that can be + changed for a virtual machine. The various settings that can be + changed in the Settings window + are described in detail in . Even + more parameters are available when using the + VBoxManage command line interface. See + . + + + + + + + Removing and Moving Virtual Machines + + + You can remove a VM from &product-name; or move the VM and its + associated files, such as disk images, to another location on the + host. + + + + + + + Removing a VM. To remove a + VM, right-click on the VM in the &vbox-mgr; machine list and + select Remove. + + + + The confirmation dialog enables you to specify whether to only + remove the VM from the list of machines or to remove the files + associated with the VM. + + + + Note that the Remove menu + item is disabled while a VM is running. + + + + + + Moving a VM. To move a VM to + a new location on the host, right-click on the VM in the + &vbox-mgr;'s machine list and select + Move. + + + + The file dialog prompts you to specify a new location for the + VM. + + + + When you move a VM, &product-name; configuration files are + updated automatically to use the new location on the host. + + + + Note that the Move menu item + is disabled while a VM is running. + + + + You can also use the VBoxManage movevm + command to move a VM. See . + + + + + + + For information about removing or moving a disk image file from + &product-name;, see . + + + + + + + Cloning Virtual Machines + + + You can create a full copy or a linked copy of an existing VM. + This copy is called a clone. You might use a + cloned VM to experiment with a VM configuration, to test different + guest OS levels, or to back up a VM. + + + + The Clone Virtual Machine wizard + guides you through the cloning process. + + + + You can start the Clone Virtual Machine wizard in one of the + following ways: + + + + + + + Click the VM name in the machine list and then select + Clone from the + Machine menu. + + + + + + Click Clone in the + Snapshots window for the + selected VM. + + + + + + + + The Clone menu item is disabled + while a virtual machine is running. + + + + + The New Machine Name and Path + page is displayed. + + +
+ Clone Virtual Machine Wizard: New Machine Name and Path + + + + + +
+ + + The following clone options are available: + + + + + + + Name: A name for the cloned + machine. + + + + + + Path: Choose a location for + the cloned virtual machine, otherwise &product-name; uses the + default machines folder. + + + + + + MAC Address Policy: Specifies + whether to retain network card MAC addresses when cloning the + VM. + + + + For example, the Generate New MAC + Addresses For All Network Adapters value assigns a + new MAC address to each network card during cloning. This is + the default setting. This is the best option when both the + source VM and the cloned VM must operate on the same network. + Other values enable you to retain the existing MAC addresses + in the cloned VM. + + + + + + Keep Disk Names: Retains the + disk image names when cloning the VM. + + + + + + Keep Hardware UUIDs: Retains + the hardware universally unique identifiers (UUIDs) when + cloning the VM. + + + + + + + Click Next. The + Clone Type page is displayed. + + +
+ Clone Virtual Machine Wizard: Clone Type + + + + + +
+ + + The Clone Type option specifies + whether to create a clone that is linked to the source VM or to + create a fully independent clone: + + + + + + + Full Clone: Copies all + dependent disk images to the new VM folder. A full clone can + operate fully without the source VM. + + + + + + Linked Clone: Creates new + differencing disk images based on the source VM disk images. + If you select the current state of the source VM as the clone + point, &product-name; creates a new snapshot. + + + + + + + (Optional) Click Next. The + Snapshots page is displayed. + + + + + The Snapshots page is only displayed for machines that have + snapshots and the selected clone type is + Full Clone. + + + +
+ Clone Virtual Machine Wizard: Snapshots + + + + + +
+ + + You use this page to select which parts of the snapshot tree to + include in the clone. The available options are as follows: + + + + + + + Current Machine State: Clones + the current state of the VM. Snapshots are not included. + + + + + + Everything: Clones the + current machine state and all its snapshots. + + + + + + + Click Finish to start the clone + operation. + + + + The duration of the clone operation depends on the size and number + of attached disk images. In addition, the clone operation saves + all the differencing disk images of a snapshot. + + + + You can also use the VBoxManage clonevm command + to clone a VM. See . + + +
+ + + + Importing and Exporting Virtual Machines + + + &product-name; can import and export virtual machines in the + following formats: + + + + + + + Open Virtualization Format + (OVF). This is the industry-standard format. See + . + + + + + + Cloud service formats. Export + to and import from cloud services such as &oci; is supported. + See . + + + + + + + + About the OVF Format + + + OVF is a cross-platform standard supported by many + virtualization products which enables the creation of ready-made + virtual machines that can then be imported into a hypervisor + such as &product-name;. &product-name; makes OVF import and + export easy to do, using &vbox-mgr; or the command-line + interface. + + + + Using OVF enables packaging of virtual + appliances. These are disk images, together with + configuration settings that can be distributed easily. This way + one can offer complete ready-to-use software packages, including + OSes with applications, that need no configuration or + installation except for importing into &product-name;. + + + + + The OVF standard is complex, and support in &product-name; is + an ongoing process. In particular, no guarantee is made that + &product-name; supports all appliances created by other + virtualization software. For a list of known limitations, see + . + + + + + Appliances in OVF format can appear in the following variants: + + + + + + + They can come in several files, as one or several disk + images, typically in the widely-used VMDK format. See + . They also include a textual + description file in an XML dialect with an + .ovf extension. These files must then + reside in the same directory for &product-name; to be able + to import them. + + + + + + Alternatively, the above files can be packed together into a + single archive file, typically with an + .ova extension. Such archive files use + a variant of the TAR archive format and can therefore be + unpacked outside of &product-name; with any utility that can + unpack standard TAR files. + + + + + + + + OVF cannot describe snapshots that were taken for a virtual + machine. As a result, when you export a virtual machine that + has snapshots, only the current state of the machine will be + exported. The disk images in the export will have a + flattened state identical to the current + state of the virtual machine. + + + + + + + + Importing an Appliance in OVF Format + + + The following steps show how to import an appliance in OVF + format. + + + + + + + Double-click on the OVF or OVA file. + + + + &product-name; creates file type associations automatically + for any OVF and OVA files on your host OS. + + + + The Appliance Settings page + of the Import Virtual + Appliance wizard is shown. + + +
+ Import Virtual Appliance Wizard: Appliance Settings + + + + + +
+
+ + + + The Appliance Settings page + shows the VMs described in the OVF or OVA file and enables + you to change the VM settings. + + + + By default, membership of VM groups is preserved on import + for VMs that were initially exported from &product-name;. + You can change this behavior by using the + Primary Group setting for + the VM. + + + + The following global settings apply to all of the VMs that + you import: + + + + + + + Base Folder: Specifies + the directory on the host in which to store the imported + VMs. + + + + If an appliance has multiple VMs, you can specify a + different directory for each VM by editing the + Base Folder setting for + the VM. + + + + + + MAC Address Policy: + Reinitializes the MAC addresses of network cards in your + VMs prior to import, by default. You can override the + default behavior and preserve the MAC addresses on + import. + + + + + + Import Hard Drives as + VDI: Imports hard drives in the VDI format + rather than in the default VMDK format. + + + + + + + + + Click Finish to import the + appliance. + + + + &product-name; copies the disk images and creates local VMs + with the settings described on the + Appliance Settings page. + The imported VMs are shown in the list of VMs in VirtualBox + Manager. + + + + Because disk images are large, the VMDK images that are + included with virtual appliances are shipped in a compressed + format that cannot be used directly by VMs. So, the images + are first unpacked and copied, which might take several + minutes. + + + +
+ + + You can use the VBoxManage import command to + import an appliance. See . + + +
+ + + + Exporting an Appliance in OVF Format + + + The following steps show how to export an appliance in OVF + format. + + + + + + + Select File, + Export Appliance to + display the Export Virtual + Appliance wizard. + + + + On the initial Virtual + Machines page, you can combine several VMs into + an OVF appliance. + + + + Select one or more VMs to export, and click + Next. + + + + + + The Format Settings page + enables you to configure the following settings: + + + + + + + Format: Selects the + Open Virtualization + Format value for the output files. + + + + The &oci; value exports + the appliance to &oci;. See + . + + + + + + File: Selects the + location in which to store the exported files. + + + + + + MAC Address Policy: + Specifies whether to retain or reassign network card MAC + addresses on export. + + + + + + Write Manifest File: + Enables you to include a manifest file in the exported + archive file. + + + + + + Include ISO Image + Files: Enables you to include ISO image files + in the exported archive file. + + + + + + + + + Click Next to show the + Appliance Settings page. + + + + You can edit settings for the virtual appliance. For + example, you can change the name of the virtual appliance or + add product information, such as vendor details or license + text. + + + + Double-click the appropriate field to change its value. + + + + + + Click Finish to begin the + export process. Note that this operation might take several + minutes. + + + + + + + You can use the VBoxManage export command to + export an appliance. See . + + + + +
+ + + + Integrating with &oci; + + + This section describes how to use the features of &product-name; + to integrate with &oci;. + + + + Integrating with &oci; involves the following steps: + + + + + + + Prepare for &oci; + Integration. Before using &product-name; with &oci; + there are some initial configuration steps you may need to do. + See . + + + + + + Use &product-name; with + &oci;. + describes how you can use &product-name; with &oci;. + + + + + + + + Preparing for &oci; Integration + + + Perform the following configuration steps before using + &product-name; to integrate with your &oci; account. + + + + + + + Install the Extension Pack. + Cloud integration features are only available when you + install the &product-name; Extension Pack. See + . + + + + + + Create a key pair. Generate + an API signing key pair that is used for API requests to + &oci;. See . + + + + Upload the public key of the key pair from your client + device to the cloud service. See + . + + + + + + Create a cloud profile. The + cloud profile contains resource identifiers for your cloud + account, such as your user OCID, and details of your key + pair. See . + + + + + + + + + + Creating an API Signing Key Pair + + + + + To use the cloud integration features of &product-name;, you + must generate an API signing key pair that is used for API + requests to &oci;. + + + + Your API requests are signed with your private key, and &oci; + uses the public key to verify the authenticity of the request. + You must upload the public key to the &oci; Console. + + + + + This key pair is not the same SSH key that you use to access + compute instances on &oci;. + + + + + + + + (Optional) Create a .oci directory to + store the key pair. + + +$ mkdir ~/.oci + + + The key pair is usually installed in the + .oci folder in your home directory. For + example, ~/.oci on a Linux system. + + + + + + Generate the private key. + + + + Use the openssl command. + + + + + + + To generate a private key with a passphrase: + + +$ openssl genrsa -out ~/.oci/oci_api_key.pem -aes128 2048 + + + + + To generate a private key without a passphrase: + + +$ openssl genrsa -out ~/.oci/oci_api_key.pem 2048 + + + + + + + + Change permissions for the private key. + + +$ chmod 600 ~/.oci/oci_api_key.pem + + + Generate the public key. + + +$ openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem + + + + + + + + + Uploading the Public Key to &oci; + + + Use the following steps to upload your public key to &oci;. + + + + + + + Log in to the &oci; Console. + + + + + + Display the User Settings + page. + + + + Click Profile, + User Settings. + + + + + + Display your current API signing keys. + + + + Click Resources, + API Keys. + + + + + + Upload the public key. + + + + Click Add Public Key. + + + + The Add Public Key dialog + is displayed. + + +
+ Upload Public Key Dialog in &oci; Console + + + + + +
+ + + Select one of the following options: + + + + + + + Choose Public Key File. + This option enables you to browse to the public key file + on your local hard disk. + + + + + + Paste Public Keys. This + option enables you to paste the contents of the public + key file into the window in the dialog box. + + + + + + + Click Add to upload the + public key. + +
+ +
+ +
+ + + + Creating a Cloud Profile + + + &product-name; uses a cloud profile to + connect to &oci;. A cloud profile is a text file that contains + details of your key files and Oracle Cloud Identifier (OCID) + resource identifiers for your cloud account, such as the + following: + + + + + + + Fingerprint of the public + key. To obtain the fingerprint, you can use the + openssl command: + + +$ openssl rsa -pubout -outform DER -in ~/.oci/oci_api_key.pem | openssl md5 -c + + + + + Location of the private key on the + client device. Specify the full path to the + private key. + + + + + + (Optional) Passphrase for the private + key. This is only required if the key is + encrypted. + + + + + + Region. Shown on the &oci; + Console. Click + Administration, + Tenancy Details. + + + + + + Tenancy OCID. Shown on the + &oci; Console. Click + Administration, + Tenancy Details. + + + + A link enables you to copy the Tenancy OCID. + + + + + + Compartment OCID. Shown on + the &oci; Console. Click + Identity, + Compartments. + + + + A link enables you to copy the Compartment OCID. + + + + + + User OCID. Shown on the + &oci; Console. Click + Profile, + User Settings. + + + + A link enables you to copy the User OCID. + + + + + + + You can create a cloud profile in the following ways: + + + + + + + Automatically, by using the Cloud + Profile Manager. See + . + + + + The Cloud Profile Manager is a &vbox-mgr; tool that enables + you to create, edit, and manage cloud profiles for your + cloud service accounts. + + + + + + Automatically, by using the VBoxManage + cloudprofile command. See + . + + + + + + Manually, by creating an oci_config + file in your &product-name; global configuration directory. + For example, this is + $HOME/.config/VirtualBox/oci_config on + a Linux host. + + + + + + Manually, by creating a config file in + your &oci; configuration directory. For example, this is + $HOME/.oci/config on a Linux host. + + + + This is the same file that is used by the &oci; command line + interface. + + + + &product-name; automatically uses the + config file if no cloud profile file is + present in your global configuration directory. + Alternatively, you can import this file manually into the + Cloud Profile Manager. + + + + + + + + + + Using the Cloud Profile Manager + + + This section describes how to use the Cloud Profile Manager to + create a cloud profile. + + + + To open the Cloud Profile Manager click + File, + Cloud Profile Manager in + &vbox-mgr;. + + +
+ The Cloud Profile Manager + + + + + +
+ + + You can use the Cloud Profile Manager in the following ways: + + + + + + + To create a new cloud profile automatically + + + + + + To create a cloud profile by importing settings from your + &oci; configuration file. + + + + + + + Perform the following steps to create a new cloud profile + automatically, using the Cloud Profile Manager: + + + + + + + Click the Add icon and + specify a Name for the + profile. + + + + + + Click Properties and + specify the following property values for the profile: + + + + + + + Compartment OCID + + + + + + Fingerprint of the public key + + + + + + Location of the private key on the client device + + + + + + + + Region OCID + + + + + + Tenancy OCID + + + + + + User OCID + + + + + + + Some of these are settings for your &oci; account, which you + can view from the &oci; Console. + + + + + + (Optional) If you are using the cloud profile to connect to + cloud virtual machines, select the + Show VMs check box. + + + + This creates a new subgroup of the + OCI group in &vbox-mgr;. + See . + + + + + + Click Apply to save your + changes. + + + + The cloud profile settings are saved to the + oci_config file in your &product-name; + global settings directory. + + + + + + + Perform the following steps to import an existing &oci; + configuration file into the Cloud Profile Manager: + + + + + + + Ensure that a config file is present in + your &oci; configuration directory. For example, this is + $HOME/.oci/config on a Linux host. + + + + + + Click the Import icon to + open a dialog that prompts you to import cloud profiles from + external files. + + + + + This action overwrites any cloud profiles that are in your + &product-name; global settings directory. + + + + + + + Click Import. + + + + Your cloud profile settings are saved to the + oci_config file in your &product-name; + global settings directory. + + + + + + Click Properties to show + the cloud profile settings. + + + + Double-click on the appropriate field to change the value. + + + + + + Click Apply to save your + changes. + + + + + +
+ + + + Using &product-name; With &oci; + + + This section describes how you can use &product-name; with &oci; + to do the following tasks: + + + + + + + Create, add, and manage &oci; cloud instances using + &vbox-mgr;. See . + + + + + + Export an &product-name; VM to &oci;. See + . + + + + + + Import a cloud instance into &product-name;. See + . + + + + + + Connect from a local VM to an &oci; cloud subnet. See + . + + + + + + Use the VBoxManage commands to integrate + with &oci; and perform cloud operations. See + . + + + + + + + + + + Using Cloud Virtual Machines + + + A cloud virtual machine (cloud VM) is a + type of VM that represents an instance on a cloud service. Cloud + VMs are shown in the machine list in &vbox-mgr;, in the same way + as local VMs are. + + + + By using cloud VMs you can create, manage, and control your + &oci; instances from &vbox-mgr;. + + + + + Cloud VMs do not install, export, or import instances to the + &product-name; host. All operations are done remotely on the + cloud service. + + + +
+ Cloud VMs, Shown in &vbox-mgr; + + + + + +
+ + + Cloud VMs can be used to do the following tasks in &oci;: + + + + + + + Create a new &oci; + instance. See . + + + + + + Use an existing &oci; + instance. See . + + + + + + Configure an &oci; + instance. You can change settings for the + instance, such as display name and shape. See + . + + + + + + Control an &oci; instance. + Stop, start, and terminate the instance. See + + + + + + + Create a console connection to an + &oci; instance. See + . + + + + + + + + About the OCI VM Group + + + All cloud VMs are shown in the machine list in &vbox-mgr;, in + a special VM group called + OCI. + + + + Cloud VMs are further grouped according to the cloud profile + used to connect to them. The cloud profile identifies the user + and compartment for the cloud VM and includes details of the + key pair used to connect to cloud instances. See + . + + +
+ OCI Group, Containing Cloud VMs + + + + + +
+ + + All cloud profiles registered with &product-name; are listed + automatically in the OCI group. + + + + To enable or disable listing of cloud VMs in &vbox-mgr; for a + specific cloud profile, do the following: + + + + Display the Cloud Profile + Manager and select or deselect the + List VMs check box for each + cloud profile. + + +
+ + + + Creating a New Cloud VM + + + When you create a new cloud VM, a new + &oci; instance is created and associated with the cloud VM. + + + + Perform the following steps to create a new cloud VM: + + + + + + + Click on a cloud profile in the + OCI group. + + + + The cloud VMs for the selected cloud profile are + displayed. + + + + + + Select Group, + New Machine. + + + + The Create Cloud Virtual + Machine wizard is displayed. + + +
+ Create Cloud Virtual Machine Wizard + + + + + +
+
+ + + + On the initial page, configure the following settings for + the new cloud VM: + + + + + + + Location: The cloud + service provider that will host the new instance. + Select &oci;. + + + + + + Profile: The cloud + profile used to connect to the new instance. Select + from the available cloud profiles. + + + + + + Source: The image + that the new instance is based on. Choose from the + available images and boot volumes. + + + + + + + + + Click Next to display the + Cloud Virtual Machine + Settings page. + + + + You can use this page to change the default settings for + the new &oci; instance, such as the display name, shape, + and networking configuration. + + + + To add an SSH key to the instance, click the + SSH Authorised Keys field + and paste the public key into the displayed dialog. + + + + + + Click Finish to create a + new &oci; instance using the selected image or boot + volume. The new instance is started automatically. + + + + The new cloud VM is shown in the + OCI group in &vbox-mgr;. + + + +
+ +
+ + + + Adding a Cloud VM + + + When you add a cloud VM, an existing + &oci; instance is associated with the cloud VM. You can only + add one cloud VM for each instance. + + + + Perform the following steps to add a cloud VM: + + + + + + + Click on a cloud profile in the + OCI group. + + + + The cloud VMs for the selected cloud profile are + displayed. + + + + + + Select Group, + Add Machine. + + + + The Add Cloud Virtual + Machine wizard is displayed. + + +
+ Add Cloud Virtual Machine Wizard + + + + + +
+
+ + + + Configure the following settings: + + + + + + + Source: The cloud + service provider that hosts the instance used for the + cloud VM. Select + &oci;. + + + + + + Profile: The cloud + profile used to connect to the running instance. + Select from the available cloud profiles. + + + + + + Instances: The + instance to use for the cloud VM. Choose from the + available instances on your cloud service. + + + + + + + + + Click Finish to add a + cloud VM based on the selected instance. + + + + A cloud VM with the same name as the instance is added to + the OCI group in + &vbox-mgr;. + + + + + + (Optional) To change the display name for the instance, + click Settings and edit + the Display Name field. + + + + The cloud VM name in &vbox-mgr; is updated automatically. + + + +
+ +
+ + + + Changing Settings for a Cloud VM + + + Select the cloud VM in &vbox-mgr; and click + Settings. + + + + + + + For a new cloud VM, you can change + many settings for the &oci; instance, such as the display + name, shape, and disk size. + + + + + + When you add a cloud VM based on an + existing &oci; instance you can only change the display + name. + + + + + + + + + + Controlling a Cloud VM + + + You can use &vbox-mgr; to control a cloud VM as follows: + + + + + + + Start. Use the + Start button in the + &vbox-mgr; toolbar. + + + + + + Stop. Right-click on the + cloud VM name, to display the + Close menu. Options to + shut down and power off the cloud VM are available. + + + + + + Terminate. Use the + Terminate button in the + &vbox-mgr; toolbar. + + + + + This action deletes the instance from &oci;. + + + + + + + + When you control a cloud VM in &vbox-mgr; the machine list is + updated automatically with the current instance state, such as + Stopped or + Running. + + + + When you control an instance using the &oci; console, + &vbox-mgr; updates the status for the corresponding cloud VM + automatically. + + + + + + + Removing a Cloud VM + + + You can use &vbox-mgr; to remove a cloud VM as follows: + + + + Right-click on the cloud VM name and select + Remove. + + + + + + + Click Remove Only to + remove the cloud VM from the machine list in VirtualBox + Manager. + + + + + + Click Delete Everything + to remove the cloud VM from &vbox-mgr; and also to delete + the &oci; instance and any associated boot volumes. + + + + + + + + + + Creating an Instance Console Connection for a Cloud VM + + + To create a instance console connection, the cloud VM must be + in Running state. + + + + + + + Right-click on the cloud VM name and select + Console, + Create Connection. + + + + + + The Public Key dialog is + displayed. Paste the public key used for the instance + connection into the dialog and click + OK. + + + + By default, either the first entry in your SSH keys folder + or the public key used for your previous instance console + connection is used. + + + + + + Click Connect to connect + to the instance. An instance console is displayed + automatically on the host. + + + + + + (Optional) Click Show Log + to display log messages for the instance console + connection. + + + + + + + See the &oci; documentation for details about how you can use + an instance console connection to troubleshoot instance + problems. + + + + +
+ + + + Exporting an Appliance to &oci; + + + &product-name; supports the export of VMs to an &oci; service. + The exported VM is stored on &oci; as a custom Linux image. You + can configure whether a cloud instance is created and started + after the export process has completed. + + + + + Before you export a VM to &oci;, you must prepare the VM as + described in . + + + + + Use the following steps to export a VM to &oci;: + + + + + + + Select File, + Export Appliance to open + the Export Virtual + Appliance wizard. + + + + Select a VM to export and click + Next to display the + Format Settings page. + + + + + + From the Format drop-down + list, select &oci;. + + + + In the Profile drop-down + list, select the cloud profile used for your &oci; account. + + +
+ Export Virtual Appliance Wizard: Format Settings + + + + + +
+ + + In the Machine Creation + field, select an option to configure settings for the cloud + instance created when you export to &oci;. The options + enable you to do one of the following: + + + + + + + Configure settings for the cloud instance + after you have finished exporting + the VM. + + + + + + Configure settings for the cloud instance + before you start to export the VM. + + + + + + Do not create a cloud instance when you export the VM. + + + + + + + Click Next to make an API + request to the &oci; service and open the + Appliance Settings page. + +
+ + + + (Optional) Edit storage settings used for the exported + virtual machine in &oci;. You can change the following + settings: + + + + + + + The name of the bucket used to store the exported files. + + + + + + Whether to store the custom image in &oci;. + + + + + + The display name for the custom image in &oci;. + + + + + + The launch mode for the custom image. + + + + Paravirtualized mode + gives improved performance and should be suitable for + most &product-name; VMs. + + + + Emulated mode is + suitable for legacy OS images. + + + + + + + Click Finish to continue. + + + + + + (Optional) Depending on the selection in the + Machine Creation field, the + Appliance Settings page may + be displayed before or after export. This screen enables you + to configure settings for the cloud instance, such as Shape + and Disk Size. + + + + Click Finish. The VM is + exported to &oci;. + + + + Depending on the Machine + Creation setting, a cloud instance may be started + after upload to &oci; is completed. + + + + + + Monitor the export process by using the &oci; Console. + + + +
+ + + You can also use the VBoxManage export + command to export a VM to &oci;. See + . + + + + + Preparing a VM for Export to &oci; + + + &oci; provides the option to import a custom Linux image. + Before an &product-name; image can be exported to &oci;, the + custom image needs to be prepared to ensure that instances + launched from the custom image can boot correctly and that + network connections will work. This section provides advice on + how to prepare a Linux image for export from &product-name;. + + + + The following list shows some tasks to consider when preparing + an Oracle Linux VM for export: + + + + + + + Use DHCP for network + addresses. Configure the VM to use a DHCP + server to allocate network addresses, rather than using a + static IP address. The &oci; instance will then be + allocated an IP address automatically. + + + + + + Do not specify a MAC + address. The network interface configuration + for the VM must not specify the MAC address. + + + + Remove the HWADDR setting from the + /etc/sysconfig/ifcfg-devicename + network script. + + + + + + Disable persistent network device + naming rules. This means that the &oci; + instance will use the same network device names as the VM. + + + + + + + Change the GRUB kernel parameters. + + + + Add net.ifnames=0 and + biosdevname=0 as kernel parameter + values to the GRUB_CMDLINE_LINUX + variable. + + + + + + Update the GRUB configuration. + + +# grub2-mkconfig -o /boot/grub2/grub.cfg + + + + + Disable any udev rules for network + device naming. + + + + For example, if an automated udev + rule exists for net-persistence: + + +# cd /etc/udev/rules.d +# rm -f 70-persistent-net.rules +# ln -s /dev/null /etc/udev/rules.d/70-persistent-net.rules + + + + + + + + Enable the serial + console. This enables you to troubleshoot the + instance when it is running on &oci;. + + + + + + + Edit the /etc/default/grub file, + as follows: + + + + + + + Remove the resume setting from + the kernel parameters. This setting slows down + boot time significantly. + + + + + + Replace GRUB_TERMINAL="gfxterm" + with GRUB_TERMINAL="console + serial". This configures use of the + serial console instead of a graphical terminal. + + + + + + Add GRUB_SERIAL_COMMAND="serial --unit=0 + --speed=115200". This configures the + serial connection. + + + + + + Add console=tty0 + console=ttyS0,115200 to the + GRUB_CMDLINE_LINUX variable. + This adds the serial console to the Linux kernel + boot parameters. + + + + + + + + + Regenerate the GRUB configuration. + + +# grub2-mkconfig -o /boot/grub2/grub.cfg + + + + + To verify the changes, reboot the machine and run the + dmesg command to look for the + updated kernel parameters. + + +# dmesg |grep console=ttyS0 + + + + + + + + Enable paravirtualized device + support. You do this by adding the + virtio drivers to the + initrd for the VM. + + + + + + + This procedure works only on machines with a Linux + kernel of version 3.4 or later. Check that the VM is + running a supported kernel: + + +# uname -a + + + + + Use the dracut tool to rebuild + initrd. Add the + qemu module, as follows: + + +# dracut –-logfile /var/log/Dracut.log --force --add qemu + + + + + Verify that the virtio drivers are + now present in initrd. + + + # lsinitrd |grep virtio + + + + + + + + + For more information about importing a custom Linux image into + &oci;, see also: + + + + + + + + +
+ + + + Importing an Instance from &oci; + + + Perform the following steps to import a cloud instance from + &oci; into &product-name;: + + + + + + + Select File, + Import Appliance to open + the Import Virtual + Appliance wizard. + + + + In the Source drop-down + list, select &oci;. + + + + In the Profile drop-down + list, select the cloud profile for your &oci; account. + + + + Choose the required cloud instance from the list in the + Machines field. + + + + Click Next to make an API + request to the &oci; service and display the + Appliance Settings page. + + + + + + (Optional) Edit settings for the new local virtual machine. + + + + For example, you can edit the VM name and description. + + +
+ Import Cloud Instance Wizard: Appliance Settings + + + + + +
+ + + Click Finish to import the + instance from &oci;. + +
+ + + + Monitor the import process by using the &oci; Console. + + + +
+ + + You can also use the VBoxManage import + command to import an instance from &oci;. See + . + + + + + Importing an Instance: Overview of Events + + + The following describes the sequence of events when you import + an instance from &oci;. + + + + + + + A custom image is created from the boot volume of the + instance. + + + + + + The custom image is exported to an &oci; object and is + stored using Object Storage in the bucket specified by the + user. + + + + + + The &oci; object is downloaded to the local host. The + object is a TAR archive which contains a boot volume of + the instance in QCOW2 format and a JSON file containing + metadata related to the instance. + + + + + + The boot volume of the instance is extracted from the + archive and a new VMDK image is created by converting the + boot volume into the VMDK format. The VMDK image is + registered with &product-name;. + + + + + + A new VM is created using the VMDK image for the cloud + instance. + + + + By default, the new VM is not started after import from + &oci;. + + + + + + The downloaded TAR archive is deleted after a successful + import. + + + + + + + +
+ + + + Using a Cloud Network + + + A cloud network is a type of network that can be used for + connections from a local VM to a remote &oci; cloud instance. + + + + To create and use a cloud network, do the following: + + + + + + + Set up a virtual cloud network on &oci;. + + + + The following steps create and configure a virtual cloud + network (VCN) on &oci;. The VCN is used to tunnel network + traffic across the cloud. + + + + + + + Ensure that you have a cloud profile for connecting to + &oci;. See . + + + + + + Run the following VBoxManage cloud + command: + + +VBoxManage cloud --provider="OCI" --profile="vbox-oci" network setup + + + where vbox-oci is the name of your + cloud profile. + + + + Other options are available for the VBoxManage + cloud network setup command, to enable you to + configure details for the VCN. For example, you can + configure the operating system used for the cloud + gateway instance and the IP address range used by the + tunneling network. See + . + + + + For best results, use an Oracle Linux 7 instance for the + cloud gateway. This is the default option. + + + + + + + + + Register the new cloud network with &product-name;. + + + + Use the Cloud Networks tab + in the Network Manager + tool. See + . + + + + + + Add cloud network adaptors to the local VMs that will use + the cloud network. See . + + + + + + + + + + Using VBoxManage Commands With &oci; + + + This section includes some examples of how + VBoxManage commands can be used to integrate + with &oci; and perform common cloud operations. + + + + Creating a Cloud Profile + + + + To create a cloud profile called vbox-oci: + + +VBoxManage cloudprofile --provider "OCI" --profile="vbox-oci" add \ +--clouduser="ocid1.user.oc1..." --keyfile="/home/username/.oci/oci_api_key.pem" \ +--tenancy="ocid1.tenancy.oc1..." --compartment="ocid1.compartment.oc1..." --region="us-ashburn-1" + + + + The new cloud profile is added to the + oci_config file in your &product-name; + global configuration directory. For example, this is + $HOME/.VirtualBox/oci_config on a Windows + host. + + + + Listing Cloud Instances + + + + To list the instances in your &oci; compartment: + + +VBoxManage cloud --provider="OCI" --profile="vbox-oci" list instances + + + + Exporting an &product-name; VM to the + Cloud + + + + To export a VM called myVM and create a cloud + instance called myVM_Cloud: + + +VBoxManage export myVM --output OCI:// --cloud 0 --vmname myVM_Cloud \ +--cloudprofile "vbox-oci" --cloudbucket myBucket \ +--cloudshape VM.Standard2.1 --clouddomain US-ASHBURN-AD-1 --clouddisksize 50 \ +--cloudocivcn ocid1.vcn.oc1... --cloudocisubnet ocid1.subnet.oc1... \ +--cloudkeepobject true --cloudlaunchinstance true --cloudpublicip true + + + + Importing a Cloud Instance Into + &product-name; + + + + To import a cloud instance and create an &product-name; VM + called oci_Import: + + +VBoxManage import OCI:// --cloud --vmname oci_Import --memory 4000 +--cpus 3 --ostype FreeBSD_64 --cloudprofile "vbox-oci" +--cloudinstanceid ocid1.instance.oc1... --cloudbucket myBucket + + + + Creating a New Cloud Instance From a + Custom Image + + + + To create a new cloud instance from a custom image on &oci;: + + +VBoxManage cloud --provider="OCI" --profile="vbox-oci" instance create \ +--domain-name="oraclecloud.com" --image-id="ocid1.image.oc1..." --display-name="myInstance" \ +--shape="VM.Standard2.1" --subnet="ocid1.subnet.oc1..." + + + Terminating a Cloud Instance + + + + To terminate an instance in your compartment on &oci;: + + +VBoxManage cloud --provider="OCI" --profile="vbox-oci" instance terminate \ +--id="ocid1.instance.oc1..." + + + For more details about the available commands for cloud + operations, see . + + + + +
+ + + + Preferences + + + The Preferences window offers a selection of settings, which apply + to all virtual machines of the current user. + + + + To display the Preferences window, do either of the following: + + + + + + + Select File, + Preferences. + + + + + + Click Preferences on the + Welcome screen in &vbox-mgr;. + + + + + + + The following settings are available: + + + + + + + General. Enables you to + specify the default folder or directory for VM files, and the + VRDP Authentication Library. + + + + + + Input. Enables you to specify + keyboard shortcuts, such as the Host + key. This is the key that toggles whether the + cursor is in the focus of the VM or the Host OS windows, see + . The Host key is also used + to trigger certain VM actions, see + . + + + + + + Update. Enables you to + specify various settings for Automatic Updates. + + + + + + Language. Enables you to + specify the language used for menus, labels, and text in + &vbox-mgr;. + + + + + + Display. Enables you to + specify the screen resolution, and its width and height. A + default scale factor can be specified for all guest screens. + + + + + + Proxy. Enables you to + configure an HTTP Proxy Server. + + + + + + Interface. Enables you to + select a color theme for the &vbox-mgr; user interface. + + + + + This setting is only available on Windows host platforms. + + + + + + + + + + + Alternative Front-Ends + + + As briefly mentioned in , + &product-name; has a very flexible internal design that enables + you to use multiple interfaces to control the same virtual + machines. For example, you can start a virtual machine with the + &vbox-mgr; window and then stop it from the command line. With + &product-name;'s support for the Remote Desktop Protocol (RDP), + you can even run virtual machines remotely on a headless server + and have all the graphical output redirected over the network. + + + + The following front-ends are shipped in the standard + &product-name; package: + + + + + + + VirtualBox. This is the + &vbox-mgr;, a graphical user interface that uses the Qt + toolkit. This interface is described throughout this manual. + While this is the simplest and easiest front-end to use, some + of the more advanced &product-name; features are not included. + + + + + + VBoxManage. A command-line + interface for automated and detailed control of every aspect + of &product-name;. See + . + + + + + + VBoxHeadless. A front-end + that produces no visible output on the host at all, but can + act as a RDP server if the VirtualBox Remote Desktop Extension + (VRDE) is installed and enabled for the VM. As opposed to the + other graphical interfaces, the headless front-end requires no + graphics support. This is useful, for example, if you want to + host your virtual machines on a headless Linux server that has + no X Window system installed. See + . + + + + + + + If the above front-ends still do not satisfy your particular + needs, it is possible to create yet another front-end to the + complex virtualization engine that is the core of &product-name;, + as the &product-name; core neatly exposes all of its features in a + clean API. See . + + + + + + + Soft Keyboard + + + &product-name; provides a soft keyboard that + enables you to input keyboard characters on the guest. A soft + keyboard is an on-screen keyboard that can be used as an + alternative to a physical keyboard. See + for details of how to use the + soft keyboard. + + + + + For best results, ensure that the keyboard layout configured on + the guest OS matches the keyboard layout used by the soft + keyboard. &product-name; does not do this automatically. + + + +
+ Soft Keyboard in a Guest Virtual Machine + + + + + +
+ + + The soft keyboard can be used in the following scenarios: + + + + + + + When the physical keyboard on the host is not the same as the + keyboard layout configured on the guest. For example, if the + guest is configured to use an international keyboard, but the + host keyboard is US English. + + + + + + To send special key combinations to the guest. Note that some + common key combinations are also available in the + Input, + Keyboard menu of the guest VM + window. See . + + + + + + For guests in kiosk mode, where a physical keyboard is not + present. + + + + + + When using nested virtualization, the soft keyboard provides a + method of sending key presses to a guest. + + + + + + + By default, the soft keyboard includes some common international + keyboard layouts. You can copy and modify these to meet your own + requirements. See . + + + + + Using the Soft Keyboard + + + + + + Display the soft keyboard. + + + + In the guest VM window, select + Input, + Keyboard, + Soft Keyboard. + + + + + + Select the required keyboard layout. + + + + The name of the current keyboard layout is displayed in the + toolbar of the soft keyboard window. This is the previous + keyboard layout that was used. + + + + Click the Layout List icon + in the toolbar of the soft keyboard window. The + Layout List window is + displayed. + + + + Select the required keyboard layout from the entries in the + Layout List window. + + + + The keyboard display graphic is updated to show the + available input keys. + + + + + + Use the soft keyboard to enter keyboard characters on the + guest. + + + + + + + Modifier keys such as Shift, Ctrl, and Alt are available + on the soft keyboard. Click once to select the modifier + key, click twice to lock the modifier key. + + + + The Reset the Keyboard and Release + All Keys icon can be used to release all + pressed modifier keys, both on the host and the guest. + + + + + + To change the look of the soft keyboard, click the + Settings icon in the + toolbar. You can change colors used in the keyboard + graphic, and can hide or show sections of the keyboard, + such as the NumPad or multimedia keys. + + + + + + + + + + + + + Creating a Custom Keyboard Layout + + + You can use one of the supplied default keyboard layouts as the + starting point to create a custom keyboard layout. + + + + + To permananently save a custom keyboard layout, you must save + it to a file. Otherwise, any changes you make are discarded + when you close down the Soft + Keyboard window. + + + + Custom keyboard layouts that you save are stored as an XML + file on the host, in the keyboardLayouts + folder in the global configuration data directory. For + example, in + $HOME/.config/VirtualBox/keyboardLayouts + on a Linux host. + + + + + + + + Display the Layout List. + + + + Click the Layout List icon + in the toolbar of the soft keyboard window. + + + + + + Make a copy of an existing keyboard layout. + + + + Highlight the required layout and click the + Copy the Selected Layout + icon. + + + + A new layout entry with a name suffix of + -Copy is created. + + + + + + Edit the new keyboard layout. + + + + Highlight the new layout in the Layout + List and click the Edit the + Selected Layout icon. + + + + Enter a new name for the layout. + + + + Edit keys in the new layout. Click on the key that you want + to edit and enter new key captions in the + Captions fields. + + + + The keyboard graphic is updated with the new captions. + + + + + + (Optional) Save the layout to a file. This means that your + custom keyboard layout will be available for future use. + + + + Highlight the new layout in the Layout + List and click the Save the + Selected Layout into File icon. + + + + Any custom layouts that you create can later be removed from + the Layout List, by highlighting and clicking the + Delete the Selected Layout + icon. + + + + + + + +
+ + + + Monitoring of Virtual Machines + + + &vbox-mgr; includes the following tools for viewing runtime + information and changing the configuration of virtual machines. + + + + + + + VM Activity Overview. + Displays an overview of performance metrics for all running + VMs. + + + + See . + + + + + + Session Information Dialog. + Displays configuration and runtime information for the + selected guest system. + + + + See + + + + + + + + VM Activity Overview + + + The VM Activity Overview tool displays several performance + metrics for all running virtual machines and for the host + system. This provides an overview of system resources used by + individual virtual machines and the host system. + + + + To display the VM Activity Overview tool, do the following: + + + + Go to the global Tools menu and + click Activities. The + VM Activity Overview window is + shown. + + +
+ VM Activity Overview Tool + + + + + +
+ + + To show metrics for all virtual machines, + including those that are not running, right-click on the list of + virtual machines and select List All + Virtual Machines. + + + + To configure the set of metrics to be shown, click + Columns in the toolbar. You can + then sort the list of virtual machines by a particular metric. + + + + To see more performance information for a virtual machine, + select the VM name and click VM + Activity in the toolbar. The VM + Activity tab of the Session + Information dialog is shown, see + . + + +
+ + + + Session Information Dialog + + + The Session Information dialog includes multiple tabs which show + important configuration and runtime information for the guest + system. The tabs of the dialog are as follows: + + + + + + + Configuration Details. + Displays the system configuration of the virtual machine in + a tabular format. The displayed information includes details + such as storage configuration and audio settings. + + + + + + Runtime Information. + Displays runtime information for the guest session in a + tabular format similar to the Configuration Details tab. + + + + + + VM Activity. Includes + several time series charts which monitor guest resource + usage including CPU, RAM, Disk I/O, and Network. Note that + the RAM chart requires the Guest Additions to be running on + the guest system. The VM Activity tab can also be accessed + directly from the VM Activity Overview tool. See + . + + + + + + Guest Control. Details of + processes used by the Guest Control File Manager. See + . + + + + + + + To display the Session Information dialog, select + Machine, + Session Information in the + guest VM. + + +
+ Session Information Dialog, Showing VM Activity Tab + + + + + +
+ +
+ +
+ + + + The Log Viewer + + + Every time you start up a VM, &product-name; creates a log file + that records system configuration and events. The + Log Viewer is a &vbox-mgr; tool + that enables you to view and analyze system logs. + + +
+ Log Viewer Tool, Showing System Events + + + + + + +
+ + + To display the Log Viewer, do either of the following: + + + + + + + Click the VM name in the machine list and select + Logs from the machine tools + menu. + + + + + + In the guest VM, select + Machine, + Show Log. + + + + + + + Log messages for the VM are displayed in tabs in the Log Viewer + window. See for details of + the various log files generated by &product-name;. + + + + If you select multiple VMs in the machine list, logs are listed + for each VM. + + + + The toolbar of the Log Viewer includes the following options: + + + + + + + Save: Exports the contents of + the selected log file to a text file. Specify the destination + filename and location in the displayed dialog. + + + + + + Find: Searches for a text + string in the log file. + + + + + + Filter: Uses filter terms to + display specific types of log messages. Common log message + terms used by &product-name;, such as Audio and NAT, are + included by default. Select one or more terms from the + drop-down list. To add your own filter term, enter the text + string in the text box field. + + + + + + Bookmark: Saves the location + of a log message, enabling you to find it quickly. To create a + bookmark, either click on the line number, or select some text + and then click Bookmark. + + + + + + Options: Configures the text + display used in the log message window. + + + + + + Refresh: Refreshes the log + file you are currently viewing. Only log messages in the + current tab are updated. + + + + + + Reload: Refreshes all log + files. Log messages in every tab are updated. + + + + + + Settings: Displays the + Settings window for the VM, + enabling you to make configuration changes. + + + + + + Discard: For a running VM, + discards the saved state for the VM and closes it down. + + + + + + Show/Start: For a running VM, + Show displays the VM window. + For a stopped VM, Start + displays options for powering up the VM. + + + + + +
+ +
diff --git a/doc/manual/en_US/user_KnownIssues.xml b/doc/manual/en_US/user_KnownIssues.xml new file mode 100644 index 00000000..f54c03bd --- /dev/null +++ b/doc/manual/en_US/user_KnownIssues.xml @@ -0,0 +1,502 @@ + + + +%all.entities; +]> + + + Known Limitations + + + + Experimental Features + + + Some &product-name; features are labeled as experimental. Such + features are provided on an "as-is" basis and are not formally + supported. However, feedback and suggestions about such features + are welcome. A comprehensive list of experimental features is as + follows: + + + + + + + Hardware 3D acceleration support for Windows, Linux, and + Oracle Solaris guests + + + + + + Hardware 2D video playback acceleration support for Windows + guests + + + + + + + + Mac OS X guests (macOS hosts only) + + + + + + ICH9 chipset emulation + + + + + + EFI firmware + + + + + + Host CD/DVD drive passthrough + + + + + + Support of iSCSI using internal networking + + + + + + Using &product-name; and Hyper-V on the same host + + + + + + + + + + Known Issues + + + The following section describes known problems with this release + of &product-name;. Unless marked otherwise, these issues are + planned to be fixed in later releases. + + + + + + + The macOS installer packages for &product-name; 7 currently do + not include the Internal Networking feature, which is + available on all other platforms. This will be addressed with + an update of &product-name; 7. For setups which depend on this + functionality it is best to keep using &product-name; 6.1. + + + + + + Poor performance when using &product-name; and + Hyper-V on the same host. To + fix this, certain Windows features like "Hyper-V Platform", + "Virtual Machine Platform" and "Windows Hypervisor Platform" + must be turned off, followed by a host reboot. + + + + Additionally, the Microsoft Device Guard and Credential Guard + hardware readiness tool might have to be used in order to turn + off more features. For example, by running the following + command: + + +.\DG_Readiness_Tool_vX.X.ps1 -Disable -AutoReboot + + + + Disabling Device Guard and Credential Guard features will + have an impact on the overall security of the host. Please + contact your Administrator beforehand regarding this. + + + + + + + The following Guest SMP (multiprocessor) + limitations exist: + + + + + + + Poor performance with + 32-bit guests on AMD CPUs. This affects mainly Windows and + Oracle Solaris guests, but possibly also some Linux kernel + revisions. Partially solved for 32-bit Windows NT, 2000, + XP, and 2003 guests. Requires the Guest Additions to be + installed. + + + + + + Poor performance with + 32-bit guests on certain Intel CPU models that do not + include virtual APIC hardware optimization support. This + affects mainly Windows and Oracle Solaris guests, but + possibly also some Linux kernel revisions. Partially + solved for 32-bit Windows NT, 2000, XP, and 2003 guests. + Requires the Guest Additions to be installed. + + + + + + + + + NX (no execute, data execution + prevention) only works for guests running on 64-bit + hosts and requires that hardware virtualization be enabled. + + + + + + Guest control. On Windows + guests, a process started using the guest control execute + support will not be able to display a graphical user interface + unless the user account under which it is + running is currently logged in and has a desktop session. + + + + Also, to use accounts without or with an empty password, the + guest's group policy must be changed. To do so, open the group + policy editor on the command line by typing + gpedit.msc, open the key Computer + Configuration\Windows Settings\Security Settings\Local + Policies\Security Options and change the value of + Accounts: Limit local account use of blank passwords + to console logon only to Disabled. + + + + + + Compacting virtual disk images is + limited to VDI files. The VBoxManage + modifymedium --compact command is currently only + implemented for VDI files. At the moment the only way to + optimize the size of a virtual disk images in other formats, + such as VMDK or VHD, is to clone the image and then use the + cloned image in the VM configuration. + + + + + + OVF import/export: + + + + + + + OVF localization, with multiple languages in a single OVF + file, is not yet supported. + + + + + + Some OVF sections like StartupSection, + DeploymentOptionSection, and InstallSection are ignored. + + + + + + OVF environment documents, including their property + sections and appliance configuration with ISO images, are + not yet supported. + + + + + + Remote files using HTTP or other mechanisms are not yet + supported. + + + + + + + + + Neither scale mode nor + seamless mode work correctly + with guests using OpenGL 3D features, such as with + Compiz-enabled window managers. + + + + + + The RDP server in the &product-name; extension pack supports + only audio streams in format 22.05kHz stereo 16-bit. If the + RDP client requests any other audio format there will be no + audio. + + + + + + Preserving the aspect ratio in scale mode works only on + Windows hosts and on macOS hosts. + + + + + + On macOS hosts, the following + features are not yet implemented: + + + + + + + Numlock emulation + + + + + + CPU frequency metric + + + + + + Memory ballooning + + + + + + + + + macOS/ARM64 (Apple silicon) host + package + + + + + + Mac OS X guests: + + + + + + + Mac OS X guests can only run on a certain host hardware. + For details about license and host hardware limitations. + See and check the + Apple software license conditions. + + + + + + &product-name; does not provide Guest Additions for Mac OS + X at this time. + + + + + + The graphics resolution currently defaults to 1024x768 as + Mac OS X falls back to the built-in EFI display support. + See for more information on + how to change EFI video modes. + + + + + + Mac OS X guests only work with one CPU assigned to the VM. + Support for SMP will be provided in a future release. + + + + + + Depending on your system and version of Mac OS X, you + might experience guest hangs after some time. This can be + fixed by turning off energy saving. Set the timeout to + "Never" in the system preferences. + + + + + + By default, the &product-name; EFI enables debug output of + the Mac OS X kernel to help you diagnose boot problems. + Note that there is a lot of output and not all errors are + fatal. They would also show when using a physical Apple + Macintosh computer. You can turn off these messages by + using the following command: + + +$ VBoxManage setextradata VM-name "VBoxInternal2/EfiBootArgs" " " + + + To revert to the previous behavior, use the following + command: + + +$ VBoxManage setextradata VM-name "VBoxInternal2/EfiBootArgs" "" + + + + + It is currently not possible to start a Mac OS X guest in + safe mode by specifying the option in + VBoxInternal2/EfiBootArgs extradata. + + + + + + + + + Oracle Solaris hosts: + + + + + + + USB support on Oracle Solaris hosts requires Oracle + Solaris 11 version snv_124 or later. Webcams and other + isochronous devices are known to have poor performance. + + + + + + Host Webcam passthrough is restricted to 640x480 frames at + 20 frames per second due to limitations in the Oracle + Solaris V4L2 API. This may be addressed in a future Oracle + Solaris release. + + + + + + No ACPI information, such as battery status or power + source, is reported to the guest. + + + + + + No support for using wireless adapters with bridged + networking. + + + + + + Crossbow-based bridged networking on Oracle Solaris 11 + hosts does not work directly with aggregate links. + However, you can use dladm to manually + create a VNIC over the aggregate link and use that with a + VM. This limitation does not exist in Oracle Solaris 11u1 + build 17 and later. + + + + + + + + + Neither virtio nor Intel PRO/1000 drivers for + Windows XP guests support + segmentation offloading. Therefore Windows XP guests have + slower transmission rates comparing to other guest types. + Refer to MS Knowledge base article 842264 for additional + information. + + + + + + Guest Additions for OS/2. + Seamless windows and automatic guest resizing will probably + never be implemented due to inherent limitations of the OS/2 + graphics system. + + + + + + Some guest operating systems predating ATAPI CD-ROMs may + exhibit long delays or entirely fail to boot in certain + configurations. This is most likely to happen when an + IDE/ATAPI CD-ROM exists alone on a primary or secondary IDE + channel. + + + + Affected operating systems are MS OS/2 1.21: fails to boot + with an error message referencing COUNTRY.SYS and MS OS/2 1.3: + long boot delays. To avoid such problems, disable the emulated + IDE/ATAPI CD-ROM. The guest OS cannot use this device, anyway. + + + + + + + + diff --git a/doc/manual/en_US/user_Networking.xml b/doc/manual/en_US/user_Networking.xml new file mode 100644 index 00000000..5f92a9a8 --- /dev/null +++ b/doc/manual/en_US/user_Networking.xml @@ -0,0 +1,1944 @@ + + + +%all.entities; +]> + + + Virtual Networking + + + As mentioned in , &product-name; + provides up to eight virtual PCI Ethernet cards for each virtual + machine. For each such card, you can individually select the + following: + + + + + + + The hardware that will be virtualized. + + + + + + The virtualization mode that the virtual card operates in, with + respect to your physical networking hardware on the host. + + + + + + + Four of the network cards can be configured in the + Network section of the + Settings window in &vbox-mgr;. You + can configure all eight network cards on the command line using + VBoxManage modifyvm. See + . + + + + This chapter explains the various networking settings in more + detail. + + + + + Virtual Networking Hardware + + + For each card, you can individually select what kind of + hardware will be presented to the virtual + machine. &product-name; can virtualize the following types of + networking hardware: + + + + + + + AMD PCNet PCI II (Am79C970A) + + + + + + AMD PCNet FAST III (Am79C973), the default setting + + + + + + Intel PRO/1000 MT Desktop (82540EM) + + + + + + Intel PRO/1000 T Server (82543GC) + + + + + + Intel PRO/1000 MT Server (82545EM) + + + + + + Paravirtualized network adapter (virtio-net) + + + + + + + The PCNet FAST III is the default because it is supported by + nearly all operating systems, as well as by the GNU GRUB boot + manager. As an exception, the Intel PRO/1000 family adapters are + chosen for some guest operating system types that no longer ship + with drivers for the PCNet card, such as Windows Vista. + + + + The Intel PRO/1000 MT Desktop type works with Windows Vista and + later versions. The T Server variant of the Intel PRO/1000 card is + recognized by Windows XP guests without additional driver + installation. The MT Server variant facilitates OVF imports from + other platforms. + + + + The Paravirtualized network adapter (virtio-net) is special. If + you select this adapter, then &product-name; does + not virtualize common networking hardware + that is supported by common guest operating systems. Instead, + &product-name; expects a special software interface for + virtualized environments to be provided by the guest, thus + avoiding the complexity of emulating networking hardware and + improving network performance. &product-name; provides support for + the industry-standard virtio networking + drivers, which are part of the open source KVM project. + + + + The virtio networking drivers are available for the following + guest operating systems: + + + + + + + Linux kernels version 2.6.25 or later can be configured to + provide virtio support. Some distributions have also + back-ported virtio to older kernels. + + + + + + For Windows 2000, XP, and Vista, virtio drivers can be + downloaded and installed from the KVM project web page: + + + + . + + + + + + + &product-name; also has limited support for jumbo + frames. These are networking packets with more than + 1500 bytes of data, provided that you use the Intel card + virtualization and bridged networking. Jumbo frames are not + supported with the AMD networking devices. In those cases, jumbo + packets will silently be dropped for both the transmit and the + receive direction. Guest operating systems trying to use this + feature will observe this as a packet loss, which may lead to + unexpected application behavior in the guest. This does not cause + problems with guest operating systems in their default + configuration, as jumbo frames need to be explicitly enabled. + + + + + + + Introduction to Networking Modes + + + Each of the networking adapters can be separately configured to + operate in one of the following modes: + + + + + + + Not attached. In this mode, + &product-name; reports to the guest that a network card is + present, but that there is no connection. This is as if no + Ethernet cable was plugged into the card. Using this mode, it + is possible to pull the virtual Ethernet + cable and disrupt the connection, which can be useful to + inform a guest operating system that no network connection is + available and enforce a reconfiguration. + + + + + + Network Address Translation + (NAT). If all you want is to browse the Web, + download files, and view email inside the guest, then this + default mode should be sufficient for you, and you can skip + the rest of this section. Please note that there are certain + limitations when using Windows file sharing. See + . + + + + + + NAT Network. A NAT network is + a type of internal network that allows outbound connections. + See . + + + + + + Bridged networking. This is + for more advanced networking needs, such as network + simulations and running servers in a guest. When enabled, + &product-name; connects to one of your installed network cards + and exchanges network packets directly, circumventing your + host operating system's network stack. + + + + + + Internal networking. This can + be used to create a different kind of software-based network + which is visible to selected virtual machines, but not to + applications running on the host or to the outside world. + + + + + + Host-only networking. This + can be used to create a network containing the host and a set + of virtual machines, without the need for the host's physical + network interface. Instead, a virtual network interface, + similar to a loopback interface, is created on the host, + providing connectivity among virtual machines and the host. + + + + + + Cloud networking. This can be + used to connect a local VM to a subnet on a remote cloud + service. + + + + + + Generic networking. Rarely + used modes which share the same generic network interface, by + allowing the user to select a driver which can be included + with &product-name; or be distributed in an extension pack. + + + + The following sub-modes are available: + + + + + + + UDP Tunnel: Used to + interconnect virtual machines running on different hosts + directly, easily, and transparently, over an existing + network infrastructure. + + + + + + VDE (Virtual Distributed Ethernet) + networking: Used to connect to a Virtual + Distributed Ethernet switch on a Linux or a FreeBSD host. + At the moment this option requires compilation of + &product-name; from sources, as the Oracle packages do not + include it. + + + + + + + + + + The following table provides an overview of the most important + networking modes. + + + + Overview of Networking Modes + + + + + + + + + + Mode + + VM→Host + + + VM←Host + + + VM1↔VM2 + + + VM→Net/LAN + + + VM←Net/LAN + + + + + + + Host-only + + + + + + + + + + + + + + + – + + + – + + + + + Internal + + + – + + + – + + + + + + + – + + + – + + + + + Bridged + + + + + + + + + + + + + + + + + + + + + + + + + NAT + + + + + + + Port forward + + + – + + + + + + + Port forward + + + + + NATservice + + + + + + + Port forward + + + + + + + + + + + Port forward + + + + +
+ + + The following sections describe the available network modes in + more detail. + + +
+ + + + Network Address Translation (NAT) + + + Network Address Translation (NAT) is the simplest way of accessing + an external network from a virtual machine. Usually, it does not + require any configuration on the host network and guest system. + For this reason, it is the default networking mode in + &product-name;. + + + + A virtual machine with NAT enabled acts much like a real computer + that connects to the Internet through a router. The router, in + this case, is the &product-name; networking engine, which maps + traffic from and to the virtual machine transparently. In + &product-name; this router is placed between each virtual machine + and the host. This separation maximizes security since by default + virtual machines cannot talk to each other. + + + + The disadvantage of NAT mode is that, much like a private network + behind a router, the virtual machine is invisible and unreachable + from the outside internet. You cannot run a server this way unless + you set up port forwarding. See . + + + + The network frames sent out by the guest operating system are + received by &product-name;'s NAT engine, which extracts the TCP/IP + data and resends it using the host operating system. To an + application on the host, or to another computer on the same + network as the host, it looks like the data was sent by the + &product-name; application on the host, using an IP address + belonging to the host. &product-name; listens for replies to the + packages sent, and repacks and resends them to the guest machine + on its private network. + + + + + Even though the NAT engine separates the VM from the host, the + VM has access to the host's loopback interface and the network + services running on it. The host's loopback interface is + accessible as IP address 10.0.2.2. This access to the host's + loopback interface can be extremely useful in some cases, for + example when running a web application under development in the + VM and the database server on the loopback interface on the + host. + + + + + The virtual machine receives its network address and configuration + on the private network from a DHCP server integrated into + &product-name;. The IP address thus assigned to the virtual + machine is usually on a completely different network than the + host. As more than one card of a virtual machine can be set up to + use NAT, the first card is connected to the private network + 10.0.2.0, the second card to the network 10.0.3.0 and so on. If + you need to change the guest-assigned IP range, see + . + + + + + Configuring Port Forwarding with NAT + + + As the virtual machine is connected to a private network + internal to &product-name; and invisible to the host, network + services on the guest are not accessible to the host machine or + to other computers on the same network. However, like a physical + router, &product-name; can make selected services available to + the world outside the guest through port + forwarding. This means that &product-name; listens to + certain ports on the host and resends all packets which arrive + there to the guest, on the same or a different port. + + + + To an application on the host or other physical or virtual + machines on the network, it looks as though the service being + proxied is actually running on the host. This also means that + you cannot run the same service on the same ports on the host. + However, you still gain the advantages of running the service in + a virtual machine. For example, services on the host machine or + on other virtual machines cannot be compromised or crashed by a + vulnerability or a bug in the service, and the service can run + in a different operating system than the host system. + + + + To configure port forwarding you can use the graphical + Port Forwarding editor which + can be found in the Network + settings dialog for network adaptors configured to use NAT. + Here, you can map host ports to guest ports to allow network + traffic to be routed to a specific port in the guest. + + + + Alternatively, the command line tool + VBoxManage can be used. See + . + + + + You will need to know which ports on the guest the service uses + and to decide which ports to use on the host. You may want to + use the same ports on the guest and on the host. You can use any + ports on the host which are not already in use by a service. For + example, to set up incoming NAT connections to an + ssh server in the guest, use the following + command: + + +VBoxManage modifyvm "VM name" --nat-pf1 "guestssh,tcp,,2222,,22" + + + In the above example, all TCP traffic arriving on port 2222 on + any host interface will be forwarded to port 22 in the guest. + The protocol name tcp is a mandatory + attribute defining which protocol should be used for forwarding, + udp could also be used. The name + guestssh is purely descriptive and will be + auto-generated if omitted. The number after + denotes the network card, as with + other VBoxManage commands. + + + + To remove this forwarding rule, use the following command: + + +VBoxManage modifyvm "VM name" --natpf1 delete "guestssh" + + + If for some reason the guest uses a static assigned IP address + not leased from the built-in DHCP server, it is required to + specify the guest IP when registering the forwarding rule, as + follows: + + +VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,10.0.2.19,22" + + + This example is identical to the previous one, except that the + NAT engine is being told that the guest can be found at the + 10.0.2.19 address. + + + + To forward all incoming traffic from a + specific host interface to the guest, specify the IP of that + host interface as follows: + + +VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22" + + + This example forwards all TCP traffic arriving on the localhost + interface at 127.0.0.1 through port 2222 to port 22 in the + guest. + + + + It is possible to configure incoming NAT connections while the + VM is running, see . + + + + + + + PXE Booting with NAT + + + PXE booting is now supported in NAT mode. The NAT DHCP server + provides a boot file name of the form + vmname.pxe if + the directory TFTP exists in the directory + where the user's VirtualBox.xml file is + kept. It is the responsibility of the user to provide + vmname.pxe. + + + + + + + NAT Limitations + + + There are some limitations of NAT mode which users should be + aware of, as follows: + + + + + + + ICMP protocol limitations. + Some frequently used network debugging tools, such as + ping or traceroute, + rely on the ICMP protocol for sending and receiving + messages. &product-name; ICMP support has some limitations, + meaning ping should work but some other + tools may not work reliably. + + + + + + Receiving of UDP + broadcasts. The guest does not reliably receive + UDP broadcasts. In order to save resources, it only listens + for a certain amount of time after the guest has sent UDP + data on a particular port. As a consequence, NetBios name + resolution based on broadcasts does not always work, but + WINS always works. As a workaround, you can use the numeric + IP of the desired server in the + \\server\share + notation. + + + + + + Some protocols are not + supported. Protocols other than TCP and UDP are + not supported. GRE is not supported. This means some VPN + products, such as PPTP from Microsoft, cannot be used. There + are other VPN products which use only TCP and UDP. + + + + + + Forwarding host ports below + 1024. On UNIX-based hosts, such as Linux, Oracle + Solaris, and macOS, it is not possible to bind to ports + below 1024 from applications that are not run by + root. As a result, if you try to + configure such a port forwarding, the VM will refuse to + start. + + + + + + + These limitations normally do not affect standard network use. + But the presence of NAT has also subtle effects that may + interfere with protocols that are normally working. One example + is NFS, where the server is often configured to refuse + connections from non-privileged ports, which are those ports not + below 1024. + + + + + + + + + Network Address Translation Service + + + The Network Address Translation (NAT) service works in a similar + way to a home router, grouping the systems using it into a network + and preventing systems outside of this network from directly + accessing systems inside it, but letting systems inside + communicate with each other and with systems outside using TCP and + UDP over IPv4 and IPv6. + + + + A NAT service is attached to an internal network. Virtual machines + which are to make use of it should be attached to that internal + network. The name of internal network is chosen when the NAT + service is created and the internal network will be created if it + does not already exist. The following is an example command to + create a NAT network: + + +VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable + + + Here, natnet1 is the name of the internal network to be used and + 192.168.15.0/24 is the network address and mask of the NAT service + interface. By default in this static configuration the gateway + will be assigned the address 192.168.15.1, the address following + the interface address, though this is subject to change. To attach + a DHCP server to the internal network, modify the example command + as follows: + + +VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable --dhcp on + + + To add a DHCP server to an existing network, use the following + command: + + +VBoxManage natnetwork modify --netname natnet1 --dhcp on + + + To disable the DHCP server, use the following command: + + +VBoxManage natnetwork modify --netname natnet1 --dhcp off + + + A DHCP server provides a list of registered nameservers, but does + not map servers from the 127/8 network. + + + + To start the NAT service, use the following command: + + +VBoxManage natnetwork start --netname natnet1 + + + If the network has a DHCP server attached then it will start + together with the NAT network service. + + + + To stop the NAT network service, together with any DHCP server: + + +VBoxManage natnetwork stop --netname natnet1 + + + To delete the NAT network service: + + +VBoxManage natnetwork remove --netname natnet1 + + + This command does not remove the DHCP server if one is enabled on + the internal network. + + + + Port-forwarding is supported, using the + switch for IPv4 and + for IPv6. For example: + + +VBoxManage natnetwork modify \ + --netname natnet1 --port-forward-4 "ssh:tcp:[]:1022:[192.168.15.5]:22" + + + This adds a port-forwarding rule from the host's TCP 1022 port to + the port 22 on the guest with IP address 192.168.15.5. Host port, + guest port and guest IP are mandatory. To delete the rule, use the + following command: + + +VBoxManage natnetwork modify --netname natnet1 --port-forward-4 delete ssh + + + It is possible to bind a NAT service to specified interface. For + example: + + +VBoxManage setextradata global "NAT/win-nat-test-0/SourceIp4" 192.168.1.185 + + + To see the list of registered NAT networks, use the following + command: + + +VBoxManage list natnetworks + + + NAT networks can also be created, deleted, and configured using + the Network Manager tool in &vbox-mgr;. Click + File, + Tools, Network + Manager. See . + + + + + Even though the NAT service separates the VM from the host, the + VM has access to the host's loopback interface and the network + services running on it. The host's loopback interface is + accessible as IP address 10.0.2.2 (assuming the default + configuration, in other configurations it's the respective + address in the configured IPv4 or IPv6 network range). This + access to the host's loopback interface can be extremely useful + in some cases, for example when running a web application under + development in the VM and the database server on the loopback + interface on the host. + + + + + + + + Bridged Networking + + + With bridged networking, &product-name; uses a device driver on + your host system that filters data from your + physical network adapter. This driver is therefore called a + net filter driver. This enables + &product-name; to intercept data from the physical network and + inject data into it, effectively creating a new network interface + in software. When a guest is using such a new software interface, + it looks to the host system as though the guest were physically + connected to the interface using a network cable. The host can + send data to the guest through that interface and receive data + from it. This means that you can set up routing or bridging + between the guest and the rest of your network. + + + + + Even though TAP interfaces are no longer necessary on Linux for + bridged networking, you can still use TAP + interfaces for certain advanced setups, since you can connect a + VM to any host interface. + + + + + To enable bridged networking, open the + Settings dialog of a virtual + machine, go to the Network page + and select Bridged Network in the + drop-down list for the Attached + To field. Select a host interface from the list at the + bottom of the page, which contains the physical network interfaces + of your systems. On a typical MacBook, for example, this will + allow you to select between en1: AirPort, which is the wireless + interface, and en0: Ethernet, which represents the interface with + a network cable. + + + + + Bridging to a wireless interface is done differently from + bridging to a wired interface, because most wireless adapters do + not support promiscuous mode. All traffic has to use the MAC + address of the host's wireless adapter, and therefore + &product-name; needs to replace the source MAC address in the + Ethernet header of an outgoing packet to make sure the reply + will be sent to the host interface. When &product-name; sees an + incoming packet with a destination IP address that belongs to + one of the virtual machine adapters it replaces the destination + MAC address in the Ethernet header with the VM adapter's MAC + address and passes it on. &product-name; examines ARP and DHCP + packets in order to learn the IP addresses of virtual machines. + + + + + Depending on your host operating system, the following limitations + apply: + + + + + + + macOS hosts. Functionality is + limited when using AirPort, the Mac's wireless networking + system, for bridged networking. Currently, &product-name; + supports only IPv4 and IPv6 over AirPort. For other protocols, + such as IPX, you must choose a wired interface. + + + + + + Linux hosts. Functionality is + limited when using wireless interfaces for bridged networking. + Currently, &product-name; supports only IPv4 and IPv6 over + wireless. For other protocols, such as IPX, you must choose a + wired interface. + + + + Also, setting the MTU to less than 1500 bytes on wired + interfaces provided by the sky2 driver on the Marvell Yukon II + EC Ultra Ethernet NIC is known to cause packet losses under + certain conditions. + + + + Some adapters strip VLAN tags in hardware. This does not allow + you to use VLAN trunking between VM and the external network + with pre-2.6.27 Linux kernels, or with host operating systems + other than Linux. + + + + + + Oracle Solaris hosts. There + is no support for using wireless interfaces. Filtering guest + traffic using IPFilter is also not completely supported due to + technical restrictions of the Oracle Solaris networking + subsystem. These issues may be addressed in later releases of + Oracle Solaris 11. + + + + On Oracle Solaris 11 hosts build 159 and above, it is possible + to use Oracle Solaris Crossbow Virtual Network Interfaces + (VNICs) directly with &product-name; without any additional + configuration other than each VNIC must be exclusive for every + guest network interface. + + + + When using VLAN interfaces with &product-name;, they must be + named according to the PPA-hack naming scheme, such as + e1000g513001. Otherwise, the guest may receive packets in an + unexpected format. + + + + + + + + + + Internal Networking + + + Internal Networking is similar to bridged networking in that the + VM can directly communicate with the outside world. However, the + outside world is limited to other VMs on the same host which + connect to the same internal network. + + + + Even though technically, everything that can be done using + internal networking can also be done using bridged networking, + there are security advantages with internal networking. In bridged + networking mode, all traffic goes through a physical interface of + the host system. It is therefore possible to attach a packet + sniffer such as Wireshark to the host interface and log all + traffic that goes over it. If, for any reason, you prefer two or + more VMs on the same machine to communicate privately, hiding + their data from both the host system and the user, bridged + networking therefore is not an option. + + + + Internal networks are created automatically as needed. There is no + central configuration. Every internal network is identified simply + by its name. Once there is more than one active virtual network + card with the same internal network ID, the &product-name; support + driver will automatically wire the cards and + act as a network switch. The &product-name; support driver + implements a complete Ethernet switch and supports both + broadcast/multicast frames and promiscuous mode. + + + + In order to attach a VM's network card to an internal network, set + its networking mode to Internal Networking. There are two ways to + accomplish this: + + + + + + + Use the VM's Settings window + in &vbox-mgr;. In the Network + category of the Settings window, select + Internal Network from the + drop-down list of networking modes. Select the name of an + existing internal network from the drop-down list below, or + enter a new name into the + Name field. + + + + + + Use the command line, for example: + + +VBoxManage modifyvm "VM name" --nic<x> intnet + + + Optionally, you can specify a network name with the command: + + +VBoxManage modifyvm "VM name" --intnet<x> "network name" + + + If you do not specify a network name, the network card will be + attached to the network intnet by default. + + + + + + + Unless you configure the virtual network cards in the guest + operating systems that are participating in the internal network + to use static IP addresses, you may want to use the DHCP server + that is built into &product-name; to manage IP addresses for the + internal network. See . + + + + As a security measure, by default, the Linux implementation of + internal networking only allows VMs running under the same user ID + to establish an internal network. However, it is possible to + create a shared internal networking interface, accessible by users + with different user IDs. + + + + + + + Host-Only Networking + + + Host-only networking can be thought of as a hybrid between the + bridged and internal networking modes. As with bridged networking, + the virtual machines can talk to each other and the host as if + they were connected through a physical Ethernet switch. As with + internal networking, a physical networking interface need not be + present, and the virtual machines cannot talk to the world outside + the host since they are not connected to a physical networking + interface. + + + + When host-only networking is used, &product-name; creates a new + software interface on the host which then appears next to your + existing network interfaces. In other words, whereas with bridged + networking an existing physical interface is used to attach + virtual machines to, with host-only networking a new + loopback interface is created on the host. + And whereas with internal networking, the traffic between the + virtual machines cannot be seen, the traffic on the loopback + interface on the host can be intercepted. + + + + + Hosts running recent macOS versions do not support host-only + adapters. These adapters are replaced by host-only networks, + which define a network mask and an IP address range, where the + host network interface receives the lowest address in the range. + + + + The host network interface gets added and removed dynamically by + the operating system, whenever a host-only network is used by + virtual machines. + + + + On macOS hosts, choose the Host-Only + Network option when configuring a network adapter. + The Host-Only Adapter option is + provided for legacy support. + + + + + Host-only networking is particularly useful for preconfigured + virtual appliances, where multiple virtual machines are shipped + together and designed to cooperate. For example, one virtual + machine may contain a web server and a second one a database, and + since they are intended to talk to each other, the appliance can + instruct &product-name; to set up a host-only network for the two. + A second, bridged, network would then connect the web server to + the outside world to serve data to, but the outside world cannot + connect to the database. + + + + To enable a host-only network interface for a virtual machine, do + either of the following: + + + + + + + Go to the Network page in the + virtual machine's Settings + dialog and select an Adapter + tab. Ensure that the Enable Network + Adapter check box is selected and choose + Host-Only Adapter for the + Attached To field. + + + + + + On the command line, use VBoxManage modifyvm + vmname + --nicx hostonly. See + . + + + + + + + For host-only networking, as with internal networking, you may + find the DHCP server useful that is built into &product-name;. + This is enabled by default and manages the IP addresses in the + host-only network. Without the DHCP server you would need to + configure all IP addresses statically. + + + + + + + In &vbox-mgr; you can configure the DHCP server by choosing + File, + Tools, + Network Manager. The Network + Manager window lists all host-only networks which are + presently in use. Select the network name and then use the + DHCP Server tab to configure + DHCP server settings. See . + + + + + + Alternatively, you can use the VBoxManage + dhcpserver command. See + . + + + + + + + + On Linux and macOS hosts the number of host-only interfaces is + limited to 128. There is no such limit for Oracle Solaris and + Windows hosts. + + + + + On Linux, macOS and Solaris &product-name; will only allow IP + addresses in 192.168.56.0/21 range to be assigned to host-only + adapters. For IPv6 only link-local addresses are allowed. If other + ranges are desired, they can be enabled by creating + /etc/vbox/networks.conf and specifying + allowed ranges there. For example, to allow 10.0.0.0/8 and + 192.168.0.0/16 IPv4 ranges as well as 2001::/64 range put the + following lines into /etc/vbox/networks.conf: + + + + * 10.0.0.0/8 192.168.0.0/16 + * 2001::/64 + + + + Lines starting with the hash # are ignored. The + following example allows any addresses, effectively disabling + range control: + + + + * 0.0.0.0/0 ::/0 + + + + If the file exists, but no ranges are specified in it, no + addresses will be assigned to host-only adapters. The following + example effectively disables all ranges: + + + + # No addresses are allowed for host-only adapters + + + + + + + UDP Tunnel Networking + + + This networking mode enables you to interconnect virtual machines + running on different hosts. + + + + Technically this is done by encapsulating Ethernet frames sent or + received by the guest network card into UDP/IP datagrams, and + sending them over any network available to the host. + + + + UDP Tunnel mode has the following parameters: + + + + + + + Source UDP port: The port on + which the host listens. Datagrams arriving on this port from + any source address will be forwarded to the receiving part of + the guest network card. + + + + + + Destination address: IP + address of the target host of the transmitted data. + + + + + + Destination UDP port: Port + number to which the transmitted data is sent. + + + + + + + When interconnecting two virtual machines on two different hosts, + their IP addresses must be swapped. On a single host, source and + destination UDP ports must be swapped. + + + + In the following example, host 1 uses the IP address 10.0.0.1 and + host 2 uses IP address 10.0.0.2. To configure using the + command-line: + + + VBoxManage modifyvm "VM 01 on host 1" --nic<x> generic + VBoxManage modifyvm "VM 01 on host 1" --nic-generic-drv<x> UDPTunnel + VBoxManage modifyvm "VM 01 on host 1" --nic-property<x> dest=10.0.0.2 + VBoxManage modifyvm "VM 01 on host 1" --nic-property<x> sport=10001 + VBoxManage modifyvm "VM 01 on host 1" --nic-property<x> dport=10002 + + VBoxManage modifyvm "VM 02 on host 2" --nic<y> generic + VBoxManage modifyvm "VM 02 on host 2" --nic-generic-drv<y> UDPTunnel + VBoxManage modifyvm "VM 02 on host 2" --nic-property<y> dest=10.0.0.1 + VBoxManage modifyvm "VM 02 on host 2" --nic-property<y> sport=10002 + VBoxManage modifyvm "VM 02 on host 2" --nic-property<y> dport=10001 + + + Of course, you can always interconnect two virtual machines on the + same host, by setting the destination address parameter to + 127.0.0.1 on both. It will act similarly to an internal network in + this case. However, the host can see the network traffic which it + could not in the normal internal network case. + + + + + On UNIX-based hosts, such as Linux, Oracle Solaris, and Mac OS + X, it is not possible to bind to ports below 1024 from + applications that are not run by root. As a + result, if you try to configure such a source UDP port, the VM + will refuse to start. + + + + + + + + VDE Networking + + + Virtual Distributed Ethernet (VDE) is a flexible, virtual network + infrastructure system, spanning across multiple hosts in a secure + way. It enables L2/L3 switching, including spanning-tree protocol, + VLANs, and WAN emulation. It is an optional part of &product-name; + which is only included in the source code. + + + + VDE is a project developed by Renzo Davoli, Associate Professor at + the University of Bologna, Italy. + + + + The basic building blocks of the infrastructure are VDE switches, + VDE plugs, and VDE wires which interconnect the switches. + + + + The &product-name; VDE driver has a single parameter: VDE network. + This is the name of the VDE network switch socket to which the VM + will be connected. + + + + The following basic example shows how to connect a virtual machine + to a VDE switch. + + + + + + + Create a VDE switch: + + +vde_switch -s /tmp/switch1 + + + + + Configure VMs using the command-line: + + +VBoxManage modifyvm "VM name" --nic<x> generic + +VBoxManage modifyvm "VM name" --nic-generic-drv<x> VDE + + + To connect to an automatically allocated switch port: + + +VBoxManage modifyvm "VM name" --nic-property<x> network=/tmp/switch1 + + + To connect to a specific switch port + n: + + +VBoxManage modifyvm "VM name" --nic-property<x> network=/tmp/switch1[<n>] + + + This command can be useful for VLANs. + + + + + + (Optional) Map between a VDE switch port and a VLAN. + + + + Using the switch command line: + + +vde$ vlan/create <VLAN> + +vde$ port/setvlan <port> <VLAN> + + + + + + VDE is available on Linux and FreeBSD hosts only. It is only + available if the VDE software and the VDE plugin library from the + VirtualSquare project are installed on the host system. + + + + + For Linux hosts, the shared library libvdeplug.so must be + available in the search path for shared libraries. + + + + + For more information on setting up VDE networks, please see the + documentation accompanying the software. See also + . + + + + + + + Cloud Networks + + + Cloud networks can be used for connections from a local VM to a + subnet on a remote &oci; instance. See + for details of + how to create and configure a cloud network using the Network + Manager tool in &vbox-mgr;. + + + + To enable a cloud network interface for a virtual machine, do + either of the following: + + + + + + + Go to the Network page in the + virtual machine's Settings + dialog and select an Adapter + tab. Ensure that the Enable Network + Adapter check box is selected and choose + Cloud Network for the + Attached To field. + + + + + + On the command line, use VBoxManage modifyvm + vmname + --nicx cloud. See + . + + + + + + + + + + Network Manager + + + The Network Manager tool in + &vbox-mgr; enables you to create, delete, and configure the + following types of networks used by &product-name;: + + + + + + + Host-only networks. See + . + + + + + + NAT networks. See + . + + + + + + Cloud networks. See + . + + + + + + + To display the Network Manager, go to the global + Tools menu and click + Network. + + + + + Host-Only Networks Tab + + + The Host-Only Networks tab in Network Manager lists all + host-only networks that are currently in use. + + + + + + + Click Create to add a new + host-only network to the list. + + + + + + Click Remove to remove a + host-only network from the list. + + + + + + Click Properties to show or + hide settings for the selected host-only network. + + + + + + + To configure a host-only network, select the network name in the + Name field and do the + following: + + + + + + + Use the Adapter tab to + configure the network adapter for the host-only network. + + + + + + Use the DHCP Server tab to + configure settings for the DHCP server used by the host-only + network. The DHCP server is built into &product-name; and + manages IP addresses for the network automatically. + + + + + + + + + + NAT Networks Tab + + + The NAT Networks tab in Network Manager lists all NAT networks + that are currently in use. + + + + + + + Click Create to add a new + NAT network to the list. + + + + + + Click Remove to remove a + NAT network from the list. + + + + + + Click Properties to show or + hide settings for the selected NAT network. + + + + + + + To configure a NAT network, select the network name in the + Name field and do the + following: + + + + + + + Use the General Options tab + to configure the network settings used by the NAT network. + For example, the network address and mask of the NAT service + interface. + + + + + + Use the Port Forwarding tab + to configure port forwarding rules used by the NAT network. + + + + + + + + + + Cloud Networks Tab + + + The Cloud Networks tab in Network Manager lists all cloud + networks that are currently in use. + + + + + + + Click Create to add a new + cloud network to the list. + + + + + + Click Remove to remove a + cloud network from the list. + + + + + + Click Properties to show or + hide settings for the selected cloud network. + + + + + + + To configure a cloud network, select the network name in the + Name field and specify the + following: + + + + + + + Name: The name used for the + cloud network. + + + + + + Provider: The cloud service + provider, such as &oci;. + + + + + + Profile: The cloud profile + used to connect to the cloud network. + + + + + + ID: The OCID for the cloud + tunneling network. Click the + Network icon to view the + subnets on &oci; that are available for tunneling traffic. + + + + See for details + of how you can use the VBoxManage cloud + command to create and configure a virtual cloud network + (VCN) on &oci;. + + + + + + + + + + + + Limiting Bandwidth for Network Input/Output + + + &product-name; supports limiting of the maximum bandwidth used for + network transmission. Several network adapters of one VM may share + limits through bandwidth groups. It is possible to have more than + one such limit. + + + + + &product-name; shapes VM traffic only in the transmit direction, + delaying the packets being sent by virtual machines. It does not + limit the traffic being received by virtual machines. + + + + + Limits are configured through VBoxManage. The + following example creates a bandwidth group named Limit, sets the + limit to 20 Mbps and assigns the group to the first and second + adapters of the VM: + + +VBoxManage bandwidthctl "VM name" add Limit --type network --limit 20m +VBoxManage modifyvm "VM name" --nicbandwidthgroup1 Limit +VBoxManage modifyvm "VM name" --nicbandwidthgroup2 Limit + + + All adapters in a group share the bandwidth limit, meaning that in + the example above the bandwidth of both adapters combined can + never exceed 20 Mbps. However, if one adapter does not require + bandwidth the other can use the remaining bandwidth of its group. + + + + The limits for each group can be changed while the VM is running, + with changes being picked up immediately. The following example + changes the limit for the group created in the previous example to + 100 Kbps: + + +VBoxManage bandwidthctl "VM name" set Limit --limit 100k + + + To completely disable shaping for the first adapter of VM use the + following command: + + +VBoxManage modifyvm "VM name" --nicbandwidthgroup1 none + + + It is also possible to disable shaping for all adapters assigned + to a bandwidth group while VM is running, by specifying the zero + limit for the group. For example, for the bandwidth group named + Limit: + + +VBoxManage bandwidthctl "VM name" set Limit --limit 0 + + + + + + Improving Network Performance + + + &product-name; provides a variety of virtual network adapters that + can be attached to the host's network in a number of ways. + Depending on which types of adapters and attachments are used the + network performance will be different. Performance-wise the virtio + network adapter is preferable over Intel PRO/1000 emulated + adapters, which are preferred over the PCNet family of adapters. + Both virtio and Intel PRO/1000 adapters enjoy the benefit of + segmentation and checksum offloading. Segmentation offloading is + essential for high performance as it allows for less context + switches, dramatically increasing the sizes of packets that cross + the VM/host boundary. + + + + + Neither virtio nor Intel PRO/1000 drivers for Windows XP support + segmentation offloading. Therefore Windows XP guests never reach + the same transmission rates as other guest types. Refer to MS + Knowledge base article 842264 for additional information. + + + + + Three attachment types: Internal, Bridged, and Host-Only, have + nearly identical performance. The Internal type is a little bit + faster and uses less CPU cycles as the packets never reach the + host's network stack. The NAT attachment type is the slowest and + most secure of all attachment types, as it provides network + address translation. The generic driver attachment is special and + cannot be considered as an alternative to other attachment types. + + + + The number of CPUs assigned to VM does not improve network + performance and in some cases may hurt it due to increased + concurrency in the guest. + + + + Here is a short summary of things to check in order to improve + network performance: + + + + + + + Whenever possible use the virtio network adapter. Otherwise, + use one of the Intel PRO/1000 adapters. + + + + + + Use a Bridged attachment instead of NAT. + + + + + + Make sure segmentation offloading is enabled in the guest OS. + Usually it will be enabled by default. You can check and + modify offloading settings using the + ethtool command on Linux guests. + + + + + + Perform a full detailed analysis of network traffic on the + VM's network adaptor using a third party tool such as + Wireshark. To do this, a promiscuous mode policy needs to be + used on the VM's network adaptor. Use of this mode is only + possible on the following network types: NAT Network, Bridged + Adapter, Internal Network, and Host-Only Adapter. + + + + To setup a promiscuous mode policy, either select from the + drop down list located in the Network + Settings dialog for the network adaptor or use the + command line tool VBoxManage. See + . + + + + Promiscuous mode policies are as follows: + + + + + + + deny, which hides any traffic not + intended for the VM's network adaptor. This is the default + setting. + + + + + + allow-vms, which hides all host traffic + from the VM's network adaptor, but allows it to see + traffic from and to other VMs. + + + + + + allow-all, which removes all + restrictions. The VM's network adaptor sees all traffic. + + + + + + + + + + +
diff --git a/doc/manual/en_US/user_Preface.xml b/doc/manual/en_US/user_Preface.xml new file mode 100644 index 00000000..5fdb265f --- /dev/null +++ b/doc/manual/en_US/user_Preface.xml @@ -0,0 +1,114 @@ + + + + %all.entities; +]> + + + Preface + + + The &product-name; User Manual provides an + introduction to using &product-name;. The manual provides + information on how to install &product-name; and use it to create + and configure virtual machines. + + + + + Audience + + + This document is intended for both new and existing users of + &product-name;. It is assumed that readers are familiar with Web + technologies and have a general understanding of Windows and UNIX + platforms. + + + + + + + Related Documents + + + The documentation for this product is available at: + + + + + + + + + + + Conventions + + + The following text conventions are used in this document: + + + + + + + boldface: Boldface type + indicates graphical user interface elements associated with an + action, or terms defined in text or the glossary. + + + + + + italic: Italic type indicates book + titles, emphasis, or placeholder variables for which you + supply particular values. + + + + + + monospace: Monospace type indicates + commands within a paragraph, URLs, code in examples, text that + appears on the screen, or text that you enter. + + + + + + + + + + + + + + diff --git a/doc/manual/en_US/user_PrivacyPolicy.xml b/doc/manual/en_US/user_PrivacyPolicy.xml new file mode 100644 index 00000000..adc8041e --- /dev/null +++ b/doc/manual/en_US/user_PrivacyPolicy.xml @@ -0,0 +1,114 @@ + + + +%all.entities; +]> + + + &product-name; Privacy Information + + + Version 5, Dec 13, 2012 + + + + The Oracle Privacy Policies posted on + + apply to your personal data collected and used by Oracle. The + following privacy information describes in more detail which + information is exchanged between the &product-name; application and + Oracle, and which information is collected by the virtualbox.org + website. + + + + § 1 virtualbox.org. The + "virtualbox.org" website logs anonymous usage information such as + your IP address, geographical location, browser type, referral + source, length of visit and number of page views while you visit + (collectively, "anonymous data"). In addition, but only if you + choose to register, the website's bug tracking and forum services + store the data you choose to reveal upon registration, such as your + user name and contact information. + + + + § 2 Cookies. The virtualbox.org + website, the bug tracker and the forum services use cookies to + identify and track the visiting web browser and, if you have + registered, to facilitate login. Most browsers allow you to refuse + to accept cookies. While you can still visit the website with + cookies disabled, logging into the bug tracker and forum services + will most likely not work without them. + + + + § 3 &product-name; registration + process. The &product-name; application may ask that the + user optionally register with Oracle. If you choose to register, + your name, e-mail address, country and company will be submitted to + Oracle and stored together with the IP address of the submitter as + well as product version and platform being used. + + + + § 4 Update notifications. The + &product-name; application may contact Oracle to find out whether a + new version of &product-name; has been released and notify the user + if that is the case. In the process, anonymous data such as your IP + address and a non-identifying counter, together with the product + version and the platform being used, is sent so that the server can + find out whether an update is available. By default, this check is + performed once a day. You change this interval or disable these + checks altogether in the &product-name; preferences. + + + + § 5 Usage of personal information. + Oracle may use anonymous and personal data collected by the means + above for statistical purposes as well as to automatically inform + you about new notices related to your posts on the bug tracker and + forum services, to administer the website and to contact you due to + technical issues. Oracle may also inform you about new product + releases related to &product-name;. + + + + In no event will personal data without your express consent be + provided to any third parties, unless Oracle may be required to do + so by law or in connection with legal proceedings. + + + + § 6 Updates. Oracle may update the + privacy policy at any time by posting a new version at + + and the privacy information will be kept up to date in the + documentation which comes with the &product-name; application. You + should check these places occasionally to ensure you are happy with + any changes. + + + diff --git a/doc/manual/en_US/user_Security.xml b/doc/manual/en_US/user_Security.xml new file mode 100644 index 00000000..bec9e13b --- /dev/null +++ b/doc/manual/en_US/user_Security.xml @@ -0,0 +1,755 @@ + + + +%all.entities; +]> + + + Security Guide + + + + General Security Principles + + + The following principles are fundamental to using any application + securely. + + + + + + + Keep software up to date. One + of the principles of good security practise is to keep all + software versions and patches up to date. Activate the + &product-name; update notification to get notified when a new + &product-name; release is available. When updating + &product-name;, do not forget to update the Guest Additions. + Keep the host operating system as well as the guest operating + system up to date. + + + + + + Restrict network access to critical + services. Use proper means, for instance a + firewall, to protect your computer and your guests from + accesses from the outside. Choosing the proper networking mode + for VMs helps to separate host networking from the guest and + vice versa. + + + + + + Follow the principle of least + privilege. The principle of least privilege states + that users should be given the least amount of privilege + necessary to perform their jobs. Always execute &product-name; + as a regular user. We strongly discourage anyone from + executing &product-name; with system privileges. + + + + Choose restrictive permissions when creating configuration + files, for instance when creating /etc/default/virtualbox, see + . Mode 0600 is preferred. + + + + + + Monitor system activity. + System security builds on three pillars: good security + protocols, proper system configuration and system monitoring. + Auditing and reviewing audit records address the third + requirement. Each component within a system has some degree of + monitoring capability. Follow audit advice in this document + and regularly monitor audit records. + + + + + + Keep up to date on latest security + information. Oracle continually improves its + software and documentation. Check this note yearly for + revisions. + + + + + + + + + + Secure Installation and Configuration + + + + Installation Overview + + + The &product-name; base package should be downloaded only from a + trusted source, for instance the official website + . The integrity of the + package should be verified with the provided SHA256 checksum + which can be found on the official website. + + + + General &product-name; installation instructions for the + supported hosts can be found in . + + + + On Windows hosts, the installer can be used to disable USB + support, support for bridged networking, support for host-only + networking and the Python language binding. See + . All these features are + enabled by default but disabling some of them could be + appropriate if the corresponding functionality is not required + by any virtual machine. The Python language bindings are only + required if the &product-name; API is to be used by external + Python applications. In particular USB support and support for + the two networking modes require the installation of Windows + kernel drivers on the host. Therefore disabling those selected + features can not only be used to restrict the user to certain + functionality but also to minimize the surface provided to a + potential attacker. + + + + The general case is to install the complete &product-name; + package. The installation must be done with system privileges. + All &product-name; binaries should be executed as a regular user + and never as a privileged user. + + + + The &product-name; Extension Pack provides additional features + and must be downloaded and installed separately, see + . As for the base package, the + SHA256 checksum of the extension pack should be verified. As the + installation requires system privileges, &product-name; will ask + for the system password during the installation of the extension + pack. + + + + + + + Post Installation Configuration + + + Normally there is no post installation configuration of + &product-name; components required. However, on Oracle Solaris + and Linux hosts it is necessary to configure the proper + permissions for users executing VMs and who should be able to + access certain host resources. For instance, Linux users must be + member of the vboxusers group to be able to + pass USB devices to a guest. If a serial host interface should + be accessed from a VM, the proper permissions must be granted to + the user to be able to access that device. The same applies to + other resources like raw partitions, DVD/CD drives, and sound + devices. + + + + + + + + + Security Features + + + This section outlines the specific security mechanisms offered by + &product-name;. + + + + + The Security Model + + + One property of virtual machine monitors (VMMs) like + &product-name; is to encapsulate a guest by executing it in a + protected environment, a virtual machine, running as a user + process on the host operating system. The guest cannot + communicate directly with the hardware or other computers but + only through the VMM. The VMM provides emulated physical + resources and devices to the guest which are accessed by the + guest operating system to perform the required tasks. The VM + settings control the resources provided to the guest, for + example the amount of guest memory or the number of guest + processors and the enabled features for that guest. For example + remote control, certain screen settings and others. See + . + + + + + + + Secure Configuration of Virtual Machines + + + Several aspects of a virtual machine configuration are subject + to security considerations. + + + + + Networking + + + The default networking mode for VMs is NAT which means that + the VM acts like a computer behind a router, see + . The guest is part of a private + subnet belonging to this VM and the guest IP is not visible + from the outside. This networking mode works without any + additional setup and is sufficient for many purposes. Keep in + mind that NAT allows access to the host operating system's + loopback interface. + + + + If bridged networking is used, the VM acts like a computer + inside the same network as the host, see + . In this case, the guest has + the same network access as the host and a firewall might be + necessary to protect other computers on the subnet from a + potential malicious guest as well as to protect the guest from + a direct access from other computers. In some cases it is + worth considering using a forwarding rule for a specific port + in NAT mode instead of using bridged networking. + + + + Some setups do not require a VM to be connected to the public + network at all. Internal networking, see + , or host-only networking, + see , are often sufficient + to connect VMs among each other or to connect VMs only with + the host but not with the public network. + + + + + + + VRDP Remote Desktop Authentication + + + When using the &product-name; Extension Pack provided by + Oracle for VRDP remote desktop support, you can optionally use + various methods to configure RDP authentication. The "null" + method is very insecure and should be avoided in a public + network. See . + + + + + + + Clipboard + + + The shared clipboard enables users to share data between the + host and the guest. Enabling the clipboard in Bidirectional + mode enables the guest to read and write the host clipboard. + The Host to Guest mode and the Guest to Host mode limit the + access to one direction. If the guest is able to access the + host clipboard it can also potentially access sensitive data + from the host which is shared over the clipboard. + + + + If the guest is able to read from and/or write to the host + clipboard then a remote user connecting to the guest over the + network will also gain this ability, which may not be + desirable. As a consequence, the shared clipboard is disabled + for new machines. + + + + + + + Shared Folders + + + If any host folder is shared with the guest then a remote user + connected to the guest over the network can access these files + too as the folder sharing mechanism cannot be selectively + disabled for remote users. + + + + + + + 3D Graphics Acceleration + + + Enabling 3D graphics using the Guest Additions exposes the + host to additional security risks. See + . + + + + + + + CD/DVD Passthrough + + + Enabling CD/DVD passthrough enables the guest to perform + advanced operations on the CD/DVD drive, see + . This could induce a security + risk as a guest could overwrite data on a CD/DVD medium. + + + + + + + USB Passthrough + + + Passing USB devices to the guest provides the guest full + access to these devices, see . + For instance, in addition to reading and writing the content + of the partitions of an external USB disk the guest will be + also able to read and write the partition table and hardware + data of that disk. + + + + + + + + + Configuring and Using Authentication + + + The following components of &product-name; can use passwords for + authentication: + + + + + + + When using remote iSCSI storage and the storage server + requires authentication, an initiator secret can optionally + be supplied with the VBoxManage + storageattach command. As long as no settings + password is provided, by using the command line option + , then this secret is + stored unencrypted in the machine + configuration and is therefore potentially readable on the + host. See and + . + + + + + + When using the &product-name; web service to control an + &product-name; host remotely, connections to the web service + are authenticated in various ways. This is described in + detail in the &product-name; Software Development Kit (SDK) + reference. See . + + + + + + + + + + + + Potentially Insecure Operations + + + The following features of &product-name; can present security + problems: + + + + + + + Enabling 3D graphics using the Guest Additions exposes the + host to additional security risks. See + . + + + + + + When teleporting a machine, the data stream through which + the machine's memory contents are transferred from one host + to another is not encrypted. A third party with access to + the network through which the data is transferred could + therefore intercept that data. An SSH tunnel could be used + to secure the connection between the two hosts. But when + considering teleporting a VM over an untrusted network the + first question to answer is how both VMs can securely access + the same virtual disk image with a reasonable performance. + + If the network is not sufficiently trusted, the password + should be changed for each teleportation as the a 3rd party + could snoop up the unecrypted password hash when it is + transferred between the target and source host machines. + + + + + + When Page Fusion, see , + is enabled, it is possible that a side-channel opens up that + enables a malicious guest to determine the address space of + another VM running on the same host layout. For example, + where DLLs are typically loaded. This information leak in + itself is harmless, however the malicious guest may use it + to optimize attack against that VM through unrelated attack + vectors. It is recommended to only enable Page Fusion if you + do not think this is a concern in your setup. + + + + + + When using the &product-name; web service to control an + &product-name; host remotely, connections to the web + service, over which the API calls are transferred using SOAP + XML, are not encrypted. They use plain HTTP by default. This + is a potential security risk. For details about the web + service, see . + + + + The web services are not started by default. See + to find out how to start + this service and how to enable SSL/TLS support. It has to be + started as a regular user and only the VMs of that user can + be controlled. By default, the service binds to localhost + preventing any remote connection. + + + + + + Traffic sent over a UDP Tunnel network attachment is not + encrypted. You can either encrypt it on the host network + level, with IPsec, or use encrypted protocols in the guest + network, such as SSH. The security properties are similar to + bridged Ethernet. + + + + + + Because of shortcomings in older Windows versions, using + &product-name; on Windows versions older than Vista with + Service Pack 1 is not recommended. + + + + + + + + + + Encryption + + + The following components of &product-name; use encryption to + protect sensitive data: + + + + + + + When using the &product-name; Extension Pack provided by + Oracle for VRDP remote desktop support, RDP data can + optionally be encrypted. See . + Only the Enhanced RDP Security method (RDP5.2) with TLS + protocol provides a secure connection. Standard RDP Security + (RDP4 and RDP5.1) is vulnerable to a man-in-the-middle + attack. + + + + + + When using the &product-name; Extension Pack provided by + Oracle for disk encryption, the data stored in disk images + can optionally be encrypted. See + . This feature covers disk + image content only. All other data for a virtual machine is + stored unencrypted, including the VM's memory and device + state which is stored as part of a saved state, both when + created explicitly or part of a snapshot of a running VM. + + + + + + + + + + + + + + Security Recommendations + + + This section contains security recommendations for specific + issues. By default VirtualBox will configure the VMs to run in a + secure manner, however this may not always be possible without + additional user actions such as host OS or firmware configuration + changes. + + + + + CVE-2018-3646 + + + This security issue affect a range of Intel CPUs with nested + paging. AMD CPUs are expected not to be impacted (pending direct + confirmation by AMD). Also the issue does not affect VMs running + with hardware virtualization disabled or with nested paging + disabled. + + + + For more information about nested paging, see + . + + + + The following mitigation options are available. + + + + + Disable Nested Paging + + + By disabling nested paging (EPT), the VMM will construct page + tables shadowing the ones in the guest. It is no possible for + the guest to insert anything fishy into the page tables, since + the VMM carefully validates each entry before shadowing it. + + + + As a side effect of disabling nested paging, several CPU + features will not be made available to the guest. Among these + features are AVX, AVX2, XSAVE, AESNI, and POPCNT. Not all + guests may be able to cope with dropping these features after + installation. Also, for some guests, especially in SMP + configurations, there could be stability issues arising from + disabling nested paging. Finally, some workloads may + experience a performance degradation. + + + + + + + Flushing the Level 1 Data Cache + + + This aims at removing potentially sensitive data from the + level 1 data cache when running guest code. However, it is + made difficult by hyper-threading setups sharing the level 1 + cache and thereby potentially letting the other thread in a + pair refill the cache with data the user does not want the + guest to see. In addition, flushing the level 1 data cache is + usually not without performance side effects. + + + + Up to date CPU microcode is a prerequisite for the cache + flushing mitigations. Some host OSes may install these + automatically, though it has traditionally been a task best + performed by the system firmware. So, please check with your + system / mainboard manufacturer for the latest firmware + update. + + + + We recommend disabling hyper threading on the host. This is + traditionally done from the firmware setup, but some OSes also + offers ways disable HT. In some cases it may be disabled by + default, but please verify as the effectiveness of the + mitigation depends on it. + + + + The default action taken by VirtualBox is to flush the level 1 + data cache when a thread is scheduled to execute guest code, + rather than on each VM entry. This reduces the performance + impact, while making the assumption that the host OS will not + handle security sensitive data from interrupt handlers and + similar without taking precautions. + + + + A more aggressive flushing option is provided via the + VBoxManage modifyvm + option. When enabled + the level 1 data cache will be flushed on every VM entry. The + performance impact is greater than with the default option, + though this of course depends on the workload. Workloads + producing a lot of VM exits (like networking, VGA access, and + similiar) will probably be most impacted. + + + + For users not concerned by this security issue, the default + mitigation can be disabled using the VBoxManage + modifyvm name --l1d-flush-on-sched off command. + + + + + + + + + CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091 + + + These security issues affect a range of Intel CPUs starting with + Nehalem. The CVE-2018-12130 also affects some Atom Silvermont, + Atom Airmont, and Knights family CPUs, however the scope is so + limited that the host OS should deal with it and &product-name; + is therefore not affected. Leaks only happens when entering and + leaving C states. + + + + The following mitigation option is available. + + + + + Buffer Overwriting and Disabling Hyper-Threading + + + First, up to date CPU microcode is a prerequisite for the + buffer overwriting (clearing) mitigations. Some host OSes may + install these automatically, though it has traditionally been + a task best performed by the system firmware. Please check + with your system or mainboard manufacturer for the latest + firmware update. + + + + This mitigation aims at removing potentially sensitive data + from the affected buffers before running guest code. Since + this means additional work each time the guest is scheduled, + there might be some performance side effects. + + + + We recommend disabling hyper-threading (HT) on hosts affected + by CVE-2018-12126 and CVE-2018-12127, because the affected + sets of buffers are normally shared between thread pairs and + therefore cause leaks between the threads. This is + traditionally done from the firmware setup, but some OSes also + offers ways disable HT. In some cases it may be disabled by + default, but please verify as the effectiveness of the + mitigation depends on it. + + + + The default action taken by &product-name; is to clear the + affected buffers when a thread is scheduled to execute guest + code, rather than on each VM entry. This reduces the + performance impact, while making the assumption that the host + OS will not handle security sensitive data from interrupt + handlers and similar without taking precautions. + + + + The VBoxManage modifyvm command provides a + more aggressive flushing option is provided by means of the + option. When enabled + the affected buffers will be cleared on every VM entry. The + performance impact is greater than with the default option, + though this of course depends on the workload. Workloads + producing a lot of VM exits (like networking, VGA access, and + similiar) will probably be most impacted. + + + + For users not concerned by this security issue, the default + mitigation can be disabled using the VBoxManage + modifyvm name --mds-clear-on-sched off command. + + + + + + + + + diff --git a/doc/manual/en_US/user_Storage.xml b/doc/manual/en_US/user_Storage.xml new file mode 100644 index 00000000..ee7053c9 --- /dev/null +++ b/doc/manual/en_US/user_Storage.xml @@ -0,0 +1,2112 @@ + + + +%all.entities; +]> + + + Virtual Storage + + + As the virtual machine will most probably expect to see a hard disk + built into its virtual computer, &product-name; must be able to + present real storage to the guest as a virtual hard disk. There are + presently three methods by which to achieve this: + + + + + + + &product-name; can use large image files on a real hard disk and + present them to a guest as a virtual hard disk. This is the most + common method, described in . + + + + + + iSCSI storage servers can be attached to &product-name;. This is + described in . + + + + + + You can allow a virtual machine to access one of your host disks + directly. This is an advanced feature, described in + . + + + + + + + Each such virtual storage device, such as an image file, iSCSI + target, or physical hard disk, needs to be connected to the virtual + hard disk controller that &product-name; presents to a virtual + machine. This is explained in the next section. + + + + + Hard Disk Controllers + + + In a computing device, hard disks and CD/DVD drives are connected + to a device called a hard disk controller, which drives hard disk + operation and data transfers. &product-name; can emulate the most + common types of hard disk controllers typically found in computing + devices: IDE, SATA (AHCI), SCSI, SAS, USB-based, NVMe and + virtio-scsi mass storage devices. + + + + + + + IDE (ATA) controllers are a + backwards-compatible yet very advanced extension of the disk + controller in the IBM PC/AT (1984). Initially, this interface + worked only with hard disks, but was later extended to also + support CD-ROM drives and other types of removable media. In + physical PCs, this standard uses flat ribbon parallel cables + with 40 or 80 wires. Each such cable can connect two devices, + called device 0 and device 1, to a controller. Typical PCs had + two connectors for such cables. As a result, support for up to + four IDE devices was most common: primary device 0, primary + device 1, secondary device 0, and secondary device 1. + + + + In &product-name;, each virtual machine may have one IDE + controller enabled, which gives you up to four virtual storage + devices that you can attach to the machine. By default, one of + these virtual storage devices, device 0 on the secondary + channel, is preconfigured to be the virtual machine's virtual + CD/DVD drive. However, you can change the default setting. + + + + Even if your guest OS has no support for SCSI or SATA devices, + it should always be able to see an IDE controller. + + + + You can also select which exact type of IDE controller + hardware &product-name; should present to the virtual machine: + PIIX3, PIIX4, or ICH6. This makes no difference in terms of + performance, but if you import a virtual machine from another + virtualization product, the OS in that machine may expect a + particular controller type and crash if it is not found. + + + + After you have created a new virtual machine with the + New Virtual Machine wizard in + &vbox-mgr;, you will typically see one IDE controller in the + machine's Storage settings. + The virtual CD/DVD drive will be attached to one of the four + ports of this controller. + + + + + + Serial ATA (SATA) is a more + recent standard than IDE. Compared to IDE, it supports both + much higher speeds and more devices per controller. Also, with + physical hardware, devices can be added and removed while the + system is running. The standard interface for SATA controllers + is called Advanced Host Controller Interface (AHCI). + + + + Like a real SATA controller, &product-name;'s virtual SATA + controller operates faster and also consumes fewer CPU + resources than the virtual IDE controller. Also, this enables + you to connect up to 30 virtual hard disks to one machine + instead of just three, when compared to the &product-name; IDE + controller with a DVD drive attached. + + + + For this reason, depending on the selected guest OS, + &product-name; uses SATA as the default for newly created + virtual machines. One virtual SATA controller is created by + default, and the default disk that is created with a new VM is + attached to this controller. + + + + + The entire SATA controller and the virtual disks attached to + it, including those in IDE compatibility mode, will not be + seen by OSes that do not have device support for AHCI. In + particular, there is no support for AHCI in + Windows versions before Windows Vista. Legacy + Windows versions such as Windows XP, even with SP3 + installed, will not see such disks unless you install + additional drivers. It is possible to switch from IDE to + SATA after installation by installing the SATA drivers and + changing the controller type in the VM + Settings window. + + + + &product-name; recommends the Intel Matrix Storage drivers, + which can be downloaded from + . + + + + + To add a SATA controller to a machine for which it has not + been enabled by default, either because it was created by an + earlier version of &product-name;, or because SATA is not + supported by default by the selected guest OS, do the + following. Go to the Storage + page of the machine's + Settings window, click + Add Controller under the + Storage Tree box and then select Add + SATA Controller. The new controller appears as a + separate PCI device in the virtual machine, and you can add + virtual disks to it. + + + + To change the IDE compatibility mode settings for the SATA + controller, see . + + + + + + SCSI is another established + industry standard, standing for Small Computer System + Interface. SCSI is as a generic interface for data transfer + between all kinds of devices, including storage devices. SCSI + is still used for connecting some hard disks and tape devices, + but it has mostly been displaced in commodity hardware. It is + still in common use in high-performance workstations and + servers. + + + + Primarily for compatibility with other virtualization + software, &product-name; optionally supports LSI Logic and + BusLogic SCSI controllers, to each of which up to fifteen + virtual hard disks can be attached. + + + + To enable a SCSI controller, on the + Storage page of a virtual + machine's Settings window, + click Add Controller under + the Storage Tree box and then select Add + SCSI Controller. The new controller appears as a + separate PCI device in the virtual machine. + + + + + As with the other controller types, a SCSI controller will + only be seen by OSes with device support for it. Windows + 2003 and later ships with drivers for the LSI Logic + controller, while Windows NT 4.0 and Windows 2000 ships with + drivers for the BusLogic controller. Windows XP ships with + drivers for neither. + + + + + + + Serial Attached SCSI (SAS) is + another bus standard which uses the SCSI command set. As + opposed to SCSI physical devices, serial cables are used + instead of parallel cables. This simplifies physical device + connections. In some ways, therefore, SAS is to SCSI what SATA + is to IDE: it enables more reliable and faster connections. + + + + To support high-end guests which require SAS controllers, + &product-name; emulates a LSI Logic SAS controller, which can + be enabled much the same way as a SCSI controller. At this + time, up to 255 devices can be connected to the SAS + controller. + + + + + As with SATA, the SAS controller will only be seen by OSes + with device support for it. In particular, there + is no support for SAS in Windows before Windows + Vista. So Windows XP, even SP3, will not see such + disks unless you install additional drivers. + + + + + + + The USB mass storage device + class is a standard to connect external storage + devices like hard disks or flash drives to a host through USB. + All major OSes support these devices and ship generic drivers + making third-party drivers superfluous. In particular, legacy + OSes without support for SATA controllers may benefit from USB + mass storage devices. + + + + The virtual USB storage controller offered by &product-name; + works differently to the other storage controller types. While + most storage controllers appear as a single PCI device to the + guest with multiple disks attached to it, the USB-based + storage controller does not appear as virtual storage + controller. Each disk attached to the controller appears as a + dedicated USB device to the guest. + + + + + Booting from drives attached using USB is only supported + when EFI is used as the BIOS lacks USB support. + + + + + + + Non volatile memory express + (NVMe) is a standard for connecting non volatile + memory (NVM) directly over PCI Express to lift the bandwidth + limitation of the previously used SATA protocol for + solid-state devices. Unlike other standards the command set is + very simple in order to achieve maximum throughput and is not + compatible with ATA or SCSI. OSes need to support NVMe devices + to make use of them. For example, Windows 8.1 added native + NVMe support. For Windows 7, native support was added with an + update. + + + + The NVMe controller is part of the extension pack. + + + + + Booting from drives attached using NVMe is only supported + when EFI is used as the BIOS lacks the appropriate driver. + + + + + + + Virtual I/O Device SCSI is a + standard to connect virtual storage devices like hard disks or + optical drives to a VM. Recent Linux and Windows versions + support these devices, but Windows needs additional drivers. + Currently virtio-scsi controller support is experimental. + + + + + The virtio-scsi controller will only be seen by OSes with + device support for it. In particular, there is no + built-in support in Windows. So Windows will not + see such disks unless you install additional drivers. + + + + + + + + In summary, &product-name; gives you the following categories of + virtual storage slots: + + + + + + + Four slots attached to the traditional IDE controller, which + are always present. One of these is typically a virtual CD/DVD + drive. + + + + + + 30 slots attached to the SATA controller, if enabled and + supported by the guest OS. + + + + + + 15 slots attached to the SCSI controller, if enabled and + supported by the guest OS. + + + + + + Up to 255 slots attached to the SAS controller, if enabled and + supported by the guest OS. + + + + + + Eight slots attached to the virtual USB controller, if enabled + and supported by the guest OS. + + + + + + Up to 255 slots attached to the NVMe controller, if enabled + and supported by the guest OS. + + + + + + Up to 256 slots attached to the virtio-scsi controller, if + enabled and supported by the guest OS. + + + + + + + Given this large choice of storage controllers, you may not know + which one to choose. In general, you should avoid IDE unless it is + the only controller supported by your guest. Whether you use SATA, + SCSI, or SAS does not make any real difference. The variety of + controllers is only supplied by &product-name; for compatibility + with existing hardware and other hypervisors. + + + + + + + Disk Image Files (VDI, VMDK, VHD, HDD) + + + Disk image files reside on the host system and are seen by the + guest systems as hard disks of a certain geometry. When a guest OS + reads from or writes to a hard disk, &product-name; redirects the + request to the image file. + + + + Like a physical disk, a virtual disk has a size, or capacity, + which must be specified when the image file is created. As opposed + to a physical disk however, &product-name; enables you to expand + an image file after creation, even if it has data already. See + . + + + + &product-name; supports the following types of disk image files: + + + + + + + VDI. Normally, &product-name; + uses its own container format for guest hard disks. This is + called a Virtual Disk Image (VDI) file. This format is used + when you create a new virtual machine with a new disk. + + + + + + VMDK. &product-name; also + fully supports the popular and open VMDK container format that + is used by many other virtualization products, such as VMware. + + + + + + VHD. &product-name; also + fully supports the VHD format used by Microsoft. + + + + + + HDD. Image files of Parallels + version 2 (HDD format) are also supported. + + + + Due to lack of documentation of the format, newer versions + such as 3 and 4 are not supported. You can however convert + such image files to version 2 format using tools provided by + Parallels. + + + + + + + Irrespective of the disk capacity and format, as mentioned in + , there are two options for + creating a disk image: fixed-size or dynamically allocated. + + + + + + + Fixed-size. If you create a + fixed-size image, an image file will be created on your host + system which has roughly the same size as the virtual disk's + capacity. So, for a 10 GB disk, you will have a 10 GB file. + Note that the creation of a fixed-size image can take a long + time depending on the size of the image and the write + performance of your hard disk. + + + + + + Dynamically allocated. For + more flexible storage management, use a dynamically allocated + image. This will initially be very small and not occupy any + space for unused virtual disk sectors, but will grow every + time a disk sector is written to for the first time, until the + drive reaches the maximum capacity chosen when the drive was + created. While this format takes less space initially, the + fact that &product-name; needs to expand the image file + consumes additional computing resources, so until the disk + file size has stabilized, write operations may be slower than + with fixed size disks. However, after a time the rate of + growth will slow and the average penalty for write operations + will be negligible. + + + + + + + + + + The Virtual Media Manager + + + &product-name; keeps track of all the hard disk, CD/DVD-ROM, and + floppy disk images which are in use by virtual machines. These are + often referred to as known media and come + from two sources: + + + + + + + All media currently attached to virtual machines. + + + + + + Registered media, for compatibility with legacy &product-name; + versions. + + + + + + + The known media can be viewed and changed using the + Virtual Media Manager tool, which + you access by clicking Media on + the global Tools menu in + &vbox-mgr;. + + +
+ The Virtual Media Manager, Showing Hard Disk Images + + + + + +
+ + + The known media are conveniently grouped in separate tabs for the + supported formats. These formats are: + + + + + + + Hard disk images, either in &product-name;'s own Virtual Disk + Image (VDI) format, or in the third-party formats listed in + . + + + + + + CD/DVD images in standard ISO format. + + + + + + Floppy images in standard RAW format. + + + + + + + For each image, the Virtual Media Manager shows you the full path + of the image file and other information, such as the virtual + machine the image is currently attached to. + + + + The Virtual Media Manager enables you to do the following: + + + + + + + Add an image to the known + media. + + + + + + Create a new disk image. + + + + + + + For hard disks, the Create Virtual + Hard Disk wizard is shown. See + . + + + + + + For optical disks, the VISO + Creator tool is shown. See + . + + + + + + For floppy disks, the Floppy Disk + Creator tool is shown. See + . + + + + + + + + + Copy an image to create + another one. + + + + For virtual hard disks, you can specify one of the following + target types: VDI, VHD, or VMDK. + + + + + + Move an image to another + location. + + + + A file dialog prompts you for the new image file location. + + + + When you use the Virtual Media Manager to move a disk image, + &product-name; updates all related configuration files + automatically. + + + + + Always use the Virtual Media Manager or the + VBoxManage modifymedium command to move a + disk image. + + + + If you use a file management feature of the host OS to move + a disk image to a new location, run the VBoxManage + modifymedium + command to configure the new path of the disk image on the + host file system. This command updates the &product-name; + configuration automatically. + + + + + + + Remove an image from the + known media. You can optionally delete the image file when + removing the image. + + + + + + Release an image to detach it + from a VM. This action only applies if the image is currently + attached to a VM as a virtual hard disk. + + + + + + Clear all inaccessible disk + images from the list. The disk images are released from the + VMs they are attached to and removed from the known media. + + + + + This option is for optical disks and floppy disks only. + + + + + + + Search for an image by name + or UUID. + + + + + + View and edit the Properties + of a disk image. + + + + Available properties include the following: + + + + + + + Type: Specifies the + snapshot behavior of the disk. See + . + + + + + + Location: Specifies the + location of the disk image file on the host system. You + can use a file dialog to browse for the disk image + location. + + + + + + Description: Specifies a + short description of the disk image. + + + + + + Size: Specifies the size + of the disk image. You can use the slider to increase or + decrease the disk image size. + + + + + + Information: Specifies + detailed information about the disk image. + + + + + + + + + Refresh the property values + of the selected disk image. + + + + + + + To perform these actions, highlight the medium in the Virtual + Media Manager and then do one of the following: + + + + + + + Click an icon in the Virtual Media Manager toolbar. + + + + + + Right-click the medium and select an option. + + + + + + + Use the Storage page in a VM's + Settings window to create a new + disk image. By default, disk images are stored in the VM's folder. + + + + You can copy hard disk image files to other host systems and then + import them in to VMs from the host system. However, some Windows + guest OSes may require that you configure the new VM in a similar + way to the old one. + + + + + Do not simply make copies of virtual disk images. If you import + such a second copy into a VM, &product-name; issues an error + because &product-name; assigns a universally unique identifier + (UUID) to each disk image to ensure that it is only used one + time. See . Also, if you want to + copy a VM to another system, use the &product-name; import and + export features. See . + + + + + + Creating a Virtual Hard Disk Image + + + Use the Create Virtual Hard + Disk wizard to create a hard disk image. + + + + + + + Display the Hard Disks tab + in Virtual Media Manager and click + Create. + + + + The Create Virtual Hard + Disk wizard is shown. + + +
+ Create Virtual Hard Disk Wizard + + + + + +
+
+ + + + On the Virtual Hard Disk File + Type page, select a file type for the new virtual + hard disk image. + + + + Click Next. + + + + + + On the Storage on Physical Hard + Disk page, select whether the size of the virtual + hard disk file is dynamically allocated or is of fixed size. + + + + Click Next. + + + + + + On the File Location and + Size page, configure the location of the virtual + hard disk file and use the slider to set the size limit for + the virtual hard disk. + + + + Click Finish to create the + virtual hard disk file. + + + + The virtual hard disk image is created in the specified + location and added to the Hard + Disks tab in Virtual Media Manager. + + + +
+ +
+ + + + Creating a Virtual Optical Disk Image + + + Use the VISO Creator tool to + create a virtual optical disk image. This enables you to create + a virtual ISO from selected files on the host. + + + + + + + Display the Optical Disks + tab in Virtual Media Manager and click + Create. + + + + The VISO Creator tool is + shown. + + + + + + Create the virtual ISO file. + + + + + + + Configure the name of the ISO file. + + + + Click Configuration and + enter a name in the Viso + Name field. + + + + + + Add files to your virtual ISO. + + + + In the Host File System + pane, select files to copy from the host system to the + virtual ISO. + + + + Click Add Items To + VISO. The files are displayed in the + VISO Content pane. + + + + The following file operations are also available: + + + + + + + To create folders on the virtual ISO, click + Create New + Directory. + + + + + + To remove files from the virtual ISO, select files + in the VISO Content + pane and click Remove Items + From VISO. + + + + + + To remove all files from the + virtual ISO, click Reset the + VISO Content. + + + + + + + + + + + + Create the virtual ISO image. + + + + Click Create. + + + + A virtual ISO file with the specified name and content is + created. + + + + + + + + + + Creating a Virtual Floppy Disk Image + + + Use the Floppy Disk Creator + tool to create a floppy disk image. + + + + + + + Display the Floppy Disks + tab in Virtual Media Manager and click + Create. + + + + The Floppy Disk Creator + tool is shown. + + + + + + Configure the following settings: + + + + + + + File Path: The name and + location of the floppy disk image. + + + + + + Size: Select from the + list of supported floppy disk sizes. + + + + + + Format Disk as FAT 12: + This is the default format used for most floppy disks. + For an unformatted disk, do not select this option. + + + + + + + + + Create the floppy disk image file. + + + + Click Create. + + + + The floppy disk image is created in the specified location + and added to the Floppy + Disks tab in Virtual Media Manager. + + + + + + + +
+ + + + Special Image Write Modes + + + For each virtual disk image supported by &product-name;, you can + determine separately how it should be affected by write operations + from a virtual machine and snapshot operations. This applies to + all of the aforementioned image formats (VDI, VMDK, VHD, or HDD) + and irrespective of whether an image is fixed-size or dynamically + allocated. + + + + By default, images are in normal mode. To + mark an existing image with one of the non-standard modes listed + below, use VBoxManage modifymedium. See + . Alternatively, use + VBoxManage storageattach to attach the image to + a VM and specify the argument. See + . + + + + The available virtual disk image modes are as follows: + + + + + + + Normal images have no + restrictions on how guests can read from and write to the + disk. This is the default image mode. + + + + When you take a snapshot of your virtual machine as described + in , the state of a normal hard + disk is recorded together with the snapshot, and when + reverting to the snapshot, its state will be fully reset. + + + + The image file itself is not reset. Instead, when a snapshot + is taken, &product-name; freezes the + image file and no longer writes to it. For the write + operations from the VM, a second, + differencing image file is created which + receives only the changes to the original image. See + . + + + + While you can attach the same normal image to more than one + virtual machine, only one of these virtual machines attached + to the same image file can be executed simultaneously, as + otherwise there would be conflicts if several machines write + to the same image file. + + + + + + Write-through hard disks are + completely unaffected by snapshots. Their state is + not saved when a snapshot is taken, and + not restored when a snapshot is restored. + + + + + + Shareable hard disks are a + variant of write-through hard disks. In principle they behave + exactly the same. Their state is not + saved when a snapshot is taken, and not restored when a + snapshot is restored. The difference only shows if you attach + such disks to several VMs. Shareable disks may be attached to + several VMs which may run concurrently. This makes them + suitable for use by cluster filesystems between VMs and + similar applications which are explicitly prepared to access a + disk concurrently. Only fixed size images can be used in this + way, and dynamically allocated images are rejected. + + + + + This is an expert feature, and misuse can lead to data loss, + as regular filesystems are not prepared to handle + simultaneous changes by several parties. + + + + + + + Immutable images only + remember write accesses temporarily while the virtual machine + is running. All changes are lost when the virtual machine is + powered on the next time. As a result, as opposed to Normal + images, the same immutable image can be used with several + virtual machines without restrictions. + + + + Creating an immutable image makes little sense since it would + be initially empty and lose its contents with every machine + restart. You would have a disk that is always unformatted when + the machine starts up. Instead, you can first create a normal + image and then later mark it as immutable when you decide that + the contents are useful. + + + + If you take a snapshot of a machine with immutable images, + then on every machine power-up, those images are reset to the + state of the last (current) snapshot, instead of the state of + the original immutable image. + + + + + As a special exception, immutable images are + not reset if they are attached to a + machine in a saved state or whose last snapshot was taken + while the machine was running. This is called an + online snapshot. As a result, if the + machine's current snapshot is an online snapshot, its + immutable images behave exactly like the a normal image. To + reenable the automatic resetting of such images, delete the + current snapshot of the machine. + + + + + &product-name; never writes to an immutable image directly at + all. All write operations from the machine are directed to a + differencing image. The next time the VM is powered on, the + differencing image is reset so that every time the VM starts, + its immutable images have exactly the same content. + + + + The differencing image is only reset when the machine is + powered on from within &product-name;, not when you reboot by + requesting a reboot from within the machine. This is also why + immutable images behave as described above when snapshots are + also present, which use differencing images as well. + + + + If the automatic discarding of the differencing image on VM + startup does not fit your needs, you can turn it off using the + parameter of VBoxManage + modifymedium. See + . + + + + + + Multiattach mode images can + be attached to more than one virtual machine at the same time, + even if these machines are running simultaneously. For each + virtual machine to which such an image is attached, a + differencing image is created. As a result, data that is + written to such a virtual disk by one machine is not seen by + the other machines to which the image is attached. Each + machine creates its own write history of the multiattach + image. + + + + Technically, a multiattach image behaves identically to an + immutable image except the differencing image is not reset + every time the machine starts. + + + + This mode is useful for sharing files which are almost never + written, for instance picture galleries, where every guest + changes only a small amount of data and the majority of the + disk content remains unchanged. The modified blocks are stored + in differencing images which remain relatively small and the + shared content is stored only once at the host. + + + + + + Read-only images are used + automatically for CD/DVD images, since CDs/DVDs can never be + written to. + + + + + + + The following scenario illustrates the differences between the + various image modes, with respect to snapshots. + + + + Assume you have installed your guest OS in your VM, and you have + taken a snapshot. Later, your VM is infected with a virus and you + would like to go back to the snapshot. With a normal hard disk + image, you simply restore the snapshot, and the earlier state of + your hard disk image will be restored as well and your virus + infection will be undone. With an immutable hard disk, all it + takes is to shut down and power on your VM, and the virus + infection will be discarded. With a write-through image however, + you cannot easily undo the virus infection by means of + virtualization, but will have to disinfect your virtual machine + like a real computer. + + + + You might find write-through images useful if you want to preserve + critical data irrespective of snapshots. As you can attach more + than one image to a VM, you may want to have one immutable image + for the OS and one write-through image for your data files. + + + + + + + Differencing Images + + + The previous section mentioned differencing images and how they + are used with snapshots, immutable images, and multiple disk + attachments. This section describes in more detail how + differencing images work. + + + + A differencing image is a special disk image that only holds the + differences to another image. A differencing image by itself is + useless, it must always refer to another image. The differencing + image is then typically referred to as a + child, which holds the differences to its + parent. + + + + When a differencing image is active, it receives all write + operations from the virtual machine instead of its parent. The + differencing image only contains the sectors of the virtual hard + disk that have changed since the differencing image was created. + When the machine reads a sector from such a virtual hard disk, it + looks into the differencing image first. If the sector is present, + it is returned from there. If not, &product-name; looks into the + parent. In other words, the parent becomes + read-only. It is never written to again, but + it is read from if a sector has not changed. + + + + Differencing images can be chained. If another differencing image + is created for a virtual disk that already has a differencing + image, then it becomes a grandchild of the + original parent. The first differencing image then becomes + read-only as well, and write operations only go to the + second-level differencing image. When reading from the virtual + disk, &product-name; needs to look into the second differencing + image first, then into the first if the sector was not found, and + then into the original image. + + + + There can be an unlimited number of differencing images, and each + image can have more than one child. As a result, the differencing + images can form a complex tree with parents, siblings, and + children, depending on how complex your machine configuration is. + Write operations always go to the one active + differencing image that is attached to the machine, and for read + operations, &product-name; may need to look up all the parents in + the chain until the sector in question is found. You can view such + a tree in the Virtual Media Manager. + + +
+ Differencing Images, Shown in Virtual Media Manager + + + + + +
+ + + In all of these situations, from the point of view of the virtual + machine, the virtual hard disk behaves like any other disk. While + the virtual machine is running, there is a slight run-time I/O + overhead because &product-name; might need to look up sectors + several times. This is not noticeable however since the tables + with sector information are always kept in memory and can be + looked up quickly. + + + + Differencing images are used in the following situations: + + + + + + + Snapshots. When you create a + snapshot, as explained in the previous section, &product-name; + freezes the images attached to the + virtual machine and creates differencing images for each image + that is not in write-through mode. From + the point of view of the virtual machine, the virtual disks + continue to operate before, but all write operations go into + the differencing images. Each time you create another + snapshot, for each hard disk attachment, another differencing + image is created and attached, forming a chain or tree. + + + + In the above screenshot, you see that the original disk image + is now attached to a snapshot, representing the state of the + disk when the snapshot was taken. + + + + If you restore a snapshot, and want to go + back to the exact machine state that was stored in the + snapshot, the following happens: + + + + + + + &product-name; copies the virtual machine settings that + were copied into the snapshot back to the virtual machine. + As a result, if you have made changes to the machine + configuration since taking the snapshot, they are undone. + + + + + + If the snapshot was taken while the machine was running, + it contains a saved machine state, and that state is + restored as well. After restoring the snapshot, the + machine will then be in Saved state and resume execution + from there when it is next started. Otherwise the machine + will be in Powered Off state and do a full boot. + + + + + + For each disk image attached to the machine, the + differencing image holding all the write operations since + the current snapshot was taken is thrown away, and the + original parent image is made active again. If you + restored the root snapshot, then this will be the root + disk image for each attachment. Otherwise, some other + differencing image descended from it. This effectively + restores the old machine state. + + + + + + + If you later delete a snapshot in order + to free disk space, for each disk attachment, one of the + differencing images becomes obsolete. In this case, the + differencing image of the disk attachment cannot simply be + deleted. Instead, &product-name; needs to look at each sector + of the differencing image and needs to copy it back into its + parent. This is called "merging" images and can be a + potentially lengthy process, depending on how large the + differencing image is. It can also temporarily need a + considerable amount of extra disk space, before the + differencing image obsoleted by the merge operation is + deleted. + + + + + + Immutable images. When an + image is switched to immutable mode, a differencing image is + created as well. As with snapshots, the parent image then + becomes read-only, and the differencing image receives all the + write operations. Every time the virtual machine is started, + all the immutable images which are attached to it have their + respective differencing image thrown away, effectively + resetting the virtual machine's virtual disk with every + restart. + + + + + +
+ + + + Cloning Disk Images + + + You can duplicate hard disk image files on the same host to + quickly produce a second virtual machine with the same OS setup. + However, you should only make copies of + virtual disk images using the utility supplied with + &product-name;. See . + This is because &product-name; assigns a UUID to each disk image, + which is also stored inside the image, and &product-name; will + refuse to work with two images that use the same number. If you do + accidentally try to reimport a disk image which you copied + normally, you can make a second copy using the VBoxManage + clonevm command and import that instead. + + + + Note that Linux distributions identify the boot hard disk from the + ID of the drive. The ID &product-name; reports for a drive is + determined from the UUID of the virtual disk image. So if you + clone a disk image and try to boot the copied image the guest + might not be able to determine its own boot disk as the UUID + changed. In this case you have to adapt the disk ID in your boot + loader script, for example + /boot/grub/menu.lst. The disk ID looks like + the following: + + +scsi-SATA_VBOX_HARDDISK_VB5cfdb1e2-c251e503 + + + The ID for the copied image can be determined as follows: + + +hdparm -i /dev/sda + + + + + + Host Input/Output Caching + + + &product-name; can optionally disable the I/O caching that the + host OS would otherwise perform on disk image files. + + + + Traditionally, &product-name; has opened disk image files as + normal files, which results in them being cached by the host OS + like any other file. The main advantage of this is speed: when the + guest OS writes to disk and the host OS cache uses delayed + writing, the write operation can be reported as completed to the + guest OS quickly while the host OS can perform the operation + asynchronously. Also, when you start a VM a second time and have + enough memory available for the OS to use for caching, large parts + of the virtual disk may be in system memory, and the VM can access + the data much faster. + + + + Note that this applies only to image files. Buffering does not + occur for virtual disks residing on remote iSCSI storage, which is + the more common scenario in enterprise-class setups. See + . + + + + While buffering is a useful default setting for virtualizing a few + machines on a desktop computer, there are some disadvantages to + this approach: + + + + + + + Delayed writing through the host OS cache is less secure. When + the guest OS writes data, it considers the data written even + though it has not yet arrived on a physical disk. If for some + reason the write does not happen, such as power failure or + host crash, the likelihood of data loss increases. + + + + + + Disk image files tend to be very large. Caching them can + therefore quickly use up the entire host OS cache. Depending + on the efficiency of the host OS caching, this may slow down + the host immensely, especially if several VMs run at the same + time. For example, on Linux hosts, host caching may result in + Linux delaying all writes until the host cache is nearly full + and then writing out all these changes at once, possibly + stalling VM execution for minutes. This can result in I/O + errors in the guest as I/O requests time out there. + + + + + + Physical memory is often wasted as guest OSes typically have + their own I/O caches, which may result in the data being + cached twice, in both the guest and the host caches, for + little effect. + + + + + + + If you decide to disable host I/O caching for the above reasons, + &product-name; uses its own small cache to buffer writes, but no + read caching since this is typically already performed by the + guest OS. In addition, &product-name; fully supports asynchronous + I/O for its virtual SATA, SCSI, and SAS controllers through + multiple I/O threads. + + + + Since asynchronous I/O is not supported by IDE controllers, for + performance reasons, you may want to leave host caching enabled + for your VM's virtual IDE controllers. + + + + For this reason, &product-name; enables you to configure whether + the host I/O cache is used for each I/O controller separately. + Either select the Use Host I/O + Cache check box in the + Storage settings for a given + virtual storage controller, or use the following + VBoxManage command to disable the host I/O + cache for a virtual storage controller: + + +VBoxManage storagectl "VM name" --name <controllername> --hostiocache off + + + See . + + + + For the above reasons, &product-name; uses SATA controllers by + default for new virtual machines. + + + + + + + Limiting Bandwidth for Disk Images + + + &product-name; supports limiting of the maximum bandwidth used for + asynchronous I/O. Additionally it supports sharing limits through + bandwidth groups for several images. It is possible to have more + than one such limit. + + + + Limits are configured using VBoxManage. The + example below creates a bandwidth group named Limit, sets the + limit to 20 MB per second, and assigns the group to the attached + disks of the VM: + + +VBoxManage bandwidthctl "VM name" add Limit --type disk --limit 20M +VBoxManage storageattach "VM name" --storagectl "SATA" --port 0 --device 0 --type hdd + --medium disk1.vdi --bandwidthgroup Limit +VBoxManage storageattach "VM name" --storagectl "SATA" --port 1 --device 0 --type hdd + --medium disk2.vdi --bandwidthgroup Limit + + + All disks in a group share the bandwidth limit, meaning that in + the example above the bandwidth of both images combined can never + exceed 20 MBps. However, if one disk does not require bandwidth + the other can use the remaining bandwidth of its group. + + + + The limits for each group can be changed while the VM is running, + with changes being picked up immediately. The example below + changes the limit for the group created in the example above to 10 + MBps: + + +VBoxManage bandwidthctl "VM name" set Limit --limit 10M + + + + + + CD/DVD Support + + + Virtual CD/DVD drives by default support only reading. The medium + configuration is changeable at runtime. You can select between the + following options to provide the medium data: + + + + + + + Host Drive defines that the + guest can read from the medium in the host drive. + + + + + + Image file gives the guest + read-only access to the data in the image. This is typically + an ISO file. + + + + + + Empty means a drive without + an inserted medium. + + + + + + + Changing between the above, or changing a medium in the host drive + that is accessed by a machine, or changing an image file will + signal a medium change to the guest OS. The guest OS can then + react to the change, for example by starting an installation + program. + + + + Medium changes can be prevented by the guest, and &product-name; + reflects that by locking the host drive if appropriate. You can + force a medium removal in such situations by using the VirtualBox + Manager or the VBoxManage command line tool. + Effectively this is the equivalent of the emergency eject which + many CD/DVD drives provide, with all associated side effects. The + guest OS can issue error messages, just like on real hardware, and + guest applications may misbehave. Use this with caution. + + + + + The identification string of the drive provided to the guest, + displayed by configuration tools such as the Windows Device + Manager, is always VBOX CD-ROM, irrespective of the current + configuration of the virtual drive. This is to prevent hardware + detection from being triggered in the guest OS every time the + configuration is changed. + + + + + The standard CD/DVD emulation enables reading of standard data CD + and DVD formats only. As an experimental feature, for additional + capabilities, it is possible to give the guest direct access to + the CD/DVD host drive by enabling passthrough + mode. Depending on the host hardware, this may potentially enable + the following things to work: + + + + + + + CD/DVD writing from within the guest, if the host DVD drive is + a CD/DVD writer + + + + + + Playing audio CDs + + + + + + Playing encrypted DVDs + + + + + + + To enable host drive passthrough you can use the + option of the VBoxManage + storageattach command. See + . + + + + Even if passthrough is enabled, unsafe commands, such as updating + the drive firmware, will be blocked. Video CD formats are never + supported, not even in passthrough mode, and cannot be played from + a virtual machine. + + + + On Oracle Solaris hosts, passthrough requires running + &product-name; with real root permissions due to security measures + enforced by the host. + + + + + + + iSCSI Servers + + + iSCSI stands for Internet SCSI and is a + standard that supports use of the SCSI protocol over Internet + (TCP/IP) connections. Especially with the advent of Gigabit + Ethernet, it has become affordable to attach iSCSI storage servers + simply as remote hard disks to a computer network. In iSCSI + terminology, the server providing storage resources is called an + iSCSI target, while the client connecting to + the server and accessing its resources is called an + iSCSI initiator. + + + + &product-name; can transparently present iSCSI remote storage to a + virtual machine as a virtual hard disk. The guest OS will not see + any difference between a virtual disk image (VDI file) and an + iSCSI target. To achieve this, &product-name; has an integrated + iSCSI initiator. + + + + &product-name;'s iSCSI support has been developed according to the + iSCSI standard and should work with all standard-conforming iSCSI + targets. To use an iSCSI target with &product-name;, you must use + the command line. See . + + + + + + + vboximg-mount: A Utility for FUSE Mounting a Virtual Disk Image + + + vboximg-mount is a command line utility for Mac + OS and Linux hosts that provides raw access to an &product-name; + virtual disk image on the host system. Use this utility to mount, + view, and optionally modify the disk image contents. + + + + The utility is based on Filesystem in Userspace (FUSE) technology + and uses the VirtualBox runtime engine. Ensure that &product-name; + is running on the host system. + + + + + When using vboximg-mount, ensure that the + following conditions apply: + + + + + + + The disk image is not being used by any other systems, such + as by guest VMs. + + + + + + No VMs are running on the host system. + + + + + + + + Raw access using FUSE is preferred over direct loopback mounting + of virtual disk images, because it is snapshot aware. It can + selectively merge disk differencing images in an exposed virtual + hard disk, providing historical or up-to-date representations of + the virtual disk contents. + + + + vboximg-mount enables you to view information + about registered VMs, their attached disk media, and any + snapshots. Also, you can view partition information for a disk + image. + + + + The vboximg-mount command includes experimental + read-only access to file systems inside a VM disk image. This + feature enables you to extract some files from the disk image + without starting the VM and without requiring third-party file + system drivers on the host system. FAT, NTFS, ext2, ext3, and ext4 + file systems are supported. + + + + Use the option to view information about + the vboximg-mount command usage. The complete + command reference is described in + . + + + + When vboximg-mount mounts an &product-name; + disk image, it creates a one level deep file system at a mount + point that you specify. The file system includes a device node + that represents the synthesized disk image as a readable or + readable-writeable bytestream. This bytestream can be mounted + either by using the host OS or by using other FUSE-based file + systems. + + + + + Viewing Detailed Information About a Virtual Disk Image + + + The following examples show how to use the + vboximg-mount command to view information + about virtual disk images. + + + + The following command outputs detailed information about all + registered VMs and associated snapshots: + + +$ vboximg-mount --list --verbose + + ------------------------------------------------------ + VM Name: "macOS High Sierra 10.13" + UUID: 3887d96d-831c-4187-a55a-567c504ff0e1 + Location: /Volumes/work/vm_guests/macOS High Sierra 10.13/macOS High Sierra 10.13.vbox + ----------------------- + HDD base: "macOS High Sierra 10.13.vdi" + UUID: f9ea7173-6869-4aa9-b487-68023a655980 + Location: /Volumes/work/vm_guests/macOS High Sierra 10.13/macOS High Sierra 10.13.vdi + + Diff 1: + UUID: 98c2bac9-cf37-443d-a935-4e879b70166d + Location: /Volumes/work/vm_guests/macOS High Sierra 10.13/ + Snapshots/{98c2bac9-cf37-443d-a935-4e879b70166d}.vdi + Diff 2: + UUID: f401f381-7377-40b3-948e-3c61241b1a42 + Location: /Volumes/work/vm_guests/macOS High Sierra 10.13/ + Snapshots/{f401f381-7377-40b3-948e-3c61241b1a42}.vdi + ----------------------- + HDD base: "simple_fixed_disk.vdi" + UUID: ffba4d7e-1277-489d-8173-22ca7660773d + Location: /Volumes/work/vm_guests/macOS High Sierra 10.13/simple_fixed_disk.vdi + + Diff 1: + UUID: aecab681-0d2d-468b-8682-93f79dc97a48 + Location: /Volumes/work/vm_guests/macOS High Sierra 10.13/ + Snapshots/{aecab681-0d2d-468b-8682-93f79dc97a48}.vdi + Diff 2: + UUID: 70d6b34d-8422-47fa-8521-3b6929a1971c + Location: /Volumes/work/vm_guests/macOS High Sierra 10.13/ + Snapshots/{70d6b34d-8422-47fa-8521-3b6929a1971c}.vdi + ------------------------------------------------------ + VM Name: "debian" + UUID: 5365ab5f-470d-44c0-9863-dad532ee5905 + Location: /Volumes/work/vm_guests/debian/debian.vbox + ----------------------- + HDD base: "debian.vdi" + UUID: 96d2e92e-0d4e-46ab-a0f1-008fdbf997e7 + Location: /Volumes/work/vm_guests/debian/ol7.vdi + + Diff 1: + UUID: f9cc866a-9166-42e9-a503-bbfe9b7312e8 + Location: /Volumes/work/vm_guests/debian/Snapshots/ + {f9cc866a-9166-42e9-a503-bbfe9b7312e8}.vdi + + + The following command outputs partition information about the + specified disk image: + + +$ vboximg-mount --image=f9ea7173-6869-4aa9-b487-68023a655980 --list + + Virtual disk image: + + Path: /Volumes/work/vm_guests/macOS High Sierra 10.13/macOS High Sierra 10.13.vdi + UUID: f9ea7173-6869-4aa9-b487-68023a655980 + + # Start Sectors Size Offset Type + 1 40 409599 199.9M 20480 EFI System + 2 409640 67453071 32.1G 209735680 Hierarchical File System Plus (HFS+) + 3 67862712 1269535 107.8M 34745708544 Apple Boot (Recovery HD) + + + + + + Mounting a Virtual Disk Image + + + The following steps show how to use the + vboximg-mount command to mount a partition of + a virtual disk image on the host OS. + + + + + + + Create a mount point on the host OS. For example: + + +$ mkdir macos_sysdisk + + + + + Show partition information about the virtual disk image. + + +$ vboximg-mount --image=uuid --list + + + where uuid is the UUID of the + disk image. + + + + + + Use vboximg-mount to perform a FUSE mount + of a partition on the virtual disk image. For example: + + +$ vboximg-mount --image=uuid -p 2 macos_sysdisk + + + where uuid is the UUID for the + disk image. + + + + In this example, partition 2 is mounted on the + macos_sysdisk mount point. The mount + includes all snapshots for the disk image. + + + + + + Use the host OS to mount the vhdd device + node. The FUSE-mounted device node represents the virtual + disk image. + + +$ ls macos_sysdisk + macOS High Sierra 10.13.vdi vhdd +$ sudo mount macos_sysdisk/vhdd /mnt + + + + + + + + +
diff --git a/doc/manual/en_US/user_Technical.xml b/doc/manual/en_US/user_Technical.xml new file mode 100644 index 00000000..c1f6c0f5 --- /dev/null +++ b/doc/manual/en_US/user_Technical.xml @@ -0,0 +1,962 @@ + + + +%all.entities; +]> + + + Technical Background + + + This chapter provides additional information for readers who are + familiar with computer architecture and technology and wish to find + out more about how &product-name; works under the + hood. The contents of this chapter are not required + reading in order to use &product-name; successfully. + + + + + Where &product-name; Stores its Files + + + In &product-name;, a virtual machine and its settings are + described in a virtual machine settings file in XML format. In + addition, most virtual machines have one or more virtual hard + disks. These are typically represented by disk images, such as + those in VDI format. The location of these files may vary, + depending on the host operating system. See + . + + + + Global configuration data for &product-name; is maintained in + another location on the host. See + . + + + + + The Machine Folder + + + By default, each virtual machine has a directory on your host + computer where all the files of that machine are stored: the XML + settings file, with a .vbox file extension, + and its disk images. This is called the machine + folder. + + + + By default, this machine folder is located in a common folder + called VirtualBox VMs, which &product-name; + creates in the current system user's home directory. The + location of this home directory depends on the conventions of + the host operating system, as follows: + + + + + + + On Windows, this is the location returned by the + SHGetFolderPath function of the Windows + system library Shell32.dll, asking for the user profile. A + typical location is + C:\Users\username. + + + + + + On Linux, macOS, and Oracle Solaris, this is generally + taken from the environment variable + $HOME, except for the user + root where it is taken from the account + database. This is a workaround for the frequent trouble + caused by users using &product-name; in combination with the + tool sudo, which by default does not + reset the environment variable $HOME. + + + + A typical location on Linux and Oracle Solaris is + /home/username + and on macOS is + /Users/username. + + + + + + + For simplicity, we abbreviate the location of the home directory + as $HOME. Using that convention, the common + folder for all virtual machines is $HOME/VirtualBox + VMs. + + + + As an example, when you create a virtual machine called "Example + VM", &product-name; creates the following: + + + + + + + A machine folder: $HOME/VirtualBox VMs/Example + VM/ + + + + + + In the machine folder, a settings file: Example + VM.vbox + + + + + + In the machine folder, a virtual disk image: + Example VM.vdi. + + + + + + + This is the default layout if you use the + Create New Virtual Machine + wizard described in . Once you + start working with the VM, additional files are added. Log files + are in a subfolder called Logs, and if you + have taken snapshots, they are in a + Snapshots subfolder. For each VM, you can + change the location of its snapshots folder in the VM settings. + + + + You can change the default machine folder by selecting + Preferences from the + File menu in the &product-name; + main window. Then, in the displayed window, click on the + General tab. Alternatively, use + the VBoxManage setproperty machinefolder + command. See . + + + + + + + Global Settings + + + In addition to the files for the virtual machines, + &product-name; maintains global configuration data in the + following directory: + + + + + + + Linux and Oracle Solaris: + $HOME/.config/VirtualBox. + + + + + + Windows: + $HOME/.VirtualBox. + + + + + + macOS: + $HOME/Library/VirtualBox. + + + + + + + &product-name; creates this configuration directory + automatically, if necessary. You can specify an alternate + configuration directory by either setting the + VBOX_USER_HOME environment variable, or on + Linux or Oracle Solaris by using the standard + XDG_CONFIG_HOME variable. Since the global + VirtualBox.xml settings file points to all + other configuration files, this enables switching between + several &product-name; configurations. + + + + In this configuration directory, &product-name; stores its + global settings file, an XML file called + VirtualBox.xml. This file includes global + configuration options and a list of registered virtual machines + with pointers to their XML settings files. + + + + + + + Summary of Configuration Data Locations + + + The following table gives a brief overview of the configuration + data locations on an &product-name; host. + + + + Configuration File Locations + + + + + Setting + + + Location + + + + + + + Default machines folder + + + $HOME/VirtualBox VMs + + + + + Default disk image location + + + In each machine's folder + + + + + Machine settings file extension + + + .vbox + + + + + Media registry + + + Each machine settings file + + + + + + Media registration is done automatically when a + storage medium is attached to a VM + + + + +
+ +
+ + + + &product-name; XML Files + + + &product-name; uses XML for both the machine settings files and + the global configuration file, + VirtualBox.xml. + + + + All &product-name; XML files are versioned. When a new settings + file is created, for example because a new virtual machine is + created, &product-name; automatically uses the settings format + of the current &product-name; version. These files may not be + readable if you downgrade to an earlier version of + &product-name;. However, when &product-name; encounters a + settings file from an earlier version, such as after upgrading + &product-name;, it attempts to preserve the settings format as + much as possible. It will only silently upgrade the settings + format if the current settings cannot be expressed in the old + format, for example because you enabled a feature that was not + present in an earlier version of &product-name;. + + + + In such cases, &product-name; backs up the old settings file in + the virtual machine's configuration directory. If you need to go + back to the earlier version of &product-name;, then you will + need to manually copy these backup files back. + + + + We intentionally do not document the specifications of the + &product-name; XML files, as we must reserve the right to modify + them in the future. We therefore strongly suggest that you do + not edit these files manually. &product-name; provides complete + access to its configuration data through its the + VBoxManage command line tool, see + and its API, see + . + + + + +
+ + + + &product-name; Executables and Components + + + &product-name; was designed to be modular and flexible. When the + &product-name; graphical user interface (GUI) is opened and a VM + is started, at least the following three processes are running: + + + + + + + VBoxSVC, the &product-name; service process + which always runs in the background. This process is started + automatically by the first &product-name; client process and + exits a short time after the last client exits. The first + &product-name; service can be &vbox-mgr;, + VBoxManage, + VBoxHeadless, the web service amongst + others. The service is responsible for bookkeeping, + maintaining the state of all VMs, and for providing + communication between &product-name; components. This + communication is implemented using COM/XPCOM. + + + + + When we refer to clients here, we mean + the local clients of a particular VBoxSVC + server process, not clients in a network. &product-name; + employs its own client/server design to allow its processes + to cooperate, but all these processes run under the same + user account on the host operating system, and this is + totally transparent to the user. + + + + + + + The GUI process, VirtualBoxVM, a client + application based on the cross-platform Qt library. When + started without the option, this + application acts as &vbox-mgr;, displaying the VMs and their + settings. It then communicates settings and state changes to + VBoxSVC and also reflects changes effected + through other means, such as the VBoxManage + command. + + + + + + If the VirtualBoxVM client application is + started with the argument, it loads + the VMM library which includes the actual hypervisor and then + runs a virtual machine and provides the input and output for + the guest. + + + + + + + Any &product-name; front-end, or client, will communicate with the + service process and can both control and reflect the current + state. For example, either the VM selector or the VM window or + VBoxManage can be used to pause the running VM, and other + components will always reflect the changed state. + + + + The &product-name; GUI application, called &vbox-mgr;, is only one + of several available front ends, or clients. The complete list + shipped with &product-name; is as follows: + + + + + + + VirtualBoxVM: The Qt front end implementing + &vbox-mgr; and running VMs. + + + + + + VBoxManage: A less user-friendly but more + powerful alternative. See . + + + + + + VBoxHeadless: A VM front end which does not + directly provide any video output and keyboard or mouse input, + but enables redirection through the VirtualBox Remote Desktop + Extension. See . + + + + + + vboxwebsrv: The &product-name; web service + process which enables control of an &product-name; host + remotely. This is described in detail in the &product-name; + Software Development Kit (SDK) reference. See + . + + + + + + The &product-name; Python shell: A Python alternative to + VBoxManage. This is also described in the + SDK reference. + + + + + + + Internally, &product-name; consists of many more or less separate + components. You may encounter these when analyzing &product-name; + internal error messages or log files. These include the following: + + + + + + + IPRT: A portable runtime library which abstracts file access, + threading, and string manipulation. Whenever &product-name; + accesses host operating features, it does so through this + library for cross-platform portability. + + + + + + VMM (Virtual Machine Monitor): The heart of the hypervisor. + + + + + + EM (Execution Manager): Controls execution of guest code. + + + + + + TRPM (Trap Manager): Intercepts and processes guest traps and + exceptions. + + + + + + HM (Hardware Acceleration Manager): Provides support for VT-x + and AMD-V. + + + + + + GIM (Guest Interface Manager): Provides support for various + paravirtualization interfaces to the guest. + + + + + + PDM (Pluggable Device Manager): An abstract interface between + the VMM and emulated devices which separates device + implementations from VMM internals and makes it easy to add + new emulated devices. Through PDM, third-party developers can + add new virtual devices to &product-name; without having to + change &product-name; itself. + + + + + + PGM (Page Manager): A component that controls guest paging. + + + + + + TM (Time Manager): Handles timers and all aspects of time + inside guests. + + + + + + CFGM (Configuration Manager): Provides a tree structure which + holds configuration settings for the VM and all emulated + devices. + + + + + + SSM (Saved State Manager): Saves and loads VM state. + + + + + + VUSB (Virtual USB): A USB layer which separates emulated USB + controllers from the controllers on the host and from USB + devices. This component also enables remote USB. + + + + + + DBGF (Debug Facility): A built-in VM debugger. + + + + + + &product-name; emulates a number of devices to provide the + hardware environment that various guests need. Most of these + are standard devices found in many PC compatible machines and + widely supported by guest operating systems. For network and + storage devices in particular, there are several options for + the emulated devices to access the underlying hardware. These + devices are managed by PDM. + + + + + + Guest Additions for various guest operating systems. This is + code that is installed from within a virtual machine. See + . + + + + + + The "Main" component is special. It ties all the above bits + together and is the only public API that &product-name; + provides. All the client processes listed above use only this + API and never access the hypervisor components directly. As a + result, third-party applications that use the &product-name; + Main API can rely on the fact that it is always well-tested + and that all capabilities of &product-name; are fully exposed. + It is this API that is described in the &product-name; SDK. + See . + + + + + + + + + + Hardware Virtualization + + + &product-name; enables software in the virtual machine to run + directly on the processor of the host, but an array of complex + techniques is employed to intercept operations that would + interfere with your host. Whenever the guest attempts to do + something that could be harmful to your computer and its data, + &product-name; steps in and takes action. In particular, for lots + of hardware that the guest believes to be accessing, + &product-name; simulates a certain virtual + environment according to how you have configured a virtual + machine. For example, when the guest attempts to access a hard + disk, &product-name; redirects these requests to whatever you have + configured to be the virtual machine's virtual hard disk. This is + normally an image file on your host. + + + + Unfortunately, the x86 platform was never designed to be + virtualized. Detecting situations in which &product-name; needs to + take control over the guest code that is executing, as described + above, is difficult. To achieve this, &product-name; uses + hardware virtualization. + + + + Intel and AMD processors have support for hardware virtualization. + This means that these processors can help &product-name; to + intercept potentially dangerous operations that a guest operating + system may be attempting and also makes it easier to present + virtual hardware to a virtual machine. + + + + These hardware features differ between Intel and AMD processors. + Intel named its technology VT-x, AMD calls theirs AMD-V. The Intel + and AMD support for virtualization is very different in detail, + but not very different in principle. + + + + + On many systems, the hardware virtualization features first need + to be enabled in the BIOS before &product-name; can use them. + + + + + Enabling hardware virtualization is required + in the following scenarios: + + + + + + + Certain rare guest operating systems like OS/2 make use of + very esoteric processor instructions. For virtual machines + that are configured to use such an operating system, hardware + virtualization is enabled automatically. + + + + + + &product-name;'s 64-bit guest and multiprocessing (SMP) + support both require hardware virtualization to be enabled. + This is not much of a limitation since the vast majority of + 64-bit and multicore CPUs ship with hardware virtualization. + The exceptions to this rule are some legacy Intel and AMD + CPUs. + + + + + + + + Do not run other hypervisors, either open source or commercial + virtualization products, together with &product-name;. While + several hypervisors can normally be + installed in parallel, do not attempt to + run several virtual machines from competing + hypervisors at the same time. &product-name; cannot track what + another hypervisor is currently attempting to do on the same + host, and especially if several products attempt to use hardware + virtualization features such as VT-x, this can crash the entire + host. + + + + + See for a technical discussion of + hardware virtualization. + + + + + + + Details About Hardware Virtualization + + + With Intel VT-x, there are two distinct modes of CPU operation: + VMX root mode and non-root mode. + + + + + + + In root mode, the CPU operates much like older generations of + processors without VT-x support. There are four privilege + levels, called rings, and the same instruction set is + supported, with the addition of several virtualization + specific instruction. Root mode is what a host operating + system without virtualization uses, and it is also used by a + hypervisor when virtualization is active. + + + + + + In non-root mode, CPU operation is significantly different. + There are still four privilege rings and the same instruction + set, but a new structure called VMCS (Virtual Machine Control + Structure) now controls the CPU operation and determines how + certain instructions behave. Non-root mode is where guest + systems run. + + + + + + + Switching from root mode to non-root mode is called "VM entry", + the switch back is "VM exit". The VMCS includes a guest and host + state area which is saved/restored at VM entry and exit. Most + importantly, the VMCS controls which guest operations will cause + VM exits. + + + + The VMCS provides fairly fine-grained control over what the guests + can and cannot do. For example, a hypervisor can allow a guest to + write certain bits in shadowed control registers, but not others. + This enables efficient virtualization in cases where guests can be + allowed to write control bits without disrupting the hypervisor, + while preventing them from altering control bits over which the + hypervisor needs to retain full control. The VMCS also provides + control over interrupt delivery and exceptions. + + + + Whenever an instruction or event causes a VM exit, the VMCS + contains information about the exit reason, often with + accompanying detail. For example, if a write to the CR0 register + causes an exit, the offending instruction is recorded, along with + the fact that a write access to a control register caused the + exit, and information about source and destination register. Thus + the hypervisor can efficiently handle the condition without + needing advanced techniques such as CSAM and PATM described above. + + + + VT-x inherently avoids several of the problems which software + virtualization faces. The guest has its own completely separate + address space not shared with the hypervisor, which eliminates + potential clashes. Additionally, guest OS kernel code runs at + privilege ring 0 in VMX non-root mode, obviating the problems by + running ring 0 code at less privileged levels. For example the + SYSENTER instruction can transition to ring 0 without causing + problems. Naturally, even at ring 0 in VMX non-root mode, any I/O + access by guest code still causes a VM exit, allowing for device + emulation. + + + + The biggest difference between VT-x and AMD-V is that AMD-V + provides a more complete virtualization environment. VT-x requires + the VMX non-root code to run with paging enabled, which precludes + hardware virtualization of real-mode code and non-paged + protected-mode software. This typically only includes firmware and + OS loaders, but nevertheless complicates VT-x hypervisor + implementation. AMD-V does not have this restriction. + + + + Of course hardware virtualization is not perfect. Compared to + software virtualization, the overhead of VM exits is relatively + high. This causes problems for devices whose emulation requires + high number of traps. One example is a VGA device in 16-color + mode, where not only every I/O port access but also every access + to the framebuffer memory must be trapped. + + + + + + + Paravirtualization Providers + + + &product-name; enables the exposure of a paravirtualization + interface, to facilitate accurate and efficient execution of + software within a virtual machine. These interfaces require the + guest operating system to recognize their presence and make use of + them in order to leverage the benefits of communicating with the + &product-name; hypervisor. + + + + Most modern, mainstream guest operating systems, including Windows + and Linux, ship with support for one or more paravirtualization + interfaces. Hence, there is typically no need to install + additional software in the guest to take advantage of this + feature. + + + + Exposing a paravirtualization provider to the guest operating + system does not rely on the choice of host platforms. For example, + the Hyper-V paravirtualization provider can + be used for VMs to run on any host platform supported by + &product-name; and not just Windows. + + + + &product-name; provides the following interfaces: + + + + + + + Minimal: Announces the + presence of a virtualized environment. Additionally, reports + the TSC and APIC frequency to the guest operating system. This + provider is mandatory for running any Mac OS X guests. + + + + + + KVM: Presents a Linux KVM + hypervisor interface which is recognized by Linux kernels + version 2.6.25 or later. &product-name;'s implementation + currently supports paravirtualized clocks and SMP spinlocks. + This provider is recommended for Linux guests. + + + + + + Hyper-V: Presents a Microsoft + Hyper-V hypervisor interface which is recognized by Windows 7 + and newer operating systems. &product-name;'s implementation + currently supports paravirtualized clocks, APIC frequency + reporting, guest debugging, guest crash reporting and relaxed + timer checks. This provider is recommended for Windows guests. + + + + + + + + + + Nested Paging and VPIDs + + + In addition to normal hardware virtualization, your processor may + also support the following additional sophisticated techniques: + + + + + + + Nested paging implements some memory management in hardware, + which can greatly accelerate hardware virtualization since + these tasks no longer need to be performed by the + virtualization software. + + + + With nested paging, the hardware provides another level of + indirection when translating linear to physical addresses. + Page tables function as before, but linear addresses are now + translated to "guest physical" addresses first and not + physical addresses directly. A new set of paging registers now + exists under the traditional paging mechanism and translates + from guest physical addresses to host physical addresses, + which are used to access memory. + + + + Nested paging eliminates the overhead caused by VM exits and + page table accesses. In essence, with nested page tables the + guest can handle paging without intervention from the + hypervisor. Nested paging thus significantly improves + virtualization performance. + + + + On AMD processors, nested paging has been available starting + with the Barcelona (K10) architecture. They now call it rapid + virtualization indexing (RVI). Intel added support for nested + paging, which they call extended page tables (EPT), with their + Core i7 (Nehalem) processors. + + + + If nested paging is enabled, the &product-name; hypervisor can + also use large pages to reduce TLB usage + and overhead. This can yield a performance improvement of up + to 5%. To enable this feature for a VM, you use the + VBoxManage modifyvm --large-pages command. + See . + + + + If you have an Intel CPU with EPT, please consult + for security concerns + regarding EPT. + + + + + + On Intel CPUs, a hardware feature called Virtual Processor + Identifiers (VPIDs) can greatly accelerate context switching + by reducing the need for expensive flushing of the processor's + Translation Lookaside Buffers (TLBs). + + + + To enable these features for a VM, you use the + VBoxManage modifyvm --vtx-vpid and + VBoxManage modifyvm --large-pages commands. + See . + + + + + + + +
diff --git a/doc/manual/en_US/user_ThirdParty.xml b/doc/manual/en_US/user_ThirdParty.xml new file mode 100644 index 00000000..c5546916 --- /dev/null +++ b/doc/manual/en_US/user_ThirdParty.xml @@ -0,0 +1,11811 @@ + + + +%all.entities; +]> + + + Third-Party Materials and Licenses + + + &product-name; incorporates materials from several Open Source + software projects. Therefore the use of these materials by + &product-name; is governed by different Open Source licenses. This + document reproduces these licenses and provides a list of the + materials used and their respective licensing conditions. Section 1 + contains a list of the materials used. Section 2 reproduces the + applicable Open Source licenses. For each material, a reference to + its license is provided. + + + + The source code for the materials listed below as well as the rest + of the &product-name; code which is released as open source are + available at + , + both as tarballs for particular releases and as a live SVN + repository. + + + + + Third-Party Materials + + + + + + &product-name; contains portions of QEMU which is governed by + the licenses in + and + and + + + + Copyright (C) 1998, 2003-2005 Fabrice Bellard; Copyright (C) + 2004 Magnus Damm; Copyright (C) 2003-2005 Vassili Karpov + (malc); Copyright (C) 2004 Antony T Curtis; Copyright (C) + 2003 Jocelyn Mayer + + + + + + &product-name; contains code from the X Window System which is + governed by the license in + and + + + + Copyright 2004 by the Massachusetts Institute of Technology. + + + + + + &product-name; contains code from the BOCHS VGA BIOS which is + governed by the license in + and + + + + Copyright (C) 2001,2002 the LGPL VGABios developers Team. + + + + + + &product-name; contains code from the BOCHS ROM BIOS which is + governed by the license in + and + + + + Copyright (C) 2002 MandrakeSoft S.A. + + + + + + &product-name; contains the zlib library which is governed by + the license in + and + + + + Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler. + + + + + + &product-name; contains OpenSSL 3.0 or later which is governed by the + license in + and + + + + Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. + + + + + + &product-name; contains OpenSSL before 3.0 which is governed by the + license in + and + + + + Copyright (C) 1998-2019 The OpenSSL Project. All rights reserved.; + Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com). This + product includes software written by Tim Hudson + (tjh@cryptsoft.com). + + + + + + &product-name; may contain NSPR and XPCOM which is governed by + the license in + and + + + + Copyright (C) 2002-2003 Netscape Communications Corporation. + All Rights Reserved. + + + + + + &product-name; contains Slirp which is governed by the license + in and + was written by Danny Gasparovski. + + + + Copyright (c) 1995,1996 Danny Gasparovski. All rights reserved. + + + + + + &product-name; contains liblzf which is governed by the + license in + and + + + + Copyright (C) 2000-2009 Marc Alexander Lehmann + <schmorp@schmorp.de> + + + + + + &product-name; may contain iPXE which is governed by the + license in + and + + + + Copyright (C) 2015 Michael Brown <mbrown@fensystems.co.uk> + and others. + + + + + + &product-name; contains code from Wine which is governed by + the license in + and + + + + Copyright (c) 1993-2015 the Wine project authors + + + + + + &product-name; contains code from lwIP which is governed by + the license in + and + + + + Copyright (C) 2001, 2004 Swedish Institute of Computer + Science. All rights reserved. + + + + + + &product-name; contains libxml2 which is governed by the + license in + and + + + + Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved. + + + + + + &product-name; contains code from the gSOAP XML web services + tools, which are licensed under the license in + + and + + + + Copyright (C) 2000-2022, Robert van Engelen, Genivia Inc., and + others. + + + + + + &product-name; contains libcurl which is governed by the + license in + and + + + + Copyright (C) 1996-2022, Daniel Stenberg. + + + + + + &product-name; contains dnsproxy which is governed by the + license in + and + + + + Copyright (c) 2003, 2004, 2005 Armin Wolfermann + + + + + + &product-name; contains some code from libgd which is governed + by the license in + and + + + + Portions Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008 Pierre-Alain Joye (pierre@libgd.org). For complete + copyright information, see the license. + + + + + + &product-name; contains code from the EFI Development Kit II + (EDK II) which is governed by the licenses in + and + and + + + + Copyright (c) 2019, TianoCore and contributors.; + Copyright (c) 2004-2019, Intel Corporation.; + Copyright (c) 2011, Andrei Warkentin <andreiw@motorola.com>; + Copyright (c) 2011, Bei Guan <gbtju85@gmail.com>; + Copyright (c) 2012-2018, Red Hat, Inc.; + Copyright (c) 2014, Pluribus Networks, Inc.; + Copyright (c) 2015 Nahanni Systems + Copyright (c) 2016 Hewlett Packard Enterprise Development LP; + Copyright (c) 2017, Advanced Micro Devices. All rights reserved.; + Copyright (c) 2020, Rebecca Cran <rebecca@bsdio.com> + Portions copyright (c) 2010, 2011, Apple Inc. All rights reserved. + + + + + + &product-name; contains libjpeg-turbo which is governed by the + licenses in + and + and + + + + Copyright (C) 1991-2020, Thomas G. Lane, Guido Vollbeding. + Copyright (C)2009-2022 D. R. Commander. All Rights Reserved. + Copyright (C)2015 Viktor Szathmáry. All Rights Reserved. + + + + + + &product-name; may contain the libjpeg-turbo x86 SIMD extensions + which is governed by the license in + and + + + + Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler. + + + + + + &product-name; may ship a copy of Qt which is governed by the + license in + and + + + + Copyright (C) 2015 The Qt Company Ltd. + + + + + + &product-name; contains parts of the FreeBSD kernel which is + governed by the license in + and + + + + Copyright 1992-2022 The FreeBSD Project. + + + + + + + &product-name; contains parts of the NetBSD kernel which is + governed by the license in + and + + + + Copyright (c) 2008 The NetBSD Foundation, Inc. + + + + + + &product-name; may contain code from the WebM VP8 Codec SDK + which is governed by the license in + and + + + + Copyright (c) 2010, 2013, 2016, 2019 The WebM Project authors. + All rights reserved.; Copyright (C) 2002-2010 The Xiph.Org + Foundation and contributors.; Copyright (C) 2005-2016 x264 + project; Copyright (c) 2010, Google Inc. All rights reserved. + + + + + + &product-name; may contain code from libvorbis ("Vorbis") which is + governed by the license in + and + + + Monty <monty@xiph.org> + + and the rest of the Xiph.org Foundation. + + + + + + &product-name; contains code from cURL which is governed by the + license in + and + + + + Copyright (c) 1996 - 2022, Daniel Stenberg, + <daniel@haxx.se>, and others. + + + + + + &product-name; contains documentation generated using the + DocBook XML DTD which is governed by the license in + and + + + + Copyright 1992-2004 HaL Computer Systems, Inc., O'Reilly + & Associates, Inc., ArborText, Inc., Fujitsu Software + Associates, Inc., ArborText, Inc., Fujitsu Software + Corporation, Norman Walsh, Sun Microsystems, Inc., and the + Organization for the Advancement of Structured Information + Standards (OASIS). + + + + + + &product-name; contains documentation generated using + DocBook XSL Stylesheets which is governed by the license in + and + + + + Copyright (C) 1999, 2000, 2001, 2002 Norman Walsh + + + + + + &product-name; contains code from the ACPI Component + Architecture (ACPICA) project which is governed by the license + in and + + + + Copyright (c) 1999 - 2010, Intel Corp. All rights reserved. + + + + + + &product-name; contains code from the Independent JPEG (IJG) + Group which is governed by the license in + and + + + + Copyright (C) 1991-2021, Thomas G. Lane, Guido Vollbeding. + + + + + + &product-name; contains code from the Linux kernel which is + governed by the license in + + + + + + + &product-name; contains makeself which is governed by the + license in + + + + + + + &product-name; contains code from the Mesa 3D graphics library + which is governed by the default Mesa license in + and + + + + Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + For complete copyright information, see the license. + + + + + + &product-name; contains code from the Microsoft Windows Driver + Kit (WDK) which is governed by the license in + and + + + + Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + For complete copyright information, see the license. + + + + + + &product-name; contains code from MoltenVK which is governed by + the license in + and + + + + Copyright (c) 2015-2022 The Brenwill Workshop Ltd. (http://www.brenwill.com) + + + + + + &product-name; contains code from the NSIS AccessControl plugin + which is governed by the license in + and + + + + Copyright (C) 1999-2009 Nullsoft and Contributors; Copyright + (C) 2003 Mathias Hasselmann <mathias@taschenorakel.de> + + + + + + &product-name; contains code from the NSIS NsProcess plugin + which is governed by the license in + and + + + + Copyright (C) 1999-2008 Nullsoft and Contributors + + + + + + &product-name; contains code from the Khronos OpenGL Registry + which is governed by the license in + and + + + + Copyright (c) 2008-2018 The Khronos Group Inc. + + + + + + &product-name; contains code from Python which is governed by + the license in + and + + + + Copyright (c) 2001-2022 Python Software Foundation. All rights + reserved.; Copyright (c) 2000 BeOpen.com. All rights + reserved.; Copyright (c) 1995-2001 Corporation for National + Research Initiatives. All rights reserved.; Copyright (c) + 1991-1995 Stichting Mathematisch Centrum. All rights reserved. + + + + + + &product-name; contains code from the SPIR-V Registry which is + governed by the license in + and + + + + Copyright (c) 2008-2018 The Khronos Group Inc. + + + + + + &product-name; contains code from SPIRV-Cross which is governed + by the license in + and + + + + Copyright (c) 2014-2021 The Khronos Group, Inc. + + + + + + &product-name; contains code from the SPIR-V Tools project + which is governed by the license in + and + + + + Copyright (c) 2015-2020 The Khronos Group Inc.;Modifications + Copyright (C) 2020 Advanced Micro Devices, Inc. All rights + reserved. + + + + + + &product-name; contains code from Berkeley SoftFloat which is + governed by the license in + and + + + + Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the + University of California. All rights reserved. + + + + + + &product-name; contains code from the Vulkan Header files and + API registry which is governed by the license in + and + + + + Copyright (c) 2015-2016 The Khronos Group Inc.; Copyright (c) + 2015-2016 Valve Corporation; Copyright (c) 2015-2016 LunarG, Inc. + + + + + + &product-name; contains code from the Vulkan tools which is + governed by the license in + and + + + + Copyright (c) 2015-2021 The Khronos Group Inc.; Copyright (c) + 2015-2021 Valve Corporation; Copyright (c) 2015-2021 LunarG, + Inc. + + + + + + &product-name; contains code from Glslang which is governed by + the licenses in + and + and + and + and + and + and + and + + + + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free + Software Foundation, Inc.; Copyright (C) 2002-2005 3Dlabs Inc. + Ltd.; Copyright (c) 2002-2010 The ANGLE Project Authors.; + Copyright (c) 2002, NVIDIA Corporation.; Copyright (C) + 2012-2021 LunarG, Inc.; Copyright (c) 2013-2021 The Khronos + Group Inc.; Copyright (c) 2015-2021 Google Inc.; Copyright (c) + 2015-2021 Valve Corporation; Copyright (C) 2017, 2019 ARM + Limited.; Copyright (c) 2019, Viktor Latypov; Copyright (C) + 2020-2021 Advanced Micro Devices, Inc. All rights; Copyright + (c) 2020, Travis Fort; Copyright 2017 The Glslang Authors. All + rights reserved. + + + + + + &product-name; contains code from the EGL-Registry repository + which is governed by the licenses in + and + and + + + + Copyright (c) 2008-2020 The Khronos Group Inc. + + + + + + &product-name; contains code from the Wayland project which is + governed by the license in + and + + + + Copyright (c) 2008-2012 Kristian Høgsberg; Copyright (c) + 2010-2012 Intel Corporation; Copyright (c) 2011 Benjamin + Franzke; Copyright (c) 2012 Collabora, Ltd. + + + + + + &product-name; contains code from the WiX toolset which is + governed by the license in + and + + + + Copyright (c) 2008-2012 Kristian Høgsberg; Copyright (c) + 2010-2012 Intel Corporation; Copyright (c) 2011 Benjamin + Franzke; Copyright (c) 2012 Collabora, Ltd. + + + + + + &product-name; contains code from the XFree86-VidModeExtension + which is governed by the license in + and + + + + Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights + Reserved. + + + + + + &product-name; contains code from the Advanced Linux Sound + Architecture (ALSA) project which is governed by the license + in and + + + + Copyright (c) 1994-2007, 2010 by Jaroslav Kysela + <perex@perex.cz>; Copyright (c) 1998-1999 by Frank van + de Pol <fvdpol@coil.demon.nl>; Copyright (c) 1999 by + Uros Bizjak <uros@kss-loka.si>; Copyright (c) 1994-2003 + by Abramo Bagnara <abramo@alsa-project.org>; Copyright + (c) 2016 by Thomas Klausner <wiz@NetBSD.org>; Copyright + (c) 2006-2007 Diego Pettenò <flameeyes@gmail.com>; + Copyright (c) 2014-2015 Intel Corporation; Copyright (C) 2010 + Red Hat Inc.; Copyright (C) 2000-2002 Richard W.E. Furse, Paul + Barton-Davis, Stefan Westerfeld; Copyright (C) 2008-2010 + SlimLogic Ltd; Copyright (C) 1998,99,2000, 2003-2007, 2015 + Takashi Iwai <tiwai@suse.de>; Copyright (c) 2015-2016 + Takashi Sakamoto; Copyright (C) 2010, 2012 Texas Instruments + Inc.; Copyright (C) 2003 Thomas Charbonnel + (thomas@undata.org); Copyright (C) 2003 Winfried Ritsch (IEM); + Copyright (C) 2010 Wolfson Microelectronics PLC; Copyright (C) + 1994 X Consortium; Copyright (c) 2006-2007 xine project + + + + + + &product-name; contains code from the cereal C++11 + serialization library which is governed by the license in + and + + + + Copyright (c) 2013-2022, Randolph Voorhies, Shane Grant + All rights reserved.; (C) Copyright 2002 Robert Ramey - + http://www.rrsd.com; (C) Copyright 2006 David Abrahams - + http://www.boost.org.; Copyright (C) 2004-2008 René + Nyffenegger; Copyright (c) 2014, 2017, Juan Pedro; Copyright + (c) 2015, Kyle Fleming, Juan Pedro Bolivar Puente; Copyright + (c) 2017, Juan Pedro Bolivar Puente; Copyright (c) 2006-2013 + Alexander Chemeris; Copyright (C) 2006, 2007, 2009 Marcin + Kalicinski; Copyright (c) 2016-2021 Viktor Kirilov; Copyright + (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All + rights reserved. + + + + + + &product-name; contains code from the X Composite Extension + which is governed by the licenses in + and + and + + + + Copyright (c) 2006, Oracle and/or its affiliates. All rights + reserved.; Copyright (c) 2003 Keith Packard, Noah Levitt + + + + + + &product-name; contains code from the X Damage Extension which + is governed by the license in + and + + + + Copyright (c) 2001,2003 Keith Packard; Copyright (c) 2007 Eric Anholt + + + + + + &product-name; contains code from the X Direct Rendering + Infrastructure (DRI) 2 Extension which is governed by the + license in + and + + + + Copyright (c) 2007 Red Hat, Inc. + + + + + + &product-name; contains code from the X Fixes Extension which + is governed by the licenses in + and + and + + + + Copyright (c) 2006, Oracle and/or its affiliates. All rights + reserved.; Copyright 2010 Red Hat, Inc.; Copyright (c) + 2001,2003 Keith Packard + + + + + + &product-name; contains code from the X Fonts Extension which + is governed by the licenses in + and + and + and + and + + + + Copyright 1990, 1991 Network Computing Devices; Portions + Copyright 1987 by Digital Equipment Corporation; Copyright + 1990, 1991, 1998 The Open Group; Copyright 1987 by Digital + Equipment Corporation, Maynard, Massachusetts.; Copyright (c) + 1999 The XFree86 Project Inc. + + + + + + &product-name; contains code from the X OpenGL Extension (GLX) + which is governed by the license in + and + + + + Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights + Reserved. + + + + + + &product-name; contains code from the X Input Extension which + is governed by the licenses in + and + and + + + + Copyright 1989, 1998 The Open Group; Copyright 1989 by + Hewlett-Packard Company, Palo Alto, California. + + + + + + &product-name; contains code from the X Keyboard Extension which + is governed by the license in + and + + + + Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. + + + + + + &product-name; contains code from the X Resize and Rotate + Extension (RandR) Extension which is governed by the license + in + and + + + + Copyright (c) 2000 Compaq Computer Corporation; Copyright (c) + 2002 Hewlett-Packard Company; Copyright (c) 2006 Intel + Corporation; Copyright (c) 2008 Red Hat, Inc. + + + + + + &product-name; contains code from the X Rendering Extension which + is governed by the license in + and + + + + Copyright (c) 2000 SuSE, Inc. + + + + + + &product-name; contains code from the X XExt Extension which + is governed by the licenses in + and + and + and + and + and + and + and + and + and + and + + + + Copyright 1989, 1998 The Open Group; Copyright (c) 1997 by + Silicon Graphics Computer Systems, Inc.; Copyright 1992 + Network Computing Devices; Copyright (c) 1994, 1995 + Hewlett-Packard Company; Copyright (c) 1996 Digital Equipment + Corporation, Maynard, Massachusetts.; Copyright 1988, 1989, + 1990, 1994 Network Computing Devices, Inc.; Copyright + 1991,1993 by Digital Equipment Corporation, Maynard, + Massachusetts, and Olivetti Research Limited, Cambridge, + England.; Copyright 1986, 1987, 1988 by Hewlett-Packard + Corporation + + + + + + &product-name; contains code from the XFree86 Direct Rendering + Infrastructure (DRI) Extension which is governed by the + license in + and + + + + Copyright 1998-1999 Precision Insight, Inc., Cedar Park, + Texas.; Copyright 2000 VA Linux Systems, Inc.; All Rights + Reserved. + + + + + + &product-name; contains code from the libXcomposite library + which is governed by the licenses in + and + and + + + + Copyright (c) 2001,2003 Keith Packard; Copyright (c) 2006, 2007, + Oracle and/or its affiliates. All rights reserved. + + + + + + &product-name; contains code from the libXdamage library + which is governed by the licenses in + and + + + + Copyright (c) 2001,2003 Keith Packard; Copyright (c) 2007 Eric Anholt + + + + + + &product-name; contains code from the libXext library + which is governed by the licenses in + and + and + and + and + and + and + and + and + and + + + + Copyright 1986, 1987, 1988, 1989, 1994, 1998 The Open Group; + Copyright (c) 1996 Digital Equipment Corporation, Maynard, + Massachusetts.; Copyright (c) 1997 by Silicon Graphics + Computer Systems, Inc.; Copyright 1992 Network Computing + Devices; Copyright 1991,1993 by Digital Equipment Corporation, + Maynard, Massachusetts, and Olivetti Research Limited, + Cambridge, England.; Copyright 1986, 1987, 1988 by + Hewlett-Packard Corporation; Copyright (c) 1994, 1995 + Hewlett-Packard Company; Copyright Digital Equipment + Corporation, 1996; Copyright (c) 1999, 2005, 2006, 2013, + Oracle and/or its affiliates.; Copyright (c) 1989 X + Consortium, Inc. and Digital Equipment Corporation.; Copyright + (c) 1992 X Consortium, Inc. and Intergraph Corporation.; + Copyright (c) 1993 X Consortium, Inc. and Silicon Graphics, + Inc.; Copyright (c) 1994, 1995 X Consortium, Inc. and + Hewlett-Packard Company. + + + + + + &product-name; contains code from the libXfixes library which + is governed by the license in + and + + + + Copyright (c) 2001,2003 Keith Packard + + + + + + &product-name; contains code from the X libpciaccess library + which is governed by the licenses in + and + and + and + and + + + + Copyright (C) 2007 Free Software Foundation, Inc.; (C) + Copyright Eric Anholt 2006; (C) Copyright IBM Corporation + 2006; Copyright (C) 2008 Free Software Foundation, Inc.; + Copyright 2005 Red Hat, Inc; Copyright (c) 2008 Juan Romero + Pardines; Copyright (c) 2008 Mark Kettenis; Copyright (c) 2007 + Paulo R. Zanoni, Tiago Vignatti; Copyright 2005-2009 Sun + Microsystems, Inc. All rights reserved.; Copyright (C) 2000 + The XFree86 Project, Inc. All Rights Reserved.; Copyright (c) + 2009 Tiago Vignatti + + + + + + &product-name; contains code from the libxshmfence library which + is governed by the license in + and + + + + Copyright (c) 2013 Keith Packard; Copyright (c) 2013 Jung-uk + Kim <jkim@FreeBSD.org> + + + + + + &product-name; contains code from the pixman library which + is governed by the license in + and + + + + Copyright 1987, 1988, 1989, 1998 The Open Group; Copyright + 1987, 1988, 1989 Digital Equipment Corporation; Copyright + 1999, 2004, 2008 Keith Packard; Copyright 2000 SuSE, Inc.; + Copyright 2000 Keith Packard, member of The XFree86 Project, + Inc.; Copyright 2004, 2005, 2007, 2008, 2009, 2010 Red Hat, + Inc.; Copyright 2004 Nicholas Miell; Copyright 2005 Lars Knoll + & Zack Rusin, Trolltech; Copyright 2005 Trolltech AS; + Copyright 2007 Luca Barbato; Copyright 2008 Aaron Plattner, + NVIDIA Corporation; Copyright 2008 Rodrigo Kumpera; Copyright + 2008 André Tupinambá; Copyright 2008 Mozilla Corporation; + Copyright 2008 Frederic Plourde; Copyright 2009, Oracle and/or + its affiliates. All rights reserved.; Copyright 2009, 2010 + Nokia Corporation + + + + + + &product-name; contains code from the xf86-input-mouse driver + which is governed by the licenses in + and + and + + + + Copyright (c) 1997-1999 by The XFree86 Project, Inc.; + Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.; + Copyright 1993 by David Dawes <dawes@xfree86.org>; + Copyright 1994-2002 by The XFree86 Project, Inc.; Copyright + 1998 by Kazutaka YOKOTA + <yokota@zodiac.mech.utsunomiya-u.ac.jp>; Copyright 2002 + by Paul Elliott; Copyright 2002 by SuSE Linux AG, Author: + Egbert Eich; Copyright 2005 Red Hat, Inc; Copyright 2005 Sun + Microsystems, Inc. All rights reserved.; Copyright 2005 Adam + Jackson + + + + + + &product-name; contains code from the xf86-video-vesa driver + which is governed by the license in + and + + + + Copyright (c) 2000 by Conectiva S.A. + (http://www.conectiva.com); Authors: Paulo César Pereira de + Andrade <pcpa@conectiva.com.br> David Dawes + <dawes@xfree86.org> + + + + + + &product-name; contains code from the Xorg X server which is + governed by the licenses in + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + and + + + + Copyright (c) 2000-2001 Juliusz Chroboczek; Copyright (c) 1998 + Egbert Eich; Copyright (c) 2006-2007 Intel Corporation; + Copyright (c) 2006 Nokia Corporation; Copyright (c) 2006-2008 + Peter Hutterer; Copyright (c) 2006 Adam Jackson; Copyright (c) + 2009 NVIDIA Corporation; Copyright (c) 1999 Keith Packard; + Copyright (c) 2007-2009 Red Hat, Inc.; Copyright (c) 2005-2008 + Daniel Stone; Copyright (c) 2006-2009 Simon Thum; Copyright + (c) 1987, 2003-2006, 2008-2009 Sun Microsystems, Inc.; + Copyright (c) 2006 Luc Verhaegen. For complete copyright + information, see the individual licenses. + + + + + + &product-name; contains code from the X Window System Core + Protocol which is governed by the licenses in + and + and + and + and + and + + + + Copyright (c) 1991, 2005, 2006, Oracle and/or its affiliates. + All rights reserved.; Copyright 1997 Metro Link Incorporated; + Copyright (c) 2005 Daniel Stone; Copyright (c) 1999 The + XFree86 Project Inc.; Copyright 1985-1991, 1993-1998 The Open + Group; Copyright 1987 by Apollo Computer Inc., Chelmsford, + Massachusetts.; Copyright 1987, 1988 by Digital Equipment + Corporation, Maynard, Massachusetts.; Copyright 1989 by + Hewlett-Packard Company.; Copyright 2005 Red Hat, Inc + + + + + + &product-name; contains code from the xset utility which is + governed by the license in + and + + + + Copyright 1985, 1988, 1998 The Open Group + + + + + + &product-name; contains code from the libdrm library which is + governed by the license in + and + + + + Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.; + Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. + All Rights Reserved. + + + + + + &product-name; contains code from the libdevmapper library + which is governed by the license in + and + + + + Copyright (C) 2001-2004 Sistina Software, Inc. All rights + reserved.; Copyright (C) 2004-2017 Red Hat, Inc. All rights + reserved.; Copyright (C) 2006 Rackable Systems All rights + reserved. + + + + + + &product-name; contains code from DXVK Native which is + governed by the license in + and + + + + Copyright (c) 2017-2021 Philip Rebohle; Copyright (c) + 2019-2021 Joshua Ashton + + + + + + &product-name; contains code from PulseAudio which is + governed by the license in + and + + + + Copyright (c) 2017-2021 Philip Rebohle; Copyright (c) + 2019-2021 Joshua Ashton + + + + + + &product-name; contains code from libtpms which is + governed by the license in + and + + + + (c) Copyright IBM Corporation 2006 - 2011; + (c) Copyright IBM Corp. and others, 2012-2016 + + + + + + &product-name; contains code from libssh which is + governed by the license in + and + + + + Copyright (c) 2004-2013 by Aris Adamantiadis; + Copyright (c) 2009-2013 by Andreas Schneider <asn@cryptomilk.org> + + + + + + + + + + Third-Party Licenses + + + + GNU General Public License (GPL) + + + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 + + + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + + + + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + + + Everyone is permitted to copy and distribute verbatim copies of + this license document, but changing it is not allowed. + + + + Preamble + + + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General + Public License is intended to guarantee your freedom to share + and change free software--to make sure the software is free for + all its users. This General Public License applies to most of + the Free Software Foundation's software and to any other program + whose authors commit to using it. (Some other Free Software + Foundation software is covered by the GNU Library General Public + License instead.) You can apply it to your programs, too. + + + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure + that you have the freedom to distribute copies of free software + (and charge for this service if you wish), that you receive + source code or can get it if you want it, that you can change + the software or use pieces of it in new free programs; and that + you know you can do these things. + + + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the + rights. These restrictions translate to certain responsibilities + for you if you distribute copies of the software, or if you + modify it. + + + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights + that you have. You must make sure that they, too, receive or can + get the source code. And you must show them these terms so they + know their rights. + + + + We protect your rights with two steps: (1) copyright the + software, and (2) offer you this license which gives you legal + permission to copy, distribute and/or modify the software. + + + + Also, for each author's protection and ours, we want to make + certain that everyone understands that there is no warranty for + this free software. If the software is modified by someone else + and passed on, we want its recipients to know that what they + have is not the original, so that any problems introduced by + others will not reflect on the original authors' reputations. + + + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a + free program will individually obtain patent licenses, in effect + making the program proprietary. To prevent this, we have made it + clear that any patent must be licensed for everyone's free use + or not licensed at all. + + + + The precise terms and conditions for copying, distribution and + modification follow. + + + + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, + DISTRIBUTION AND MODIFICATION + + + + 0. This License applies to any program or other work which + contains a notice placed by the copyright holder saying it may + be distributed under the terms of this General Public License. + The "Program", below, refers to any such program or work, and a + "work based on the Program" means either the Program or any + derivative work under copyright law: that is to say, a work + containing the Program or a portion of it, either verbatim or + with modifications and/or translated into another language. + (Hereinafter, translation is included without limitation in the + term "modification".) Each licensee is addressed as "you". + + + + Activities other than copying, distribution and modification are + not covered by this License; they are outside its scope. The act + of running the Program is not restricted, and the output from + the Program is covered only if its contents constitute a work + based on the Program (independent of having been made by running + the Program). Whether that is true depends on what the Program + does. + + + + 1. You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an + appropriate copyright notice and disclaimer of warranty; keep + intact all the notices that refer to this License and to the + absence of any warranty; and give any other recipients of the + Program a copy of this License along with the Program. + + + + You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + + + + 2. You may modify your copy or copies of the Program or any + portion of it, thus forming a work based on the Program, and + copy and distribute such modifications or work under the terms + of Section 1 above, provided that you also meet all of these + conditions: + + + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + + + b) You must cause any work that you distribute or publish, that + in whole or in part contains or is derived from the Program or + any part thereof, to be licensed as a whole at no charge to all + third parties under the terms of this License. + + + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you + provide a warranty) and that users may redistribute the program + under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is + interactive but does not normally print such an announcement, + your work based on the Program is not required to print an + announcement.) + + + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the + Program, and can be reasonably considered independent and + separate works in themselves, then this License, and its terms, + do not apply to those sections when you distribute them as + separate works. But when you distribute the same sections as + part of a whole which is a work based on the Program, the + distribution of the whole must be on the terms of this License, + whose permissions for other licensees extend to the entire + whole, and thus to each and every part regardless of who wrote + it. + + + + Thus, it is not the intent of this section to claim rights or + contest your rights to work written entirely by you; rather, the + intent is to exercise the right to control the distribution of + derivative or collective works based on the Program. + + + + In addition, mere aggregation of another work not based on the + Program with the Program (or with a work based on the Program) + on a volume of a storage or distribution medium does not bring + the other work under the scope of this License. + + + + 3. You may copy and distribute the Program (or a work based on + it, under Section 2) in object code or executable form under the + terms of Sections 1 and 2 above provided that you also do one of + the following: + + + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Sections 1 and 2 above on a medium customarily used for software + interchange; or, + + + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a + medium customarily used for software interchange; or, + + + + c) Accompany it with the information you received as to the + offer to distribute corresponding source code. (This alternative + is allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + + + + The source code for a work means the preferred form of the work + for making modifications to it. For an executable work, complete + source code means all the source code for all modules it + contains, plus any associated interface definition files, plus + the scripts used to control compilation and installation of the + executable. However, as a special exception, the source code + distributed need not include anything that is normally + distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system + on which the executable runs, unless that component itself + accompanies the executable. + + + + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are + not compelled to copy the source along with the object code. + + + + 4. You may not copy, modify, sublicense, or distribute the + Program except as expressly provided under this License. Any + attempt otherwise to copy, modify, sublicense or distribute the + Program is void, and will automatically terminate your rights + under this License. However, parties who have received copies, + or rights, from you under this License will not have their + licenses terminated so long as such parties remain in full + compliance. + + + + 5. You are not required to accept this License, since you have + not signed it. However, nothing else grants you permission to + modify or distribute the Program or its derivative works. These + actions are prohibited by law if you do not accept this License. + Therefore, by modifying or distributing the Program (or any work + based on the Program), you indicate your acceptance of this + License to do so, and all its terms and conditions for copying, + distributing or modifying the Program or works based on it. + + + + 6. Each time you redistribute the Program (or any work based on + the Program), the recipient automatically receives a license + from the original licensor to copy, distribute or modify the + Program subject to these terms and conditions. You may not + impose any further restrictions on the recipients' exercise of + the rights granted herein. You are not responsible for enforcing + compliance by third parties to this License. + + + + 7. If, as a consequence of a court judgment or allegation of + patent infringement or for any other reason (not limited to + patent issues), conditions are imposed on you (whether by court + order, agreement or otherwise) that contradict the conditions of + this License, they do not excuse you from the conditions of this + License. If you cannot distribute so as to satisfy + simultaneously your obligations under this License and any other + pertinent obligations, then as a consequence you may not + distribute the Program at all. For example, if a patent license + would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, + then the only way you could satisfy both it and this License + would be to refrain entirely from distribution of the Program. + + + + If any portion of this section is held invalid or unenforceable + under any particular circumstance, the balance of the section is + intended to apply and the section as a whole is intended to + apply in other circumstances. + + + + It is not the purpose of this section to induce you to infringe + any patents or other property right claims or to contest + validity of any such claims; this section has the sole purpose + of protecting the integrity of the free software distribution + system, which is implemented by public license practices. Many + people have made generous contributions to the wide range of + software distributed through that system in reliance on + consistent application of that system; it is up to the + author/donor to decide if he or she is willing to distribute + software through any other system and a licensee cannot impose + that choice. + + + + This section is intended to make thoroughly clear what is + believed to be a consequence of the rest of this License. + + + + 8. If the distribution and/or use of the Program is restricted + in certain countries either by patents or by copyrighted + interfaces, the original copyright holder who places the Program + under this License may add an explicit geographical distribution + limitation excluding those countries, so that distribution is + permitted only in or among countries not thus excluded. In such + case, this License incorporates the limitation as if written in + the body of this License. + + + + 9. The Free Software Foundation may publish revised and/or new + versions of the General Public License from time to time. Such + new versions will be similar in spirit to the present version, + but may differ in detail to address new problems or concerns. + + + + Each version is given a distinguishing version number. If the + Program specifies a version number of this License which applies + to it and "any later version", you have the option of following + the terms and conditions either of that version or of any later + version published by the Free Software Foundation. If the + Program does not specify a version number of this License, you + may choose any version ever published by the Free Software + Foundation. + + + + 10. If you wish to incorporate parts of the Program into other + free programs whose distribution conditions are different, write + to the author to ask for permission. For software which is + copyrighted by the Free Software Foundation, write to the Free + Software Foundation; we sometimes make exceptions for this. Our + decision will be guided by the two goals of preserving the free + status of all derivatives of our free software and of promoting + the sharing and reuse of software generally. + + + + NO WARRANTY + + + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO + WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE + LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT + WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE + QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY + SERVICING, REPAIR OR CORRECTION. + + + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO + IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY + MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE + LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, + INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR + INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS + OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH + ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + + + END OF TERMS AND CONDITIONS + + + + + + + GNU Lesser General Public License (LGPL) + + + GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 + + + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 + Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is + permitted to copy and distribute verbatim copies of this license + document, but changing it is not allowed. + + + + [This is the first released version of the Lesser GPL. It also + counts as the successor of the GNU Library Public License, + version 2, hence the version number 2.1.] + + + + Preamble + + + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General + Public Licenses are intended to guarantee your freedom to share + and change free software--to make sure the software is free for + all its users. + + + + This license, the Lesser General Public License, applies to some + specially designated software packages--typically libraries--of + the Free Software Foundation and other authors who decide to use + it. You can use it too, but we suggest you first think carefully + about whether this license or the ordinary General Public + License is the better strategy to use in any particular case, + based on the explanations below. + + + + When we speak of free software, we are referring to freedom of + use, not price. Our General Public Licenses are designed to make + sure that you have the freedom to distribute copies of free + software (and charge for this service if you wish); that you + receive source code or can get it if you want it; that you can + change the software and use pieces of it in new free programs; + and that you are informed that you can do these things. + + + + To protect your rights, we need to make restrictions that forbid + distributors to deny you these rights or to ask you to surrender + these rights. These restrictions translate to certain + responsibilities for you if you distribute copies of the library + or if you modify it. + + + + For example, if you distribute copies of the library, whether + gratis or for a fee, you must give the recipients all the rights + that we gave you. You must make sure that they, too, receive or + can get the source code. If you link other code with the + library, you must provide complete object files to the + recipients, so that they can relink them with the library after + making changes to the library and recompiling it. And you must + show them these terms so they know their rights. + + + + We protect your rights with a two-step method: (1) we copyright + the library, and (2) we offer you this license, which gives you + legal permission to copy, distribute and/or modify the library. + + + + To protect each distributor, we want to make it very clear that + there is no warranty for the free library. Also, if the library + is modified by someone else and passed on, the recipients should + know that what they have is not the original version, so that + the original author's reputation will not be affected by + problems that might be introduced by others. + + + + Finally, software patents pose a constant threat to the + existence of any free program. We wish to make sure that a + company cannot effectively restrict the users of a free program + by obtaining a restrictive license from a patent holder. + Therefore, we insist that any patent license obtained for a + version of the library must be consistent with the full freedom + of use specified in this license. + + + + Most GNU software, including some libraries, is covered by the + ordinary GNU General Public License. This license, the GNU + Lesser General Public License, applies to certain designated + libraries, and is quite different from the ordinary General + Public License. We use this license for certain libraries in + order to permit linking those libraries into non-free programs. + + + + When a program is linked with a library, whether statically or + using a shared library, the combination of the two is legally + speaking a combined work, a derivative of the original library. + The ordinary General Public License therefore permits such + linking only if the entire combination fits its criteria of + freedom. The Lesser General Public License permits more lax + criteria for linking other code with the library. + + + + We call this license the "Lesser" General Public License because + it does Less to protect the user's freedom than the ordinary + General Public License. It also provides other free software + developers Less of an advantage over competing non-free + programs. These disadvantages are the reason we use the ordinary + General Public License for many libraries. However, the Lesser + license provides advantages in certain special circumstances. + + + + For example, on rare occasions, there may be a special need to + encourage the widest possible use of a certain library, so that + it becomes a de-facto standard. To achieve this, non-free + programs must be allowed to use the library. A more frequent + case is that a free library does the same job as widely used + non-free libraries. In this case, there is little to gain by + limiting the free library to free software only, so we use the + Lesser General Public License. + + + + In other cases, permission to use a particular library in + non-free programs enables a greater number of people to use a + large body of free software. For example, permission to use the + GNU C Library in non-free programs enables many more people to + use the whole GNU operating system, as well as its variant, the + GNU/Linux operating system. + + + + Although the Lesser General Public License is Less protective of + the users' freedom, it does ensure that the user of a program + that is linked with the Library has the freedom and the + wherewithal to run that program using a modified version of the + Library. + + + + The precise terms and conditions for copying, distribution and + modification follow. Pay close attention to the difference + between a "work based on the library" and a "work that uses the + library". The former contains code derived from the library, + whereas the latter must be combined with the library in order to + run. + + + + GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR + COPYING, DISTRIBUTION AND MODIFICATION + + + + 0. This License Agreement applies to any software library or + other program which contains a notice placed by the copyright + holder or other authorized party saying it may be distributed + under the terms of this Lesser General Public License (also + called "this License"). Each licensee is addressed as "you". + + + + A "library" means a collection of software functions and/or data + prepared so as to be conveniently linked with application + programs (which use some of those functions and data) to form + executables. + + + + The "Library", below, refers to any such software library or + work which has been distributed under these terms. A "work based + on the Library" means either the Library or any derivative work + under copyright law: that is to say, a work containing the + Library or a portion of it, either verbatim or with + modifications and/or translated straightforwardly into another + language. (Hereinafter, translation is included without + limitation in the term "modification".) + + + + "Source code" for a work means the preferred form of the work + for making modifications to it. For a library, complete source + code means all the source code for all modules it contains, plus + any associated interface definition files, plus the scripts used + to control compilation and installation of the library. + + + + Activities other than copying, distribution and modification are + not covered by this License; they are outside its scope. The act + of running a program using the Library is not restricted, and + output from such a program is covered only if its contents + constitute a work based on the Library (independent of the use + of the Library in a tool for writing it). Whether that is true + depends on what the Library does and what the program that uses + the Library does. + + + + 1. You may copy and distribute verbatim copies of the Library's + complete source code as you receive it, in any medium, provided + that you conspicuously and appropriately publish on each copy an + appropriate copyright notice and disclaimer of warranty; keep + intact all the notices that refer to this License and to the + absence of any warranty; and distribute a copy of this License + along with the Library. + + + + You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + + + + 2. You may modify your copy or copies of the Library or any + portion of it, thus forming a work based on the Library, and + copy and distribute such modifications or work under the terms + of Section 1 above, provided that you also meet all of these + conditions: + + + + a) The modified work must itself be a software library. + + + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + + + d) If a facility in the modified Library refers to a function or + a table of data to be supplied by an application program that + uses the facility, other than as an argument passed when the + facility is invoked, then you must make a good faith effort to + ensure that, in the event an application does not supply such + function or table, the facility still operates, and performs + whatever part of its purpose remains meaningful. + + + + (For example, a function in a library to compute square roots + has a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function + must be optional: if the application does not supply it, the + square root function must still compute square roots.) + + + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the + Library, and can be reasonably considered independent and + separate works in themselves, then this License, and its terms, + do not apply to those sections when you distribute them as + separate works. But when you distribute the same sections as + part of a whole which is a work based on the Library, the + distribution of the whole must be on the terms of this License, + whose permissions for other licensees extend to the entire + whole, and thus to each and every part regardless of who wrote + it. + + + + Thus, it is not the intent of this section to claim rights or + contest your rights to work written entirely by you; rather, the + intent is to exercise the right to control the distribution of + derivative or collective works based on the Library. + + + + In addition, mere aggregation of another work not based on the + Library with the Library (or with a work based on the Library) + on a volume of a storage or distribution medium does not bring + the other work under the scope of this License. + + + + 3. You may opt to apply the terms of the ordinary GNU General + Public License instead of this License to a given copy of the + Library. To do this, you must alter all the notices that refer + to this License, so that they refer to the ordinary GNU General + Public License, version 2, instead of to this License. (If a + newer version than version 2 of the ordinary GNU General Public + License has appeared, then you can specify that version instead + if you wish.) Do not make any other change in these notices. + + + + Once this change is made in a given copy, it is irreversible for + that copy, so the ordinary GNU General Public License applies to + all subsequent copies and derivative works made from that copy. + + + + This option is useful when you wish to copy part of the code of + the Library into a program that is not a library. + + + + 4. You may copy and distribute the Library (or a portion or + derivative of it, under Section 2) in object code or executable + form under the terms of Sections 1 and 2 above provided that you + accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Sections 1 and 2 above on a medium customarily used for software + interchange. + + + + If distribution of object code is made by offering access to + copy from a designated place, then offering equivalent access to + copy the source code from the same place satisfies the + requirement to distribute the source code, even though third + parties are not compelled to copy the source along with the + object code. + + + + 5. A program that contains no derivative of any portion of the + Library, but is designed to work with the Library by being + compiled or linked with it, is called a "work that uses the + Library". Such a work, in isolation, is not a derivative work of + the Library, and therefore falls outside the scope of this + License. + + + + However, linking a "work that uses the Library" with the Library + creates an executable that is a derivative of the Library + (because it contains portions of the Library), rather than a + "work that uses the library". The executable is therefore + covered by this License. Section 6 states terms for distribution + of such executables. + + + + When a "work that uses the Library" uses material from a header + file that is part of the Library, the object code for the work + may be a derivative work of the Library even though the source + code is not. Whether this is true is especially significant if + the work can be linked without the Library, or if the work is + itself a library. The threshold for this to be true is not + precisely defined by law. + + + + If such an object file uses only numerical parameters, data + structure layouts and accessors, and small macros and small + inline functions (ten lines or less in length), then the use of + the object file is unrestricted, regardless of whether it is + legally a derivative work. (Executables containing this object + code plus portions of the Library will still fall under Section + 6.) Otherwise, if the work is a derivative of the Library, you + may distribute the object code for the work under the terms of + Section 6. Any executables containing that work also fall under + Section 6, whether or not they are linked directly with the + Library itself. + + + + 6. As an exception to the Sections above, you may also combine + or link a "work that uses the Library" with the Library to + produce a work containing portions of the Library, and + distribute that work under terms of your choice, provided that + the terms permit modification of the work for the customer's own + use and reverse engineering for debugging such modifications. + + + + You must give prominent notice with each copy of the work that + the Library is used in it and that the Library and its use are + covered by this License. You must supply a copy of this License. + If the work during execution displays copyright notices, you + must include the copyright notice for the Library among them, as + well as a reference directing the user to the copy of this + License. Also, you must do one of these things: + + + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable + linked with the Library, with the complete machine-readable + "work that uses the Library", as object code and/or source code, + so that the user can modify the Library and then relink to + produce a modified executable containing the modified Library. + (It is understood that the user who changes the contents of + definitions files in the Library will not necessarily be able to + recompile the application to use the modified definitions.) + + + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer + system, rather than copying library functions into the + executable, and (2) will operate properly with a modified + version of the library, if the user installs one, as long as the + modified version is interface-compatible with the version that + the work was made with. + + + + c) Accompany the work with a written offer, valid for at least + three years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + + + + d) If distribution of the work is made by offering access to + copy from a designated place, offer equivalent access to copy + the above specified materials from the same place. + + + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + + + For an executable, the required form of the "work that uses the + Library" must include any data and utility programs needed for + reproducing the executable from it. However, as a special + exception, the materials to be distributed need not include + anything that is normally distributed (in either source or + binary form) with the major components (compiler, kernel, and so + on) of the operating system on which the executable runs, unless + that component itself accompanies the executable. + + + + It may happen that this requirement contradicts the license + restrictions of other proprietary libraries that do not normally + accompany the operating system. Such a contradiction means you + cannot use both them and the Library together in an executable + that you distribute. + + + + 7. You may place library facilities that are a work based on the + Library side-by-side in a single library together with other + library facilities not covered by this License, and distribute + such a combined library, provided that the separate distribution + of the work based on the Library and of the other library + facilities is otherwise permitted, and provided that you do + these two things: + + + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + + + 8. You may not copy, modify, sublicense, link with, or + distribute the Library except as expressly provided under this + License. Any attempt otherwise to copy, modify, sublicense, link + with, or distribute the Library is void, and will automatically + terminate your rights under this License. However, parties who + have received copies, or rights, from you under this License + will not have their licenses terminated so long as such parties + remain in full compliance. + + + + 9. You are not required to accept this License, since you have + not signed it. However, nothing else grants you permission to + modify or distribute the Library or its derivative works. These + actions are prohibited by law if you do not accept this License. + Therefore, by modifying or distributing the Library (or any work + based on the Library), you indicate your acceptance of this + License to do so, and all its terms and conditions for copying, + distributing or modifying the Library or works based on it. + + + + 10. Each time you redistribute the Library (or any work based on + the Library), the recipient automatically receives a license + from the original licensor to copy, distribute, link with or + modify the Library subject to these terms and conditions. You + may not impose any further restrictions on the recipients' + exercise of the rights granted herein. You are not responsible + for enforcing compliance by third parties with this License. + + + + 11. If, as a consequence of a court judgment or allegation of + patent infringement or for any other reason (not limited to + patent issues), conditions are imposed on you (whether by court + order, agreement or otherwise) that contradict the conditions of + this License, they do not excuse you from the conditions of this + License. If you cannot distribute so as to satisfy + simultaneously your obligations under this License and any other + pertinent obligations, then as a consequence you may not + distribute the Library at all. For example, if a patent license + would not permit royalty-free redistribution of the Library by + all those who receive copies directly or indirectly through you, + then the only way you could satisfy both it and this License + would be to refrain entirely from distribution of the Library. + + + + If any portion of this section is held invalid or unenforceable + under any particular circumstance, the balance of the section is + intended to apply, and the section as a whole is intended to + apply in other circumstances. + + + + It is not the purpose of this section to induce you to infringe + any patents or other property right claims or to contest + validity of any such claims; this section has the sole purpose + of protecting the integrity of the free software distribution + system which is implemented by public license practices. Many + people have made generous contributions to the wide range of + software distributed through that system in reliance on + consistent application of that system; it is up to the + author/donor to decide if he or she is willing to distribute + software through any other system and a licensee cannot impose + that choice. + + + + This section is intended to make thoroughly clear what is + believed to be a consequence of the rest of this License. + + + + 12. If the distribution and/or use of the Library is restricted + in certain countries either by patents or by copyrighted + interfaces, the original copyright holder who places the Library + under this License may add an explicit geographical distribution + limitation excluding those countries, so that distribution is + permitted only in or among countries not thus excluded. In such + case, this License incorporates the limitation as if written in + the body of this License. + + + + 13. The Free Software Foundation may publish revised and/or new + versions of the Lesser General Public License from time to time. + Such new versions will be similar in spirit to the present + version, but may differ in detail to address new problems or + concerns. + + + + Each version is given a distinguishing version number. If the + Library specifies a version number of this License which applies + to it and "any later version", you have the option of following + the terms and conditions either of that version or of any later + version published by the Free Software Foundation. If the + Library does not specify a license version number, you may + choose any version ever published by the Free Software + Foundation. + + + + 14. If you wish to incorporate parts of the Library into other + free programs whose distribution conditions are incompatible + with these, write to the author to ask for permission. For + software which is copyrighted by the Free Software Foundation, + write to the Free Software Foundation; we sometimes make + exceptions for this. Our decision will be guided by the two + goals of preserving the free status of all derivatives of our + free software and of promoting the sharing and reuse of software + generally. + + + + NO WARRANTY + + + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO + WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE + LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT + WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE + QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE + LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY + SERVICING, REPAIR OR CORRECTION. + + + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO + IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY + MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE + LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, + INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR + INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS + OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH + ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + + + END OF TERMS AND CONDITIONS + + + + + + + Mozilla Public License (MPL) + + + MOZILLA PUBLIC LICENSE Version 1.1 + + + + 1. Definitions. + + + + 1.0.1. "Commercial Use" means distribution or otherwise making + the Covered Code available to a third party. + + + + 1.1. "Contributor" means each entity that creates or contributes + to the creation of Modifications. + + + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the + Modifications made by that particular Contributor. + + + + 1.3. "Covered Code" means the Original Code or Modifications or + the combination of the Original Code and Modifications, in each + case including portions thereof. + + + + 1.4. "Electronic Distribution Mechanism" means a mechanism + generally accepted in the software development community for the + electronic transfer of data. + + + + 1.5. "Executable" means Covered Code in any form other than + Source Code. + + + + 1.6. "Initial Developer" means the individual or entity + identified as the Initial Developer in the Source Code notice + required by Exhibit A. + + + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this + License. + + + + 1.8. "License" means this document. + + + + 1.8.1. "Licensable" means having the right to grant, to the + maximum extent possible, whether at the time of the initial + grant or subsequently acquired, any and all of the rights + conveyed herein. + + + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any + previous Modifications. When Covered Code is released as a + series of files, a Modification is: + + + + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + + + 1.10. "Original Code" means Source Code of computer software + code which is described in the Source Code notice required by + Exhibit A as Original Code, and which, at the time of its + release under this License is not already Covered Code governed + by this License. + + + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, + process, and apparatus claims, in any patent Licensable by + grantor. + + + + 1.11. "Source Code" means the preferred form of the Covered Code + for making modifications to it, including all modules it + contains, plus any associated interface definition files, + scripts used to control compilation and installation of an + Executable, or source code differential comparisons against + either the Original Code or another well known, available + Covered Code of the Contributor's choice. The Source Code can be + in a compressed or archival form, provided the appropriate + decompression or de-archiving software is widely available for + no charge. + + + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, + this License or a future version of this License issued under + Section 6.1. For legal entities, "You" includes any entity which + controls, is controlled by, or is under common control with You. + For purposes of this definition, "control" means (a) the power, + direct or indirect, to cause the direction or management of such + entity, whether by contract or otherwise, or (b) ownership of + more than fifty percent (50%) of the outstanding shares or + beneficial ownership of such entity. + + + + 2. Source Code License. + + + + 2.1. The Initial Developer Grant. The Initial Developer hereby + grants You a world-wide, royalty-free, non-exclusive license, + subject to third party intellectual property claims: + + + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + + + 2.2. Contributor Grant. Subject to third party intellectual + property claims, each Contributor hereby grants You a + world-wide, royalty-free, non-exclusive license + + + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made + by that Contributor. + + + + 3. Distribution Obligations. + + + + 3.1. Application of License. The Modifications which You create + or to which You contribute are governed by the terms of this + License, including without limitation Section 2.2. The Source + Code version of Covered Code may be distributed only under the + terms of this License or a future version of this License + released under Section 6.1, and You must include a copy of this + License with every copy of the Source Code You distribute. You + may not offer or impose any terms on any Source Code version + that alters or restricts the applicable version of this License + or the recipients' rights hereunder. However, You may include an + additional document offering the additional rights described in + Section 3.5. + + + + 3.2. Availability of Source Code. Any Modification which You + create or to which You contribute must be made available in + Source Code form under the terms of this License either on the + same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via + Electronic Distribution Mechanism, must remain available for at + least twelve (12) months after the date it initially became + available, or at least six (6) months after a subsequent version + of that particular Modification has been made available to such + recipients. You are responsible for ensuring that the Source + Code version remains available even if the Electronic + Distribution Mechanism is maintained by a third party. + + + + 3.3. Description of Modifications. You must cause all Covered + Code to which You contribute to contain a file documenting the + changes You made to create that Covered Code and the date of any + change. You must include a prominent statement that the + Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of + the Initial Developer in (a) the Source Code, and (b) in any + notice in an Executable version or related documentation in + which You describe the origin or ownership of the Covered Code. + + + + 3.4. Intellectual Property Matters + + + + (a) Third Party Claims. If Contributor has knowledge that a + license under a third party's intellectual property rights is + required to exercise the rights granted by such Contributor + under Sections 2.1 or 2.2, Contributor must include a text file + with the Source Code distribution titled "LEGAL" which describes + the claim and the party making the claim in sufficient detail + that a recipient will know whom to contact. If Contributor + obtains such knowledge after the Modification is made available + as described in Section 3.2, Contributor shall promptly modify + the LEGAL file in all copies Contributor makes available + thereafter and shall take other steps (such as notifying + appropriate mailing lists or newsgroups) reasonably calculated + to inform those who received the Covered Code that new knowledge + has been obtained. + + + + (b) Contributor APIs. If Contributor's Modifications include an + application programming interface and Contributor has knowledge + of patent licenses which are reasonably necessary to implement + that API, Contributor must also include this information in the + LEGAL file. + + + + 3.5. Required Notices. You must duplicate the notice in Exhibit + A in each file of the Source Code. If it is not possible to put + such notice in a particular Source Code file due to its + structure, then You must include such notice in a location (such + as a relevant directory) where a user would be likely to look + for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described + in Exhibit A. You must also duplicate this License in any + documentation for the Source Code where You describe recipients' + rights or ownership rights relating to Covered Code. You may + choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of + Covered Code. However, You may do so only on Your own behalf, + and not on behalf of the Initial Developer or any Contributor. + You must make it absolutely clear than any such warranty, + support, indemnity or liability obligation is offered by You + alone, and You hereby agree to indemnify the Initial Developer + and every Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of warranty, support, + indemnity or liability terms You offer. + + + + 3.6. Distribution of Executable Versions. You may distribute + Covered Code in Executable form only if the requirements of + Section 3.1-3.5 have been met for that Covered Code, and if You + include a notice stating that the Source Code version of the + Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously + included in any notice in an Executable version, related + documentation or collateral in which You describe recipients' + rights relating to the Covered Code. You may distribute the + Executable version of Covered Code or ownership rights under a + license of Your choice, which may contain terms different from + this License, provided that You are in compliance with the terms + of this License and that the license for the Executable version + does not attempt to limit or alter the recipient's rights in the + Source Code version from the rights set forth in this License. + If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which + differ from this License are offered by You alone, not by the + Initial Developer or any Contributor. You hereby agree to + indemnify the Initial Developer and every Contributor for any + liability incurred by the Initial Developer or such Contributor + as a result of any such terms You offer. + + + + 3.7. Larger Works. You may create a Larger Work by combining + Covered Code with other code not governed by the terms of this + License and distribute the Larger Work as a single product. In + such a case, You must make sure the requirements of this License + are fulfilled for the Covered Code. + + + + 4. Inability to Comply Due to Statute or Regulation.If it is + impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply + with the terms of this License to the maximum extent possible; + and (b) describe the limitations and the code they affect. Such + description must be included in the LEGAL file described in + Section 3.4 and must be included with all distributions of the + Source Code. Except to the extent prohibited by statute or + regulation, such description must be sufficiently detailed for a + recipient of ordinary skill to be able to understand it. + + + + 5. Application of this License. This License applies to code to + which the Initial Developer has attached the notice in Exhibit A + and to related Covered Code. + + + + 6. Versions of the License. + + + + 6.1. New Versions. Netscape Communications Corporation + ("Netscape") may publish revised and/or new versions of the + License from time to time. Each version will be given a + distinguishing version number. + + + + 6.2. Effect of New Versions. Once Covered Code has been + published under a particular version of the License, You may + always continue to use it under the terms of that version. You + may also choose to use such Covered Code under the terms of any + subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable + to Covered Code created under this License. + + + + 6.3. Derivative Works. If You create or use a modified version + of this License (which you may only do in order to apply it to + code which is not already Covered Code governed by this + License), You must (a) rename Your license so that the phrases + "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any + confusingly similar phrase do not appear in your license (except + to note that your license differs from this License) and (b) + otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described + in Exhibit A shall not of themselves be deemed to be + modifications of this License.) + + + + 7. DISCLAIMER OF WARRANTY. + + + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE + IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE + OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND + PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED + CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL + DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY + NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF + WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE + OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS + DISCLAIMER. + + + + 8. TERMINATION. + + + + 8.1. This License and the rights granted hereunder will + terminate automatically if You fail to comply with terms herein + and fail to cure such breach within 30 days of becoming aware of + the breach. All sublicenses to the Covered Code which are + properly granted shall survive any termination of this License. + Provisions which, by their nature, must remain in effect beyond + the termination of this License shall survive. + + + + 8.2. If You initiate litigation by asserting a patent + infringement claim (excluding declaratory judgment actions) + against Initial Developer or a Contributor (the Initial + Developer or Contributor against whom You file such action is + referred to as "Participant") alleging that: + + + + (a) such Participant's Contributor Version directly or + indirectly infringes any patent, then any and all rights granted + by such Participant to You under Sections 2.1 and/or 2.2 of this + License shall, upon 60 days notice from Participant terminate + prospectively, unless if within 60 days after receipt of notice + You either: (i) agree in writing to pay Participant a mutually + agreeable reasonable royalty for Your past and future use of + Modifications made by such Participant, or (ii) withdraw Your + litigation claim with respect to the Contributor Version against + such Participant. If within 60 days of notice, a reasonable + royalty and payment arrangement are not mutually agreed upon in + writing by the parties or the litigation claim is not withdrawn, + the rights granted by Participant to You under Sections 2.1 + and/or 2.2 automatically terminate at the expiration of the 60 + day notice period specified above. + + + + (b) any software, hardware, or device, other than such + Participant's Contributor Version, directly or indirectly + infringes any patent, then any rights granted to You by such + Participant under Sections 2.1(b) and 2.2(b) are revoked + effective as of the date You first made, used, sold, + distributed, or had made, Modifications made by that + Participant. + + + + 8.3. If You assert a patent infringement claim against + Participant alleging that such Participant's Contributor Version + directly or indirectly infringes any patent where such claim is + resolved (such as by license or settlement) prior to the + initiation of patent infringement litigation, then the + reasonable value of the licenses granted by such Participant + under Sections 2.1 or 2.2 shall be taken into account in + determining the amount or value of any payment or license. + + + + 8.4. In the event of termination under Sections 8.1 or 8.2 + above, all end user license agreements (excluding distributors + and resellers) which have been validly granted by You or any + distributor hereunder prior to termination shall survive + termination. + + + + 9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO + LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR + OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER + CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER + OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY + INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF + GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY + AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY + SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. + THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR + DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE + TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME + JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF + INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND + LIMITATION MAY NOT APPLY TO YOU. + + + + 10. U.S. GOVERNMENT END USERS. The Covered Code is a "commercial + item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), + consisting of "commercial computer software" and "commercial + computer software documentation," as such terms are used in 48 + C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and + 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. + Government End Users acquire Covered Code with only those rights + set forth herein. + + + + 11. MISCELLANEOUS. This License represents the complete + agreement concerning subject matter hereof. If any provision of + this License is held to be unenforceable, such provision shall + be reformed only to the extent necessary to make it enforceable. + This License shall be governed by California law provisions + (except to the extent applicable law, if any, provides + otherwise), excluding its conflict-of-law provisions. With + respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the + United States of America, any litigation relating to this + License shall be subject to the jurisdiction of the Federal + Courts of the Northern District of California, with venue lying + in Santa Clara County, California, with the losing party + responsible for costs, including without limitation, court costs + and reasonable attorneys' fees and expenses. The application of + the United Nations Convention on Contracts for the International + Sale of Goods is expressly excluded. Any law or regulation which + provides that the language of a contract shall be construed + against the drafter shall not apply to this License. + + + + 12. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and + the Contributors, each party is responsible for claims and + damages arising, directly or indirectly, out of its utilization + of rights under this License and You agree to work with Initial + Developer and Contributors to distribute such responsibility on + an equitable basis. Nothing herein is intended or shall be + deemed to constitute any admission of liability. + + + + 13. MULTIPLE-LICENSED CODE. Initial Developer may designate + portions of the Covered Code as "Multiple-Licensed". + "Multiple-Licensed" means that the Initial Developer permits you + to utilize portions of the Covered Code under Your choice of the + NPL or the alternative licenses, if any, specified by the + Initial Developer in the file described in Exhibit A. + + + + EXHIBIT A -Mozilla Public License. + + + + ``The contents of this file are subject to the Mozilla Public + License Version 1.1 (the "License"); you may not use this file + except in compliance with the License. You may obtain a copy of + the License at http://www.mozilla.org/MPL/ + + + + Software distributed under the License is distributed on an "AS + IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + implied. See the License for the specific language governing + rights and limitations under the License. + + + + The Original Code is ______________________________________. + + + + The Initial Developer of the Original Code is + ________________________. Portions created by + ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + + + Contributor(s): ______________________________________. + + + + Alternatively, the contents of this file may be used under the + terms of the _____ license (the "[___] License"), in which case + the provisions of [______] License are applicable instead of + those above. If you wish to allow use of your version of this + file only under the terms of the [____] License and not to allow + others to use your version of this file under the MPL, indicate + your decision by deleting the provisions above and replace them + with the notice and other provisions required by the [___] + License. If you do not delete the provisions above, a recipient + may use your version of this file under either the MPL or the + [___] License." + + + + [NOTE: The text of this Exhibit A may differ slightly from the + text of the notices in the Source Code files of the Original + Code. You should use the text of this Exhibit A rather than the + text found in the Original Code Source Code for Your + Modifications.] + + + + + + + MIT License + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + + + + X Consortium License (X11) (variant 1) + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + + + + X Consortium License (X11) (variant 2) + + + Copyright (c) 1987, 1989-1990, 1992-1995 X Consortium + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + Except as contained in this notice, the name of the X Consortium + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from the X Consortium. + + + + + + + zlib License + + + This software is provided 'as-is', without any express or + implied warranty. In no event will the authors be held liable + for any damages arising from the use of this software. + + + + Permission is granted to anyone to use this software for any + purpose, including commercial applications, and to alter it and + redistribute it freely, subject to the following restrictions: + + + + 1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you use + this software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + + + + 2. Altered source versions must be plainly marked as such, and + must not be misrepresented as being the original software. + + + + 3. This notice may not be removed or altered from any source + distribution. + + +Jean-loup Gailly Mark Adler +jloup@gzip.org madler@alumni.caltech.edu + + + + + + Apache License v2 + + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + + + 1. Definitions. + + + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + + + END OF TERMS AND CONDITIONS + + + + + + + OpenSSL License + + + This package is an SSL implementation written by Eric Young + (eay@cryptsoft.com). The implementation was written so as to + conform with Netscape's SSL. + + + + This library is free for commercial and non-commercial use as + long as the following conditions are adhered to. The following + conditions apply to all code found in this distribution, be it + the RC4, RSA, lhash, DES, etc., code; not just the SSL code. The + SSL documentation included with this distribution is covered by + the same copyright terms except that the holder is Tim Hudson + (tjh@cryptsoft.com). + + + + Copyright remains Eric Young's, and as such any Copyright + notices in the code are not to be removed. If this package is + used in a product, Eric Young should be given attribution as the + author of the parts of the library used. This can be in the form + of a textual message at program startup or in documentation + (online or textual) provided with the package. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + 1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. + + + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + + + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgement: "This + product includes cryptographic software written by Eric Young + (eay@cryptsoft.com)" The word 'cryptographic' can be left out if + the routines from the library being used are not cryptographic + related :-). + + + + 4. If you include any Windows specific code (or a derivative + thereof) from the apps directory (application code) you must + include an acknowledgement: "This product includes software + written by Tim Hudson (tjh@cryptsoft.com)" + + + + THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + The licence and distribution terms for any publicly available + version or derivative of this code cannot be changed. i.e. this + code cannot simply be copied and put under another distribution + licence [including the GNU Public Licence.] + + + + + + + Slirp License + + + Copyright (c) 1995,1996 Danny Gasparovski. All rights reserved. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DANNY GASPAROVSKI OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + liblzf License + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + + + 3. The name of the author may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + libpng License + + + The PNG Reference Library is supplied "AS IS". The Contributing + Authors and Group 42, Inc. disclaim all warranties, expressed or + implied, including, without limitation, the warranties of + merchantability and of fitness for any purpose. The Contributing + Authors and Group 42, Inc. assume no liability for direct, + indirect, incidental, special, exemplary, or consequential + damages, which may result from the use of the PNG Reference + Library, even if advised of the possibility of such damage. + + + + Permission is hereby granted to use, copy, modify, and + distribute this source code, or portions hereof, for any + purpose, without fee, subject to the following restrictions: + + + + 1. The origin of this source code must not be misrepresented. + + + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + + + The Contributing Authors and Group 42, Inc. specifically permit, + without fee, and encourage the use of this source code as a + component to supporting the PNG file format in commercial + products. If you use this source code in a product, + acknowledgment is not required but would be appreciated. + + + + + + + lwIP License + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + + + 3. The name of the author may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + libxml License + + + Except where otherwise noted in the source code (e.g. the files + hash.c, list.c and the trio files, which are covered by a + similar licence but with different Copyright notices) all the + files are: + + + + Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL VEILLARD BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + Except as contained in this notice, the name of Daniel Veillard + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from him. + + + + The file hash.c is: + + + + Copyright (C) 2000,2012 Bjorn Reese and Daniel Veillard. + + + + The file list.c is: + + + + Copyright (C) 2000 Gary Pennington and Daniel Veillard + + + + The trio files are: + + + + Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. + + + + The license for hash.c, list.c, and the trio files is: + + + + Permission to use, copy, modify, and distribute this software + for any purpose with or without fee is hereby granted, provided + that the above copyright notice and this permission notice + appear in all copies. + + + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE AUTHORS AND CONTRIBUTORS ACCEPT NO RESPONSIBILITY + IN ANY CONCEIVABLE MANNER. + + + + + + + gSOAP Public License Version 1.3a + + + The gSOAP public license is derived from the Mozilla Public + License (MPL1.1). The sections that were deleted from the + original MPL1.1 text are 1.0.1, 2.1.(c),(d), 2.2.(c),(d), + 8.2.(b), 10, and 11. Section 3.8 was added. The modified + sections are 2.1.(b), 2.2.(b), 3.2 (simplified), 3.5 (deleted + the last sentence), and 3.6 (simplified). + + + + 1 DEFINITIONS + + + + 1.1. "Contributor" means each entity that creates or contributes + to the creation of Modifications. + + + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the + Modifications made by that particular Contributor. + + + + 1.3. "Covered Code" means the Original Code, or Modifications or + the combination of the Original Code, and Modifications, in each + case including portions thereof. + + + + 1.4. "Electronic Distribution Mechanism" means a mechanism + generally accepted in the software development community for the + electronic transfer of data. + + + + 1.5. "Executable" means Covered Code in any form other than + Source Code. + + + + 1.6. "Initial Developer" means the individual or entity + identified as the Initial Developer in the Source Code notice + required by Exhibit A. + + + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this + License. + + + + 1.8. "License" means this document. + + + + 1.8.1. "Licensable" means having the right to grant, to the + maximum extent possible, whether at the time of the initial + grant or subsequently acquired, any and all of the rights + conveyed herein. + + + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any + previous Modifications. When Covered Code is released as a + series of files, a Modification is: + + + + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + + + B. Any new file that contains any part of the Original Code, or + previous Modifications. + + + + 1.10. "Original Code" means Source Code of computer software + code which is described in the Source Code notice required by + Exhibit A as Original Code, and which, at the time of its + release under this License is not already Covered Code governed + by this License. + + + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, + process, and apparatus claims, in any patent Licensable by + grantor. + + + + 1.11. "Source Code" means the preferred form of the Covered Code + for making modifications to it, including all modules it + contains, plus any associated interface definition files, + scripts used to control compilation and installation of an + Executable, or source code differential comparisons against + either the Original Code or another well known, available + Covered Code of the Contributor's choice. The Source Code can be + in a compressed or archival form, provided the appropriate + decompression or de-archiving software is widely available for + no charge. + + + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, + this License or a future version of this License issued under + Section 6.1. For legal entities, "You" includes any entity which + controls, is controlled by, or is under common control with You. + For purposes of this definition, "control" means (a) the power, + direct or indirect, to cause the direction or management of such + entity, whether by contract or otherwise, or (b) ownership of + more than fifty percent (50%) of the outstanding shares or + beneficial ownership of such entity. + + + + 2 SOURCE CODE LICENSE. + + + + 2.1. The Initial Developer Grant. + + + + The Initial Developer hereby grants You a world-wide, + royalty-free, non-exclusive license, subject to third party + intellectual property claims: + + + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + + + (b) under patents now or hereafter owned or controlled by + Initial Developer, to make, have made, use and sell ("offer to + sell and import") the Original Code, Modifications, or portions + thereof, but solely to the extent that any such patent is + reasonably necessary to enable You to utilize, alone or in + combination with other software, the Original Code, + Modifications, or any combination or portions thereof. + + + + (c) + + + + (d) + + + + 2.2. Contributor Grant. + + + + Subject to third party intellectual property claims, each + Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license + + + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + + + (b) under patents now or hereafter owned or controlled by + Contributor, to make, have made, use and sell ("offer to sell + and import") the Contributor Version (or portions thereof), but + solely to the extent that any such patent is reasonably + necessary to enable You to utilize, alone or in combination with + other software, the Contributor Version (or portions thereof). + + + + (c) + + + + (d) + + + + 3 DISTRIBUTION OBLIGATIONS. + + + + 3.1. Application of License. + + + + The Modifications which You create or to which You contribute + are governed by the terms of this License, including without + limitation Section 2.2. The Source Code version of Covered Code + may be distributed only under the terms of this License or a + future version of this License released under Section 6.1, and + You must include a copy of this License with every copy of the + Source Code You distribute. You may not offer or impose any + terms on any Source Code version that alters or restricts the + applicable version of this License or the recipients' rights + hereunder. However, You may include an additional document + offering the additional rights described in Section 3.5. + + + + 3.2. Availability of Source Code. + + + + Any Modification created by You will be provided to the Initial + Developer in Source Code form and are subject to the terms of + the License. 3.3. Description of Modifications. + + + + You must cause all Covered Code to which You contribute to + contain a file documenting the changes You made to create that + Covered Code and the date of any change. You must include a + prominent statement that the Modification is derived, directly + or indirectly, from Original Code provided by the Initial + Developer and including the name of the Initial Developer in (a) + the Source Code, and (b) in any notice in an Executable version + or related documentation in which You describe the origin or + ownership of the Covered Code. + + + + 3.4. Intellectual Property Matters. + + + + (a) Third Party Claims. If Contributor has knowledge that a + license under a third party's intellectual property rights is + required to exercise the rights granted by such Contributor + under Sections 2.1 or 2.2, Contributor must include a text file + with the Source Code distribution titled "LEGAL" which describes + the claim and the party making the claim in sufficient detail + that a recipient will know whom to contact. If Contributor + obtains such knowledge after the Modification is made available + as described in Section 3.2, Contributor shall promptly modify + the LEGAL file in all copies Contributor makes available + thereafter and shall take other steps (such as notifying + appropriate mailing lists or newsgroups) reasonably calculated + to inform those who received the Covered Code that new knowledge + has been obtained. + + + + (b) Contributor APIs. If Contributor's Modifications include an + application programming interface and Contributor has knowledge + of patent licenses which are reasonably necessary to implement + that API, Contributor must also include this information in the + LEGAL file. + + + + (c) Representations. Contributor represents that, except as + disclosed pursuant to Section 3.4(a) above, Contributor believes + that Contributor's Modifications are Contributor's original + creation(s) and/or Contributor has sufficient rights to grant + the rights conveyed by this License. + + + + 3.5. Required Notices. You must duplicate the notice in Exhibit + A in each file of the Source Code. If it is not possible to put + such notice in a particular Source Code file due to its + structure, then You must include such notice in a location (such + as a relevant directory) where a user would be likely to look + for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described + in Exhibit A. You must also duplicate this License in any + documentation for the Source Code where You describe recipients' + rights or ownership rights relating to Covered Code. You may + choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of + Covered Code. However, You may do so only on Your own behalf, + and not on behalf of the Initial Developer or any Contributor. + + + + 3.6. Distribution of Executable Versions. You may distribute + Covered Code in Executable form only if the requirements of + Section 3.1-3.5 have been met for that Covered Code. You may + distribute the Executable version of Covered Code or ownership + rights under a license of Your choice, which may contain terms + different from this License, provided that You are in compliance + with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the + recipient's rights in the Source Code version from the rights + set forth in this License. If You distribute the Executable + version under a different license You must make it absolutely + clear that any terms which differ from this License are offered + by You alone, not by the Initial Developer or any Contributor. + If you distribute executable versions containing Covered Code as + part of a product, you must reproduce the notice in Exhibit B in + the documentation and/or other materials provided with the + product. + + + + 3.7. Larger Works. You may create a Larger Work by combining + Covered Code with other code not governed by the terms of this + License and distribute the Larger Work as a single product. In + such a case, You must make sure the requirements of this License + are fulfilled for the Covered Code. + + + + 3.8. Restrictions. You may not remove any product + identification, copyright, proprietary notices or labels from + gSOAP. + + + + 4 INABILITY TO COMPLY DUE TO STATUTE OR REGULATION. + + + + If it is impossible for You to comply with any of the terms of + this License with respect to some or all of the Covered Code due + to statute, judicial order, or regulation then You must: (a) + comply with the terms of this License to the maximum extent + possible; and (b) describe the limitations and the code they + affect. Such description must be included in the LEGAL file + described in Section 3.4 and must be included with all + distributions of the Source Code. Except to the extent + prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be + able to understand it. + + + + 5 APPLICATION OF THIS LICENSE. + + + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + + + + 6 VERSIONS OF THE LICENSE. + + + + 6.1. New Versions. + + + + Grantor may publish revised and/or new versions of the License + from time to time. Each version will be given a distinguishing + version number. + + + + 6.2. Effect of New Versions. + + + + Once Covered Code has been published under a particular version + of the License, You may always continue to use it under the + terms of that version. You may also choose to use such Covered + Code under the terms of any subsequent version of the License. + + + + 6.3. Derivative Works. + + + + If You create or use a modified version of this License (which + you may only do in order to apply it to code which is not + already Covered Code governed by this License), You must (a) + rename Your license so that the phrase "gSOAP" or any + confusingly similar phrase do not appear in your license (except + to note that your license differs from this License) and (b) + otherwise make it clear that Your version of the license + contains terms which differ from the gSOAP Public License. + (Filling in the name of the Initial Developer, Original Code or + Contributor in the notice described in Exhibit A shall not of + themselves be deemed to be modifications of this License.) + + + + 7 DISCLAIMER OF WARRANTY. + + + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED OR + STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES + OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE, + NONINFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS, AND + ANY WARRANTY THAT MAY ARISE BY REASON OF TRADE USAGE, CUSTOM, OR + COURSE OF DEALING. WITHOUT LIMITING THE FOREGOING, YOU + ACKNOWLEDGE THAT THE SOFTWARE IS PROVIDED "AS IS" AND THAT THE + AUTHORS DO NOT WARRANT THE SOFTWARE WILL RUN UNINTERRUPTED OR + ERROR FREE. LIMITED LIABILITY THE ENTIRE RISK AS TO RESULTS AND + PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. UNDER NO + CIRCUMSTANCES WILL THE AUTHORS BE LIABLE FOR ANY SPECIAL, + INDIRECT, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY + KIND OR NATURE WHATSOEVER, WHETHER BASED ON CONTRACT, WARRANTY, + TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, + ARISING OUT OF OR IN ANY WAY RELATED TO THE SOFTWARE, EVEN IF + THE AUTHORS HAVE BEEN ADVISED ON THE POSSIBILITY OF SUCH DAMAGE + OR IF SUCH DAMAGE COULD HAVE BEEN REASONABLY FORESEEN, AND + NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY + EXCLUSIVE REMEDY PROVIDED. SUCH LIMITATION ON DAMAGES INCLUDES, + BUT IS NOT LIMITED TO, DAMAGES FOR LOSS OF GOODWILL, LOST + PROFITS, LOSS OF DATA OR SOFTWARE, WORK STOPPAGE, COMPUTER + FAILURE OR MALFUNCTION OR IMPAIRMENT OF OTHER GOODS. IN NO EVENT + WILL THE AUTHORS BE LIABLE FOR THE COSTS OF PROCUREMENT OF + SUBSTITUTE SOFTWARE OR SERVICES. YOU ACKNOWLEDGE THAT THIS + SOFTWARE IS NOT DESIGNED FOR USE IN ON-LINE EQUIPMENT IN + HAZARDOUS ENVIRONMENTS SUCH AS OPERATION OF NUCLEAR FACILITIES, + AIRCRAFT NAVIGATION OR CONTROL, OR LIFE-CRITICAL APPLICATIONS. + THE AUTHORS EXPRESSLY DISCLAIM ANY LIABILITY RESULTING FROM USE + OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN HAZARDOUS + ENVIRONMENTS AND ACCEPTS NO LIABILITY IN RESPECT OF ANY ACTIONS + OR CLAIMS BASED ON THE USE OF THE SOFTWARE IN ANY SUCH ON-LINE + EQUIPMENT IN HAZARDOUS ENVIRONMENTS BY YOU. FOR PURPOSES OF THIS + PARAGRAPH, THE TERM "LIFE-CRITICAL APPLICATION" MEANS AN + APPLICATION IN WHICH THE FUNCTIONING OR MALFUNCTIONING OF THE + SOFTWARE MAY RESULT DIRECTLY OR INDIRECTLY IN PHYSICAL INJURY OR + LOSS OF HUMAN LIFE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN + ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS + AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + + + 8 TERMINATION. + + + + 8.1. + + + + This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail + to cure such breach within 30 days of becoming aware of the + breach. All sublicenses to the Covered Code which are properly + granted shall survive any termination of this License. + Provisions which, by their nature, must remain in effect beyond + the termination of this License shall survive. + + + + 8.2. + + + + 8.3. + + + + If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved + (such as by license or settlement) prior to the initiation of + patent infringement litigation, then the reasonable value of the + licenses granted by such Participant under Sections 2.1 or 2.2 + shall be taken into account in determining the amount or value + of any payment or license. + + + + 8.4. In the event of termination under Sections 8.1 or 8.2 + above, all end user license agreements (excluding distributors + and resellers) which have been validly granted by You or any + distributor hereunder prior to termination shall survive + termination. + + + + 9 LIMITATION OF LIABILITY. + + + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE + TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, + COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL + DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED + OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY + SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE + LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW + THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL + DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + + + 10 U.S. GOVERNMENT END USERS. + + + + 11 MISCELLANEOUS. + + + + 12 RESPONSIBILITY FOR CLAIMS. + + + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or + indirectly, out of its utilization of rights under this License + and You agree to work with Initial Developer and Contributors to + distribute such responsibility on an equitable basis. Nothing + herein is intended or shall be deemed to constitute any + admission of liability. + + + + EXHIBIT A. + + + + "The contents of this file are subject to the gSOAP Public + License Version 1.3 (the "License"); you may not use this file + except in compliance with the License. You may obtain a copy of + the License at + . + Software distributed under the License is distributed on an "AS + IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + implied. See the License for the specific language governing + rights and limitations under the License. + + + + The Original Code of the gSOAP Software is: stdsoap.h, + stdsoap2.h, stdsoap.c, stdsoap2.c, stdsoap.cpp, stdsoap2.cpp, + soapcpp2.h, soapcpp2.c, soapcpp2_lex.l, soapcpp2_yacc.y, + error2.h, error2.c, symbol2.c, init2.c, soapdoc2.html, and + soapdoc2.pdf, httpget.h, httpget.c, stl.h, stldeque.h, + stllist.h, stlvector.h, stlset.h. + + + + The Initial Developer of the Original Code is Robert A. van + Engelen. Portions created by Robert A. van Engelen are Copyright + (C) 2001-2004 Robert A. van Engelen, Genivia inc. All Rights + Reserved. + + + + Contributor(s): "________________________." [Note: The text of + this Exhibit A may differ slightly form the text of the notices + in the Source Code files of the Original code. You should use + the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + + + + EXHIBIT B. + + + + "Part of the software embedded in this product is gSOAP + software. Portions created by gSOAP are Copyright (C) 2001-2004 + Robert A. van Engelen, Genivia inc. All Rights Reserved. THE + SOFTWARE IN THIS PRODUCT WAS IN PART PROVIDED BY GENIVIA INC AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE." + + + + + + + curl License + + + COPYRIGHT AND PERMISSION NOTICE + + + + Copyright (c) 1996 - 2009, Daniel Stenberg, daniel@haxx.se. + + + + All rights reserved. + + + + Permission to use, copy, modify, and distribute this software + for any purpose with or without fee is hereby granted, provided + that the above copyright notice and this permission notice + appear in all copies. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + Except as contained in this notice, the name of a copyright + holder shall not be used in advertising or otherwise to promote + the sale, use or other dealings in this Software without prior + written authorization of the copyright holder. + + + + + + + libgd License + + + Credits and license terms: + + + + In order to resolve any possible confusion regarding the + authorship of gd, the following copyright statement covers all + of the authors who have required such a statement. If you are + aware of any oversights in this copyright notice, please contact + Pierre-A. Joye who will be pleased to correct them. + + + + Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004 by Cold Spring Harbor Laboratory. Funded + under Grant P41-RR02188 by the National Institutes of Health. + + + + Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004 by Boutell.Com, Inc. + + + + Portions relating to GD2 format copyright 1999, 2000, 2001, + 2002, 2003, 2004 Philip Warner. + + + + Portions relating to PNG copyright 1999, 2000, 2001, 2002, 2003, + 2004 Greg Roelofs. + + + + Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002, + 2003, 2004 John Ellson (ellson@graphviz.org). + + + + Portions relating to gdft.c copyright 2001, 2002, 2003, 2004 + John Ellson (ellson@graphviz.org). + + + + Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008 Pierre-Alain Joye (pierre@libgd.org). + + + + Portions relating to JPEG and to color quantization copyright + 2000, 2001, 2002, 2003, 2004, Doug Becker and copyright (C) + 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Thomas G. Lane. This software is based in part on the work of + the Independent JPEG Group. See the file README-JPEG.TXT for + more information. + + + + Portions relating to GIF compression copyright 1989 by Jef + Poskanzer and David Rowley, with modifications for thread safety + by Thomas Boutell. + + + + Portions relating to GIF decompression copyright 1990, 1991, + 1993 by David Koblas, with modifications for thread safety by + Thomas Boutell. + + + + Portions relating to WBMP copyright 2000, 2001, 2002, 2003, 2004 + Maurice Szmurlo and Johan Van den Brande. + + + + Portions relating to GIF animations copyright 2004 Jaakko + Hyvätti (jaakko.hyvatti@iki.fi) + + + + Permission has been granted to copy, distribute and modify gd in + any context without fee, including a commercial application, + provided that this notice is present in user-accessible + supporting documentation. + + + + This does not affect your ownership of the derived work itself, + and the intent is to assure proper credit for the authors of gd, + not to interfere with your productive use of gd. If you have + questions, ask. "Derived works" includes all programs that + utilize the library. Credit must be given in user-accessible + documentation. + + + + This software is provided "AS IS." The copyright holders + disclaim all warranties, either express or implied, including + but not limited to implied warranties of merchantability and + fitness for a particular purpose, with respect to this code and + accompanying documentation. + + + + Although their code does not appear in gd, the authors wish to + thank David Koblas, David Rowley, and Hutchison Avenue Software + Corporation for their prior contributions. + + + + + + + BSD License from Intel + + + All rights reserved. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + Neither the name of the Intel Corporation nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + IJG (Independent JPEG Group) License + + + The authors make NO WARRANTY or representation, either express + or implied, with respect to this software, its quality, + accuracy, merchantability, or fitness for a particular purpose. + This software is provided "AS IS", and you, its user, assume the + entire risk as to its quality and accuracy. + + + + This software is copyright (C) 1991-2021, Thomas G. Lane, Guido + Vollbeding. All Rights Reserved except as specified below. + + + + Permission is hereby granted to use, copy, modify, and + distribute this software (or portions thereof) for any purpose, + without fee, subject to these conditions: + + + + (1) If any part of the source code for this software is + distributed, then this README file must be included, with this + copyright and no-warranty notice unaltered; and any additions, + deletions, or changes to the original files must be clearly + indicated in accompanying documentation. + + + + (2) If only executable code is distributed, then the + accompanying documentation must state that "this software is + based in part on the work of the Independent JPEG Group". + + + + (3) Permission for use of this software is granted only if the + user accepts full responsibility for any undesirable + consequences; the authors accept NO LIABILITY for damages of any + kind. + + + + These conditions apply to any software derived from or based on + the IJG code, not just to the unmodified library. If you use our + work, you ought to acknowledge us. + + + + Permission is NOT granted for the use of any IJG author's name + or company name in advertising or publicity relating to this + software or products derived from it. This software may be + referred to only as "the Independent JPEG Group's software". + + + + We specifically permit and encourage the use of this software as + the basis of commercial products, provided that all warranty or + liability claims are assumed by the product vendor. + + + + + + + libjpeg-turbo Modified (3-clause) BSD License + + + Copyright (C)2009-2022 D. R. Commander. All Rights Reserved. + Copyright (C)2015 Viktor Szathmáry. All Rights Reserved. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + Neither the name of the libjpeg-turbo Project nor the names + of its contributors may be used to endorse or promote + products derived from this software without specific prior + written permission. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + + + + + + FreeBSD License + + + The compilation of software known as FreeBSD is distributed + under the following terms: + + + + Copyright 1992-2022 The FreeBSD Project. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS + IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + + + The views and conclusions contained in the software and + documentation are those of the authors and should not be + interpreted as representing official policies, either expressed + or implied, of the FreeBSD Project. + + + + + + + NetBSD License + + + Copyright (c) 2008 The NetBSD Foundation, Inc. + + + + This code is derived from software contributed to The NetBSD + Foundation by + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND + CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + + + + + + VPX License + + + Copyright (c) 2010, The WebM Project authors. All rights + reserved. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + Neither the name of Google, nor the WebM Project, nor the + names of its contributors may be used to endorse or promote + products derived from this software without specific prior + written permission. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + Vorbis License + + + Copyright (c) 2002-2020 Xiph.org Foundation + + + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + Neither the name of the Xiph.org Foundation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + curl License + + + Copyright (c) 1996 - 2022, Daniel Stenberg, + <daniel@haxx.se>, and many contributors, see the THANKS + file. + + + + All rights reserved. + + + + Permission to use, copy, modify, and distribute this software for + any purpose with or without fee is hereby granted, provided that + the above copyright notice and this permission notice appear in + all copies. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + Except as contained in this notice, the name of a copyright + holder shall not be used in advertising or otherwise to promote + the sale, use or other dealings in this Software without prior + written authorization of the copyright holder. + + + + + + + DocBook XML DTD License + + + Copyright 1992-2004 HaL Computer Systems, Inc., O'Reilly + & Associates, Inc., ArborText, Inc., Fujitsu Software + Corporation, Norman Walsh, Sun Microsystems, Inc., and the + Organization for the Advancement of Structured Information + Standards (OASIS). + + + + See also http://docbook.org/specs/ + + + + $Id: user_ThirdParty.xml $ + + + + Permission to use, copy, modify and distribute the DocBook XML + DTD and its accompanying documentation for any purpose and + without fee is hereby granted in perpetuity, provided that the + above copyright notice and this paragraph appear in all copies. + The copyright holders make no representation about the + suitability of the DTD for any purpose. It is provided "as is" + without expressed or implied warranty. + + + + If you modify the DocBook DTD in any way, except for declaring + and referencing additional sets of general entities and + declaring additional notations, label your DTD as a variant of + DocBook. See the maintenance documentation for more information. + + + + Please direct all questions, bug reports, or suggestions for + changes to the docbook@lists.oasis-open.org mailing list. For + more information, see http://www.oasis-open.org/docbook/. + + + + + + + DocBook XSL Stylesheets License + + + Copyright (C) 1999, 2000, 2001, 2002 Norman Walsh + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the ``Software''), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + + + + The above copyright notice and this permission notice shall + be included in all copies or substantial portions of the + Software. + + + + + + Except as contained in this notice, the names of individuals + credited with contribution to this software shall not be used + in advertising or otherwise to promote the sale, use or other + dealings in this Software without prior written authorization + from the individuals in question. + + + + + + Any stylesheet derived from this Software that is publically + distributed will be identified with a different name and the + version strings in any derived Software will be changed so + that no possibility of confusion between the derived package + and this Software will exist. + + + + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER + CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + These stylesheets are maintained by Norman Walsh, <ndw@nwalsh.com>. + + + + + + + Intel ACPI Component Architecture (ACPICA) License + + + + + + 1. Copyright Notice + + + + Some or all of this work - Copyright (c) 1999 - 2017, Intel Corp. + All rights reserved. + + + + + + 2. License + + + + + + + 2.1. This is your license from Intel Corp. under its + intellectual property rights. You may have additional + license terms from the party that provided you this + software, covering your right to use that party's + intellectual property rights. + + + + + + 2.2. Intel grants, free of charge, to any person + ("Licensee") obtaining a copy of the source code + appearing in this file ("Covered Code") an irrevocable, + perpetual, worldwide license under Intel's copyrights in + the base code distributed originally by Intel ("Original + Intel Code") to copy, make derivatives, distribute, use + and display any portion of the Covered Code in any form, + with the right to sublicense such rights; and + + + + + + 2.3. Intel grants Licensee a non-exclusive and + non-transferable patent license (with the right to + sublicense), under only those claims of Intel patents + that are infringed by the Original Intel Code, to make, + use, sell, offer to sell, and import the Covered Code + and derivative works thereof solely to the minimum + extent necessary to exercise the above copyright + license, and in no event shall the patent license + extend to any additions to or modifications of the + Original Intel Code. No other license or right is + granted directly or by implication, estoppel or + otherwise; + + + + + + + + + + 3. Conditions + + + + + + + 3.1. Redistribution of Source with Rights to Further + Distribute Source. Redistribution of source code of any + substantial portion of the Covered Code or modification + with rights to further distribute source must include + the above Copyright Notice, the above License, this + list of Conditions, and the following Disclaimer and + Export Compliance provision. In addition, Licensee must + cause all Covered Code to which Licensee contributes to + contain a file documenting the changes Licensee made to + create that Covered Code and the date of any change. + Licensee must include in that file the documentation of + any changes made by any predecessor Licensee. Licensee + must include a prominent statement that the + modification is derived, directly or indirectly, from + Original Intel Code. + + + + + + 3.2. Redistribution of Source with no Rights to Further + Distribute Source. Redistribution of source code of any + substantial portion of the Covered Code or modification + without rights to further distribute source must + include the following Disclaimer and Export Compliance + provision in the documentation and/or other materials + provided with distribution. In addition, Licensee may + not authorize further sublicense of source of any + portion of the Covered Code, and must include terms to + the effect that the license from Licensee to its + licensee is limited to the intellectual property + embodied in the software Licensee provides to its + licensee, and not to intellectual property embodied in + modifications its licensee may make. + + + + + + 3.3. Redistribution of Executable. Redistribution in + executable form of any substantial portion of the + Covered Code or modification must reproduce the above + Copyright Notice, and the following Disclaimer and + Export Compliance provision in the documentation and/or + other materials provided with the distribution. + + + + + + 3.4. Intel retains all right, title, and interest in and + to the Original Intel Code. + + + + + + 3.5. Neither the name Intel nor any other trademark owned + or controlled by Intel shall be used in advertising or + otherwise to promote the sale, use or other dealings in + products derived from or relating to the Covered Code + without prior written authorization from Intel. + + + + + + + + + + 4. Disclaimer and Export Compliance + + + + + + + 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY + SOFTWARE PROVIDED HERE. ANY SOFTWARE ORIGINATING FROM + INTEL OR DERIVED FROM INTEL SOFTWARE IS PROVIDED "AS IS," + AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT + PROVIDE ANY UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL + SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF + MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. + + + + + + 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO + LICENSEE, ITS LICENSEES OR ANY OTHER THIRD PARTY, FOR ANY + LOST PROFITS, LOST DATA, LOSS OF USE OR COSTS OF + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY + INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF + THIS AGREEMENT, UNDER ANY CAUSE OF ACTION OR THEORY OF + LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL HAS ADVANCE + NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE + LIMITATIONS SHALL APPLY NOTWITHSTANDING THE FAILURE OF + THE ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. + + + + + + 4.3. Licensee shall not export, either directly or + indirectly, any of this software or system incorporating + such software without first obtaining any required + license or other approval from the U. S. Department of + Commerce or any other agency or department of the United + States Government. In the event Licensee exports any + such software from the United States or re-exports any + such software from a foreign destination, Licensee shall + ensure that the distribution and export/re-export of the + software is in compliance with all laws, regulations, + orders, or other restrictions of the U.S. Export + Administration Regulations. Licensee agrees that neither + it nor any of its subsidiaries will export/re-export any + technical data, process, software, or service, directly + or indirectly, to any country for which the United + States government or any agency thereof requires an + export license, other governmental approval, or letter + of assurance, without first obtaining such license, + approval or letter. + + + + + + + + + + + + + + Khronos License + + + Copyright (c) 2008-2018 The Khronos Group Inc. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and/or associated + documentation files (the "Materials"), to deal in the Materials + without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Materials, and to permit persons to + whom the Materials are furnished to do so, subject to the + following conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Materials. + + + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE + AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR + OTHER DEALINGS IN THE MATERIALS. + + + + + + + SGI Free Software License B + + + Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice including the dates of first + publication and either this permission notice or a reference to + http://oss.sgi.com/projects/FreeB/ shall be included in all + copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + + + + Except as contained in this notice, the name of Silicon + Graphics, Inc. shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization from Silicon Graphics, Inc. + + + + + + + Boost Software License + + + Boost Software License - Version 1.0 - August 17th, 2003 + + + + Permission is hereby granted, free of charge, to any person or + organization obtaining a copy of the software and accompanying + documentation covered by this license (the "Software") to use, + reproduce, display, distribute, execute, and transmit the + Software, and to prepare derivative works of the Software, and + to permit third-parties to whom the Software is furnished to do + so, all subject to the following: + + + + + + + The copyright notices in the Software and this entire + statement, including the above license grant, this + restriction and the following disclaimer, must be included + in all copies of the Software, in whole or in part, and all + derivative works of the Software, unless such copies or + derivative works are solely in the form of + machine-executable object code generated by a source + language processor. + + + + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND + NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR + ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR + OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + + + + Default Mesa 3D Graphics Library License + + + License / Copyright Information + + + + The Mesa distribution consists of several components. Different + copyrights and licenses apply to different components. For + example, the GLX client code uses the SGI Free Software License + B, and some of the Mesa device drivers are copyrighted by + their authors. See below for a list of Mesa's main components + and the license for each. + + + + The core Mesa library is licensed according to the terms of the + MIT license. This allows integration with the XFree86, Xorg and + DRI projects. + + + + The default Mesa license is as follows: + + + + Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + + + + Attention, Contributors + + + + When contributing to the Mesa project you must agree to the + licensing terms of the component to which you're contributing. + The following section lists the primary components of the Mesa + distribution and their respective licenses. + + + + Mesa Component Licenses + + + + Mesa Component Licenses + + + + + Component + + + Location + + + License + + + + + + + Main Mesa code + + + src/mesa/ + + + + + + + + Device drivers + + + src/mesa/drivers/* + + + , generally + + + + + Gallium code + + + src/gallium/ + + + + + + + + Ext headers + + + include/GL/glext.h + include/GL/glxext.h + + + + + + + + GLX client code + + + src/glx/ + + + + + + + + C11 thread emulation + + + include/c11/threads*.h + + + (permissive) + + + + +
+ + + Additional copyrights: + + + + Copyright (c) 2001, 2002, 2003, 2004 The SCons Foundation; + Copyright IBM Corporation 2003, 2004, 2005, 2006; Copyright Zack + Rusin 2005. All Rights Reserved.; Copyright John Maddock 2006.; + Copyright (c) 2002, 2007-2011 Apple Inc.; Copyright (c) 2006 - + 2015, 2017 Intel Corporation; Copyright (C) 2005 Aapo Tahkola.; + Copyright (C) 2014 Adrián Arroyo Calle + <adrian.arroyocalle@gmail.com>; Copyright (c) 2014 Alex + Henrie <alexhenrie24@gmail.com>; Copyright 2006-2012, + Haiku. All rights reserved.; Copyright (C) 2015 Android-x86 Open + Source Project; Copyright 2010 Thomas Balling Sørensen & Orasanu + Lucian.; Copyright (C) 2010 Belen Masia (bmasia@unizar.es); + Copyright (c) 2011 Benjamin Franzke; Copyright (c) 2015 Boyan + Ding; Copyright (c) 2014 Broadcom; Copyright (c) 2011 Bryan + Cain; Copyright (c) 2007 Carl Worth; Copyright (C) 2015 Chih-Wei + Huang <cwhuang@linux.org.tw>; Copyright (C) 2010, 2013 + Christoph Bumiller; Copyright 2011 The Chromium OS authors.; + Copyright (c) 2012 Collabora, Ltd.; Copyright (c) 2014 Connor + Abbott; Copyright (c) 2007-2010 Dan Nicholson; Copyright (c) + 2011 Daniel Richard G. <skunk@iSKUNK.ORG>; Copyright (c) + 2007 Dave Airlie <airlied@linux.ie>; Copyright (C) + 1999-2004 David Airlie All Rights Reserved.; Copyright 2015 + Axel Davy <axel.davy@ens.fr>; Copyright 2016 Nayan + Deshmukh.; Copyright (c) 2010 Diego Elio Petteno` + <flameeyes@gmail.com>; Copyright (c) 2017 Dylan Baker; + Copyright (c) 2011-2014 Emil Velikov + <emil.l.velikov@gmail.com>; Copyright (c) 2012-2013 + Etnaviv Project; Copyright (C) 2003 Felix Kuehling; Copyright + (C) 2010 Fernando Navarro (fernandn@microsoft.com); Copyright + 2008-2009 Jose Fonseca; Copyright (c) 2009 Francesco Salvestrini + <salvestrini@users.sourceforge.net>; Copyright (c) 2013 + Gabriele Svelto <gabriele.svelto@gmail.com>; Copyright (c) + 2017 Gert Wollny; Copyright 2015 Zoltan Gilian; Copyright 2012 + Vadim Girlin <vadimgirlin@gmail.com>; Copyright (c) 2017, + Google Inc.; Copyright 2013 Grigori Goronzy + <greg@chown.ath.cx>; Copyright (c) 2017 Gražvydas Ignotas; + Copyright (c) 2002 Greg Parker. All Rights Reserved.; Copyright + (c) 2013 Gregory Hainaut <gregory.hainaut@gmail.com>; + Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>; + Copyright (c) 2007-2008, 2014-2016 Red Hat, Inc.; Copyright + 2006-2008, Philippe Houdoin. All rights reserved.; Copyright (C) + 1998-2013 VMware, Inc. All rights reserved.; Copyright + 1998-1999 Precision Insight, Inc., Cedar Park, Texas.; Copyright + (c) 2007, 2010 Jakob Bornecrantz <wallbraker@gmail.com>; + Copyright (c) 2009 Jeremy Huddleston, Julien Cristau, and + Matthieu Herrb; Copyright (C) 2009, 2012 Francisco Jerez.; + Copyright (c) 2008, 2010 Jérôme Glisse + <glisse@freedesktop.org>; Copyright (c) 2008 John + Darrington <j.darrington@elvis.murdoch.edu.au>; Copyright + (c) 2009-2014 Jon TURNEY; Copyright (C) 2010 Jorge Jimenez + (jorge@iryoku.com); Copyright (C) 2010 Jose I. Echevarria + (joseignacioechevarria@gmail.com); Copyright (c) 2010-2014 + Christian König; Copyright (c) 2008-2011 Kristian Høgsberg; + Copyright 2011-2013 Maarten Lankhorst, Ilia Mirkin; Copyright + (c) 2012 Laurent Carlier <lordheavym@gmail.com>; Copyright + (C) 2011 Lauri Kasanen (cand@gmx.com); Copyright (C) 2016 + Linaro, Ltd, Rob Herring <robh@kernel.org>; Copyright + 2000, 2001 VA Linux Systems Inc., Fremont, California.; + Copyright (c) 2010 Luca Barbieri; Copyright (C) 2010, 2011 + LunarG Inc.; Copyright (c) 2011 Maarten Bosmans + <mkbosmans@gmail.com>; Copyright (c) 2008, 2009 Maciej + Cencora <m.cencora@gmail.com>; Copyright 2010 Younes + Manton & Thomas Balling Sørensen.; Copyright 2009 Younes + Manton.; Copyright 2014-2015 Serge Martin; Copyright (c) 2012 + Matt Turner <mattst88@gmail.com>; Copyright (c) 2016 Mauro + Rossi <issor.oruam@gmail.com>; Copyright (C) 2010, 2011 + Advanced Micro Devices, Inc.; Copyright (c) 2009-2010 Mikhail + Gusarov; Copyright (C) 2016 Miklós Máté; Copyright (C) 2013, + 2014, 2016 Ilia Mirkin. All Rights Reserved.; Copyright (C) 2011 + Morgan Armand <morgan.devel@gmail.com>; Copyright (C) + 2004, 2009 Nicolai Hähnle <nhaehnle@gmail.com>; Copyright + (c) 2016 Bas Nieuwenhuizen; Copyright (c) 2014, 2015, NVIDIA + Corporation; Copyright (c) 2009, 2010 Marek Olšák + <maraeo@gmail.com>; Copyright (c) 2009 Pauli Nieminen; + Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.; + Copyright 2007 Nouveau Project; Copyright 2011 Adam Rak + <adam.rak@streamnovation.com>; Copyright (c) 2012 Rob + Clark <robclark@freedesktop.org>; Copyright (C) 2004 + Roland Scheidegger All Rights Reserved.; Copyright 2015 + Patrick Rudolph <siro@das-labor.org>; Copyright (C) 2015 + Samuel Pitoiset; Copyright 2008, 2010 George Sapountzis + <gsapountzis@gmail.com>; Copyright (c) 2014 Scott Mansell; + Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights + Reserved.; Copyright (c) 2008, 2009 Corbin Simpson + <MostAwesomeDude@gmail.com>; Copyright (c) 2009 Joakim + Sindholt <opensource@zhasha.com>; Copyright (C) 2005, 2008 + Ben Skeggs.; Copyright 2008 Dennis Smit; Copyright (c) + 2003-2005, Stefan Gustavson; Copyright (C) 2005 Stephane + Marchesin; Copyright (c) 2008 Steven G. Johnson + <stevenj@alum.mit.edu>; Copyright 2000, 2001 ATI + Technologies Inc., Ontario, Canada, and$ VA Linux Systems Inc., + Fremont, California.; Copyright 2000-2002 ATI Technologies Inc., + Ontario, Canada, and VMware, Inc.; Copyright (c) 2000 The NetBSD + Foundation, Inc.; Copyright (c) 2015 Thomas Helland; Copyright + (C) 1995 Thorsten.Ohl @ Physik.TH-Darmstadt.de; Copyright (C) + 2013, 2017 Timothy Arceri All Rights Reserved.; Copyright (c) + 2002 Todd C. Miller <Todd.Miller@courtesan.com>; Copyright + (c) 2010, 2012-2014 Tom Stellard <tstellar@gmail.com>; + Copyright (C) 2014 Tomasz Figa <tomasz.figa@gmail.com>; + Copyright (c) 2004 Torrey T. Lyons. All Rights Reserved.; + Copyright (c) 2003, 2007-2008 Tungsten Graphics, Inc., Cedar + Park, TX., USA; Copyright 1992 Vrije Universiteit, The + Netherlands; Copyright (c) 2015-2016 Valve Corporation; + Copyright 2014-2016 Jan Vesely; Copyright (c) 2012 Vincent + Lejeune; Copyright 2013 Alexander von Gluck IV + <kallisti5@unixzen.com>; Copyright (c) 2013 W.J. van der + Laan; Copyright (C) The Weather Channel, Inc. 2002. All Rights + Reserved.; Copyright (C) 1999 Wittawat Yamwong; Copyright + 2009-2010 Chia-I Wu <olvaffe@gmail.com>; Copyright (C) + 2009 Chia-I Wu <olv@0xlab.org>; Copyright 2009 Artur + Wyszynski <harakash@gmail.com>; Copyright (c) 2012 Yaakov + Selkowitz and Keith Packard; Copyright (c) 1988-2004 Keith + Packard and Bart Massey.; Copyright (C) 2016 Zodiac Inflight + Innovations; Copyright (C) 2006-2010 by the following authors: + Artur Huillet <arthur.huillet@free.fr> (ahuillet), Ben + Skeggs (darktama, darktama_), B. R. + <koala_br@users.sourceforge.net> (koala_br), Carlos Martin + <carlosmn@users.sf.net> (carlosmn), Christoph Bumiller + <e0425955@student.tuwien.ac.at> (calim, chrisbmr), Dawid + Gajownik <gajownik@users.sf.net> (gajownik), Dmitry + Baryshkov, Dmitry Eremin,Solenikov <lumag@users.sf.net> + (lumag), EdB <edb_@users.sf.net> (edb_), Erik Waling + <erikwailing@users.sf.net> (erikwaling), Francisco Jerez + <currojerez@riseup.net> (curro), imirkin + <imirkin@users.sf.net> (imirkin), jb17bsome + <jb17bsome@bellsouth.net> (jb17bsome), Jeremy Kolb + <kjeremy@users.sf.net> (kjeremy), Laurent Carlier + <lordheavym@gmail.com> (lordheavy), Luca Barbieri + <luca@luca,barbieri.com> (lb, lb1), Maarten Maathuis + <madman2003@gmail.com> (stillunknown), Marcin Kościelnicki + <koriakin@0x04.net> (mwk, koriakin), Mark Carey + <mark.carey@gmail.com> (careym), Matthieu Castet + <matthieu.castet@parrot.com> (mat,c), nvidiaman + <nvidiaman@users.sf.net> (nvidiaman), Patrice Mandin + <patmandin@gmail.com> (pmandin, pmdata), Pekka Paalanen + <pq@iki.fi> (pq, ppaalanen), Peter Popov + <ironpeter@users.sf.net> (ironpeter), Richard Hughes + <hughsient@users.sf.net> (hughsient), Rudi Cilibrasi + <cilibrar@users.sf.net> (cilibrar), Serge Martin, Simon + Raffeiner, Stephane Loeuillet <leroutier@users.sf.net> + (leroutier), Stephane Marchesin + <stephane.marchesin@gmail.com> (marcheu), sturmflut + <sturmflut@users.sf.net> (sturmflut), Sylvain Munaut + <tnt@246tNt.com>, Victor Stinner + <victor.stinner@haypocalc.com> (haypo), Wladmir van der + Laan <laanwj@gmail.com> (miathan6), Younes Manton + <younes.m@gmail.com> (ymanton) + + +
+ + + + Microsoft Software License + + + MICROSOFT SOFTWARE LICENSE TERMS + + + + MICROSOFT WINDOWS DRIVER KIT + + + + These license terms are an agreement between Microsoft + Corporation (or based on where you live, one of its affiliates) + and you. Please read them. They apply to the software named + above, which includes the media on which you received it, if + any. The terms also apply to any Microsoft + + + + + + + updates, + + + + + + supplements, + + + + + + Internet-based services, and + + + + + + support services + + + + + + + for this software, unless other terms accompany those items. If + so, those terms apply. + By using the software, you accept these terms. If you do not + accept them, do not use the software. + + + + If you comply with these license terms, you have the rights below. + + + + + + + INSTALLATION AND USE RIGHTS. + + + + + + + Installation and Use. One user may install and use any + number of copies of the software on your devices to + design, develop and test your programs. + + + + + + Included Microsoft Programs. The software contains + other Microsoft programs. In some cases, those programs + and the license terms that apply to your use of them are + addressed specifically in these license terms. For all + other included Microsoft programs, these license terms + govern your use. + + + + + + Device Simulation Framework. One user may install and + use any number of copies of the Device Simulation + Framework on your devices for the sole purpose of + testing the interoperability of your devices, drivers + and firmware with Windows. For the avoidance of doubt, + the Device Simulation Framework shall not be used for + testing software you have designed and developed using a + software development kit other than the Windows Driver + Kit. + + + + + + Third Party Programs. The software contains third party + programs. These license terms as well as any license + terms accompanying the third party program files apply + to your use of them. + + + + + + + + + + ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. + + + + + + + Distributable Code. The software contains code that you + are permitted to distribute in programs you develop if + you comply with the terms below. + + + + + + + Right to Use and Distribute. The code and text + files listed below are “Distributable Code.” + + + + + + + REDIST.TXT Files. You may copy and distribute + the object code form of code listed in + REDIST.TXT files. + + + + + + Sample Code. You may modify, copy and distribute + only in object code form the sample code found + in the SRC directory of the Windows Driver Kit, + except that you may also modify, copy, and + distribute in source code form the sample code + listed in the SAMPLES.TXT file. + + + + + + Third Party Distribution. You may permit + distributors of your programs to copy and + distribute the Distributable Code as part of + those programs. + + + + + + + + + Distribution Requirements. For any Distributable + Code you distribute, you must + + + + + + + add significant primary functionality to it in + your programs; + + + + + + require distributors and external end users to + agree to terms that protect it at least as much + as this agreement; + + + + + + display your valid copyright notice on your + programs; and + + + + + + indemnify, defend, and hold harmless Microsoft + from any claims, including attorneys’ fees, + related to the distribution or use of your + programs. + + + + + + + + + Distribution Restrictions. You may not + + + + + + + alter any copyright, trademark or patent notice + in the Distributable Code; + + + + + + use Microsoft’s trademarks in your programs’ + names or in a way that suggests your programs + come from or are endorsed by Microsoft; + + + + + + distribute Distributable Code to run on a + platform other than the Windows platform; + + + + + + include Distributable Code in malicious, + deceptive or unlawful programs; or + + + + + + modify or distribute the source code of any + Distributable Code so that any part of it + becomes subject to an Excluded License. An + Excluded License is one that requires, as a + condition of use, modification or distribution, + that + + + + + + the code be disclosed or distributed in source + code form; or + + + + + + others have the right to modify it. + + + + + + + + + + + + + + + + + Scope of License. The software is licensed, not + sold. This agreement only gives you some rights to + use the software. Microsoft reserves all other + rights. Unless applicable law gives you more rights + despite this limitation, you may use the software + only as expressly permitted in this agreement. In + doing so, you must comply with any technical + limitations in the software that only allow you to + use it in certain ways. You may not + + + + + + + work around any technical limitations in the + software; + + + + + + reverse engineer, decompile or disassemble the + software, except and only to the extent that + applicable law expressly permits, despite this + limitation; + + + + + + make more copies of the software than specified + in this agreement or allowed by applicable law, + despite this limitation; + + + + + + publish the software for others to copy; + + + + + + rent, lease or lend the software; + + + + + + transfer the software or this agreement to any + third party; or + + + + + + use the software for commercial software hosting + services. + + + + + + + + BACKUP COPY. You may make one backup copy of the + software. You may use it only to reinstall the + software. + + + + + + DOCUMENTATION. Any person that has valid access to + your computer or internal network may copy and use + the documentation for your internal, reference + purposes. + + + + + + Export Restrictions. The software is subject to + United States export laws and regulations. You must + comply with all domestic and international export + laws and regulations that apply to the software. + These laws include restrictions on destinations, end + users and end use. For additional information, see + www.microsoft.com/exporting. + + + + + + SUPPORT SERVICES. Because this software is “as is,” + we may not provide support services for it. + + + + + + Entire Agreement. This agreement, and the terms for + supplements, updates, Internet-based services and + support services that you use, are the entire + agreement for the software and support services + + + + + Applicable Law. + + + + + + + United States. If you acquired the software in + the United States, Washington state law governs + the interpretation of this agreement and applies + to claims for breach of it, regardless of + conflict of laws principles. The laws of the + state where you live govern all other claims, + including claims under state consumer protection + laws, unfair competition laws, and in tort. + + + + + + Outside the United States. If you acquired the + software in any other country, the laws of that + country apply. + + + + + + + + Legal Effect. This agreement describes certain + legal rights. You may have other rights under the + laws of your country. You may also have rights with + respect to the party from whom you acquired the + software. This agreement does not change your + rights under the laws of your country if the laws of + your country do not permit it to do so. + + + + + + Disclaimer of Warranty. The software is licensed + “as-is.” You bear the risk of using it. Microsoft + gives no express warranties, guarantees or + conditions. You may have additional consumer rights + under your local laws which this agreement cannot + change. To the extent permitted under your local + laws, Microsoft excludes the implied warranties of + merchantability, fitness for a particular purpose + and non-infringement. + + + + + + Limitation on and Exclusion of Remedies and Damages. + You can recover from Microsoft and its suppliers + only direct damages up to U.S. $5.00. You cannot + recover any other damages, including consequential, + lost profits, special, indirect or incidental + damages. + This limitation applies to + + + + + + + anything related to the software, services, + content (including code) on third party Internet + sites, or third party programs; and + + + + + + claims for breach of contract, breach of + warranty, guarantee or condition, strict + liability, negligence, or other tort to the + extent permitted by applicable law. + + + + + + It also applies even if Microsoft knew or should have known + about the possibility of the damages. The above limitation + or exclusion may not apply to you because your country may + not allow the exclusion or limitation of incidental, + consequential or other damages. + + + + + + + Please note: As this software is distributed in Quebec, + Canada, some of the clauses in this agreement are provided + below in French. + + + + Remarque : Ce logiciel étant distribué au Québec, Canada, + certaines des clauses dans ce contrat sont fournies + ci-dessous en français. + + + + EXONÉRATION DE GARANTIE. Le logiciel visé par une licence + est offert « tel quel ». Toute utilisation de ce logiciel + est à votre seule risque et péril. Microsoft n’accorde + aucune autre garantie expresse. Vous pouvez bénéficier de + droits additionnels en vertu du droit local sur la + protection des consommateurs, que ce contrat ne peut + modifier. La ou elles sont permises par le droit locale, les + garanties implicites de qualité marchande, d’adéquation à un + usage particulier et d’absence de contrefaçon sont exclues. + + + + LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE + RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de + Microsoft et de ses fournisseurs une indemnisation en cas de + dommages directs uniquement à hauteur de 5,00 $ US. Vous ne + pouvez prétendre à aucune indemnisation pour les autres + dommages, y compris les dommages spéciaux, indirects ou + accessoires et pertes de bénéfices. + + + + Cette limitation concerne : + + + + + + + tout ce qui est relié au logiciel, aux services ou au + contenu (y compris le code) figurant sur des sites Internet + tiers ou dans des programmes tiers ; et + + + + + + les réclamations au titre de violation de contrat ou de + garantie, ou au titre de responsabilité stricte, de + négligence ou d’une autre faute dans la limite autorisée par + la loi en vigueur. + + + + + + + Elle s’applique également, même si Microsoft connaissait ou + devrait connaître l’éventualité d’un tel dommage. Si votre pays + n’autorise pas l’exclusion ou la limitation de responsabilité + pour les dommages indirects, accessoires ou de quelque nature + que ce soit, il se peut que la limitation ou l’exclusion + ci-dessus ne s’appliquera pas à votre égard. + + + + EFFET JURIDIQUE. Le présent contrat décrit certains droits + juridiques. Vous pourriez avoir d’autres droits prévus par les + lois de votre pays. Le présent contrat ne modifie pas les + droits que vous confèrent les lois de votre pays si celles-ci ne + le permettent pas. + + + + + + + Python License + + + A. HISTORY OF THE SOFTWARE + ========================== + + + + Python was created in the early 1990s by Guido van Rossum at + Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl) in + the Netherlands as a successor of a language called ABC. Guido + remains Python's principal author, although it includes many + contributions from others. + + + + In 1995, Guido continued his work on Python at the Corporation + for National Research Initiatives (CNRI, see + http://www.cnri.reston.va.us) in Reston, Virginia where + he released several versions of the software. + + + + In May 2000, Guido and the Python core development team moved to + BeOpen.com to form the BeOpen PythonLabs team. In October of + the same year, the PythonLabs team moved to Digital Creations, + which became Zope Corporation. In 2001, the Python Software + Foundation (PSF, see https://www.python.org/psf/) was formed, a + non-profit organization created specifically to own + Python-related Intellectual Property. Zope Corporation was a + sponsoring member of the PSF. + + + + All Python releases are Open Source (see + http://www.opensource.org for the Open Source Definition). + Historically, most, but not all, Python releases have also been + GPL-compatible; the table below summarizes the various releases. + + + + Python releases + + + + + Release + + + Derived from + + + Year + + + Owner + + + GPL-compatible? (1) + + + + + + + 0.9.0 thru 1.2 + + + + + + 1991-1995 + + + CWI + + + yes + + + + + 0.9.0 thru 1.2 + + + + + + 1991-1995 + + + CWI + + + yes + + + + + 1.3 thru 1.5.2 + + + 1.2 + + + 1995-1999 + + + CNRI + + + yes + + + + + 1.6 + + + 1.5.2 + + + 2000 + + + CNRI + + + no + + + + + 2.0 + + + 1.6 + + + 2000 + + + BeOpen.com + + + no + + + + + 1.6.1 + + + 1.6 + + + 2001 + + + CNRI + + + yes (2) + + + + + 2.1 + + + 2.0+1.6.1 + + + 2001 + + + PSF + + + yes + + + + + 2.0.1 + + + 2.0+1.6.1 + + + 2001 + + + PSF + + + yes + + + + + 2.1.1 + + + 2.1+2.0.1 + + + 2001 + + + PSF + + + yes + + + + + 2.1.2 + + + 2.1.1 + + + 2002 + + + PSF + + + yes + + + + + 2.1.3 + + + 2.1.2 + + + 2002 + + + PSF + + + yes + + + + + 2.2 and above + + + 2.1.1 + + + 2001-now + + + PSF + + + yes + + + + +
+ + + Footnotes: + + + + (1) GPL-compatible doesn't mean that we're distributing Python + under the GPL. All Python licenses, unlike the GPL, let you + distribute a modified version without making your changes open + source. The GPL-compatible licenses make it possible to combine + Python with other software that is released under the GPL; the + others don't. + + + + (2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that + 1.6.1 is "not incompatible" with the GPL. + + + + Thanks to the many outside volunteers who have worked under + Guido's direction to make these releases possible. + + + + B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON + =============================================================== + + + + Python software and documentation are licensed under the + Python Software Foundation License Version 2. + + + + Starting with Python 3.8.6, examples, recipes, and other code in + the documentation are dual licensed under the PSF License + Version 2 and the Zero-Clause BSD license. + + + + Some software incorporated into Python is under different + licenses. The licenses are listed with code falling under that + license. + + + + PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 + -------------------------------------------- + + + + 1. This LICENSE AGREEMENT is between the Python Software + Foundation ("PSF"), and the Individual or Organization + ("Licensee") accessing and otherwise using this software + ("Python") in source or binary form and its associated + documentation. + + + + 2. Subject to the terms and conditions of this License + Agreement, PSF hereby grants Licensee a nonexclusive, + royalty-free, world-wide license to reproduce, analyze, test, + perform and/or display publicly, prepare derivative works, + distribute, and otherwise use Python alone or in any derivative + version, provided, however, that PSF's License Agreement and + PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, + 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, + 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 + Python Software Foundation; All Rights Reserved" are retained in + Python alone or in any derivative version prepared by Licensee. + + + + 3. In the event Licensee prepares a derivative work that is based on + or incorporates Python or any part thereof, and wants to make + the derivative work available to others as provided herein, then + Licensee hereby agrees to include in any such work a brief summary of + the changes made to Python. + + + + 4. PSF is making Python available to Licensee on an "AS IS" + basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR + IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO + AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY + OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON + WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + + + + 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF + PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR + LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING + PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE + POSSIBILITY THEREOF. + + + + 6. This License Agreement will automatically terminate upon a + material breach of its terms and conditions. + + + + 7. Nothing in this License Agreement shall be deemed to create + any relationship of agency, partnership, or joint venture + between PSF and Licensee. This License Agreement does not grant + permission to use PSF trademarks or trade name in a trademark + sense to endorse or promote products or services of Licensee, or + any third party. + + + + 8. By copying, installing or otherwise using Python, Licensee + agrees to be bound by the terms and conditions of this License + Agreement. + + + + BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 + ------------------------------------------- + + + + BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + + + + 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an + office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the + Individual or Organization ("Licensee") accessing and otherwise using + this software in source or binary form and its associated + documentation ("the Software"). + + + + 2. Subject to the terms and conditions of this BeOpen Python + License Agreement, BeOpen hereby grants Licensee a + non-exclusive, royalty-free, world-wide license to reproduce, + analyze, test, perform and/or display publicly, prepare + derivative works, distribute, and otherwise use the Software + alone or in any derivative version, provided, however, that the + BeOpen Python License is retained in the Software, alone or in + any derivative version prepared by Licensee. + + + + 3. BeOpen is making the Software available to Licensee on an "AS + IS" basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, + EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, + BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF + MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT + THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY + RIGHTS. + + + + 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF + THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL + DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING + THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE + POSSIBILITY THEREOF. + + + + 5. This License Agreement will automatically terminate upon a + material breach of its terms and conditions. + + + + 6. This License Agreement shall be governed by and interpreted + in all respects by the law of the State of California, excluding + conflict of law provisions. Nothing in this License Agreement + shall be deemed to create any relationship of agency, + partnership, or joint venture between BeOpen and Licensee. This + License Agreement does not grant permission to use BeOpen + trademarks or trade names in a trademark sense to endorse or + promote products or services of Licensee, or any third party. + As an exception, the "BeOpen Python" logos available at + http://www.pythonlabs.com/logos.html may be used according to + the permissions granted on that web page. + + + + 7. By copying, installing or otherwise using the software, + Licensee agrees to be bound by the terms and conditions of this + License Agreement. + + + + CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 + --------------------------------------- + + + + 1. This LICENSE AGREEMENT is between the Corporation for + National Research Initiatives, having an office at 1895 Preston + White Drive, Reston, VA 20191 ("CNRI"), and the Individual or + Organization ("Licensee") accessing and otherwise using Python + 1.6.1 software in source or binary form and its associated + documentation. + + + + 2. Subject to the terms and conditions of this License + Agreement, CNRI hereby grants Licensee a nonexclusive, + royalty-free, world-wide license to reproduce, analyze, test, + perform and/or display publicly, prepare derivative works, + distribute, and otherwise use Python 1.6.1 alone or in any + derivative version, provided, however, that CNRI's License + Agreement and CNRI's notice of copyright, i.e., "Copyright (c) + 1995-2001 Corporation for National Research Initiatives; All + Rights Reserved" are retained in Python 1.6.1 alone or in any + derivative version prepared by Licensee. Alternately, in lieu + of CNRI's License Agreement, Licensee may substitute the + following text (omitting the quotes): "Python 1.6.1 is made + available subject to the terms and conditions in CNRI's License + Agreement. This Agreement together with Python 1.6.1 may be + located on the Internet using the following unique, persistent + identifier (known as a handle): 1895.22/1013. This Agreement + may also be obtained from a proxy server on the Internet using + the following URL: http://hdl.handle.net/1895.22/1013". + + + + 3. In the event Licensee prepares a derivative work that is + based on or incorporates Python 1.6.1 or any part thereof, and + wants to make the derivative work available to others as + provided herein, then Licensee hereby agrees to include in any + such work a brief summary of the changes made to Python 1.6.1. + + + + 4. CNRI is making Python 1.6.1 available to Licensee on an "AS + IS" basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS + OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES + NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF + MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT + THE USE OF PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY + RIGHTS. + + + + 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF + PYTHON 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL + DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR + OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE THEREOF, EVEN IF + ADVISED OF THE POSSIBILITY THEREOF. + + + + 6. This License Agreement will automatically terminate upon a + material breach of its terms and conditions. + + + + 7. This License Agreement shall be governed by the federal + intellectual property law of the United States, including + without limitation the federal copyright law, and, to the extent + such U.S. federal law does not apply, by the law of the + Commonwealth of Virginia, excluding Virginia's conflict of law + provisions. Notwithstanding the foregoing, with regard to + derivative works based on Python 1.6.1 that incorporate + non-separable material that was previously distributed under the + GNU General Public License (GPL), the law of the Commonwealth of + Virginia shall govern this License Agreement only as to issues + arising under or with respect to Paragraphs 4, 5, and 7 of this + License Agreement. Nothing in this License Agreement shall be + deemed to create any relationship of agency, partnership, or + joint venture between CNRI and Licensee. This License Agreement + does not grant permission to use CNRI trademarks or trade name + in a trademark sense to endorse or promote products or services + of Licensee, or any third party. + + + + 8. By clicking on the "ACCEPT" button where indicated, or by + copying, installing or otherwise using Python 1.6.1, Licensee + agrees to be bound by the terms and conditions of this License + Agreement. + + + + ACCEPT + + + + CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 + -------------------------------------------------- + + + + Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum + Amsterdam, The Netherlands. All rights reserved. + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + Stichting Mathematisch Centrum or CWI not be used in advertising + or publicity pertaining to distribution of the software without + specific, written prior permission. + + + + STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING + MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION + ---------------------------------------------------------------------- + + + + Permission to use, copy, modify, and/or distribute this software + for any purpose with or without fee is hereby granted. + + + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + +
+ + + + License for Berkeley SoftFloat Release 3e + + + John R. Hauser + 2018 January 20 + + + + The following applies to the whole of SoftFloat Release 3e as + well as to each source file individually. + + + + Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The + Regents of the University of California. All rights reserved. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions, and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions, and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + Neither the name of the University nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS + IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO EVENT + SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + + + + + + BSD 3-Clause License for Glslang + + + Copyright (C) 2015-2018 Google, Inc.; Copyright (C) <various + other dates and companies> + + + + All rights reserved. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions, and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions, and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + Neither the name of 3Dlabs Inc. Ltd. nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + BSD 2-Clause License for Glslang + + + + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + GNU General Public License (GPL) License with Bison Exception for Glslang + + + GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 + + + + Copyright (C) 2007 Free Software Foundation, Inc. + <http://fsf.org/> Everyone is permitted to copy and distribute + verbatim copies of this license document, but changing it is not + allowed. + + + + Preamble + + + + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + + + The licenses for most software and other practical works are + designed to take away your freedom to share and change the + works. By contrast, the GNU General Public License is intended + to guarantee your freedom to share and change all versions of a + program--to make sure it remains free software for all its + users. We, the Free Software Foundation, use the GNU General + Public License for most of our software; it applies also to any + other work released this way by its authors. You can apply it + to your programs, too. + + + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure + that you have the freedom to distribute copies of free software + (and charge for them if you wish), that you receive source code + or can get it if you want it, that you can change the software + or use pieces of it in new free programs, and that you know you + can do these things. + + + + To protect your rights, we need to prevent others from denying + you these rights or asking you to surrender the rights. + Therefore, you have certain responsibilities if you distribute + copies of the software, or if you modify it: responsibilities to + respect the freedom of others. + + + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, + receive or can get the source code. And you must show them + these terms so they know their rights. + + + + Developers that use the GNU GPL protect your rights with two + steps: (1) assert copyright on the software, and (2) offer you + this License giving you legal permission to copy, distribute + and/or modify it. + + + + For the developers' and authors' protection, the GPL clearly + explains that there is no warranty for this free software. For + both users' and authors' sake, the GPL requires that modified + versions be marked as changed, so that their problems will not + be attributed erroneously to authors of previous versions. + + + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the + manufacturer can do so. This is fundamentally incompatible with + the aim of protecting users' freedom to change the software. + The systematic pattern of such abuse occurs in the area of + products for individuals to use, which is precisely where it is + most unacceptable. Therefore, we have designed this version of + the GPL to prohibit the practice for those products. If such + problems arise substantially in other domains, we stand ready to + extend this provision to those domains in future versions of the + GPL, as needed to protect the freedom of users. + + + + Finally, every program is threatened constantly by software + patents. States should not allow patents to restrict + development and use of software on general-purpose computers, + but in those that do, we wish to avoid the special danger that + patents applied to a free program could make it effectively + proprietary. To prevent this, the GPL assures that patents + cannot be used to render the program non-free. + + + + The precise terms and conditions for copying, distribution and + modification follow. + + + + TERMS AND CONDITIONS + + + + 0. Definitions. + + + + "This License" refers to version 3 of the GNU General Public + License. + + + + "Copyright" also means copyright-like laws that apply to other + kinds of works, such as semiconductor masks. + + + + "The Program" refers to any copyrightable work licensed under + this License. Each licensee is addressed as "you". "Licensees" + and "recipients" may be individuals or organizations. + + + + To "modify" a work means to copy from or adapt all or part of + the work in a fashion requiring copyright permission, other than + the making of an exact copy. The resulting work is called a + "modified version" of the earlier work or a work "based on" the + earlier work. + + + + A "covered work" means either the unmodified Program or a work + based on the Program. + + + + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it + on a computer or modifying a private copy. Propagation includes + copying, distribution (with or without modification), making + available to the public, and in some countries other activities + as well. + + + + To "convey" a work means any kind of propagation that enables + other parties to make or receive copies. Mere interaction with + a user through a computer network, with no transfer of a copy, + is not conveying. + + + + An interactive user interface displays "Appropriate Legal + Notices" to the extent that it includes a convenient and + prominently visible feature that (1) displays an appropriate + copyright notice, and (2) tells the user that there is no + warranty for the work (except to the extent that warranties are + provided), that licensees may convey the work under this + License, and how to view a copy of this License. If the + interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + + + 1. Source Code. + + + + The "source code" for a work means the preferred form of the + work for making modifications to it. "Object code" means any + non-source form of a work. + + + + A "Standard Interface" means an interface that either is an + official standard defined by a recognized standards body, or, in + the case of interfaces specified for a particular programming + language, one that is widely used among developers working in + that language. + + + + The "System Libraries" of an executable work include anything, + other than the work as a whole, that (a) is included in the + normal form of packaging a Major Component, but which is not + part of that Major Component, and (b) serves only to enable use + of the work with that Major Component, or to implement a + Standard Interface for which an implementation is available to + the public in source code form. A "Major Component", in this + context, means a major essential component (kernel, window + system, and so on) of the specific operating system (if any) on + which the executable work runs, or a compiler used to produce + the work, or an object code interpreter used to run it. + + + + The "Corresponding Source" for a work in object code form means + all the source code needed to generate, install, and (for an + executable work) run the object code and to modify the work, + including scripts to control those activities. However, it does + not include the work's System Libraries, or general-purpose + tools or generally available free programs which are used + unmodified in performing those activities but which are not part + of the work. For example, Corresponding Source includes + interface definition files associated with source files for the + work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to + require, such as by intimate data communication or control flow + between those subprograms and other parts of the work. + + + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the + Corresponding Source. + + + + The Corresponding Source for a work in source code form is that + same work. + + + + 2. Basic Permissions. + + + + All rights granted under this License are granted for the term + of copyright on the Program, and are irrevocable provided the + stated conditions are met. This License explicitly affirms your + unlimited permission to run the unmodified Program. The output + from running a covered work is covered by this License only if + the output, given its content, constitutes a covered work. This + License acknowledges your rights of fair use or other + equivalent, as provided by copyright law. + + + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise + remains in force. You may convey covered works to others for + the sole purpose of having them make modifications exclusively + for you, or provide you with facilities for running those works, + provided that you comply with the terms of this License in + conveying all material for which you do not control copyright. + Those thus making or running the covered works for you must do + so exclusively on your behalf, under your direction and control, + on terms that prohibit them from making any copies of your + copyrighted material outside their relationship with you. + + + + Conveying under any other circumstances is permitted solely + under the conditions stated below. Sublicensing is not allowed; + section 10 makes it unnecessary. + + + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + + + No covered work shall be deemed part of an effective + technological measure under any applicable law fulfilling + obligations under article 11 of the WIPO copyright treaty + adopted on 20 December 1996, or similar laws prohibiting or + restricting circumvention of such measures. + + + + When you convey a covered work, you waive any legal power to + forbid circumvention of technological measures to the extent + such circumvention is effected by exercising rights under this + License with respect to the covered work, and you disclaim any + intention to limit operation or modification of the work as a + means of enforcing, against the work's users, your or third + parties' legal rights to forbid circumvention of technological + measures. + + + + 4. Conveying Verbatim Copies. + + + + You may convey verbatim copies of the Program's source code as + you receive it, in any medium, provided that you conspicuously + and appropriately publish on each copy an appropriate copyright + notice; keep intact all notices stating that this License and + any non-permissive terms added in accord with section 7 apply to + the code; keep intact all notices of the absence of any + warranty; and give all recipients a copy of this License along + with the Program. + + + + You may charge any price or no price for each copy that you + convey, and you may offer support or warranty protection for a + fee. + + + + 5. Conveying Modified Source Versions. + + + + You may convey a work based on the Program, or the modifications + to produce it from the Program, in the form of source code under + the terms of section 4, provided that you also meet all of these + conditions: + + + + a) The work must carry prominent notices stating that you + modified it, and giving a relevant date. + + + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under + section 7. This requirement modifies the requirement in section + 4 to "keep intact all notices". + + + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section + 7 additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + + + d) If the work has interactive user interfaces, each must + display Appropriate Legal Notices; however, if the Program has + interactive interfaces that do not display Appropriate Legal + Notices, your work need not make them do so. + + + + A compilation of a covered work with other separate and + independent works, which are not by their nature extensions of + the covered work, and which are not combined with it such as to + form a larger program, in or on a volume of a storage or + distribution medium, is called an "aggregate" if the compilation + and its resulting copyright are not used to limit the access or + legal rights of the compilation's users beyond what the + individual works permit. Inclusion of a covered work in an + aggregate does not cause this License to apply to the other + parts of the aggregate. + + + + 6. Conveying Non-Source Forms. + + + + You may convey a covered work in object code form under the + terms of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this + License, in one of these ways: + + + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that + product model, to give anyone who possesses the object code + either (1) a copy of the Corresponding Source for all the + software in the product that is covered by this License, on a + durable physical medium customarily used for software + interchange, for a price no more than your reasonable cost of + physically performing this conveying of source, or (2) access to + copy the Corresponding Source from a network server at no + charge. + + + + c) Convey individual copies of the object code with a copy of + the written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, + and only if you received the object code with such an offer, in + accord with subsection 6b. + + + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to + the Corresponding Source in the same way through the same place + at no further charge. You need not require recipients to copy + the Corresponding Source along with the object code. If the + place to copy the object code is a network server, the + Corresponding Source may be on a different server (operated by + you or a third party) that supports equivalent copying + facilities, provided you maintain clear directions next to the + object code saying where to find the Corresponding Source. + Regardless of what server hosts the Corresponding Source, you + remain obligated to ensure that it is available for as long as + needed to satisfy these requirements. + + + + e) Convey the object code using peer-to-peer transmission, + provided you inform other peers where the object code and + Corresponding Source of the work are being offered to the + general public at no charge under subsection 6d. + + + + A separable portion of the object code, whose source code is + excluded from the Corresponding Source as a System Library, need + not be included in conveying the object code work. + + + + A "User Product" is either (1) a "consumer product", which means + any tangible personal property which is normally used for + personal, family, or household purposes, or (2) anything + designed or sold for incorporation into a dwelling. In + determining whether a product is a consumer product, doubtful + cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to + a typical or common use of that class of product, regardless of + the status of the particular user or of the way in which the + particular user actually uses, or expects or is expected to use, + the product. A product is a consumer product regardless of + whether the product has substantial commercial, industrial or + non-consumer uses, unless such uses represent the only + significant mode of use of the product. + + + + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to + install and execute modified versions of a covered work in that + User Product from a modified version of its Corresponding + Source. The information must suffice to ensure that the + continued functioning of the modified object code is in no case + prevented or interfered with solely because modification has + been made. + + + + If you convey an object code work under this section in, or + with, or specifically for use in, a User Product, and the + conveying occurs as part of a transaction in which the right of + possession and use of the User Product is transferred to the + recipient in perpetuity or for a fixed term (regardless of how + the transaction is characterized), the Corresponding Source + conveyed under this section must be accompanied by the + Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to + install modified object code on the User Product (for example, + the work has been installed in ROM). + + + + The requirement to provide Installation Information does not + include a requirement to continue to provide support service, + warranty, or updates for a work that has been modified or + installed by the recipient, or for the User Product in which it + has been modified or installed. Access to a network may be + denied when the modification itself materially and adversely + affects the operation of the network or violates the rules and + protocols for communication across the network. + + + + Corresponding Source conveyed, and Installation Information + provided, in accord with this section must be in a format that + is publicly documented (and with an implementation available to + the public in source code form), and must require no special + password or key for unpacking, reading or copying. + + + + 7. Additional Terms. + + + + "Additional permissions" are terms that supplement the terms of + this License by making exceptions from one or more of its + conditions. Additional permissions that are applicable to the + entire Program shall be treated as though they were included in + this License, to the extent that they are valid under applicable + law. If additional permissions apply only to part of the + Program, that part may be used separately under those + permissions, but the entire Program remains governed by this + License without regard to the additional permissions. + + + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any + part of it. (Additional permissions may be written to require + their own removal in certain cases when you modify the work.) + You may place additional permissions on material, added by you + to a covered work, for which you have or can give appropriate + copyright permission. + + + + Notwithstanding any other provision of this License, for + material you add to a covered work, you may (if authorized by + the copyright holders of that material) supplement the terms of + this License with terms: + + + + a) Disclaiming warranty or limiting liability differently from + the terms of sections 15 and 16 of this License; or + + + + b) Requiring preservation of specified reasonable legal notices + or author attributions in that material or in the Appropriate + Legal Notices displayed by works containing it; or + + + + c) Prohibiting misrepresentation of the origin of that material, + or requiring that modified versions of such material be marked + in reasonable ways as different from the original version; or + + + + d) Limiting the use for publicity purposes of names of licensors + or authors of the material; or + + + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified + versions of it) with contractual assumptions of liability to the + recipient, for any liability that these contractual assumptions + directly impose on those licensors and authors. + + + + All other non-permissive additional terms are considered + "further restrictions" within the meaning of section 10. If the + Program as you received it, or any part of it, contains a notice + stating that it is governed by this License along with a term + that is a further restriction, you may remove that term. If a + license document contains a further restriction but permits + relicensing or conveying under this License, you may add to a + covered work material governed by the terms of that license + document, provided that the further restriction does not survive + such relicensing or conveying. + + + + If you add terms to a covered work in accord with this section, + you must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice + indicating where to find the applicable terms. + + + + Additional terms, permissive or non-permissive, may be stated in + the form of a separately written license, or stated as + exceptions; the above requirements apply either way. + + + + 8. Termination. + + + + You may not propagate or modify a covered work except as + expressly provided under this License. Any attempt otherwise to + propagate or modify it is void, and will automatically terminate + your rights under this License (including any patent licenses + granted under the third paragraph of section 11). + + + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly + and finally terminates your license, and (b) permanently, if the + copyright holder fails to notify you of the violation by some + reasonable means prior to 60 days after the cessation. + + + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of + the violation by some reasonable means, this is the first time + you have received notice of violation of this License (for any + work) from that copyright holder, and you cure the violation + prior to 30 days after your receipt of the notice. + + + + Termination of your rights under this section does not terminate + the licenses of parties who have received copies or rights from + you under this License. If your rights have been terminated and + not permanently reinstated, you do not qualify to receive new + licenses for the same material under section 10. + + + + 9. Acceptance Not Required for Having Copies. + + + + You are not required to accept this License in order to receive + or run a copy of the Program. Ancillary propagation of a + covered work occurring solely as a consequence of using + peer-to-peer transmission to receive a copy likewise does not + require acceptance. However, nothing other than this License + grants you permission to propagate or modify any covered work. + These actions infringe copyright if you do not accept this + License. Therefore, by modifying or propagating a covered work, + you indicate your acceptance of this License to do so. + + + + 10. Automatic Licensing of Downstream Recipients. + + + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify + and propagate that work, subject to this License. You are not + responsible for enforcing compliance by third parties with this + License. + + + + An "entity transaction" is a transaction transferring control of + an organization, or substantially all assets of one, or + subdividing an organization, or merging organizations. If + propagation of a covered work results from an entity + transaction, each party to that transaction who receives a copy + of the work also receives whatever licenses to the work the + party's predecessor in interest had or could give under the + previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in + interest, if the predecessor has it or can get it with + reasonable efforts. + + + + You may not impose any further restrictions on the exercise of + the rights granted or affirmed under this License. For example, + you may not impose a license fee, royalty, or other charge for + exercise of rights granted under this License, and you may not + initiate litigation (including a cross-claim or counterclaim in + a lawsuit) alleging that any patent claim is infringed by + making, using, selling, offering for sale, or importing the + Program or any portion of it. + + + + 11. Patents. + + + + A "contributor" is a copyright holder who authorizes use under + this License of the Program or a work on which the Program is + based. The work thus licensed is called the contributor's + "contributor version". + + + + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired + or hereafter acquired, that would be infringed by some manner, + permitted by this License, of making, using, or selling its + contributor version, but do not include claims that would be + infringed only as a consequence of further modification of the + contributor version. For purposes of this definition, "control" + includes the right to grant patent sublicenses in a manner + consistent with the requirements of this License. + + + + Each contributor grants you a non-exclusive, worldwide, + royalty-free patent license under the contributor's essential + patent claims, to make, use, sell, offer for sale, import and + otherwise run, modify and propagate the contents of its + contributor version. + + + + In the following three paragraphs, a "patent license" is any + express agreement or commitment, however denominated, not to + enforce a patent (such as an express permission to practice a + patent or covenant not to sue for patent infringement). To + "grant" such a patent license to a party means to make such an + agreement or commitment not to enforce a patent against the + party. + + + + If you convey a covered work, knowingly relying on a patent + license, and the Corresponding Source of the work is not + available for anyone to copy, free of charge and under the terms + of this License, through a publicly available network server or + other readily accessible means, then you must either (1) cause + the Corresponding Source to be so available, or (2) arrange to + deprive yourself of the benefit of the patent license for this + particular work, or (3) arrange, in a manner consistent with the + requirements of this License, to extend the patent license to + downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your + conveying the covered work in a country, or your recipient's use + of the covered work in a country, would infringe one or more + identifiable patents in that country that you have reason to + believe are valid. + + + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance + of, a covered work, and grant a patent license to some of the + parties receiving the covered work authorizing them to use, + propagate, modify or convey a specific copy of the covered work, + then the patent license you grant is automatically extended to + all recipients of the covered work and works based on it. + + + + A patent license is "discriminatory" if it does not include + within the scope of its coverage, prohibits the exercise of, or + is conditioned on the non-exercise of one or more of the rights + that are specifically granted under this License. You may not + convey a covered work if you are a party to an arrangement with + a third party that is in the business of distributing software, + under which you make payment to the third party based on the + extent of your activity of conveying the work, and under which + the third party grants, to any of the parties who would receive + the covered work from you, a discriminatory patent license (a) + in connection with copies of the covered work conveyed by you + (or copies made from those copies), or (b) primarily for and in + connection with specific products or compilations that contain + the covered work, unless you entered into that arrangement, or + that patent license was granted, prior to 28 March 2007. + + + + Nothing in this License shall be construed as excluding or + limiting any implied license or other defenses to infringement + that may otherwise be available to you under applicable patent + law. + + + + 12. No Surrender of Others' Freedom. + + + + If conditions are imposed on you (whether by court order, + agreement or otherwise) that contradict the conditions of this + License, they do not excuse you from the conditions of this + License. If you cannot convey a covered work so as to satisfy + simultaneously your obligations under this License and any other + pertinent obligations, then as a consequence you may not convey + it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom + you convey the Program, the only way you could satisfy both + those terms and this License would be to refrain entirely from + conveying the Program. + + + + 13. Use with the GNU Affero General Public License. + + + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work + licensed under version 3 of the GNU Affero General Public + License into a single combined work, and to convey the resulting + work. The terms of this License will continue to apply to the + part which is the covered work, but the special requirements of + the GNU Affero General Public License, section 13, concerning + interaction through a network will apply to the combination as + such. + + + + 14. Revised Versions of this License. + + + + The Free Software Foundation may publish revised and/or new + versions of the GNU General Public License from time to time. + Such new versions will be similar in spirit to the present + version, but may differ in detail to address new problems or + concerns. + + + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU + General Public License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that numbered version or of any later version published by the + Free Software Foundation. If the Program does not specify a + version number of the GNU General Public License, you may choose + any version ever published by the Free Software Foundation. + + + + If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that + proxy's public statement of acceptance of a version permanently + authorizes you to choose that version for the Program. + + + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on + any author or copyright holder as a result of your choosing to + follow a later version. + + + + 15. Disclaimer of Warranty. + + + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE + COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS + IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE + ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS + WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE + COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + + + 16. Limitation of Liability. + + + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO + MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE + LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, + INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR + INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS + OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH + ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + + + 17. Interpretation of Sections 15 and 16. + + + + If the disclaimer of warranty and limitation of liability + provided above cannot be given local legal effect according to + their terms, reviewing courts shall apply local law that most + closely approximates an absolute waiver of all civil liability + in connection with the Program, unless a warranty or assumption + of liability accompanies a copy of the Program in return for a + fee. + + + + Bison Exception + + + + As a special exception, you may create a larger work that + contains part or all of the Bison parser skeleton and distribute + that work under terms of your choice, so long as that work isn't + itself a parser generator using the skeleton or a modified + version thereof as a parser skeleton. Alternatively, if you + modify or redistribute the parser skeleton itself, you may (at + your option) remove this special exception, which will cause the + skeleton and the resulting Bison output files to be licensed + under the GNU General Public License without this special + exception. + + + + This special exception was added by the Free Software Foundation + in version 2.2 of Bison. + + + END OF TERMS AND CONDITIONS + + + + + + + WiX Toolset License + + + The WiX toolset is released under the Microsoft Reciprocal + License (MS-RL). A reciprocal license is used to ensure that + others who build on the effort of the WiX community give back to + the WiX community. Specifically the license requires that fixes + and improvements to the WiX toolset must be published using the + same license. + + + + Sometimes the reciprocal license is incorrectly interpreted to + also apply to bundles, packages, and custom actions built using + the WiX toolset. The Outercurve Foundation has previously + provided this statement below to clarify which now the .NET + Foundation reaffirms: + + +
+ + The WiX toolset (WiX) is licensed under the Microsoft + Reciprocal License (MS-RL). The MS-RL governs the distribution + of the software licensed under it, as well as derivative + works, and incorporates the definition of a derivative work + provided in U.S. copyright law. OuterCurve Foundation (and the + .NET Foundation) does not view the installer packages + generated by WiX as falling within the definition of a + derivative work, merely because they are produced using WiX. + Thus, the installer packages generated by WiX will normally + fall outside the scope of the MS-RL, and any of your source + code, binaries, libraries, routines or other software + components that are incorporated in installer packages + generated by WiX can be governed by other licensing terms. + +
+ + + The full text of the MS-RL license is reproduced below. It can + also be found in the LICENSE.TXT file included with the source + code. + + + + Microsoft Reciprocal License (MS-RL) + + + + This license governs use of the accompanying software. If you + use the software, you accept this license. If you do not accept + the license, do not use the software. + + + + + + + Definitions. + + + + The terms "reproduce," "reproduction," "derivative works," + and "distribution" have the same meaning here as under U.S. + copyright law. A "contribution" is the original software, + or any additions or changes to the software. A + "contributor" is any person that distributes its + contribution under this license. "Licensed patents" are a + contributor's patent claims that read directly on its + contribution. disclaimer. + + + + + + Grant of Rights + + + + + + + Copyright Grant- Subject to the terms of this license, + including the license conditions and limitations in + section 3, each contributor grants you a + non-exclusive, worldwide, royalty-free copyright + license to reproduce its contribution, prepare + derivative works of its contribution, and distribute + its contribution or any derivative works that you + create. + + + + + + Patent Grant- Subject to the terms of this license, + including the license conditions and limitations in + section 3, each contributor grants you a + non-exclusive, worldwide, royalty-free license under + its licensed patents to make, have made, use, sell, + offer for sale, import, and/or otherwise dispose of + its contribution in the software or derivative works + of the contribution in the software. + + + + + + + + + + Conditions and Limitations + + + + + + + Reciprocal Grants- For any file you distribute that + contains code from the software (in source code or + binary format), you must provide recipients the source + code to that file along with a copy of this license, + which license will govern that file. You may license + other files that are entirely your own work and do not + contain code from the software under any terms you + choose. + + + + + + No Trademark License- This license does not grant you + rights to use any contributors' name, logo, or + trademarks. + + + + + + If you bring a patent claim against any contributor + over patents that you claim are infringed by the + software, your patent license from such contributor to + the software ends automatically. + + + + + + If you distribute any portion of the software, you + must retain all copyright, patent, trademark, and + attribution notices that are present in the software. + + + + + + If you distribute any portion of the software in + source code form, you may do so only under this + license by including a complete copy of this license + with your distribution. If you distribute any portion + of the software in compiled or object code form, you + may only do so under a license that complies with this + license. + + + + + + The software is licensed "as-is." You bear the risk of + using it. The contributors give no express warranties, + guarantees or conditions. You may have additional + consumer rights under your local laws which this + license cannot change. To the extent permitted under + your local laws, the contributors exclude the implied + warranties of merchantability, fitness for a + particular purpose and non-infringement. + + + + + + + + + +
+ + + + XFree86 License (variant 1) + + + Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights + Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + + + + Except as contained in this notice, the name of the XFree86 + Project shall not be used in advertising or otherwise to promote + the sale, use or other dealings in this Software without prior + written authorization from the XFree86 Project. + + + + + + + XFree86 License (variant 2) + + + Copyright 1997 by The XFree86 Project, Inc. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of the XFree86 Project, Inc. not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. The + Xfree86 Project, Inc. makes no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI + OR DAVID WEXELBLAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Cereal License + + + Copyright (c) 2013-2022, Randolph Voorhies, Shane Grant + All rights reserved. + + + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + + + + + + Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + + + Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + + + + + Neither the name of the copyright holder nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + + + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + Keith Packard License + + + Copyright (c) 2001, 2003 Keith Packard + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Keith Packard not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Keith Packard makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + X Direct Rendering Infrastructure (DRI) 2 Extension License + + + Copyright (c) 2007 Red Hat, Inc. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, and/or sell copies of + the Software, and to permit persons to whom the Software is + furnished to do so, provided that the above copyright notice(s) + and this permission notice appear in all copies of the Soft- + ware and that both the above copyright notice(s) and this + permission notice appear in supporting documentation. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE + FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL + DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + Except as contained in this notice, the name of a copyright + holder shall not be used in advertising or otherwise to promote + the sale, use or other dealings in this Software without prior + written authorization of the copyright holder. + + + + Authors: + Kristian Høgsberg (krh@redhat.com) + + + + + + + Network Computing Devices and DEC License + + + Copyright 1990, 1991 Network Computing Devices; Portions + Copyright 1987 by Digital Equipment Corporation + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of Network Computing Devices or Digital not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Network + Computing Devices and Digital make no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + NETWORK COMPUTING DEVICES AND DIGITAL DISCLAIM ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NETWORK + COMPUTING DEVICES OR DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF + CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + MIT Open Group Variant License + + + Copyright 1989, 1990, 1991, 1998 The Open Group + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation. + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + Except as contained in this notice, the name of The Open Group + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from The Open Group. + + + + + + + Digital Equipment Corporation License (variant 1) + + + Copyright 1987 by Digital Equipment Corporation, Maynard, + Massachusetts. All Rights Reserved + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + Digital not be used in advertising or publicity pertaining to + distribution of the software without specific, written prior + permission. + + + + DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Digital Equipment Corporation License (variant 2) + + + Copyright (c) 1996 Digital Equipment Corporation, Maynard, + Massachusetts. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software. + + + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL DIGITAL EQUIPMENT + CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING, BUT NOT + LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + Except as contained in this notice, the name of Digital + Equipment Corporation shall not be used in advertising or + otherwise to promote the sale, use or other dealings in this + Software without prior written authorization from Digital + Equipment Corporation. + + + + + + + Digital Equipment Corporation License (variant 3) + + + Copyright 1997 Digital Equipment Corporation. All rights + reserved. + + + + This software is furnished under license and may be used and + copied only in accordance with the following terms and + conditions. Subject to these conditions, you may download, + copy, install, use, modify and distribute this software in + source and/or binary form. No title or ownership is transferred + hereby. + + + + 1) Any source code used, modified or distributed must reproduce + and retain this copyright notice and list of conditions as they + appear in the source file. + + + + 2) No right is granted to use any trade name, trademark, or logo + of Digital Equipment Corporation. Neither the "Digital Equipment + Corporation" name nor any trademark or logo of Digital Equipment + Corporation may be used to endorse or promote products derived + from this software without the prior written permission of + Digital Equipment Corporation. + + + + 3) This software is provided "AS-IS" and any express or implied + warranties, including but not limited to, any implied warranties + of merchantability, fitness for a particular purpose, or + non-infringement are disclaimed. In no event shall DIGITAL be + liable for any damages whatsoever, and in particular, DIGITAL + shall not be liable for special, indirect, consequential, or + incidental damages or damages for lost profits, loss of revenue + or loss of use, whether such damages arise in contract, + negligence, tort, under statute, in equity, at law or otherwise, + even if advised of the possibility of such damage. + + + + + + + Digital Equipment Corporation and QuarterDeck Office Systems License + + + Copyright 1987 by Digital Equipment Corporation, Maynard, + Massachusetts, Copyright 1994 Quarterdeck Office Systems. All + Rights Reserved + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the names of + Digital and Quarterdeck not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. + + + + DIGITAL AND QUARTERDECK DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE + OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Hewlett-Packard License (variant 1) + + + Copyright 1989 by Hewlett-Packard Company, Palo Alto, + California. + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + Hewlett-Packard not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. + + + + HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL HEWLETT-PACKARD BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Hewlett-Packard License (variant 2) + + + Copyright (c) 1994, 1995 Hewlett-Packard Company + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + + + + Except as contained in this notice, the name of the + Hewlett-Packard Company shall not be used in advertising or + otherwise to promote the sale, use or other dealings in this + Software without prior written authorization from the + Hewlett-Packard Company. + + + + + + + Hewlett-Packard License (variant 3) + + + Copyright 1986, 1987, 1988 by Hewlett-Packard Corporation + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + Hewlett-Packard not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. + + + + Hewlett-Packard makes no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + This software is not subject to any license of the American + Telephone and Telegraph Company or of the Regents of the + University of California. + + + + + + + Hewlett-Packard License (variant 4) + + + Copyright 1987 by Apollo Computer Inc., Chelmsford, + Massachusetts.; Copyright 1989 by Hewlett-Packard Company. All + Rights Reserved + + + + Permission to use, duplicate, change, and distribute this + software and its documentation for any purpose and without fee + is granted, provided that the above copyright notice appear in + such copy and that this copyright notice appear in all + supporting documentation, and that the names of Apollo Computer + Inc., the Hewlett-Packard Company, or the X Consortium not be + used in advertising or publicity pertaining to distribution of + the software without written prior permission. + + + + HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO + THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. Hewlett-Packard shall not be liable for errors + contained herein or direct, indirect, special, incidental or + consequential damages in connection with the furnishing, + performance, or use of this material. + + + + + + + Silicon Graphics License + + + Copyright (c) 1993, 1997 by Silicon Graphics Computer Systems, + Inc. + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + Silicon Graphics not be used in advertising or publicity + pertaining to distribution of the software without specific + prior written permission. Silicon Graphics makes no + representation about the suitability of this software for any + purpose. It is provided "as is" without any express or implied + warranty. + + + + SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X Resize and Rotate Extension (RandR) License + + + Copyright (c) 2000 Compaq Computer Corporation; Copyright (c) + 2002 Hewlett-Packard Company; Copyright (c) 2006 Intel + Corporation; Copyright (c) 2008 Red Hat, Inc. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of the copyright holders not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. The copyright holders make + no representations about the suitability of this software for + any purpose. It is provided "as is" without express or implied + warranty. + + + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE COPYRIGHT + HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + SuSE License + + + Copyright (c) 2000 SuSE, Inc. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of SuSE not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. SuSE makes no representations about + the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + IN NO EVENT SHALL SuSE BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Network Computing Devices (NCD) License (variant 1) + + + Copyright 1992 Network Computing Devices; Portions + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of NCD. not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. NCD. makes no representations about + the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + IN NO EVENT SHALL NCD. BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Network Computing Devices (NCD) License (variant 2) + + + Copyright 1988, 1989, 1990, 1994 Network Computing Devices, Inc. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name Network Computing Devices, Inc. not be used in + advertising or publicity pertaining to distribution of this + software without specific, written prior permission. + + + + THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, + INC., DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR + NONINFRINGEMENT. IN NO EVENT SHALL NETWORK COMPUTING DEVICES, + INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING SPECIAL, + INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE, + DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, + AND REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR + NEGLIGENCE, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + + + + + + Network Computing Devices (NCD) License (variant 3) + + + Copyright 1989 Network Computing Devices, Inc., Mountain View, California. + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + N.C.D. not be used in advertising or publicity pertaining to + distribution of the software without specific, written prior + permission. N.C.D. makes no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + + + + Digital Equipment Corporation and Olivetti Research Limited License + + + Copyright 1991,1993 by Digital Equipment Corporation, Maynard, + Massachusetts, and Olivetti Research Limited, Cambridge, + England. All Rights Reserved + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the names of + Digital or Olivetti not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. + + + + DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, + INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER + RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + + + + + + + X Consortium, DEC, Intergraph, Silicon Graphics, and Hewlett-Packard License + + + Copyright (c) 1989 X Consortium, Inc. and Digital Equipment + Corporation.; Copyright (c) 1992 X Consortium, Inc. and + Intergraph Corporation.; Copyright (c) 1993 X Consortium, Inc. + and Silicon Graphics, Inc.; Copyright (c) 1994, 1995 X + Consortium, Inc. and Hewlett-Packard Company. + + + + Permission to use, copy, modify, and distribute this + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice and this permission + notice appear in all copies. Digital Equipment Corporation, + Intergraph Corporation, Silicon Graphics, Hewlett-Packard, and + the X Consortium make no representations about the suitability + for any purpose of the information in this document. This + documentation is provided ``as is'' without express or implied + warranty. + + + + + + + Sun Microsystems License + + + Copyright 2007, 2008, 2009 Sun Microsystems, Inc. All rights + reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, and/or sell copies of + the Software, and to permit persons to whom the Software is + furnished to do so, provided that the above copyright notice(s) + and this permission notice appear in all copies of the Software + and that both the above copyright notice(s) and this permission + notice appear in supporting documentation. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE + FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, + OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + + + Except as contained in this notice, the name of a copyright + holder shall not be used in advertising or otherwise to promote + the sale, use or other dealings in this Software without prior + written authorization of the copyright holder. + + + + + + + X libpciaccess Library License + + + Copyright (c) 2008 Juan Romero Pardines; Copyright (c) 2008 Mark Kettenis + + + + Permission to use, copy, modify, and distribute this software + for any purpose with or without fee is hereby granted, provided + that the above copyright notice and this permission notice + appear in all copies. + + + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X libxshmfence License + + + Copyright (c) 2013 Keith Packard + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of the copyright holders not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. The copyright holders make + no representations about the suitability of this software for + any purpose. It is provided "as is" without express or implied + warranty. + + + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE COPYRIGHT + HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X xf86-input-mouse driver License + + + Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.; + Copyright 1993 by David Dawes <dawes@xfree86.org>; + Copyright 2002 by SuSE Linux AG, Author: Egbert Eich; Copyright + 1994-2002 by The XFree86 Project, Inc.; Copyright 2002 by Paul + Elliott + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of copyright holders not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. The copyright holders make + no representations about the suitability of this software for + any purpose. It is provided "as is" without express or implied + warranty. + + + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE COPYRIGHT + HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Kazutaka YOKOTA License + + + Copyright 1998 by Kazutaka YOKOTA + <yokota@zodiac.mech.utsunomiya-u.ac.jp> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Kazutaka YOKOTA not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Kazutaka YOKOTA makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + KAZUTAKA YOKOTA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL KAZUTAKA YOKOTA BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Conectiva License + + + Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com) + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL CONECTIVA LINUX BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + Except as contained in this notice, the name of Conectiva Linux + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from Conectiva Linux. + + + + + + + Red Hat and SuSE License + + + Copyright © 2008 Red Hat, Inc. Partly based on code Copyright © + 2000 SuSE, Inc. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Red Hat not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. Red Hat makes no representations + about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + Red Hat DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + IN NO EVENT SHALL Red Hat BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of SuSE not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. SuSE makes no representations about + the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + IN NO EVENT SHALL SuSE BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Red Hat License + + + Copyright (c) 2006 Red Hat, Inc. (C) Copyright 1998-1999 + Precision Insight, Inc., Cedar Park, Texas. All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sub license, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice (including + the next paragraph) shall be included in all copies or + substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT, INC, OR PRECISION + INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES + OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + + + + X Consortium and Red Hat License + + + Copyright (c) 1995 X Consortium Copyright 2004 Red Hat Inc., + Durham, North Carolina. All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation on the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT, THE X CONSORTIUM, + AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + Except as contained in this notice, the name of the X Consortium + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from the X Consortium. + + + + + + + Precision Insight License + + + Copyright 1998-2000 Precision Insight, Inc., Cedar Park, Texas.; + Copyright 2000 VA Linux Systems, Inc.; Copyright (c) 2002, 2008, + 2009 Apple Computer, Inc.; Copyright (c) 2003-2004 Torrey T. + Lyons.; All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sub license, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice (including + the next paragraph) shall be included in all copies or + substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR + ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + + + + VA Linux and IBM License + + + (C) Copyright IBM Corporation 2003 All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation on the rights to use, + copy, modify, merge, publish, distribute, sub license, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice (including + the next paragraph) shall be included in all copies or + substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL VA LINUX SYSTEM, IBM AND/OR + THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + + + + IBM License + + + (C) Copyright IBM Corporation 2004-2005 All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sub license, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice (including + the next paragraph) shall be included in all copies or + substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL IBM, AND/OR THEIR SUPPLIERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + + + + + + + Metro Link License (variant 1) + + + Copyright (c) 1997 Metro Link Incorporated + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sub license, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + Except as contained in this notice, the name of the Metro Link + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from Metro Link. + + + + + + + Metro Link License (variant 2) + + + Copyright 1995-1998 by Metro Link, Inc.; Copyright (c) 1997 + Matthieu Herrb + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Metro Link, Inc. not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Metro Link, Inc. makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL METRO LINK, INC. BE LIABLE FOR + ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Metro Link License (variant 3) + + + Copyright 1998 by Metro Link Incorporated + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Metro Link Incorporated not be used in advertising + or publicity pertaining to distribution of the software without + specific, written prior permission. Metro Link Incorporated + makes no representations about the suitability of this software + for any purpose. It is provided "as is" without express or + implied warranty. + + + + METRO LINK INCORPORATED DISCLAIMS ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL METRO LINK + INCORPORATED BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + NVIDIA License + + + Copyright (c) 2001, Andy Ritger aritger@nvidia.com All rights + reserved. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + o Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + + + o Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + + + o Neither the name of NVIDIA nor the names of its contributors + may be used to endorse or promote products derived from this + software without specific prior written permission. + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + OF SUCH DAMAGE. + + + + + + + Vrije Universiteit License + + + Copyright 1992 Vrije Universiteit, The Netherlands + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + the Vrije Universiteit not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. The Vrije Universiteit makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + The Vrije Universiteit DISCLAIMS ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL The Vrije + Universiteit BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Concurrent Computer Corporation License + + + Copyright 1998 by Concurrent Computer Corporation + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Concurrent Computer Corporation not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Concurrent + Computer Corporation makes no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + CONCURRENT COMPUTER CORPORATION DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL CONCURRENT + COMPUTER CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Nokia License + + + Copyright (c) 2004 Nokia + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Nokia not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. Nokia makes no representations about + the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + IN NO EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Adobe License + + + (c)Copyright 1988,1991 Adobe Systems Incorporated. All rights + reserved. + + + + Permission to use, copy, modify, distribute, and sublicense this + software and its documentation for any purpose and without fee + is hereby granted, provided that the above copyright notices + appear in all copies and that both those copyright notices and + this permission notice appear in supporting documentation and + that the name of Adobe Systems Incorporated not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. No + trademark license to use the Adobe trademarks is hereby granted. + If the Adobe trademark "Display PostScript"(tm) is used to + describe this software, its functionality or for any other + purpose, such use shall be limited to a statement that this + software works in conjunction with the Display PostScript + system. Proper trademark attribution to reflect Adobe's + ownership of the trademark shall be given whenever any such + reference to the Display PostScript system is made. + + + + ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR ANY + PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ADOBE + DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON- + INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE TO YOU + OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY + DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,NEGLIGENCE, STRICT + LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT PROVIDE ANY TRAINING OR OTHER + SUPPORT FOR THE SOFTWARE. + + + + Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems + Incorporated which may be registered in certain jurisdictions. + + + + + + + University of California License (variant 1) + + + Copyright (c) 1987 by the Regents of the University of California + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies. The University of California makes no representations + about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + + + + University of California License (variant 2) + + + Copyright (c) 1989, 1990, 1993, 1994 The Regents of the + University of California. All rights reserved. + + + + This code is derived from software contributed to Berkeley by + Chris Torek. + + + + This code is derived from software contributed to Berkeley by + Michael Rendell of Memorial University of Newfoundland. + + + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + + + 4. Neither the name of the University nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS + IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + + + + + + OMRON Corporation and Data General Corporation License + + + Copyright 1992, 1993 Data General Corporation; Copyright 1992, + 1993 OMRON Corporation + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + neither the name OMRON or DATA GENERAL be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission of the party whose name is to + be used. Neither OMRON or DATA GENERAL make any representation + about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + OMRON AND DATA GENERAL EACH DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + IN NO EVENT SHALL OMRON OR DATA GENERAL BE LIABLE FOR ANY SPECIAL, INDIRECT + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. + + + + + + + X11 Legacy License (variant 1) + + + Copyright (c) 1999 Keith Packard; Copyright (c) 2000 Compaq + Computer Corporation; Copyright (c) 2002 MontaVista Software + Inc.; Copyright (c) 2005 OpenedHand Ltd.; Copyright (c) 2006 + Nokia Corporation + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of the authors and/or copyright holders not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. The + authors and/or copyright holders make no representations about + the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + THE AUTHORS AND/OR COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE AUTHORS + AND/OR COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X11 Legacy License (variant 2) + + + Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany; + Copyright 1993 by David Wexelblat <dwex@goblin.org>; + Copyright 1999 by David Holland <davidh@iquest.net>; + Copyright (c) 2000 Compaq Computer Corporation; Copyright (c) + 2002 Hewlett-Packard Company; Copyright (c) 2004, 2005 Red Hat, + Inc.; Copyright (c) 2004 Nicholas Miell; Copyright (c) 2005 + Trolltech AS; Copyright (c) 2006 Intel Corporation; Copyright + (c) 2006-2007 Keith Packard; Copyright (c) 2008 Red Hat, Inc; + Copyright (c) 2008 George Sapountzis <gsap7@yahoo.gr>; + Copyright (c) 2000 Keith Packard, member of The XFree86 Project, + Inc.; 2005 Lars Knoll & Zack Rusin, Trolltech + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of the copyright holders not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. The copyright holders make + no representations about the suitability of this software for + any purpose. It is provided "as is" without express or implied + warranty. + + + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE COPYRIGHT + HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X11 Legacy License (variant 3) + + + Copyright 1987, 1998 The Open Group; Copyright (c) 1998-1999, + 2001 The XFree86 Project, Inc.; Copyright (c) 2000 VA Linux + Systems, Inc.; Copyright (c) 2000, 2001 Nokia Home + Communications; Copyright (c) 2007, 2008 Red Hat, Inc.; All + rights reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, and/or sell copies of + the Software, and to permit persons to whom the Software is + furnished to do so, provided that the above copyright notice(s) + and this permission notice appear in all copies of the Software + and that both the above copyright notice(s) and this permission + notice appear in supporting documentation. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE + FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, + OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + + + Except as contained in this notice, the name of a copyright + holder shall not be used in advertising or otherwise to promote + the sale, use or other dealings in this Software without prior + written authorization of the copyright holder. + + + + + + + X11 Legacy License (variant 4) + + + Copyright 1996 by Thomas E. Dickey <dickey@clark.net> All + Rights Reserved + + + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + the above listed copyright holder(s) not be used in advertising + or publicity pertaining to distribution of the software without + specific, written prior + + + + THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE ABOVE + LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF + CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X11 Legacy License (variant 5) + + + Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.; + Copyright (c) 2001 Andreas Monitzer.; Copyright (c) 2001-2004 + Greg Parker.; Copyright (c) 2001-2004 Torrey T. Lyons; Copyright + (c) 2002-2003 Apple Computer, Inc.; Copyright (c) 2004-2005 + Alexander Gottwald; Copyright (c) 2002-2009 Apple Inc.; + Copyright (c) 2007 Jeremy Huddleston; All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise + to promote the sale, use or other dealings in this Software + without prior written authorization. + + + + + + + X11 Legacy License (variant 6) + + + Copyright (C) 1999,2000 by Eric Sunshine + <sunshine@sunshineco.com>; Copyright (C) 2001-2005 by + Thomas Winischhofer, Vienna, Austria.; All rights reserved. + + + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + + + 3. The name of the author may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + X11 Legacy License (variant 7) + + + Copyright (C) 2005 Bogdan D. bogdand@users.sourceforge.net + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + Except as contained in this notice, the name of the author shall + not be used in advertising or otherwise to promote the sale, use + or other dealings in this Software without prior written + authorization from the author. + + + + + + + X11 Legacy License (variant 8) + + + Copyright (c) 2002 David Dawes + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + Except as contained in this notice, the name of the author(s) + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from the author(s). + + + + + + + X11 Legacy License (variant 9) + + + Copyright (C) 1996-1999 SciTech Software, Inc.; Copyright (C) + David Mosberger-Tang; Copyright (C) 1999 Egbert Eich; Copyright + (C) 2008 Bart Trojanowski, Symbio Technologies, LLC + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of the authors not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. The authors makes no representations + about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + X11 Legacy License (variant 10) + + + Copyright 2005-2006 Luc Verhaegen. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) OR + AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + + + + X11 Legacy License (variant 11) + + + Copyright 1995 by Robin Cutshaw <robin@XFree86.Org>; + Copyright 2000 by Egbert Eich; Copyright 2002 by David Dawes + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of the above listed copyright holder(s) not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. The above + listed copyright holder(s) make(s) no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE ABOVE + LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF + CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X11 Legacy License (variant 12) + + + Copyright 1990, 1991 by Thomas Roell, Dinkelscherben, Germany; Copyright 1992 by David Dawes <dawes@XFree86.org>; Copyright 1992 by Jim Tsillas <jtsilla@damon.ccs.northeastern.edu>; Copyright 1992 by Rich Murphey <Rich@Rice.edu>; Copyright 1992 by Robert Baron <Robert.Baron@ernst.mach.cs.cmu.edu>; Copyright 1992 by Orest Zborowski <obz@eskimo.com>; Copyright 1993 by Vrije Universiteit, The Netherlands; Copyright 1993 by David Wexelblat <dwex@XFree86.org>; Copyright 1994, 1996 by Holger Veit <Holger.Veit@gmd.de>; Copyright 1997 by Takis Psarogiannakopoulos <takis@dpmms.cam.ac.uk>; Copyright 1994-2003 by The XFree86 Project, Inc + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of the above listed copyright holders not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. The above + listed copyright holders make no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED + COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X11 Legacy License (variant 13) + + + Copyright (C) 2000 Keith Packard; 2004 Eric Anholt; 2005 Zack Rusin + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of copyright holders not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Copyright holders make no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE COPYRIGHT + HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + X11 Legacy License (variant 14) + + + (C) Copyright IBM Corporation 2002-2007 All Rights Reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation on the rights to use, + copy, modify, merge, publish, distribute, sub license, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice (including + the next paragraph) shall be included in all copies or + substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS + AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that this permission notice appear in + supporting documentation. This permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + + + + Davor Matic License + + + Copyright 1993 by Davor Matic + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation. Davor + Matic makes no representations about the suitability of this + software for any purpose. It is provided "as is" without + express or implied warranty. + + + + + + + Harold L Hunt II License + + + Copyright (C) 2001-2004 Harold L Hunt II All Rights Reserved.; + Copyright (C) Colin Harrison 2005-2008 + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL HAROLD L HUNT II BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + Except as contained in this notice, the name of Harold L Hunt II + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from Harold L Hunt II. + + + + + + + Thomas Roell License + + + Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Thomas Roell not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. Thomas Roell makes no representations + about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Thomas Roell and David Wexelblat License + + + Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany; + Copyright 1993 by David Wexelblat <dwex@goblin.org> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of Thomas Roell and David Wexelblat not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Thomas + Roell and David Wexelblat makes no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + THOMAS ROELL AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THOMAS ROELL OR + DAVID WEXELBLAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Thomas Roell and SGCS (Snitily Graphics Consulting Services) License + + + Copyright 1990,91,92,93 by Thomas Roell, Germany.; Copyright + 1991,92,93 by SGCS (Snitily Graphics Consulting Services), + USA. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Thomas Roell nor SGCS be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Thomas Roell nor SGCS makes + no representations about the suitability of this software for + any purpose. It is provided "as is" without express or implied + warranty. + + + + THOMAS ROELL AND SGCS DISCLAIMS ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THOMAS ROELL OR + SGCS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Alan Hourihane License + + + Copyright 1998 by Alan Hourihane, Wigan, England.; Copyright + 2000-2002 by Alan Hourihane, Flint Mountain, North Wales. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Alan Hourihane not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Alan Hourihane makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Kaleb S. Keithley License + + + Copyright 1995 Kaleb S. KEITHLEY + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES + OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + Except as contained in this notice, the name of Kaleb S. + KEITHLEY shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization from Kaleb S. KEITHLEY + + + + + + Matthieu Herrb License + + + Copyright (c) 1997 Matthieu Herrb + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Matthieu Herrb not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Matthieu Herrb makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + MATTHIEU HERRB DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL MATTHIEU HERRB BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + + + + + + Egbert Eich License + + + Copyright 2004, Egbert Eich + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + EGBERT EICH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- + NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + Except as contained in this notice, the name of Egbert Eich + shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior + written authorization from Egbert Eich. + + + + + + + David Wexelblat License + + + Copyright 1993 by David Wexelblat <dwex@goblin.org>; + Copyright 2005 by Kean Johnston <jkj@sco.com>; Copyright + 1993 by David McCullough <davidm@stallion.oz.au> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of David Wexelblat not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. David Wexelblat makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL DAVID WEXELBLAT BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Orest Zborowski and David Wexelblat License + + + Copyright 1992 by Orest Zborowski <obz@Kodak.com>; + Copyright 1993 by David Wexelblat <dwex@goblin.org> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of Orest Zborowski and David Wexelblat not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Orest + Zborowski and David Wexelblat make no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + OREST ZBOROWSKI AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OREST + ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE FOR ANY SPECIAL, INDIRECT + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF + CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Orest Zborowski and David Dawes License + + + Copyright 1992 by Orest Zborowski <obz@Kodak.com>; + Copyright 1993 by David Dawes <dawes@xfree86.org> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of Orest Zborowski and David Dawes not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Orest + Zborowski and David Dawes make no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + OREST ZBOROWSKI AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI + OR DAVID DAWES BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Frederic Lepied License + + + Copyright 1995-1999 by Frederic Lepied, France. + <fred@sugix.frmug.fr.net> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby + granted without fee, provided that the above copyright notice + appear in all copies and that both that copyright notice + and this permission notice appear in supporting + documentation, and that the name of Frederic Lepied not + be used in advertising or publicity pertaining to distribution + of the software without specific, written prior + permission. Frederic Lepied makes no representations + about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + FREDERIC LEPIED DISCLAIMS ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FREDERIC + LEPIED BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF + CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + + + + + + + Rich Murphey and David Wexelblat License + + + Copyright 1992 by Rich Murphey <Rich@Rice.edu>; Copyright + 1993 by David Wexelblat <dwex@goblin.org> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of Rich Murphey and David Wexelblat not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Rich + Murphey and David Wexelblat make no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + RICH MURPHEY AND DAVID WEXELBLAT DISCLAIM ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RICH MURPHEY OR + DAVID WEXELBLAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Rich Murphey and David Dawes License + + + Copyright 1992 by Rich Murphey <Rich@Rice.edu>; Copyright + 1993 by David Dawes <dawes@xfree86.org> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the names of Rich Murphey and David Dawes not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. Rich + Murphey and David Dawes make no representations about the + suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. + + + + RICH MURPHEY AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RICH MURPHEY OR + DAVID DAWES BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + Anders Carlsson License + + + Copyright (c) 2003-2004 Anders Carlsson + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Anders Carlsson not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Anders Carlsson makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + ANDERS CARLSSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL ANDERS CARLSSON BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Eric Anholt License + + + Copyright (C) 2003 Anders Carlsson; Copyright (c) 2003-2004 Eric + Anholt; Copyright (c) 2004 Keith Packard + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Eric Anholt not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. Eric Anholt makes no representations + about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + + + + ERIC ANHOLT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL ERIC ANHOLT BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Todd C. Miller License + + + Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> + + + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + + + THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS + ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT + SHALL TODD C. MILLER BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER + RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + + + + + + + Philip Blundell License + + + Copyright (c) 2003-2004 Philip Blundell + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Philip Blundell not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Philip Blundell makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + PHILIP BLUNDELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL PHILIP BLUNDELL BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Marc Aurele La France License + + + Copyright 1997-2004 by Marc Aurele La France (TSI @ UQV), + tsi@xfree86.org + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of Marc Aurele La France not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Marc Aurele La France makes + no representations about the suitability of this software for + any purpose. It is provided "as-is" without express or implied + warranty. + + + + MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL MARC AURELE LA + FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + + + J. Kean Johnston License + + + Copyright 2001-2005 by J. Kean Johnston <jkj@sco.com> + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name J. Kean Johnston not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. J. Kean Johnston makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + J. KEAN JOHNSTON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL J. KEAN JOHNSTON BE LIABLE FOR + ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Jakub Jelinek License + + + Copyright (C) 2000 Jakub Jelinek (jakub@redhat.com) + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL JAKUB JELINEK BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + + + + UCHIYAMA Yasushi License + + + Copyright 1997,1998 by UCHIYAMA Yasushi + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of UCHIYAMA Yasushi not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. UCHIYAMA Yasushi makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR + ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + OpenedHand Ltd License + + + Copyright (c) 2007 OpenedHand Ltd + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this + permission notice appear in supporting documentation, and that + the name of OpenedHand Ltd not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. OpenedHand Ltd makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + + + OpenedHand Ltd DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL OpenedHand Ltd BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + + + Oracle License + + + Copyright (c) 1991, Oracle and/or its affiliates. All rights + reserved. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + + + The above copyright notice and this permission notice (including + the next paragraph) shall be included in all copies or + substantial portions of the Software. + + + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + + + + NVIDIA License for Glslang + + + Copyright (c) 2002, NVIDIA Corporation. + + + + NVIDIA Corporation("NVIDIA") supplies this software to you in + consideration of your agreement to the following terms, and your + use, installation, modification or redistribution of this NVIDIA + software constitutes acceptance of these terms. If you do not + agree with these terms, please do not use, install, modify or + redistribute this NVIDIA software. + + + + In consideration of your agreement to abide by the following + terms, and subject to these terms, NVIDIA grants you a personal, + non-exclusive license, under NVIDIA's copyrights in this + original NVIDIA software (the "NVIDIA Software"), to use, + reproduce, modify and redistribute the NVIDIA Software, with or + without modifications, in source and/or binary forms; provided + that if you redistribute the NVIDIA Software, you must retain + the copyright notice of NVIDIA, this notice and the following + text and disclaimers in all such redistributions of the NVIDIA + Software. Neither the name, trademarks, service marks nor logos + of NVIDIA Corporation may be used to endorse or promote products + derived from the NVIDIA Software without specific prior written + permission from NVIDIA. Except as expressly stated in this + notice, no other rights or licenses express or implied, are + granted by NVIDIA herein, including but not limited to any + patent rights that may be infringed by your derivative works or + by other works in which the NVIDIA Software may be incorporated. + No hardware is licensed hereunder. + + + + THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR + IMPLIED, INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS + OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A + PARTICULAR PURPOSE, OR ITS USE AND OPERATION EITHER ALONE OR IN + COMBINATION WITH OTHER PRODUCTS. + + + + IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, + INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE, + REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA + SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, + TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN + IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + The Khronos Group Inc. License for Glslang + + + Copyright (c) 2014-2016 The Khronos Group Inc. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and/or associated + documentation files (the "Materials"), to deal in the Materials + without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Materials, and to permit persons to + whom the Materials are furnished to do so, subject to the + following conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Materials. + + + + MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY + REFLECTS KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS + OF KHRONOS SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + https://www.khronos.org/registry/ + + + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE + AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR + OTHER DEALINGS The above copyright notice and this permission + notice shall be included in all copies or substantial portions + of the Materials. IN THE MATERIALS. + + + + + + + The Khronos Group Inc. License for the EGL Registry Repository + + + Copyright (c) 2008-2018 The Khronos Group Inc. + + + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and/or associated + documentation files (the "Materials"), to deal in the Materials + without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Materials, and to permit persons to + whom the Materials are furnished to do so, subject to the + following conditions: + + + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Materials. + + + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE + AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR + OTHER DEALINGS IN THE MATERIALS. + + + + + + + The IBM Corporation License for the libtpms library + + + Copyright IBM Corporation 2006 - 2011 All rights reserved; + Copyright IBM Corp. and others, 2012-2016 + + + + For the TPM 1.2 code and the library code the following license applies: + + + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + Neither the names of the IBM Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + For the TPM 2 code the following license and notices apply: + + + + Licenses and Notices + + + + + + + + Copyright Licenses: + + + + + + + Trusted Computing Group (TCG) grants to the user of the source code in + this specification (the "Source Code") a worldwide, irrevocable, + nonexclusive, royalty free, copyright license to reproduce, create + derivative works, distribute, display and perform the Source Code and + derivative works thereof, and to grant others the rights granted herein. + + + + + + The TCG grants to the user of the other parts of the specification + (other than the Source Code) the rights to reproduce, distribute, + display, and perform the specification solely for the purpose of + developing products based on such documents. + + + + + + + + + + Source Code Distribution Conditions: + + + + + + + Redistributions of Source Code must retain the above copyright licenses, + this list of conditions and the following disclaimers. + + + + + + Redistributions in binary form must reproduce the above copyright + licenses, this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + + + + + + + + + Disclaimers: + + + + + + + THE COPYRIGHT LICENSES SET FORTH ABOVE DO NOT REPRESENT ANY FORM OF + LICENSE OR WAIVER, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, WITH + RESPECT TO PATENT RIGHTS HELD BY TCG MEMBERS (OR OTHER THIRD PARTIES) + THAT MAY BE NECESSARY TO IMPLEMENT THIS SPECIFICATION OR OTHERWISE. + Contact TCG Administration (admin@trustedcomputinggroup.org) for + information on specification licensing rights available through TCG + membership agreements. + + + + + + THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO EXPRESS OR IMPLIED + WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR + FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, COMPLETENESS, OR + NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS, OR ANY WARRANTY + OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. + + + + + + Without limitation, TCG and its members and licensors disclaim all + liability, including liability for infringement of any proprietary + rights, relating to use of information in this specification and to the + implementation of this specification, and TCG disclaims all liability for + cost of procurement of substitute goods or services, lost profits, loss + of use, loss of data or any incidental, consequential, direct, indirect, + or special damages, whether under contract, tort, warranty or otherwise, + arising in any way out of use or reliance upon this specification or any + information herein. + + + + + + + + + +
+ +
diff --git a/doc/manual/en_US/user_Troubleshooting.xml b/doc/manual/en_US/user_Troubleshooting.xml new file mode 100644 index 00000000..f7e4695d --- /dev/null +++ b/doc/manual/en_US/user_Troubleshooting.xml @@ -0,0 +1,1916 @@ + + + +%all.entities; +]> + + + Troubleshooting + + + This chapter provides answers to commonly asked questions. In order + to improve your user experience with &product-name;, it is + recommended to read this section to learn more about common pitfalls + and get recommendations on how to use the product. + + + + + Procedures and Tools + + + + Categorizing and Isolating Problems + + + More often than not, a virtualized guest behaves like a physical + system. Any problems that a physical machine would encounter, a + virtual machine will encounter as well. If, for example, + Internet connectivity is lost due to external issues, virtual + machines will be affected just as much as physical ones. + + + + If a true &product-name; problem is encountered, it helps to + categorize and isolate the problem first. Here are some of the + questions that should be answered before reporting a problem: + + + + + + + Is the problem specific to a certain guest OS? Or a specific + release of a guest OS? Especially with Linux guest related + problems, the issue may be specific to a certain + distribution and version of Linux. + + + + + + Is the problem specific to a certain host OS? Problems are + usually not host OS specific, because most of the + &product-name; code base is shared across all supported + platforms, but especially in the areas of networking and USB + support, there are significant differences between host + platforms. Some GUI related issues are also host specific. + + + + + + Is the problem specific to certain host hardware? This + category of issues is typically related to the host CPU. + Because of significant differences between VT-x and AMD-V, + problems may be specific to one or the other technology. The + exact CPU model may also make a difference because different + CPUs support different features, which may affect certain + aspects of guest CPU operation. + + + + + + Is the problem specific to guest SMP? That is, is it related + to the number of virtual CPUs (VCPUs) in the guest? Using + more than one CPU usually significantly affects the internal + operation of a guest OS. + + + + + + Is the problem specific to the Guest Additions? In some + cases, this is obvious, such as a shared folders problem. In + other cases such as display problems, it may be less + obvious. If the problem is Guest Additions specific, is it + also specific to a certain version of the Guest Additions? + + + + + + Is the problem specific to a certain environment? Some + problems are related to a particular environment external to + the VM. This usually involves network setup. Certain + configurations of external servers such as DHCP or PXE may + expose problems which do not occur with other, similar + servers. + + + + + + Is the problem a regression? Knowing that an issue is a + regression usually makes it significantly easier to find the + solution. In this case, it is crucial to know which version + is affected and which is not. + + + + + + + + + + Collecting Debugging Information + + + For problem determination, it is often important to collect + debugging information which can be analyzed by &product-name; + support. This section contains information about what kind of + information can be obtained. + + + + Every time &product-name; starts up a VM, a so-called + release log file is created, containing + lots of information about the VM configuration and runtime + events. The log file is called VBox.log and + resides in the VM log file folder, which is + $HOME/VirtualBox + VMs/VM-name/Logs by + default. + + + + When starting a VM, the configuration file of the last run will + be renamed to .1, up to + .3. Sometimes when there is a problem, it + is useful to have a look at the logs. Also when requesting + support for &product-name;, supplying the corresponding log file + is mandatory. + + + + For convenience, for each virtual machine, &vbox-mgr; can show + these logs in a window. Select a virtual machine from the + machine list on the left and click + Logs in the machine tools menu. + + + + The release log file, VBox.log, contains a + wealth of diagnostic information, such as Host OS type and + version, &product-name; version and build. It also includes a + complete dump of the guest's configuration (CFGM), detailed + information about the host CPU type and supported features, + whether hardware virtualization is enabled, information about + VT-x/AMD-V setup, state transitions (such as creating, running, + paused, stopping), guest BIOS messages, Guest Additions + messages, device-specific log entries and, at the end of + execution, final guest state and condensed statistics. + + + + In case of crashes, it is very important to collect + crash dumps. This is true for both host and + guest crashes. For information about enabling core dumps on + Linux, Oracle Solaris, and macOS systems, refer to the following + core dump article on the &product-name; website: + + + + . + + + + You can also use VBoxManage debugvm to create + a dump of a complete virtual machine. See + . + + + + For network related problems, it is often helpful to capture a + trace of network traffic. If the traffic is routed through an + adapter on the host, it is possible to use Wireshark or a + similar tool to capture the traffic there. However, this often + also includes a lot of traffic unrelated to the VM. + + + + &product-name; provides an ability to capture network traffic + only on a specific VM's network adapter. Refer to the following + network tracing article on the &product-name; website for + information on enabling this capture: + + + + . + + + + The trace files created by &product-name; are in + .pcap format and can be easily analyzed + with Wireshark. + + + + + + + Using the VBoxBugReport Command to Collect Debug Information + Automatically + + + The VBoxBugReport command is used to collect + debug information automatically for an &product-name; + installation. This command can be useful when you need to gather + information to send to Oracle Support. + + + + The following examples show how to use + VBoxBugReport. + + + + By default, the command collects VBoxSVC + process logs, device settings, and global configuration data for + an &product-name; host. + + +$ VBoxBugReport + ... + 0% - collecting VBoxSVC.log.10... + 7% - collecting VBoxSVC.log.9... + ... + 64% - collecting VBoxSVC.log.1... + 71% - collecting VBoxSVC.log... + 78% - collecting VirtualBox.xml... + 85% - collecting HostUsbDevices... + 92% - collecting HostUsbFilters... +100% - compressing... + +Report was written to '2019-03-26-13-32-02-bugreport.tgz' + + + The results are saved as a compressed tar file archive in the + same directory where the command is run. + + + + To specify a different output file location: + + +$ VBoxBugReport --output ~/debug/bug004.tgz + + + To output all debug information to a single text file, rather + than a tgz file: + + +$ VBoxBugReport --text + + + To collect information for a specific VM, called + Windows_10: + + +$ VBoxBugReport Windows_10 + + + This command collects machine settings, guest properties, and + log files for the specified VM. Global configuration information + for the host is also included. + + + + To collect information for several VMs, called + Windows_7, Windows_8, and + Windows_10: + + +$ VBoxBugReport Windows_7 Windows_8 Windows_10 + + + To collect information for all VMs: + + +$ VBoxBugReport --all + + + To show a full list of the available command options, run + VBoxBugReport --help. + + + + + + + The Built-In VM Debugger + + + &product-name; includes a built-in VM debugger, which advanced + users may find useful. This debugger enables you to examine and, + to some extent, control the VM state. + + + + + Use the VM debugger at your own risk. There is no support for + it, and the following documentation is only made available for + advanced users with a very high level of familiarity with the + x86/AMD64 machine instruction set, as well as detailed + knowledge of the PC architecture. A degree of familiarity with + the internals of the guest OS in question may also be very + helpful. + + + + + The VM debugger is available in all regular production versions + of &product-name;, but it is disabled by default because the + average user will have little use for it. There are two ways to + access the debugger: + + + + + + + Using a debugger console window displayed alongside the VM + + + + + + Using the telnet protocol on port 5000 + + + + + + + The debugger can be enabled in the following ways: + + + + + + + Start the VM directly using VirtualBoxVM + --startvm, with an additional + , , or + argument. See the + VirtualBoxVM --help command usage help + for details. + + + + + + Set the VBOX_GUI_DBG_ENABLED or + VBOX_GUI_DBG_AUTO_SHOW environment + variable to true before launching the + &product-name; process. Setting these variables, only their + presence is checked, is effective even when the first + &product-name; process is the VM selector window. VMs + subsequently launched from the selector will have the + debugger enabled. + + + + + + Set the GUI/Dbg/Enabled extra data item + to true before launching the VM. This can + be set globally or on a per VM basis. + + + + + + + A new Debug menu entry is added + to the &product-name; application. This menu enables the user to + open the debugger console. + + + + The VM debugger command syntax is loosely modeled on Microsoft + and IBM debuggers used on DOS, OS/2, and Windows. Users familiar + with symdeb, CodeView, or the OS/2 kernel debugger will find the + &product-name; VM debugger familiar. + + + + The most important command is help. This will + print brief usage help for all debugger commands. The set of + commands supported by the VM debugger changes frequently and the + help command is always up-to-date. + + + + A brief summary of frequently used commands is as follows: + + + + + + + stop: Stops the VM execution and enables + single stepping + + + + + + g: Continue VM execution + + + + + + t: Single step an instruction + + + + + + rg, rh, and + r: Print the guest, hypervisor, and + current registers + + + + + + kg, kh, and + k: Print the guest, hypervisor, and + current call stack + + + + + + da, db, + dw, dd, + dq: Print memory contents as ASCII, + bytes, words, dwords, and qwords + + + + + + u: Unassemble memory + + + + + + dg: Print the guest's GDT + + + + + + di: Print the guest's IDT + + + + + + dl: Print the guest's LDT + + + + + + dt: Print the guest's TSS + + + + + + dp*: Print the guest's page table + structures + + + + + + bp and br: Set a + normal and recompiler breakpoint + + + + + + bl: List breakpoints + + + + + + bc: Clear a breakpoint + + + + + + writecore: Write a VM core file to disk. + See + + + + + + + See the built-in help for other available + commands. + + + + The VM debugger supports symbolic debugging, although symbols + for guest code are often not available. For Oracle Solaris + guests, the detect command automatically + determines the guest OS version and locates kernel symbols in + guest's memory. Symbolic debugging is then available. For Linux + guests, the detect commands also determines + the guest OS version, but there are no symbols in the guest's + memory. Kernel symbols are available in the file + /proc/kallsyms on Linux guests. This file + must be copied to the host, for example using + scp. The loadmap debugger + command can be used to make the symbol information available to + the VM debugger. Note that the kallsyms + file contains the symbols for the currently loaded modules. If + the guest's configuration changes, the symbols will change as + well and must be updated. + + + + For all guests, a simple way to verify that the correct symbols + are loaded is the k command. The guest is + normally idling and it should be clear from the symbolic + information that the guest operating system's idle loop is being + executed. + + + + Another group of debugger commands is the set of + info commands. Running info + help provides complete usage information. The + information commands provide ad-hoc data pertinent to various + emulated devices and aspects of the VMM. There is no general + guideline for using the info commands, the + right command to use depends entirely on the problem being + investigated. Some of the info commands are + as follows: + + + + + + + cfgm: Print a branch of the configuration + tree + + + + + + cpuid: Display the guest CPUID leaves + + + + + + ioport: Print registered I/O port ranges + + + + + + mmio: Print registered MMIO ranges + + + + + + mode: Print the current paging mode + + + + + + pit: Print the i8254 PIT state + + + + + + pic: Print the i8259A PIC state + + + + + + ohci, ehci, + xhci: Print a subset of the OHCI, EHCI, + and xHCI USB controller state + + + + + + pcnet0: Print the PCnet state + + + + + + vgatext: Print the contents of the VGA + framebuffer formatted as standard text mode + + + + + + timers: Print all VM timers + + + + + + + The output of the info commands generally + requires in-depth knowledge of the emulated device or + &product-name; VMM internals. However, when used properly, the + information provided can be invaluable. + + + + + + + VM Core Format + + + &product-name; uses the 64-bit ELF format for its VM core files + created by VBoxManage debugvm, see + . The VM core file contain + the memory and CPU dumps of the VM and can be useful for + debugging your guest OS. The 64-bit ELF object format + specification can be obtained at: + + + + . + + + + The overall layout of the VM core format is as follows: + + +[ ELF 64 Header] +[ Program Header, type PT_NOTE ] + → offset to COREDESCRIPTOR +[ Program Header, type PT_LOAD ] - one for each contiguous physical memory range + → Memory offset of range + → File offset +[ Note Header, type NT_VBOXCORE ] +[ COREDESCRIPTOR ] + → Magic + → VM core file version + → VBox version + → Number of vCPUs etc. +[ Note Header, type NT_VBOXCPU ] - one for each vCPU +[ vCPU 1 Note Header ] + [ DBGFCORECPU - vCPU 1 dump ] +[ Additional Notes + Data ] - currently unused +[ Memory dump ] + + + The memory descriptors contain physical addresses relative to + the guest and not virtual addresses. Regions of memory such as + MMIO regions are not included in the core file. + + + + The relevant data structures and definitions can be found in the + &product-name; sources under the following header files: + include/VBox/dbgfcorefmt.h, + include/iprt/x86.h and + src/VBox/Runtime/include/internal/ldrELFCommon.h. + + + + The VM core file can be inspected using + elfdump and GNU readelf or + other similar utilities. + + + + + + + + + General Troubleshooting + + + + Guest Shows IDE/SATA Errors for File-Based Images on Slow Host File + System + + + Occasionally, some host file systems provide very poor writing + performance and as a consequence cause the guest to time out + IDE/SATA commands. This is normal behavior and should normally + cause no real problems, as the guest should repeat commands that + have timed out. However, guests such as some Linux versions have + severe problems if a write to an image file takes longer than + about 15 seconds. Some file systems however require more than a + minute to complete a single write, if the host cache contains a + large amount of data that needs to be written. + + + + The symptom for this problem is that the guest can no longer + access its files during large write or copying operations, + usually leading to an immediate hang of the guest. + + + + In order to work around this problem, the true fix is to use a + faster file system that does not exhibit such unacceptable write + performance, it is possible to flush the image file after a + certain amount of data has been written. This interval is + normally infinite, but can be configured individually for each + disk of a VM. + + + + For IDE disks use the following command: + + +VBoxManage setextradata VM-name +"VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/FlushInterval" [b] + + + For SATA disks use the following command: + + +VBoxManage setextradata VM-name +"VBoxInternal/Devices/ahci/0/LUN#[x]/Config/FlushInterval" [b] + + + [x] specifies the + disk. For IDE, 0 represents device 0 on the + primary channel, 1 represents device 1 on the + primary channel, 2 represents device 0 on the + secondary channel, and 3 represents device 1 + on the secondary channel. For SATA, use values between + 0 and 29. This + configuration option applies to disks only. Do not use this + option for CD or DVD drives. + + + + The unit of the interval + ([b]) is the + number of bytes written since the last flush. The value for it + must be selected so that the occasional long write delays do not + occur. Since the proper flush interval depends on the + performance of the host and the host filesystem, finding the + optimal value that makes the problem disappear requires some + experimentation. Values between 1000000 and 10000000 (1 to 10 + megabytes) are a good starting point. Decreasing the interval + both decreases the probability of the problem and the write + performance of the guest. Setting the value unnecessarily low + will cost performance without providing any benefits. An + interval of 1 will cause a flush for each write operation and + should solve the problem in any case, but has a severe write + performance penalty. + + + + Providing a value of 0 for + [b] is treated as + an infinite flush interval, effectively disabling this + workaround. Removing the extra data key by specifying no value + for [b] has the + same effect. + + + + + + + Responding to Guest IDE/SATA Flush Requests + + + If desired, the virtual disk images can be flushed when the + guest issues the IDE FLUSH CACHE command. Normally these + requests are ignored for improved performance. The parameters + below are only accepted for disk drives. They must not be set + for DVD drives. + + + + To enable flushing for IDE disks, issue the following command: + + +$ VBoxManage setextradata VM-name "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/IgnoreFlush" 0 + + + [x] specifies the + disk. Enter 0 for device 0 on the primary + channel, 1 for device 1 on the primary + channel, 2 for device 0 on the secondary + channel, or 3 for device 1 on the secondary + channel. + + + + To enable flushing for SATA disks, issue the following command: + + +$ VBoxManage setextradata VM-name "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush" 0 + + + The value [x] that selects the disk can be a value between 0 and + 29. + + + + Note that this does not affect the flushes performed according + to the configuration described in + . Restoring the + default of ignoring flush commands is possible by setting the + value to 1 or by removing the key. + + + + + + + Performance Variation with Frequency Boosting + + + Many multicore processors support some form of frequency + boosting, which means that if only one core is utilized, it can + run possibly 50% faster or even more than the rated CPU + frequency. This causes measured performance to vary somewhat as + a function of the momentary overall system load. The exact + behavior depends strongly on the specific processor model. + + + + As a consequence, benchmarking on systems which utilize + frequency boosting may produce unstable and non-repeatable + results. This is especially true if benchmark runs are short, of + the order of seconds. To obtain stable results, benchmarks must + be run over longer periods of time and with a constant system + load apart from the VM being tested. + + + + + + + Frequency Scaling Effect on CPU Usage + + + On some hardware platforms and operating systems, CPU frequency + scaling may cause CPU usage reporting to be highly misleading. + This happens in situations when the host CPU load is significant + but not heavy, such as between 15% to 30% of the maximum. + + + + Most operating systems determine CPU usage in terms of time + spent, measuring for example how many nanoseconds the systems or + a process was active within one second. However, in order to + save energy, systems can significantly scale down CPU speed when + the system is not fully loaded. When the CPU is running at for + example one half of its maximum speed, the same number of + instructions will take roughly twice as long to execute compared + to running at full speed. + + + + Depending on the specific hardware and host OS, this effect can + very significantly skew the CPU usage reported by the OS. The + reported CPU usage can be several times higher than what it + would have been had the CPU been running at full speed. The + effect can be observed both on the host OS and in a guest OS. + + + + + + + Inaccurate Windows CPU Usage Reporting + + + CPU usage reporting tools which come with Windows, such as Task + Manager or Resource Monitor, do not take the time spent + processing hardware interrupts into account. If the interrupt + load is heavy, with thousands of interrupts per second, CPU + usage may be significantly underreported. + + + + This problem affects Windows as both host and guest OS. + Sysinternals tools, such as Process Explorer, do not suffer from + this problem. + + + + + + + Poor Performance Caused by Host Power Management + + + On some hardware platforms and operating systems, virtualization + performance is negatively affected by host CPU power management. + The symptoms may be choppy audio in the guest or erratic guest + clock behavior. + + + + Some of the problems may be caused by firmware and/or host + operating system bugs. Therefore, updating the firmware and + applying operating systems fixes is recommended. + + + + For optimal virtualization performance, the C1E power state + support in the system's BIOS should be disabled, if such a + setting is available. Not all systems support the C1E power + state. On Intel systems, the Intel C State + setting should be disabled. Disabling other power management + settings may also improve performance. However, a balance + between performance and power consumption must always be + considered. + + + + + + + GUI: 2D Video Acceleration Option is Grayed Out + + + To use 2D Video Acceleration within &product-name;, your host's + video card should support certain OpenGL extensions. On startup, + &product-name; checks for those extensions, and, if the test + fails, this option is silently grayed out. + + + + To find out why it has failed, you can manually execute the + following command: + + +$ VBoxTestOGL --log "log_file_name" --test 2D + + + It will list the required OpenGL extensions one by one and will + show you which one failed the test. This usually means that you + are running an outdated or misconfigured OpenGL driver on your + host. It can also mean that your video chip is lacking required + functionality. + + + + + + + + + Windows Guests + + + + No USB 3.0 Support in Windows 7 Guests + + + If a Windows 7 or Windows Server 2008 R2 guest is configured for + USB 3.0 (xHCI) support, the guest OS will not have any USB + support at all. This happens because Windows 7 predates USB 3.0 + and therefore does not ship with any xHCI drivers. Microsoft + also does not offer any vendor-provided xHCI drivers through + Windows Update. + + + + To solve this problem, it is necessary to download and install + the Intel xHCI driver in the guest. Intel offers the driver as + the USB 3.0 eXtensible Host Controller (xHCI) driver for Intel 7 + Series/C216 chipsets. + + + + Note that the driver only supports Windows 7 and Windows Server + 2008 R2. The driver package includes support for both 32-bit and + 64-bit OS variants. + + + + + + + Windows Bluescreens After Changing VM Configuration + + + Changing certain virtual machine settings can cause Windows + guests to fail during start up with a bluescreen. This may + happen if you change VM settings after installing Windows, or if + you copy a disk image with an already installed Windows to a + newly created VM which has settings that differ from the + original machine. + + + + This applies in particular to the following settings: + + + + + + + The ACPI and I/O APIC settings should never be changed after + installing Windows. Depending on the presence of these + hardware features, the Windows installation program chooses + special kernel and device driver versions and will fail to + startup should these hardware features be removed. Enabling + them for a Windows VM which was installed without them does + not cause any harm. However, Windows will not use these + features in this case. + + + + + + Changing the storage controller hardware will cause bootup + failures as well. This might also apply to you if you copy a + disk image from an older version of &product-name; to a new + virtual machine. The default subtype of IDE controller + hardware used by &product-name; is PIIX4. Make sure that the + storage controller settings are identical. + + + + + + + + + + Windows 0x101 Bluescreens with SMP Enabled (IPI Timeout) + + + If a VM is configured to have more than one processor + (symmetrical multiprocessing, SMP), some configurations of + Windows guests crash with an 0x101 error message, indicating a + timeout for interprocessor interrupts (IPIs). These interrupts + synchronize memory management between processors. + + + + According to Microsoft, this is due to a race condition in + Windows. A hotfix is available from Microsoft. + + + + If this does not help, please reduce the number of virtual + processors to 1. + + + + + + + Windows 2000 Installation Failures + + + When installing Windows 2000 guests, you might run into one of + the following issues: + + + + + + + Installation reboots, usually during component registration. + + + + + + Installation fills the whole hard disk with empty log files. + + + + + + Installation complains about a failure installing + msgina.dll. + + + + + + + These problems are all caused by a bug in the hard disk driver + of Windows 2000. After issuing a hard disk request, there is a + race condition in the Windows driver code which leads to + corruption if the operation completes too fast. For example, the + hardware interrupt from the IDE controller arrives too soon. + With physical hardware, there is a guaranteed delay in most + systems so the problem is usually hidden there. However, it + should be possible to also reproduce it on physical hardware. In + a virtual environment, it is possible for the operation to be + done immediately, especially on very fast systems with multiple + CPUs, and the interrupt is signaled sooner than on a physical + system. The solution is to introduce an artificial delay before + delivering such interrupts. This delay can be configured for a + VM using the following command: + + +$ VBoxManage setextradata VM-name "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1 + + + This sets the delay to one millisecond. In case this does not + help, increase it to a value between 1 and 5 milliseconds. + Please note that this slows down disk performance. After + installation, you should be able to remove the key, or set it to + 0. + + + + + + + How to Record Bluescreen Information from Windows Guests + + + When Windows guests run into a kernel crash, they display a + bluescreen error. Depending on how Windows is configured, the + information will remain on the screen until the machine is + restarted or it will reboot automatically. During installation, + Windows is usually configured to reboot automatically. With + automatic reboots, there is no chance to record the bluescreen + information which might be important for problem determination. + + + + &product-name; provides a method of halting a guest when it + wants to perform a reset. In order to enable this feature, use + the following command: + + +$ VBoxManage setextradata VM-name "VBoxInternal/PDM/HaltOnReset" 1 + + + + + + No Networking in Windows Vista Guests + + + With Windows Vista, Microsoft dropped support for the AMD PCNet + card that legacy versions of &product-name; used to provide as + the default virtual network card. For Windows Vista guests, + &product-name; now uses an Intel E1000 card by default. + + + + If, for some reason, you still want to use the AMD card, you + need to download the PCNet driver from the AMD website. This + driver is available for 32-bit Windows only. You can transfer it + into the virtual machine using a shared folder. See + . + + + + + + + Windows Guests may Cause a High CPU Load + + + Several background applications of Windows guests, especially + virus scanners, are known to increase the CPU load notably even + if the guest appears to be idle. We recommend to deactivate + virus scanners within virtualized guests if possible. + + + + + + + Long Delays When Accessing Shared Folders + + + The performance for accesses to shared folders from a Windows + guest might be decreased due to delays during the resolution of + the &product-name; shared folders name service. To fix these + delays, add the following entries to the file + \windows\system32\drivers\etc\lmhosts of + the Windows guest: + + +255.255.255.255 VBOXSVR #PRE +255.255.255.255 VBOXSRV #PRE + + + After doing this change, a reboot of the guest is required. + + + + + + + USB Tablet Coordinates Wrong in Windows 98 Guests + + + If a Windows 98 VM is configured to use the emulated USB tablet + (absolute pointing device), the coordinate translation may be + incorrect and the pointer is restricted to the upper left + quarter of the guest's screen. + + + + The USB HID (Human Interface Device) drivers in Windows 98 are + very old and do not handle tablets in the same way as modern + operating systems do. To work around the problem, use the + following command: + + +$ VBoxManage setextradata VM-name "VBoxInternal/USB/HidMouse/0/Config/CoordShift" 0 + + + To restore the default behavior, remove the key or set its value + to 1. + + + + + + + Windows Guests are Removed From an Active Directory Domain After + Restoring a Snapshot + + + If a Windows guest is a member of an Active Directory domain and + the snapshot feature of &product-name; is used, it could be + removed from the Active Direcory domain after you restore an + older snapshot. + + + + This is caused by automatic machine password changes performed + by Windows at regular intervals for security purposes. You can + disable this feature as shown in the following article from + Microsoft: + . + + + + + + + Windows 3.x Limited to 64 MB RAM + + + Windows 3.x guests are typically limited to 64 MB RAM, even if a + VM is assigned much more memory. While Windows 3.1 is + theoretically capable of using up to 512 MB RAM, it only uses + memory available through the XMS interface. Versions of + HIMEM.SYS, the Microsoft XMS manager, shipped with MS-DOS and + Microsoft Windows 3.x can only use up to 64 MB on standard PCs. + + + + This is a known HIMEM.SYS limitation. Windows 3.1 memory limits + are described in detail in Microsoft Knowledge base article KB + 84388. + + + + It is possible for Windows 3.x guests to utilize more than 64 MB + RAM if a different XMS provider is used. That could be a newer + HIMEM.SYS version, such as that shipped with Windows 98, or a + more capable third-party memory manager, such as QEMM. + + + + + + + + + Linux and X11 Guests + + + + Linux Guests May Cause a High CPU load + + + Some Linux guests may cause a high CPU load even if the guest + system appears to be idle. This can be caused by a high timer + frequency of the guest kernel. Some Linux distributions, for + example Fedora, ship a Linux kernel configured for a timer + frequency of 1000Hz. We recommend to recompile the guest kernel + and to select a timer frequency of 100Hz. + + + + Linux kernels shipped with Red Hat Enterprise Linux, as well as + kernels of related Linux distributions, such as CentOS and + Oracle Linux, support a kernel parameter + divider=N. Hence, such kernels support a + lower timer frequency without recompilation. We suggest you add + the kernel parameter divider=10 to select a + guest kernel timer frequency of 100Hz. + + + + + + + Buggy Linux 2.6 Kernel Versions + + + The following bugs in Linux kernels prevent them from executing + correctly in &product-name;, causing VM boot crashes: + + + + + + + The Linux kernel version 2.6.18, and some 2.6.17 versions, + introduced a race condition that can cause boot crashes in + &product-name;. Please use a kernel version 2.6.19 or later. + + + + + + With hardware virtualization and the I/O APIC enabled, + kernels before 2.6.24-rc6 may panic on boot with the + following message: + + +Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with +apic=debug and send a report. Then try booting with the 'noapic' option + + + If you see this message, either disable hardware + virtualization or the I/O APIC as described in + , or upgrade the guest to + a newer kernel. + + + + See + + for details about the kernel fix. + + + + + + + + + + Shared Clipboard, Auto-Resizing, and Seamless Desktop in X11 Guests + + + Guest desktop services in guests running the X11 window system + such as Oracle Solaris and Linux, are provided by a guest + service called VBoxClient, which runs under + the ID of the user who started the desktop session and is + automatically started using the following command lines when + your X11 user session is started if you are using a common + desktop environment such as Gnome or KDE. + + +$ VBoxClient --clipboard +$ VBoxClient --display +$ VBoxClient --seamless + + + If a particular desktop service is not working correctly, it is + worth checking whether the process which should provide it is + running. + + + + The VBoxClient processes create files in the + user's home directory with names of the form + .vboxclient-*.pid when they are running in + order to prevent a given service from being started twice. It + can happen due to misconfiguration that these files are created + owned by root and not deleted when the services are stopped, + which will prevent them from being started in future sessions. + If the services cannot be started, you may wish to check whether + these files still exist. + + + + + + + + + Oracle Solaris Guests + + + + Certain Oracle Solaris 10 Releases May Take a Long Time to Boot with SMP + + + When using more than one CPU, Oracle Solaris 10 10/08, and + Oracle Solaris 10 5/09 may take a long time to boot and may + print warnings on the system console regarding failures to read + from disk. This is a bug in Oracle Solaris 10 which affects + specific physical and virtual configurations. It is caused by + trying to read microcode updates from the boot disk when the + disk interrupt is reassigned to a not yet fully initialized + secondary CPU. Disk reads will time out and fail, triggering + delays of about 45 seconds and warnings. + + + + The recommended solution is upgrading to at least Oracle Solaris + 10 10/09 which includes a fix for this problem. Alternative + solutions include restricting the number of virtual CPUs to one + or possibly using a different storage controller. + + + + + + + + + Windows Hosts + + + + Drag'n Drop not Working + + + Microsoft Windows uses technologies like UAC (User Account Control) and + UIPI (User Interface Privilege Isolation) to prevent and/or mitigate + security issues. By default, UAC and UIPI are enabled. + + + When a &product-name; VM process is running with a higher so-called + privilege level than another process that wants to interact with the + VM process via drag'n drop (or system clipboard), Windows prevents this + by default due to security reasons. This results in &product-name; not + being able to receive any Windows messages for drag'n drop. + + To make this work, the &product-name; VM process must be running with + the same (or lower) privilege level as the process its interacting with + using drag'n drop. + + Disabling UAC and/or UIPI is not recommended. + + + + + + + VBoxSVC Out-of-Process COM Server Issues + + + &product-name; makes use of the Microsoft Component Object Model + (COM) for interprocess and intraprocess communication. This + enables &product-name; to share a common configuration among + different virtual machine processes and provide several user + interface options based on a common architecture. All global + status information and configuration is maintained by the + process VBoxSVC.exe, which is an + out-of-process COM server. Whenever an &product-name; process is + started, it requests access to the COM server and Windows + automatically starts the process. Note that it should never be + started by the end user. + + + + When the last process disconnects from the COM server, it will + terminate itself after some seconds. The &product-name; + configuration XML files are maintained and owned by the COM + server and the files are locked whenever the server runs. + + + + In some cases, such as when a virtual machine is terminated + unexpectedly, the COM server will not notice that the client is + disconnected and stay active for a longer period of 10 minutes + or so, keeping the configuration files locked. In other rare + cases the COM server might experience an internal error and + subsequently other processes fail to initialize it. In these + situations, it is recommended to use the Windows task manager to + kill the process VBoxSVC.exe. + + + + + + + CD and DVD Changes Not Recognized + + + In case you have assigned a physical CD or DVD drive to a guest + and the guest does not notice when the medium changes, make sure + that the Windows media change notification (MCN) feature is not + turned off. This is represented by the following key in the + Windows registry: + + +HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdrom\Autorun + + + Certain applications may disable this key against Microsoft's + advice. If it is set to 0, change it to 1 and reboot your + system. &product-name; relies on Windows notifying it of media + changes. + + + + + + + Sluggish Response When Using Microsoft RDP Client + + + If connecting to a Virtual Machine using the Microsoft RDP + client, called a Remote Desktop Connection, there can be large + delays between input such as moving the mouse over a menu and + output. This is because this RDP client collects input for a + certain time before sending it to the RDP server. + + + + The interval can be decreased by setting a Windows registry key + to smaller values than the default of 100. The key does not + exist initially and must be of type DWORD. The unit for its + values is milliseconds. Values around 20 are suitable for + low-bandwidth connections between the RDP client and server. + Values around 4 can be used for a gigabit Ethernet connection. + Generally values below 10 achieve a performance that is very + close to that of the local input devices and screen of the host + on which the Virtual Machine is running. + + + + Depending whether the setting should be changed for an + individual user or for the system, set either of the following. + + +HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Min Send Interval + +HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\Min Send Interval + + + + + + Running an iSCSI Initiator and Target on a Single System + + + Deadlocks can occur on a Windows host when attempting to access + an iSCSI target running in a guest virtual machine with an iSCSI + initiator, such as a Microsoft iSCSI Initiator, that is running + on the host. This is caused by a flaw in the Windows cache + manager component, and causes sluggish host system response for + several minutes, followed by a "Delayed Write Failed" error + message in the system tray or in a separate message window. The + guest is blocked during that period and may show error messages + or become unstable. + + + + Setting the VBOX_DISABLE_HOST_DISK_CACHE + environment variable to 1 enables a + workaround for this problem until Microsoft addresses the issue. + For example, open a command prompt window and start + &product-name; like this: + + +set VBOX_DISABLE_HOST_DISK_CACHE=1 +VirtualBox + + + While this will decrease guest disk performance, especially + writes, it does not affect the performance of other applications + running on the host. + + + + + + + Bridged Networking Adapters Missing + + + If no bridged adapters show up in the + Networking section of the VM + settings, this typically means that the bridged networking + driver was not installed properly on your host. This could be + due to the following reasons: + + + + + + + The maximum allowed filter count was reached on the host. In + this case, the MSI log would mention the + 0x8004a029 error code returned on NetFlt + network component install, as follows: + + +VBoxNetCfgWinInstallComponent: Install failed, hr (0x8004a029) + + + You can try to increase the maximum filter count in the + Windows registry using the following key: + + +HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters + + + The maximum number allowed is 14. After a reboot, try to + reinstall &product-name;. + + + + + + The INF cache is corrupt. In this case, the install log at + %windir%\inf\setupapi.dev.log would + typically mention the failure to find a suitable driver + package for either the sun_VBoxNetFlt or + sun_VBoxNetFltmp components. The solution + then is to uninstall &product-name;, remove the INF cache + (%windir%\inf\INFCACHE.1), reboot and + try to reinstall &product-name;. + + + + + + + + + + Host-Only Networking Adapters Cannot be Created + + + If a host-only adapter cannot be created, either with the + &vbox-mgr; or the VBoxManage command, then + the INF cache is probably corrupt. In this case, the install log + at %windir%\inf\setupapi.dev.log would + typically mention the failure to find a suitable driver package + for the sun_VBoxNetAdp component. Again, as + with the bridged networking problem described above, the + solution is to uninstall &product-name;, remove the INF cache + (%windir%\inf\INFCACHE.1), reboot and try + to reinstall &product-name;. + + + + + + + + + Linux Hosts + + + + Linux Kernel Module Refuses to Load + + + If the &product-name; kernel module, vboxdrv, + refuses to load you may see an Error inserting vboxdrv: + Invalid argument message. As root, check the output of + the dmesg command to find out why the load + failed. Most probably the kernel disagrees with the version of + gcc used to compile the module. Make sure + that you use the same compiler that was used to build the + kernel. + + + + + + + Linux Host CD/DVD or Floppy Disk Drive Not Found + + + If you have configured a virtual machine to use the host's CD or + DVD drive or floppy disk drive, but this does not appear to + work, make sure that the current user has permission to access + the corresponding Linux device file. For example, for a CD or + DVD drive this may be /dev/hdc, + /dev/scd0, /dev/cdrom + or similar. On most distributions, the user must be added to a + corresponding group, usually called cdrom or + cdrw or floppy. + + + + On supported Linux distributions, &product-name; uses + udev to locate hardware such as CD/DVD drives + and floppy disk drives. + + + + + + + Strange Guest IDE Error Messages When Writing to CD or DVD + + + If the experimental CD or DVD writer support is enabled with an + incorrect host or guest configuration, it is possible that any + attempt to access the CD or DVD writer fails and simply results + in guest kernel error messages for Linux guests or application + error messages for Windows guests. &product-name; performs the + usual consistency checks when a VM is powered up. In particular, + it aborts with an error message if the device for the CD or DVD + writer is not writable by the user starting the VM. But + &product-name; cannot detect all misconfigurations. The + necessary host and guest OS configuration is not specific for + &product-name;, but a few frequent problems are listed here + which occurred in connection with &product-name;. + + + + Special care must be taken to use the correct device. The + configured host CD or DVD device file name, in most cases + /dev/cdrom, must point to the device that + allows writing to the CD or DVD unit. For CD or DVD writer units + connected to a SCSI controller or to a IDE controller that + interfaces to the Linux SCSI subsystem, common for some SATA + controllers, this must refer to the SCSI device node, such as + /dev/scd0. Even for IDE CD or DVD writer + units this must refer to the appropriate SCSI CD-ROM device + node, such as /dev/scd0, if the + ide-scsi kernel module is loaded. This module + is required for CD or DVD writer support with some early 2.6 + kernels. Many Linux distributions load this module whenever a CD + or DVD writer is detected in the system, even if the kernel + would support CD or DVD writers without the module. + &product-name; supports the use of IDE device files, such as + /dev/hdc, provided the kernel supports this + and the ide-scsi module is not loaded. + + + + Similar rules, except that within the guest the CD or DVD writer + is always an IDE device, apply to the guest configuration. Since + this setup is very common, it is likely that the default + configuration of the guest works as expected. + + + + + + + VBoxSVC IPC Issues + + + On Linux, &product-name; makes use of a custom version of + Mozilla XPCOM (cross platform component object model) for + interprocess and intraprocess communication (IPC). The process + VBoxSVC serves as a communication hub between + different &product-name; processes and maintains the global + configuration, such as the XML database. When starting an + &product-name; component, the processes + VBoxSVC and VBoxXPCOMIPCD + are started automatically. They are only accessible from the + user account they are running under. VBoxSVC + owns the &product-name; configuration database which normally + resides in ~/.config/VirtualBox, or the + appropriate configuration directory for your operating system. + While it is running, the configuration files are locked. + Communication between the various &product-name; components and + VBoxSVC is performed through a local domain + socket residing in + /tmp/.vbox-username-ipc. + In case there are communication problems, such as an + &product-name; application cannot communicate with + VBoxSVC, terminate the daemons and remove the + local domain socket directory. + + + + + + + USB Not Working + + + If USB is not working on your Linux host, make sure that the + current user is a member of the vboxusers + group. Please keep in mind that group membership does not take + effect immediately but rather at the next login. If available, + the newgrp command may avoid the need for a + logout and login. + + + + + + + PAX/grsec Kernels + + + Linux kernels including the grsec patch, see + , and derivates have + to disable PAX_MPROTECT for the VBox binaries + to be able to start a VM. The reason is that &product-name; has + to create executable code on anonymous memory. + + + + + + + Linux Kernel vmalloc Pool Exhausted + + + When running a large number of VMs with a lot of RAM on a Linux + system, say 20 VMs with 1 GB of RAM each, additional VMs might + fail to start with a kernel error saying that the vmalloc pool + is exhausted and should be extended. The error message also + tells you to specify vmalloc=256MB in your + kernel parameter list. If adding this parameter to your GRUB or + LILO configuration makes the kernel fail to boot, with an error + message such as failed to mount the root + partition, then you have probably run into a memory + conflict of your kernel and initial RAM disk. This can be solved + by adding the following parameter to your GRUB configuration: + + +uppermem 524288 + + + + + + + + Oracle Solaris Hosts + + + + Cannot Start VM, Not Enough Contiguous Memory + + + The ZFS file system is known to use nearly all available RAM as + cache if the default system settings are not changed. This may + lead to a heavy fragmentation of the host memory preventing + &product-name; VMs from being started. We recommend to limit the + ZFS cache by adding the following line to + /etc/system, where + xxxx bytes is the amount of memory + usable for the ZFS cache. + + +set zfs:zfs_arc_max = xxxx + + + + + + diff --git a/doc/manual/en_US/user_VBoxManage.xml b/doc/manual/en_US/user_VBoxManage.xml new file mode 100644 index 00000000..5f9640a9 --- /dev/null +++ b/doc/manual/en_US/user_VBoxManage.xml @@ -0,0 +1,521 @@ + + + + +%all.entities; +]> + + + VBoxManage + + + + Introduction + + + As briefly mentioned in , + VBoxManage is the command-line interface to + &product-name;. With it, you can completely control &product-name; + from the command line of your host operating system. + VBoxManage supports all the features that the + graphical user interface gives you access to, but it supports a + lot more than that. It exposes all the features of the + virtualization engine, even those that cannot be accessed from the + GUI. + + + + You will need to use the command line if you want to do the + following: + + + + + + + Use a different user interface than the main GUI such as the + VBoxHeadless server. + + + + + + Control some of the more advanced and experimental + configuration settings for a VM. + + + + + + + There are two main things to keep in mind when using + VBoxManage. First, + VBoxManage must always be used with a specific + subcommand, such as list or + createvm or startvm. All the + subcommands that VBoxManage supports are + described in detail in . + + + + Second, most of these subcommands require that you specify a + particular virtual machine after the subcommand. There are two + ways you can do this: + + + + + + + You can specify the VM name, as it is shown in the + &product-name; GUI. Note that if that name contains spaces, + then you must enclose the entire name in double quotes. This + is always required with command line arguments that contain + spaces. For example: + + +VBoxManage startvm "Windows XP" + + + + + You can specify the UUID, which is the internal unique + identifier that &product-name; uses to refer to the virtual + machine. Assuming that the VM called "Windows XP" has the UUID + shown below, the following command has the same effect as the + previous example: + + +VBoxManage startvm 670e746d-abea-4ba6-ad02-2a3b043810a5 + + + + + + You can enter VBoxManage list vms to have all + currently registered VMs listed with all their settings, including + their respective names and UUIDs. + + + + Some typical examples of how to control &product-name; from the + command line are listed below: + + + + + + + To create a new virtual machine from the command line and + immediately register it with &product-name;, use + VBoxManage createvm with the + option, as follows: + + +$ VBoxManage createvm --name "SUSE 10.2" --register +VirtualBox Command Line Management Interface Version version-number +Copyright (C) 2005-2022 Oracle and/or its affiliates + +Virtual machine 'SUSE 10.2' is created. +UUID: c89fc351-8ec6-4f02-a048-57f4d25288e5 +Settings file: '/home/username/.config/VirtualBox/Machines/SUSE 10.2/SUSE 10.2.xml' + + + As can be seen from the above output, a new virtual machine + has been created with a new UUID and a new XML settings file. + + + + For more details, see + . + + + + + + To show the configuration of a particular VM, use + VBoxManage showvminfo. See + for details + and an example. + + + + + + To change settings while a VM is powered off, use + VBoxManage modifyvm. For example: + + +VBoxManage modifyvm "Windows XP" --memory 512 + + + See also . + + + + + + To change the storage configuration, such as to add a storage + controller and then a virtual disk, use VBoxManage + storagectl and VBoxManage + storageattach. See + and + . + + + + + + To control VM operation, use one of the following: + + + + + + + To start a VM that is currently powered off, use + VBoxManage startvm. See + . + + + + + + To pause or save a VM that is currently running or change + some of its settings, use VBoxManage + controlvm. See + . + + + + + + + + + + + + + Commands Overview + + + When running VBoxManage without parameters or + when supplying an invalid command line, the following command + syntax list is shown. Note that the output will be slightly + different depending on the host platform. If in doubt, check the + output of VBoxManage for the commands available + on your particular host. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Each time VBoxManage is invoked, only one + command can be executed. However, a command might support several + subcommands which then can be invoked in one single call. The + following sections provide detailed reference information on the + different commands. + + + + + + + + + General Options + + + + + + : Show the version of this tool + and exit. + + + + + + : Suppress the output of the logo + information. This option is useful for scripts. + + + + + + : Specifiy a settings password. + + + + + + : Specify a file containing + the settings password. + + + + + + + The settings password is used for certain settings which need to + be stored in encrypted form for security reasons. At the moment, + the only encrypted setting is the iSCSI initiator secret, see + . As long as no + settings password is specified, this information is stored in + plain text. After using the + option once, it + must be always used. Otherwise, the encrypted setting cannot be + unencrypted. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/manual/en_US/user_VirtualBoxAPI.xml b/doc/manual/en_US/user_VirtualBoxAPI.xml new file mode 100644 index 00000000..23e9e4a6 --- /dev/null +++ b/doc/manual/en_US/user_VirtualBoxAPI.xml @@ -0,0 +1,58 @@ + + + +%all.entities; +]> + + + &product-name; Programming Interfaces + + + &product-name; comes with comprehensive support for third-party + developers. The so-called Main API of + &product-name; exposes the entire feature set of the virtualization + engine. It is completely documented and available to anyone who + wishes to control &product-name; programmatically. + + + + The Main API is made available to C++ clients through COM on Windows + hosts or XPCOM on other hosts. Bridges also exist for SOAP, Java and + Python. + + + + All programming information such as documentation, reference + information, header and other interface files, as well as samples + have been split out to a separate Software + Development Kit (SDK). The SDK is available for download + from + . + In particular, the SDK comes with a Programming Guide and Reference + manual in PDF format. This manual contains, among other things, the + information that was previously in this chapter of the User Manual. + + + diff --git a/doc/manual/htmlhelp-qthelp.py b/doc/manual/htmlhelp-qthelp.py new file mode 100755 index 00000000..081d9ad5 --- /dev/null +++ b/doc/manual/htmlhelp-qthelp.py @@ -0,0 +1,281 @@ +#!/usr/bin/python3 + +# $Id: htmlhelp-qthelp.py $ +## @file +# A python script to create a .qhp file out of a given htmlhelp +# folder. Lots of things about the said folder is assumed. Please +# see the code and inlined comments. + +import sys, getopt +import os.path +import re +import codecs +import logging + +if sys.version_info >= (3, 0): + from html.parser import HTMLParser +else: + from HTMLParser import HTMLParser + + +__copyright__ = \ +""" +Copyright (C) 2006-2022 Oracle and/or its affiliates. + +This file is part of VirtualBox base platform packages, as +available from https://www.virtualbox.org. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation, in version 3 of the +License. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, see . + +SPDX-License-Identifier: GPL-3.0-only +""" + +# number of opened and not yet closed section tags of toc section +open_section_tags = 0 + +html_files = [] + +# use html_parser stuff to collect '] + for html_file_name in html_files: + full_html_path = os.path.join(folder, html_file_name) + file_content = codecs.open(full_html_path, encoding='iso-8859-1').read() + + class html_parser(HTMLParser): + def __init__(self): + HTMLParser.__init__(self) + self.a_tag=[] + def handle_starttag(self, tag, attributes): + if tag != 'div' and tag != 'a': + return + if tag == 'a': + for a in attributes: + if a[0] == 'name': + self.a_tag.append(a[1]) + + parser = html_parser() + parser.feed(file_content) + for k in parser.a_tag: + line = '' + keywords_section_lines.append(line); + keywords_section_lines.append('') + return keywords_section_lines + +# find the png files under /images folder and create a part of the +# qhelp project file with tags +def create_image_list(folder): + image_folder_name = 'images' + image_files_list = [] + # Look for 'images' sub folder + subdirs = [x[0] for x in os.walk(folder)] + full_folder_path = os.path.join(folder, image_folder_name) + if full_folder_path not in subdirs: + logging.error('Image subfolder "%s" is not found under "%s".', image_folder_name, folder) + return image_files_list; + png_files = [] + for f in os.listdir(full_folder_path): + png_files.append(image_folder_name + '/' + f) + image_files_list.append('images/' + f + '') + return image_files_list + +# open htmlhelp.hhp files and read the list of html files from there +def create_html_list(folder): + global html_files + file_name = 'htmlhelp.hhp' + html_file_lines = [] + if not file_name in os.listdir(folder): + logging.error('Could not find the file "%s" in "%s"', file_name, folder) + return html_file_lines + full_path = os.path.join(folder, 'htmlhelp.hhp') + file = codecs.open(full_path, encoding='iso-8859-1') + + lines = file.readlines() + file.close() + # first search for the [FILES] marker then collect .html lines + marker_found = 0 + for line in lines: + if '[FILES]' in line: + marker_found = 1 + continue + if marker_found == 0: + continue + if '.html' in line: + html_file_lines.append('' + line.strip('\n') + '') + html_files.append(line.strip('\n')) + return html_file_lines + + +def create_files_section(folder): + files_section_lines = [''] + files_section_lines += create_image_list(folder) + files_section_lines += create_html_list(folder) + files_section_lines.append('') + return files_section_lines + +def parse_param_tag(line): + label = 'value="' + start = line.find(label); + if start == -1: + return '' + start += len(label) + end = line.find('"', start) + if end == -1: + return ''; + return line[start:end] + +# look at next two lines. they are supposed to look like the following +# +# +# parse out value fields and return +# title="Oracle VM VirtualBox" ref="index.html +def parse_object_tag(lines, index): + result='' + if index + 2 > len(lines): + logging.warning('Not enough tags after this one "%s"',lines[index]) + return result + if not re.match(r'^\s*' + else: + logging.warning('Title or ref part is empty for the tag "%s"', lines[index]) + return result + +# parse any string other than staring with len(lines): + return '' + global open_section_tags + if open_section_tags <= 0: + return '' + # replace ' + elif re.match(r'^\s*' + return '' + +def parse_line(lines, index): + result='' + + # if the line starts with pairs is filtered out. we also assume < ..> are not nested +# and each < matches to a > +def create_toc(folder): + toc_file = 'toc.hhc' + content = [x[2] for x in os.walk(folder)] + if toc_file not in content[0]: + logging.error('Could not find toc file "%s" under "%s"', toc_file, folder) + return + full_path = os.path.join(folder, toc_file) + file = codecs.open(full_path, encoding='iso-8859-1') + content = file.read() + file.close() + # convert the file string into a list of tags there by eliminating whatever + # char reside outside of tags. + char_pos = 0 + tag_list = [] + while char_pos < len(content): + start = content.find('<', char_pos) + if start == -1: + break + end = content.find('>', start) + if end == -1 or end >= len(content) - 1: + break + char_pos = end + tag_list.append(content[start:end +1]) + + # # insert new line chars. to make sure each line includes at most one tag + # content = re.sub(r'>.*?<', r'>\n<', content) + # lines = content.split('\n') + toc_string_list = [''] + index = 0 + for tag in tag_list: + str = parse_line(tag_list, index) + if str: + toc_string_list.append(str) + index += 1 + toc_string_list.append('') + toc_string = '\n'.join(toc_string_list) + + return toc_string_list + +def usage(arg): + print('htmlhelp-qthelp.py -d -o ') + sys.exit() + +def main(argv): + helphtmlfolder = '' + output_filename = '' + try: + opts, args = getopt.getopt(sys.argv[1:],"hd:o:") + except getopt.GetoptError as err: + print(err) + usage(2) + for opt, arg in opts: + if opt == '-h': + usage(0) + elif opt in ("-d"): + helphtmlfolder = arg + elif opt in ("-o"): + output_filename = arg + + # check supplied helphtml folder argument + if not helphtmlfolder: + logging.error('No helphtml folder is provided. Exiting') + usage(2) + if not os.path.exists(helphtmlfolder): + logging.error('folder "%s" does not exist. Exiting', helphtmlfolder) + usage(2) + helphtmlfolder = os.path.normpath(helphtmlfolder) + + # check supplied output file name + if not output_filename: + logging.error('No filename for output is given. Exiting') + usage(2) + + out_xml_lines = ['', \ + '' , \ + 'org.virtualbox', \ + 'doc', \ + ''] + out_xml_lines += create_toc(helphtmlfolder) + create_files_section(helphtmlfolder) + out_xml_lines += create_keywords_section(helphtmlfolder) + out_xml_lines += ['', ''] + + out_file = open(output_filename, 'wb') + out_file.write('\n'.join(out_xml_lines).encode('utf8')) + out_file.close() + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/doc/manual/ru_RU/docbook-refentry-link-replacement-xsl-gen.xsl b/doc/manual/ru_RU/docbook-refentry-link-replacement-xsl-gen.xsl new file mode 100644 index 00000000..963c183c --- /dev/null +++ b/doc/manual/ru_RU/docbook-refentry-link-replacement-xsl-gen.xsl @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + diff --git a/doc/manual/ru_RU/docbook-refentry-to-C-help.xsl b/doc/manual/ru_RU/docbook-refentry-to-C-help.xsl new file mode 100644 index 00000000..6fb13de4 --- /dev/null +++ b/doc/manual/ru_RU/docbook-refentry-to-C-help.xsl @@ -0,0 +1,42 @@ + + + + + + + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-adoptstate.xml b/doc/manual/ru_RU/man_VBoxManage-adoptstate.xml new file mode 100644 index 00000000..90e212fb --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-adoptstate.xml @@ -0,0 +1,110 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage adoptstate + + + + VBoxManage-adoptstate + 1 + + + + VBoxManage-adoptstate + изменение состояния виртуальной машины на основе файла сохраненного состояния + &product-name; + + + + + + VBoxManage adoptstate + + uuid + имя-ВМ + + имя-файла-состояния + + + + + Описание + + Команда VBoxManage adoptstate позволяет изменить + состояние виртуальной машины (ВМ) на состояние, описываемое в файле + сохраненного состояния (.sav). Это действие + упоминается как ВМ, принимающая файл сохраненного + состояния. Файл сохраненного состояния должен быть отдельным от + конфигурации ВМ. + + + Когда ВМ запускается после данной команды, ВМ восстанавливает свое + состояние из указанного файла. + + + Используйте эту команду только для нестандартного развертывания ПО. + + + + uuid | имя-ВМ + + Указывает Универсальный Уникальный Идентификатор (UUID) или + имя ВМ. + + + + имя-файла-состояния + + Указывает имя файла сохраненного состояния. + + + + + + + Примеры + + + Следующая команда запускает ВМ с именем vm2, используя + файл сохраненного состояния с именем mystate.sav. + +$ VBoxManage adoptstate vm2 /home/user/mystate.sav + + + + Смотрите Также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-bandwidthctl.xml b/doc/manual/ru_RU/man_VBoxManage-bandwidthctl.xml new file mode 100644 index 00000000..98504965 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-bandwidthctl.xml @@ -0,0 +1,305 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage bandwidthctl + + + + VBoxManage-bandwidthctl + 1 + + + + VBoxManage-bandwidthctl + управление группами полосы пропускания + &product-name; + + + + + + VBoxManage bandwidthctl + + uuid + имя-ВМ + + add + имя-группы-полосы-пропускания + --limit=лимит-полосы-пропускания[k|m|g|K|M|G] + --type=disk|network + + + + VBoxManage bandwidthctl + + uuid + имя-ВМ + + list + --machinereadable + + + + VBoxManage bandwidthctl + + uuid + имя-ВМ + + remove + имя-группы-полосы-пропускания + + + + VBoxManage bandwidthctl + + uuid + имя-ВМ + + set + имя-группы-полосы-пропускания + --limit=лимит-полосы-пропускания[k|m|g|K|M|G] + + + + + Описание + + Команда VBoxManage bandwidthctl позволяет управлять + группами полосы пропускания для виртуальных машин (ВМ). Группа полосы + пропускания указывает лимит полосы пропускания для дисков или сетевых + адаптеров ВМ. + + + Обратите внимание, что лимит полосы пропускания сети применяется только + к исходящему траффику ВМ. Входящий траффик не ограничивается. + + + Создание группы полосы пропускания + + + Команда VBoxManage bandwidthctl add создает группу + полосы пропускания для указанной ВМ. Вы должны указать назначение + группы полосы пропускания: для дисков или сетей, а также указать + лимит полосы пропускания. + + + + uuid | имя-ВМ + + Указывает Универсальный Уникальный Идентификатор (UUID) или + имя ВМ. + + + + + + Указывает имя группы полосы пропускания. + + + + + + Указывает тип группы полосы пропускания: + disk и network. + Для дополнительной информации смотрите + или . + + + + + + Указывает лимит для группы полосы пропускания. По умолчанию, + указывается в мегабайтах в секунду. Можно изменить это значение + пока ВМ работает. + + Можно изменить единицы измерения, добавляя следующие спецификаторы + к лимиту полосы пропускания: + + + k – килобит в секунду + + + m – мегабит в секунду + + + g – гигабит в секунду + + + K – килобайт в секунду + + + M – мегабайт в секунду + + + G – гигабайт в секунду + + + + + + + Отображение групп полосы пропускания + + + Команда VBoxManage bandwidthctl list показывает + все группы полосы пропускания, определенные для указанной ВМ. + Используйте опцию для вывода + в машино-читаемом формате, который использует пары имя-значение. + + + + uuid | имя-ВМ + + Указывает UUID или имя ВМ. + + + + + + Выводит информацию о группах полосы пропускания в виде + пар имя-значение. + + + + + + Удаление группы полосы пропускания + + + Команда VBoxManage bandwidthctl remove удаляет + группу полосы пропускания. + + + + Для успешного удаления группы полосы пропускания, убедитесь + что она не ссылается на диск или адаптер работающей ВМ. + + + + + uuid | имя-ВМ + + Указывает UUID или имя ВМ. + + + + + + Указывает имя группы полосы пропускания. + + + + + + Изменение лимита группы полосы пропускания + + + Команда VBoxManage bandwidthctl set изменяет + лимит группы полосы пропускания. + + + + uuid | имя-ВМ + + Указывает UUID или имя ВМ. + + + + + + Указывает имя группы полосы пропускания. + + + + + + Указывает лимит для группы полосы пропускания. По умолчанию, + указывается в мегабайтах в секунду. Можно изменить это значение + пока ВМ работает. + + Можно изменить единицы измерения, добавляя следующие спецификаторы + к лимиту полосы пропускания: + + + k – килобит в секунду + + + m – мегабит в секунду + + + g – гигабит в секунду + + + K – килобайт в секунду + + + M – мегабайт в секунду + + + G – гигабайт в секунду + + + + + + + + + Примеры + + + Следующий пример показывает, как использовать команду + VBoxManage bandwidthctl для создания группы + полосы пропускания Limit с лимитом в 20 Мбит/с. + Затем используется команда VBoxManage modifyvm + для назначения этой группы первому и второму адаптерам ВМ + vm1. + +$ VBoxManage bandwidthctl "vm1" add Limit --type network --limit 20m +$ VBoxManage modifyvm "vm1" --nicbandwidthgroup1 Limit +$ VBoxManage modifyvm "vm1" --nicbandwidthgroup2 Limit + + Можно динамически менять лимит группы полосы пропускания пока + ВМ работает. Следующий пример показывает как изменить лимит + для группы полосы пропускания Limit с 20 + Мбит/с в 100 кбит/с: + +$ VBoxManage bandwidthctl "vm1" set Limit --limit 100k + + Следующая команда отключает ограничения для всех адаптеров в + группе полосы пропускания Limit путем установки + лимита в ноль (0): + +$ VBoxManage bandwidthctl "vm1" set Limit --limit 0 + + diff --git a/doc/manual/ru_RU/man_VBoxManage-checkmediumpwd.xml b/doc/manual/ru_RU/man_VBoxManage-checkmediumpwd.xml new file mode 100644 index 00000000..e0572e82 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-checkmediumpwd.xml @@ -0,0 +1,111 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage checkmediumpwd + + + + VBoxManage-checkmediumpwd + 1 + + + + VBoxManage-checkmediumpwd + проверка пароля носителя или образа диска, зашифрованного DEK + &product-name; + + + + + + VBoxManage checkmediumpwd + + uuid + имя-файла + + файл-с-паролем + + + + + Описание + + Команда VBoxManage checkmediumpwd проверяет + текущий пароль, используемый для шифрования носителя или образа + диска, зашифрованными DEK. Смотрите . + + + Ответ команды показывает корректен ли указанный пароль. + + + + uuid|имя-файла + + Задает Уникальный Универсальный Идентификатор (UUID) или + абсолютный путь к носителю или образу. + + + + файл-с-паролем + + Указывает идентификатор пароля для проверки. Идентификатор + пароля может быть указан через абсолютный путь к файлу, + содержащему пароль, или через дефис (-). + Во втором случае будет предложено ввести пароль. + + + + + + + Примеры + + + Следующий пример проверяет пароль шифрования у образа диска + с именем ol7u4-1.vdi. Идентификатор + пароля - это файл с именем pwfile. + + + Команда возвращает сообщение, показывающее что пароль корректен. + +$ VBoxManage checkmediumpwd "$HOME/VirtualBox VMs/ol7u4/ol7u4-1.vdi" /home/user/pwfile + Указанный пароль корректен + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-clonemedium.xml b/doc/manual/ru_RU/man_VBoxManage-clonemedium.xml new file mode 100644 index 00000000..32dd5f62 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-clonemedium.xml @@ -0,0 +1,214 @@ + + + + +%all.entities; +]> + + + $Date: 2022-10-06 17:22:35 +0200 (Thu, 06 Oct 2022) $ + VBoxManage clonemedium + + + + VBoxManage-clonemedium + 1 + + + + VBoxManage-clonemedium + создание клона носителя + &product-name; + + + + + + VBoxManage clonemedium + + uuid + носитель-источник + + + uuid + носитель-назначения + + + disk + dvd + floppy + + --existing + --format= + VDI + VMDK + VHD + RAW + другие + + --variant=Standard,Fixed,Split2G,Stream,ESX + + + + + Описание + + Команда VBoxManage clonemedium позволяет клонировать + существующий носитель (виртуальный диск, DVD, или флоппи). В основном, + это файл образа. Оригинальный образ от клонированного отличаются + только Уникальным Универсальным Идентификатором (UUID). + + + Можно использовать Менеджер Виртуальных Носителей для передачи + клонированного носителя на другой хост или импортировать его в &product-name;. + Смотрите и . + + + + uuid | носитель-источник + + Указывает UUID или абсолютное или относительное имя файла + носителя-источника для клонирования. UUID можно указать + только если он зарегистрирован. Используйте команду VBoxManage + list hdds для отображения зарегистрированных образов. + + + + uuid | носитель-назначения + + Указывает UUID или абсолютное или относительное имя файла + носителя назначения (клонированного носителя). UUID можно + указать только если он зарегистрирован. Используйте + команду VBoxManage list hdds для отображения + зарегистрированных образов. + + + + disk | dvd | floppy + + Указывает тип носителя для клонирования. Допустимые значения: + disk, dvd и + floppy. disk используется + по умолчанию. + + + + + + Производит операцию клонирования путем перезаписывания + носителя назначения. В результате записывается только + та часть носителя-источника, которая умещается в + существующий носитель назначения. + + Если носитель назначения меньше источника, копируется + только порция источника размером с носитель назначения. + + Если носитель назначения больше источника, оставшаяся + часть носителя назначения остается неизменной. + + + + + + Указывает формат файла носителя назначения, если он + отличается от источника. Допустимые значения: + VDI, VMDK, + VHD, RAW и + другие. + + Какие могут быть быть другие + форматы файлов? + + + + + + Указывает варианты формата файла носителя назначения, + указанные через запятую. Допустимы следующие значения: + + + Standard является типом образа диска + по умолчанию с динамически изменяемым размером файла. + + + Fixed использует образ диска + фиксированного размера. + + + Split2G показывает, что образ диска + делится на сегменты по 2 ГБ. Это значение только для + VMDK. + + + Stream оптимизирует образ диска + для загрузки. Это значение только для VMDK. + + + ESX используется на некоторых + продуктах VMWare. Это значение только для VMDK. + + + Заметим, что не все комбинации вариантов допустимы. + Указание неполного списка вариантов приводит к сообщению + об ошибке. + + + + + + Для совместимости с ранними версиями &product-name;, можно + использовать команды clonevdi и + clonehd вместо команды + clonemedium. + + + + + + Примеры + + + Следующая команда создает клон файла образа диска + disk01.vdi. Клон называется + disk02.vdi. + +$ VBoxManage clonemedium disk01.vdi disk02.vdi + + Следующая команда создает клон файла образа диска + disk01.vdi. Клон имеет формат + VMDK и называется disk02.vmdk. + +$ VBoxManage clonemedium disk01.vdi disk02.vmdk --format VMDK + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-clonevm.xml b/doc/manual/ru_RU/man_VBoxManage-clonevm.xml new file mode 100644 index 00000000..654429fa --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-clonevm.xml @@ -0,0 +1,270 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage clonevm + + + + VBoxManage-clonevm + 1 + + + + VBoxManage-clonevm + создание клона существующей виртуальной машины &product-name; + &product-name; + + + + + + VBoxManage clonevm + имя-ВМ|uuid + + --basefolder=основная-папка + + --groups=группа, + + + --mode=machine + --mode=machinechildren + --mode=all + + + --name=имя + + --options=опция, + + --register + + --snapshot=имя-снимка + + --uuid=uuid + + + + + Описание + + Команда VBoxManage clonevm создает клон существующей + виртуальной машины (ВМ). Клон может быть либо полной копией ВМ + либо связанной копией. + + + Вы должны указать имя или универсальный уникальный идентификатор + (UUID) клонируемой машины. + + + + + Командные операнды и опции + + Следующий список описывает операнды и опции, которые можно использовать + с командой VBoxManage clonevm: + + + + имя-ВМ|uuid + + Указывает имя или UUID клонируемой ВМ. + + + + + + Указывает имя папки, в которую сохраняется конфигурация + новой ВМ. + + + + + + Добавляет клон в группу или в группы. Несколько групп + указываются через запятую. + + Обратите внимание, что каждая группа идентифицируется по ID + группы, начинающийся с символа /, + поэтому группы могут быть вложенные. По умолчанию, клон + всегда добавляется в группу /. + + + + + + Указывает режим клонирования: + + + Режим machine клонирует + текущее состояние существующей ВМ без снимков. Это + режим по умолчанию. + + + Режим machineandchildren + клонирует снимок, указанный через опцию + , и все его дочерние + снимки. + + + Режим all клонирует + все снимки и текущее состояние существующей ВМ. + + + + + + + Указывает имя для новой ВМ. Значение по умолчанию - это + Копия исходное-имя, + где исходное-имя - это имя + исходной ВМ. + + + + + + Указывает как создать новый клон. + Аргумент может быть использован + несколько раз для указания нескольких опций или опции могут быть + указаны списком через запятую. Опции не чувствительны к регистру. + Распознаются следующие опции (не чувствительны к регистру): + + + + + Создает связанный клон только из снимка. + + + + + + Указывает, что новый клон использует MAC адреса + всех сетевых карт существующей ВМ. + + Если вы не укажете эту опцию или опцию + , то + МАС адреса каждой сетевой карты новой ВМ + инициализируются новыми значениями. + + + + + + Указывает, что новый клон использует MAC адреса + всех сетевых карт существующей ВМ, если используется + сеть типа NAT. + + Если вы не укажете эту опцию или опцию + , то МАС адреса каждой + сетевой карты новой ВМ инициализируются новыми значениями. + + + + + + Указывает, что новый клон использует те же имена + образов дисков что и существующая ВМ. По умолчанию + образы дисков переименовываются. + + + + + + Указывает, что новый клон использует идентификаторы + аппаратного обеспечения из существующей ВМ. По + умолчанию назначаются новые UUID. + + + + + + + + Автоматически регистрирует новый клон в &product-name;. + Позже можно зарегистрировать новую ВМ вручную с помощью + команды VBoxManage registervm. + Смотрите . + + + + + + Указывает снимок, являющийся основой для новой ВМ. По + умолчанию клон создается из текущего состояния указанной ВМ. + + + + + + Указывает UUID для новой ВМ. Убедитесь, что ID является + уникальным в экземпляре &product-name; если вы решили + зарегистрировать новую ВМ. По умолчанию, &product-name; + сам назначает новый UUID. + + + + + + + Примеры + + Следующая команда создает и регистрирует точный клон ВМ + ol7. Клон называется + ol7-dev-001. + + + Новый клон включает все снимки исходной ВМ. Новая ВМ использует + те же самые MAC адреса всех сетевых интерфейсов, имена дисков + и UUIDы исходной ВМ. + + +$ VBoxManage clonevm ol7 --name="ol7-dev-001" --register --mode=all \ + --options=keepallmacs --options=keepdisknames --options=keephwuuids + + + Следующая команда создает и регистрирует клон снимка + Снимок 1 ВМ + ol7. Клон называется + ol7-dev-002. + + +$ VBoxManage clonevm ol7 --name="ol7-dev-002" --register --snapshot="Снимок 1" + + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-closemedium.xml b/doc/manual/ru_RU/man_VBoxManage-closemedium.xml new file mode 100644 index 00000000..3d02c3a5 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-closemedium.xml @@ -0,0 +1,121 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage closemedium + + + + VBoxManage-closemedium + 1 + + + + VBoxManage-closemedium + удаляет образ жесткого диска, DVD, или флоппи из реестра носителей + &product-name; + + + + + + VBoxManage closemedium + + disk + dvd + floppy + + + uuid + имя-файла + + --delete + + + + + Описание + + Команда VBoxManage closemedium удаляет образ + жесткого диска, DVD или флоппи из списка известных носителей, + используемых &product-name;. После выполнения данной команды + указанный образ нельзя будет выбрать в Менеджере Виртуальных + Носителей. + + + Для использования этой команды образ не должен быть подключен + к какой-либо ВМ. + + + Дополнительно можно запросить удаление образа. + + + + disk|dvd|floppy + + Указывает тип носителя. Допустимые значения: + disk (жесткий диск), + dvd или floppy. + + + + uuid|имя-файла + + Указывает Универсальный Уникальный Идентификатор (UUID) + или абсолютный путь к носителю или образу. + + + + + + Удаляет файл образа. + + + + + + + Примеры + + + Следующая команда удаляет файл образа диска с именем + disk01.vdi из реестра. + +$ VBoxManage closemedium disk01.vdi + + Следующая команда удаляет файл образа диска с именем + disk01.vdi из реестра и удаляет + файл образа. + +$ VBoxManage closemedium disk01.vdi --delete + + diff --git a/doc/manual/ru_RU/man_VBoxManage-cloud.xml b/doc/manual/ru_RU/man_VBoxManage-cloud.xml new file mode 100644 index 00000000..02d12b56 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-cloud.xml @@ -0,0 +1,655 @@ + + + + +%all.entities; +]> + + + VBoxManage cloud + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + + + + VBoxManage-cloud + 1 + Oracle VM VirtualBox + + + + VBoxManage-cloud + Управление облачными сущностями + &product-name; + + + + + + + VBoxManage cloud + --provider=имя + --profile=имя + + list + instances + --state=строка + --compartment-id=строка + + + VBoxManage cloud + --provider=имя + --profile=имя + + list + images + --compartment-id=строка + --state=строка + + + + + VBoxManage cloud + --provider=имя + --profile=имя + + instance + create + --domain-name=имя + + --image-id=id + --boot-volume-id=id + + --display-name=имя + --shape=тип + --subnet=id + --boot-disk-size=размер в ГБ + --publicip=true/false + --privateip=IP адрес + --public-ssh-key=ключевая строка + --launch-mode=NATIVE/EMULATED/PARAVIRTUALIZED + --cloud-init-script-path=путь к скрипту + + + VBoxManage cloud + --provider=имя + --profile=имя + + instance + info + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + + instance + terminate + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + + instance + start + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + + instance + pause + --id=уникальный id + + + + + VBoxManage cloud + --provider=имя + --profile=имя + + image + create + --display-name=имя + --bucket-name=имя + --object-name=имя + --instance-id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + + image + info + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + + image + delete + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + + image + import + --id=уникальный id + --bucket-name=имя + --object-name=имя + + + VBoxManage cloud + --provider=имя + --profile=имя + + image + export + --id=уникальный id + --display-name=имя + --bucket-name=имя + --object-name=имя + + + + + VBoxManage cloud + --provider=имя + --profile=имя + + network setup + --local-gateway-iso=путь + --gateway-os-name=строка + --gateway-os-version=строка + --gateway-shape=строка + --tunnel-network-name=строка + --tunnel-network-range=строка + --guest-additions-iso=путь + --proxy=строка + --compartment-id=строка + + + VBoxManage cloud + --provider=имя + --profile=имя + + network create + --name=строка + --network-id=строка + + --enable + --disable + + + + VBoxManage cloud network update + --name=строка + --network-id=строка + + --enable + --disable + + + + VBoxManage cloud + network delete + --name=строка + + + VBoxManage cloud + network info + --name=строка + + + + + Описание + + + + Общие параметры + + Слово "cloud" объединяет все команды, относящиеся к взаимодействию с облаком. Следующие + общие параметры необходимо разместить между "cloud" и последующими подкомандами: + + + --provider=имя + Короткое имя облачного провайдера. + + + --profile=имя + Имя профиля облака. + + + + + + + cloud list instances + + + Отображает список экземпляров указанной секции. + + + + --state"running/paused/terminated" + + Состояние облачного экземпляра. На данный момент возможны следующие состояния: + "running/paused/terminated". Если состояние не указано, возвращается список экземпляров + со всеми возможными состояниями. + + + + + + + Секция - это логический контейнер, используемый для организации и изоляции + облачных ресурсов. У разных облачных провайдеров эта сущность называется по-разному. + + + + + + + + cloud list images + + + Отображает список образов для указанной секции. + + + + --state"available/disabled/deleted" + + Состояние облачного образа. На данный момент возможны следующие состояния: + "available/disabled/deleted". Если состояние не указано, возвращается список + образов со всеми возможными состояниями. + + + + + + + Секция - это логический контейнер, используемый для организации и изоляции + облачных ресурсов. У разных облачных провайдеров эта сущность называется по-разному. + + + + + + + + + cloud instance create + + + Создает новый экземпляр в облаке. + Существует два стандартных способа создать экземпляр в облаке: + 1. Создать экземпляр из существующего пользовательского образа. + 2. Создать экземпляр из существующего загрузочного тома. Этот загрузочный том не должен быть подключен + к какому-либо экземпляру. + Для первого способа требуются параметры: image-id, boot-disk-size. + Для второго способа требуются параметры: boot-volume-id. + Остальные параметры являются общими для обоих способов: + display-name, launch-mode, subnet-id, publicIP, privateIP, shape, domain. + + + + Облачный домен, где создается экземпляр. + + + Уникальный идентификатор, полностью идентифицирующий пользовательский образ в облаке. + + + Уникальный идентификатор, полностью идентифицирующий загрузочный том в облаке. + + + Имя для нового экземпляра в облаке. + + + Форма экземпляра, определяющая количество ЦПУ и размер RAM памяти. + + + Уникальный идентификатор, полностью идентифицирующий существующую подсеть в облаке для использования экземпляром. + + + Размер загрузочного образа в ГБ. По умолчанию 50 ГБ. + + + У экземпляра публичный IP или нет. + + + Приватный IP адрес для созданного экземпляра. + + + + + Публичный ключ SSH, используемый для подключения к экземпляру через + SSH. Этот параметр может быть указан несколько раз, если нужно указать + несколько ключей, например: "--public-ssh-key=firstSSHKey --public-ssh-key=secondSSHKey". + + + + + Наиболее известные значения здесь могут быть EMULATED, NATIVE, PARAVIRTUALIZED. + + + Абсолютный путь к пользовательскому скрипту облачной инициализации. + + + + + + cloud instance info + + Отображает информацию об облачном экземпляре с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + cloud instance termination + + Удаляет облачный экземпляр с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + cloud instance start + + Запускает облачный экземпляр с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + cloud instance pause + + Приостанавливает облачный экземпляр с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + + + cloud image create + + + Создает новый образ в облаке. + Существует два стандартных способа создать образ в облаке: + 1. Создать образ из объекта в облачном хранилище; + 2. Создать образ из существующего облачного экземпляра. + Для первого способа требуются параметры: + bucket-name - имя облачной корзины, где находится объект; + object-name - имя объекта в корзине; + display-name - имя для нового образа в облаке. + Для второго способа требуются параметры: + instance-id - Id экземпляра в облаке; + display-name - имя для нового образа в облаке. + + + + Имя для нового образа в облаке. + + + Имя облачной корзине, где находится объект. + + + Имя объекта в корзине. + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + cloud image info + + + Отображает информацию об облачном образе с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий образ в облаке. + + + + + + cloud image delete + + + Удаляет образ с указанным id из облака. + + + + Уникальный идентификатор, полностью идентифицирующий образ в облаке. + + + + + + cloud image import + + + Импортирует образ с указанным id из облака на локальный хост. + Результатом является объект в локальной папке "temp" локального хоста. + Возможный подход может состоят из двух основных этапов: + 1. Создать объект из образа в облачном хранилище; + 2. Загрузить объект на локальный хост. + Поэтому, следующие параметры могут потребоваться: + bucket-name - имя облачной корзины где будет создан объект; + object-name - имя объекта в корзине. Если параметр "object-name" отсутствует, будет использовано показанное имя образа. + Если первый этап не нужен, требуется только параметр "id". + + + + Уникальный идентификатор, полностью идентифицирующий образ в облаке. + + + Имя облачной корзины, где будет создан объект. + + + + + + Имя созданного объекта в корзине. У загруженного объекта будет такое же имя. + + + + + + + + cloud image export + + + Экспортирует существующий образ VBox с указанным uuid из локального хоста в облако. + Результатом является новый образ в облаке. + Возможный подход может состоят из двух основных этапов: + 1. Загрузить образ VBox в облачное хранилище; + 2. Создать образ из загруженного объекта. + Поэтому, следующие параметры могут потребоваться: + bucket-name - имя облачной корзины куда будет загружен объект; + object-name - имя объекта в корзине. Если параметр "object-name" отсутствует, будет использован id образа; + display-name - имя для нового образа в облаке. + Если первый этап не нужен, требуются только параметры "id" и "display-name". + + + + Уникальный идентификатор образа в VirtualBox. + + + Имя для нового образа в облаке. + + + Имя облачной корзины куда будет загружен образ (объект). + + + Имя объекта в корзине. + + + + + + + + cloud network setup + + + Настраивает окружение облачной сети для указанного облачного профиля. + + + + Локальный путь к установочному носителю для локального шлюза. + + + Имя ОС, используемой для облачного шлюза. + + + Версия ОС, используемой для облачного шлюза. + + + Форма экземпляра, используемая для облачного шлюза. + + + Имя VCN/подсети, используемой для туннелирования. + + + Диапазон IP адресов, используемый для туннелирования. + + + Локальный путь к установочному носителю Дополнений Гостевой ОС VirtualBox. + + + URL прокси, используемый в установке локального шлюза. + + + Секция, в которую создается туннель. + + + + + + cloud network create + + + Создает новый дескриптор облачной сети, связанный с существующей облачной подсетью. + + + + Имя для назначения дескриптору облачной сети. + + + Уникальный идентификатор существующей подсети в облаке. + + + , --disable + Включить или выключить дескриптор сети. Если не указано, сеть будет включена. + + + + + + cloud network update + + + Изменяет существующий дескриптор облачной сети. + + + + Имя существующего дескриптора облачной сети. + + + Уникальный идентификатор существующей подсети в облаке. + + + , --disable + Включить или выключить дескриптор сети. + + + + + + cloud network delete + + + Удаляет существующий дескриптор облачной сети. + + + + Имя существующего дескриптора облачной сети. + + + + + + cloud network info + + + Показывает информацию о дескрипторе облачной сети. + + + + Имя существующего дескриптора облачной сети. + + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-cloudimage.xml b/doc/manual/ru_RU/man_VBoxManage-cloudimage.xml new file mode 100644 index 00000000..1ca54e4c --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-cloudimage.xml @@ -0,0 +1,242 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage cloud image + + + + VBoxManage-cloudimage + 1 + + + + VBoxManage-cloudimage + Управление облачными образами + &product-name; + + + + + VBoxManage cloud + --provider=имя + --profile=имя + image + create + --display-name=имя + --bucket-name=имя + --object-name=имя + --instance-id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + image + info + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + image + delete + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + image + import + --id=уникальный id + --bucket-name=имя + --object-name=имя + + + VBoxManage cloud + --provider=имя + --profile=имя + image + export + --id=уникальный id + --display-name=имя + --bucket-name=имя + --object-name=имя + + + + + Описание + + + Общие параметры + + Подкоманды cloudimage реализуют стандартные операции над облачными образами, как то + create/delete/show/import/export. Следующие общие параметры должны находиться между "cloud" и последующими подкомандами: + + + --provider=имя + Короткое имя облачного провайдера. + + + --profile=имя + Имя облачного профиля. + + + + + + cloud image create + + + Создает новый образ в облаке. + Существует два стандартных способа создать образ в облаке: + 1. Создать образ из объекта в облачном хранилище; + 2. Создать образ из существующего облачного экземпляра. + Для первого способа требуются параметры: + bucket-name - имя облачной корзины где находится объект; + object-name - имя объекта в корзине; + display-name - имя для нового образа в облаке. + Для второго способа требуются параметры: + instance-id - Id экземпляра в облаке; + display-name - имя для нового образа в облаке. + + + + Имя для нового образа в облаке. + + + Имя облачной корзины где размещен объект. + + + Имя объекта в корзине. + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + cloud image info + + + Показывает информацию об облачном образе с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий образ в облаке. + + + + + + cloud image delete + + + Удаляет образ с указанным id из облака. + + + + Уникальный идентификатор, полностью идентифицирующий образ в облаке. + + + + + + cloud image import + + + Импортирует образ с указанным id из облака на локальный хост. + Результатом является объект в локальной папке "temp" локального хоста. + Возможный подход может состоят из двух основных этапов: + 1. Создать объект из образа в облачном хранилище; + 2. Загрузить объект на локальный хост. + Поэтому, следующие параметры могут потребоваться: + bucket-name - имя облачной корзины где будет создан объект; + object-name - имя объекта в корзине. Если параметр "object-name" отсутствует, будет использовано показанное имя образа. + Если первый этап не нужен, требуется только параметр "id". + + + + Уникальный идентификатор, полностью идентифицирующий образ в облаке. + + + Имя облачной корзины, где будет создан объект. + + + + + + Имя созданного объекта в корзине. У загруженного объекта будет такое же имя. + + + + + + + + cloud image export + + + Экспортирует существующий образ VBox с указанным uuid из локального хоста в облако. + Результатом является новый образ в облаке. + Возможный подход может состоят из двух основных этапов: + 1. Загрузить образ VBox в облачное хранилище; + 2. Создать образ из загруженного объекта. + Поэтому, следующие параметры могут потребоваться: + bucket-name - имя облачной корзины куда будет загружен объект; + object-name - имя объекта в корзине. Если параметр "object-name" отсутствует, будет использован id образа; + display-name - имя для нового образа в облаке. + Если первый этап не нужен, требуются только параметры "id" и "display-name". + + + + Уникальный идентификатор образа в VirtualBox. + + + Имя для нового образа в облаке. + + + Имя облачной корзины куда будет загружен образ (объект). + + + Имя объекта в корзине. + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-cloudinstance.xml b/doc/manual/ru_RU/man_VBoxManage-cloudinstance.xml new file mode 100644 index 00000000..8d6b67cb --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-cloudinstance.xml @@ -0,0 +1,228 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage cloud instance + + + + VBoxManage-cloudinstance + 1 + + + + VBoxManage-cloudinstance + Управление облачными экземплярами + &product-name; + + + + + VBoxManage cloud + --provider=имя + --profile=имя + instance + create + --domain-name=имя + + --image-id=id + --boot-volume-id=id + + --display-name=имя + --shape=тип + --subnet=id + --boot-disk-size=размер в ГБ + --publicip=true/false + --privateip=IP адрес + --public-ssh-key=ключевая строка + --launch-mode=NATIVE/EMULATED/PARAVIRTUALIZED + + + VBoxManage cloud + --provider=имя + --profile=имя + instance + info + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + instance + terminate + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + instance + start + --id=уникальный id + + + VBoxManage cloud + --provider=имя + --profile=имя + instance + pause + --id=уникальный id + + + + + Описание + + + Общие параметры + + Подкоманды cloudinstance реализуют стандартные операции над облачными экземплярами, как то + start/pause/show/terminate. Следующие общие параметры должны быть помещены между "cloud" и последующими подкомандами: + + + --provider=имя + Короткое имя облачного провайдера. + + + --profile=имя + Имя облачного профиля. + + + + + + cloud instance create + + + Создает новый экземпляр в облаке. + Существует два стандартных способа создать экземпляр в облаке: + 1. Создать экземпляр из существующего пользовательского образа. + 2. Создать экземпляр из существующего загрузочного тома. Этот загрузочный том не должен быть подключен + к какому-либо экземпляру. + Для первого способа требуются параметры: image-id, boot-disk-size. + Для второго способа требуются параметры: boot-volume-id. + Остальные параметры являются общими для обоих способов: + display-name, launch-mode, subnet-id, publicIP, privateIP, shape, domain. + + + + Облачный домен, где создается экземпляр. + + + Уникальный идентификатор, полностью идентифицирующий пользовательский образ в облаке. + + + Уникальный идентификатор, полностью идентифицирующий загрузочный том в облаке. + + + Имя для нового экземпляра в облаке. + + + Форма экземпляра, определяющая количество ЦПУ и размер RAM памяти. + + + Уникальный идентификатор, полностью идентифицирующий существующую подсеть в облаке для использования экземпляром. + + + Размер загрузочного образа в ГБ. По умолчанию 50 ГБ. + + + У экземпляра публичный IP или нет. + + + Приватный IP адрес для созданного экземпляра. + + + + + Публичный ключ SSH, используемый для подключения к экземпляру через + SSH. Этот параметр может быть указан несколько раз если нужно указать + несколько ключей, например: "--public-ssh-key=firstSSHKey --public-ssh-key=secondSSHKey". + + + + + Наиболее известные значения здесь могут быть EMULATED, NATIVE, PARAVIRTUALIZED. + + + + + + cloud instance info + + Показывает информацию об облачном экземпляре с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + cloud instance termination + + Удаляет облачный экземпляр с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + cloud instance start + + Запускает облачный экземпляр с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + + cloud instance pause + + Приостанавливает облачный экземпляр с указанным id. + + + + Уникальный идентификатор, полностью идентифицирующий экземпляр в облаке. + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-cloudlist.xml b/doc/manual/ru_RU/man_VBoxManage-cloudlist.xml new file mode 100644 index 00000000..dd5691c1 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-cloudlist.xml @@ -0,0 +1,145 @@ + + + + +%all.entities; +]> + + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage cloud list + + + + VBoxManage-cloudlist + 1 + + + + VBoxManage-cloudlist + Команда cloud list дает информацию о некоторых стандартных сущностях в каждом облаке + и которая может быть представлена списком, например, списки экземпляров, образов дисков, сетей, т.д. + &product-name; + + + + + VBoxManage cloud + --provider=имя + --profile=имя + list + instances + --state=строка + --compartment-id=строка + + + VBoxManage cloud + --provider=имя + --profile=имя + list + images + --compartment-id=строка + --state=строка + + + + + Описание + + Общие параметры + + Слово "cloud" объединяет все команды, связанные с взаимодействием с облаком. Следующие + общие параметры необходимо разместить между "cloud" и последующими подкомандами, в нашем случае "list": + + + --provider=имя + Короткое имя облачного провайдера. + + + --profile=имя + Имя облачного профиля. + + + + + + cloud list instances + + + Отображает список экземпляров указанной секции. + + + + --state"running/paused/terminated" + + Состояние облачного экземпляра. На данный момент возможны следующие состояния: + "running/paused/terminated". Если состояние не указано, возвращается список экземпляров + со всеми возможными состояниями. + + + + + + + Секция - это логический контейнер, используемый для организации и изоляции + облачных ресурсов. У разных облачных провайдеров эта сущность называется по-разному. + + + + + + + + cloud list images + + + Отображает список образов для указанной секции. + + + + --state"available/disabled/deleted" + + Состояние облачного образа. На данный момент возможны следующие состояния: + "available/disabled/deleted". Если состояние не указано, возвращается список + образов со всеми возможными состояниями. + + + + + + + Секция - это логический контейнер, используемый для организации и изоляции + облачных ресурсов. У разных облачных провайдеров эта сущность называется по-разному. + + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-cloudprofile.xml b/doc/manual/ru_RU/man_VBoxManage-cloudprofile.xml new file mode 100644 index 00000000..c8a1857b --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-cloudprofile.xml @@ -0,0 +1,191 @@ + + + + +%all.entities; +]> + + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage cloudprofile + + + + VBoxManage-cloudprofile + 1 + + + + VBoxManage-cloudprofile + Управление облачными профилями + &product-name; + + + + + VBoxManage cloudprofile + --provider=имя + --profile=имя + add + --clouduser=уникальный id + --fingerprint=строка MD5 + --keyfile=путь + --passphrase=строка + --tenancy=уникальный id + --compartment=уникальный id + --region=строка + + + VBoxManage cloudprofile + --provider=имя + --profile=имя + update + --clouduser=уникальный id + --fingerprint=строка MD5 + --keyfile=путь + --passphrase=строка + --tenancy=уникальный id + --compartment=уникальный id + --region=строка + + + VBoxManage cloudprofile + --provider=имя + --profile=имя + delete + + + VBoxManage cloudprofile + --provider=имя + --profile=имя + show + + + + + Описание + + + Общие параметры + + Подкоманды cloudprofile реализуют стандартные CRUD операции над облачным профилем. + Следующие общие параметры должны быть помещены между "cloud" и последующими подкомандами: + + + --provider=имя + Короткое имя облачного провайдера. + + + --profile=имя + Имя облачного профиля. + + + + + + cloudprofile add + + + Добавляет новый облачный профиль для указанного облачного провайдера. + + + + Имя, полностью идентифицирующее пользователя у указанного облачного провайдера. + + + Отпечаток используемой ключевой пары. + + + Полный путь и имя файла приватного ключа. + + + Парольная фраза используемая для ключа, если он зашифрован. + + + ID вашей аренды. + + + ID вашей секции. + + + Имя региона. Регион - это где вы планируете развертывать приложение. + + + + + + cloudprofile show + + + Показывает информацию об облачном профиле для указанного облачного провайдера. + + + + + cloudprofile update + + + Изменяет облачный профиль для указанного облачного провайдера. + + + + Имя, полностью идентифицирующее пользователя у указанного облачного провайдера. + + + Отпечаток используемой ключевой пары. + + + Полный путь и имя файла приватного ключа. + + + Парольная фраза используемая для ключа, если он зашифрован. + + + ID вашей аренды. + + + ID вашей секции. + + + Имя региона. Регион - это где вы планируете развертывать приложение. + + + + + + cloudprofile delete + + + Удаляет облачный профиль для указанного облачного провайдера. + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-common.xml b/doc/manual/ru_RU/man_VBoxManage-common.xml new file mode 100644 index 00000000..156fbb46 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-common.xml @@ -0,0 +1,279 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage + + + + VBoxManage + 1 + + + + VBoxManage + &product-name; интерфейс командной строки + &product-name; + + + + + + VBoxManage + + -V + --version + + --dump-build-type + + -q + --nologo + + --settingspw=пароль + --settingspwfile=файл с паролем + @файл ответов + help подкоманда + + + + + Описание + + Команда VBoxManage - это интерфейс командной + строки (CLI) для ПО &product-name;. CLI поддерживает весь + функционал, доступный из графического интерфейса &product-name; + (GUI). В дополнении, можно использовать команду + VBoxManage для управления функционалом + ядра виртуализации, недоступного из GUI. + + + Каждый раз, когда вы вызываете команду VBoxManage, + исполняется только одна команда. Однако заметим, что некоторые + подкоманды VBoxManage вызывают несколько + подкоманд. + + + Запустите команду VBoxManage из командной строки + операционной системы (ОС) хоста для управления ПО &product-name;. + + + Команда VBoxManage находится в следующих местах + в зависимости от операционной системы хоста: + + + + Linux: + /usr/bin/VBoxManage + + + Mac OS X: + /Applications/VirtualBox.app/Contents/MacOS/VBoxManage + + + Oracle Solaris: + /opt/VirtualBox/bin/VBoxManage + + + Windows: + C:\Program + Files\Oracle\VirtualBox\VBoxManage.exe + + + + В дополнении к управлению виртуальными машинами (ВМ) через CLI или + GUI, можно использовать VBoxHeadless CLI для + управления ВМ напрямую. + + + Команда VBoxManage производит специфические + задачи через подкоманды, такие как list, + createvm и startvm. Смотри + соответствующую информацию по каждой подкоманде + VBoxManage. + + + Если нужно, ВМ может быть указана по ее имени или универсальному + уникальному идентификатору (UUID). + + + Команда VBoxManage list vms может быть + использована для получения информации обо всех зарегистрированных + на данный момент ВМ, включая их имена и UUID. + + + Заметим, что имя ВМ должно быть заключено в кавычки если оно содержит + пробелы. + + + Общие настройки + + + + + Подавляет вывод логотипа. Опция полезна для скриптов. + + Краткая версия этой опции: . + + + + + + Указывает пароль для доступа к настройкам. Опционально, можно + указать сам пароль в качестве аргумента к опции. Если этого + не будет сделано, команда VBoxManage + спросит пароль у вас. + + Пароль для доступа к настройкам - это функция безопасности, + которая шифрует настройки. По умолчанию настройки сохраняются + обычным текстом в открытом виде. + + Вы не можете расшифровать зашифрованные настройки. Так что, + если настройки зашифрованы, вы должны продолжать указывать + или + . + + В настоящее время шифруется только пароль iSCSI. + + Данный дизайн не укладывается в Рекомендации по безопасности + Oracle. Вы не должны указывать пароль в командной строке как + аргумент, так как он может отображаться в списке процессов. + + + + + + Указывает файл, содержащий пароль к настройкам. + + + + + + Показывает информацию о версии команды + VBoxManage. + + Краткая версия это опции: . + + + + @файл ответов + + Загружает аргументы из файла ответов в формате + Bourne shell. + + + + подкоманда + + Указывает одну из подкоманд VBoxManage, + такие как controlvm, + createvm, list, + modifyvm, + showvminfo, startvm, + storageattach и + storagectl. + + Каждая подкоманда описывается в своем топике, некоторые + из них показаны в секции 'Смотрите также'. + + + + + + + + Примеры + + + Следующая команда создает виртуальную машину с именем + Win8 и регистрирует ее в &product-name;, + используя опцию . + +$ VBoxManage createvm --name "Win8" --register +Виртуальная машина 'Win8' создана и зарегистрирована. +UUID: строка UUID +Файл настроек: '/home/имя пользователя/VirtualBox VMs/Win8/Win8.vbox' + + Вывод команды показывает, что ВМ Win8 + назначен UUID и XML файл настроек машины. + + + Вы можете использовать команду VBoxManage showvminfo + для просмотра информации о конфигурации ВМ. + + + Следующий пример использует команду VBoxManage + modifyvm для изменения размера памяти у ВМ + Windows XP VM до 1024 мегабайта: + +$ VBoxManage modifyvm "Windows XP" --memory 1024 + + Заметим, что вы можете использовать команду VBoxManage modifyvm + даже если ВМ выключена. + + + Вы можете использовать команду VBoxManage storagectl + или команду VBoxManage storageattach для + изменения конфигурации носителей у ВМ. Например, чтобы создать + SATA контроллер с именем sata01 и добавить + его в ВМ ol7 VM используйте: + +$ VBoxManage storagectl ol7 --name "sata01" --add sata + + Используйте команду VBoxManage startvm для старта + ВМ, которая сейчас выключена. Например, чтобы запустить ВМ + win7 укажите: + +$ VBoxManage startvm win7 + + Используйте команду VBoxManage controlvm + для приостановки или сохранения состояния ВМ, которая сейчас работает. + Вы также можете использовать эту команду для изменения настроек + ВМ. Например, чтобы включить аудио вход для ВМ ol6u9 + используйте: + +$ VBoxManage controlvm ol6u9 audioin on + + + + Смотрите также + + , + , + , + , + , + , + , + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-controlvm.xml b/doc/manual/ru_RU/man_VBoxManage-controlvm.xml new file mode 100644 index 00000000..c0b1d011 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-controlvm.xml @@ -0,0 +1,2174 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage controlvm + + + + VBoxManage-controlvm + 1 + + + + VBoxManage-controlvm + изменение состояния и настроек работающей виртуальной машины + &product-name; + + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + pause + + + + VBoxManage controlvm + + uuid + имя-ВМ + + resume + + + + VBoxManage controlvm + + uuid + имя-ВМ + + reset + + + + VBoxManage controlvm + + uuid + имя-ВМ + + poweroff + + + + VBoxManage controlvm + + uuid + имя-ВМ + + savestate + + + + VBoxManage controlvm + + uuid + имя-ВМ + + acpipowerbutton + + + + VBoxManage controlvm + + uuid + имя-ВМ + + acpisleepbutton + + + + VBoxManage controlvm + + uuid + имя-ВМ + + reboot + + + + VBoxManage controlvm + + uuid + имя-ВМ + + shutdown + + + + VBoxManage controlvm + + uuid + имя-ВМ + + keyboardputscancode + hex + hex + + + + VBoxManage controlvm + + uuid + имя-ВМ + + keyboardputstring + строка + строка + + + + VBoxManage controlvm + + uuid + имя-ВМ + + keyboardputfile + имя-файла + + + + VBoxManage controlvm + + uuid + имя-ВМ + + setlinkstateN + + on + off + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + nicN + + null + nat + bridged + intnet + hostonly + generic + natnetwork + + имя-устройства + + + + VBoxManage controlvm + + uuid + имя-ВМ + + nictraceN + + on + off + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + nictracefileN + имя-файла + + + + VBoxManage controlvm + + uuid + имя-ВМ + + nicpropertyN + имя-свойства=значение-свойства + + + + VBoxManage controlvm + + uuid + имя-ВМ + + nicpromiscN + + deny + allow-vms + allow-all + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + natpfN + + [имя-правила],tcp + udp,IP-хоста, + порт-хоста, + IP-гостя, + порт-гостя + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + natpfN delete + + имя-правила + + + + VBoxManage controlvm + + uuid + имя-ВМ + + guestmemoryballoon + размер-balloon-памяти + + + + VBoxManage controlvm + + uuid + имя-ВМ + + usbattach + + uuid + адрес + + --capturefile=имя-файла + + + + VBoxManage controlvm + + uuid + имя-ВМ + + usbdetach + + uuid + адрес + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + audioin + + on + off + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + audioout + + on + off + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + clipboard mode + + disabled + hosttoguest + guesttohost + bidirectional + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + draganddrop + + disabled + hosttoguest + guesttohost + bidirectional + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + vrde + + on + off + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + vrdeport + port + + + + VBoxManage controlvm + + uuid + имя-ВМ + + vrdeproperty + имя-свойства=значение-свойства + + + + VBoxManage controlvm + + uuid + имя-ВМ + + vrdevideochannelquality + процент + + + + VBoxManage controlvm + + uuid + имя-ВМ + + setvideomodehint + разрешение-x + разрешение-y + бит/пиксел + дисплей + enabled:yes | no + начальная-точка-x начальная-точка-y + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + setscreenlayout + экран + + on + primary начальная-точка-x начальная-точка-y разрешение-x разрешение-y бит/пиксел + off + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + screenshotpng + имя-файла + display + + + + VBoxManage controlvm + + uuid + имя-ВМ + + recording + + on + off + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + recording screens + + all + none + экран,[экран...] + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + recording filename + filename + + + + VBoxManage controlvm + + uuid + имя-ВМ + + recording videores + ширинаxвысота + + + + VBoxManage controlvm + + uuid + имя-ВМ + + recording videorate + битрейт + + + + VBoxManage controlvm + + uuid + имя-ВМ + + recording videofps + кадров/сек + + + + VBoxManage controlvm + + uuid + имя-ВМ + + recording maxtime + сек + + + + VBoxManage controlvm + + uuid + имя-ВМ + + recording maxfilesize + МБ + + + + VBoxManage controlvm + + uuid + имя-ВМ + + setcredentials + имя-пользователя + --passwordfile= + имя-файла + пароль + + имя-домена + --allowlocallogon= + yes + no + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + teleport + --host=имя-хоста + --port=имя-порта + --maxdowntime=мсек + + --passwordfile=имя-файла + --password=пароль + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + plugcpu + ID + + + + VBoxManage controlvm + + uuid + имя-ВМ + + unplugcpu + ID + + + + VBoxManage controlvm + + uuid + имя-ВМ + + cpuexecutioncap + число + + + + VBoxManage controlvm + + uuid + имя-ВМ + + vm-process-priority + + default + flat + low + normal + high + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + webcam attach + путьнастройки + + + + VBoxManage controlvm + + uuid + имя-ВМ + + webcam detach + путь + + + + VBoxManage controlvm + + uuid + имя-ВМ + + webcam list + + + + VBoxManage controlvm + + uuid + имя-ВМ + + addencpassword + ID + + файл-с-паролем + - + + --removeonsuspend= + yes + no + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + removeencpassword + ID + + + + VBoxManage controlvm + + uuid + имя-ВМ + + removeallencpasswords + + + + VBoxManage controlvm + + uuid + имя-ВМ + + changeuartmodeN + + disconnected + server имя-канала + client имя-канала + tcpserver порт + tcpclient имя-хоста:порт + file имя-файла + имя-устройства + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + autostart-enabledN + + on + off + + + + + VBoxManage controlvm + + uuid + имя-ВМ + + autostart-delayсекунд + + + + + Описание + + Команда VBoxManage controlvm позволяет изменить + состояние работающей виртуальной машины (ВМ). Следующие секции + описывают подкоманды, которые можно использовать: + + + Приостановить виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ pause временно + приостанавливает выполнение ВМ. Когда ВМ приостановлена, ее + состояние не изменяется постоянно. + + + Окно ВМ становится серым и заголовок окна показывает, что ВМ + приостановлена на текущий момент. Это действие эквивалентно + выбору Приостановить из + меню Машина графического + интерфейса. + + + + Возобновить выполнение приостановленной виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ resume перезапускает + выполнение приостановленной ВМ. Это действие эквивалентно выбору + Возобновить из меню + Машина графического интерфейса. + + + + Сбросить виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ reset производит + холодный сброс ВМ. У этой команды тот же эффект, как и нажатие + кнопки "сброс" у физического компьютера. + + + Холодная перезагрузка немедленно перезапускает и перезагружает + гостевую операционную системы (ОС). Состояние ВМ перед сбросом + не сохраняется, поэтому можно потерять данные. Это действие + эквивалентно выбору Сброс из + меню Машина графического + интерфейса. + + + + Выключить виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ poweroff выключает + ВМ. У этой команды тот же эффект как и вытаскивание кабеля питания + из физического компьютера. + + + Состояние ВМ перед выключением не сохраняется, поэтому можно + потерять данные. Это действие эквивалентно выбору + Закрыть из меню + Машина графического интерфейса + или нажатию на кнопку "Закрыть" окна ВМ и затем выбору + Выключить машину. + + + Когда ВМ в состоянии "выключено", ее можно перезапустить. + Смотрите . + + + + Сохранить состояние виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ savestate сохраняет + текущее состояние ВМ на диск и затем останавливает ВМ. + + + Действие эквивалентно выбору Закрыть + из меню Машина графического интерфейса + или нажатию на кнопку "Закрыть" окна ВМ и затем выбору + Сохранить состояние машины. + + + Когда ВМ в состоянии "выключено", ее можно перезапустить. + + + + Отправить ACPI сигнал выключения в виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ acpipowerbutton отправляет + ACPI сигнал выключения в ВМ. У этой команды тот же эффект как + и нажатие кнопки "Включить" на физическом компьютере. + + + Пока в ВМ работает гостевая ОС, обеспечивающая поддержку ACPI, + эта команда запускает правильный механизм остановки внутри ВМ. + + + + Отправить ACPI сигнал перехода в спящий режим в виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ acpisleepbutton отправляет + ACPI сигнал перехода в спящий режим в ВМ. + + + Пока в ВМ работает гостевая ОС, обеспечивающая поддержку ACPI, + эта команда запускает правильный механизм перехода в спящий + режим внутри ВМ. + + + + Перезагрузить гостевую ОС + + + Команда VBoxManage controlvm + имя-ВМ reboot просит + гостевую ОС перезагрузиться. + + + Эта команда работает только если установлена + последняя версия Дополнений Гостевой ОС. + + + + Выключить гостевую ОС + + + Команда VBoxManage controlvm + имя-ВМ shutdown + просит гостевую ОС выключиться + + + Эта команда работает только если установлена + последняя версия Дополнений Гостевой ОС. + + + + Отправить клавиатурные сканкоды в виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ keyboardputscancode + отправляет команды клавиатурных сканкодов в ВМ. + + + По информации о клавиатурных сканкодах смотрите + . + + + + Отправить клавиатурные строки в виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ keyboardputstring + отправляет клавиатурные строки в ВМ. + + + + Отправить файл в виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ keyboardputfile + отправляет файл в ВМ. + + + + Настроить цель для портирования виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ teleport инициирует + операцию портирования между указанной ВМ и указанной системой + хоста. Смотрите . + + + Если вы указываете пароль, он должен соответствовать паролю, + используемому при вызове команды VBoxManage + modifyvm для целевой машины. + + + + + + Указывает имя ВМ. + + + + + + Указывает порт, который ВМ должна прослушивать для получения + запросов на портирование с других ВМ. Номер порта может быть + любой свободный TCP/IP порт, например 6000. + + + + + + Задает максимальное время простоя в миллисекундах для портируемой + целевой виртуальной машины. + + + + + + Указывает пароль, используемый исходной машиной для запроса + на портирование. Запрос удовлетворяется только если + исходная машины указывает тот же самый пароль. + + Такой дизайн не соответствует рекомендациям Oracle по безопасности. + Вы не должны указывать пароль в командной строке, потому что + его можно увидеть в списке процессов. + + Опция является взаимоисключающей с опцией + . + + + + + + Указывает файл откуда берется пароль, испольуемый исходной + машиной для запроса на портирование. Запрос удовлетворяется + только если исходная машина указывает тот же самый пароль. + + Если указатть в качестве имени файла stdin, + можно читать пароль со стандартного потока ввода. + + Опция является взаимоисключающей + с опцией . + + + + + + Установить состояние сетевого подключения для виртуальной машины + + + Команда VBoxManage controlvm имя-ВМ + setlinkstateN позволяет подключить + или отключить виртуальный сетевой кабель от экземпляра сетевого + интерфейса(N). Допустимые значения: + on и off. Значение по умолчанию + on. + + + Перед подключением виртуального сетевого кабеля используйте команду + VBoxManage controlvm nictracefileN + во время работы ВМ для задания имени файла для записи + журнала. Или используйте команду VBoxManage modifyvm + --nic-trace-fileN=имя-файла + для этих же целей, если ВМ не работает. + + + Эта подкоманда не влияет прямо на состояние работы ВМ. + + + + Задать тип сети, используемой виртуальной машиной + + + Команда VBoxManage controlvm имя-ВМ + nicN указывает тип сети + в указаной сетевой карте ВМ. + Нумерация N начинается с + 1. + + + Следующие допустимые типы сети также описаны в + : + + + + null указывает, что ВМ не подключена к + хост-системе. + + + nat указывает, что ВМ использует сетевое + преобразование адресов (NAT). + + + bridged указывает, что ВМ использует + сетевой мост. + + + intnet указывает, что ВМ обменивается + с другими ВМ, используя внутреннюю сеть. + + + hostonly указывает, что ВМ использует + сеть хоста. + + + natnetwork указывает, что ВМ испльзует + сеть NAT. + + + generic указывает, что у ВМ есть доступ + у редко используемым под-режимами. + + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Отследить сетевой траффик виртуальной машины + + + Команда VBoxManage controlvm имя-ВМ + nictraceN позволяет + отслеживать сетевой траффик на указанной виртуальной сетевой + карте (N). + Нумерация N начинается с + 1. Допустимые значения: on и + off. Значение по умолчанию + off. + + + Когда устанавливается в on, необходимо + использовать то же самое значение N + для команды VBoxManage controlvm имя-ВМ + nictracefileN, что было + использовано для указания пути и имени файла журнала, в который + производится запись результатов отслеживания. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать файл журнала для отслеживания сетевого траффика виртуальной машины + + + Команда VBoxManage controlvm имя-ВМ + nictracefileN позволяет вам + задать имя файла журнала для отслеживания сетевого траффика для + указанной виртуальной сетевой карты (N). + Нумерация N начинается с + 1. Убедитесь, что задано то же значение + N, какое использовано для команд + VBoxManage controlvm имя-ВМ + nicN и + VBoxManage controlvm имя-ВМ + nictraceN. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Указать используемый неразборчивый режим для виртуальной машины + + + Команда VBoxManage controlvm имя-ВМ + nicpromiscN позволяет указать + как обрабатывать неразборчивый режим для сетевого моста. Значение + по умолчанию deny скрывает весь траффик, не + предназначенный для этой ВМ. Значение allow-vms + скрывает весь траффик хоста от этой ВМ, но позволяет ВМ просматривать + траффик с других ВМ. Значение allow-all убирает + это ограничение полностью. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать значение свойства сетевого бэкенда виртуальной машины + + + Команда VBoxManage controlvm имя-ВМ + nicpropertyN + имя-свойства=значение-свойства + в комбинации с nicgenericdrv позволяет передать + значения свойств в редко используемые сетевые бэкенды. + + + Эти свойства специфичны для бэкенда и различны между драйверами + UDP туннеля и VDE бэкенда. Смотрите . + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать правило для перенаправления портов NAT для виртуальной машины + + + Команда VBoxManage controlvm имя-ВМ + natpfN задает правило перенаправления + портов NAT. Смотрите . + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Удалить правило для перенаправления портов NAT для виртуальной машины + + + КомандаVBoxManage controlvm имя-ВМ + natpfN delete удаляет указанное + правило перенаправления портов NAT. Смотрите . + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Изменить размер гостевого memory balloon виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ guestmemoryballoon + изменяет размер гостевого memory balloon. Гостевой memory balloon - + это память выделенная Дополнениями Гостевой ОС &product-name; у + гостевой системы и возвращенная гипервизору для использования + другими ВМ. Значение указывается в мегабайтах. Смотрите + . + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Сделать USB устройство хост-системы видимым для виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ usbattach динамически + подключает USB устройство хоста к ВМ, что делает его видимым. + Не нужно создавать фильтр. + + + Можно указывать USB устройство через Универсальный Уникальный + Идентификатор (UUID) или через адрес в хост-системе. используйте + команду VBoxManage list usbhost для получения + информации об USB устройствах хост-системы. + + + Используйте опцию для задания + абсолютного пути к файлу для записи данных журналирования. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Сделать USB устройство хост-системы невидимым для виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ usbdetach динамически + отключает USB устройство хоста от ВМ, что делает его невидимым. + Не нужно создавать фильтр. + + + Можно указывать USB устройство через Универсальный Уникальный + Идентификатор (UUID) или через адрес в хост-системе. используйте + команду VBoxManage list usbhost для получения + информации об USB устройствах хост-системы. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Включить или выключить аудио захват из хост-системы + + + Команда VBoxManage controlvm + имя-ВМ audioin указывает + включить или выключить аудио захват из хост-системы. Допустимые + значения: on, которая включает аудио захват и + off, которая выключает аудио захват. Значение + по умолчанию off. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Включить или выключить аудио воспроизведение из виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ audioout указывает + включить или выключить аудио воспроизведение из гостевой ВМ. + Допустимые значения: on, которая включает + аудио воспроизведение и off, которая выключает + аудио воспроизведение. Значение по умолчанию off. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать как предоставить общий доступ к буферам обмена хост ОС или гостевой ОС + + + Команда VBoxManage controlvm + имя-ВМ clipboard mode задает + как предоставить общий доступ к буферам обмена гостевой системы + или хоста хост-системе или ВМ. Допустимые значения: + disabled, hosttoguest, + guesttohost и bidirectional. + Значение по умолчанию disabled. Смотрите + . + + + Этот функционал требует наличия Дополнений Гостевой ОС &product-name;, + установленных в ВМ. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать режим Drag and Drop между хост-системой и виртуальной машиной + + + Команда VBoxManage controlvm + имя-ВМ draganddrop Задает + текущий режим drag and drop, используемый между хост-системой + и ВМ. Допустимые значения: disabled, + hosttoguest, guesttohost + и bidirectional. Значение по умолчанию + disabled. Смотрите . + + + Этот функционал требует наличия Дополнений Гостевой ОС &product-name;, + установленных в ВМ. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Включить или выключить VRDE сервер + + + Команда VBoxManage controlvm + имя-ВМ vrde включает или + выключает сервер Расширения Удаленного Рабочего Стола VirtualBox (VRDE), + если он установлен. Допустимые значения: on и + off. Значение по умолчанию off. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать порты VRDE сервера + + + Команда VBoxManage controlvm + имя-ВМ vrdeport задает + порт или диапазон портов к которым VRDE сервер может подключиться. + Значение по умолчанию default или + 0, который обозначает стандартный RDP порт + 3389. + + + Также смотрите описание опции в + . + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать номера портов и IP адреса VRDE сервера + + + Команда VBoxManage controlvm + имя-ВМ vrdeproperty указывает + номера портов и IP адрес в ВМ, к которым может подключиться VRDE + сервер. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + TCP/Ports задает порт или диапазон портов + на которые может подключиться VRDE сервер. Значение по + умолчанию default или 0, + который означает стандартный RDP порт 3389. + + Также смотрите описание опции в + . + + + TCP/Address указывает IP адрес сетевого + интерфейса хоста, к которому может подключиться VRDE сервер. + Если указан, сервер принимает подключения только к указанному + сетевому интерфейсу хоста. + + Также смотрите описание опции в + . + + + VideoChannel/Enabled позволяет подключить + видеоканал Протокола Удаленного Рабочего Стола (VRDP). + Допустимые значения 1 для включения + видеоканала и 0 для выключения. Значение + по умолчанию 0. Смотрите + . + + + VideoChannel/Quality указывает уровень + сжатия JPEG в видеоканале сервера VRDE. Допустимые значения + между 10% и 100% включительно. Меньшие значения подразумевают + худшее качество, но более высокое сжатие. Значение по умолчанию + 100. Смотрите . + + + VideoChannel/DownscaleProtection позволяет + подключить функцию защиты от уменьшения масштаба видеоканала. + Укажите 1 для включения. По умолчанию + выключено. + + Когда функция включена, если размер видео равен размеру теневого + буфера, видео отображается в полноэкранном режиме. Если размер + видео между полным экраном и порогом уменьшения масштаба, видео + не отображается, так как это может быть окно приложения, которое + может быть нечитаемым в случае уменьшения масштаба. Когда функция + отключена, функция защиты от уменьшения масштаба всегда пытается + отобразить видео. + + + Client/DisableDisplay позволяет отключить функцию + отображения сервера VRDE. Допустимые значения 1, + отключающее функцию и null (""), + включающую эту функцию. Значение по умолчанию null. Смотрите + . + + + Client/DisableInput позволяет отключить функцию + ввода сервера VRDE. Допустимые значения 1, + отключающее функцию и null (""), + включающую эту функцию. Значение по умолчанию 1. + Смотрите . + + + Client/DisableAudio позволяет отключить функцию + аудио сервера VRDE. Допустимые значения 1, + отключающее функцию и null (""), + включающую эту функцию. Значение по умолчанию 1. + Смотрите . + + + Client/DisableUSB позволяет отключить функцию + USB сервера VRDE. Допустимые значения 1, + отключающее функцию и null (""), + включающую эту функцию. Значение по умолчанию 1. + Смотрите . + + + Client/DisableClipboard позволяет отключить + функцию буфера обмена сервера VRDE. Допустимые значения + 1, отключающее функцию и null + (""), включающую эту функцию. + Используйте Client/DisableClipboard= для + включения этой функции. Значение по умолчанию 1. + Смотрите . + + + Client/DisableUpstreamAudio позволяет отключить + функцию загрузки аудио на сервер VRDE. Допустимые значения + 1, отключающее функцию и null + (""), включающую эту функцию. + Используйте Client/DisableUpstreamAudio= для + включения этой функции. Значение по умолчанию 1. + Смотрите . + + + Client/DisableRDPDR позволяет отключить функцию + Перенаправления Устройств RDP Для Смарт-Карт сервера VRDE. + Допустимые значения 1, отключающее функцию и + null (""), включающую эту функцию. + Значение по умолчанию 1. Смотрите + . + + + H3DRedirect/Enabled позволяет включить функцию + Перенаправления 3D сервера VRDE. Допустимые значения + 1, включающее функцию и + null (""), отключающую эту функцию. + Смотрите . + + + Security/Method указывает метод безопасности, + используемый для подключения. Смотрите . + + + Negotiate принимает RDP подключения, имеющие + и повышенный (TLS) и стандартный протокол безопасности. Метод + безопасности оговаривается с клиентом. Это значение по умолчанию. + + + RDP принимает только RDP подключения со + стандартным протоколом безопасности. + + + TLS принимает только RDP подключения с + повышенным протоколом безопасности. Клиент должен поддерживать + TLS. + + + + Security/ServerCertificate указывает абсолютный + путь к сертификату сервера, используемому в подключении. + Смотрите . + + + Security/ServerPrivateKey указывает абсолютный + путь к приватному ключу сервера. Смотрите . + + + Security/CACertificate указывает абсолютный + путь к корневому самоподписанному сертификату. Смотрите + . + + + Audio/RateCorrectionMode указывает используемый + режим коррекции битрейта. + + + VRDP_AUDIO_MODE_VOID отображает что + режим коррекции не используется. Используйте это значение + для снятия ранее установленного режима. + + + VRDP_AUDIO_MODE_RC указывает, что надо + использовать режим коррекции скорости. + + + VRDP_AUDIO_MODE_LPF указывает, что надо + использовать режим НЧ фильтра. + + + VRDP_AUDIO_MODE_CS указывает, что надо + использовать режим синхронизации клиента для предотвращения + незаполненности или переполнения очереди клиента. + + + + Audio/LogPath указывает абсолютный путь к файлу + журнала аудио. + + + + + Указать качество изображения для перенаправления видео VRDP + + + Команда VBoxManage controlvm имя-ВМ + vrdevideochannelquality задает качество изображения как + значение уровня сжатия JPEG для перенаправления видео. Допустимые + значения между 10% и 100% включительно. Меньшие значения подразумевают + худшее качество, но более высокое сжатие. Смотрите + . + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Указать режим видео для гостевой ВМ + + + Команда VBoxManage controlvm + имя-ВМ setvideomodehint + задает используемый режим видео для гостевой ВМ. У вас должны + быть установлены Дополнения Гостевой ОС. Заметим, что данная + функция работает не для всех гостевых систем. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать макет экрана для монитора в гостевой ВМ + + + Команда VBoxManage controlvm + имя-ВМ setscreenlayout + может быть использована для настройки ВМ с несколькими мониторами. + Указанный экран гостевой ВМ может быть включен или отключен + или может быть настроен пользовательский макет экрана. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Сделать снимок экрана с монитора виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ screenshotpng делает + снимок экрана с монитора гостевой системы и сохраняет его в + формате PNG в указанном файле. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + имя-файла задает имя создаваемого + PNG файла. + + + монитор задает номер монитора + откуда сделать снимок. Для ВМ с единственным монитором это + значение 0. + + + + + Включить или выключить запись сессии виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ recording включает + или выключает запись сессии ВМ в WebM/VP8 файл. Допустимые значения + on, которое начинает запись, когда стартует + сессия ВМ и off, отключающее запись. Значение + по умолчанию off. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать экран виртуальной машины для записи + + + Команда VBoxManage controlvm + имя-ВМ recording screens + позволяет задать экран ВМ для записи. Запись для каждого + указанного вами экрана сохраняется в отдельный файл в папке + машины. Нельзя изменять эту настройку пока запись включена. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + all указывает, что записывать все экраны ВМ. + + + none указывает, что не надо записывать экраны. + + + ID-экрана задает один или больше экранов + ВМ для записи. + + + + + Задать файл для сохранения записанной сессии виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ recording filename + задает файл для сохранения записанной сессии. Нельзя изменять + эту настройку пока запись включена. + + + По умолчанию запись сохраняется в файл, находящийся в папке машины, + с именем ВМ в качестве имени файла и расширением + webm. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать разрешение записанного видео + + + Команда VBoxManage controlvm имя-ВМ + recording videores задает разрешение записанного видео в + пикселах. Нельзя изменять эту настройку пока включена запись. + + + Используйте инструмент Настройки для отображения настроек записи видео, + основанных на разрешении (размере кадра). Смотрите поле Размер Кадра + во вкладке Запись страницы Монитор для просмотра значения по умолчанию. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + Разрешение задается в виде + ширинаxвысота: + + + + ширина задает ширину в пикселах. + + + высота задает высоту в пикселах. + + + + + Задать битрейт видео + + + + Команда VBoxManage controlvm + имя-ВМ recording videorate + задает битрейт видео в килобит в секунду. Увеличение этого + значения улучшает качество видео за счет увеличения размера + файла. Нельзя изменять это значение пока включена запись. + + + Используйте инструмент Настройки для отображения настроек + записи видео, основанных на размере кадра. Смотрите поле + Качество Видео вкладки Запись страницы Монитор для просмотра + значения по умолчанию. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать максимальную частоту видео + + + Команда VBoxManage controlvm + имя-ВМ recording videofps + задает максимальную частоту видео для записи. Частота видео + измеряется в кадрах в секунду (FPS). Запись пропускает кадры, + имеющие частоту выше, чем указанный максимум. Увеличение + частоты уменьшает количество пропущенных кадров и увеличивает + размер файла. Нельзя изменять эту настройку пока включена + запись. + + + Используйте инструмент Настройки для отображения настроек записи + видео, основанных на размере кадра. Смотрите поле Частота Кадров во + вкладке Запись страницы Монитор для просмотра значения по + умолчанию. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать максимальное время записи видео + + + + Команда VBoxManage controlvm + имя-ВМ recording maxtime + задает максимальное время записи в секундах. Запись + останавливается по прошествии заданного количества секунд. + Если это значение равно нулю, запись продолжается пока + не будет остановлена принудительно. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать максимальный размер записанного видео + + + Команда VBoxManage controlvm + имя-ВМ recording maxfilesize + задает максимальный размер записанного видео в мегабайтах. + Запись останавливается когда файл достигает заданного размера. + Если это значение равно нулю, запись продолжается пока не будет + остановлена принудительно. Нельзя изменять эту настройку пока + включена запись. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Задать учетные данные для удаленного входа в виртуальные машины Windows + + + Команда setcredentials позволяет задать + учетные данные для удаленного входа в Windows ВМ. + Смотрите . + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + имя-пользователя задает имя + пользователя под которым необходимо производить вход + в Windows ВМ. + + + Опция + + задает файл откуда брать пароль для + имя-пользователя. + + Опция взаимоисключающая с опцией + . + + + Опция + + задает пароль для имя-пользователя. + + Такой дизайн не соответствует рекомендациям Oracle по + безопасности. Вы не должны указывать пароль в командной + строке, потому что он может быть виден в списке процессов. + + Опция взаимоисключающая с опцией + . + + + Опция позволяет включать или + отключать локальные входы. Допустимые значения + on для включения локальных входов и + off для отключения. + + + + + Добавить виртуальный ЦПУ в виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ plugcpu добавляет + виртуальный ЦПУ в указанную ВМ если горячее подключение ЦПУ + включено. ID задает индекс + добавляемого виртуального ЦПУ и он должен быть в диапазоне + от 0 до максимального количества настроенных ЦПУ. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Удалить виртуальный ЦПУ из виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ unplugcpu удаляет + виртуальный ЦПУ из указанной ВМ если горячее подключение ЦПУ + включено. ID задает индекс + удаляемого виртуального ЦПУ и он должен быть в диапазоне + от 0 до максимального количества настроенных ЦПУ. Нельзя + удалить ЦПУ 0. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Установить максимальное время физического ЦПУ, используемого виртуальным ЦПУ + + + Команда VBoxManage controlvm + имя-ВМ cpuexecutioncap + задает максимальное количество времени физического ЦПУ + используемого виртуальным ЦПУ. Допустимые значения - это + процент между 1 и 100. + Значение 50 указывает, что единственный + виртуальный ЦПУ может использовать до 50% физического ЦПУ. + По умолчанию установлено 100. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Изменить приоритет процесса ВМ + + + Команда VBoxManage controlvm + имя-ВМ vm-process-priority + задает схему приоритета процесса ВМ используемую при старте + и работе ВМ. + + + Допустимые значения: + + + + default – Приоритет процесса + по умолчанию, определенный ОС. + + + flat – Предполагает политику + планирования, которая устанавливает для процесса + приоритет по умолчанию, при этом, всем потокам процесса + устанавливается один и тот же приоритет. + + + low – Предполагает политику + планирования, которая устанавливает приоритет процесса + в основном ниже приоритета по умолчанию ОС хоста. + + + normal – Предполагает политику + планирования, которая честно разделяет ресурсы ЦПУ с + другими процессами, имеющими приоритет по умолчанию + ОС хоста. + + + high – Предполагает политику + планирования, которая устанавливает приоритет процесса + выше приоритета по умолчанию ОС хоста. Эта политика + может повлиять на другие процессы, заставляя их ожидать + ресурса ЦПУ больше положенного времени, что может + привести к непредсказуемому поведению. + + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Подключить вебкамеру к виртуальной машине + + + Команда VBoxManage controlvm + имя-ВМ webcam attach + подключает вебкамеру к работающей ВМ. Задайте вебкамеру + через абсолютный путь к камере в ОС хоста или через псевдоним. + Используйте команду VBoxManage list webcams + для получения псевдонимов вебкамер. + + + Обратите внимание, что псевдоним .0 - это + устройство получения видео по умолчанию в ОС хоста. + .1 - это первое устройство получения видео, + .2 - второе, и т.д. Порядок устройств + зависит от системы хоста. + + + Можно указать необязательные настройки в виде пар имя-значение + разделенных точкой с запятой (;). Эти + свойства позволяют настроить устройство эмулируемой вебкамеры. + + + Поддерживаются следующие настройки: + + + + MaxFramerate + + Задает максимальную частоту кадров с которой видео отправляется + в ВМ. Задается в кадрах в секунду. Более высокие значения + увеличивают нагрузку на ЦПУ, так что этот параметр можно + использовать для уменьшения нагрузки на ЦПУ. Значение + по умолчанию - no maximum limit. Это значение + позволяет ВМ использовать любую частоту кадров, поддерживаемую + вебкамерой. + + + + MaxPayloadTransferSize + + Задает максимальное количество байтов, принимаемого ВМ из + эмулируемой камеры в одном буфере. Значение по умолчанию - + 3060 байт, используемое некоторыми + вебкамерами. Если ВМ способна использовать буферы большего + размера, это может немного уменьшить нагрузку на ЦПУ. + Заметим, что некоторые гостевые ОС могу не поддерживать + более высокие значения MaxPayloadTransferSize. + + + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Отключить вебкамеру от виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ webcam detach + отключает вебкамеру от работающей ВМ. Задайте вебкамеру + через абсолютный путь к камере в ОС хоста или через псевдоним. + Используйте команду VBoxManage list webcams + для получения псевдонимов вебкамер. + + + Когда вебкамера отключается от хоста, ОС хоста определяет поведение + эмулируемой вебкамеры. + + + + Хосты Windows: Устройство + эмулируемой вебкамеры отключается от ВМ автоматически. + + + Хосты Mac OS X, которые работают + по крайней мере под OS X 10.7: Устройство + эмулируемой вебкамеры остается подключенным к ВМ. Его + необходимо отключить вручную, используя команду + VBoxManage controlvm webcam detach. + + + Хосты Linux: Устройство + эмулируемой вебкамеры отключается от ВМ автоматически + только если вебкамера активно транслирует видео. Если + эмулируемая камера не активна, необходимо отключить ее + вручную, используя команду VBoxManage controlvm + имя-ВМ webcam detach. + + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Отобразить вебкамеры, подключенные к виртуальной машине + + + Команда VBoxManage controlvm + имя-ВМ webcam list показывает + вебкамеры, подключенные к работающей ВМ. Вывод отображает список + абсолютных путей или псевдонимов подключенных к ВМ вебкамер, + используя команду VBoxManage controlvm + имя-ВМ webcam attach. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Передать пароль шифрования в виртуальную машину + + + Команда VBoxManage controlvm + имя-ВМ addencpassword + обеспечивает шифрованную ВМ имя-ВМ + паролем шифрования для возможности старта в фоновом режиме. + Укажите абсолютный путь к файлу с паролем в хост-системе. + Если вместо имя-файла указан + -, VBoxManage предложит + ввести пароль. + + + Используйте опцию для указания + что пароль должен быть удален из памяти ВМ или сохранен когда + ВМ приостановлена. + + + Если ВМ приостановлена и пароль очищен используйте + VBoxManage controlvm имя-ВМ + addencpassword, чтобы указать пароль для продолжения + выполнения ВМ. Используйте эту функцию если не хотите оставлять + пароль в памяти ВМ пока ВМ приостановлена событием приостановки + хоста. + + + + Можно шифровать данные, хранящиеся в образах жестких дисков, + испольуемых ВМ. &product-name; использует алгоритм AES в режиме + XTS и поддерживает 128 и 256 битные ключи шифрования данных + (DEK). Зашифрованный DEK хранится в свойствах носителя и + расшифровывается при старте ВМ когда вы передаете пароль + шифрования. + + + + Используйте команду VBoxManage encryptmedium + для создания носителя зашифрованного DEK. Смотрите + . + + + Графический интерфейс &product-name; предложит ввести пароль + шифрования при старте зашифрованной ВМ. + + + Используйте следующую команду для старта в фоновом режиме + зашифрованной ВМ: + + + $ VBoxManage startvm имя-ВМ --type headless + + + Затем, используйте следующую команду для передачи пароля + шифрования: + + + $ VBoxManage имя-ВМ controlvm addencpassword имя-ВМ - + Пароль: пароль-шифрования + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Отозвать пароль шифрования из виртуальной машины + + + Команда VBoxManage controlvm + имя-ВМ removeencpassword + отзывает указанный пароль шифрования для всех зашифрованных + носителей, подключенных к ВМ. + + + ID - идентификатор пароля, который + вы хотите отозвать. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Отозвать все пароли шифрования из виртуальной машины + + + Команда VBoxManage controlvm имя-ВМ + removeallencpasswords отзывает все пароли шифрования + для всех зашифрованных носителей подключенных к ВМ. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + Изменить режим подключения виртуального последовательного порта в виртуальной машине + + + Команда VBoxManage controlvm + имя-ВМ changeuartmode + изменяет режим подключения для указанного виртуального + последовательного порта. Допустимые значения последовательного + порта - это числа, начинающиеся с 1. + + + Эта команда не влияет прямо на состояние выполнения ВМ. + + + + disconnected + + Отключает устройство. + + + + server имя-канала + + Указывает имя канала сервера. + + + + client имя-канала + + Указывает имя канала клиента. + + + + tcpserver порт + + Указывает номер порта сервера TCP. + + + + tcpclient имя-хоста:порт + + Указывает имя хоста и номер порта клиента TCP. + + + + file имя-файла + + Указывает имя файла. + + + + имя-устройства + + Указывает имя устройства. + + + + + + Включить автостарт ВМ во время загрузки хост-системы + + + Команда VBoxManage controlvm + имя-ВМ autostart-enabled + указывает включить или отключить автоматический старт ВМ во + время загрузки хост-системы. Вы должны произвести некоторую + настройку хост-системы перед тем как вы сможете использовать + данный функционал. Смотрите . + Допустимые значения on, включающую + функцию автостарта для ВМ и off, + отключающую ее. Значение по умолчанию off. + + + + Установить задержку старта ВМ во время загрузки хост-системы + + + Команда VBoxManage controlvm + имя-ВМ autostart-delay + задает задержку в секундах перед тем, как ВМ будет запущена + во время загрузки хост-системы. Смотрите + . + + + + + + Примеры + + + Следующая команда временно останавливает выполнение ВМ + ol7. + +$ VBoxManage controlvm ol7 pause + + Следующая команда настраивает операции буфера обмена для ВМ + ol7. Копирование данных буфера обмена + разрешено в обоих направлениях между хостом и гостевой + системой. + +$ VBoxManage controlvm ol7 clipboard mode bidirectional + + + + Смотрите также + + , + , + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-convertfromraw.xml b/doc/manual/ru_RU/man_VBoxManage-convertfromraw.xml new file mode 100644 index 00000000..f14caee4 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-convertfromraw.xml @@ -0,0 +1,248 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage convertfromraw + + + + VBoxManage-convertfromraw + 1 + + + + VBoxManage-convertfromraw + преобразует образ raw диска в образ виртуального диска + &product-name; + + + + + + VBoxManage convertfromraw + входной-файл + выходной-файл + --format= + VDI + VMDK + VHD + + --uuid=uuid + --variant=Standard,Fixed,Split2G,Stream,ESX + + + + VBoxManage convertfromraw stdin + выходной-файл + --format= + VDI + VMDK + VHD + + --uuid=uuid + --variant=Standard,Fixed,Split2G,Stream,ESX + + + + + Описание + + Команда VBoxManage convertfromraw позволяет + преобразовать образ raw диска в образ виртуального диска + &product-name; (VDI). + + + + Для совместимости с ранними версиями &product-name;, можно + использовать команду VBoxManage convertdd + вместо команды VBoxManage convertfromraw. + + + + Преобразовать файл raw диска в файл образа виртуального диска + + + Команда VBoxManage convertfromraw + преобразует указанный входной файл образа raw диска в + VDI файл &product-name; + + + + входной-файл + + Указывает имя файла образа raw диска для преобразования. + + + + выходной-файл + + Указывает имя файла, куда записывать VDI данные. + + + + + + Задает формат формат создаваемого образа диска. Допустимыми + значениями являются VDI, + VMDK, и VHD. Формат + по умолчанию VDI. + + + + + + Задает Универсальный Уникальный Идентификатор (UUID) + выходного файла. + + + + + + Задает требуемые варианты формата выходного файла. Это + список значений вариантов разделенный запятыми. Далее + указаны допустимые значения: + + + Standard - тип образа диска + по умолчанию. Динамически расширяющийся файл. + + + Fixed использует файл образа диска + фиксированного размера. + + + Split2G показывает что образ диска + разделяется на сегменты по 2 ГБ. Это значение только + для VMDK. + + + Stream оптимизирует образ диска + для загрузки. Это значение только для VMDK. + + + ESX используется в некоторых + продуктах VMWare. Это значение только для VMDK. + + + Заметим, что не все комбинации вариантов допустимы. + Указание несовместимых значений вариантов в списке + ведет к выдаче сообщения об ошибке. + + + + + + Преобразовать raw данные из стандартного потока ввода в файл образа виртуального диска + + + Команда VBoxManage convertfromraw stdin + читает содержимое образа диска из стандартного потока ввода. + Рассматривайте использование команды этой формы в + последовательности каналов. + + + + выходной-файл + + Указывает имя файла, куда записывать VDI данные. + + + + + + Задает формат формат создаваемого образа диска. Допустимыми + значениями являются VDI, + VMDK и VHD. Формат + по умолчанию VDI. + + + + + + Задает UUID выходного файла. + + + + + + Задает требуемые варианты формата выходного файла. Это + список значений вариантов разделенный запятыми. Далее + указаны допустимые значения: + + + Standard - тип образа диска + по умолчанию. Динамически расширяющийся файл. + + + Fixed использует файл образа диска + фиксированного размера. + + + Split2G показывает что образ диска + разделяется на сегменты по 2 ГБ. Это значение только + для VMDK. + + + Stream оптимизирует образ диска + для загрузки. Это значение только для VMDK. + + + ESX используется в некоторых + продуктах VMWare. Это значение только для VMDK. + + + Заметим, что не все комбинации вариантов допустимы. + Указание несовместимых значений вариантов в списке + ведет к выдаче сообщения об ошибке. + + + + + + + + Примеры + + + Следующая команда преобразует входной файл образа raw диска + disk01.raw. Выходной файл - это VDI образ + диска называемый disk02.vdi. + +$ VBoxManage convertfromraw disk01.raw disk02.vdi + + Следующая команда преобразует входной файл образа raw диска + disk01.raw. Выходной файл - это VMDK образ + диска называемый disk02.vmdk. + +$ VBoxManage convertfromraw disk01.raw disk02.vmdk --format VMDK + + diff --git a/doc/manual/ru_RU/man_VBoxManage-createmedium.xml b/doc/manual/ru_RU/man_VBoxManage-createmedium.xml new file mode 100644 index 00000000..01ea97c4 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-createmedium.xml @@ -0,0 +1,219 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage createmedium + + + + VBoxManage-createmedium + 1 + + + + VBoxManage-createmedium + создает новый носитель + &product-name; + + + + + + VBoxManage createmedium + + disk + dvd + floppy + + --filename=имя-файла + + --size=мегабайты + --sizebyte=байты + + --diffparent= + UUID + имя-файла + + --format= + VDI + VMDK + VHD + + --variant Standard,Fixed,Split2G,Stream,ESX,Formatted,RawDisk + --property + имя=значение + --property-file + имя=/путь/к/файлу/со/значением + + + + + Описание + + Команда VBoxManage createmedium создает новый + носитель, такой как файл образа диска. + + + + Для совместимости с ранними версиями &product-name; можно + использовать команды createvdi и + createhd вместо команды + createmedium. + + + + + disk | dvd | floppy + + Указывает тип носителя. Значение по умолчанию + disk. + + + + + + Указывает абсолютный путь к файлу в файловой системе хоста. + + + + + + Задает емкость образа в мегабайтах. + + + + + + Задает емкость образа в байтах. + + + + + + Указывает Универсальный Уникальный Идентификатор (UUID) или + абсолютный путь к родительскому файлу разностного образа в + файловой системе хоста. + + Используйте этот файл для совместного использования + базового образа диска между ВМ. + + + + + + Задает формат выходного файла. Допустимые форматы + VDI, VMDK и + VHD. Формат по умолчанию + VDI. + + + + + + Задает варианты формата файла для целевого носителя в + виде списка значений разделенных запятыми. Допустимы + следующие значения: + + + Standard - это тип образа диска + по умолчанию. Динамически расширяющийся файл. + + + Fixed использует файл образа диска + фиксированного размера. + + + Split2G показывает, что образ диска + разделяется на сегменты по 2 ГБ. Это значение только + для VMDK. + + + Stream оптимизирует образ диска + для загрузки. Это значение только для VMDK. + + + ESX используется в некоторых + продуктах VMWare. Это значение только для VMDK. + + + Formatted + + Только для образов флоппи. Автоматически форматирует + носитель. + + + RawDisk используется для создания + raw дисков. Это значение только для VMDK. + + + + + Заметим, что не все комбинации вариантов допустимы. Указание + несовместимых значений вариантов в списке ведет к выдаче + сообщения об ошибке. + + + + + + Задает требуемые параметры, зависящие от формата файла в + форме ключ=значение. Опционально. + + + + + + + Задает требуемые параметры, зависящие от формата файла в + форме key=файл/со/значением. Значение + берется из файла. Опционально. + + + + + + + Примеры + + + Следующая команда создает новый файл образа диска, называемый + disk01.vdi. Файл имеет размер 1024 мегабайта. + +$ VBoxManage createmedium --filename disk01.vdi --size 1024 + + Следующая команда создает новый файл образа флоппи диска, называемый + floppy01.vdi. Файл имеет размер 1 мегабайт. + +$ VBoxManage createmedium floppy --filename floppy01.img --size 1 + + diff --git a/doc/manual/ru_RU/man_VBoxManage-createvm.xml b/doc/manual/ru_RU/man_VBoxManage-createvm.xml new file mode 100644 index 00000000..0f39e8d3 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-createvm.xml @@ -0,0 +1,175 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage createvm + + + + VBoxManage-createvm + 1 + + + + VBoxManage-createvm + создает новую виртуальную машину + &product-name; + + + + + + VBoxManage createvm + --name=имя-ВМ + --basefolder=основная-папка + --default + --group=ID-группы,... + --ostype=тип-ОС + --register + --uuid=uuid + + + + + Описание + + Команда VBoxManage createvm создает новый + XML-файл определения виртуальной машины (ВМ). + + + Необходимо указать имя ВМ, используя . Это имя по умолчанию + используется как имя файла настроек, имеющего расширение + .vbox, а также как имя папки машины, + находящейся в директории $HOME/VirtualBox VMs. + + + Фактическое имя файла может не соответствовать имени ВМ если + оно нарушает требования к имени файла ОС хоста (например + использование разделителя пути или других зарезервированных + символов, все это будет заменено на символ подстановки). Если + ВМ будет позднее переименована, имена файла и папки будут + обновлены автоматически чтобы соответствовать новому имени. + + + + + Опции команды + + В дополнение к требуемому указанию имени или UUID ВМ, можно + указать следующие опции: + + + + + + Задает имя папки в которую сохранять файл конфигурации + машины для новой ВМ. + + Обратите внимание, что имена файла и папки не изменяются если + переименовать ВМ. + + + + + + Применяет аппаратную конфигурацию по умолчанию для указанной + гостевой ОС. По умолчанию, ВМ создается с минимальным + оборудованием. + + + + + + Назначает ВМ на указанные группы. Если указывается более + чем одна группа, разделите их запятыми. + + Заметим, что каждая группа идентифицируется через ID группы, + начинающаяся с символа слэш (/), поэтому + группы могут быть вложенные. По умолчанию, ВМ всегда + назначается на группу /. + + + + + + Указывает гостевую ОС для запуска в ВМ. Запустите команду + VBoxManage list ostypes для просмотра + доступных типов ОС. + + + + + + Регистрирует ВМ в &product-name;. По умолчанию команда + VBoxManage createvm создает только + XML конфигурацию для ВМ но не регистрирует ВМ. Если не + регистрировать ВМ при создании, можно запустить команду + VBoxManage registervm после создания. + + + + + + Задает Универсальный Уникальный Идентификатор (UUID) ВМ. + Убедитесь что этот UUID уникален в пространстве имен + &product-name; хоста или его членства в группах ВМ, если + хотите зарегистрировать ВМ. По умолчанию &product-name; + предоставляет UUID. + + + + + + + Примеры + + + Следующая команда создает ВМ называемую vm2 + где планируется запускать 64 битную версию Orace Linux. + +$ VBoxManage createvm --name "vm2" --ostype "Oracle_64" + + Следующая команда создает и регистрирует ВМ называемую + vm3. + +$ VBoxManage createvm --name "vm3" --register + + + + Смотрите также + + , + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-debugvm.xml b/doc/manual/ru_RU/man_VBoxManage-debugvm.xml new file mode 100644 index 00000000..44967c7f --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-debugvm.xml @@ -0,0 +1,673 @@ + + + + +%all.entities; +]> + + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage debugvm + + + + VBoxManage-debugvm + 1 + + + + VBoxManage-debugvm + интроспекция и гостевая отладка + &product-name; + + + + + VBoxManage debugvm + uuid|имя-ВМ + dumpvmcore + --filename=name + + + VBoxManage debugvm + uuid|имя-ВМ + info + элемент + аргументы + + + VBoxManage debugvm + uuid|имя-ВМ + injectnmi + + + VBoxManage debugvm + uuid|имя-ВМ + log + --release--debug + настройки-группы + + + VBoxManage debugvm + uuid|имя-ВМ + logdest + --release--debug + назначения + + + VBoxManage debugvm + uuid|имя-ВМ + logflags + --release--debug + флаги + + + VBoxManage debugvm + uuid|имя-ВМ + osdetect + + + VBoxManage debugvm + uuid|имя-ВМ + osinfo + + + VBoxManage debugvm + uuid|имя-ВМ + osdmesg + --lines=строки + + + VBoxManage debugvm + uuid|имя-ВМ + getregisters + --cpu=id + набор-регистров.имя-регистра + + + VBoxManage debugvm + uuid|имя-ВМ + setregisters + --cpu=id + набор-регистров.имя-регистра=значение + + + VBoxManage debugvm + uuid|имя-ВМ + show + --human-readable--sh-export--sh-eval--cmd-set + элемент-настроек + + + VBoxManage debugvm + uuid|имя-ВМ + stack + --cpu=id + + + VBoxManage debugvm + uuid|имя-ВМ + statistics + --reset + --descriptions + --pattern=шаблон + + + VBoxManage debugvm + uuid|имя-ВМ + guestsample + --filename=имя-файла + --sample-interval-us=интервал + --sample-time-us=время + + + + Описание + + + Команды "debugvm" предназначены для экспертов, которые хотят разобраться в деталях + исполнения виртуальной машины. Как и отладчик VM описанный в + , эти команды полезны только если хорошо разбираетесь + в архитектуре PC и знаете как отлаживать программное обеспечение. + + + + Общие параметры + + Все подкоманды debugvm выполняются в работающей виртуальной + машине: + + + uuid|имя-ВМ + Или UUID или имя (чувствительно к регистру) ВМ. + + + + + + debugvm dumpvmcore + + + Создает файл системного дампа указанной ВМ. Этот файл будет иметь + стандартный формат ELF ядра (с пользовательскими секциями); Смотрите + . + + + Команда соответствует команде writecore отладчика. + + + + + Имя выходного файла. + + + + + + debugvm info + + + Отображает информацию относительно VMM, эмуляции устройств и + назначенных драйверов. + + + Команда соответствует команде info отладчика. + + + + элемент + + Имя элемента для отображения. Специальное имя + показывает список всех доступных + элементов и подсказок по необязательным аргументам. + + + + аргументы + + Необязательная строка аргументов для обработчика элемента. + Большинство элементов не требуют дополнительных аргументов. Нераспознанные + аргументы в основном игнорируются. + + + + + + + + debugvm injectnmi + + + Внедряет немаскируемое прерывание (NMI) в гостевую систему. Это может быть + полезно для определенных сценариев отладки. Что точно произойдет, зависит + от гостевой операционной системы, однако NMI может вызвать крах всей + гостевой ОС. Не используйте если не знаете что вы делаете. + + + + + debugvm log + + + Изменяет настройки группы для журналирования ВМ процесса в режимах отладки + () или выпуска (). + + + настройки-группы в основном строки в форме + em.e.f.l, hm=~0 + и -em.f. Поддерживаются базовые подстановочные + знаки для сопоставления групп. Группа + all - это псевдоним для всех групп. + + + Пожалуйста, имейте ввиду, что настройки группы применяются как модификация + текущих настроек. + + + Эта команда соответствует команде log отладчика. + + + + + debugvm logdest + + + Изменяет настройки назначения для журналирования ВМ процесса в режимах + отладки () или выпуска (). + Более подробную информацию по формату назначения лучше посмотреть в + src/VBox/Runtime/common/log/log.cpp. + + + назначения - это одна или несколько мнемоник, + которые могут предваряться "no" для их отключения. Некоторые из них берут + значения после разделителей ":" или "=". Множественные мнемоники могут + разделяться через пробел или задаваться как отдельные аргументы в командной + строке. + + + Список доступных назначений: + + + + + Указывает файл журнала. Если файл журнала не указан, он + будет сгенерирован на основе текущего времени UTC и имени процесса ВМ и + помещен в текущую директорию процесса ВМ. Заметим, что данная команда + не имеет силы если файл журнала уже открыт. + + + + + Указывает директорию для файлов журналов. Заметим, что данная + команда не имеет силы если файл журнала уже открыт. + + + + + Ненулевые значения включают историю журналов. Значение показывает + сколько хранить старых файлов журналов. + + + + + Максимальный размер файла журнала перед сменой файла. По умолчанию бесконечно. + + + + Максимальный возраст (в секундах) файла журнала перед сменой файла. По умолчанию бесконечно. + + + + Записывать журнал только в буфер журнала до явного сброса на диск + (например через assertion). Это быстро и сохраняет дисковое пространство. + + + + Записывать содержимое журнала в стандартный поток вывода. + + + + Записывать содержимое журнала в стандартный поток ошибок. + + + + Записывать содержимое журнала в отладчик, если поддерживается ОС хоста. + + + + Записывать содержимое журнала в COM порт. Применимо только для raw-режима и ring-0 журналирования. + + + + Пользовательское назначение, не имеющее значения для процессов ВМ. + + + + Эта команда соответствует команде logdest отладчика. + + + + + debugvm logflags + + + Изменяет флаги журналирования ВМ процесса в режимах отладки + () или выпуска (). Пожалуйста, + имейте ввиду, что изменения применяются к существующим и не подменяют их. + + + флаги - это список мнемоник, опционально предваряемые + "no", "!", "~" или "-" для смены значения на противоположное. Префикс "+" может + использоваться для отмены предыдущего противоположного значения или как разделитель, + хотя лучше использовать пробел или отдельные аргументы. + + + Список мнемоник флагов с их противоположной формой, где применимо + (звездочка показывает значение по умолчанию): + + + + + Включает или выключает журналирование. + + + + Включает буферизацию вывода журнала перед записью в назначение. + + + + Открывать ли файл назначения со сквозной буферизацией или нет. + + + + Включает сброс выходного файла на диск после каждой записи в журнал. + + + + + Предварять каждую строку журнала количеством блокировок текущего потока. + + + + Предварять каждую строку журнала ID текущего ЦПУ. + + + + Предварять каждую строку журнала ID текущего процесса. + + + + Предварять каждую строку журнала числовыми значениями флагов соответствующих записи в журанал. + + + + Предварять каждую строку журнала мнемониками флагов соответствующих записи в журанал. + + + + Предварять каждую строку журнала номером группы соответствующей записи в журанал. + + + + Предварять каждую строку журнала именем группы соответствующей записи в журанал. + + + + Предварять каждую строку журнала ID текущего потока. + + + + Предварять каждую строку журнала именем текущего потока. + + + + Предварять каждую строку журнала текущим временем UTC. + + + + Предварять каждую строку журнала текущим монотонным временем, прошедшим с момента старта программы. + + + + Предварять каждую строку журнала текущим монотонным временем в милисекундах, прошедшим с момента старта программы. + + + + Предварять каждую строку журнала текущим монотонным временем в наносекундах. + + + + Предварять каждую строку журнала текущим временем ЦПУ (TSC). + + + + Выбирает как отображать префиксы ts и + tsc: как время относительно предыдущей строки журнала + или как абсолютное время. + + + + Выбирает как форматировать префиксы ts и + tsc: как шестнадцатиричные значения или как десятичные. + + + + + + + Пользовательский префикс записи журнала. По умолчанию не имеет значения для ВМ процессов. + + + + + Выводить используя окончания строк в стиле DOS (CRLF) или UNIX (LF). + + + + Перезаписывать файл назначения или добавлять строки в конец файла. + + + + + Эта команда соответствует команде logflags отладчика. + + + + + debugvm osdetect + + + Заставляет отладчик VMM (заново) определить гостевую операционную систему (ОС). + Команда сначала загружает все плагины отладчика. + + + Эта команда соответствует команде detect отладчика. + + + + + debugvm osinfo + + + Отображает информацию о гостевой операционной системе (ОС), ранее + определенной отладчиком VMM. + + + + + debugvm osdmesg + + + Отображает журнал ядра гостевой ОС, если она определена и поддерживается. + + + + + Количество отображаемых строк. Счет ведется с конца журнала. + По умолчанию бесконечно. + + + + + + debugvm getregisters + + + Получает значения регистров гостевых ЦПУ и эмулируемых устройств. + + + + набор-регистров.имя-регистра + + Один или несколько регистров, где каждый указывается в следующих формах: + + набор-регистров.имя-регистра.под-поле + набор-регистров.имя-регистра + имя-регистра-цпу.под-поле + имя-регистра-цпу + all + + Форма all показывает все регистры (без под-полей). + Имена регистров не чувствительно к регистру. + + + + + + Выбирает набор регистров ЦПУ при указании только + регистра ЦПУ (3-я и 4-я формы). По умолчанию 0. + + + + + + + debugvm setregisters + + + Изменяет значения регистров гостевой ОС и эмулируемых устройств. + + + + набор-регистров.имя-регистра=значение + + Присвоение значений одному или нескольким регистрами, где каждый + указывается в следующих формах: + + набор-регистров.имя-регистра.под-поле=значение + набор-регистров.имя-регистра=значение + имя-регистра-цпу.под-поле=значение + имя-регистра-цпу=значение + + Форматр значений должен быть в том же стиле, в каком отображаются + по команде getregisters, за исключением того, что + могут быть указаны восмеричные и десятичные значения вместо + шестнадцатиричных. + + + + + Выбирает набор регистров ЦПУ при указании только + регистра ЦПУ (3-я и 4-я формы). По умолчанию 0. + + + + + + + debugvm show + + + Отображает настройки журнала для ВМ. + + + + + Выбирает человеко-читаемый вывод. + + + + Выбирает формат вывода в стиле bourne shell команды export. + + + + Выбирает формат вывода в стиле аргументов bourne shell команды eval. + + + + Выбирает формат вывода в стиле команды DOS SET. + + + settings-item + + Указывает что отображать. Один или несколько из следующих: + + logdbg-settings - настройки журнала в режиме отладки. + logrel-settings - настройки журнала в режиме выпуска. + log-settings - псевдоним для настроек журнала в режимах и отладки и выпуска. + + + + + + + + + debugvm stack + + + Разматывает стеки гостевого ЦПУ в меру наших возможностей. Рекомендуется + сначала запустить команду osdetect чтобы получить + символы и возможно информацию для раскрутки стека. + + + + + Выбирает один гостевой ЦПУ, у которого надо отобразить стек. По умолчанию все ЦПУ. + + + + + + + debugvm statistics + + + Отображает или сбрасывает статистики VMM. + + + Получает значения регистров для гостевых ЦПУ и эмулируемых устройств. + + + + + Шаблоны с подстановочными знаками в стиле DOS/NT для выбранных статистик. + Множественные шаблоны указываются через символ '|' (канал) в качестве разделителя. + + + + + Выбрать сброс вместо режима отображения. + + + + + + + debugvm guestsample + + + Создает отчет с выборками о гостевой активности. + + + Получает имя файла куда сбрасывать отчет. + + + + + Имя файла куда сбрасывать отчет с выборками. + + + + + Интервал в микросекундах между гостевыми выборками. + + + + + Количество микросекунд, в течение которых берется выборка. + + + + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-dhcpserver-dhcpoptions.xml b/doc/manual/ru_RU/man_VBoxManage-dhcpserver-dhcpoptions.xml new file mode 100644 index 00000000..4ca9dde3 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-dhcpserver-dhcpoptions.xml @@ -0,0 +1,231 @@ + + + + + + + 1 - SubnetMask + IPv4 netmask. Set to the value of the --netmask option by default. + + 2 - TimeOffset + UTC offset in seconds (32-bit decimal value). + + 3 - Routers + Space separated list of IPv4 router addresses. + + 4 - TimeServers + Space separated list of IPv4 time server (RFC 868) addresses. + + 5 - NameServers + Space separated list of IPv4 name server (IEN 116) addresses. + + 6 - DomainNameServers + Space separated list of IPv4 DNS addresses. + + 7 - LogServers + Space separated list of IPv4 log server addresses. + + 8 - CookieServers + Space separated list of IPv4 cookie server (RFC 865) addresses. + + 9 - LPRServers + Space separated list of IPv4 line printer server (RFC 1179) addresses. + + 10 - ImpressServers + Space separated list of IPv4 imagen impress server addresses. + + 11 - ResourseLocationServers + Space separated list of IPv4 resource location (RFC 887) addresses. + + 12 - HostName + The client name. See RFC 1035 for character limits. + + 13 - BootFileSize + Number of 512 byte blocks making up the boot file (16-bit decimal value). + + 14 - MeritDumpFile + Client core file. + + 15 - DomainName + Domain name for the client. + + 16 - SwapServer + IPv4 address of the swap server that the client should use. + + 17 - RootPath + The path to the root disk the client should use. + + 18 - ExtensionPath + Path to a file containing additional DHCP options (RFC2123). + + 19 - IPForwarding + Whether IP forwarding should be enabled by the client (boolean). + + 20 - OptNonLocalSourceRouting + Whether non-local datagrams should be forwarded by the client (boolean) + + 21 - PolicyFilter + List of IPv4 addresses and masks paris controlling non-local source routing. + + 22 - MaxDgramReassemblySize + The maximum datagram size the client should reassemble (16-bit decimal value). + + 23 - DefaultIPTTL + The default time-to-leave on outgoing (IP) datagrams (8-bit decimal value). + + 24 - PathMTUAgingTimeout + RFC1191 path MTU discovery timeout value in seconds (32-bit decimal value). + + 25 - PathMTUPlateauTable + RFC1191 path MTU discovery size table, sorted in ascending order (list of 16-bit decimal values). + + 26 - InterfaceMTU + The MTU size for the interface (16-bit decimal value). + + 27 - AllSubnetsAreLocal + Indicates whether the MTU size is the same for all subnets (boolean). + + 28 - BroadcastAddress + Broadcast address (RFC1122) for the client to use (IPv4 address). + + 29 - PerformMaskDiscovery + Whether to perform subnet mask discovery via ICMP (boolean). + + 30 - MaskSupplier + Whether to respond to subnet mask requests via ICMP (boolean). + + 31 - PerformRouterDiscovery + Whether to perform router discovery (RFC1256) (boolean). + + 32 - RouterSolicitationAddress + Where to send router solicitation requests (RFC1256) (IPv4 address). + + 33 - StaticRoute + List of network and router address pairs addresses. + + 34 - TrailerEncapsulation + Whether to negotiate the use of trailers for ARP (RTF893) (boolean). + + 35 - ARPCacheTimeout + The timeout in seconds for ARP cache entries (32-bit decimal value). + + 36 - EthernetEncapsulation + Whether to use IEEE 802.3 (RTF1042) rather than of v2 (RFC894) ethernet encapsulation (boolean). + + 37 - TCPDefaultTTL + Default time-to-live for TCP sends (non-zero 8-bit decimal value). + + 38 - TCPKeepaliveInterval + The interface in seconds between TCP keepalive messages (32-bit decimal value). + + 39 - TCPKeepaliveGarbage + Whether to include a byte of garbage in TCP keepalive messages for backward compatibility (boolean). + + 40 - NISDomain + The NIS (Sun Network Information Services) domain name (string). + + 41 - NISServers + Space separated list of IPv4 NIS server addresses. + + 42 - NTPServers + Space separated list of IPv4 NTP (RFC1035) server addresses. + + 43 - VendorSpecificInfo + Vendor specific information. Only accessible using --set-opt-hex. + + 44 - NetBIOSNameServers + Space separated list of IPv4 NetBIOS name server (NBNS) addresses (RFC1001,RFC1002). + + 45 - NetBIOSDatagramServers + Space separated list of IPv4 NetBIOS datagram distribution server (NBDD) addresses (RFC1001,RFC1002). + + 46 - NetBIOSNodeType + NetBIOS node type (RFC1001,RFC1002): 1=B-node, 2=P-node, 4=M-node, and 8=H-node (8-bit decimal value). + + 47 - NetBIOSScope + NetBIOS scope (RFC1001,RFC1002). Only accessible using --set-opt-hex. + + 48 - XWindowsFontServers + Space separated list of IPv4 X windows font server addresses. + + 49 - XWindowsDisplayManager + Space separated list of IPv4 X windows display manager addresses. + + 62 - NetWareIPDomainName + Netware IP domain name (RFC2242) (string). + + 63 - NetWareIPInformation + Netware IP information (RFC2242). Only accessible using --set-opt-hex. + + 64 - NISPlusDomain + The NIS+ domain name (string). + + 65 - NISPlusServers + Space separated list of IPv4 NIS+ server addresses. + + 66 - TFTPServerName + TFTP server name (string). + + 67 - BootfileName + Bootfile name (string). + + 68 - MobileIPHomeAgents + Space separated list of IPv4 mobile IP agent addresses. + + 69 - SMTPServers + Space separated list of IPv4 simple mail transport protocol (SMPT) server addresses. + + 70 - POP3Servers + Space separated list of IPv4 post office protocol 3 (POP3) server addresses. + + 71 - NNTPServers + Space separated list of IPv4 network news transport protocol (NTTP) server addresses. + + 72 - WWWServers + Space separated list of default IPv4 world wide web (WWW) server addresses. + + 73 - FingerServers + Space separated list of default IPv4 finger server addresses. + + 74 - IRCServers + Space separated list of default IPv4 internet relay chat (IRC) server addresses. + + 75 - StreetTalkServers + Space separated list of IPv4 StreetTalk server addresses. + + 76 - STDAServers + Space separated list of IPv4 StreetTalk directory assistance (STDA) server addresses. + + 78 - SLPDirectoryAgent + Addresses of one or more service location protocol (SLP) directory agent, and an indicator of whether their use is mandatory. Only accessible using --set-opt-hex. + + 79 - SLPServiceScope + List of service scopes for the service location protocol (SLP) and whether using the list is mandator. Only accessible using --set-opt-hex. + + 119 - DomainSearch + Domain search list, see RFC3397 and section 4.1.4 in RFC1035 for encoding. Only accessible using --set-opt-hex. + + diff --git a/doc/manual/ru_RU/man_VBoxManage-dhcpserver.xml b/doc/manual/ru_RU/man_VBoxManage-dhcpserver.xml new file mode 100644 index 00000000..1652ae50 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-dhcpserver.xml @@ -0,0 +1,611 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage dhcpserver + + + + VBoxManage-dhcpserver + 1 + + + + VBoxManage-dhcpserver + Управление DHCP сервером + &product-name; + + + + + VBoxManage dhcpserver add + + --network=имя-сети + --interface=имя-интерфейса + + --server-ip=адрес + --netmask=маска + --lower-ip=адрес + --upper-ip=адрес + + --enable + --disable + + + + --global + --set-opt=номер-опции-dhcp значение + --set-opt-hex=номер-опции-dhcp строка-hex + --force-opt=номер-опции-dhcp + --supress-opt=номер-опции-dhcp + --min-lease-time=секунды + --default-lease-time=секунды + --max-lease-time=секунды + + + + --group=имя + --set-opt=номер-опции-dhcp значение + --set-opt-hex=номер-опции-dhcp строка-hex + --force-opt=номер-опции-dhcp + --supress-opt=номер-опции-dhcp + --incl-mac=адрес + --excl-mac=адрес + --incl-mac-wild=шаблон + --excl-mac-wild=шаблон + --incl-vendor=строка + --excl-vendor=строка + --incl-vendor-wild=шаблон + --excl-vendor-wild=шаблон + --incl-user=строка + --excl-user=строка + --incl-user-wild=шаблон + --excl-user-wild=шаблон + --min-lease-time=секунды + --default-lease-time=секунды + --max-lease-time=секунды + + + + --vm=имя|uuid + --nic=1-N + --set-opt=номер-опции-dhcp значение + --set-opt-hex=номер-опции-dhcp строка-hex + --force-opt=номер-опции-dhcp + --supress-opt=номер-опции-dhcp + --min-lease-time=секунды + --default-lease-time=секунды + --max-lease-time=секунды + --fixed-address=адрес + + + + --mac-address=адрес + --set-opt=номер-опции-dhcp значение + --set-opt-hex=номер-опции-dhcp строка-hex + --force-opt=номер-опции-dhcp + --supress-opt=номер-опции-dhcp + --min-lease-time=секунды + --default-lease-time=секунды + --max-lease-time=секунды + --fixed-address=адрес + + + + VBoxManage dhcpserver modify + + --network=имя-сети + --interface=имя-интерфейса + + --server-ip=адрес + --lower-ip=адрес + --upper-ip=адрес + --netmask=маска + + --enable + --disable + + + + --global + --del-opt=номер-опции-dhcp + --set-opt=номер-опции-dhcp значение + --set-opt-hex=номер-опции-dhcp значение + --force-opt=номер-опции-dhcp + --unforce-opt=номер-опции-dhcp + --supress-opt=номер-опции-dhcp + --unsupress-opt=номер-опции-dhcp + --min-lease-time=секунды + --default-lease-time=секунды + --max-lease-time=секунды + --remove-config + + + + --group=имя + --set-opt=номер-опции-dhcp значение + --set-opt-hex=номер-опции-dhcp строка-hex + --force-opt=номер-опции-dhcp + --unforce-opt=номер-опции-dhcp + --supress-opt=номер-опции-dhcp + --unsupress-opt=номер-опции-dhcp + --del-mac=адрес + --incl-mac=адрес + --excl-mac=адрес + --del-mac-wild=шаблон + --incl-mac-wild=шаблон + --excl-mac-wild=шаблон + --del-vendor=строка + --incl-vendor=строка + --excl-vendor=строка + --del-vendor-wild=шаблон + --incl-vendor-wild=шаблон + --excl-vendor-wild=шаблон + --del-user=строка + --incl-user=строка + --excl-user=строка + --del-user-wild=шаблон + --incl-user-wild=шаблон + --excl-user-wild=шаблон + --zap-conditions + --min-lease-time=секунды + --default-lease-time=секунды + --max-lease-time=секунды + --remove-config + + + + --vm=имя|uuid + --nic=1-N + --del-opt=номер-опции-dhcp + --set-opt=номер-опции-dhcp значение + --set-opt-hex=номер-опции-dhcp строка-hex + --force-opt=номер-опции-dhcp + --unforce-opt=номер-опции-dhcp + --supress-opt=номер-опции-dhcp + --unsupress-opt=номер-опции-dhcp + --min-lease-time=секунды + --default-lease-time=секунды + --max-lease-time=секунды + --fixed-address=адрес + --remove-config + + + + --mac-address=адрес + --del-opt=номер-опции-dhcp + --set-opt=номер-опции-dhcp значение + --set-opt-hex=номер-опции-dhcp строка-hex + --force-opt=номер-опции-dhcp + --unforce-opt=номер-опции-dhcp + --supress-opt=номер-опции-dhcp + --unsupress-opt=номер-опции-dhcp + --min-lease-time=секунды + --default-lease-time=секунды + --max-lease-time=секунды + --fixed-address=адрес + --remove-config + + + + VBoxManage dhcpserver remove + + --network=имя-сети + --interface=имя-интерфейса + + + + VBoxManage dhcpserver start + + --network=имя-сети + --interface=имя-интерфейса + + + + VBoxManage dhcpserver restart + + --network=имя-сети + --interface=имя-интерфейса + + + + VBoxManage dhcpserver stop + + --network=имя-сети + --interface=имя-интерфейса + + + + VBoxManage dhcpserver findlease + + --network=имя-сети + --interface=имя-интерфейса + + --mac-address=mac + + + + + Описание + + + Команды dhcpserver позволяют управлять встроенным в + VirtualBox DHCP сервером. Это может быть полезно при использовании + внутренней сети или сети хоста. Теоретически, его можно использовать + также и для сетевого моста, но это может вызвать конфликты с другими + DHCP серверами, находящимся в вашей физической сети. + + + + Общие параметры + + Все подкоманды dhcpserver работают во внутренней + сети, идентифицируемой через ее имя или, в случае с сетью хоста, через + имя интерфейса: + + + --network=имя-сети + Имя внутренней сети. Это то же самое имя, которое было + задано в опции VBoxManage modifyvm --intnet при + настройке ВМ на внутреннюю сеть. Также его можно посмотреть в поле + "Имя сети VBox" вывода команд + VBoxManage list intnets, + VBoxManage list natnets или + VBoxManage list hostonlyifs. + + + + --interface=имя-интерфейса + Имя интерфейса сети хоста. Это то же самое имя, которое + было задано в опции VBoxManage modifyvm --host-only-adapter + при настройке ВМ на сеть хоста. Оно также может быть получено в поле "Имя" + вывода команды VBoxManage list hostonlyifs. + + + + + + + dhcpserver add + + + Добавляет новый DHCP сервер в сеть или интерфейс сети хоста. + + + Опции для настройки ядра DHCP сервера: + + + + + IP адрес, который должен быть у DHCP сервера. + + + , + Диапазон IP адресов в управлении у DHCP сервера. + Он не должен включать адрес самого DHCP сервера, но должен быть в + той же сети. Границы включены, так что и верхний и нижний адреса + также распределяются между клиентами. + + + + Сетевая маска. Обычно 255.255.255.0. + + + , --disable + Включает или выключает DHCP сервер. Если не указан, + сервер создается в выключенном состоянии и не распределяет адресов. + + + + Опции, определяющие область настроек: + + + + + Задать глобальную область настроек. Любые последующие опции + будут применены ко всем клиентам DHCP. + + + + Задать область настроек, ограниченную первым NIC указанной ВМ. + Любые последующие опции будут применены только + к этому интерфейсу и никуда больше. + + + + Задать область настроек, ограниченную указанным номером интерфейса ВМ, + заданной через опцию . + + + + + Задать область настроек, ограниченную указанным MAC адресом. + + + + Задать область настроек, ограниченную указанной группой. + + + + Опции для настройки текущей выбранной области: + + + + + Добавляет указанный номер опции DHCP (0-255) и значение. Формат значения + опции зависит от опции (обычно человеко-читаемый) и проверяется API и сервером DHCP. + + + + + Добавляет указанный номер опции DHCP (0-255) и значение. Значение параметра + задается в виде необработанной последовательности шестнадцатеричных байтов, которые могут + быть разделены двоеточием. Проверка этих значений не производится ни API, ни DHCP сервером, + они как есть передаются клиенту. + + + + + Принудительно отправляет указанный номер опции DHCP (0-255) клиенту + независимо от того, запрашивал он это или нет (при условии, что опция настроена + со значением на некотором уровне). + + + + + Предотвращает отправку клиенту указанного номера опции DHCP (0–255), + если он присутствует в этой или более высокой области настроек. + + + + + Устанавливает минимальное время аренды для текущей области в секундах. + Ноль означает получение значения из более высокого уровня настроек или использование + значения по умолчанию. + + + + + Задает время аренды по умолчанию для текущей области в секундах. Ноль + означает получение значения из более высокого уровня настроек или использование + значения по умолчанию. + + + + + Устанавливает максимальное время аренды для текущей области в секундах. + Ноль означает получение значения из более высокого уровня настроек или использование + значения по умолчанию. + + + + + Назначение фиксированного адреса для области настроек + или . Пустой + адрес возвращает обратно назначение динамического + адреса. + + + + + + Опции для настройки условий членства в группе (исключение, переопределение, включение): + + + + + Включает указанный MAC адрес в группу. + + + + Исключает указанный MAC адрес из группы. + + + + Включает указанный шаблон MAC адреса в группу. + + + + Исключает указанный шаблон MAC адреса из группы. + + + + Включает указанный ID класса поставщика в группу. + + + + Исключает указанный ID класса поставщика из группы. + + + + Включает указанный шаблон ID класса поставщика в группу. + + + + Исключает указанный шаблон ID класса поставщика из группы. + + + + Включает указанный ID класса пользователя в группу. + + + + Исключает указанный ID класса пользователя из группы. + + + + Включает указанный шаблон ID класса пользователя в группу. + + + + Исключает указанный шаблон ID класса пользователя из группы. + + + + + + dhcpserver modify + + + Команда модифицирует существующую конфигурацию сервера DHCP. Она принимает те же + опции как и команда add и в дополнении нижеследующие, относящиеся + к области настроек: + + + + + Противоположность к , которая удаляет + указанный номер опции DHCP (0-255) из настроек сервера. Как и у + , область удаления регулируется опциями + , , + и . + + + + + Удаляет указанный номер опции DHCP (0-255) из списка принудительно + передаваемых клиенту опций (то есть обратная к ). Как и у + , область удаления регулируется опциями + , , + и . + + + + + Удаляет указанный номер DHCP (0-255) из списка опций для подавления + передачи клиенту (то есть обратная к ). Как и у + , область удаления регулируется опциями + , , + и . + + + + + Удаляет настройки из текущей области. Область + нельзя удалить. После этой опции область настроек будет изменена на + . + + + + + И дополнение к опциям условий членства в группах: + + + + + Удаляет указанный MAC адрес из условий группы. + + + + Удаляет указанный шаблон MAC адреса из условий группы. + + + + Удаляет указанный ID класса поставщика из условий группы. + + + + Удаляет указанный шаблон ID класса поставщика из условий группы. + + + + Удаляет указанный ID класса пользователя из условий группы. + + + + Удаляет указанный шаблон ID класса пользователя из условий группы. + + + + Удаляет все условия группы. + + + + + + dhcpserver remove + + + Удаляет указанный сервер DHCP. + + + + + dhcpserver start + + + Запускает указанный сервер DHCP. + + + + + dhcpserver restart + + + Перезапускает указанный сервер DHCP. Сервер DHCP должен работать на момент запуска команды. + + + + + dhcpserver stop + + + Останавливает указанный сервер DHCP. + + + + + dhcpserver findlease + + + Производит просмотр базы данных аренды. Эта команда в основном + для получения IP адреса работающей ВМ. + + + + + MAC адрес для просмотра в базе данных аренды. + + + + + + Общие параметры DHCP: + + + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-discardstate.xml b/doc/manual/ru_RU/man_VBoxManage-discardstate.xml new file mode 100644 index 00000000..64a1fba6 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-discardstate.xml @@ -0,0 +1,101 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage discardstate + + + + VBoxManage-discardstate + 1 + + + + VBoxManage-discardstate + удаление сохраненного состояния виртуальной машины + &product-name; + + + + + + VBoxManage discardstate + + uuid + имя-ВМ + + + + + + Описание + + Команда VBoxManage discardstate удаляет + сохраненное состояние виртуальной машины (ВМ) если она не + работает на текущий момент. Эта операция заставляет + операционную систему ВМ перезагрузиться при следующем старте ВМ. + + + + Где возможно, избегайте этого действия. Эффект от этой команды + равносилен отсоединению кабеля питания из физической машины. + + + + + uuid|имя-ВМ + + Указывает Универсальный Уникальный Идентификатор (UUID) или + имя ВМ. + + + + + + + Примеры + + + Следующая команда удаляет файл сохраненного состояния ВМ, + называемой vm2. Когда в следующий раз + вы запустите ВМ, операционная система ВМ будет перезагружена. + +$ VBoxManage discardstate vm2 + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-encryptmedium.xml b/doc/manual/ru_RU/man_VBoxManage-encryptmedium.xml new file mode 100644 index 00000000..679e25a1 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-encryptmedium.xml @@ -0,0 +1,169 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage encryptmedium + + + + VBoxManage-encryptmedium + 1 + + + + VBoxManage-encryptmedium + управляет образом или носителем, зашифрованными DEK + &product-name; + + + + + + VBoxManage encryptmedium + + uuid + имя-файла + + --cipher=ID-шифра + --newpassword=пароль + --newpasswordid=ID-пароля + --oldpassword=пароль + + + + + Описание + + Команда VBoxManage encryptmedium позволяет + создавать или управлять образом или носителем, зашифрованными DEK. + Можно зашифровать образ, расшифровать образ, изменить пароль + шифрования образа. Смотрите . + + + + uuid | имя-файла + + Задает Универсальный Уникальный Идентификатор (UUID) или + абсолютный путь шифруемого носителя или образа. + + + + + + Задает новый пароль шифрования. пароль + - это или абсолютный путь к файлу с паролем в хост-системе + или -. Во втором случае будет предложено + ввести пароль. + + Необходимо использовать опцию + вместе с этой опцией . + + + + + + Задает исходный пароль шифрования. пароль + - это или абсолютный путь к файлу с паролем в хост-системе + или -. Во втором случае будет предложено + ввести пароль. + + Эта опция позволяет получить доступ к зашифрованному + носителю или образу, чтобы произвести следующее: + + + Расшифровать зашифрованный образ используя эту опцию. + + + Изменить пароль зашифрованного образа используя опцию + . + + + Изменить шифр образа используя опцию + . + + + + + + + Указывает шифр для шифрования. Допустимые значения + AES-XTS128-PLAIN64 или + AES-XTS256-PLAIN64. + + Эта опция позволяет установить или изменить шифрование + носителя или образа. + + + + + + Указывает новый идентификатор пароля, используемого для + корректной идентификации, когда передаются несколько паролей + во время старта ВМ. + + Если вы используете одни и те же пароль и идентификатор + пароля при шифровании нескольких образов то вам достаточно + указать пароль один раз во время старта ВМ. + + + + + + + Примеры + + + Следующий пример показывает как зашифровать образ + ol7u4-1.vdi, используя шифр + AES-XTS128-PLAIN64, задавая идентификатор + пароля 1001 и используя файл пароля + $HOME/pwfile: + +$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-1.vdi" \ + --cipher="AES-XTS128-PLAIN64" --newpasswordid="1001" --newpassword=$HOME/pwfile + + Следующий пример показывает как расшифровать зашифрованный образ + называемый ol7u4-2.vdi: + +$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-2.vdi" \ + --oldpassword=- + Пароль: исходный-пароль + + Следующий пример показывает как изменить пароль зашифрованного + образа называемого ol7u4-3.vdi. Команда + читает исходный пароль из файла $HOME/pwfile.orig + и назначает идентификатор пароля 1001. + +$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-3.vdi" \ + --oldpassword=$HOME/pwfile.orig --newpassword=$HOME/pwfile --newpasswordid="1001" + + diff --git a/doc/manual/ru_RU/man_VBoxManage-encryptvm.xml b/doc/manual/ru_RU/man_VBoxManage-encryptvm.xml new file mode 100644 index 00000000..c1716b55 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-encryptvm.xml @@ -0,0 +1,199 @@ + + + + +%all.entities; +]> + + + May 2021 + VBoxManage encryptvm + + + + VBoxManage-encryptvm + 1 + + + + VBoxManage-encryptvm + изменение шифрования и паролей ВМ + Oracle VM VirtualBox + + + + + + VBoxManage encryptvm + + uuid + имя-ВМ + + setencryption + --old-password файл + --cipher идентификатор-шифра + --new-password файл + --new-password-id идентификатор-пароля + --force + + + + VBoxManage encryptvm + + uuid + имя-ВМ + + checkpassword + файл + + + + VBoxManage encryptvm + + uuid + имя-ВМ + + addpassword + --password файл + --password-id идентификатор-пароля + + + + VBoxManage encryptvm + + uuid + имя-ВМ + + removepassword + идентификатор-пароля + + + + + Описание + + Команда VBoxManage encryptvm позволяет изменить + шифрование или добавить и удалить пароли пользователя виртуальной + машины (ВМ). Далее идут секции, описывающие поддерживаемые подкоманды: + + + Задать шифрование виртуальной машины + + + Команда VBoxManage encryptvm + имя-ВМ setencryption + изменяет шифрование ВМ. + + + Опция задает старый пароль + шифрования. Укажите абсолютный путь к файлу с паролем в + операционной системе хоста или -. Во втором + случае будет предложено ввести пароль. + + + Опция задает новый шифр для + шифрования ВМ. + + + Опция задает новый пароль + шифрования ВМ. Укажите абсолютный путь к файлу с паролем в + операционной системе хоста или -. Во втором + случае будет предложено ввести пароль. + + + Опция задает идентификатор + нового пароля шифрования ВМ. + + + Опция заставляет систему принудительно + перешифровать ВМ вместо простой смены пароля. + + + + Проверить заданный пароль на корректность + + + Команда VBoxManage encryptvm + имя-ВМ checkpassword проверяет + корректность указанного пароля. + + + Пароль может передан через файл. Укажите абсолютный путь к файлу + с паролем в операционной системе хоста или -. + Во втором случае будет предложено ввести пароль. + + + + Добавить пароль для расшифровки виртуальной машины + + + Команда VBoxManage encryptvm + имя-ВМ addpassword добавляет + пароль для расшифровки ВМ. + + + Опция задает пароль шифрования. + Укажите абсолютный путь к файлу с паролем в операционной + системе хоста или -. Во втором случае будет + предложено ввести пароль. + + + Опция задает id указанного пароля. + + + + Отозвать пароль для расшифровки виртуальной машины + + + Команда VBoxManage encryptvm + имя-ВМ removepassword отзывает + пароль для расшифровки ВМ. + + + Укажите идентификатор отзываемого пароля. Пароль становится + неизвестным и ВМ не может быть расшифрована. + + + + + + Примеры + + + Следующая команда шифрует ВМ ol7 с помощью + AES-256 получая пароль через приглашение командной строки: + +$ VBoxManage encryptvm ol7 setencryption --cipher=AES-256 --new-password - --new-password-id vmid + + + + Смотрите также + + , + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-export.xml b/doc/manual/ru_RU/man_VBoxManage-export.xml new file mode 100644 index 00000000..cc62924a --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-export.xml @@ -0,0 +1,438 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage export + + + + VBoxManage-export + 1 + + + + VBoxManage-export + экспорт одной или нескольких виртуальных машин в виртуальную конфигурацию или в облачную службу + &product-name; + + + + + + VBoxManage export + машины + --output=имя + + --legacy09 + --ovf09 + --ovf10 + --ovf20 + + --manifest + --options= + manifest + iso + nomacs + nomacsbutnat + + --vsys=номер-виртуальной-системы + --description=описание + --eula=текст-лицензии + --eulafile=имя-файла + --product=имя-продукта + --producturl=URL-продукта + --vendor=имя-поставщика + --vendorurl=URL-поставщика + --version=информация-о-версии + --vmname=имя-ВМ + + + + VBoxManage export + машина + --output=провайдер-облачной-службы + --opc10 + --vmname=имя-ВМ + --cloud=номер-виртуальной-системы + --cloudprofile=имя-облачного-профиля + --cloudshape=имя-облачной-формы + --clouddomain=облачный-домен + --clouddisksize=размер-диска-в-ГБ + --cloudbucket=имя-корзины + --cloudocivcn=OCI-VCN-ID + --cloudocisubnet=ID-подсети-OCI + --cloudkeepobject= + true + false + + --cloudlaunchinstance= + true + false + + --cloudlaunchmode= + EMULATED + PARAVIRTUALIZED + + --cloudpublicip= + true + false + + + + + + Описание + + Команда VBoxManage export позволяет экспортировать + одну или несколько виртуальных машин (ВМ) из &product-name;. + Можно экспортировать ВМ в одно из следующих назначений: + + + + Виртуальная конфигурация в OVF формат. + Включает копирование ее виртуальных дисков в сжатый VMDK. + + + Облачная служба, например &oci;. + Экспортирует только одну машину VM. + + + + Для более детальной информации об экспорте ВМ из &product-name; + смотрите + + + Экспорт виртуальной машины в виртуальную конфигурацию OVF + + + Команда VBoxManage export позволяет экспортировать + ВМ в виртуальную конфигурацию в формате OVF. + + + + машины + + Задает список, разделенный запятыми, одной или нескольких + машин для экспорта в один файл OVF. + + + + + + Задает файл назначения OVF. Файл может быть OVF, OVA или + файл ZIP сжатый через команду gzip. + Из-за того, что директория, содержащая файл назначения + OFV, также сохраняет экспортированные образы в формате + сжатого VMDK, убедитесь, что на диске, содержащем эту + директорию достаточно свободного места для сохранения + образов. + + Краткая форма этой опции . + + + + + + Экспортирует в устаревший OVF-0.9 формат если продукт + виртуализации не полностью совместим со стандартном + OVF-1.0. + + + + + + Экспортирует в формат OVF 0.9. + + + + + + Экспортирует в формат OVF 1.0. + + + + + + Экспортирует в формат OVF 2.0. + + + + + + Создает манифест экспортированных файлов. + + + + + + Указывает информацию для управления точным содержимым + файла конфигурации. Укажите один или несколько разделенных + запятыми аргументами: + + + manifest + + Создает файл манифеста, который обнаруживает + поврежденные конфигурации при импорте. + + + + iso + + Экспортирует образы DVD в файл ISO. + + + + nomacs + + Исключает все MAC адреса. + + + + nomacsbutnat + + Исключает все MAC адреса кроме тех, что в сети NAT. + + + + + + + + Задает описание ВМ. + + + + + + Задает текст лицензии конечного пользователя. + + + + + + Задает файл лицензии конечного пользователя. + + + + + + Задает имя продукта. + + + + + + Задает URL продукта. + + + + + + Задает имя поставщика. + + + + + + Задает URl поставщика. + + + + + + Задает информацию о версии. + + + + + + Задает имя экспортируемой ВМ. + + + + + + Задает номер виртуальной системы. + + + + + + Экспортировать виртуальную машину в &oci; + + + Команда VBoxManage export позволяет экспортировать + ВМ в провайдер облачной службы, например &oci;. По умолчанию + экспортированный образ диска преобразуется в формат сжатого VMDK. + Это минимизирует размер данных, передаваемых в облачную службу. + + + Некоторые из нижеследующих опций являются настройками конфигурации + экземпляра ВМ. Как результат, укажите Идентификатор Облака Oracle + (OCID) ресурса. Используйте консоль &oci; для просмотра OCID. + + + + + + Указывает краткое имя провайдера облачной службы, куда + необходимо экспортировать ВМ. Для &oci;, укажите + OCI://. + + Краткая форма это опции . + + + + + + Экспорт в формат &oci;. + + + + + + Задает номер, идентифицирующий экспортируемую ВМ. + Нумерация начинается с 0 для первой ВМ. + + + + + + Задает имя экспортируемой ВМ, используемое как имя + ВМ экземпляра в &oci;. + + + + + + Задает облачный профиль, используемый для подключения к + провайдеру облачной службы. Облачный профиль содержит ваши + данные учетной записи &oci;, например ваш OCID пользователя + и отпечаток вашего публичного ключа. + + Для использования облачных профилей у вас должны быть + необходимые разрешения в &oci;. + + + + + + Задает форму, используемую экземпляром ВМ. Форма + определяет количество ЦПУ и размер памяти, выделенных + экземпляру ВМ. Убедитесь, что форма совместима с + экспортируемым образом. + + + + + + Задает домен доступности, используемый экземпляром ВМ. + Введите полное имя домена доступности. + + + + + + Задает размер дискового пространства в гигабайтах, + используемый экспортированным образом диска. Допустимые + значения от 50 ГБ до 300 ГБ. + + + + + + Задает корзину где сохранять загруженные файлы. В &oci;, + корзина - это логический контейнер для хранения объектов. + + + + + + Задает OCID виртуальной облачной сети (VCN), используемой + экземпляром ВМ. + + + + + + Задает OCID подсети VCN, используемой экземпляром ВМ. + + + + + + Указывает сохранять ли экспортированный образ диска + в хранилище объектов Oracle. + + + + + + Указывает запускать ли экземпляр ВМ после завершения + экспорта в &oci;. + + + + + + Указывает режим запуска экземпляра. + Паравиртуализированный режим дает более высокую + производительность. + + + + + + Указывает включать ли публичный IP адрес экземпляру ВМ. + + + + + + + + Примет + + + Следующий пример показывает как экспортировать ВМ + myVM в &oci;. Аргументы опции команды + описывают конфигурацию ВМ myVM_Cloud + в &oci;. + +# VBoxManage export myVM --output=OCI:// --cloud=0 --vmname=myVM_Cloud \ +--cloudprofile="standard user" --cloudbucket=myBucket \ +--cloudshape=VM.Standard2.1 --clouddomain=US-ASHBURN-AD-1 --clouddisksize=50 \ +--cloudocivcn=ocid1.vcn.oc1.iad.aaaa... --cloudocisubnet=ocid1.subnet.oc1.iad.aaaa... \ +--cloudkeepobject=true --cloudlaunchinstance=true --cloudpublicip=true + + diff --git a/doc/manual/ru_RU/man_VBoxManage-extpack.xml b/doc/manual/ru_RU/man_VBoxManage-extpack.xml new file mode 100644 index 00000000..84737991 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-extpack.xml @@ -0,0 +1,159 @@ + + + + +%all.entities; +]> + + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage extpack + + + + VBoxManage-extpack + 1 + + + + VBoxManage-extpack + управление пакетами расширения + &product-name; + + + + + VBoxManage extpack install + --replace + --accept-license=sha256 + имя-tar-архива + + + VBoxManage extpack uninstall + --force + имя + + + VBoxManage extpack cleanup + + + + + Описание + + + extpack install + + + Устанавливает новый пакет расширения в систему. Эта команда завершится с ошибкой, + если более старая версия этого пакет уже установлена. Опция + может быть использована для удаления пакетов более старой версии перед установкой + новой. + + + + Удалить существующую версию пакета расширения. + + + + + Принять текст лицензии с данным SHA-256 хеш значением. + VBoxManage отобразит SHA-256 значение при ручной установке. + Хэш, конечно может быть вычислен путем просмотра внутрь пакета + расширения и использования sha256sum или подобной на файле лицензии. + + + + имя-tar-архива + + Файл, содержащий устанавливаемый пакет расширения. + + + + + + + extpack uninstall + + + Удаляет пакет расширения из системы. Подкоманда также завершится успешно, если + указанный пакет расширения отсутствует в системе. Можно использовать + VBoxManage list extpacks для просмотра имен + установленных пакетов расширений. + + + + + + Отменяет большинство отказов при удалении пакета расширений + + + + имя + + Имя удаляемого пакета расширения. + + + + + + + extpack cleanup + + + Используется для удаления временных файлов и директорий, оставшихся после + предыдущих операций установки или удаления пакетов расширений. + + + + + + + Примеры + + + Как посмотреть список пакетов расширений: +$ VBoxManage list extpacks +Пакеты расширений: 1 +Пакет no. 0: Oracle VM VirtualBox Extension Pack +Версия: 4.1.12 +Ревизия: 77218 +Редакция: +Описание: USB 2.0 Host Controller, VirtualBox RDP, PXE ROM with E1000 support. +VRDE модуль: VBoxVRDP +Годный: да +Почему не годен: + + Как удалить пакет расширения: +$ VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack" +0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +Успешно удалено "Oracle VM VirtualBox Extension Pack". + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-getextradata.xml b/doc/manual/ru_RU/man_VBoxManage-getextradata.xml new file mode 100644 index 00000000..841d961c --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-getextradata.xml @@ -0,0 +1,150 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage getextradata + + + + VBoxManage-getextradata + 1 + + + + VBoxManage-getextradata + просмотр значений ключей, связанных с виртуальной машиной или конфигурацией + &product-name; + + + + + + VBoxManage getextradata + + global + uuid + имя-ВМ + + + ключ + enumerate + + + + + + Описание + + Команда VBoxManage getextradata позволяет получить + данные ключа, связанного с виртуальной машиной (ВМ) или с конфигурацией + &product-name;. + + + + global + + Указывает, что надо получить информацию из конфигурации, + а не из ВМ. + + + + uuid | имя-ВМ + + Указывает Универсальный Уникальный Идентификатор (UUID) или + имя ВМ. + + + + enumerate + + Показывает все значения ключей для указанной ВМ + или конфигурации. + + + + ключ + + Задает ключ, данные которого надо получить. + + + + + + + Примеры + + + Следующая команда получает значение ключа installdate + для ВМ Fedora5: + +$ VBoxManage getextradata Fedora5 installdate +VirtualBox Command Line Management Interface Version номер-версии +Copyright (C) 2005-2022 Oracle and/or its affiliates + +Значение: 2006.01.01 + + Следующая команда получает информацию для всех ключей ВМ + OracleLinux7u4: + +$ VBoxManage getextradata OracleLinux7u4 enumerate +Ключ: GUI/LastCloseAction, Значение: PowerOff +Ключ: GUI/LastGuestSizeHint, Значение: 1048,696 +Ключ: GUI/LastNormalWindowPosition, Значение: 851,286,1048,738 + + Следующая команда получает информацию для всех ключей в + конфигурации: + +$ VBoxManage getextradata global enumerate +Ключ: GUI/Details/Elements, Значение: general,system,preview,display,storage,audio,network,usb,sharedFolders,description +Ключ: GUI/DetailsPageBoxes, Значение: general,system,preview,display,storage,audio,network,usb,sharedFolders,description +Ключ: GUI/GroupDefinitions/, Значение: m=43349dd8-2aa3-41b8-988f-0e255ce68090,m=9ebcd81e-5231-48ce-a27d-28218757f3fe,m=c690e8b1-93a0-4c95-9cd7-6437fff93251,m=f7c1e10d-3722-4891-887e-07b3c4104946 +Ключ: GUI/HideDescriptionForWizards, Значение: NewVM +Ключ: GUI/LastItemSelected, Значение: m=ol7u4 +Ключ: GUI/LastWindowPosition, Значение: 951,510,960,520 +Ключ: GUI/RecentFolderCD, Значение: C:/Users/user1 +Ключ: GUI/RecentListCD, Значение: C:\Users\user1\V1.iso,C:\Users\user1\V2.iso,C:\Users\user1\V3.iso +Ключ: GUI/SplitterSizes, Значение: 318,637 +Ключ: GUI/SuppressMessages, Значение: remindAboutMouseIntegration,remindAboutAutoCapture +Ключ: GUI/Toolbar/MachineTools/Order, Значение: Details +Ключ: GUI/Tools/LastItemsSelected, Значение: Welcome,Details +Ключ: GUI/UpdateCheckCount, Значение: 71 +Ключ: GUI/UpdateDate, Значение: 1 d, 2019-04-10, stable, 5.2.22 +Ключ: GUI/VirtualMediaManager/Details/Expanded, Значение: true + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-guestcontrol.xml b/doc/manual/ru_RU/man_VBoxManage-guestcontrol.xml new file mode 100644 index 00000000..b0fd865a --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-guestcontrol.xml @@ -0,0 +1,1288 @@ + + + + +%all.entities; +]> + + + $Date: 2023-01-05 14:44:46 +0100 (Thu, 05 Jan 2023) $ + VBoxManage guestcontrol + + + + VBoxManage-guestcontrol + 1 + + + + VBoxManage-guestcontrol + управляет виртуальной машиной из хост-системы + &product-name; + + + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + run + --domain=имя-домена + --dos2unix + --exe=имя-файла + --ignore-orphaned-processes + + --no-wait-stderr + --wait-stderr + + + --no-wait-stdout + --wait-stdout + + + --passwordfile=файл-с-паролем + --password=пароль + + --profile + --putenv=имя-переменной=[значение] + --quiet + --timeout=миллисекунды + --unix2dos + --unquoted-args + --username=имя-пользователя + --verbose + -- программа/аргумент0 аргумент + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + start + --domain=имя-домена + --exe=имя-файла + --ignore-orphaned-processes + + --passwordfile=файл-с-паролем + --password=пароль + + --profile + --putenv=имя-переменной=[значение] + --quiet + --timeout=миллисекунды + --unquoted-args + --username=имя-пользователя + --verbose + -- программа/аргумент0 аргумент + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + copyfrom + --domain=имя-домена + --follow + + --passwordfile=файл-с-паролем + --password=пароль + + --quiet + --no-replace + --recursive + --target-directory=хост-директория-назначения + --update + --username=имя-пользователя + --verbose + гостевой-источник0 + гостевой-источник1 [...] + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + copyto + --domain=имя-домена + --follow + + --passwordfile=файл-с-паролем + --password=пароль + + --quiet + --no-replace + --recursive + --target-directory=гостевая-директория-назначения + --update + --username=имя-пользователя + --verbose + хост-источник0 + хост-источник1 [...] + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + mkdir + --domain=имя-домена + --mode=режим + --parents + + --passwordfile=файл-с-паролем + --password=пароль + + --quiet + --username=имя-пользователя + --verbose + гостевая-директория + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + rmdir + --domain=имя-домена + + --passwordfile=файл-с-паролем + --password=пароль + + --quiet + --recursive + --username=имя-пользователя + --verbose + гостевая-директория + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + rm + --domain=имя-домена + --force + + --passwordfile=файл-с-паролем + --password=пароль + + --quiet + --username=имя-пользователя + --verbose + гостевая-директория + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + mv + --domain=имя-домена + + --passwordfile=файл-с-паролем + --password=пароль + + --quiet + --username=имя-пользователя + --verbose + источник + директория-назначения + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + mktemp + --directory + --domain=имя-домена + --mode=режим + + --passwordfile=файл-с-паролем + --password=пароль + + --quiet + --secure + --tmpdir=имя-директории + --username=имя-пользователя + --verbose + имя-шаблона + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + stat + --domain=имя-домена + + --passwordfile=файл-с-паролем + --password=пароль + + --quiet + --username=имя-пользователя + --verbose + имя-файла + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + list + + all + files + processes + sessions + + --quiet + --verbose + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + closeprocess + + --session-id=ID + --session-name=имя-или-шаблон + + --quiet + --verbose + PID + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + closesession + + --all + --session-id=ID + --session-name=имя-или-шаблон + + --quiet + --verbose + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + updatega + --quiet + --verbose + --source=дополнения_гостевой_ос.ISO + --wait-start + -- аргумент + + + + VBoxManage guestcontrol + + uuid + имя-ВМ + + watch + --quiet + --verbose + + + + + Описание + + Команда VBoxManage guestcontrol позволяет + управлять гостевой виртуальной машиной (ВМ) из хост-системы. + Смотрите . + + + Общие опции и операнды + + Следующие опции могут быть использованы с любой подкомандой + VBoxManage guestcontrol: + + + + uuid|имя-ВМ + + Задает Универсальный Уникальный Идентификатор (UUID) или + имя ВМ. + + + + + + Указывает, что команда производит более тихий вывод. + + Краткая форма этой опции . + + + + + + Указывает, что команда производит более подробный вывод. + + Краткая форма этой опции . + + + + + Некоторые подкоманды VBoxManage guestcontrol + требуют, чтобы предоставили гостевые учетные данные для + идентификации. Эти подкоманды: + copyfrom, copyto, + mkdir, mktemp, + mv, rmdir, + rm, run, + start и stat. + + + Хотя вы не можете выполнять анонимные операции, пароль учетной + записи пользователя не является обязательным и зависит от + политики безопасности гостевой ОС. Если у пользователя + пароль не установлен, укажите пустой пароль. В ОС, таких как + Windows, возможно необходимо подстроить политику безопасности, + чтобы разрешить пользовательские учетные записи с пустым паролем. + В дополнение, могут применяться глобальные правила домена, и + поэтому они не могут быть изменены. + + + Следующие опции используются для аутентификации в гостевой ВМ: + + + + + + Задает имя домена для гостевых Windows ВМ. + + + + + + Задает пароль указанного пользователя. Если пароль не + указан в командной строке или файл с паролем пуст, + считается что у пользователя пустой пароль. + + + + + + Задает абсолютный путь к файлу в гостевой ОС, содержащему + пароль для указанного пользователя. Если файл с паролем + пуст или не указан пароль в командной строке, считается + что у пользователя пустой пароль. + + + + + + Задает существующего пользователя в гостевой ОС, от имени + которого запускается процесс. Если не указан, процесс + запускается от имени пользователя хоста. + + + + + + Ограничения на гостевой процесс + + По умолчанию, можно запустить до пяти гостевых процессов + одновременно. Если запускается новый гостевой процесс, который + превысил этот лимит, старый не выполняющийся процесс удаляется + для запуска нового. Вы не сможете получить вывод из удаленного + гостевого процесса. Если все пять гостевых процессов активны и + выполняются, попытка запустить новый гостевой процесс будет + неудачна. + + + Можно модифицировать ограничения на выполнение гостевого процесса + двумя способами: + + + + Используя команду VBoxManage setproperty + для обновления значения гостевого свойства + /VirtualBox/GuestAdd/VBoxService/--control-procs-max-kept. + + + Используя команду VBoxService и указывая + опцию . + + + + Необходимо перезагрузить гостевую ОС после изменения ограничения. + + + Можно обслуживать неограниченное количество гостевых процессов + путем указания значения 0, однако, это не + рекомендуется. + + + + Запуск команды в гостевой виртуальной машине + + + Команда VBoxManage guestcontrol + имя-ВМ run позволяет + исполнять программу в гостевой ВМ. Стандартные потоки ввода, + вывода и ошибок перенаправляются из ВМ в хост-систему до + завершения программы. + + + + ОС Windows навязывает определенные ограничения на графические + приложения. Смотрите . + + + + + + + Указывает абсолютный путь к исполняемому файлу для запуска + в гостевой ВМ. Например C:\Windows\System32\calc.exe. + + + + + + Указывает максимальное время в миллисекундах, + выделенное для работы программы. Во время работы + программы VBoxManage получает ее + вывод. + + Если не указывается величина ожидания, VBoxManage + ждет до бесконечности окончания программы или возникновения ошибки. + + + + + + Устанавливает, изменяет или удаляет переменные окружения + в окружении гостевой ВМ. + + Когда создается гостевой процесс, он работает в + стандартной среде гостевой ОС задаваемой по умолчанию. + Используйте эту опцию, чтобы изменить переменные окружения + в среде по умолчанию. + + Используйте опцию + + для установки или изменения переменной окружения указываемой через имя. + + Используйте опцию + + для удаления переменной окружения указанной через имя. + + Убедитесь, что переменная или значение, содержащие + пробелы должны быть заключены в кавычки. + + Необходимо указать опцию + для каждой модифицируемой переменной окружения. + + Краткая форма этой опции . + + + + + + Отключает экранированные двойные кавычки аргументов, + передаваемые программе. Например \"fred\". + + + + + + Игнорирует процессы-сироты. Еще не реализовано. + + + + + + Использует профиль оболочки, чтобы указать используемое + окружение. Еще не реализовано. + + + + + + Не ждет завершения гостевого процесса или получения его + кода завершения и каких-либо объяснений сбоя. + + + + + + Ждет завершения процесса, чтобы получить его код + завершения и любые объяснения сбоя. Команда + VBoxManage принимает данные со + стандартного потока вывода гостевого процесса во + время выполнения процесса. + + + + + + Не ждет завершения гостевого процесса, чтобы + получить его код завершения, сообщения об + ошибках и флаги. + + + + + + Ждет завершения гостевого процесса для получения + его кода завершения, сообщений об ошибках и флаги. + Команда VBoxManage принимает данные + со стандартного потока ошибок гостевого процесса во + время выполнения процесса. + + + + + + Преобразует гостевой DOS или Windows вывод в UNIX или + Linux вывод. Это преобразование изменяет завершения строк + с CR + LF на LF. Еще не реализовано. + + + + + + Преобразует гостевой UNIX или Linux вывод в DOS или + Windows вывод. Это преобразование изменяет завершения строк + с LF на CR + LF. + + + + + + Задает имя программы и любые аргументы, передаваемые + программе. + + Убедитесь, что все аргументы команды, содержащие пробелы, + заключены в кавычки. + + + + + + Запуск команды в гостевой виртуальной машине + + + Команда VBoxManage guestcontrol + имя-ВМ start позволяет + выполнить гостевую программу до ее завершения. + + + + ОС Windows навязывает определенные ограничения на графические + приложения. Смотрите . + + + + + Копирование файла из гостевой виртуальной машины в директорию в хост-системы + + + Команда VBoxManage guestcontrol + имя-ВМ copyfrom позволяет + скопировать файл из гостевой ВМ в хост-систему. + + + + + + Включает следование по символическим ссылкам в гостевой + файловой системе. + + + + + + Only copies a file if it does not exist on the host yet. + + The short form of this option is . + + + + + + Рекурсивно копирует файлы и директории из указанной + директории в гостевой ВМ. + + Краткая форма этой опции . + + + + + + Задает абсолютный путь к директории назначения в + хост-системе. Например C:\Temp. + + + + + + Only copies a file if the guest file is newer than on the host. + + The short form of this option is . + + + + гостевой-источник0 [гостевой-источник1 [...]] + + Задает абсолютный путь одного или нескольких файлов + для копирования из гостевой ВМ. Например + C:\Windows\System32\calc.exe. Можно + использовать подстановочные знаки. Например + C:\Windows\System*\*.dll. + + + + + + Копирует файл в директорию на гостевой виртуальной машине из хост-системы + + + Команда VBoxManage guestcontrol + имя-ВМ copyto позволяет + скопировать файл из хост-системы в гостевую ВМ. + + + + + + Включает следование по символическим ссылкам в хост-системе. + + + + + + Only copies a file if it does not exist on the guest yet. + + The short form of this option is . + + + + + + Рекурсивно копирует файлы и директории из указанной + директории в хост-системе. + + Краткая форма этой опции . + + + + + + Задает абсолютный путь директории назначения в гостевой + ВМ. Например C:\Temp. + + + + + + Only copies a file if the host file is newer than on the guest. + + The short form of this option is . + + + + хост-источник0 [хост-источник1 [...]] + + Задает абсолютный путь одного или нескольких файлов для + копирования из хост-системы. Например + C:\Windows\System32\calc.exe. Можно + использовать подстановочные знаки для указания нескольких + файлов. Например C:\Windows\System*\*.dll. + + + + + + Создает директорию в гостевой виртуальной машине + + + Команда VBoxManage guestcontrol + имя-ВМ mkdir позволяет + создать один или несколько директорий в гостевой ВМ. + + + Альтернативные формы этой подкоманды: md, + createdir и createdirectory. + + + + + + Создает все отсутствующие родительские директории по + отношению к указанной. + + Например, если попытаться создать директорию + D:\Foo\Bar и директория + D:\Foo не существует, использование + создаст отсутствующую + директорию D:\Foo. Однако, если + попытаться создать D:\Foo\Bar и + не указать опцию , команда + завершится неудачей. + + + + + + Задает режим разрешений для указанной директории. + Если также используется опция , + этот режим задается также для всех ее родительских + директорий. режим - это + четыре восьмеричные цифры, например 0755. + + + + гостевая-директория [гостевая-директория...] + + Задает абсолютный путь к одной или нескольким директориям + для создания в гостевой ВМ. Например D:\Foo\Bar. + + Если все относящиеся к указанной родительские директории + не существуют в гостевой ВМ, необходимо использовать + опцию . + + У вас должно быть достаточно прав в гостевой ВМ, чтобы + создать указанную и ее родительские директории. + + + + + + Удалить директорию из гостевой виртуальной машины + + + Команда VBoxManage guestcontrol + имя-ВМ rmdir позволяет + удалить указанную директорию из гостевой ВМ. + + + Альтернативные формы этой подкоманды removedir + и removedirectory. + + + + + + Рекурсивно удаляет директории из указанной в гостевой ВМ. + + Краткая форма этой опции . + + + + гостевая-директория [гостевая-директория...] + + Задает абсолютный путь к одной или нескольким директориям + для удаления в гостевой ВМ. Можно использовать + подстановочные знаки в именах директорий. Например + D:\Foo\*Bar. + + У вас должно быть достаточно прав в гостевой ВМ, чтобы + удалить указанную и ее родительские директории. + + + + + + Удалить файл из гостевой виртуальной машины + + + Команда VBoxManage guestcontrol + имя-ВМ rm позволяет + удалить указанный файл из гостевой ВМ. + + + Альтернативная форма этой подкоманды removefile. + + + + + + Принудительно выполняет операцию и отменяет любые + запросы подтверждения. + + Краткая форма этой опции . + + + + гостевой-файл [гостевой-файл...] + + Задает абсолютный путь одного или нескольких файлов для + удаления из гостевой ВМ. Можно использовать + подстановочные знаки в именах файлов. Например + D:\Foo\Bar\text*.txt. + + У вас должно быть достаточно прав в гостевой ВМ, чтобы + удалить указанный файл. + + + + + + Переименовать файл или директорию в гостевой виртуальной машине + + + Команда VBoxManage guestcontrol + имя-ВМ mv позволяет + переименовать файлы и директории в гостевой ВМ. + + + Альтернативная форма этой подкоманды move, + ren и rename. + + + + гостевой-источник [гостевой-источник...] + + Задает абсолютный путь к файлу или единичной директории + для перемещения или переименования в гостевой ВМ. Можно + использовать подстановочные знаки в именах файлов. + + У вас должно быть достаточно прав в гостевой ВМ для + доступа к указанному файлу или директории. + + + + назначение + + Задает абсолютный путь к переименовываемым файлу или + директории, или директории назначения, куда + перемещать файлы. Если перемещается только один + файл, назначение может + быть как файлом так и директорией, иначе + назначение должно быть + директорией. + + У вас должно быть достаточно прав в гостевой ВМ для + доступа к файлу или директории назначения. + + + + + + Создать временный файл или директорию в гостевой виртуальной машине + + + Команда VBoxManage guestcontrol + имя-ВМ mktemp позволяет + создать временный файл или директорию в гостевой ВМ. Можно + использовать эту команду для помощи с последующим копированием + файлов из хост-системы в гостевую ВМ. По умолчанию, эта команда + создает файл или директорию в платформо-зависимой директории + temp гостевой ВМ. + + + Альтернативные формы этой подкоманды createtemp + и createtemporary. + + + + + + Создает временную директорию указанную в операнде + шаблон. + + + + + + Обеспечивает безопасное создание файлов и каталогов, + устанавливая режим разрешений 0755. + Любая операция, которая не может быть произведена + безопасно приведет к неудаче. + + + + + + Задает режим разрешений, используемый указанной директорией. + режим - это четыре восьмеричные + цифры, например 0755. + + + + + + Задает абсолютный путь к директории в гостевой ВМ, где + создавать указанный файл или директорию. Если не указан, + директория - это + платформо-зависимая директория temp. + + + + шаблон + + Задает шаблон имени для временного файла без пути к + директории. Шаблон имени файла должен содержать как + минимум одну последовательности трех последовательных + символов X или должен заканчиваться ими. + + + + + + Показать статус файла или файловой системы в гостевой виртуальной машине. + + + Команда VBoxManage guestcontrol + имя-ВМ stat позволяет + отобразить статус файлов или или файловых систем в гостевой + ВМ. + + + + файл [файл ...] + + Задает абсолютный путь к файлу или файловой системе в + гостевой ВМ. Например /home/foo/a.out. + + У вас должно быть достаточно прав в гостевой ВМ для + доступа к указанным файлам или файловым системам. + + + + + + Показать настройки и информацию о статусе гостевой виртуальной машины + + + Команда VBoxManage guestcontrol + имя-ВМ list позволяет + показать настройки гостевого управления и информацию о статусе. + Например, вывол показывает открытые гостевые сессии, гостевые + процессы и файлы. + + + + all|sessions|processes|files + + Указывает тип отображаемой информации. + all показывает все доступные данные, + sessions показывает гостевые сессии, + processes показывает процессы и + files показывает файлы. + + + + + + Завершить процесс в сессии гостевой виртуальной машины + + + Команда VBoxManage guestcontrol + имя-ВМ closeprocess позволяет + завершить гостевой процесс работающий в гостевой сессии. + Указывайте процесс через идентификатор процесса (PID) и сессию, + используя ID сессии или имя. + + + + + + Задает ID гостевой сессии. + + + + + + Задает имя гостевой сессии. Используйте шаблон, + содержащий подстановочные знаки для указания + нескольких сессий. + + + + PID [PID ...] + + Задает список PID гостевых процессов для завершения. + + + + + + Закрыть сессию гостевой виртуальной машины + + + Команда VBoxManage guestcontrol + имя-ВМ closesession позволяет + закрыть гостевую сессию. Указывайте гостевую сессию или через ID + сессии или через имя. + + + + + + Задает ID гостевой сессии. + + + + + + Задает имя гостевой сессии. Используйте шаблон, + содержащий подстановочные знаки для указания + нескольких сессий. + + + + + + Закрывает все гостевые сессии. + + + + + + Обновить ПО Дополнений Гостевой ОС в гостевой виртуальной машине + + + Команда VBoxManage guestcontrol + имя-ВМ updatega позволяет + обновить ПО Дополнений Гостевой ОС, установленное в указанной + гостевой ВМ. + + + Альтернативные формы этой подкоманды + updateadditions и + updateguestadditions. + + + + + + Задает абсолютный путь к .ISO файлу + Дополнений Гостевой ОС в гостевой ВМ. + + + + + + Автоматический перезагружает гостевую систему после успешного + обновления Дополнений Гостевой ОС. + + + + + + Задает максимальное время ожидания (в миллисекундах) заверешения + полного обновления Дополнений Гостевой ОС. По умолчанию, максимальное + время ожидания не используется. + + + + + + Проверяет, что Дополнения Гостевой ОС обновлены успешно после + успешной установки. Перезагрузка гостя обязательна. + + + + + + Ждет когда текущие Дополения Гостевой ОС готовы для + обновления Дополений Гостевой ОС. + + + + + + + Запускает VBoxManage процесс обновления + в гостевой ВМ и ждет начала обновления Дополений Гостевой ОС + перед завершения процесса VBoxManage. + + По умолчанию, команда VBoxManage ждет + завершения обновления Дополений Гостевой ОС перед + завершением. Используйте эту опцию когда работающий + процесс VBoxManage влияет на + взаимодействие между установщиком и гостевой ОС. + + + + + + Задает необязательные аргументы командной строки, которые + передаются программе обновления Дополнений Гостевой ОС. + Можно использовать опцию для передачи + соответствующих аргументов программе обновления для + модернизации еще не установленных функций. + + Убедитесь, что командные аргументы, содержащие пробелы, + заключены в кавычки. + + + + + + Ждать гостевой уровень выполнения + + Команда VBoxManage guestcontrol + имя-ВМ waitrunlevel позволяет + ожидать достижения гостевого уровня выполнения. + + + + + + Задать максимальное время ожидания (в миллисекундах) + достижения уровня выполнения. По умолчанию максимальное + время ожидания не используется. + + + + + + Задает ожидаемый уровень выполнения + + + + + + Показать текущую активность гостевого управления. + + + Команда VBoxManage guestcontrol + имя-ВМ watch позволяет + показать текущую активность гостевого управления. + + + + + + Примеры + + + Следующая команда VBoxManage guestcontrol run + выполняет команду ls -l /usr в Oracle Linux ВМ + My OL VM от имени пользователя + user1. + + +$ VBoxManage --nologo guestcontrol "My OL VM" run --exe "/bin/ls" \ +--username user1 --passwordfile pw.txt --wait-stdout -- -l /usr + + + Опция указывает абсолютный путь команды + для запуска в гостевой ВМ, /bin/ls. + Используйте опцию для передачи любых + аргументов, следующих после команды ls. + + + Используйте опцию для указания + имени пользователя, user1 и опцию + для указания имения файлы, + содержащего пароль для пользователя user1, + pw.txt. + + + Опция ожидает завершения + гостевого процесса ls перед передачей + кода заверешения и вывода команды. Опция + подавляет вывод информации о логотипе. + + + Следующая команда VBoxManage guestcontrol run + выполняет команду ipconfig в Windows ВМ + My Win VM от имени пользователя + user1. Стандартные потоки ввода, вывода + и ошибок перенаправляются из ВМ в хост-систему до завершения + программы. + + +$ VBoxManage --nologo guestcontrol "My Win VM" run \ +--exe "c:\\windows\\system32\\ipconfig.exe" \ +--username user1 --passwordfile pw.txt --wait-stdout + + + Опция задает абсолютный путь команды для + запуска в гостевой ВМ, + c:\windows\system32\ipconfig.exe. Двойные + слеши показанные в этом примере требуются только в UNIX + хост-системах. + + + Используйте опцию для указания имени + пользователя, user1 и опцию + для указания имени файла, + содержащего пароль для пользователя user1, + pw.txt. + + + Опция ожидает завершения + гостевого процесса ls перед передачей + кода заверешения и вывода команды. Опция + подавляет вывод информации о логотипе. + + + Следующая команда VBoxManage guestcontrol start + выполняет команду ls -l /usr в Oracle Linux ВМ + My OL VM до завершения программы. + + +$ VBoxManage --nologo guestcontrol "My Win VM" start \ +--exe "c:\\windows\\system32\\ipconfig.exe" \ +--username user1 --passwordfile pw.txt --wait-stdout + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-guestproperty.xml b/doc/manual/ru_RU/man_VBoxManage-guestproperty.xml new file mode 100644 index 00000000..ceaa5b9b --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-guestproperty.xml @@ -0,0 +1,334 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage guestproperty + + + + VBoxManage-guestproperty + 1 + + + + VBoxManage-guestproperty + управляет гостевыми свойствами виртуальной машины + &product-name; + + + + + + VBoxManage guestproperty get + + uuid + имя-ВМ + + имя-свойства + --verbose + + + + VBoxManage guestproperty enumerate + + uuid + имя-ВМ + + --patterns=шаблоны + + + + VBoxManage guestproperty set + + uuid + имя-ВМ + + имя-свойства + значение-свойства--flags=флаги + + + + VBoxManage guestproperty unset + + uuid + имя-ВМ + + имя-свойства + + + + VBoxManage guestproperty wait + + uuid + имя-ВМ + + шаблоны + --timeout=миллисекунды + --fail-on-timeout + + + + + Описание + + Команда VBoxManage guestproperty позволяет + установить или получить свойства работающей виртуальной машины (ВМ). + Смотрите . Гостевые свойства - + это произвольные пары строк в виде имя-значение, которые могут + быть записаны и прочтены как с гостевой системы так и с хоста. + В результате эти свойства могут быть использованы как канал + связи небольшого объема для строк при условии, что гость работает + и установлены Дополнения Гостевой ОС. Также, Дополнения + Гостевой ОС автоматически устанавливают и поддерживают значения + ключей, начинающихся с /VirtualBox/. + + + Общие командные операнды + + + uuid|имя-ВМ + + Задает Универсальный Уникальный Идентификатор (UUID) или + имя ВМ. + + + + + + Показать все свойства виртуальной машины + + Команда VBoxManage guestproperty enumerate + показывает каждое гостевое свойство и его значение для + указанной ВМ. Заметим, что вывод ограничен если невозможно + подсоединиться к процессу гостевой службы, например потому + что ВМ не работает или не установлены Дополнения Гостевой ОС. + + + + + + Фильтрует список свойств основанный на указанном + шаблоне, который может содержать следующие + подстановочные знаки: + + + * (звездочка) + + Представляет любое количество произвольных символов. + Например, шаблон /VirtualBox* + соответствует всем свойствам, начинающимся с + /VirtualBox. + + + + ? (знак вопроса) + + Представляет один произвольный символ. Например + шаблон fo? соответствует и + foo и for. + + + + | (канал) + + Задает несколько альтернативных шаблонов. + Например шаблон s*|t* + соответствует свойствам, начинающимся с + s или t. + + + + + + + + Получить значение свойства виртуальной машины + + + Команда VBoxManage guestproperty get + получает значение указанного свойства. Если свойство не + найдено, например, потому что гостевая система сейчас не + работает, команда выдает следующее сообщение: + +No value set! + + + имя-свойства + + Задает имя свойства. + + + + + + Выдает значение свойства, метку времени и любые указанные + аттрибуты значения. + + + + + + Задать значение свойства для виртуальной машины + + + Команда VBoxManage guestproperty set позволяет + задать свойство гостевой системы, указывая свойство и его значение. + Если значение опущено, свойство удаляется. + + + + имя-свойства + + Задает имя свойства. + + + + значение-свойства + + Указывает значение свойства. Если значение не указано, + существующее значение удаляется. + + + + + + Задает дополнительные аттрибуты значения. Могут быть указаны + следующие аттрибуты в виде списка значений разделенных запятыми: + + + TRANSIENT + + Удаляет значение с данными ВМ при завершении ВМ. + + + + TRANSRESET + + Удаляет значение при завершении или рестарте ВМ. + + + + RDONLYGUEST + + Задает значение, которое может быть изменено только + хостом. Гостевая система может только прочитать + значение свойства. + + + + RDONLYHOST + + Задает значение, которое может быть изменено только + гостевой системой. Хост может только прочитать + значение свойства. + + + + READONLY + + Задает неизменяемое значение. + + + + + + + + Ожидать создания, удаления или изменения значения свойства + + + Команда VBoxManage guestproperty wait ожидает + создания, удаления или изменения определенного свойства, + описанного строкой шаблона. + + + + шаблоны + + Задает шаблон, соответствующий свойствам, необходимым + для ожидания. По информации о подстановочных знаках + в шаблоне смотрите описание опции + . + + + + + + Задает количество миллисекунд ожидания. + + + + + + Указывает, что команда должна закончиться неудачей + если достигнут порог ожидания. + + + + + + Удалить значение свойства виртуальной машины + + + Команда VBoxManage guestproperty unset + удаляет значение гостевого свойства. + + + Альтернативная формат этой подкоманды delete. + + + + имя-свойства + + Задает имя свойства. + + + + + + + + Примеры + + + Следующая команда выдает список гостевых свойств и их значений + для ВМ win8. + +$ VBoxManage guestproperty enumerate win8 + + Следующая команда создает гостевое свойство называемое + region для ВМ win8. + Значение свойства устанавливается в west. + +$ VBoxManage guestproperty set win8 region west + + diff --git a/doc/manual/ru_RU/man_VBoxManage-hostonlyif.xml b/doc/manual/ru_RU/man_VBoxManage-hostonlyif.xml new file mode 100644 index 00000000..f9310105 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-hostonlyif.xml @@ -0,0 +1,199 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage hostonlyif + + + + VBoxManage-hostonlyif + 1 + + + + VBoxManage-hostonlyif + управление сетевыми интерфейсами хоста + &product-name; + + + + + + VBoxManage hostonlyif ipconfig + имя-интерфейса + + --dhcp + --ip=IPv4-адрес --netmask=IPv4-маска + --ipv6=IPv6-адрес --netmasklengthv6=длина + + + + + VBoxManage hostonlyif create + + + + VBoxManage hostonlyif remove + имя-интерфейса + + + + + Описание + + Команда VBoxManage hostonlyif позволяет + изменить IP конфигурацию интерфейса сети хоста. + Описание сетей хоста смотрите . + Каждый интерфейс сети хоста идентифицируется через имя и + может использовать внутренний DHCP сервер или ручную настройку + IP, как IPv4 так и IPv6. + + + Настроить интерфейс сети хоста + + + Команда VBoxManage hostonlyif ipconfig + настраивает интерфейс сети хоста. + + + + имя-интерфейса + + Задает имя сетевого интерфейса. Имя в форме + vboxnetN, + где N - это экземпляр + интерфейса. + + + + + + Использует DHCP для сетевого интерфейса. + + Эта опция не может использоваться с опциями + , , + и + . + + + + + + Задает IPv4 адрес сетевого интерфейса. + + Эта опция не может использоваться с опциями + , + и . + + + + + + Задает IPv4 маску сетевого интерфейса. Значение по + умолчанию 255.255.255.0. + + Эта опция не может использоваться с + опцией . + + + + + + Задает IPv6 адрес сетевого интерфейса. + + Эта опция не может использоваться с опциями + , + и . + + + + + + Задает длину сетевого интерфейса IPv6. Значение по + умолчанию 64. + + Можно использовать эту опцию только с + опцией . + + + + + + Создать сетевой интерфейс в хост-системе + + + Команда VBoxManage hostonlyif create создает + новый интерфейс сети хоста в операционной сети хоста (ОС). + Имя сетевого интерфейса в форме + vboxnetN, где + N это экземпляр интерфейса. Эта + команда должна запускаться перед тем, как подключать виртуальные + машины (ВМ) к сети хоста. + + + + Удалить сетевой интерфейс из хост-системы + + + Команда VBoxManage hostonlyif remove + удаляет указанный интерфейс сети хоста из ОС хоста. + + + + имя-интерфейса + + Задает имя сетевого интерфейса. Имя в форме + vboxnetN, + где N - это экземпляр + интерфейса. + + + + + + + + Примеры + + + Следующая команда создает новый интерфейс сети хоста. + +$ VBoxManage hostonlyif create +0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +Интерфейс 'vboxnet2' создан успешно + + Следующая команда настраивает адрес IPv4 для интерфейса + сети хоста vboxnet2. + +$ VBoxManage hostonlyif ipconfig vboxnet2 --ip 10.0.2.18 + + diff --git a/doc/manual/ru_RU/man_VBoxManage-hostonlynet.xml b/doc/manual/ru_RU/man_VBoxManage-hostonlynet.xml new file mode 100644 index 00000000..dcedd0dc --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-hostonlynet.xml @@ -0,0 +1,164 @@ + + + + +%all.entities; +]> + + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage hostonlynet + + + + VBoxManage-hostonlynet + 1 + + + + VBoxManage-hostonlynet + управление сетью хоста + &product-name; + + + + + VBoxManage hostonlynet add + --name=имя-сети + --id=id-сети + --netmask=маска + --lower-ip=адрес + --upper-ip=адрес + + --enable + --disable + + + + VBoxManage hostonlynet modify + + --name=имя-сети + --id=id-сети + + --lower-ip=адрес + --upper-ip=адрес + --netmask=маска + + --enable + --disable + + + + VBoxManage hostonlynet remove + + --name=имя-сети + --id=id-сети + + + + + + Описание + + + Команда hostonlynet позволяет управлять сетями + хоста. + + + + Общие параметры + + Все подкоманды hostonlynet оперируют над + сетью хоста, идентифицируемой через ее имя или UUID: + + + --name=имя-сети + Имя сети хоста. Его можно увидеть в поле + VBoxNetworkName вывода команды + VBoxManage list hostonlynets. + + + + --id=id-сети + UUID сети хоста. Если не указан при добавлении + новой сети, то будет сгенерирован автоматически. + + + + + + + hostonlynet add + + + Добавляет новую сеть хоста. + + + Опции для настройки сети хоста: + + + + + Сетевая маска. Обычно 255.255.255.0. + + + , + Диапазон IP адресов, распределяемых через DHCP. + Верхняя границы включается, тогда как нижняя - нет, поэтому + верхний адрес будет также распределен клиентам, тогда как + нижний используется самим хостом. + + + , --disable + Должная ли сеть хоста быть включена или выключена. Если не указано, + сеть создается во включенном состоянии. + + + + + + hostonlynet modify + + + Команда модифицирует существующую конфигурацию сети хоста. Она принимает те же + опции что и команда add. + + + + + hostonlynet remove + + + Удаляет указанную сеть хоста. + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-import.xml b/doc/manual/ru_RU/man_VBoxManage-import.xml new file mode 100644 index 00000000..1b3294fe --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-import.xml @@ -0,0 +1,456 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage import + + + + VBoxManage-import + 1 + + + + VBoxManage-import + импорт виртуальной конфигурации в формате OVF или из облачной службы и создание виртуальной машины + &product-name; + + + + + + VBoxManage import + + имя-ovf + имя-ova + + --dry-run + --options= + keepallmacs + keepnatmacs + importtovdi + + --vsys=n + --ostype=тип-ос + --vmname=имя + --settingsfile=файл + --basefolder=папка + --group=группа + --memory=МБ + --cpus=n + --description=текст + --eula= + show + accept + + --unit=n + --ignore + --scsitype= + BusLogic + LsiLogic + + + --disk=путь + + + + + VBoxManage import + OCI:// + --cloud + --ostype=тип-ос + --vmname=имя + --basefolder=папка + --memory=МБ + --cpus=n + --description=текст + --cloudprofile=профиль + --cloudinstanceid=id + --cloudbucket=корзина + + + + + Описание + + Команда VBoxManage import импортирует виртуальную + конфигурацию из формата OVF или из облачной службы, например &oci;. + Импорт производится путем копирования образов виртуальных дисков + (по умолчанию в формает VMDK образа) и создания виртуальных машин (ВМ) + в &product-name;. Смотрите . + + + Необходимо указать путь к OVF файлу или OVA архиву в качестве входных + данных или заполнитель для облачного варианта. В случае OVF конфигураций, + убедитесь, что все образы дисков в той же директории, что и OVF файл. + + + Обратите внимание, что любые опции, указываемые для управления + импортированной виртуальной конфигурацией или для изменения + параметров импорта зависят от содержимого файла OVF или от + информации из облачной службы. + + + Перед использованием операции импорта для создания ВМ, произведите + пробный запуск для проверки корректности вашей конфигурации. Это + полезно с конфигурациями OVF и OVA, потому что в случае с облачной + службой, даже при пробном запуске необходимо произвести достаточно + много действий, занимающих ощутимое время. + + + Импорт из облачной службы загружает временный файл, содержащий и + загрузочный образ и некоторые метаданные, описывающие детали + экземпляра ВМ. Временный файл удаляется после успешного импорта. + + + Общие параметры + + + имя-ovf | имя-ova + + Задает имя файла OVF или архив OVA, описывающий конфигурацию. + В случае облака, это обычно фиксированная строка, такая как + OCI://. + + + + + + + Производит пробный запуск команды VBoxManage + import перед проведением реальной операции + импорта. Операция пробного запуска делает следующее: + + + Выводит описание содержимого конфигурации, основанное + на указанном OVF или OVA файле. + + + Показывает, как конфигурация могла быть импортирована + в &product-name;. В дополнение, вывод показывает все + опции, которые можно использовать для изменения + поведения импорта. + + + Краткая форма этой опции . + + + + + + + Позволяет подстроить операцию импорта. + + Допустимые аргументы нижеследующие: + + + keepallmacs: Указывает, что + MAC адреса каждой виртуальной сетевой карты + остаются неизменными. + + + keepnatmacs: Указывает, что + MAC адреса каждой виртуальной сетевой карты + остаются неизменными если тип сети - NAT. + + + importtovdi: Указывает, что + все новые образы дисков в формате файла VDI. + + + + + + + Задает информацию о гостевой операционной системе (ОС) для + ВМ. Используйте команду VBoxManage list ostypes + для отображения идентификаторов типов ОС. + + + + + + Задает имя ВМ в &product-name;. + + + + + + + Задает папку, где сохраняются файлы импортированной ВМ. + + + + + + Задает размер памяти в мегабайтах в импортированной ВМ. + + + + + + Задает количество ЦПУ в импортированной ВМ. + + + + + + Задает текст описания, видимый в графическом и командном + интерфейсе при проверке деталей ВМ. + + + + + + + Опции импорта OVF / OVA + + Следующие опции предназначены для импорта виртуальной конфигурации + в форматах OVF или OVA. Такие конфигурации могут содержать один или + несколько ВМ. Поэтому требуется указать, какую конфигурацию ВМ надо + подстроить если вы хотите изменить ее. Смотрите + . + + + + + + + Задает индекс конкретной ВМ внутри конфигурации. Влияет + на нижеследующие опции. + + + + + + Задает индекс конкретного элемента ВМ внутри конфигурации. + Влияет на нижеследующие опции. + + + + + + Задает имя файла настроек ВМ (с указанием пути или без), + который будет создан как часть импорта. Обычно, более + предпочтительный способ это переопределение имени ВМ через + и, если нужно, указание папки, + где надо создать ВМ, через . + + + + + + Задает первичную группу импортированной ВМ. + + + + + + Позволяет вам отобразить или принять условия лицензии ВМ + внутри конфигурации. + + Допустимы следующие аргументы: + + + show: Показывает лицензионное соглашение ВМ. + + + accepts: Принимает лицензионное соглашение ВМ. + Все ВМ в конфигурации, имеющие лицензию, требуют ее принятия, + иначе импорт закончится неудачей. + + + + + + + Игнорирует текущий элемент импортируемой ВМ, эффективно + удаляя связанное аппаратное обеспечение. + + + + + + Позволяет выбрать тип SCSI контроллера текущего элемента + импортированной ВМ. + + Допустимы следующие аргументы: + + + BusLogic: Использует SCSI контроллер + типа BusLogic (очень старый). + + + LsiLogic: Использует SCSI контроллер + типа LsiLogic (более современный). + + + + + + + + Опции импорта из облака + + Следующие опции предназначены для импорта экземпляра ВМ из + провайдера облачной службы. Они всегда имеют дело только + с одной ВМ. Смотрите . + + + + + + + Указывает, что импорт должен быть из облака. + + + + + + Задает облачный профиль используемый для соединения с + провайдером облачной службы. Облачный профиль содержит + детали вашей учетной записи &oci;, такие как ваш OCID + пользователя и отпечаток вашего публичного ключа. У вас + должны быть требуемые права в &oci;, чтобы использовать + облачный профиль. + + + + + + Задает ID существующего экземпляра в облаке. + + + + + + Задает имя корзины, куда сохранять объекты, созданные из + экземпляра. В &oci;, корзина - это логический контейнер для + сохранения объектов. По умолчанию, используется первая + доступная корзина в облачном профиле. + + + + + + + + Примеры + + + Следующий пример производит пробный запуск операции OVF импорта + примерной конфигурации, содержащей гостевую систему Windows 10: + +$ VBoxManage import Windows10.ovf --dry-run +Интерпретация Windows10.ovf... +OK. +Виртуальная система 0: + 0: Предложенный тип ОС: "Windows10_64" + (изменить через "--vsys 0 --ostype <тип>"; используйте "list ostypes" для просмотра всех возможных значений) + 1: Предложенное имя ВМ "win10-appliance" + (изменить через "--vsys 0 --vmname <имя>") + 2: Предложенная группа ВМ "/" + (изменить через "--vsys 0 --group <группа>") + 3: Предложенное имя файла настроек ВМ "/home/user1/VirtualBox VMs/win10-appliance/win10-appliance.vbox" + (изменить через "--vsys 0 --settingsfile <имя файла>") + 4: Предложенная основная папка ВМ "/home/user1/VirtualBox VMs" + (изменить через "--vsys 0 --basefolder <путь>") + 5: Лицензионное соглашение + (показать через "--vsys 0 --eula show"; + принять через "--vsys 0 --eula accept") + 6: Число ЦПУ: 1 + (изменить через "--vsys 0 --cpus <n>") + 7: Размер памяти гостевой системы: 2048 MB (изменить через "--vsys 0 --memory <MB>") + 8: Аудио карта (конфигурация ожидает "ensoniq1371", может быть изменена при импорте) + (отключить через "--vsys 0 --unit 5 --ignore") + 9: USB контроллер + (отключить через "--vsys 0 --unit 6 --ignore") +10: Сетевой адаптер: ориг. сетевой мост, конфиг. 2, экстра тип=сетевой мост +11: Флоппи + (отключить через "--vsys 0 --unit 8 --ignore") +12: SCSI контроллер, тип BusLogic + (изменить через "--vsys 0 --unit 9 --scsitype {BusLogic|LsiLogic}"; + отключить через "--vsys 0 --unit 9 --ignore") +13: IDE контроллер, тип PIIX4 + (отключить через "--vsys 0 --unit 10 --ignore") +14: Образ жесткого диска: образ источника=Windows10.vmdk, + путь назначения=/home/user1/disks/Windows10.vmdk, контроллер=9;канал=0 + (изменить путь назначения через "--vsys 0 --unit 11 --disk <путь>"; + отключить через "--vsys 0 --unit 11 --ignore") + + Вывод пробного запуска показывает и нумерует индивидуальные + элементы настройки описанные в файле + Windows10.ovf. Некоторые из них включают + информацию о том, как отключить или изменить настройку элемента. + + + Можно отключить многие элементы, используя опции . X - это номер + виртуальной системы. Значение равно 0 если + конфигурация содержит только одно описание виртуальной системы. + Y - это номер элемента конфигурации. + + + Элемент 1 в выводе команды примера указывает имя целевой машины. + Элементы 12 и 13 указывают контроллеры IDE и SCSI жестких дисков + соответственно. + + + Элемент 14 показывает образ жесткого диска и опцию + , задающую путь назначения, где сохранять + образ. Значение по умолчанию задается в файле OVF. + + + Можно комбинировать несколько элементов для той же самой + виртуальной системы, путем указания того же самого значения + для опции . Например, используйте + следующую команду для импорта машины как описано в OVF, + кроме аудио карты и USB контроллера, и образ диска должен + сохраняться с другим именем. + +$ VBoxManage import Windows10.ovf --vsys 0 --unit 8 --ignore \ + --unit 9 --ignore --unit 14 --disk Windows10_disk0.vmdk + + Следующий пример иллюстрирует как импортировать ВМ из &oci;. Для поиска + экземпляров ВМ в &oci;, а также их ID, можно вывести список всех доступных + экземпляров через: + +$ VBoxManage cloud --provider=OCI --profile=имя-облачного-профиля list instances + + Когда ID известно, следующая команда импортирует экземпляр из &oci;: + +$ VBoxManage import OCI:// --cloud --vmname OCI_FreeBSD_VM --memory 4000 \ + --cpus 3 --ostype FreeBSD_64 --cloudprofile "standard user" \ + --cloudinstanceid ocid1.instance.oc1.iad.abuwc... --cloudbucket myBucket + + diff --git a/doc/manual/ru_RU/man_VBoxManage-list.xml b/doc/manual/ru_RU/man_VBoxManage-list.xml new file mode 100644 index 00000000..28151028 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-list.xml @@ -0,0 +1,522 @@ + + + + +%all.entities; +]> + + + $Date: 2022-10-06 17:22:35 +0200 (Thu, 06 Oct 2022) $ + VBoxManage list + + + + VBoxManage-list + 1 + + + + VBoxManage-list + просмотр системной информации и детали конфигурации ВМ + &product-name; + + + + + + VBoxManage list + --long + --sorted + + bridgedifs + cloudnets + cloudprofiles + cloudproviders + cpu-profiles + dhcpservers + dvds + extpacks + floppies + groups + hddbackends + hdds + hostcpuids + hostdrives + hostdvds + hostfloppies + hostinfo + hostonlyifs + hostonlynets + intnets + natnets + ostypes + runningvms + screenshotformats + systemproperties + usbfilters + usbhost + vms + webcams + + + + + + Описание + + Подкоманды VBoxManage list позволяют получить + информацию о ПО &product-name;, ВМ и соответствующих службах, + созданных вами. + + + Общие настройки + + + + + Показывает детальную информацию по каждому элементу, + если она доступна. Краткая форма этой опции: + . + + + + + + Сортирует элементы детального списка по алфавиту. + Краткая форма этой опции: . + + + + + + Отображение сетевых интерфейсов типа "Сетевой мост" в хост-системе + + VBoxManage list + bridgedifs + + + Команда VBoxManage list bridgedifs отображает + интерфейсы типа "сетевой мост", доступные на данный момент + в системе хоста. Вывод показывает детальную информацию о конфигурации + каждого интерфейса. Смотрите . + + + + Отображение облачных сетевых интерфейсов + + VBoxManage list + cloudnets + + + Команда VBoxManage list cloudnets отображает + сконфигурированные облачные сетевые интерфейсы. Облачный сетевой + интерфейс обеспечивает соединение между локальной ВМ и облачной + сетью. + + + + Отображение облачных профилей + + VBoxManage list + cloudprofiles + + + Команда VBoxManage list cloudprofiles отображает + сконфигурированные облачные профили. Облачный профиль содержит + настройки для учетной записи службы облака. + + + + Отображение облачных провайдеров + + VBoxManage list + cloudproviders + + + Команда VBoxManage list cloudproviders показывает + облачных провайдеров, поддерживаемых &product-name;. + Примером облачного провайдера является Oracle Cloud Infrastructure. + + + + Отображение известных профилей ЦПУ + + VBoxManage list + cpu-profiles + + + Команда VBoxManage list cpu-profiles отображает + ЦПУ профили, известные в &product-name;. + + + + Отображение DHCP серверов в хост-системе + + VBoxManage list + dhcpservers + + + Команда VBoxManage list dhcpservers отображает + DHCP серверы, доступные в хост-системе. Вывод показывает + детальную информацию о конфигурации каждого DHCP сервера. + Смотрите . + + + + Отображение образов виртуальных дисков DVD + + VBoxManage list + dvds + + + Команда VBoxManage list dvds отображает + информацию об образах виртуальных дисков DVD, используемых + в данный момент в ПО &product-name;. Для каждого образа + вывод показывает все настройки, UUID, назначенные образу + в &product-name; и все файлы связанные с образом. + + + Эта команда выполняет ту же функцию, что и Менеджер виртуальных + носителей. Смотрите . + + + + Отображение установленных пакетов расширения &product-name; + + VBoxManage list + extpacks + + + Команда VBoxManage list extpacks показывает + все пакеты расширения &product-name;, установленные в системе + на данный момент. Смотрите и + . + + + + Отображение образов виртуальных флоппи дисков + + VBoxManage list + floppies + + + Команда VBoxManage list floppies отображает + информацию об образах флоппи дисков, используемых в &product-name; + на данный момент. Для каждого образа вывод показывает все настройки, + UUID, назначенные образу в &product-name; и все файлы связанные + с образом. + + + Эта команда выполняет ту же функцию, что и Менеджер виртуальных + носителей. Смотрите . + + + + Отображение групп виртуальных машин + + VBoxManage list + groups + + + Команда VBoxManage list groups показывает + все группы ВМ. Смотрите . + + + + Отображение бэкендов виртуальных дисков + + VBoxManage list + hddbackends + + + Команда VBoxManage list hddbackends отображает + все известные бэкенды виртуальных дисков ПО &product-name; + Для каждого такого формата, таких как VDI, VMDK или RAW, эта + команда показывает конфигурацию и возможности бэкенда. + + + + Отображение образов виртуальных жестких дисков + + VBoxManage list + hdds + + + Команда VBoxManage list hdds отображает + информацию об образах виртуальных жестких дисков, которые + используются ПО &product-name; на данный момент. Для каждого + образа вывод показывает все настройки, UUID, назначенные образу + в &product-name; и все файлы связанные с образом. + + + Эта команда выполняет ту же функцию, что и Менеджер виртуальных + носителей. Смотрите . + + + + Отображение информации CPUID для ЦПУ хост-системы + + VBoxManage list + hostcpuids + + + Команда VBoxManage list hostcpuids отображает + информацию CPUID для каждого ЦПУ хост-системы. Используйте эту + информацию для более тщательного анализа возможностей + виртуализации в хост-системе. + + + + Отображение дисков в хост-системе + + VBoxManage list + hostdrives + + + Команда VBoxManage list hostdrives отображает + диски в хост-системе, потенциально полезные для создания образов + VMDK raw дисков. Каждый элемент включает имя, используемое для + ссылки на них из &product-name;. + + + + Отображение DVD дисков в хост-системе + + VBoxManage list + hostdvds + + + Команда VBoxManage list hostdvds отображает + DVD диски хост-системы. Каждый элемент включает имя, используемое + для доступа к ним из &product-name;. + + + + Отображение флоппи дисков в хост-системе + + VBoxManage list + hostfloppies + + + Команда VBoxManage list hostfloppies + отображает флоппи диски в хост-системе. Каждый элемент + включает имя, используемое для доступа к ним из &product-name;. + + + + Отображение информации о хост-системе + + VBoxManage list + hostinfo + + + Команда VBoxManage list hostinfo отображает + информацию о хост-системе. Вывод включает информацию о ЦПУ, + памяти и версии ОС. + + + + Отображение сетевых интерфейсов виртуальной сети хоста + + VBoxManage list + hostonlyifs + + + Команда VBoxManage list hostonlyifs отображает + интерфейсы виртуальной сети хоста, доступные в системе на данный + момент. Вывод показывает детальную информацию о конфигурации + каждого интерфейса. Смотрите . + + + + Отображение виртуальных сетей хоста + + VBoxManage list + hostonlynets + + + Команда VBoxManage list hostonlynets отображает + сконфигурированные виртуальные сети хоста. Виртуальная сеть хоста + обеспечивает соединение между хостом и локальными ВМ. Смотрите + . + + + + Отображение внутренних сетей + + VBoxManage list + intnets + + + Команда VBoxManage list intnets показывает + информацию о внутренних сетях. Смотрите + . + + + + Отображение интерфейсов сетей NAT в хост-системе + + VBoxManage list + natnets + + + Команда VBoxManage list natnets отображает + интерфейсы сетей NAT, доступные в хост-системе на данный момент. + Смотрите . + + + + Отображение гостевых операционных систем + + VBoxManage list + ostypes + + + Команда VBoxManage list ostypes отображает + все гостевые операционные системы, известные ПО &product-name;. + Каждый элемент включает идентификатор, описание, идентификатор + семейства, описание семейства и имеет ли ОС 64 битную поддержку. + + + Можно изспользовать эти идентификаторы с командой VBoxManage + modifyvm. + + + + Отображение работающих виртуальных машин + + VBoxManage list + runningvms + + + Команда VBoxManage list runningvms отображает + все виртуальные машины (ВМ), работающие на данный момент. По + умолчанию она показывает компактный список, содержащий имя и + UUID каждой машины. + + + + Отображение доступных форматов снимков экрана + + VBoxManage list + screenshotformats + + + Команда VBoxManage list screenshotformats показывает + список доступных форматов снимков экрана. + + + + Отображение системных свойств + + VBoxManage list + systemproperties + + + Команда VBoxManage list systemproperties показывает + большую коллекцию глобальных настроек &product-name; + и лимитов, таких как минимальный и максимальный размер RAM + гостевой системы, размер виртуального жесткого диска, настройки + папки и используемая в данный момент библиотека аутентификации. + + + + Отображение зарегистрированных глобальных USB фильтров + + VBoxManage list + usbfilters + + + Команда VBoxManage list usbfilters отображает + все глобальные USB фильтры зарегистрированные в &product-name; + и показывает параметры фильтра. Глобальные USB фильтры - это + фильтры для устройств, доступные всем виртуальным машинам. + + + + Отображение USB устройств в хост-системе + + VBoxManage list + usbhost + + + Команда VBoxManage list usbhost отображает + информацию об USB устройствах, подключенных к хост-системе. + Вывод включает информацию, которую можно использовать для + построения USB фильтров и показывает, используется ли + устройство хост-системой на данный момент. + + + + Отображение виртуальных машин + + VBoxManage list + vms + + + Команда VBoxManage list vms отображает + все виртуальные машины (ВМ), зарегистрированные в &product-name; + на данный момент. По умолчанию эта команда показывает компактный + список, включающий имя и UUID каждой машины. + + + + Отображение вебкамер, подключенных к работающей виртуальной машине + + VBoxManage list + webcams + + + Команда VBoxManage list webcams показывает + список вебкамер, подключенных к работающей ВМ. + + + Вывод состоит из списка абсолютных путей или псевдонимов, + используемых для подключения вебкамер к ВМ, используя команду + VBoxManage webcam attach. + + + + + + Примеры + + + Следующая команда показывает группы ВМ, сконфигурированные в + &product-name;. + +$ VBoxManage list groups +"/Linux-VMs" +"/Windows-VMs" + + Следующая команда показывает работающие на данный момент ВМ. + +$ VBoxManage list runningvms +"ol7" {ol7-UUID} +"win8" {win8-UUID} + + diff --git a/doc/manual/ru_RU/man_VBoxManage-mediumio.xml b/doc/manual/ru_RU/man_VBoxManage-mediumio.xml new file mode 100644 index 00000000..3f070159 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-mediumio.xml @@ -0,0 +1,179 @@ + + + + +%all.entities; +]> + + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage mediumio + + + + VBoxManage-mediumio + 1 + + + + VBoxManage-mediumio + доступ к содержимому носителя + &product-name; + + + + + VBoxManage mediumio + + --disk=uuid|имя-файла + --dvd=uuid|имя-файла + --floppy=uuid|имя-файла + + --password-file=-|имя-файла + formatfat + --quick + + + VBoxManage mediumio + + --disk=uuid|имя-файла + --dvd=uuid|имя-файла + --floppy=uuid|имя-файла + + --password-file=-|имя-файла + cat + --hex + --offset=смещение-байт + --size=байты + --output=-|имя-файла + + + VBoxManage mediumio + + --disk=uuid|имя-файла + --dvd=uuid|имя-файла + --floppy=uuid|имя-файла + + --password-file=-|имя-файла + stream + --format=формат-образа + --variant=вариант-образа + --output=-|имя-файла + + + + + Описание + + + Общие параметры + + Все подкоманды mediumio оперируют носителем, который должен быть указан вместе с паролем + шифрования (необязательно). Следующие общие опции могут быть помещены перед или после подкоманд: + + + --disk=uuid|имя-файла + UUID или имя файла образа жесткого диска, например VDI, VMDK, VHD, и т.д. + + + --dvd=uuid|имя-файла + UUID или имя файла образа DVD, например ISO, DMG, CUE. + + + --floppy=uuid|имя-файла + UUID или имя файла образа флоппи, например IMG. + + + --password-file=-|имя-файла + Имя файла, содержащего пароль шифрования носителя. Если указана опция , + пароль читается из стандартного потока ввода. + + + + + + mediumio formatfat + + + Форматирует носитель флоппи диска файловой системой FAT. Эта команда удаляет + содержимое носителя. + + + + Быстрое форматирование носителя. + + + + + + mediumio cat + + + Сбрасывает содержимое носителя в стандартный поток вывода или в указанный файл. + + + + Сбросить как hex байты. + + + Смещение в байтах с начала носителя, откуда начинать сброс дампа. + + + Количество байтов для сброса. + + + + Имя выходного файла. Как обычно, подразумевает стандартный поток вывода. + + + + + + mediumio stream + + + Преобразует носитель в потоковый формат и сбрасывает его в указанный выход. + + + + Формат образа назначения. + + + Вариант носителя назначения. + + + + Имя выходного файла. Как обычно, подразумевает стандартный поток вывода. + + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-mediumproperty.xml b/doc/manual/ru_RU/man_VBoxManage-mediumproperty.xml new file mode 100644 index 00000000..c0c40c7c --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-mediumproperty.xml @@ -0,0 +1,219 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage mediumproperty + + + + VBoxManage-mediumproperty + 1 + + + + VBoxManage-mediumproperty + управлять свойствами носителя + &product-name; + + + + + + VBoxManage mediumproperty + + disk + dvd + floppy + + set + + uuid + имя-файла + + имя-свойства + значение-свойства + + + + VBoxManage mediumproperty + + disk + dvd + floppy + + get + + uuid + имя-файла + + имя-свойства + + + + VBoxManage mediumproperty + + disk + dvd + floppy + + delete + + uuid + имя-файла + + имя-свойства + + + + + Описание + + Команда VBoxManage mediumproperty позволяет + установить, получить или удалить свойство носителя. + + + Установить свойство носителя + + + Команда VBoxManage mediumproperty set + позволяет установить свойство носителя. + + + + disk | dvd | floppy + + Указывает тип носителя. Допустимые значения + disk (жесткий диск), + dvd или floppy. + + + + uuid | имя-файла + + Задает Универсальный Уникальный Идентификатор (UUID) + или абсолютный путь к носителю или образу. + + + + имя-свойства + + Задает имя свойства. + + + + значение-свойства + + Задает значение указанного свойства. + + + + + + Получить значение свойства носителя + + + Команда VBoxManage mediumproperty get + позволяет получить значение свойства носителя. + + + + disk | dvd | floppy + + Задает тип носителя. Допустимые значения + disk (жесткий диск), + dvd или floppy. + + + + uuid | имя-файла + + Указывает Универсальный Уникальный Идентификатор (UUID) + или абсолютный путь к носителю или образу. + + + + имя-свойства + + Задает имя свойства. + + + + + + Удалить свойство носителя + + + Команда VBoxManage mediumproperty delete + позволяет удалить свойство носителя. + + + + disk | dvd | floppy + + Задает тип носителя. Допустимые значения + disk (жесткий диск), + dvd или floppy. + + + + uuid | имя-файла + + Указывает Универсальный Уникальный Идентификатор (UUID) + или абсолютный путь к носителю или образу. + + + + имя-свойства + + Задает имя свойства. + + + + + + + + Примеры + + + Следующая команда устанавливает свойство, называемое + prop1 в значение val1 + для образа диска ol7.vdi. + +$ VBoxManage mediumproperty disk set ol7.vdi prop1 val1 + + Следующая команда получает значение свойства, называемого + prop1 образа диска ol7.vdi. + +$ VBoxManage mediumproperty disk get ol7.vdi prop1 + + diff --git a/doc/manual/ru_RU/man_VBoxManage-metrics.xml b/doc/manual/ru_RU/man_VBoxManage-metrics.xml new file mode 100644 index 00000000..d952ea9b --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-metrics.xml @@ -0,0 +1,422 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage metrics + + + + VBoxManage-metrics + 1 + + + + VBoxManage-metrics + мониторинг использования системных ресурсов + &product-name; + + + + + VBoxManage metrics collect + --detach + --list + --period=секунды + --samples=количество + + * + host + имя-ВМ список-метрик + + + + + VBoxManage metrics disable + --list + + * + host + имя-ВМ список-метрик + + + + + VBoxManage metrics enable + --list + + * + host + имя-ВМ список-метрик + + + + + VBoxManage metrics list + + * + host + имя-ВМ список-метрик + + + + + VBoxManage metrics query + + * + host + имя-ВМ список-метрик + + + + + VBoxManage metrics setup + --list + --period секунды + --samples количество + + * + host + имя-ВМ список-метрик + + + + + + Описание + + Команда VBoxManage metrics позволяет наблюдать + за использованием системных ресурсов в хост-системе и в + виртуальных машинах (ВМ). Например, можно контролировать + определенную метрику, такую как процент времени, затрачиваемую + ЦПУ при выполнении в пользовательском режиме + (CPU/Load/User) в течение определенного + периода. + + + Пока она работает, процесс VBoxSVC собирает + и сохраняет данные указанной метрики внутри. Процесс + VBoxSVC завершает работу почти сразу после + закрытия всех ВМ и интерфейсов пользователя. Используйте команду + VBoxManage metrics query для получения данных + в любое время. + + + По умолчанию, метрики не собираются, пока не будет запущена + команда VBoxManage metrics setup, в которой + указывается интервал выборки в секундах и количество сохраняемых + метрик. + + + Заметим, что включить сбор метрик можно только для запущенных ВМ. + Собранные данные и настройки сбора данных для ВМ удаляются при + выключении ВМ. + + + Метрики + + У хоста и ВМ есть разные наборы соответствующих метрик, + которые можно отобразить через команду VBoxManage + metrics list + + + Каждая метрика представлена строкой состоящей из категории и + метрики. Опционально, строка метрик может включать любое из + следующих: подметрика, под-подметрика и агрегат. Строка + метрик имеет следующий формат: + +категория/метрика[/подметрика[/под-подметрика]][:агрегат] + + + категория - это тип ресурса, + такой как CPU, RAM, + FS, Net. + + + метрика - это тип измерения, + связанной с категорией ресурса. Например, метрики + Load и MHz + связаны с категорией ресурса CPU. + + + подметрика - это опциональный + тип измерения, связанный с метрикой. Например, подметрики + User, Kernel и + Idle связаны с метрикой + Load. + + + под-подметрика - это опциональный + тип измерения связанный с подметрикой. Например, под-подметрики + Rx и Tx связаны с + подметрикой Rate категории ресурса + Net. Связанная метрика - это сетевой + интерфейс. + + + агрегат - это опциональная + функция для передачи минимального, максимального и среднего + значения измерений категории ресурса. Например, метрика + RAM/Usage/Free:min представляет + минимальное количество доступной памяти найденное во всех + сохраненных данных в хост-системе. + + + + По умолчанию, команды VBoxManage metrics + оперируют хост-системой и всеми ВМ и возвращают все метрики. + Можно опционально ограничить эти команды работой только по + хост-системе или только по определенной ВМ и возвращать + список одной или нескольких метрик. + + + + Общие параметры + + + * | host | имя-ВМ + + Задает компонент для работы. По умолчанию, эта команда + работает по хост-системе и всем запущенным ВМ. + + Если указать host, команда + VBoxManage metrics работает только по + хост-системе. Если указать звездочку (*), + команда работает по всем ВМ. Если указать имя ВМ, команда + VBoxManage metrics работает только + по этой ВМ. + + + + список-метрик + + Задает список одной или нескольких метрик, разделенный + запятыми. + + Формат метрик должен включать категорию + и метрику в строке, разделенную + слэшем. + + Заметим, что команды VBoxManage metrics + enable и VBoxManage metrics + disable требуют указания метрик как параметров. + Метрики должны включать только категорию ресурса и саму + метрику, например CPU/Load и + RAM/Usage. + + + + + + Сбор данных метрик + + + Команда VBoxManage metrics collect + собирает и выводит периодически данные, пока процесс не + будет остановлен нажатием Ctrl+C. + + + + + + Отключает сбор данных метрики, так что больше данных + не выводится. Использование этой опции равносильно + запуску команды VBoxManage metrics setup. + + + + + + Показывает какие метрики соответствуют указанному фильтру. + + + + + + Задает количество секунд ожидания между выборками + данных метрик. По умолчанию 1. + + + + + + Задает количество сохраняемых выборок данных метрик. + Для просмотра сохраненных данных используйте команду + VBoxManage metrics query. По + умолчанию 1. + + + + + + Отключить сбор данных метрик + + + Команда VBoxManage metrics disable + приостанавливает сбор данных. Эта команда не влияет ни на + свойства сбора данных, ни на сами собранные данные. Обратите + внимание, что указание подметрики в списке метрик не отключает + ее базовые метрики. + + + Заметим, что команда VBoxManage metrics disable + требует указания метрик как параметров. Метрики должны включать + только категорию ресурса и саму метрику, например + CPU/Load и RAM/Usage. + + + + + + Показывает завершилась ли команда успешно как ожидалось. + + + + + + Включение сбора данных метрики + + + Команда VBoxManage metrics enable возобновляет + сбор данных после того, как он был приостановлен командой + VBoxManage metrics disable. Заметим, что + указание подметрики в списке метрик не включает его базовые + метрики. + + + В отличие от команды VBoxManage metrics setup + команда VBoxManage metrics enable не удаляет + предыдущие накопленные выборки для указанного набора объектов и + метрик. + + + Заметим, что команда VBoxManage metrics enable + требует указания метрик как параметров. Метрики должны включать + только категорию ресурса и саму метрику, например + CPU/Load и RAM/Usage. + + + + + + Показывает, завершилась ли команда успешно как ожидалось. + + + + + + Показать значения метрик + + + Команда VBoxManage metrics list показывает + доступные на текущий момент метрики. Обратите внимание, метрики, + относящиеся к ВМ, отображаются пока ВМ работает. + + + + Показать сохраненные данные метрики + + + Команда VBoxManage metrics query + получает и показывает сохраненные данные метрики. + + + Заметим, что команда VBoxManage metrics query + не удаляет и не сбрасывает сохраненные данные, но старые + выборки заменяются на новые в течение времени. + + + + Настройка свойств сбора метрик + + + Команда VBoxManage metrics setup настраивает + свойства сбора метрик. + + + Заметим, что эта команда удаляет любые ранее собранные выборки + для указанного набора объектов и метрик. Для включения и отключения + сбора метрик без удаления данных используйте команды + VBoxManage metrics enable и + VBoxManage metrics disable соответственно. + + + + + + Показывает какие метрики были изменены в качестве результата + выполнения команды. + + + + + + Задает количество секунд ожидания между выборками данных метрик. + По умолчанию 1. + + + + + + Задает количество сохраняемых выборок данных метрик. + Для просмотра сохраненных данных используйте команду + VBoxManage metrics query. По + умолчанию 1. + + + + + + + + Примеры + + + Следующая команда включает сбор метрик использования + процессора и памяти хоста каждую секунду. Опция + сохраняет пять последних + выборок. + +$ VBoxManage metrics setup --period 1 --samples 5 host CPU/Load,RAM/Usage + + Следующая команда показывает доступные метрики для хоста и ВМ: + +$ VBoxManage metrics list + + Заметим, что у хост-системы и ВМ разные наборы метрик. + + + Следующий пример показывает как запросить данные метрик о затраченном + времени ЦПУ в режимах пользователя и ядра для ВМ test: + +$ VBoxManage metrics query test CPU/Load/User,CPU/Load/Kernel + + diff --git a/doc/manual/ru_RU/man_VBoxManage-modifymedium.xml b/doc/manual/ru_RU/man_VBoxManage-modifymedium.xml new file mode 100644 index 00000000..c1fd55d3 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-modifymedium.xml @@ -0,0 +1,254 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage modifymedium + + + + VBoxManage-modifymedium + 1 + + + + VBoxManage-modifymedium + изменяет характеристики существующего образа диска + &product-name; + + + + + + VBoxManage modifymedium + + disk + dvd + floppy + + + uuid + имя-файла + + --autoreset=on | off + --compact + --description=описание + --move=путь + --property=имя=[значение] + --resize=мегабайты | --resizebyte=байты + --setlocation=путь + --type=normal | writethrough | immutable | shareable | readonly | multiattach + + + + + Описание + + Команда VBoxManage modifymedium позволяет + изменить характеристики существующего образа диска. + + + + Для совместимости с более ранними версиями &product-name; + можно использовать команды modifyvdi и + modifyhd. + + + + + disk | dvd | floppy + + Задает тип носителя образа. + + + + имя-файла + + Задает Универсальный Уникальный Идентификатор (UUID) или + путь к образу диска в файловой системе хоста. UUID можно + использовать, только если носитель зарегистрирован. + Используйте команду VBoxManage list hdds + для отображения зарегистрированных образов. Можно указывать + как абсолютный, так и относительный пути к носителю. + + + + + + Указывает, сбрасывать ли автоматически неизменяемый + жесткий диск при каждом старте виртуальной машины (ВМ). + Эта опция только для неизменяемых жестких дисков и + значение по умолчанию on. + Смотрите . + + + + + + Сжимает образы дисков путем удаления блоков содержащих + только нули. Эта опция уменьшает динамически расширяемый + образ и уменьшает физический размер + образа не влияя на логический размер виртуального диска. + + Можно использовать эту опцию для базовых образов или + для разностных образов, созданных как часть снимка. + + + Перед сжатием образа, необходимо использовать подходящее + ПО для обнуления свободного пространства в гостевой + системе. Например: + + + + Гости Windows. Запустите + команду sdelete -z. + + + Гости Linux. Используйте + утилиту zerofree, которая поддерживает + файловые системы ext2 и + ext3. + + + Гости Mac OS X. Используйте + команду diskutil secureErase freespace 0 /. + + + + Заметим, что эта опция может использоваться только для + сжатия VDI образов. Для сжатия не-VDI образов, можно + обнулить свободные блоки и затем клонировать диск в + любой другой динамически расширяемый формат. + + + + + + Задает текстовое описание носителя. + + + + + + Задает относительный или абсолютный путь к носителю в + хост-системе. Используйте эту опцию для перемещения + носителя в другое расположения в хост-системе. + + + + + + Задает имя и значение свойства носителя. + + + + + + Задает новую емкость существующего образа в МБ. Эту опцию + можно использовать только для увеличения емкости образа. + Невозможно уменьшить емкость образа. + + Заметим, можно изменить размер только динамически расширяемого + диска, использующих форматы VDI и VHD. Эта опция подстраивает + логический размер виртуального диска и + лишь немного влияет на физический размер. + + Например, если ваш динамически расширяемый 10 ГБ диск полон, + можно использовать опцию + для увеличения емкости существующего диска до 15 ГБ + (15360 МБ). Эта операция позволяет избежать создания нового + диска и копирования всех данных со старого внутри ВМ. + + Обратите внимание, эта опция меняет емкость диска. Поэтому, + может понадобиться воспользоваться впоследствии программой + управления разделами в гостевой системе для подгонки + разделов под изменившийся размер диска. + + + + + + Задает новую емкость существующего образа в байтах. + Эта опция подобна опции , + за исключением того, что размер задается в байтах а + не в МБ. + + + + + + Задает новое расположение носителя в хост-системе после + перемещения. Путь может быть как относительно текущей + директории так и абсолютным. + + Заметим, что команда VBoxManage modifymedium + не производит какие-либо проверки указанного пути. Убедитесь, + что путь корректен. + + + + + + Задает новый тип режима существующего образа. Допустимые + значения normal, + immutable, + writethrough, + multi-attach, + shareable, and + readonly. Описание этих типов режимов + смотрите в . + + + + + + + Примеры + + + Следующая команда изменяет описание файла образа диска, называемого + disk01.vdi. + +$ VBoxManage modifymedium disk disk01.vdi --description "Oracle Linux 7 image" + + Следующая команда изменяет режим записи для файла образа диска, + называемого disk01.vdi. + +$ VBoxManage modifymedium disk disk01.vdi --type writethrough + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-modifynvram.xml b/doc/manual/ru_RU/man_VBoxManage-modifynvram.xml new file mode 100644 index 00000000..2b66378b --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-modifynvram.xml @@ -0,0 +1,242 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage modifynvram + + + + VBoxManage-modifynvram + 1 + + + + VBoxManage-modifynvram + Отображение и изменение содержимого NVRAM виртуальной машины + &product-name; + + + + + VBoxManage modifynvram + uuid|имя-ВМ + inituefivarstore + + + VBoxManage modifynvram + uuid|имя-ВМ + enrollmssignatures + + + VBoxManage modifynvram + uuid|имя-ВМ + enrollorclpk + + + VBoxManage modifynvram + uuid|имя-ВМ + enrollpk + --platform-key=имя-файла + --owner-uuid=uuid + + + VBoxManage modifynvram + uuid|имя-ВМ + listvars + + + VBoxManage modifynvram + uuid|имя-ВМ + queryvar + --name=имя + --filename=имя-файла + + + VBoxManage modifynvram + uuid|имя-ВМ + deletevar + --name=имя + --owner-uuid=uuid + + + VBoxManage modifynvram + uuid|имя-ВМ + changevar + --name=имя + --filename=имя-файла + + + + + Описание + + Команды "modifynvram" предназначены для экспертов, которые хотят изучить и изменить + хранилище переменных UEFI виртуальной машины. Любые допущенные здесь ошибки могут + привести машину в нерабочее состояние. + + + Общие параметры + + Все подкоманды modifynvram выполняются на работающей виртуальной + машине: + + + uuid|имя-ВМ + Или UUID или имя ВМ (чувствительно к регистру). + + + + + + modifynvram inituefivarstore + + + Инициализирует хранилище переменных UEFI в состояние по умолчанию. Все ранее + существовавшие хранилища переменных удаляются. Используйте с особой осторожностью! + + + + + modifynvram enrollmssignatures + + + Регистрирует стандартные подписи Microsoft KEK и DB, необходимые для безопасной загрузки UEFI. + + + + + modifynvram enrollorclpk + + + Регистрирует ключ платформы по умолчанию, предоставленный Oracle, необходимый для безопасной загрузки UEFI. + + + + + modifynvram enrollpk + + + Регистрирует пользовательский ключ платформы переданный пользователем, необходимый + для безопасной загрузки UEFI. Следующие команды используют openssl для генерации + нового ключа платформы: + +$ openssl req -new -x509 -newkey rsa:2048 -keyout PK.key -out PK.crt +$ openssl x509 -in PK.crt -out PK.cer -outform DER + + + + Ключ платформы переданный в качестве X.509 подписи, зашифрованной DER. + + + + + UUID идентифицирующий владельца ключа платформы. + + + + + + + modifynvram listvars + + + Показывает все переменные UEFI в хранилище виртуальной машины относительно UUID их владельца. + + + + + modifynvram queryvar + + + Запрашивает содержимое данной переменной UEFI по ее имени. + + + + + имя запрашиваемой переменной UEFI. + + + + + + + Куда сохранять содержимое переменной в случае успеха. Это необязательно. + Если не указан, содержимое будет выдано в терминал как hex дамп. + + + + + + + + modifynvram deletevar + + + Удаляет данную переменную по ее имени и UUID владельца. + + + + + Имя удаляемой переменной UEFI. + + + + + UUID владельца удаляемой переменной. + + + + + + + modifynvram changevar + + + Изменяет содержимое переменной UEFI на содержимое указанного файла. + + + + + Имя изменяемой переменной UEFI. + + + + + + Файл с данными. + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-modifyvm.xml b/doc/manual/ru_RU/man_VBoxManage-modifyvm.xml new file mode 100644 index 00000000..3dad10f0 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-modifyvm.xml @@ -0,0 +1,2740 @@ + + + + +%all.entities; +]> + + + $Date: 2023-01-09 19:05:30 +0100 (Mon, 09 Jan 2023) $ + VBoxManage modifyvm + + + + VBoxManage-modifyvm + 1 + + + + VBoxManage-modifyvm + изменение настроек остановленной виртуальной машины + &product-name; + + + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --name=имя + --groups= группа [,группа...] + --description=описание + --os-type=тип-ОС + --icon-file=имя-файла + --memory=размер-в-МБ + --page-fusion= + on + off + + --vram=размер-в-МБ + --acpi= + on + off + + --ioapic= + on + off + + --hardware-uuid=UUID + --cpus=число-ЦПУ + --cpu-hotplug= + on + off + + --plug-cpu=CPU-ID + --unplug-cpu=CPU-ID + --cpu-execution-cap=число + --pae= + on + off + + --long-mode= + on + off + + --ibpb-on-vm-exit= + on + off + + --ibpb-on-vm-entry= + on + off + + --spec-ctrl= + on + off + + --l1d-flush-on-sched= + on + off + + --l1d-flush-on-vm-entry= + on + off + + --mds-clear-on-sched= + on + off + + --mds-clear-on-vm-entry= + on + off + + --cpu-profile= + host + Intel 8086 + Intel 80286 + Intel 80386 + + --hpet= + on + off + + --hwvirtex= + on + off + + --triple-fault-reset= + on + off + + --apic= + on + off + + --x2apic= + on + off + + --paravirt-provider= + none + default + legacy + minimal + hyperv + kvm + + --paravirt-debug= ключ=значение [,ключ=значение...] + --nested-paging= + on + off + + --large-pages= + on + off + + --vtx-vpid= + on + off + + --vtx-ux= + on + off + + --nested-hw-virt= + on + off + + --virt-vmsave-vmload= + on + off + + --accelerate-3d= + on + off + + --accelerate-2d-video= + on + off + + --chipset= + ich9 + piix3 + + --iommu= + none + automatic + amd + intel + + --tpm-type= + none + 1.2 + 2.0 + host + swtpm + + --tpm-location= + расположение + + --bios-logo-fade-in= + on + off + + --bios-logo-fade-out= + on + off + + --bios-logo-display-time=миллисекунды + --bios-logo-image-path=путь + --bios-boot-menu= + disabled + menuonly + messageandmenu + + --bios-apic= + disabled + apic + x2apic + + --bios-system-time-offset=миллисекунды + --bios-pxe-debug= + on + off + + --system-uuid-le= + on + off + + --bootX= + none + floppy + dvd + disk + net + + --rtc-use-utc= + on + off + + --graphicscontroller= + none + vboxvga + vmsvga + vboxsvga + + --snapshot-folder= + default + путь + + --firmware= + bios + efi + efi32 + efi64 + + --guest-memory-balloon=размер-в-МБ + --default-frontend= + default + имя + + + --vm-process-priority= + default + flat + low + normal + high + + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --nicN= + none + null + nat + bridged + intnet + hostonly + hostonlynet + generic + natnetwork + + --nic-typeN= + Am79C970A + Am79C973 + 82540EM + 82543GC + 82545EM + virtio + + --cable-connectedN= + on + off + + --nic-traceN= + on + off + + --nic-trace-fileN=имя-файла + --nic-propertyN=имя= значение + --nic-speedN=кбит-в-сек + --nic-boot-prioN=приоритет + --nic-promiscN= + deny + allow-vms + allow-all + + --nic-bandwidth-groupN= + none + name + + --bridge-adapterN= + none + device-name + + --host-only-adapterN= + none + device-name + + --host-only-netN=имя-сети + --intnetN=имя-сети + --nat-networkN=имя-сети + --nic-generic-drvN=имя-драйвера + --mac-addressN= + auto + MAC-адрес + + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --nat-netN= + сеть + default + + --nat-pfN= + [имя-правила],tcp + udp,[IP-хоста],порт-хоста,[IP-гостя],порт-гостя + + --nat-pfN=delete=имя-правила + --nat-tftp-prefixN=префикс + --nat-tftp-fileN=имя-файла + --nat-tftp-serverN=IP-адрес + --nat-bind-ipN=IP-адрес + --nat-dns-pass-domainN= + on + off + + --nat-dns-proxyN= + on + off + + --nat-dns-host-resolverN= + on + off + + --nat-localhostreachableN= + on + off + + --nat-settingsN=[mtu],[отправка-сокет],[прием-сокет],[отправка-tcp],[прием-tcp] + --nat-alias-modeN= + default + [log],[proxyonly],[sameports] + + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --mouse= + ps2 + usb + usbtablet + usbmultitouch + + --keyboard= + ps2 + usb + + --uartN= + off + IO-база IRQ + + --uart-modeN= + disconnected + server канал + client канал + tcpserver порт + tcpclient имя-хоста:порт + file имя-файла + имя-устройства + + --uart-typeN= + 16450 + 16550A + 16750 + + --lpt-modeN=имя-устройства + --lptN= + off + IO-база IRQ + + --audio-controller= + ac97 + hda + sb16 + + --audio-codec= + stac9700 + ad1980 + stac9221 + sb16 + + --audio-driver= + none + default + null + dsound + was + oss + alsa + pulse + coreaudio + + --audio-enabled= + on + off + + --audio-in= + on + off + + --audio-out= + on + off + + --clipboard-mode= + disabled + hosttoguest + guesttohost + bidirectional + + + --drag-and-drop= + disabled + hosttoguest + guesttohost + bidirectional + + --monitor-count=количество + --usb-ehci= + on + off + + --usb-ohci= + on + off + + --usb-xhci= + on + off + + --usb-rename=старое-имя новое-имя + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --recording= + on + off + + --recording-screens= + all + ID-экрана [ID-экрана...] + + --recording-file=имя-файла + --recording-max-size=МБ + --recording-max-time=миллисекунды + --recording-opts= ключ=значение [,ключ=значение...] + --recording-video-fps=кадров-в-сек + --recording-video-rate=rate + --recording-video-res=ширина высота + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --vrde= + on + off + + --vrde-property=имя-свойства= значение-свойства + --vrde-extpack= + default + имя + + --vrde-port=порт + --vrde-address=IP-хоста + --vrde-auth-type= + null + external + guest + + --vrde-auth-library= + default + имя + + --vrde-multi-con= + on + off + + --vrde-reuse-con= + on + off + + --vrde-video-channel= + on + off + + --vrde-video-channel-quality=процент + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --teleporter= + on + off + + --teleporter-port=порт + --teleporter-address= + адрес + empty + + --teleporter-password=пароль + --teleporter-password-file= + имя-файла + stdin + + --cpuid-portability-level=уровень + --cpuid-set=лист:подлист eax ebx ecx edx + --cpuid-remove=лист:подлист + --cpuid-remove-all + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --tracing-enabled= + on + off + + --tracing-config=строка + --tracing-allow-vm-access= + on + off + + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --usb-card-reader= + on + off + + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --autostart-enabled= + on + off + + --autostart-delay=секунды + + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --pci-attach=PCI-адрес-хоста@гостевой-PCI-адрес-шины + --pci-detach=PCI-адрес-хоста + + + + VBoxManage modifyvm + + uuid + имя-ВМ + + --testing-enabled=onoff + --testing-mmio=onoff + --testing-cfg-dwordidx=значение + + + + + Описание + + Команда VBoxManage modifyvm позволяет изменить + свойства зарегистрированной неработающей на текущий момент + виртуальной машины (ВМ). + + + Большинство этих свойств соответствуют настройкам ВМ отображаемых + в диалоге Настройки Менеджера + VirtualBox для каждой ВМ. Смотрите . + Однако, некоторые настройки могут отображаться или управляться + только командой VBoxManage. + + + Можно использовать команду VBoxManage modifyvm + для изменения настроек только если ВМ выключена. ВМ не может быть + в работающем или сохраненном состоянии при использовании этой + команды. + + + Можно использовать команду VBoxManage controlvm + для изменения некоторых настроек ВМ динамически, пока ВМ работает. + Смотрите . + + + Общие настройки + + + Следующие опции позволяют вам изменить общую информаицю о вашей ВМ. + + + Команда VBoxManage modifyvm поддерживает следующие + опции: + + + + + + Изменяет имя ВМ и связанных с ней внутренних файлов. Смотрите + . + + + + + + Изменяет членство в группе для ВМ. Имена групп всегда + начинаются с символа слэш (/) и могут + быть вложены. По умолчанию, ВМ - члены группы + /. ВМ может входить в несколько групп, + но ее первичная группа определяет структуру директорий, + где внутренние файлы ВМ располагаются по умолчанию. + + + + + + Изменяет необязательное описание ВМ. Используйте описание + для записи подробностей о ВМ в осмысленном виде. Графический + интерфейс понимает HTML разметку, тогда как команда + VBoxManage modifyvm позволяет включать + произвольный текст, который может содержать несколько строк. + + + + + + Задает информацию о гостевой операционной системе (ОС) в ВМ. + Используйте команду VBoxManage list ostypes + для отображения идентификаторов типов ОС. + + + + + + Задает путь к файлу иконки ВМ в формате PNG в + хост-системе. Иконка отображается в интерфейсе Менеджера + ВМ и когда ВМ запущена в режиме графического интерфейса. + + + + + + Задает количество оперативной памяти хоста, выделенной ВМ. + Размер в МБ. Смотрите . + + + + + + Включает или отключает функцию Page Fusion, которая + по умолчанию отключена. Используйте функцию Page + Fusion для минимизации дублирования памяти между ВМ, + имеющих подобную конфигурацию и работающих на той же + хост-системе. Смотрите . + + + + + + Задает количество оперативной памяти, выделенной + графической карте. Смотрите . + + + + + + Определяет поддерживает ли ВМ ACPI. Смотрите + . + + + + + + Определяет поддерживает ли ВМ I/O APIC. Смотрите + . + + + + + + Задает Универсальный Уникальный Идентификатор (UUID) + для представления гостевой ВМ в таблицах памяти + (DMI/SMBIOS), в оборудовании и свойствах ВМ. По умолчанию + этот UUID оборудования такой же как UUID ВМ. Клонирование + и функция портирования автоматически сохраняет значение + UUID оборудования. Аналогично для экспорта и импорта + виртуальной конфигурации, но только если обе операции + выполняются &product-name;. + + + + + + Задает количество виртуальных ЦПУ, назначенных ВМ. + Смотрите . + + Если горячее подключение ЦПУ включено, эта опция задает + максимальное количество виртуальных ЦПУ, которые можно + подключить к ВМ. + + + + + + Включает или выключает горячее подключение ЦПУ. Когда + включено, можно динамически добавлять и удалять виртуальные + ЦПУ в ВМ. Смотрите . + + + + + + Добавляет виртуальный ЦПУ в ВМ. + CPU-ID - это индекс добавляемого + вируального ЦПУ. Допустимое значение индекса - это число + от 0 до максимального количества ЦПУ, + заданных опцией . + + Используйте эту опцию только когда включено горячее подключение ЦПУ. + + + + + + Удалить виртуальный ЦПУ из ВМ. + CPU-ID - это индекс удаляемого + вируального ЦПУ. Допустимое значение индекса - это число + от 1 до максимального количества ЦПУ, + заданных опцией . + + Используйте эту опцию только когда включено горячее подключение ЦПУ. + + Обратите внимание, что нельзя удалить ЦПУ 0. + + + + + + Указывает, сколько времени ЦПУ может использовать + виртуальный ЦПУ. Допустимые значения от 1 + до 100. Значение 50 показывает, что + единичные виртуальный ЦПУ может использовать до 50% + единичного ЦПУ хоста. + + + + + + Включает или выключает расширение физических адресов (PAE). + Смотрите . + + + + + + Включает или выключает длинный режим. Смотрите + . + + + + + + Включает использование барьера предсказателя неявных + ветвлений (IBPB) при каждом выходе из ВМ. + + + + + + Включает использование барьера предсказателя неявных + ветвлений (IBPB) при каждом входе в ВМ. + + + + + + Включает или выключает отображение интерфейсов управления + спекуляцией для гостевой ВМ. Эти интерфейсы должны + быть доступны в хост-системе. + + В зависимости от ЦПУ хоста и нагрузки, включение + управления спекуляцией может значительно уменьшить + производительность. + + + + + + Включает или отключает сброс кэша данных L1, когда + поток запланирован на исполнение гостевого кода. Смотрите + . + + + + + + Включает или отключает сброс кэша данных L1 при каждом + входе в ВМ. Смотрите . + + + + + + Включает очистку буфера ЦПУ когда поток запланирован + на выполнение гостевого кода. Смотрите + . + + + + + + Включает очистку буфера ЦПУ при каждом входе в ВМ. + Смотрите . + + + + + + Задает профиль, используемый для эмуляции гостевого + ЦПУ. Задайте значение, основанное на ЦПУ хост-системы + (host) или одной из следующих более + старых микроархитектурах Intel: 8086, + 80286 или 80386. + + + + + + Включает или выключает Таймер Событий Высокого + Разрешения (HPET), заменяющий устаревший системный + тайммер. Эта функция отключена по умолчанию. Заметим, + что HPET поддерживается в Windows начиная с Vista. + + + + + + Включает или отключает использования расширение + виртуализации оборудования в процессоре хост-системы. + Такими расширениями являются Intel VT-x или AMD-V. + Смотрите . + + + + + + Включает или отключает сброс гостевой ВМ вместо включения + медитации гуру. Некоторые гостевые ВМ вызывают тройной + сбой для сброса ЦПУ, поэтому иногда сброс гостевой ВМ - + это наилучший исход. Эта опция применяется только к + гостевым системам не использующих симметричную + многопроцессорность (SMP). + + + + + + Включает или выключает APIC. С APIC, ОС может + использовать более 16 запросов на прерывание (IRQ) + избегая совместное использование IRQ для улучшения + надежности. APIC включен по умолчанию. Смотрите + . + + + + + + Включает или выключает функцию ЦПУ x2APIC. ЦПУ x2APIC + позволяет ОС работать более эффективно в конфигурациях + с большим количеством ядер и оптимизировать распределение + прерываний в виртуализированном окружении. Эта функция + включена по умолчанию. + + Отключите эту функцию если ОС, работающая в хост-системе, + или гостевая ВМ не совместимы с ЦПУ x2APIC. + + + + + + Указывает один из следующих интерфейсов + паравиртуализации предоставленный гостевой ОС: + + + none не предоставляет каких-либо + интерфейсов паравиртуализации. + + + default выбирает подходящий + интерфейс, основанный на типе гостевой ОС при старте + ВМ. Это значение по умолчанию при создании новой ВМ. + + + legacy выбирает интерфейс + паравиртуализации для ВМ, созданный более старыми + версиями &product-name;. + + + minimal требуется для гостевых ВМ + с Mac OS X. + + + kvm рекомендуется для гостевых ВМ + Linux. Смотрите . + + + hyperv рекомендуется для гостевых + ВМ Windows. Смотрите . + + + + + + + Задает отладочные свойства, специфичные для провайдера + паравиртуализации, настроенного для указанной ВМ. + Смотрите . + + + + + + Включает или отключает функцию вложенных страниц в + процессоре хост-системы. Эта опция доступна только + если аппаратная виртуализация включена. Смотрите + и + . + + + + + + Включает или отключает использование гипервизором + больших страниц, что может увеличить производительность + до 5%. Использование больших страниц уменьшает + использование TLB и накладные расходы. Эта опция + доступна только если включены и аппаратная виртуализация + и вложенные страницы. + + + + + + Включает или отключает использование функцию TLB c метками + (VPID) в процессоре вашей хост-системы. Смотрите + . Эта опция доступна только + если аппаратная виртуализация включена на Intel VT-x. + + + + + + Включает или отключает использование неограниченного + гостевого режима для выполнения гостевой ВМ. Эта опция + доступна только когда аппаратная виртуализация включена + на Intel VT-x. + + + + + + Включает или отключает вложенну виртуализацию. Включение + делает доступной функцию аппаратной виртуализации в ВМ. + Смотрите . + + + + + + Если аппаратная виртуализация включена у хоста с ЦПУ AMD, + эта настройка включает или отключает использование функцию + виртуализированных vmsave/vmload во время исполнения ВМ. + Включена по умолчанию. Рекомендуется оставить включенной, + так как она имеет серьезное влияние на производительность + при выполнении вложенных ВМ при использовании вложенной + аппаратной виртуализации. + . + + + + + + Включает или выключает аппаратное 3D ускорение для + графических адаптеров, поддерживающих это. Эта опция + работает только при установленных Дополнений Гостевой ОС. + Смотрите . + + + + + + Включает или отключает 2D видео ускорение для графических + адаптеров, поддерживающих это. Эта опция работает только + при установленных Дополнений Гостевой ОС. Смотрите + . + + + + + + Задать чипсет Intel для эмуляции в &product-name;. + Значение по умолчанию - это чипсет Intel PIIX3 + (piix3). + + Изменяйте это значение только если нужно ослабить + некоторые ограничения чипсета. Смотрите + . + + + + + + Указывает типа IOMMU для эмуляции в &product-name;. + И Intel и AMD IOMMU требуют в настоящее время использование + чипсета Intel ICH9 (Смотрите опцию ). + + Допустимые значения: + + + none – IOMMU отсутствует и это + значение по умолчанию. + + + automatic – IOMMU присутствует, + но его тип выбирается автоматически, соответствуя + поставщику ЦПУ хоста при включении ВМ. + + + amd – AMD IOMMU присутствует. + + + intel – Intel IOMMU присутствует. + + + + + + + Указывает тип TPM для эмуляции в &product-name;. + + Допустимы следующие значения: + + + none – TPM отсутствует и это значение по умолчанию. + + + 1.2 – TPM, соответствующий спецификации TCG 1.2, присутствует. + + + 2.0 – TPM, соответствующий спецификации TCG 2.0, присутствует. + + + host – TPM хост системы перенаправляется в гостевую систему. + Может быть доступен не на всех поддерживаемых хост платформах. + + + swtpm – ВМ подключается к эмуляции внешнего TPM, совместимого + с swtpm. Необходиму задать расположение TPM location для подключения (смотрите опцию + ). + + + + + + + Указывает, появляется ли логотип BIOS при старте ВМ. По умолчанию + показывается логотип &product-name;. + + + + + + Указывает, исчезает ли логотип BIOS при старте ВМ. + + + + + + Задает время отображения логотипа BIOS в миллисекундах. + + + + + + Заменяет существующий логотип BIOS другим изображением. + Заменяющее изображение должно быть несжатым 16-, 256- или + 16М-цветным файлом bitmap (BMP), не содержащим информацию о + цветовом пространстве (формат Windows 3.0). Также убедитесь + что изображение не больше 640x480 пикселов. + + + + + + Указывает, позволяет ли BIOS выбрать временное + загрузочное устройство. Допустимые значения: + + + disabled выводит сообщение об + альтернативном загрузочном устройстве и позволяет + выбрать временное загрузочное устройство нажатием F12. + + + menuonly подавляет вывод сообщения + об альтернативном загрузочном устройстве, но позволяет + выбрать временное загрузочное устройство нажатием F12. + + + messageandmenu подавляет сообщение + об альтернативном загрузочном устройстве и предотвращает + выбор временного загрузочного устройства нажатием F12. + + + + + + + Задает уровень APIC для прошивки. Допустимые значения: + x2apic, apic + и disabled. Когда значение + disabled, ни версия apic + ни версия x2apic не используются. + + Заметим, что если указать значение x2apic + и x2APIC не поддерживается виртуальным ЦПУ, уровень + APIC снижается до apic, если он + поддерживается. Иначе, уровень APIC снижается до + disabled. Аналогично, если указать + значение apic и APIC не поддерживается + виртуальным ЦПУ, уровень APIC снижается до + disabled. + + + + + + Задает смещение времени в миллисекундах для гостевой ВМ + по отношению ко времени в хост-системе. Если значение + положительное, время в гостевой ВМ опережает время + хост-системы. + + + + + + Включает или отключает дополнительный отладочный вывод при + использовании загрузочного ROM Intel PXE. Отладочный вывод + записывается в файл журнала в режиме выпуска. Смотрите + . + + + + + + Включает или выключает представление системного UUID в + форме little endian. + Значение по умолчанию on для новых ВМ. + Для старых ВМ значение off чтобы сохранить + содержиммое таблицы DMI/SMBIOS неизменным, что может быть + важно для активации лицензии Windows. + + + + + + Позволяет указать порядок загрузочных устройств для ВМ + через назначение одного из типов устройств на каждый из + четырех слотов загрузочных устройств, представленных + N в имени опции. + + Значение 1 для в N представляет + первое загрузочное устройство, и так далее. + + Типы устройств - это floppy для флоппи + дисков, dvd для DVD или CD, + disk для жестких дисков и + net для сетевых устройств. Значение + none показывает, что загрузочное устройство + на указанный слот не назначено. + + + + + + Указывает, что часы реального времени (RTC) используют + скоординированное универсальное время (UTC). Смотрите + . + + + + + + Задает используемый тип графического контроллера. + Смотрите . + + + + + + Указывает имя папки для хранения снимков ВМ. + default означает + Snapshots/ в папке машины. + + + + + + Указывает прошивку, используемую для загрузки ВМ. Допустимые + значения: bios, efi, + efi32 или efi64. + Используйте значения EFI с осторожностью. + + По умолчанию используется прошивка BIOS. + + + + + + Задает размер гостевого memory balloon. Гостевой memory + balloon - это память выделенная Дополнениями Гостевой ОС + из гостевой ОС и возвращенная гипервизору для использования + другими ВМ. Указывайте размер + в мегабайтах. Значение по умолчанию 0 + мегабайт. Смотрите . + + + + + + Указывает фронтенд по умолчанию, используемый при + старте указанной ВМ. Если указать default, + ВМ запускается в окне рабочего стола пользователя. + Смотрите . + + + + + + Задает схему приоритета, используемую при старте + и работе указанной ВМ. + + Допустимы следующие значения: + + + default – Приоритет процесса + по умолчанию, опрелеляемый ОС. + + + flat – предполагает политику + планирования, которая устанавливает для процесса + приоритет по умолчанию, при этом, всем потокам процесса + устанавливается один и тот же приоритет. + + + low – Предполагает политику + планирования, которая устанавливает приоритет процесса + в основном ниже приоритета по умолчанию ОС хоста. + + + normal – Предполагает политику + планирования, которая честно разделяет ресурсы ЦПУ с + другими процессами, имеющими приоритет по умолчанию + ОС хоста. + + + high – Предполагает политику + планирования, которая устанавливает приоритет процесса + выше приоритета по умолчанию ОС хоста. Эта политика + может повлиять на другие процессы, заставляя их ожидать + ресурса ЦПУ больше положенного времени, что может + привести к непредсказуемому поведению. + + + + + + + Сетевые настройки + + + Следующие опции позволяют изменять сеть в вашей ВМ. Во всех + этих опциях, N - это число больше + нуля, представляющее определенный виртуальный сетевой адаптер, + настраиваемый в данный момент. + + + + + + Настраивает тип сети используемый каждой виртуальной + сетевой картов в ВМ. + + Следующие допустимые значения соответствуют режимам, + описанных в: + + + none – Сеть отсутствует + + + null – Не подключен к хост-системе + + + nat – Используется преобразование адресов (NAT) + + + natnetwork – Используется сеть NAT + + + bridged – Используется сетевой мост + + + intnet – Используется внутренняя сеть + + + hostonly – Используется сеть хоста + + + generic – Доступ к редко используемым подрежимам + + + + + + + Идентифицирует тип сетевого оборудования, которое + &product-name; представляет гостевой ВМ для указанной + виртуальной сетевой карты. Смотрите + . + + Допустимы следующие значения: + + + Am79C970A представляет AMD PCNet + PCI II. + + + Am79C973 представляет AMD PCNet + FAST III, что является значением по умолчанию. + + + 82540EM представляет Intel + PRO/1000 MT Desktop. + + + 82543GC представляет Intel + PRO/1000 T Server. + + + 82545EM представляет Intel + PRO/1000 MT Server. + + + virtio представляет паравиртуализированный + сетевой адаптер. + + + + + + + Временно отсоединяет виртуальный сетевой интерфейс, как + будто вы вытащили сетевой кабель из физического сетевого + интерфейса. Можно использовать эту опцию для сброса + определенных программных компонентов в ВМ. + + + + + + Включает или выключает трассировку сети для указанной + сетевой карты. + + + + + + Задает абсолютный путь к файлу, куда записывать информаицю + журнала трассировки. Используйте эту опцию если включена + трассировка сети. + + + + + + Позволяет задать значения свойств и передать их редко + используемым сетевым бэкендам. Для использования этой + опции, необходимо также использовать опцию + . + + Свойства относятся к движку бэкенда и отличаются между + UDP туннелем и драйверами бэкенда VDE. В качестве + примера смотрите + . + + + + + + Указывает пропускную способность в килобит в секунду для + редко используемых сетевых подрежимов, таких как сеть + VDE и UDP туннель. Используйте эту опцию, только если + использована опция для включения + generic сети для указанной виртуальной сетевой карты. + + + + + + Назначает приоритет для каждой NIC, что определяет порядок, + в котором соответствующий NIC используется для сетевой + загруки PXE. Значение приоритета - это число в диапазоне + от 0 до 4. + Приоритет 0, который является значением + по умолчанию, представляет наименьший приоритет. Приоритет + 1 - это наибольший приоритет, а + приоритеты 3 и 4 - + ниже. + + Эта опция работает только когда используется загрузочный + ROM Intel PXE. + + + + + + Позволяет указать разрешен или запрещен неразборчивый + режим указанной виртуальной сетевой карты ВМ. Эта опция + имеет значение только для сетевого моста. + Допустимые значения: + + + deny прячет любой траффик, не + предназначенный данной ВМ. Это значение по умолчанию. + + + allow-vms прячет весь траффик хоста, + но разрешает ВМ просматривать траффик других ВМ. + + + allow-all разрешает ВМ просматривать + весь траффик. + + + + + + + Добавляет или удаляет назначение группы полосы пропускания + к указанной виртуальной сетевой карте. Допустимые значения: + + + none удаляет любое текущее назначение + группы полосы пропускания из указанного виртуального + сетевого интерфейса. + + + имя добавляет назначение группы + полосы пропускания к указанному виртуальному сетевому + интерфейсу. + + + Смотрите . + + + + + + Указывает интерфейс хоста используемого в указанном + виртуальном сетевом интерфейсе. Смотрите + . Используйте эту опцию + только если использована опция для + включения сетевого моста для указанной виртуальной сетевой + карты. + + + + + + Указывает интерфейс сети хоста используемого в указанном + виртуальном сетевом интерфейсе. Смотрите + . Используйте эту опцию + только если использована опция для + включения сети хоста для указанной виртуальной сетевой + карты. + + + + + + Указывает имя внутренней сети. Смотрите + . Используйте эту опцию + только если использована опция для + включения внутренней сети для указанной виртуальной сетевой + карты. + + + + + + Указывает имя сети NAT, куда подключен адаптер. + Используйте эту опцию только если тип сети + natnetwork, а не nat. + + + + + + Позволяет получить доступ к редко используемым сетевым + подрежимам, таких как сети VDE и UDP туннель. + Используйте эту опцию, только если использована опция + для включения generic сети для + указанной виртуальной сетевой карты. + + + + + + Указывает MAC адрес указанного сетевого адаптера ВМ. + По умолчанию, &product-name; назначает случайный MAC + адрес на каждый сетевой адаптер при создании ВМ. + + + + + + Настройкт сети NAT + + + В следующих опциях, используйте N + для указания определенного виртуального сетевого адаптера, + где нужно произвести изменения. + + + + + + Указывает диапазон IP адресов используемый в этой сети. + Смотрите . Используйте эту опцию + только если тип сети nat, а не + natnetwork. + + + + + + Указывает используемое правило перенаправления портов NAT. + Смотрите . + + + + + + Указывает правило перенаправления портов NAT для удаления. + Смотрите . + + + + + + Задает префикс, используемый во встроенном TFTP сервере. + Например, можно использовать префикс, для указания, где + расположен загрузочный файл. Смотрите + и . + + + + + + Задает имя загрузочного файла TFTP. Смотрите + . + + + + + + Задает адрес сервера TFTP, откуда загружаться. Смотрите + . + + + + + + Задает альтернативный IP адрес, на который привязывается + движок NAT. Смотрите . + По умолчанию, движок NAT &product-name; перенаправляет пакеты TCP/IP + через интерфейс по умолчанию, назначенный TCP/IP стеком хоста. + + + + + + Указывает, передает ли встроенный DHCP сервер имя домена + для разрешения сетевого имени. + + + + + + Указывает, что движок NAT - это прокси для всех запросов DNS + из гостевых систем в DNS серверы хост-системы. Смотрите + . + + + + + + Указывает, что движок NAT использует механизм разрешения + хост-системы для обработки DNS запросов. Смотрите + . + + + + + + Указывает, что движок NAT разрешает траффик из гостя направленный на + 10.0.2.2 передавать в локальную петлю хоста, то есть localhost или 127.0.0.1. + + + + + + Задает значения для настройки производительности NAT. + Смотрите . + + + + + + Задает поведение ядра движка NAT: + + + log включает журналирование + + + proxyonly выключает режим + псеводонимов и делает NAT прозрачным + + + sameports заставляет движок NAT + отправлять пакеты через тот же порт, с которого + они пришли + + + default выключает все режимы псевдонимов. + + + Для более подробной информации смотрите + . + + + + + + Другие настройки оборудования + + + Следующие опции позволяют настроить другое оборудование, такое + как последовательный порт, монитор, аудио устройство, USB порты, + буфер обмена и функционал Drag and Drop. + + + + + + Задает режим мыши в ВМ. Допустимые значения: + ps2, usb, + usbtablet и usbmultitouch. + + + + + + Задает режим клавиатуры в ВМ. Допустимые значения: + ps2 и usb. + + + + + + Настраивает виртуальные последовательные порты ВМ. + N представляет модифицируемый + последовательный порт. Допустимые значения + off, отключающее порт или базу I/O и + IRQ. Для информации по значениям базы I/O и IRQ традиционных + COM портов смотрите . + + + + + + Указывает, как &product-name; соединяет указанный + виртуальный последовательный порт к хост-системе, где + работает ВМ. Смотрите . + + Убедитесь, что сначала настроили виртуальный последовательный + порт через опцию . + + Задайте один из следующих режимов соединения для каждого порта: + + + disconnected показывает что, даже + если последовательный порт отображается в гостевой ВМ, + он не подключен. Это состояние подобно физическому + COM порту без подключенного кабеля. + + + server + имя-канала создает + указанный именованный канал или сокет локального + домена в хост системе и присоединяет виртуальное + последовательное устройство к нему. + + В хост-системе Windows имя-канала - + это именованный канала с именем в следующем формате: + \\.\pipe\имя-канала. + + В хост-системе Linux, + имя-канала это сокет локального + домена. + + + client + имя-канала подключает + виртуальное последовательное устройство к указанному + именованному каналу или сокету локального домена. + + Заметим, что именованный канал или сокет локального домена + должны уже существовать. + + + tcpserver + порт создает сокет TCP + с указанным портом TCP в хост-системе и подключает + виртуальное последовательное устройство к нему. + + В UNIX-подобных системах используйте порты больше + 1024 для не-root пользователей. + + + tcpclient + имя-хоста:порт + поключает виртуальное последовательное устройство к + сокету TCP. + + Заметим, что TCP сокет должен уже существовать. + + + file + имя-файла перенаправляет + вывод последовательного порта в указанный файл. + Убедитесь, что имя-файла - + это абсолютный путь к файлу в хост-системе. + + + имя-устройства задает имя + устройства физического аппаратного последовательного + порта в указанной хост-системе, куда подсоединяется + виртуальный последовательный порт. + + Используйте этот режим для подключения физического + последовательного порта к ВМ. + + В хост-системах Windows имя устройства это COM порт + такой как COM1. В хост-системах Linux + имя устройства подобно /dev/ttyS0. + + + + + + + Настраивает тип UART для указанного виртуального последовательного + порта (N). Допустимые значения + 16450, 16550A и + 16750. Значение по умолчанию + 16550A. + + + + + + Задает имя устройства используемого параллельного порта. + + В хост-системах Windows используйте имя устройства как + lpt1. В хост-системах Linux, + используйте имя устройства как /dev/lp0. + + + + + + Задает базовый адрес I/O и IRQ параллельного порта. + + Можно посмотреть базовый адрес I/O и IRQ, используемый + для параллельного порта, в менеджере устройств. + + + + + + Задает аудио контроллер, используемый в ВМ. + Допустимые значения: + ac97, hda и + sb16. + + + + + + Указывает аудио кодек, используемый в ВМ. Допустимые + значения: stac9700, + ad1980, stac9221 + и sb16. + + + + + + Указывает, что ВМ имеет поддержку аудио определенного типа. + Допустимые значения: + none, default, + null, dsound, + was, oss, + alsa, pulse и + coreaudio. + + Заметим, что типы аудио зависят от операционной системы + хоста. Вывод справки по команде VBoxManage + modifyvm поможет определить поддерживаемые + типы аудио для вашей операционной системы. + + + Для обеспечения максимальной совместимости между хостами можно + использовать стандартный аудиодрайвер по + умолчанию. В этом случае, виртуальная машина автоматически выберет + наиболее подходящий аудиодрайвер для текущего доступного хоста. + + + + + + Указывает, следует ли включить или отключить звук для виртуальной + машины. + + + Эта опция имеет приоритет над опциями --audio-in и --audio-out, + т.е. отключение звука с помощью этой опции приведет к полному отключению + как входного, так и выходного звука. + + + + + + Указывает, включать или нет аудио захват из хост-системы. + + + + + + Указывает, включать или нет воспроизведение аудио из + гостевой ВМ. + + + + + + Указывает, как предоставляются данные буфера обмена + между гостевой ВМ и хост-системой. + Допустимые значения: disabled, + hosttoguest, + guesttohost и + bidirectional. Смотрите + . + + Функционал буфера обмена доступен только если + Дополнения Гостевой ОС установлены в ВМ. + + + + + + Указывает, как используется функция drag and drop между + хост-системой и ВМ. Допустимые значения: + disabled, + hosttoguest, + guesttohost и + bidirectional. Смотрите + . + + Функционал drag and drop доступен только если + Дополнения Гостевой ОС установлены в ВМ. + + + + + + Позволяет настроить несколько мониторов. Смотрите + . + + + + + + Включает или отключает виртуальный USB 1.1 контроллер ВМ. + Смотрите . + + + + + + Включает или отключает виртуальный USB 2.0 контроллер ВМ. + Смотрите . + + + + + + Включает или отключает виртуальный USB 3.0 контроллер ВМ. + Это наиболее эффективная опция если ВМ поддерживает его. + Смотрите . + + + + + + Переименовывает виртуальный USB контроллер ВМ из + старое-имя в + новое-имя. + + + + + + Настройки записи + + + Следующие опции позволяют изменить настройки записи видео, + записи аудио или обоих. + + + + + + Включает или отключает запись сессии ВМ в файл WebM или + VP8. Когда установлен в on, запись + начинается при старте сессии ВМ. + + + + + + Позволяет указать записываемый экран ВМ. С каждого экрана + запись ведется в свой файл. Допустимые значения: + all, то есть запись со всех экранов + или один или несколько указанных экранов. + + + + + + Задает имя файла куда сохранять запись. + + + + + + Задает максимальный размер файла записанного видео в + мегабайтах. Когда файл достигает указанного размера, + запись останавливается. Если указано значение + 0, запись продолжается пока не будет + остановлена вручную. + + + + + + Задает максимальное записываемое время в секундах. + При достижении указанного времени запись останавливается. + Если указано значение 0, запись + продолжается пока не будет остановлена вручную. + + + + + + Задает дополнительные свойства записи видео как + разделенный запятыми список свойств в виде ключ-значение. + Например foo=bar,a=b. + + Используйте эту опцию, только если вы опытный пользователь. + Информацию о ключах смотрите в Oracle VM + VirtualBox Programming Guide and Reference. + + + + + + Задает максимальное количество записываемых видеокадров + в секунду (FPS). Запись игнорирует все кадры с более + высокой частотой. Если увеличить FPS, меньше кадров + будет проигнорировано но запись и размер файла с + записью увеличится. + + + + + + Задает битрейт видео в килобит в секунду. Если увеличить + битрейт, качество записи улучшится но и размер записанного + файла также увеличится. + + + + + + Задает разрешение записанного видео (ширина и высота) + в пикселах. + + + + + + Настройки удаленной машины + + + Следующие опции позволяют изменить поведение расширения + удаленного рабочего стола VirtualBox (VRDE). + + + + + + Включает или отключает сервер VRDE. + + + + + + порт - это порт или диапазон + портов на которые подключается сервер VRDE. Значения + default или 0 + используют порт 3389. Это стандартный + порт RDP. + + Также cмотрите описание опции . + + + + + + IP-адрес - это IP адрес + интерфейса сети хоста, к которому подключается сервер + VRDE. Когда указана, сервер принимает подключения только + на интерфейс сети хоста с этим IP адресом. + + Также cмотрите описание опции . + + + + + + Указывает включен ли видеоканал VRDP или нет. + 1 значит on и + 0 значит off. + Смотрите . + + + + + + Задает значение между 10% и 100% включительно. Она + представляет уровень сжатия JPEG в видеоканале сервера + VRDE. Меньшее значение приводит к худшему качеству JPEG + но более высокое сжатие. Смотрите + . + + + + + + Включает или отключает функцию защиты от уменьшения + масштаба. Допустимые значения 1 + включающая функцию и 0, отключающую ее. + + Когда эта функция включена, &product-name; определяет + отображать ли видео: + + + Когда размер видео соответствуют размеру теневого + буфера, видео рассматривается как полноэкранное и + отображается. + + + Когда размер видео между полным экраном и порогом + уменьшения масштаба, видео не отображается. Такое + видео может быть окном приложения, нечитаемым при + уменьшении масштаба. + + + Когда эта функция отключена, все равно производится попытка + отобразить видео. + + + + + + Отключает функцию отображения сервера VRDE. + + Для повторного включения этой функции, назначьте пустое + значение. Например, для включения функии отображения + укажите команду VBoxManage modifyvm + --vrde-property=Client/DisableDisplay=. + Смотрите . + + + + + + Отключает функцию ввода сервера VRDE. + + + + + + Отключает функцию аудио сервера VRDE. + + + + + + Отключает функцию USB сервера VRDE. + + + + + + Отключает функцию буфера обмена сервера VRDE. Для + включения этой функции, назначьте пустое значение. + Смотрите . + + + + + + Отключает функцию передачи аудио на сервер VRDE. + Для включения этой функции назначьте пустое значение. + Смотрите . + + + + + + Отключает функцию RDP перенаправления устройств для + смарт-карт сервера VRDE. Для включения этой функции + назначьте пустое значение. + + + + + + Включает функию перенаправления 3D сервера VRDE. Для + включения этой функции назначьте пустое значение. + + + + + + Указывает следующую информаицю, требуемую для подключения: + + + Negotiate показывает, что разрешены + подключения, имеющие и расширенную (TLS) и стандартную + безопасность RDP. Метод безопасности согласуется с + клиентом. Это значение по умолчанию. + + + RDP показывает, что принимается только + подключение, имеющее стандартную безопасность RDP. + + + TLS показывает, что принимается только + подключение, имеющее расширенную безопасность RDP. Клиент + должен поддерживать TLS. + + + Смотрите . + + + + + + Задает абсолютный путь к сертификату сервера. Смотрите + . + + + + + + Задает абсолютный путь к приватному ключу сервера. Смотрите + . + + + + + + Задает абсолютный путь к корневому самоподписанному + сертификату. Смотрите . + + + + + + Задает режим подключения аудио или путь к файлу аудио + журнала. Допустимые значения: + + + VRDP_AUDIO_MODE_VOID - + отсутствие режима. Используйте это значение для + снятия используемого режима. + + + VRDP_AUDIO_MODE_RC - режим + коррекции скорости. + + + VRDP_AUDIO_MODE_LPF - режим + низкочастотного фильтра. + + + VRDP_AUDIO_MODE_CS - режим + синхронизации с клиентом для предотвращения + переполнения или недозаполнености очереди клиента. + + + + + + + Задает абсолютный путь к файлу аудио журнала. + + + + + + Задает библиотеку, используемую для удаленного доступа + к ВМ. Значение default использует + код RDP, который является частью пакета расширения + &product-name;. + + Для использования модуля VRDE в VNC, укажите + VNC. Смотрите + . + + + + + + порт - это порт или диапазон + портов на которые подключается сервер VRDE. Значение + default или 0 + использует порт 3389, который + является стандартным портом RDP. + + Можно указать разделенный запятыми список портов или + диапазонов портов. Используйте дефис между двумя + номерами портов для задания диапазона. Сервер VRDE + подключается только к одному доступному порту из списка. + В один и тот же момент, только одна машина может + использовать данный порт. Например, опция + указывает, + что сервер может подключиться на один из следующих портов: + 5000, 5010, + 5011 или 5012. + + + + + + Задает IP адрес интерфейса сети хоста, на который + подключается сервер VRDE. Если указать IP адрес, сервер + VRDE принимает подключения только с указанного + интерфейса сети хоста. + + Используйте эту опцию для указания, что сервер VRDP + должен принимать IPv4, IPv6 или оба тип соединений: + + + Только IPv4: + Используйте опцию + . + + + Только IPv6: + Используйте опцию + . + + + И IPv6 и IPv4: + Используйте опцию . + Это значение по умолчанию. + + + + + + + Указывает использовать ли авторизацию и как ее проводить. + Смотрите . Допустимые значения: + + + null - без аутентификации. + + + external - внешняя аутентификация + через библиотеку аутентификации. + + + guest - аутентификация через + гостевые пользовательские учетные записи. Этот + неподдерживаемый метод требует установки Дополнений + Гостевой ОС в ВМ. + + + + + + + Задает библиотеку, используемую для аутентификации RDP. + Библиотека по умолчанию для внешней аутентификации + VBoxAuth. Смотрите + . + + + + + + Включает или отключает функцию множественных подключений + к серверу VRDE, если поддерживается. Смотрите + . + + + + + + Задает поведение сервера VRDE когда множественные + подключения отключены. Когда значение + on, сервер разрешает подключение + нового клиента и разрывает существующее. Когда значение + off, новое подключение не принимается + если клиент уже подключен к серверу. Это значение + по умолчанию. + + + + + + Включает перенаправление видео, если поддерживается сервером + VRDE. Смотрите . + + + + + + Задает качество видео при перенаправлении как величина + от 10 до 100 процентов. Процент представляет уровень + сжатия JPEG, где меньшие значения ухудшают качество, + но обеспечивают более высокое сжатие. Смотрите + . + + + + + + Настройки портирования + + + Следующие опции позволяют настроить машину как цель + портирования. Смотрите . + + + + + + Включает или выключает портирование. Когда включено, + машина стартует и ждет получения запроса на портирование + из сети вместо нормальной загрузки. + + Запросы на портирование принимаются на порт и адрес, + указанный в следующих параметрах: + + + + + + Задает порт, который слушает ВМ для получения запросов + на портирование из другой ВМ. + порт - это любой свободный + номер TCP/IP порта, такой как 6000. + Необходимо также указать опцию . + + + + + + Задает IP адрес, который слушает ВМ для получения + запросов на портирование из другой ВМ. + IP-адрес - это любой IP + адрес или имя хоста. Он указывает сокет TCP/IP для + подключения. IP адрес по умолчанию + 0.0.0.0, который представляет + любой IP адрес. Необходимо также указать опцию + . + + + + + + Задает пароль, используемый для аутентификации. Когда + указан, запрос на портирование успешен только тогда, когда + пароль в исходной машине такой же, как и указанный. + + + + + + Задает файл, содержащий пароль для использования в + аутентификации. Когда указан, запрос на портирование + успешен только тогда, когда пароль в исходной машине + такой же, как и в указанном файле. Значение + stdin читает пароль из стандартного + потока ввода. + + + + + + + Ограничивает способности виртуального ЦПУ, которые + &product-name; представляет гостевой ОС использую правила + портативности. Более высокие целые значения означают + более ограниченное поведение. Уровень по умолчанию + 0 показывает, что весь поддерживаемый + хостом вируализированный функционал доступен гостевой + системе. Значение 3 подавляет + большинство функций. Значения 1 + и 2 представляют ограничения между + предыдущими уровнями. Поведение может меняться в + зависимости от версии продукта. + + + + + + + Опытные пользователи используют эту настройку перед + операцией портирования (фактически перед запуском ВМ) + для ограничения способностей виртуального ЦПУ, которые + &product-name; предоставляет гостевой операционной + системе. Это должно быть запущено и на исходной и на + целевой машинах, вовлеченных в процесс портирования и + определяет, что гостевая система увидит когда выполняет + машинную инструкцию CPUID. Это может помочь с неправильным + поведением приложений, которые неправильно предполагают, + что присутствуют определенные способности ЦПУ. + Значение параметра зависит от оборудования. Обратитесь + к документации AMD или Intel. + + Значения лист, + подлист (необязательно), + eax, ebx, + ecx и edx + - это целые числа данные в шестнадцатиричном формате, то есть + используя основание 16 без какого-либо префикса. + + + + + + + Удаляет подстройку, установленную через . + + + + + + + Удаляет все подстройки, установленные через . + + + + + + Настройки отладки + + + Используйте следующие опции только для низкоуровневой + отладки ВМ. Эти опции только для опытных пользователей. + + + + + + Включает или отключает буфер трассировки. Заметим, что + когда указан, буфер трассировки потребляет память и + добавляет накладные расходы. + + + + + + Включает конфигурацию трассировки, определяющую группу + включенных точек трассировки. + + + + + + Включает или отключает доступ ВМ к буферу трассировки. + Значение по умолчанию off, что + запрещает доступ. + + + + + + Настройки USB картридера + + + Следующие опции задают доступ гостевого окружения к USB картридеру. + USB картридер может получить доступ к данным карт памяти, таких + как CompactFlash (CF), Secure Digital (SD) и MultiMediaCard (MMC). + + + + + + Включает или отключает интерфейс USB картридера. + + + + + + Автостарт ВМ в течение загрузки хост-системы + + Следующие опции позволяют настроить функцию автостарта ВМ, + которая автоматически стартует ВМ во время загрузки хост-системы. + Требуется произвести некоторые настройки хост-системы перед + использованием этой функции. Смотрите . + + + + + + + Включает или отключает автостарт ВМ во время загрузки + хост-системы для указанного пользователя. + + + + + + Задает количество секунд, по истечении которых после + загрузки хост-системы, ВМ стартует. + + + + + + Настройки сквозного режима PCI + + Следующие опции позволяют настроить функцию сквозного режима PCI, + которая на настоящий момент не доступна в &product-name;. + Планируется вернуть данный функционал в будущем. + + + + + + + Подключает указанный сетевой контроллер PCI хоста к гостевой + ВМ. Можно опционально указать шину PCI в гостевой ВМ, куда + подключать контроллер. + + + + + + + Отключает указанный сетевой контроллер PCI из + подключенной PCI шины гостевой ВМ. + + + + + + + Тестирование (ValidationKit / Bootsector) + + Эти опции для настройки функционала тестирования VMM устройств и + почти экслюзивно используются bootsector тестами в ValidationKit. + + + + + + Включен функционал тестирования VMMDev. Для подробной информации смотрите VMMDevTesting.h. + + + + Включена область MMIO для функционала тестирования VMMDev. + + + + + Это задает один из 10 DWORD значений конфигурации. + idx должен быть в диапазоне от 0 до 9. + значение ограничено 32 битами (DWORD). + + + + + + + + + Примеры + + + Следующая команда изменяет описание для ВМ + ol7. + +$ VBoxManage modifyvm ol7 --description "Oracle Linux 7 with UEK4" + + Следующая команда включает поддержку протокола удаленного + рабочего стола VirtualBox (VRDP) для ВМ ol7. + +$ VBoxManage modifyvm ol7 --vrde on + + + + Смотрите также + + , + , + , + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-movevm.xml b/doc/manual/ru_RU/man_VBoxManage-movevm.xml new file mode 100644 index 00000000..7e28935e --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-movevm.xml @@ -0,0 +1,113 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage movevm + + + + VBoxManage-movevm + 1 + + + + VBoxManage-movevm + перемещает виртуальную машину в новое расположение в хост-системе + &product-name; + + + + + + VBoxManage movevm + + uuid + имя-ВМ + + --type=basic + --folder=имя-папки + + + + + Описание + + Команда VBoxManage movevm перемещает + виртуальную машину (ВМ) в новое расположение в хост-системе. + + + Когда перемещена, все файлы, связанные с ВМ, такие как файлы + настроек и файлы образов дисков, перемещаются в новое расположение. + Конфигурация &product-name; обновляется автоматически. + + + + uuid|имя-ВМ + + Указывает Универсальный Уникальный Идентификатор (UUID) + или имя ВМ для перемещения. + + + + + + Задает тип операции перемещения. Пока что basic + является единственным распознаваемым значением и также + является значением по умолчанию, если не указан. + + + + + + Указывает полный или относительный путь к новому + расположению в файловой системе хоста. Позволяется + не указывать эту опцию или указать текущее расположение. + В этом случае производится перемещение образов дисков + и других частей ВМ в это расположение, если они находятся + в других местах. + + + + + + + Примеры + + + Следующая команда перемещает ВМ ol7 в новое + расположение в хост-системе. + +$ VBoxManage movevm ol7 --folder "/home/testuser/vms" --type basic +0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +Машина успешно перемещена в /home/testuser/vms + + diff --git a/doc/manual/ru_RU/man_VBoxManage-natnetwork.xml b/doc/manual/ru_RU/man_VBoxManage-natnetwork.xml new file mode 100644 index 00000000..fffe1c2f --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-natnetwork.xml @@ -0,0 +1,367 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage natnetwork + + + + VBoxManage-natnetwork + 1 + + + + VBoxManage-natnetwork + создает, изменяет или управляет сетью NAT + &product-name; + + + + + + VBoxManage natnetwork add + + --disable + --enable + + --netname=имя + --network=сеть + --dhcp=on|off + --ipv6=on|off + --loopback-4=правило + --loopback-6=правило + --port-forward-4=правило + --port-forward-6=правило + + + + VBoxManage natnetwork list + шаблон-фильтра + + + + VBoxManage natnetwork modify + --dhcp=on|off + + --disable + --enable + + --netname=имя + --network=сеть + --ipv6=on|off + --loopback-4=правило + --loopback-6=правило + --port-forward-4=правило + --port-forward-6=правило + + + + VBoxManage natnetwork remove + --netname=имя + + + + VBoxManage natnetwork start + --netname=имя + + + + VBoxManage natnetwork stop + --netname=имя + + + + + Описание + + Команда VBoxManage natnetwork позволяет + создавать, изменять и управлять сетью NAT. + + + Сети NAT используют службу преобразования сетевых адресов (NAT). + Служба группирует системы в сеть и предотвращает прямой доступ + внешних систем к системам внутри сети. Служба также позволяет + системам в сети общаться друг с другом и с внешними системами + посредством TCP и UDP через IPv4 и IPv6. + + + Служба NAT подключена к внутренней сети. Чтобы ВМ использовала + службу NAT, необходимо подключить ВМ к внутренней сети. Задайте + имя внутренней сети когда создаете службу NAT. Заметим, что + внутренняя сеть создается если она еще не существует. + + + Добавить службу сети NAT + + + Команда VBoxManage natnetwork add создает + новый интерфейс внутренней сети и добавляет службу сети NAT. + Вы должны использовать эту команду перед тем как подключать + ВМ к сети NAT. + + + + + + Отключает службу сети NAT. + + + + + + Включает службу сети NAT. + + + + + + Задает имя нового интерфейса внутренней сети в ОС хоста. + + + + + + Указывает статический адрес или сетевой адрес DHCP и + маску интерфейса службы NAT. По умолчанию, это значение + указывает статический сетевой адрес. + + + + + + Включает или отключает сервер DHCP, который указывается + через опцию . + + + + + + Включает или отключает IPv6. По умолчанию, IPv6 отключен, + а IPv4 включен. + + + + + + Включает интерфейс локальной петли IPv4, используя + указанное правило. + + + + + + Включает интерфейс локальной петли IPv6, используя + указанное правило. + + + + + + Включает перенаправление портов IPv4 используя правило, + указанное в правило. + + + + + + Включает перенаправление портов IPv6 используя правило, + указанное в правило. + + + + + + Удалить службу сети NAT + + + Команда VBoxManage natnetwork remove + удаляет указанную службу сети NAT. + + + + + + Задает имя удаляемой службы сети NAT. + + + + + + Запустить службу сети NAT + + + Команда VBoxManage natnetwork start + запускает службу сети NAT и любой связанный сервер DHCP. + + + + + + Задает имя запускаемой службы сети NAT. + + + + + + Остановить службу сети NAT + + + Команда VBoxManage natnetwork stop + останавливает службу сети NAT и любой связанный сервер DHCP. + + + + + + Задает имя останавливаемой службы сети NAT. + + + + + + Показать все службы сети NAT + + + Команда VBoxManage natnetwork list показывает + все службы сети NAT. Можно использовать шаблон для отображения + подмножества служб сетей NAT. + + + + шаблон-фильтра + + Указывает необязательный шаблон фильтра. + + + + + + Изменить настройки службы сети NAT + + + Команда VBoxManage natnetwork modify + изменяет настройки существующего интерфейса внутренней + сети. + + + + + + Отключает службу сети NAT. + + + + + + Включает службу сети NAT. + + + + + + Задает имя нового интерфейса внутренней сети в ОС хоста. + + + + + + Указывает статический или DHCP сетевой адрес и маску + интерфейса службы NAT. По умолчанию это значение + указывает статический сетевой адрес. + + + + + + Включает или отключает сервер DHCP, указанный через + опцию . + + + + + + Включает или отключает IPv6. По умолчанию IPv6 отключен, а + IPv4 включен. + + + + + + Включает интерфейс локальной петли IPv4, используя + указанное правило. + + + + + + Включает интерфейс локальной петли IPv6, используя + указанное правило. + + + + + + Включает перенаправление портов IPv4, используя правило, + указанное в правило. + + + + + + Включает перенаправление портов IPv6, используя правило, + указанное в правило. + + + + + + + + Примеры + + + Следующая команда показывает как создать сеть NAT для + внутренней сети natnet1, использующей + сетевой адрес и маску 192.168.15.0/24 + интерфейса службы NAT. В этой статической конфигурации, + по умолчанию шлюзу назначен IP адрес 192.168.15.1. + Заметим, что этот IP адрес - это следующий адрес после адреса, + указанного опцией . + +$ VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable + + Следующая команда показывает как добавить сервер DHCP к + сети NAT natnet1 после создания: + +$ VBoxManage natnetwork modify --netname natnet1 --dhcp on + + diff --git a/doc/manual/ru_RU/man_VBoxManage-registervm.xml b/doc/manual/ru_RU/man_VBoxManage-registervm.xml new file mode 100644 index 00000000..86b185d0 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-registervm.xml @@ -0,0 +1,102 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage registervm + + + + VBoxManage-registervm + 1 + + + + VBoxManage-registervm + регистрирует виртуальную машину + &product-name; + + + + + + VBoxManage registervm + имя-файла + + + + + Описание + + Команда VBoxManage registervm позволяет + создать виртуальную машину (ВМ) путем импорта XML файла + конфигурации машины в &product-name;. У ВМ не может быть + такой же UUID как и у машины, уже зарегистрированной в + &product-name;. Убедитесь перед регистрацией, что XML файл + конфигурации машины находится в папке машины. + + + + При создании ВМ с помощью команды VBoxManage + createvm можно указать опцию + для регистрации ВМ после создания. + + + + + имя-файла + + Задает XML файл конфигурации машины. Этот файл + имеет расширение .vbox. + + + + + + + Примеры + + + Следующая команда регистрирует ВМ, называемую vm2. + XMl файл конфигурации машины для этой ВМ расположен в папке машины + по умолчанию. + +$ VBoxManage registervm "/home/user/VirtualBox VMs/vm2/vm2.vbox" + + + + Смотрите также + + , + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-setextradata.xml b/doc/manual/ru_RU/man_VBoxManage-setextradata.xml new file mode 100644 index 00000000..4125b0a2 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-setextradata.xml @@ -0,0 +1,122 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage setextradata + + + + VBoxManage-setextradata + 1 + + + + VBoxManage-setextradata + устанавливает значение ключа связанного с виртуальной машиной или конфигурацией + &product-name; + + + + + + VBoxManage setextradata + + global + uuid + имя-ВМ + + ключ + значение + + + + + Описание + + Команда VBoxManage setextradata позволяет + задать значение ключа связанного с виртуальной машиной (ВМ) + или с конфигурацией &product-name;. + + + + global + + Устанавливает информацию о конфигурации а не ВМ. + + + + uuid|имя-ВМ + + Задает Универсальный Уникальный Идентификатор (UUID) или + имя ВМ. + + + + ключ + + Задает ключ, для которого задается значение. + + + + значение + + Задает значение ключа. Если не указывается значение, ключ + удаляется. + + + + + + + Примеры + + + Следующая команда устанавливает значение ключа + installdate для ВМ Fedora5 + в 2019.01.01: + +$ VBoxManage setextradata Fedora5 installdate 2019.01.01 + + Следующая команда удаляет значение ключа + installdate из ВМ + Fedora5: + +$ VBoxManage setextradata Fedora5 installdate + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-setproperty.xml b/doc/manual/ru_RU/man_VBoxManage-setproperty.xml new file mode 100644 index 00000000..2af94fe4 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-setproperty.xml @@ -0,0 +1,232 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage setproperty + + + + VBoxManage-setproperty + 1 + + + + VBoxManage-setproperty + изменение глобальных настроек + &product-name; + + + + + + VBoxManage setproperty + имя-свойства + значение-свойства + + + + + Описание + + Команда VBoxManage setproperty позволяет + изменить глобальные настройки влияющие на всю инсталляцию + &product-name;. Некоторые из этих настроек соответствуют + настройкам в диалоге Настройки + в Менеджере VirtualBox. + + + Доступны следующие свойства: + + + + autostartdbpath + + Задает путь к базе данных автостарта. Допустимые значения + null, которое отключает базу данных + автостарта или имя папки, содержащую базу данных. + Смотрите . + + + + defaultfrontend + + Задает глобальный фронтенд ВМ по умолчанию. Допустимые + значения default, которое указывает + фронтенд по умолчанию, или имя используемого фронтенда. + + + + hwvirtexclusive + + Указывает, использует ли &product-name; эксклюзивно + расширение аппаратной виртуализации Intel VT-x или AMD-V + системного процессора хоста. Смотрите . + + Допустимы следующие значения: + + + on позволяет &product-name; + использовать эксклюзивно эти расширения. Это значение + по умолчанию. + + + off совместно использует эти + расширения с другими гипервизорами, работающими + одновременно. Заметим, что отключение этой + настройки имеет негативное воздействие на + производительность. + + + + + language + + Указывает язык пользователя для перевода сообщений API. + Допустимые значения C, что означает + отсутствие перевода или код языка в форме ll + или ll_CC, где ll - + это двухбуквенный код языка в нижнем регистре и + CC - это двухбуквенный код страны в + верхнем регистре. + + + + logginglevel + + Задает детали журналирования VBoxSVC в режиме выпуска. + Смотрите . + + + + loghistorycount + + Указывает количество оставляемых циклических журналов ВМ. + + + + machinefolder + + Задает папку по умолчанию куда сохраняются определения + виртуальных машин (ВМ). Допустимые значения + default, который указывает папку + хранилища по умолчанию или имя используемой папки. + Смотрите . + + + + proxymode + + Настраивает режим сервера прокси HTTP. Допустимые значения: + + + manual + + Настраивает вручную URL сервера прокси HTTP, + с помощью значения свойства proxyurl. + + + + noproxy + + Не использовать сервер прокси HTTP. Используется + прямое соединение к интернету. + + + + system + + Автоматически определить настройки прокси для сети + хоста. Это значение по умолчанию. + + + + + + proxyurl + + Задает URL для сервера прокси HTTP при использовании + ручной настройки через установку свойства + proxymode в manual. + + + + vrdeauthlibrary + + Указывает используемую библиотеку если настроена + внешняя аутентификация для определенной ВМ. Допустимые + значения default, которая задает + библиотеку по умолчанию или имя используемой библиотеки. + Смотрите . + + + + vrdeextpack + + Задает библиотеку, реализующую расширение удаленного + рабочего стола VirtualBox (RDE). Допустимые значения + null, которое отключает RDE или имя + используемой библиотеки. + + + + websrvauthlibrary + + Указывает, библиотеку, используемую веб службой для + аутентификации пользователей. Допустимые значения + default, которое задает библиотеку + по умолчанию, null, которое отключает + аутентификацию или имя используемой библиотеки. Для + дополнительной информации о веб службе &product-name; + Смотрите . + + + + + + + Примеры + + + Следующая команда настраивает &product-name; для использования + указанного сервера прокси HTTP. + +$ VBoxManage setproperty proxymode manual +$ VBoxManage setproperty proxyurl "http://myproxy.com:8080" + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-sharedfolder.xml b/doc/manual/ru_RU/man_VBoxManage-sharedfolder.xml new file mode 100644 index 00000000..1905098a --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-sharedfolder.xml @@ -0,0 +1,214 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage sharedfolder + + + + VBoxManage-sharedfolder + 1 + + + + VBoxManage-sharedfolder + добавление или удаление общих папок + &product-name; + + + + + + VBoxManage sharedfolder add + + uuid + имя-ВМ + + --name=имя + --hostpath=путь-в-хост-системе + --readonly + --transient + --automount + --auto-mount-point=путь + + + + VBoxManage sharedfolder remove + + uuid + имя-ВМ + + --name=имя + --transient + + + + + Описание + + Общие папки позволяют предоставить совместный доступ к данным + между хост-системой и гостевыми системами. Для использования + общих папок, сначала надо установить Дополнения Гостевой ОС + &product-name; в гостевой ОС. + + + Общая папка связана с именем разделяемого ресурса и полным + путем к папке или директории в хост-системе. Имя разделяемого + ресурса - это уникальное имя в пространстве имен ОС хоста. + + + Добавить общую папку + + + Команда VBoxManage sharedfolder add создает + общую папку. Папка указывается в хост-системе. Когда папка + настроена, к содержимому папки в хост-системе может быть + предоставлен совместный доступ в гостевых ОС. + + + + uuid|имя-ВМ + + Задает имя или UUID гостевой ВМ, которая разделяет папку + с хост-системой. + + + + --name=имя + + Задает имя разделяемого ресурса, который имеет + уникальное имя в пространстве имен ОС хоста. + + + + --hostpath=путь-в-хост-системе + + Задает абсолютный путь к папке или директории в ОС хоста + для предоставления доступа гостевым ОС. + + + + --readonly + + Указывает, что разделяемый ресурс имеет доступ только + для чтения к файлам хоста. + + По умолчанию, общие папки имеют доступ на чтение и на + запись к файлам хоста. Однако, в дистрибутивах Linux, + общие папки монтируются с файловыми разрешениями 770, + пользователем root и группой + vboxsf. Эта опция устанавливает + файловые разрешения в 700. + + + + --transient + + Задает что разделяемый ресурс временный, что означает, что + он может быть добавлен и удален в время выполнения и не + сохраняется после выключения ВМ. + + + + --automount + + Указывает, что разделяемый ресурс монтируется автоматически. + + + + --auto-mount-point=путь + + Задает точку монтирования разделяемого ресурса. Зависит от гостевой ОС. + + Для гостевых систем Windows и OS/2 она должна быть неиспользуемой + буквой диска. Если оставить пустым (или указать используемую + букву диска), будет использована последняя неиспользуемая буква + диска вместо указанной (то есть ищется буква с Z: + по A:). + + Для Linux, Solaris и других гостевых систем UNIX, он должен быть + абсолютным путем, например /mnt/mysharedfolder. + Если оставить пустым, расположение по умолчанию будет + /media/sf_имя-общей-папки. + + + + + + Удалить общую папку + + + Команда VBoxManage sharedfolder remove + удаляет общую папку. + + + + uuid|имя-ВМ + + Задает имя или UUID гостевой ВМ, которая разделяет папку + с хост-системой. + + + + --name=имя + + Задает имя удаляемого разделяемого ресурса. + + + + --transient + + Указывает, что папка временная, что означает что она + может быть добавлена и удалена во время выполнения и не + сохраняется после выключения ВМ. + + + + + + + + Примеры + + + Следующая команда создает общую папку, называемую + o7share для ВМ ol7. + Папка монтируется автоматически при старте ВМ. + +$ VBoxManage sharedfolder add ol7 --name ol7share --hostpath "/home/user/ol7share" --automount + + Следующая команда удаляет общую папку, называемую + o7share из ВМ ol7. + +$ VBoxManage sharedfolder remove ol7 --name ol7share + + diff --git a/doc/manual/ru_RU/man_VBoxManage-showmediuminfo.xml b/doc/manual/ru_RU/man_VBoxManage-showmediuminfo.xml new file mode 100644 index 00000000..b2cfc90e --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-showmediuminfo.xml @@ -0,0 +1,142 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage showmediuminfo + + + + VBoxManage-showmediuminfo + 1 + + + + VBoxManage-showmediuminfo + отображение информации о носителе + &product-name; + + + + + + VBoxManage showmediuminfo + + disk + dvd + floppy + + + uuid + имя-файла + + + + + + Описание + + Команда VBoxManage showmediuminfo показывает + следующую информацию о носителе: + + + + Размер + + + Размер на диске + + + Тип + + + Используется виртуальными машинами (ВМ) + + + + Носитель должен быть указан или через UUID, если носитель + зарегистрирован или через имя файла. Зарегистрированные носители + можно увидеть через VBoxManage list hdds, + VBoxManage list dvds или VBoxManage list + floppies соответственно. + + + Для обратной совместимости, можно также использовать команду + showvdiinfo для получения информации о + носителе. + + + + disk | dvd | floppy + + Указывает тип носителя. Допустимые значения + disk (жесткий диск), + dvd или floppy. + + + + uuid | имя-файла + + Задает Универсальный Уникальный Идентификатор (UUID) + или абсолютный путь к носителю или образу. + + Если носитель зарегистрирован, можно указывать UUID. Можно + также просмотреть зарегистрированные образы через команды + VBoxManage list hdds, VBoxManage + list dvds или VBoxManage list + floppies. + + + + + + + Примеры + + + Следующая команда показывает информацию об образе + диска disk01.vdi: + +$ VBoxManage showmediuminfo disk01.vdi + + Следующая команда показывает информацию об образе + флоппи диска floppy01.img. + +$ VBoxManage showmediuminfo floppy floppy01.img + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-showvminfo.xml b/doc/manual/ru_RU/man_VBoxManage-showvminfo.xml new file mode 100644 index 00000000..d6b8bc48 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-showvminfo.xml @@ -0,0 +1,186 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage showvminfo + + + + VBoxManage-showvminfo + 1 + + + + VBoxManage-showvminfo + отображает информацию о конфигурации или содержимое файла журнала виртуальной машины + &product-name; + + + + + + VBoxManage showvminfo + + uuid + имя-ВМ + + --details + --machinereadable + + + + VBoxManage showvminfo + + uuid + имя-ВМ + + --log=индекс + + + + + Описание + + Команда VBoxManage showvminfo выводит + информацию о конфигурации или содержимое файла журнала для + указанной виртуальной машины (ВМ). + + + Просмотр информации о виртуальной машине + + + Команда VBoxManage showvminfo выводит + информацию об указанной ВМ в подробном формате или в + машино-читаемом формате. + + + Команда VBoxManage showvminfo показывает + ту же самую информацию для указанной ВМ в том же формате, что + и команда VBoxManage list vms --long. + + + + + + Включает подробную информацию о ВМ. + + + + + + Указывает, что информация о ВМ должна быть в + машино-читаемом формате. + + + + + + Просмотр содержимого журнала виртуальной машины + + + Команда VBoxManage showvminfo --log выводит + содержимое одного из указанных файлов журналов ВМ. + + + + + + Задает численный индекс, идентифицирующий файл журнала. + + Значение индекса начинается 0, которая + указывает файл VBox.log. Значение + индекса 1 указывает файл + VBoxHardening.log. Значение индекса + начиная с 2 указывают другие файлы + журнала, такие как файл VBox.log.1. + + + + + + + + Примеры + + + Следующий пример показывает типичный вывод этой команды: + +$ VBoxManage showvminfo "Windows 10" +VirtualBox Command Line Management Interface Version номер-версии +Copyright (C) 2005-2022 Oracle and/or its affiliates + +Имя: Windows 10 +Группы: / +Гостевая ОС: Windows 10 (64-bit) +UUID: 1bf3464d-57c6-4d49-92a9-a5cc3816b7e7 +Файл настроек: /home/username/VirtualBox VMs/Windows 10/Windows 10.vbox +Папка снимков: /home/username/VirtualBox VMs/Windows 10/Snapshots +Папка журнала: /home/username/VirtualBox VMs/Windows 10/Logs +UUID оборудования: 1bf3464d-57c6-4d49-92a9-a5cc3816b7e7 +Размер памяти: 2048MB +Page Fusion: off +Размер VRAM: 12MB +Время выполнения ЦПУ: 100% +... + + Следующий пример показывает вывод информации в + машино-читаемом формате, которая отображает элементы + как строку + свойство=значение: + +$ VBoxManage showvminfo "Windows 10" --machinereadable +... +groups="/" +ostype="Windows 10 (64-bit)" +UUID="1bf3464d-57c6-4d49-92a9-a5cc3816b7e7" +... + + Следующий пример показывает содержимое файла + журнала VBox.log: + +$ VBoxManage showvminfo "Windows 10" --log 0 +00:00:02.895106 VirtualBox VM 6.0.0_RC1 r127378 linux.amd64 (Dec 10 2018 17:16:06) release log +00:00:02.895109 Log opened 2018-12-14T14:31:44.088259000Z +00:00:02.895111 Build Type: release +00:00:02.895115 OS Product: Linux +00:00:02.895117 OS Release: 4.1.12-61.1.22.el7uek.x86_64 +00:00:02.895119 OS Version: #2 SMP Fri Dec 2 09:28:44 PST 2016 +... + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-signova.xml b/doc/manual/ru_RU/man_VBoxManage-signova.xml new file mode 100644 index 00000000..47ce3e13 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-signova.xml @@ -0,0 +1,145 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage signova + + + + VBoxManage-signova + 1 + + + + VBoxManage-signova + цифровая подпись OVA + &product-name; + + + + + + VBoxManage signova + ova + --certificate=файл + --private-key=файл + + --private-key-password-file=файл-с-паролем + --private-key-password=файл-с-паролем + + --digest-type=тип + + --pkcs7 + --no-pkcs7 + + --intermediate-cert=файл + --force + --verbose + --quiet + --dry-run + + + + + Описание + + Команда VBoxManage signova добавляет цифровую + подпись к OVA файлу. + + + + + ova + подписываемый файл OVA. + + + + Файл, содержащий сертификат для подписи OVA. Он может + быть или в формате PEM (base64) или DER (бинарный). Команда определит, + какой из них. + + + + Файл, содержащий приватный ключ. Он может быть или в + формате PEM (base64) или DER (бинарный). Команда определит, + какой из них. + + + + Файл, содержащий пароль к приватному ключу. + + + + Пароль к приватному ключу. + + + + + Выбирает алгоритм криптографического дайджеста, используемый + в подписи. Возможные значения: SHA-256 (по умолчанию), SHA-512 и SHA-1. + Некоторые старые версии OVFTool и другие продукты VMWare могут + требовать для принятия OVA. + + + + , + Включает или отключает создание дополнительной подписи + PKCS#7/CMS. Включено по умолчанию. + + + + Файл содержащий промежуточный сертификат, который должен быть + включен в необязательную подпись PKCS#7/CMS. Как и другие, файл может быть + в форматах PEM или DER. Эта опция может повторяться для добавления нескольких + промежуточных сертификатов. Эта опция подразумевает опцию + . + + + + Переписывает существующую сигнатуру если присутствует. Поведение + по умолчанию - завершиться неудачей если OVA уже подписан. + + + + Не изменять OVA на самом деле, просто протестировать операцию подписи. + + + , , , + Управляет степенью подробности вывода при выполнении команды. Опцию + можно указывать несколько раз для получения более + подробного вывода. + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-snapshot.xml b/doc/manual/ru_RU/man_VBoxManage-snapshot.xml new file mode 100644 index 00000000..8881c9f8 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-snapshot.xml @@ -0,0 +1,395 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage snapshot + + + + VBoxManage-snapshot + 1 + + + + VBoxManage-snapshot + управляет снимками виртуальной машины &product-name; + &product-name; + + + + + + VBoxManage snapshot + uuid|имя-ВМ + + + + VBoxManage snapshot + uuid|имя-ВМ + + take + + имя-снимка + + --description=описание + + --live + + --uniquename Number,Timestamp,Space,Force + + + + VBoxManage snapshot + uuid|имя-ВМ + + delete + + имя-снимка + + + + VBoxManage snapshot + uuid|имя-ВМ + + restore + + имя-снимка + + + + VBoxManage snapshot + uuid|имя-ВМ + + restorecurrent + + + + VBoxManage snapshot + uuid|имя-ВМ + + edit + + + имя-снимка + --current + + + --description=описание + + --name=новое-имя + + + + VBoxManage snapshot + uuid|имя-ВМ + + list + + --details--machinereadable + + + + VBoxManage snapshot + uuid|имя-ВМ + + showvminfo + + имя-снимка + + + + + Описание + + Команда VBoxManage snapshot управляет снимками. + + + &product-name; использует снимки для фиксации состояния виртуальной + машины (ВМ). Можно позднее использовать снимок для возврата к + состоянию, описываемому снимком. + + + Снимок - это полная копия настроек ВМ. Если снимок создается + во время работы ВМ, снимок также включает файл состояния ВМ. + + + После создания снимка, &product-name; создает + разностный жесткий диск для каждого обычного + диска связанного с хост-машиной. При восстановлении снимка, + &product-name; использует эти разностные файлы для быстрого + сброса содержимого виртуальных жестких дисков ВМ. + + + Для каждой команды VBoxManage snapshot, + необходимо указать имя или универсальный уникальный идентификатор + (UUID) ВМ для которого нужно сделать снимок. + + + Общие операнды команды + + + uuid|имя-ВМ + + Задает UUID или имя ВМ. + + + + + + Сделать снимок виртуальной машины + + + Команда VBoxManage snapshot take делает + снимок текущего состояния ВМ. Необходимо указать имя снимка + и, необязательно, описание. Новый снимок вставляется в дерево + снимков как потомок текущего снимка и становится новым текущим + снимком. + + + + + + Задает описание снимка. + + + + + + Указывает, что ВМ не останавливается во время создания + снимка. Операция известна как живое создание снимка. + + + + + + Будет описано позже. + + Что эта опция делает и как ее использовать? + + + + имя-снимка + + Задает имя создаваемого снимка. + + + + + + Удалить снимок + + + Команда VBoxManage snapshot delete + удаляет указанный снимок. + + + Операция удаления может занять некоторое время из-за + того что разностные образы связанные со снимком могут быть + объединены с их дочерними разностными образами. + + + + имя-снимка + + Задает UUID или имя снимка. + + + + + + Восстановить снимок + + + Команда VBoxManage snapshot restore + восстанавливает указанный снимок. Эта операция сбрасывает + настройки и текущее состояние к указанному снимку. Состояние + ВМ, на котором восстанавливается снимок, теряется. По + завершении восстановления, указанный снимок становится новым + текущим снимком, а последующие снимки - дочерними к нему. + + + + имя-снимка + + Задает UUID или имя снимка. + + + + + + Восстановить текущий снимок + + + Команда VBoxManage snapshot restorecurrent + восстанавливает текущий снимок. Текущий снимок - это снимок, + от которого получено текущее состояние. Эта команда + эквивалентна команде VBoxManage snapshot + restore с указанием имени или UUID текущего снимка. + + + + Изменить имя или описание существующего снимка + + + Команда VBoxManage snapshot edit позволяет + изменить имя или описание указанного снимка. + + + + имя-снимка + + Задает UUID или имя редактируемого снимка. + + Эта опция взаимоисключающая с опцией + . + + + + + + Указывает, что нужно обновить текущую версию снимка. + + Эта опция взаимоисключающая с указанием имени снимка + или его UUID. + + + + + + Задает новое описание для указанного снимка. + + + + + + Задает новое имя снимка. + + + + + + Показать список снимков + + + Команда VBoxManage snapshot list показывает + все снимки ВМ. + + + + + + Указывает, что вывод показывает подробную информацию о снимке. + + Эта опция взаимоисключающая с опцией + . + + + + + + Указывает, что вывод производится в машино-читаемом + формате. + + Эта опция взаимоисключающая с опцией + . + + + + + + Показать информацию о настройках снимка + + + Команда VBoxManage snapshot showvminfo позволяет + просмотреть настройки ВМ, являющихся частью существующего снимка. + + + + имя-снимка + + Задает UUID или имя снимка. + + + + + + + + Примеры + + + Следующая команда создает снимок ВМ + ol7u4. Снимок называется + ol7u4-snap-001. Команда использует + опцию для передачи описания + содержимого снимка. + + +$ VBoxManage snapshot ol7u4 take ol7u4-snap-001 \ +--description="Oracle Linux 7.4" + + + Следующая команда показывает снимки ВМ + ol7u4. + + +$ VBoxManage snapshot ol7u4 list + + + Следующая команда изменяет описание снимка + ol7u4-snap-001 ВМ + ol7u4. + + +$ VBoxManage snapshot ol7u4 edit ol7u4-snap-001 \ +--description="Oracle Linux 7.4 with UEK4 kernel" + + + Следующая команда показывает настройки ВМ снимка + ol7u1-snap-001 ВМ + ol7u4. + + +$ VBoxManage snapshot ol7u4 showvminfo ol7u4-snap-001 +Имя: ol7u4 +Группы: / +Гостевая ОС: Oracle (64-bit) +UUID: 43349d78-2ab3-4cb8-978f-0e755cd98090 +Файл настроек: C:\Users\user1\VirtualBox VMs\ol7u4\ol7u4.vbox +... +Снимки: + + Имя: ol7u4-snap-001 (UUID: 1cffc37d-5c37-4b86-b9c5-a0f157a55f43) + Описание: Oracle Linux 7.4 with UEK4 kernel + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-startvm.xml b/doc/manual/ru_RU/man_VBoxManage-startvm.xml new file mode 100644 index 00000000..23289b2b --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-startvm.xml @@ -0,0 +1,174 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage startvm + + + + VBoxManage-startvm + 1 + + + + VBoxManage-startvm + запуск виртуальной машины + &product-name; + + + + + + VBoxManage startvm + + uuid + имя-ВМ + + --putenv=имя[=значение] + --type= + gui + headless + sdl + separate + + + + + + Описание + + Команда VBoxManage startvm запускает + виртуальную машину &product-name; (ВМ), которая в состоянии + "Выключено" или "Состояние сохранено". + + + + uuid | имя-ВМ + + Задает имя или Универсальный Уникальный Идентификатор + (UUID) ВМ. + + + + + + Назначает значение переменной окружения в виде пары + имя-значение. Например VBOX_DISABLE_HOST_DISK_CACHE=1. + + Кратка форма этой опции . + + + + + + Указывает фронтенд запускаемой ВМ. + + Можно использовать команду VBoxManage setproperty + для установки фронтенда по умолчанию как глобального + значения. Альтернативно, можно использовать команду + VBoxManage modifyvm для указания + фронтенда по умолчанию для определенной ВМ. Если не + установлено значение по умолчанию ни глобально, ни + для указанной ВМ и не указана опция , + ВМ открывается в окне рабочего стола хоста. + + Опция принимает следующие + значения: + + + gui + + Запускает ВМ в окне графического интерфейса + пользователя. Это значение по умолчанию. + + + + headless + + Фоновый режим. Запускает ВМ только для + удаленного дисплея. + + + + sdl + + Запускает ВМ, используя фронтенд VBoxSDL. + + + + separate + + Запускает ВМ с отделяемым интерфейсом пользователя, + что означает что ВМ запущена в фоновом режиме с + интерфейсом пользователя в отдельном процессе. + + Это экспериментальная функция, у которой отсутствует + некоторый функционал, например ускорение 3D. + + + + + + + + Если ВМ не удается запуститься с определенным фронтендом и + информация об ошибке неубедительна, рассмотрите запуск ВМ + напрямую, путем запуска фронтенда. Этот обходной путь может + выдать дополнительную информацию об ошибке. + + + + + + Примеры + + + Следующая команда запускает ВМ ol7u6: + +$ VBoxManage startvm ol7u6 + + Следующая команда запускает ВМ ol7u6-mininstall + в фоновом режиме. + +$ VBoxManage startvm ol7u6-mininstall --type headless + + + + Смотрите также + + + , + , + . + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-storageattach.xml b/doc/manual/ru_RU/man_VBoxManage-storageattach.xml new file mode 100644 index 00000000..7eae68db --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-storageattach.xml @@ -0,0 +1,549 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage storageattach + + + + VBoxManage-storageattach + 1 + + + + VBoxManage-storageattach + подключение, удаление и изменение носителей, используемых виртуальной машиной + &product-name; + + + + + + VBoxManage storageattach + + uuid + имя-ВМ + + --storagectl=имя + --bandwidthgroup= + name + none + + --comment=текст + --device=номер + --discard= + on + off + + --encodedlun=lun + --forceunmount + --hotpluggable= + on + off + + --initiator=инициатор + --intnet + --lun=lun + --medium= + none + emptydrive + additions + uuid + имя-файла + host:диск + iscsi + + --mtype= + normal + writethrough + immutable + shareable + readonly + multiattach + + --nonrotational= + on + off + + --passthrough= + on + off + + --passwordfile=файл + --password=пароль + --port=номер + --server= + имя + ip + + --setparentuuid=uuid + --setuuid=uuid + --target=цель + --tempeject= + on + off + + --tport=порт + --type= + dvddrive + fdd + hdd + + --username=имя-пользователя + + + + + Описание + + Команда VBoxManage storageattach позволяет + управлять носителями, подключенными к контроллеру через команду + VBoxManage storagectl. + + + + uuid | имя-ВМ + + Задает Универсальный Уникальный Идентификатор (UUID) или + имя виртуальной машины (ВМ). + + + + + + Задает имя контроллера. Используйте команду + VBoxManage showvminfo для просмотра + подключенных к ВМ контроллеров. + + + + + + Задает номер порта изменяемого контроллера. Необходимо + использовать эту опцию если у контроллера несколько портов. + + + + + + Задает номер устройства изменяемого порта. Необходимо + использовать эту опцию если у контроллера несколько + устройств на порт. + + + + + + Указывает тип диска, с которым связан носитель. + Опустить данный параметр можно только если тип носителя + может быть определен через опцию + или через информацию, переданную более ранней командой + подключения носителя. + + + + + + Задает одно из следующих значений: + + + none + + Удаляет любой существующее устройство из указанного слота. + + + + emptydrive + + Только для виртуальных DVD или флоппи дисков. + + Заставляет слот устройства вести себя как съемный + диск, в который не вставлен носитель. + + + + additions + + Только для виртуальных DVD дисков. + + Подключает образ Дополнений Гостевой ОС VirtualBox + в указанный слот устройств. + + + + uuid + + Задает UUID носителя для подключения в указанный слот + устройства. Носитель должен быть уже известен + &product-name;, например носитель, подключенный к + другой ВМ. Используйте команду + VBoxManage list для просмотра + носителей. + + + + имя-файла + + Задает полный путь к существующему образу диска + для подключения к указанному слоту устройства. + Образ диска может быть ISO, RAW, VDI, VMDK или + другого формата. + + + + host:диск + + Только для виртуальных DVD или флоппи дисков. + + Соединяет указанный слот устройства к указанному + DVD или флоппи диску хост-компьютера. + + + + iscsi + + Только для виртуальных жестких дисков. + + Задает цель iSCSI, для которой необходимо указать + дополнительную информацию. Смотрите + . + + + + Для съемных дисков, таких как флоппи и DVD, можно менять + настройки во время выполнения ВМ. Изменения устройств или + слотов устройств жестких дисков требуют, чтобы ВМ была + выключена. + + + + + + Указывает, как носитель ведет себя по отношению к снимкам + и операциям записи. Смотрите . + + + + + + Задает необязательное описание, сохраняемое с носителем. + + + + + + Изменяет UUID носителя перед подключением к ВМ. + + Это экспертная опция. Неподходящие значения могут привести + к невозможности использовать носитель или к поломке + настроек ВМ если другая ВМ уже ссылается на такой же носитель. + + Опция назначает + новый случайный UUID образу, что может убрать ошибку + дублированного UUID, если была использована утилита + файлового копирования для дублирования образа. + + + + + + Изменяет родительский UUID носителя перед подключением к ВМ. + + Это экспертная опция. Неподходящие значения могут привести + к невозможности использовать носитель или к поломке + настроек ВМ если другая ВМ уже ссылается на такой же носитель. + + + + + + Только для виртуальных DVD дисков. + + Включает запись на DVD. Эта функция экспериментальная. + Смотрите . + + + + + + Только для виртуальных DVD дисков. + + Указывает, разрешать ли операцию временного извлечения + носителя по запросу гостевой системы. Если установлено + в on, носитель может быть извлечен. + Возможность операции извлечения по запросу гостевой + системы, не сохраняется, если ВМ выключена и + перезапущена. Таким образом, когда опция установлена + в on и ВМ перезапущена, первоначально + настроенный носитель все еще в дисководе. + + + + + + Позволяет указать, что виртуальный жесткий диск + не вращается. Некоторые гостевые ОС, например Windows 7 + и более поздние, считают такие диски твердотельными (SSD) + и не производят фрагментацию диска на них. + + + + + + Указывает, включать ли функцию автоудаления для виртуального + жесткого диска. Когда установлена в on, + образ VDI уменьшается в ответ на команду trim + гостевой ОС. + + Виртуальный жесткий диск должен удовлетворять следующим + требованиям: + + + Формат диска должен быть VDI. + + + Размер очищаемой области диска должен быть не менее 1 МБ. + + + Убедитесь, что обрезаемое пространство представляет + собой непрерывный блок размером не менее 1 МБ на + границе 1 МБ. + + + Рассмотрите запуск команд дефрагментации в фоновом режиме + через cron для сохранения пространства. В Windows + запускайте команду defrag.exe /D. В + Linux запускайте команду btrfs filesystem + defrag. + + + При настройке гостевой ОС для выдачи команды + trim, гостевая ОС обычно рассматривает + диск как SSD. + + + Ext4 поддерживает опцию монтирования + . В Mac OS X может + потребоваться дополнительная настройка. Windows 7, 8 + и 10 автоматически определяет и поддерживает SSD. + Драйвер Linux exFAT от Samsung + поддерживает команду trim. + + + Реализация exFAT от Microsoft может не поддерживать эту + функцию. + + Можно использовать другие способы для выдачи команд trim. + Команда Linux fstrim является частью + пакета util-linux. Ранние решения + требовали обнулить неиспользуемые области через команду + zerofree или подобную, затем уплотнить + диск. Можно производит данные шаги только при выключенной + ВМ. + + + + + + Задает группу полосы пропускания, используемую в устройстве. + Смотрите . + + + + + + Только для виртуальных DVD или флоппи дисков. + + Принудительно размонтирует DVD, CD, или флоппи или + монтирует новый DVD, CD, или флоппи даже если предыдущий + съемный носитель заблокирован гостем на чтение. Смотрите + . + + + + + Следующие опции применимы когда указана опция + : + + + + + + Задает имя хоста или IP адрес цели iSCSI. + + + + + + Задает строку имени цели, определяемую целью + iSCSI и используется для идентификации ресурса хранилища. + + + + + + Задает номер порта TCP/IP службы iSCSI цели. + + + + + + Задает номер логической единицы ресурса цели. + Для единственного дисковода значение равно нулю. + + + + + + Задает LUN ресурса цели в виде закодированную в + шестнадцатеричном виде. Для единственного дисковода + значение равно нулю. + + + + + + Задает имя пользователя для аутентификации цели. + + + Если не установлен пароль на настройки, имя пользователя + сохраняется в виде простого текста в XML файле настроек + машины. + + + + + + + Задает пароль для аутентификации цели. + + + Если не установлен пароль на настройки, этот пароль + сохраняется в виде простого текста в XML файле + конфигурации машины. Когда пароль на настройки + установлен, пароль аутентификации цели сохраняется + в шифрованном виде. + + + Этот дизайн не соответствует рекомендациям по безопасности + Oracle. У Вас не должно быть возможности указать пароль + в командной строке, так как пароль может быть увиден + в списке процессов. + + + + + + Задает файл, содержащий пароль аутентификации цели + в виде простого текста. + + + Используйте настройки разрешений и владения, чтобы + убедиться, что содержимое этого файла не могут прочитать + неавторизованные пользователи. + + + + + + + Задает инициатор iSCSI. + + iSCSI инициатор от Microsoft - это система, например сервер, + которая подключается к IP сети и инициирует запросы и + получает ответы от iSCSI целей. SAN компоненты в + инициаторе iSCSI во многом аналогичны SAN компонентам Fibre + Channel и включают следующие: + + + Драйвер iSCSI. + Траспортирует блоки команд iSCSI через сеть IP. Этот + драйвер iSCSI устанавливается в хост iSCSI и входит + в состав инициатор iSCSI от Microsoft. + + + Адаптер Gigabit Ethernet. + Подключается к цели iSCSI. Используйте адаптер + Ethernet, который может передавать 1000 мегабит в + секунду (Мб/с). Как и стандартные 10/100 адаптеры, + большинство гигабитных адаптеров используют + существующие кабели категории 5 или 6Е. Каждый порт + адаптера идентифицируется уникальным IP адресом. + + + Цель iSCSI. Это любое + устройство, которое получает команды iSCSI. Устройством + может быть как конечный узел, например устройство хранения, + так и промежуточное устройство, например сетевой мост + между устройствами IP и Fibre Channel. Каждый порт + контроллера массива хранилищ или сетевого моста + идентифицируется одним или несколькими IP адресами. + + + + + + + Указывает, подключаться ли к цели iSCSI, использующую + внутреннюю сеть. Эта настройка требует дальнейшую + настройку. Смотрите . + + + + + + + Примеры + + + Следующая команда подключает образ диска o7.vdi + к указанному контроллеру SATA в ВМ ol7. + +$ storageattach ol7 --storagectl "SATA Controller" --port 0 --device 0 \ +--type hdd --medium /VirtualBox/ol7/ol7.vdi + + Следующая команда подключает образ DVD o7-r6-dvd.iso + к указанному контроллеру IDE в ВМ ol7. + +$ VBoxManage storageattach ol7 --storagectl "IDE Controller" --port 0 --device 0 \ +--type dvddrive --medium ol7-r6-dvd.iso + + + + Смотрите также + + , + , + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-storagectl.xml b/doc/manual/ru_RU/man_VBoxManage-storagectl.xml new file mode 100644 index 00000000..e8f2b777 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-storagectl.xml @@ -0,0 +1,203 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage storagectl + + + + VBoxManage-storagectl + 1 + + + + VBoxManage-storagectl + управляет контроллером хранения + &product-name; + + + + + + VBoxManage storagectl + + uuid + имя-ВМ + + --name=имя-контроллера + --add= + floppy + ide + pcie + sas + sata + scsi + usb + + --controller= + BusLogic + I82078 + ICH6 + IntelAhci + LSILogic + LSILogicSAS + NVMe + PIIX3 + PIIX4 + USB + VirtIO + + --bootable= + on + off + + --hostiocache= + on + off + + --portcount=количество + --remove + --rename=новое-имя-контроллера + + + + + Описание + + Команда VBoxManage storagectl позволяет + подключить, изменить или удалить контроллер хранилища. После + настройки контроллера, можно использовать команду + VBoxManage storageattach для подключения + виртуального носителя к контроллеру. + + + + uuid | имя-ВМ + + Задает Универсальный Уникальный Идентификатор (UUID) или + имя виртуальной машины (ВМ). + + + + + + Задает имя контроллера хранения. + + + + + + Задает тип системной шины, куда подключать контроллер + хранилища. Допустимые значения + floppy, ide, + pcie, sas, + sata, scsi и + usb. + + + + + + Задает тип эмулируемого чипсета для указанного + контроллера хранилища. Допустимые значения + BusLogic, I82078, + ICH6, IntelAHCI, + LSILogic, LSILogicSAS, + NVMe, PIIX3, + PIIX4 и USB. + + Значение по умолчание изменяется, в соответствии с типом + контроллера хранилища. + + + + + + Задает количество портов, поддерживаемых контроллером. + Допустимые значения зависят от контроллера. + + + + + + Указывает, использовать ли I/O кэш хоста для всех образов + дисков, подключенных к контроллеру. Допустимые значения + on и off. Смотрите + . + + + + + + Указывает, что контроллер загрузочный. Допустимые значения + on и off. + + + + + + Задает новое имя для контроллера хранилища. + + + + + + Удаляет контроллер хранилища из конфигурации ВМ. + + + + + + + Примеры + + + Следующая команда создает контроллер SATA, называемый + sata01 и добавляет его в ВМ + ol7. Контроллер эмулирует чипсет IntelAHCI. + +$ VBoxManage storagectl ol7 --name "sata01" --add sata --controller IntelAHCI + + Следующая команда создает контроллер IDE называемый + ide01 и добавляет его в ВМ ol7 + VM. + +$ VBoxManage storagectl ol7 --name "ide01" --add ide + + + + Смотрите также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-unattended.xml b/doc/manual/ru_RU/man_VBoxManage-unattended.xml new file mode 100644 index 00000000..31df3593 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-unattended.xml @@ -0,0 +1,256 @@ + + + + +%all.entities; +]> + + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage unattended + + + + VBoxManage-unattended + 1 + + + + VBoxManage-unattended + unattended установка гостевой ОС + &product-name; + + + + + VBoxManage unattended detect + --iso=iso-установщика + --machine-readable + + + VBoxManage unattended install + uuid|имя-ВМ + --iso=iso-инсталляции + --user=логин + --password=пароль + --password-file=файл + --full-user-name=имя + --key=ключ-продукта + --install-additions + --no-install-additions + --additions-iso=iso-дополнений + --install-txs + --no-install-txs + --validation-kit-iso=iso-тестирования + --locale=ll_CC + --country=CC + --time-zone=tz + --hostname=имя-хоста + --package-selection-adjustment=ключ + --dry-run + --auxiliary-base-path=путь + --image-index=номер + --script-template=файл + --post-install-template=файл + --post-install-command=команда + --extra-install-kernel-parameters=параметры + --language=язык + --start-vm=тип-сессии + + + + + Описание + + + unattended detect + + + Определяет гостевую операционную систему (ОС) на указанном инсталляционном + ISO и отображает результат. Это может быть использовано как входные данные + при создании ВМ для устанавливаемого ISO. + + + + + Определяемый инсталляционный ISO. + + + + Производит вывод, который проще для разбора из скрипта. + + + + + + unattended install + + + Перенастраивает указанную ВМ для установки и опционально запуска ОС. + + + + uuid|имя-ВМ + Или UUID или имя (чувствительно к регистру) ВМ. + + + + Инсталляционный ISO для запуска определения. + + + + Имя пользователя. (По умолчанию: vboxuser) + + + + + Пароль пользователя. Он используется как для пользователя указанного через , так и для + пользователя root/administrator. (по умолчанию: changeme) + + + + + Альтернатива для передачи пароля. Специальное имя файла + stdin может использоваться для чтения пароля с стандартного потока ввода. + + + + Полное имя пользователя. (по умолчанию: --user) + + + + Ключ продукта гостевой ОС. Не всем гостевым ОС требуется это. + + + , + Устанавливать ли Дополнения Гостевой ОС VirtualBox. (по умолчанию: --no-install-addations) + + + + + Путь к ISO Дополнений Гостевой ОС. (по умолчанию: installed/downloaded GAs) + + + , + + Инсталлировать ли службу выполнения тестов (TXS) из VirtualBox ValidationKit. + Это полезно при подготовке ВМ к тестированию или подобной работы. (по умолчанию: --no-install-txs) + + + + + Путь к VirtualBox ValidationKit ISO. Опция необходима если указана + + + + + + Спецификация базовая локали для гостевой системы, например en_US, de_CH, или nn_NO. (по умолчанию: host или en_US) + + + + Двухбуквенный кода страны если отличается от указанной в . + + + + Часовая зона для установки в гостевой ОС. (по умолчанию: часовая зона хоста или UTC) + + + + + Полное доменное имя гостевой машины. (по умолчанию: имя-ВМ.myguest.virtualbox.org) + + + + + Корректировка выбора пакетов/компонентов гостевой ОС. Может быть указана более одного раза. В настоящее + время единственным распознаваемым ключевым словом является minimal, которое + запускает минимальную установку для некоторых гостевых ОС. + + + + Не создавать каких-либо файлов или делать изменения в конфигурации ВМ. + + + + + Запуск ВМ с помощью фронтенда, указанного в session-type. Это то же самое что + и опция для команды startvm, Но нам пришлось добавить + none для указания того, что ВМ не надо запускать. + (по умолчанию: none) + + + + Дополнительные опции: + + + + + Префикс пути к файлам относящимся к носителю, созданные для установки. + (по умолчанию: папка-настроек-ВМ/Unattended-uuid-ВМ-) + + + + Индекс образа инсталляции Windows. (по умолчанию: 1) + + + + Шаблон скрипта unattended инсталляции. (по умолчанию: зависит от IMachine::OSTypeId) + + + + Шаблон скрипта после инсталляции. (по умолчанию: зависит от IMachine::OSTypeId) + + + + + Единичная команда, запускаемая после завершения установки. Точный формат и точный момент, + когда будет запущена команда, зависит от установщика гостевой ОС. + + + + + + Список дополнительных параметров ядра Linux в течение установки. (по умолчанию: зависит от IMachine::OSTypeId) + + + + + + + Задает язык пользовательского интерфейса для Windows инсталляции. язык обычно + в виде {ll}-{CC}. Смотрите результаты detectedOSLanguages из VBoxManage unattended detect. + (по умолчанию: detectedOSLanguages[0]) + + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-unregistervm.xml b/doc/manual/ru_RU/man_VBoxManage-unregistervm.xml new file mode 100644 index 00000000..bc3dc1f8 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-unregistervm.xml @@ -0,0 +1,121 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage unregistervm + + + + VBoxManage-unregistervm + 1 + + + + VBoxManage-unregistervm + отмена регистрации виртуальной машины + &product-name; + + + + + + VBoxManage unregistervm + + uuid + имя-ВМ + + --delete + + + + + Описание + + Команда VBoxManage unregistervm отменяет + регистрацию виртуальной машины (ВМ). + + + + uuid|имя-ВМ + + Задает имя или Универсальный Уникальный Идентификатор (UUID) ВМ. + + + + + + Удаляет следующие файлы, относящиеся к ВМ автоматически: + + + Все файл образов жестких дисков, включая разностные файлы. + + + Все файлы сохраненного состояния, созданные машиной, + включая файлы для каждого снимка. + + + XML файл определения ВМ и его резервные копии. + + + Файлы журналов ВМ. + + + Пустую директорию, связанную с незарегистрированной ВМ. + + + + + + + + Примеры + + + Следующая команда отменяет регистрацию ВМ, называемую + vm2. + +$ VBoxManage unregistervm vm2 + + Следующая команда отменяет регистрацию ВМ, называемую + vm3. Все файлы, относящиеся к ВМ удаляются. + +$ VBoxManage unregistervm vm3 --delete +%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% + + + + Смотри также + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-updatecheck.xml b/doc/manual/ru_RU/man_VBoxManage-updatecheck.xml new file mode 100644 index 00000000..424cca5f --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-updatecheck.xml @@ -0,0 +1,143 @@ + + + + +%all.entities; +]> + + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage updatecheck + + + + VBoxManage-updatecheck + 1 + + + + VBoxManage-updatecheck + проверка на наличие новой версии VirtualBox + &product-name; + + + + + VBoxManage updatecheck perform + --machine-readable + + + VBoxManage updatecheck list + --machine-readable + + + VBoxManage updatecheck modify + + --disable + --enable + + --channel=stable | withbetas | all + --frequency=дни + + + + + Описание + + Подкоманда updatecheck используется для проверки доступности новой версии + VirtualBox. Две опции подкоманды updatecheck используются для изменения + или просмотра настроек, относящихся к проверке новой версии VirtualBox. + + + updatecheck perform + + + Проверяет доступность новой версии VirtualBox. + + + + Машино-читаемый вывод. + + + + + + updatecheck list + + + Отображает текущие настройки, используемый при проверке новой версии VirtualBox. + + + + Машино-читаемый вывод. + + + + + + updatecheck modify + + + Изменяет настройки, используемые при проверке новой версии VirtualBox. + + + + Включает службу проверки обновлений. + + + Отключает службу проверки обновлений. + + + + Предпочитаемый тип выпуска, используемый при определении доступности новой версии VirtualBox. По умолчанию 'stable'. + + + + Проверяет на новые стабильные выпуски (корректирующие и минорные выпуски внутри того же самого мажорного выпуска) VirtualBox. + + + + Проверяет на новые стабильные выпуски (корректирующие и минорные выпуски внутри того же самого мажорного выпуска), а также мажорные выпуски VirtualBox. + + + + Проверяет на новые стабильные выпуски (корректирующие и минорные выпуски внутри того же самого мажорного выпуска), мажорные и бета выпуски VirtualBox. + + + + + + + Указывает, как часто в днях проверять на новые версии VirtualBox. + + + + + + + diff --git a/doc/manual/ru_RU/man_VBoxManage-usbdevsource.xml b/doc/manual/ru_RU/man_VBoxManage-usbdevsource.xml new file mode 100644 index 00000000..e8694ad5 --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-usbdevsource.xml @@ -0,0 +1,129 @@ + + + + +%all.entities; +]> + + + $Date: 2022-08-22 19:43:14 +0200 (Mon, 22 Aug 2022) $ + VBoxManage usbdevsource + + + + vboxmanage-usbdevsource + 1 + + + + vboxmanage-usbdevsource + добавление и удаление источников USB устройств + &product-name; + + + + + VBoxManage usbdevsource add + имя-источника + --backend=бэкенд + --address=адрес + + + + VBoxManage usbdevsource remove + имя-источника + + + + + Описание + + Команда VBoxManage usbdevsource добавляет + источник USB устройства и делает его доступным гостевым системам + в хосте. Можно также использовать эту команду для удаления + источника USB устройства. + + + Добавить источник USB устройства + + + Команда VBoxManage usbdevsource add добавляет + источник USB устройства, и он становится доступен все гостевым + системам в хост-системе. + + + + имя-источника + + Задает уникальное имя для источника USB устройства. + + + + --address=адрес + + Задает адрес USB бэкенда. + + + + --backend=бэкенд + + Задает используемый бэкенд службы USB прокси. + + Что такое служба USB прокси? Как определяется + используемый бэкенд? + + + + + + Удалить USB устройство + + + Команда VBoxManage usbdevsource remove + удаляет USB устройство. + + + + имя-источника + + Задает имя удаляемого источника USB устройства. + + + + + + + + Примеры + + + Следующая команда добавляет сервер USB устройства называемый + hostusb01. + +$ VBoxManage usbdevsource add hostusb01 --backend USBIP --address 10.0.1.16 + + diff --git a/doc/manual/ru_RU/man_VBoxManage-usbfilter.xml b/doc/manual/ru_RU/man_VBoxManage-usbfilter.xml new file mode 100644 index 00000000..f163754d --- /dev/null +++ b/doc/manual/ru_RU/man_VBoxManage-usbfilter.xml @@ -0,0 +1,322 @@ + + + + +%all.entities; +]> + + + $Date: 2023-01-11 13:15:45 +0100 (Wed, 11 Jan 2023) $ + VBoxManage usbfilter + + + + VBoxManage-usbfilter + 1 + + + + VBoxManage-usbfilter + управление USB фильтрами + &product-name; + + + + + + VBoxManage usbfilter add + индекс,0-N + --target= + uuid + имя-ВМ + global + + --name=строка + --action=ignore | hold + --active=yes | no + --vendorid=XXXX + --productid=XXXX + --revision=IIFF + --manufacturer=строка + --product=строка + --port=hex + --remote=yes | no + --serialnumber=строка + --maskedinterfaces=XXXXXXXX + + + + VBoxManage usbfilter modify + индекс,0-N + --target= + uuid + имя-ВМ + global + + --name=строка + --action=ignore | hold + --active=yes | no + --vendorid=XXXX | "" + --productid=XXXX | "" + --revision=IIFF | "" + --manufacturer=строка | "" + --product=строка | "" + --port=hex + --remote=yes | no + --serialnumber=строка | "" + --maskedinterfaces=XXXXXXXX + + + + VBoxManage usbfilter remove + индекс,0-N + --target= + uuid + имя-ВМ + global + + + + + + Описание + + Команда VBoxManage usbfilter позволяет управлять + USB фильтрами для указанной виртуальной машиной (ВМ) или глобальными + USB фильтрами, влияющими на всю конфигурацию &product-name;. + + + Глобальные фильтры применяются перед фильтрами определенной ВМ. + Это означает, что можно использовать глобальный фильтр для + предотвращения захвата устройств какой-либо ВМ. + + + Глобальные фильтры применяются в определенном порядке. Применяется + только первый походящий данному устройству фильтр. Например, + первый глобальный фильтр делает доступным определенный + флеш-накопитель Kingston, тогда как второй фильтр игнорирует все + устройства Kingston. В результате применения этих фильтров, + определенный флеш-накопитель Kingston будет доступен любой машине, + имеющей соответствующий фильтр, но остальные устройства Kingston + доступны не будут. + + + Общие операнды и опции + + + index,0-N + + Задает единственное число, указывающее позицию фильтра + в списке. Ноль (0) представляет + первую позицию в списке. Если в данной позиции уже + существует фильтр, то этот фильтр, а также + следующие за ним передвигаются ниже по списку. + В противном случае, новый фильтр добавляется в + список. + + + + + + Указывает, разрешать ли доступ ВМ к устройствам, + подходящим к описанию фильтра (hold) + или запрещать (ignore). Эта опция + применяется только к глобальным фильтрам. + + + + + + Указывает, активен ли USB фильтр или временно отключен. + Допустимые значения yes, активирующая + фильтр и no, отключающая его. Значение + по умолчанию yes. + + + + + + Задает фильтр по ID производителя как строку. Значение + по умолчанию пустое (""). + + + + + + Указывает фильтр маскированного интерфейса, который + используется для скрытия одного или нескольких USB + интерфейсов от гостевой системы. Значение - это битовая + маска, где набор битов соответствует скрываемому USB + интерфейсу или снятие маски. Эта функция поддерживается + только только в хост-системах Linux. + + + + + + Задает имя фильтра. + + + + + + Задает фильтр по номеру USB порта (hub port number). Значение по + умолчанию - пустая строка (""). + + + + + + Задает фильтр по ID продукта как строку. Значение по + умолчанию пустое (""). + + + + + + Задает фильтр по ID продукта. Строковое представление + для точного соответствия имеет вид + XXXX, где + X - это шестнадцатеричная + цифра включающая лидирующие нули. Значение по умолчанию + пустое (""). + + + + + + Задает удаленный фильтр, показывающий подключено ли + физически устройство к удаленному клиенту VRDE или + или к локальной системе. Эта опцию применяется только + к фильтрам ВМ. Значение по умолчанию пустое + (""). + + Почему значение по умолчанию пустое когда допустимые + значения yes или no? + + + + + + Задает фильтр по ID ревизии. Строковое представление + для точного соответствия имеет вид IIFF. + I - это десятичная цифра + целой части ревизии. F - + это десятичная цифра ее дробной части включающая + лидирующие и замыкающие нули. Значение по умолчанию + пустое (""). + + Для того, чтобы указать диапазон ревизий ID, убедитесь + что используется шестнадцатеричная форма, то есть в виде + 16 битного упакованного двоично-десятичного значения. + Например, выражение int:0x0100-0x0199 + соответствует любой ревизии с 1.0 по 1.99 включительно. + + + + + + Задает фильтр серийного номера как строку. Значение по + умолчанию пустое(""). + + + + + + Указывает ВМ, к которой подключается фильтр. Можно + указать Универсальный Уникальный Идентификатор (UUID) + или имя ВМ. Для применения описания фильтра ко всем ВМ, + укажите global. + + + + + + Задает фильтр по ID поставщика, который представляется + строкой шестнадцатеричного номера, состоящего из + четырех цифр включая лидирующие нули. Значение по + умолчанию пустое (""). + + + + + + Добавить USB фильтр или глобальный фильтр + + + Используйте команду VBoxManage usbfilter add + для создания нового USB фильтра. + + + Дополнительно укажите параметры для фильтрации. Можно использовать + команду VBoxManage list usbhost для просмотра + параметров устройств, подключенных к вашей системе. + + + + Изменить USB фильтр или глобальный фильтр + + + Используйте команду VBoxManage usbfilter modify + для изменения USB фильтра. Можно использовать команду + VBoxManage list usbfilters для отображения + индексов глобальных фильтров и команду + VBoxManage showvminfo для отображения + индексов по определенной машине. + + + + Удалить USB фильтр или глобальный фильтр + + + Используйте команду VBoxManage usbfilter remove + для удаления USB фильтра. + + + + + + Примеры + + + Следующая команда отображает доступные USB устройства в хост-системе. + +$ VBoxManage list usbhost + + Следующая команда добавляет USB фильтр, называемый + filter01 к ВМ ol7. + Фильтр определяет флеш-накопитель Kingston DataTraveler и + помещается первым в списке USB фильтров ВМ. + +$ VBoxManage usbfilter add 0 --target ol7 --name filter01 --vendorid 0x0930 --productid 0x6545 + + Следующая команда удаляет USB фильтр, который второй в списке + ВМ ol7 VM. + +$ VBoxManage usbfilter remove 1 --target ol7 + + diff --git a/doc/manual/string.xsl b/doc/manual/string.xsl new file mode 100644 index 00000000..e6ea7595 --- /dev/null +++ b/doc/manual/string.xsl @@ -0,0 +1,1237 @@ + + + + + + + + + + $Id: string.xsl $ + + + Ball + Steve + + + 2002 + 2001 + Steve Ball + + + + String Processing + + +
+ Introduction + + This module provides templates for manipulating strings. + +
+
+ +
+ + + + + + + + + + + + + Make string uppercase + + + Converts all lowercase letters to uppercase. + + + + + + text + + The string to be converted + + + + + + + Returns string with all uppercase letters. + + + + + + + + + + + + + + ß + + + S + S + + + + + + + + + Make string lowercase + + + Converts all uppercase letters to lowercase. + + + + + + text + + The string to be converted + + + + + + + Returns string with all lowercase letters. + + + + + + + + + + + Capitalise string + + + Converts first character of string to an uppercase letter. All remaining characters are converted to lowercase. + + + + + + text + + The string to be capitalised + + + + all + + Boolean controlling whether all words in the string are capitalised. + Default is true. + + + + + + + Returns string with first character uppcase and all remaining characters lowercase. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Convert a string to one camelcase word + + + Converts a string to one lowerCamelCase or UpperCamelCase + word, depending on the setting of the "upper" + parameter. UpperCamelCase is also called MixedCase while + lowerCamelCase is also called just camelCase. The template + removes any spaces, tabs and slashes, but doesn't deal with + other punctuation. It's purpose is to convert strings like + "hollow timber flush door" to a term suitable as identifier or + XML tag like "HollowTimberFlushDoor". + + + + + + + text + + The string to be capitalised + + + + upper + + Boolean controlling whether the string becomes an + UpperCamelCase word or a lowerCamelCase word. + Default is true. + + + + + + + Returns string with first character uppcase and all remaining characters lowercase. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + String extraction + + + Extracts the portion of string 'text' which occurs before any of the characters in string 'chars'. + + + + + + text + + The string from which to extract a substring. + + + + chars + + The string containing characters to find. + + + + + + + Returns string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + String extraction + + + Extracts the portion of string 'text' which occurs after the last of the character in string 'chars'. + + + + + + text + + The string from which to extract a substring. + + + + chars + + The string containing characters to find. + + + + + + + Returns string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + String extraction + + + Extracts the portion of string 'text' which occurs before the first character of the last occurance of string 'chars'. + + + + + + text + + The string from which to extract a substring. + + + + chars + + The string containing characters to find. + + + + + + + Returns string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + String substitution + + + Substitute 'replace' for 'with' in string 'text'. + + + + + + text + + The string upon which to perform substitution. + + + + replace + + The string to substitute. + + + + with + + The string to be substituted. + + + + disable-output-escaping + + A value of yes indicates that the result should have output escaping disabled. Any other value allows normal escaping of text values. The default is to enable output escaping. + + + + + + + Returns string. + + + + + + + + no + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Count Substrings + + + Counts the number of times a substring occurs in a string. This can also counts the number of times a character occurs in a string, since a character is simply a string of length 1. + + + + Counting Lines + + + + +]]> + + + + + + text + + The source string. + + + + chars + + The substring to count. + + + + + + + Returns a non-negative integer value. + + + + + + + + + + 0 + + + + + + + + + + + + 0 + + + + + + String extraction + + Extracts the portion of a 'char' delimited 'text' string "array" at a given 'position'. + + + + + text + + The string from which to extract a substring. + + + + chars + + delimiters + + + + position + + position of the elements + + + + all + + If true all of the remaining string is returned, otherwise only the element at the given position is returned. Default: false(). + + + + + + Returns string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + String extraction + + Extracts the portion of a 'char' delimited 'text' string "array" at a given 'position' + + + + + text + + The string from which to extract a substring. + + + + chars + + delimiters + + + + position + + position of the elements + + + + + + Returns string. + + + + + + + + + + + + + + + + + + + + + + + + + + + String insertion + + Insert 'chars' into "text' at any given "position' + + + + + text + + The string upon which to perform insertion + + + + position + + the position where insertion will be performed + + + + with + + The string to be inserted + + + + + + Returns string. + + + + + + + + + + + + + + + + + String reversal + + + Reverse the content of a given string + + + + + + text + + The string to be reversed + + + + + + + Returns string. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Format a string + + + Inserts newlines and spaces into a string to format it as a block of text. + + + + + + text + + String to be formatted. + + + + max + + Maximum line length. + + + + indent + + Number of spaces to insert at the beginning of each line. + + + + justify + + Justify left, right or both. Not currently implemented (fixed at "left"). + + + + + + + Formatted block of text. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Find first occurring character in a string + + + Finds which of the given characters occurs first in a string. + + + + + + text + + The source string. + + + + chars + + The characters to search for. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Match A String To A Pattern + + + Performs globbing-style pattern matching on a string. + + + + Match Pattern + + + + +]]> + + + + + + text + + The source string. + + + + pattern + + The pattern to match against. Certain characters have special meaning: + + + * + + Matches zero or more characters. + + + + ? + + Matches a single character. + + + + \ + + Character escape. The next character is taken as a literal character. + + + + + + + + + + Returns "1" if the string matches the pattern, "0" otherwise. + + + + + + + + + + + 1 + + + 1 + + + 0 + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + 1 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + Create A Repeating Sequence of Characters + + + Repeats a string a given number of times. + + + + + + text + + The string to repeat. + + + + count + + The number of times to repeat the string. + + + + + + + + + + + + + + + + + + + + + + +
+ diff --git a/doc/manual/titlepage-htmlhelp.xml b/doc/manual/titlepage-htmlhelp.xml new file mode 100644 index 00000000..cfcf39b8 --- /dev/null +++ b/doc/manual/titlepage-htmlhelp.xml @@ -0,0 +1,669 @@ + + + + + + + + + + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <hr/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="set" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <hr/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="book" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <edition/> + <corpauthor/> + <authorgroup/> + <author/> + <address/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <hr/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="part" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="division.title" + param:node="ancestor-or-self::part[1]"/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="partintro" t:wrapper="div"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="reference" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <hr/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="refentry" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> +<!-- uncomment this if you want refentry titlepages + <title t:force="1" + t:named-template="refentry.title" + param:node="ancestor-or-self::refentry[1]"/> +--> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator/> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="dedication" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::dedication[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="preface" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="chapter" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="appendix" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="section" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect1" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect2" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect3" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect4" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect5" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="simplesect" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title/> + <subtitle/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + <xsl:if test="count(parent::*)='0'"><hr/></xsl:if> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="bibliography" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::bibliography[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="glossary" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::glossary[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="index" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::index[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="setindex" t:wrapper="div" class="titlepage"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::setindex[1]"/> + <subtitle/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +</t:templates> diff --git a/doc/manual/user_ChangeLogImpl.xml b/doc/manual/user_ChangeLogImpl.xml new file mode 100644 index 00000000..fe623ee6 --- /dev/null +++ b/doc/manual/user_ChangeLogImpl.xml @@ -0,0 +1,499 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (C) 2006-2022 Oracle and/or its affiliates. + + This file is part of VirtualBox base platform packages, as + available from https://www.virtualbox.org. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation, in version 3 of the + License. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see <https://www.gnu.org/licenses>. + + SPDX-License-Identifier: GPL-3.0-only +--> + +<!-- +Release change log structure + +Each release has a matching log of changes which were made for that and +earlier releases. Earlier releases means anything with a lower number (e.g. +5.0.18 is lower than 5.1.2) which was released before this one. The log is +kept in the file doc/manual/user_ChangeLogImpl.xml. Anything worth mentioning, +particularly new features and fixed bugs, with a trac bug number if possible, +should be added to the top of the change log (that is, the section for the +upcoming release) for the branch in which it first appears - stable or +development - before the next release. If you back-port it to older branches +please add an entry there too. When a new major release is made, change log +sections for earlier releases are merged in. + +Change log sections are split into two groups: major new features (normally +only for dot zero releases) and fixes. In addition, the entries in each group +are ordered as follows: + + VMM-related entries (most important) + GUI-related entries (most visible for users) + Device-related entries + VBoxManage/API/Main-related entries + Host-related entries + Guest-related entries + BIOS/EFI/ACPI-related entries + +Please do further ordering as seems appropriate by importance and visibility for +users, e.g. audio before serial ports and generally Windows before Linux. Please +also try to describe the user impact, not the technical details, and only use +technical terms if no non-technical ones are clear enough. + +Rules for adding a changelog entry to make them look more uniform: + + 1. Begin the entry with an UPPERCASE letter, e.g. "Foo: Fixed" vs. "Foo: fixed" + 2. Use the past form of something, e.g. "Fixed ..." vs. "Fix ..." + 3. No dot (.) after the entry, e.g. "<para>Foo: Bar</para>" vs. "<para>Foo: Bar.</para>" + 4. Use TWO (2) spaces for indentation + 5. Use line breaks when hitting column 80 + + Full example: + + <listitem> + <para>Foo: Fixed something really important, really really long line + with lots more text not fitting into 80 columns</para> + </listitem> +--> +<chapter> + +<!-- HACK ALERT! Seems we must have a single top level element for xi:include to work. + So, we use chapter and xpointer="xpointer(/chapter/)" with xi:include. --> + <sect1> + + <title>Version 7.0.6 (2023-01-17) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VMM: Fixed guru running the FreeBSD loader on older Intel CPUs + without unrestricted guest support (bug #21332) + + + + GUI: Fixed virtual machines grouping when VM was created or + modified in command line (bugs #11500, #20933) + + + + GUI: Introduced generic changes in settings dialogs + + + + VirtioNet: Fixed broken network after loading saved state + (bug #21172) + + + + Storage: Added support for increasing the size of the following + VMDK image variants: monolithicFlat, monolithicSparse, twoGbMaxExtentSparse, + twoGbMaxExtentFlat + + + + VBoxManage: Added missing --directory switch for guestcontrol mktemp command + + + + Mouse Integration: Guest was provided with extended host mouse state (bug #21139) + + + + DnD: Introduced generic improvements + + + + Guest Control: Fixed handling creation mode for temporary directories + (bug #21394) + + + + Linux Host and Guest: Added initial support for building UEK7 kernel on + Oracle Linux 8 + + + + Linux Host and Guest: Added initial support for RHEL 9.1 kernel + + + + Windows Host: Fixed support for VM autostart (bug#21349) + + + + Linux Guest Additions: Added initial support for kernel 6.2 for vboxvideo + + + + Audio: The "--audio" option in VBoxManage is now marked as + deprecated; please use "--audio-driver" and "--audio-enabled" + instead. This will allow more flexibility when changing the driver + and/or controlling the audio functionality + + + + + + + + Version 7.0.4 (2022-11-18) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + VMM: Added nested paging support for nested virtualization (Intel hosts only) + + + + VMM: Fixed rare guru meditations with certain guests on macOS 10.15 (Catalina) (bug #21237) + + + + VMM: Fixed possible VM process crash on Windows hosts when Hyper-V is used with certain guests (bug #21174) + + + + VMM: Fixed Windows XP guest hang or BSOD on AMD CPUs under certain circumstances (bug #21256) + + + + GUI: Various bugfixes for the Guest Control file manager + + + + GUI: Added more informative file operations in the Guest Control file manager + + + + GUI: Added an option to the global settings (the display page) to resize user interface font + + + + GUI: Fixed a regression in new vm wizard. Selected virtual disks are no longer deleted when the wizard + is cancelled (bug #21244) + + + + GUI: Added a new menu item to the devices menu to optionally upgrade the guest additions. + + + + VirtioSCSI: Fixed recognition of the virtio SCSI controller by the EFI firmware (bug #21200) + + + + VirtioSCSI: Fixed hang when shutting down the VM if the virtio SCSI controller is used (bug #21144) + + + + virtio-net: Workaround a bug in the virtio-net driver included in FreeBSD version up to 12.3 + which renders the device non functional (bug #21201) + + + + Storage: Fixed I/O errors with the VirtioSCSI controller when the host I/O cache is enabled (bug #19717) + + + + VBoxManage: Fixed regression when 'createmedium disk --variant RawDisk' command resulted + in invalid .vmdk file (bug #21125) + + + + Main: Restored input pointing device behavior in multi-monitor + VM configuration (bug #21137) + + + + Main: Fixed progress indication during automatic Linux + Guest Additions installation + + + + Guest Control: Fixed path handling issues (bug #21095) + + + + 3D: Fixed VM process crash on macOS with 3D enabled (bug #21232) + + + + Linux Host and Guest: General improvements in startup scripts + + + + Linux Guest Additions: Introduced initial support for + RHEL 8.7 and 9.2 kernels (bug #21272, #21258) + + + + Linux Guest Additions: Introduced initial support for SLES 15.4 kernels + + + + Linux Guest Additions: Fixed kernel modules rebuild behavior on + system shutdown + + + + + + + + Version 7.0.2 (2022-10-20) + + This is a maintenance release. The following items were fixed and/or + added: + + + + + Known issue: VMs having more than one vCPU configured will not work properly on macOS + Catalina due to an unknown memory corruption issue. Either lower the number of vCPUs to 1 + or upgrade to BigSur or later where the issue does not occur + + + + Main: Fixed issue when VBoxSVC could become unresponsive if Extension Pack + was not installed (bug #21167) + + + + macOS hosts: Added workaround for a bug in the Hypervisor framework on Catalina causing + VERR_NEM_MAP_PAGES_FAILED errors when starting a VM. (bug #21128) + + + + macOS hosts: Re-introduced support for internal networking, this is considered a bit + experimental still + + + + macOS hosts: Fixed VM crash when the guest tries to access a microphone or webcam + + + + Windows host: Shared Clipboard: Fixed issue when only 4Kb of host + clipboard buffer was accessible to guest (bug #21149) + + + + Linux Guest Additions: Introduced initial support for kernel 6.1 + + + + Linux Guest Additions: Fixed issue when VBoxClient seamless service + caused a crash of some X11 applications (bug #21132) + + + + Windows hosts: GUI: Fixed missing Qt libraries for vista style and sql driver (bug #21155) + + + + GUI: Fixed a glitch in the log viewer which was causing wrong log file to be saved (bug #21156) + + + + + + + + Version 7.0.0 (2022-10-10) + + This is a major update. The following major new features were added: + + + + + Virtual machines can be fully encrypted now, including the VM config logs + and saved states (CLI only for now) + + + + OCI: Cloud virtual machines can be added to Virtual Machine Manager and controlled + as local VMs + + + + OCI: Cloud networks can now be configured via Network Manager tool same way as + it is done for Host-only and NAT networks + + + + GUI: Added a new utility similar to "top" or "resource monitor" which lists peformance statistics + (CPU usage, RAM usage, disk I/O rate, etc.) of running guests + + + + GUI: Reworked the new vm wizard to integrate the unattended + guest OS installation and to have a more streamlined work flow + + + + GUI: Added a new help viewer widget which enables the user manual to be navigated + and searched + + + + GUI: Adding new notification center unifying most of running progresses and error + reporting around the GUI + + + + GUI: Improved theme support on all platforms. Linux and macOS + use native engine while for Windows host it is separately implemented. + + + + GUI: Large icon update. + + + + Audio recording: Now using Vorbis as the default audio format for WebM containers. + Opus is no longer being used. + + + + Audio: Added "default" host driver type to make it possible to move VMs (appliances) between different platforms + without the need of changing the audio driver explicitly. When the "default" driver is selected, the best audio backend + option for a platform will be used. This is the default for newly created VMs. + + + + Guest Control: Implemented initial support for automatic updating + of Guest Additions for Linux guests + + + + Guest Control: Implemented ability to wait for and/or reboot the + guest when updating Guest Additions via VBoxManage + + + + VBoxManage: Added Guest Control "waitrunlevel" sub-command to + make it possible to wait for a guest to reach a certain run level + + + + Windows hosts: Added experimental support of running autostarted VMs + in session 0, to allow running VMS even when a usser is not being logged + in (disabled by default, please consult the manual) + + + + macOS host: Dropped all kernel extensions. VirtualBox relies fully on + the hypervisor and vmnet frameworks provided by Apple now. At the moment + the implementation lacks "Internal Networking" functionality. This will be + provided at a later date. + + + + macOS host: Providing a Developer Preview package for systems with + an Apple silicon CPU. This is unsupported work in progress, and is known + to have very modest performance. + + + + Linux Guest Additions: Reworked guest screen re-size functionality, + added basic integration with some of guest Desktop Environments + + + + Devices: Implemented new 3D support based on DirectX 11 (and DXVK + on non Windows hosts) + + + + Devices: Added virtual IOMMU devices (Intel and AMD variant) + + + + Devices: Added virtual TPM 1.2 and 2.0 devices + + + + Devices: The EHCI and XHCI USB controller devices are now part of the + open source base package + + + + EFI: Added support for Secure Boot + + + + Debugging: Added experimental support for guest debugging through + GDB and highly experimental support for guest debugging through KD/WinDbg + + + + + In addition, the following items were fixed and/or added: + + + + + OCI: Cloud networking functionality is enhanced for local VMs, now local VMs could + be connected to cloud networking + + + + GUI: Improved behavior of the virtual machine list and various VM related tools in case + multiple items are selected + + + + GUI: On available platforms, added a new option to disable the host's screensaver + + + + GUI: Reworked global preferences, machine settings and the wizards to improve stability + and usability + + + + GUI: Improving mouse handling in multi-monitor case on X11 platform + + + + GUI: Medium enumeration engine was reworked to improve permormance + + + + GUI: NAT Network stuff was moved from global preferences to global Network Manager tool + + + + GUI: Extension Pack Manager was moved from global preferences to global tools + + + + GUI: Improved overall accessibility + + + + GUI: Migrating to recent Qt versions. + + + + + + diff --git a/doc/manual/xhtml-qhelp.xsl b/doc/manual/xhtml-qhelp.xsl new file mode 100644 index 00000000..483c1ac9 --- /dev/null +++ b/doc/manual/xhtml-qhelp.xsl @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + UserManual.xhtml + + + + + + + + + org.virtualbox + + manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/manual/xidl2docbook.xsl b/doc/manual/xidl2docbook.xsl new file mode 100644 index 00000000..4704f67e --- /dev/null +++ b/doc/manual/xidl2docbook.xsl @@ -0,0 +1,588 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + yes + + + + + + + + + + + Classes (interfaces) + + + + + + + + + + + + + + + + + <xsl:value-of select="$ifname" /> + <xsl:if test="$reportExtends"> + <xsl:value-of select="concat(' (', @extends, ')')" /> + </xsl:if> + + + + + + This interface is not supported in the web service. + + + + With the web service, this interface is mapped to a structure. Attributes that return this interface will not return an object, but a complete structure + containing the attributes listed below as structure members. + + + This interface is supported in the web service only, not in COM/XPCOM. + + + + + + This interface extends + + + + + and therefore supports all its methods and attributes as well. + + + + + + + + Attributes + + + + + + + + + + + <xsl:choose> + <xsl:when test="@readonly='yes'"> + <xsl:value-of select="concat(@name, ' (read-only)')" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="concat(@name, ' (read/write)')" /> + </xsl:otherwise> + </xsl:choose> + + + + + + + + [] + + + + + This attribute is not supported in the web service. + + + + + + + + + + + + + + + + + + + + + + + <xsl:value-of select="@name" /> + + + + This method is not supported in the web service. + + + + + + + + + + + [] + + + + + + + + [ptr] + + + + + + + + + [] + + + , + + + + ) + + + + + + + + + + + + + + + + + + + + + + + + + If this method fails, the following error codes may be reported: + + + + : + + + + + + + + + + + + + + + + + + Enumerations (enums) + + + + + + + + + + + + <xsl:value-of select="$ifname" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + See also: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/manual/xml2tag.xsl b/doc/manual/xml2tag.xsl new file mode 100644 index 00000000..20a9aa97 --- /dev/null +++ b/doc/manual/xml2tag.xsl @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + diff --git a/doc/technical/Resizing.wiki b/doc/technical/Resizing.wiki new file mode 100644 index 00000000..b6245ba3 --- /dev/null +++ b/doc/technical/Resizing.wiki @@ -0,0 +1,27 @@ +Please feel free to send documentation patches to the vbox-dev [https://www.virtualbox.org/wiki/Mailing_lists mailing list]. + += Mechanics of host-guest dynamic resizing = + +In normal use, with the standard graphical user interface and with Guest Additions installed, !VirtualBox resizes guest desktops to match whenever the host window is resized. This document describes the way the mechanism is supposed to - and usually does - work. It also points out the tricky parts which might potentially fail. + +== The guest video device == + +!VirtualBox virtual machines contain an emulated graphics card which can currently support up to 64 monitor outputs (the actual number is set by the user before starting the machine). Each output can be set to any resolution which the configured video RAM size will support (potentially using overlapping video RAM areas). Normally it will be controlled by the Guest Additions video driver or the Linux VMSVGA driver, but it can also be controlled by a VGA driver or using the VESA BIOS, which can only set a limit set of the resolutions that the card can handle, and only on the first screen. When the guest sets a new resolution on a given monitor output the user interface resizes the matching window to fit. This only happens once for each resolution change. If it appears to be repeating, the guest has probably got stuck setting and resetting resolutions. + +== Resizing triggered by the host == + +Virtual machines typically display into windows on the host computer, so it is convenient if the guest operating system can be told to adjust its display to fit well into the windows. This is done by simulating monitors with preferred resolutions of the host window sizes, and simulating monitor re-plugs when the host windows are resized. There are currently two ways that the guest can read the monitor size, depending on its driver and helper set-up. The VBox(S)VGA device gives the guest the information directly, whereas when the VMSVGA device is in use a helper has to read the monitor information from the so-called VMM (virtual machine monitor) device and tell the driver. There is no guarantee that the guest will actually use the preferred size, but it usually does. + +In Linux guests, the VBox(S)VGA drivers generate a random monitor serial number each time the size changes, because those guests remember monitors by serial number and may set a different resolution if a monitor they have seen before is connected. (There is a good reason for this on a physical computer of course, but we do not want it in our virtual ones.) The serial number trick does not work with VMSVGA, which can cause resizing to fail. Deleting the file ~/config/Monitors.xml in the guest helps. Another known problem is that on older Linux guests without kernel graphics drivers we send an ACPI monitor change notification, which a few older guests interpret as a request to cycle to the next available resolution after the resize has already taken place. No modern Linux system is known to be affected, and as of X.Org Server 1.19 in the guest we require use of the kernel driver. + +Legacy drivers, including the ones in the BIOS and EFI, are not able to read the preferred size. That should be fixable, but no one has yet found time to do it. Once the guest loads a more capable driver it reads the last preferred size requested by the host and adjusts to that (this currently does not work as expected with the Windows drivers, but should be fixed soon). + +== Guest Additions components == +=== Windows guests === + * VBoxVideo: the main graphics driver loaded into the kernel. It can tell how many screens (that is, screen connectors) the guest currently supports, and can enable and disable them as well as setting resolutions to them. It reports this information to Windows on the guest. It can not receive information from the host about screen changes (mode hints, monitor unplug or hotplug) itself, but provides an interface for a user-space tool which can to provide that information. It remembers information received in the Windows registry and simply assumes when it loads that the configuration has not changed since it was last used. + * VBoxTray: a user-space daemon which is loaded when a user logs into Windows on the guest and runs as part of that session. It can receive screen change information from the host and forward it to VBoxVideo. It also handles seamless mode and other unrelated guest functionality. + +=== X.Org/Wayland guests === + * vboxvideo.ko: the main graphics driver loaded into the kernel, currently Linux-only (3.11 and later). It is known to be supported by X.Org Server 1.17 and later and by GNOME Shell/Wayland as of at least Fedora 25. It can receive information from the host about screen changes (mode hints, monitor unplug or hotplug) itself, though it depends on user-space to handle that. All half-recent GNOME Shell versions (X.Org and Wayland), Ubuntu Unity versions and KDE versions do that. + * VBoxClient: a user-space daemon which is loaded when a user logs into X.Org on the guest. It is loaded by the desktop environment and works with most known ones. For desktop environments which cannot handle screen changes themselves it does that for them (it waits two seconds before responding to the change to give the environment a chance to respond itself, rather than trying to guess which can and which can't). It cannot do this before log-in of course. It also handles seamless mode and other unrelated guest functionality. + * vboxvideo_drv.so: the main graphics driver, but a different version which runs inside X.Org/XFree86 in user-space. It cannot co-exist with vboxvideo.ko, but does roughly the same job. It is supported up to X.Org Server 1.18. So X.Org 1.19 and later cannot be used with Linux 3.10 and earlier except with fall-back graphics. This is not expected to be a problem. -- cgit v1.2.3