[vbox-dev] Why is IPRT a VirtualBox library ?

Alexander Eichner Alexander.Eichner at oracle.com
Sun Apr 12 12:34:16 UTC 2015

Hi Alexey,

this is not possible, because IPRT addresses requirements which can’t be fulfilled by Qt.
First, parts of IPRT are designed to run in host context ring 3 and ring 0 and
in raw mode context (RC) which is not possible with Qt.
Second, Qt uses C++ features like classes, templates, etc. extensively which
we don’t want to use in the VMM core.
Last but not least, IPRT was developed over a long time and every other component
of VBox relies heavily on it so replacing the dependencies with Qt is a _huge_ amount of work
which we can’t and don’t want to invest.

Every API exposed by IPRT should have a least documentation to describe the method which can be
created using „kmk docs“ if oxygen is installed. Furthermore we have a lot of testcases you can look at.
For your purpose I suggest to look at src/VBox/Runtime/testcase/tstRTTcp-1.cpp

Alexander Eichner

Alexander Eichner | VirtualBox Engineering
ORACLE Deutschland B.V. & Co. KG | Werkstr. 24 | 71384 Weinstadt, Germany
Hauptverwaltung: Riesstraße 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603

Komplementärin: ORACLE Deutschland Verwaltung B.V.
Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
Geschäftsführer: Alexander van der Ven, Astrid Kepper, Val Maher

> Am 12.04.2015 um 11:17 schrieb Alexey Eromenko <al4321 at gmail.com>:
> I mean why Qt Core can't be used as a cross-platform generic library
> for strings, sockets, files and the like ?
> What IPRT does sounds fairly generic.
> Maybe Qt Core can be used both for COM backend and frontend.
> Perhaps "upstreaming", i.e. patching Qt where necessary would ease the burden.
> Same is true for many GUI stuff, like custom VBox File picker, that in
> theory should go into Qt -- QFileDialog::getOpenFileName().
> The problem with VirtualBox specific code, is that there is no good
> documentation for internal APIs, and therefore hard to code for
> external developers. But the question is: Is this extra complexity and
> wrappers really needed ?
> Good news, is that there is good documentation for official APIs, the
> VirtualBox SDK. Makes life easier.
> This is why I use Sockets API instead of iprt/tcp.h (for now) -- many
> tutorials for it on the net.
> Makefile (kmk) system is also complex and undocumented, and hard to
> debug to add new features.
> -- 
> -Alexey Eromenko "Technologov"
> _______________________________________________
> vbox-dev mailing list
> vbox-dev at virtualbox.org
> https://www.virtualbox.org/mailman/listinfo/vbox-dev

More information about the vbox-dev mailing list