<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
<topic xml:lang="en-us" id="features-overview">
  <title><ph conkeyref="vbox-conkeyref-phrases/product-name"/> Features</title>
  
  <body>
    <section>
      <title>Portability</title>
      <p><ph conkeyref="vbox-conkeyref-phrases/product-name"/> is a so-called <i>hosted</i> hypervisor, sometimes referred to as a <i>type 2</i> hypervisor. Whereas a <i>bare-metal</i> or <i>type 1</i> hypervisor runs directly on the hardware, <ph conkeyref="vbox-conkeyref-phrases/product-name"/> requires an existing OS to be installed. It can thus run alongside existing applications on that host. <ph conkeyref="vbox-conkeyref-phrases/product-name"/> runs on a large number of 64-bit host operating systems. See <xref href="installation-packages.dita"/>.<note type="caution">Do not run other hypervisors together with <ph conkeyref="vbox-conkeyref-phrases/product-name"/>. <p>While several hypervisors can normally be <i>installed</i> in parallel, do not attempt to <i>run</i> virtual machines from competing hypervisors at the same time. <ph conkeyref="vbox-conkeyref-phrases/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.</p></note></p>
      <p><ph conkeyref="vbox-conkeyref-phrases/product-name"/> is available on multiple host platforms, and the same file and image formats are used on each. 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 (VM) on Windows and then run it on Linux.</p>
      <p>In addition, VMs 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 <xref href="ovf.dita#ovf"/>.</p>
    </section>
    <section>
      <title>OCI Integration</title>
      <p>You can export and import VMs to and from <ph conkeyref="vbox-conkeyref-phrases/oci"/>. This simplifies development of applications and deployment to the production environment. See <xref href="cloud-export-oci.dita#cloud-export-oci"/>.</p>
    </section>
    <section>
      <title>Guest Additions</title>
      <p>The <ph conkeyref="vbox-conkeyref-phrases/product-name"/>
        <xref href="guestadd-intro.dita">Guest Additions</xref> are software packages that can be installed on VMs to improve their performance and to provide additional integration and communication with the host system. VMs running Guest Additions support automatic adjustment of video resolutions, <xref href="seamlesswindows.dita">seamless windows</xref>, <xref href="guestadd-video.dita">accelerated 3D graphics</xref>, <xref href="sharedfolders.dita">shared folders</xref>, <xref href="guestadd-clipboard.dita">clipboard sharing</xref>, <xref href="guestadd-dnd.dita">drag and drop</xref>, and more.</p>
    </section>
    <section>
      <title>Virtual Hardware</title>
      <p><ph conkeyref="vbox-conkeyref-phrases/product-name"/> implements virtual hardware devices and drivers, and implements resource sharing with the real hardware on the host.</p>
      <ul>
        <li>
          <p><b outputclass="bold">Guest multiprocessing (SMP)</b>. <ph conkeyref="vbox-conkeyref-phrases/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. </p>
        </li>
        <li>
          <p><b outputclass="bold">USB devices</b>. <ph conkeyref="vbox-conkeyref-phrases/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 <xref href="settings-usb.dita#settings-usb"/>. </p>
        </li>
        <li>
          <p><b outputclass="bold">Hardware compatibility</b>. <ph conkeyref="vbox-conkeyref-phrases/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 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 <ph conkeyref="vbox-conkeyref-phrases/product-name"/>.</p>
        </li>
        <li>
          <p><b outputclass="bold">ACPI</b>. The Advanced Configuration and Power Interface (ACPI) is available in <ph conkeyref="vbox-conkeyref-phrases/product-name"/>. This enables easy cloning of disk images from real machines or third-party virtual machines into <ph conkeyref="vbox-conkeyref-phrases/product-name"/>. With its unique <i>ACPI power status support</i>, <ph conkeyref="vbox-conkeyref-phrases/product-name"/> can even report to ACPI-aware guest OSs 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.</p>
        </li>
        <li>
          <p><b outputclass="bold">Multiscreen resolutions</b>. <ph conkeyref="vbox-conkeyref-phrases/product-name"/> VMs 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.</p>
        </li>
        <li>
          <p><b outputclass="bold">Built-in iSCSI support</b>. 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 <xref href="storage-iscsi.dita#storage-iscsi"/>.</p>
        </li>
        <li>
          <p><b outputclass="bold">PXE Network boot.</b> The integrated virtual network cards of <ph conkeyref="vbox-conkeyref-phrases/product-name"/> fully support remote booting using the Preboot Execution Environment (PXE).</p>
        </li>
      </ul>
    </section>
    <section>
      <title>VM Management</title>
      <ul>
        <li>
          <p><b outputclass="bold">Multigeneration branched snapshots.</b>
            <ph conkeyref="vbox-conkeyref-phrases/product-name"/> can save arbitrary snapshots of the state of the VM. You can go back in time and revert the VM to any such snapshot and start an alternative VM configuration from there, effectively creating a whole snapshot tree. This can be useful for experimenting with a computing environment, testing, or troubleshooting without the need for frequent backups and restores. See <xref href="snapshots.dita"/>. You can create and delete snapshots while the VM is running.</p>
        </li>
        <li>
          <p><b outputclass="bold">VM groups.</b>
            <ph conkeyref="vbox-conkeyref-phrases/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, Power off), Discard Saved State, Show in File System, Sort.</p>
        </li>
      </ul>
    </section>
    <section>
      <title>Remote Access</title>
      <p> The VirtualBox Remote Desktop Extension (VRDE) is a host extension package that enables high-performance remote access to any running VM. This extension supports the Remote Desktop Protocol (RDP) originally built into Windows, with special additions for full client USB support.</p>
      <p>The VRDE does not rely on the Windows RDP server and therefore works with guest OSs other than Windows, even in text mode, and does not require application support in the VM. The VRDE is described in detail in <xref href="vrde.dita">Remote Display (VRDP Support)</xref>.</p>
      <ul>
        <li>
          <p><ph conkeyref="vbox-conkeyref-phrases/product-name"/> also provides</p>
          <ul>
            <li>
              <p><b outputclass="bold">Extensible RDP authentication.</b>
                <ph conkeyref="vbox-conkeyref-phrases/product-name"/> already supports Winlogon on Windows and PAM on Linux and Oracle Solaris 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 <xref href="vbox-auth.dita">RDP Authentication</xref>. </p>
            </li>
            <li>
              <p><b outputclass="bold">USB over RDP.</b> Using RDP virtual channel support, <ph conkeyref="vbox-conkeyref-phrases/product-name"/> also enables you to connect arbitrary USB devices locally to a virtual machine which is running remotely on an <ph conkeyref="vbox-conkeyref-phrases/product-name"/> RDP server. See <xref href="usb-over-rdp.dita">Remote USB</xref>. </p>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section>
      <title>Modular Design and Interfaces</title>
      <p>
        <ph conkeyref="vbox-conkeyref-phrases/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 <ph conkeyref="vbox-conkeyref-phrases/product-name"/> graphical user interface and then control that machine from the command line, or even remotely.</p>
      <p>The front ends available are:<ul>
          <li>
            <p><ph conkeyref="vbox-conkeyref-phrases/vbox-mgr"/>, a graphical user interface that uses the Qt toolkit. This interface is described throughout this user guide. While this is the simplest and easiest front end to use, some of the more advanced <ph conkeyref="vbox-conkeyref-phrases/product-name"/> features are not included.</p>
          </li>
          <li>
            <p><xref href="vboxmanage.dita#vboxmanage"/>, the command-line interface for automated and detailed control of every aspect of <ph conkeyref="vbox-conkeyref-phrases/product-name"/>.</p>
          </li>
          <li>
            <p><xref href="headless-mode.dita">VBoxHeadless, the Remote Desktop Server</xref>. An interface 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 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.</p>
          </li>
          <li>
            <p><xref href="separate-mode.dita">Separate Mode</xref>. A front end that is based on <userinput>VBoxHeadless</userinput>, but does not require VRDE or an RDP viewer.</p>
          </li>
        </ul></p>
      <p><ph conkeyref="vbox-conkeyref-phrases/product-name"/> also provides a comprehensive <b outputclass="bold">software development kit (SDK),</b> that enables integration of <ph conkeyref="vbox-conkeyref-phrases/product-name"/> with other software systems. See <xref href="VirtualBoxAPI.dita"><ph conkeyref="vbox-conkeyref-phrases/product-name"/> Programming Interfaces</xref>.</p>
    </section>
    <section>
      <title>Experimental Features</title>
      <p>Features listed as <xref href="ExperimentalFeatures.dita"/> do not qualify for Oracle support. Feedback and suggestions about these features are welcome.</p>
    </section>
  </body>
  
</topic>
