VirtualBox

Version 9 (modified by jose, 17 years ago) ( diff )

--

Source code organization

include/

kBuild/

kBuild/ contains our custom-made, sophisticated, cross-platform build system based on GNU make. For details, please refer to the kBuild page.

out/

out/ is the output directory. Into here, the build system puts all output code, sorted by platform and release/debug version.

src/

src/ is, naturally, by far the biggest and most complicated subtree. Here you find, by subdirectory:

  • src/libs/ contains various libraries in specific versions that we depend on. We can't very well ask our customers to descend into dependency hell and therefore statically compile these into the VirtualBox binary. The various licenses under which these libraries were shipped are all documented in the appendices of the user manual.
  • src/recompiler/ contains a recompiler for a few situations within VirtualBox. Essentially, all guest code runs natively on the hardware. The recompiler, however, steps in as an emulator fallback when
    • guest code disables interrupts and VirtualBox cannot determine when they will be switched back on;
    • for single instruction execution on faults;
    • for real-mode code during bootup (BIOS, grub, DOS, operating system startup).
  • src/VBox/ contains the bulk of the VirtualBox code, again sorted into subdirectories.

tools/

Into tools/, we have put some tools that we don't want to rely on on the host platform, mostly because some versions of these tools are known to be buggy and we want to make sure that a specific version is used.

The tools are sorted into subdirectories for the various platforms:

  • x86.linux contains:
    • bin/as86 and bin/bcc are some old compilers that we require for some real-mode code in VirtualBox.
    • bin/iasl is the Intel ACPI DSL compiler, available with source from here.
    • bin/xd is a tiny tool to convert a binary file into a C array. This is from here and public domain.
    • makeself contains some shell scripts to create our self-extracting Linux installer.
    • yasm/ contains YASM, a rewrite of the venerable NASM assembler, a project released under the BSD license.
  • x86.win32 contains: (fill this in when it's up-to-date)
Note: See TracWiki for help on using the wiki.

© 2023 Oracle
ContactPrivacy policyTerms of Use