Skip to content

alex-ab/seoul

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,303 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Seoul

Seoul is a x86 Virtual Machine Monitor including device models and instruction emulator. It is a standalone version of the Vancouver VMM that is included in NUL and was developed mainly by Bernhard Kauer. The combination of NOVA and Vancouver (later Seoul) is described in the following paper by Udo Steinberg and Bernhard Kauer:

NOVA: A Microhypervisor-Based Secure Virtualization Architecture

NUL and the Vancouver project is discontinued. Even so Seoul has beend developed originally solely to run with the NOVA hypervisor, nowadays it is also available for seL4 and Fiasco.OC on Genode.

This fork of Seoul is an adjusted version specifically tailored to run with the Genode operating system framework and Sculpt OS. Ready to use Seoul packets for Sculpt OS are available via alex-ab’s index. Note: the other bindings for NUL and NRE of this repository are not maintained nor runnable.

Seoul gets maintained and extended mainly by me on a casual base - as time permits. This repository is referenced as external port via Genode GOA SDK in genode-world and for developer purposes via my chest repository.

Beside keeping it runnable, the noteworthy extensions are the 64 bit guest support added in 2023 and the support of Virtio models for GPU(2D), audio and input in 2021-2022. From time to time I publish on genodians.org updates.

Developing Seoul with Genode OS framework

To use it, you first need to obtain a clone of Genode:

! git clone https://codeberg.org/genodelabs/genode.git genode

Please follow the instruction of the Genode OS framework to get ready.

Now, clone the genode-chest.git repository to genode/repos/chest:

! git clone https://github.com/alex-ab/genode-chest.git genode/repos/chest

For enabling the repository, adjust the build-directory configuration etc/build.conf by adding the following line to the ‘REPOSITORIES’ definitions.

! REPOSITORIES += $(GENODE_DIR)/repos/chest

Within the genode directory, create an build directory for x86, e.g.

! tool/create_builddir x86_64

Get the external Seoul port, which is this repository:

! tool/ports/prepare_port seoul

In repos/chest/run you will find various seoul*.run scenarios, e.g. an example invocation is

! make -C build/x86_64 KERNEL=nova run/seoul-auto

For questions please consult github issue tracker of this repository.

About

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

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 93.5%
  • C 4.5%
  • Python 1.1%
  • Other 0.9%