VirtualBox

Version 4 (modified by umoeller, 17 years ago) ( diff )

--

Frequently Asked Questions (FAQ) for developers (Developer FAQ)

This particular FAQ is for developer issues only; you may want to look at the User FAQ and Licensing FAQ for additional topics.

  • Q: How does VirtualBox relate to QEMU? I have seen some source files that appear to be related to his project.

A: VirtualBox makes use of QEMU in two ways: first of all, some of our virtual hardware devices have their origin in the QEMU project. We have found them to be very useful and took them as a starting point. Secondly, we have incorporated the recompiler of QEMU as a fallback mechanism for situations where our Virtual Machine Manager (VMM) cannot correctly handle a certain situation. This holds true for guest code that executes in real mode (such as bootup) and some rare scenarios at runtime. See VirtualBox architecture for details. QEMU saved us a lot of work and we are very grateful to be able to rely on it.

  • Q: Does VirtualBox support CPU virtualization enhancements such as Intel VT-x (codename Vanderpool) and AMD SVM?

A: Yes, we provide full support for Intel VT-x and experimental support for AMD SVM. However, we do not make use of these features by default. You have to enable it either globally or on a per VM basis. The reason is very simple: our x86 virtualization is very sophisticated and in most cases it provides significantly better performance than when relying on VT-x. Virtualization products that rely on VT-x are usually much less sophisticated and tuned. With VT-x, a special CPU environment has to be entered in order to execute guest code and whenever activity of the VMM is required, this environment has to be left and then entered again. This is painfully slow and will take some years until additional benefits of VT-x and SVM (such as nested paging) may outweigh the performance penalty. VirtualBox will continue to support the latest CPU enhancements and already today, you benefit from VT-x when running guest operating systems such as OS/2 Warp which need rarely-used processor features. In general, with VT-x enabled much less virtualization code from VirtualBox has to be executed which can result in a more reliable system in case there are problems. So if you run into an issue, we recommend to compare the results to a VT-x enabled VM.

  • Q: Why do you ship source codes from Mozilla and build them as part of VirtualBox? This increases build times and every sane person on this planet already has Mozilla Firefox installed!

A: On Linux hosts, VirtualBox makes use of Mozilla XPCOM as its component model. Unfortunately, XPCOM is not very standardized and each and every application based on it brings its own binary version of XPCOM. Also, we have significantly enhanced XPCOM for cross process communication and our enhancements have not been incorporated into the Mozilla code base yet. We therefore cannot rely on XPCOM being present on our target systems and even if, it would not have our enhancements. For Windows hosts, we do not rely on XPCOM so we don't build it there.

  • Q: Why does it take so long to build VirtualBox?

A: That's because your computer is slow :-) No, the truth is that VirtualBox is a very large and complex project and due to its modular architecture, there are a lot of different components. Also, our build system is configured to be very flexible and cross platform so simpler and faster approaches (such as a single global makefile) are not feasible. Note that you can perform incremental builds and when working on a single component, it is much faster to start the build from the component directory instead of the base directory. Also, making use of precompiled headers is on the agenda, feel free to help out.

Note: See TracWiki for help on using the wiki.

© 2023 Oracle
ContactPrivacy policyTerms of Use