Since April 25, I firstly used NetBSD to boot server and have a closed look at NetBSD. When I dive into the blueprint “Make NetBSD a supported Guest OS on VirtualBox”, I tried my best to learn the inner structure of VirtualBox and what should be done if I want to implement the origin idea.
During the first month, I learned how to develop with VirtualBox and understood the guest additions of VirtualBox. Compared with the implementations of FreeBSD, Linux and Solaris, I started to have a big picture about how to reach my idea.
Since June 17, I began to work on my idea. As we know, VirtualBox is designed with portability in mind and portability issues are addressed as they are uncovered. That said, it still requires a fair amount of work to get most of the features up and going on a new platform. The effort needed varies a bit depending on how much the new platform differs from the ones VirtualBox already has been ported to. It took me a few days to build the infrastructure of VirtualBox such as kBuild. Next, I tried to get it building and there exists many dependencies should be done. The efforts contains introducing dependent libraries and modify incompatible codes. After two weeks, I successfully built the VirtualBox core library.
At present, I have finished the essential framework of the GSoC goals. The finished jobs contains the core prerequisites(kBuild and related dependent libraries), environment bootstrap scripts and compatible files. Start with the Makefile, most of these are in the include/iprt/ directory and will happen while building src/VBox/Runtime. Runtime, aka IPRT, is a mix of OS abstractions (IO, memory, etc), compiler abstractions (return address, predictions, intrinsics, symbol export/import, etc), and some generic constructs (AVL trees, md5, compression, string manipulation, etc). Having got the libraries in Runtime building, implementing the guest additions of NetBSD. The task contains write a NetBSD driver for the connection between Host and Guest OS, importing the common codes and make them compatible with NetBSD. The shared-fs and vboxvideo is implemented and needed to be tested. I hope it can have a good job in loading it to kernel.
Any one could find code repository in sourceforge at (https://sourceforge.net/projects/vbox-netbsd/).
In the next month, the main task is make my codes can be built and used on NetBSD successfully. To port it into pkgsrc and write a complete document about it.
The past reports can be found at Project Website