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. NUL and the Vancouver project is discontinued.
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 mainly maintained and extended by me on a casual base as time permits. This repository is referenced as external port of genode-world, which contains the Genode side of the adaptations for this Seoul 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.
To use it, you first need to obtain a clone of Genode:
! git clone https://github.com/genodelabs/genode.git genode
Please follow the instruction of the Genode OS framework to get ready.
Now, clone the genode-world.git repository to genode/repos/world:
! git clone https://github.com/genodelabs/genode-world.git genode/repos/world
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/world
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/world/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 the Genode mailing list or use the github issue tracker of this repository.