Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,313 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

Additionally, Vancouver is described as part of the dissertation of Bernhard Kauer:

Improving System Security Through TCB Reduction

NUL and the Vancouver project is discontinued. Even so Seoul has been 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. In 2024 USB support got added. In 2026 virtio filesystem support got added. 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.

Further resources

List of resources about or mentioning Vancouver respectively Seoul VMM in chronological order:

2025.09 - seL4 summit - Sculpt OS - a dynamic general-purpose OS powered by Genode on seL4

2025.02 - Fosdem 2025 - Celebrating kernel diversity with Genode - (check out pdf presentation)

2024.08 - Genode release - 24.08 - AVX suport

2024.05 - Genode release - 24.05 - USB support

2024.02 - Genode release - 24.02

2023.11 - Genode release - 23.11 - 64bit VM support

2022.11 - Genode release - 22.11 - First virtio models

2020.02 - Genode release - 20.02

2019.08 - Genode release - 19.08

2019.05 - Genodians article - Seoul VMM and the new VM interface

2019.05 - Genode release - 19.05

2019.02 - Fosdem 2019 - Microkernel virtualization under one roof - Dare the impossible

2018.05 - Genode release - 18.05

2015.11 - Genode release - 15.11

2014.11 - Genode release - 14.11

2014.08 - Genode release - 14.08 - SMP for the Seoul VMM

2014.02 - Genode release - 14.02

2013.11 - Genode release - 13.11

2013.08 - Genode release - 13.08

2013.05 - Genode release - 13.05

2013.02 - Genode release - 13.02 - Full virtualization on NOVA/x86

2012.08 - Genode release - 12.08

2011.11 - Genode release - 11.11 - Faithful x86 PC Virtualization enabled by the Vancouver VMM

About

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

Resources

Stars

7 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages