/seoul

A x86 Virtual Machine Monitor including device modules and instruction emulator. Standalone version of the Vancouver VMM.

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Seoul

Seoul is x86 Virtual Machine Monitor including device modules and instruction emulator. It is a standalone version of the Vancouver VMM that is included in NUL developed mainly by Bernhard Kauer (bk@vmmon.org) at the TU Dresden. Please direct questions regarding Seoul to Julian Stecklina <jsteckli@os.inf.tu-dresden.de>.

This repository contains a frontend for Seoul runnable on Linux, FreeBSD and perhaps other UNIX-likes implemented in unix/. This frontend is currently work-in-progress and not intended for anything except further development.

The goal is to keep this UNIX frontend only a showcase for how to get Seoul running on your platform. All other parts of Seoul do not invoke platform-specific functions on their own and should be reusable on most platforms without change.

This repository also contains drivers developed for NUL in host.

Building

Execute scons in unix/.

Starting a VM

We currently only support booting Multiboot compliant kernels. Execute seoul -h to get usage information.

Directory Structure

  • include/
    service/
    general service includes
    nul/
    NUL environment (leftovers from NUL past), the motherboard, bus and message interface, everything what NUL programs needs
    host/
    host drivers and shared includes
    model/
    model support headers
    executor/
    public executor interface
host/
host drivers
model/
device models
executors/
cpu model and instruction emulator