Hello John,

just as disclaimer beforehand, the statements done below are my personal, not 
necessarily aligned with others.

On 26.04.24 06:42, John J. Karcher wrote:
During the Roadmap discussion, Alexander expressed some relief about switching 
from VirtualBox to Seoul for his main VM.  I can't find much information about 
Seoul online, though.  Is there any handy info about:

1. Advantages / disadvantages of Seoul vs. VirtualBox

You may read the chapter "The choice" of [0] for arguments pro Seoul. I added in the 
posting also links for reading, on one hand about the dissertation of Bernhard, the original author 
of Vancouver (which became later Seoul) and the presentation of the Eurosys OS conference. 
Additionally there is a link to some old documentation of Vancouver as used with the former 
University OS project called NUL. Additionally at [1] in the chapter "Theses", you will 
find work, done in the context of Seoul. The other source are my postings on Genodians.org [2].
I personally like about Seoul that it has close to 0 dependencies in contrast 
to VBox. VBox heavily uses tons of pthreads, brims of abstractions and adds 
thereby complexity, which makes it absolutely no fun to catch the actual reason 
of an issue which happens to happen sometimes. Just have a look with my 
top-view component in a running VBox and a Seoul component on Sculpt, to get an 
impression. Seoul is much more lightweight (okay, virtualization is never 
lightweight) and thereby easier to grasp. It is rather like a library and you 
have to, or rather are forced to, closer interact directly with the native 
Genode interfaces, which I prefer personally. It opens up much more potential 
for optimization and improvements, which is harder to achieve with VBox. So 
VBox is more a heavyweight port, Seoul is closer to a native Genode component. 
But I'm biased in that regard, don't believe me ;-)

Due to the main improvements in the last 2 years, namely 64bit support and virtio 
GPU, input and sound [3], it is now a pleasure to use. Personally, I use 3 VMs 
daily, one for Firefox, one for Thunderbird and one for developing purposes. 
Firefox & Thunderbird are slightly crafted Tinycore OS based versions, the 
developer VM is a standard Debian installation (w/o any browser or email client). 
Lately I successfully used a pre-installed Ubuntu 22.04 VM without any hick-ups, 
which I did not expect at first. Another pro argument for me is, that you have not 
to fiddle with guest-addition installation, which may become sometimes cumbersome. 
Most distributions I care of, have virtio support, which is just part of the VM or 
easily addable with standard packet manager tools within the VM.

Contra Seoul stands the fact, that it is more or less nowadays just my 
pet-project (afaik, anyone ?) and has less features, which one may desire 
depending on the use-case.
Missing, compared to VBox, are at least: Windows OS support, USB device 
pass-through (handy for developer, e.g. USB-to-serial), shared folder, 
copy-and-paste support and sound recording.

For USB pass-through I plan to address it during the upcoming Hack and Hike, since it 
should be doable based on the former work [4]. The qemu USB XHCI port is a more or less 
stand-alone lib, which should be "easy" to use with some helping hand of my 
colleagues.
For shared folder, probably virtio-fs is the direction to go and for 
copy-and-paste the article [5] looks like a try. But this is nothing pressing 
for me personal. For sound recording I have no need for that but there is no 
technical reason not to add it.

2. What's involved in migrating from VirtualBox to Seoul?

In principle you may use your very same installation in VBox interchangeable 
with Seoul. I use my Debian developer VM installation with Seoul, Vbox5 and 
Vbox6 interchangeable as required. Switching is a matter of powering down, and 
using another launcher.

So, I would advise to start with a VBox installation, become comfortable, and 
then add another launcher, which uses the very same installation. The required 
packages are part of my Sculpt index, e.g. and adapter component to read from 
VDI files (if you use them). Seoul itself just support raw Block access (whole 
disk or a partition of it), and the adapter closes this gap and translates from 
a VDI file to Block_session. I will think about to add a Genodians article 
soon, which may help you. In the meantime just try it and I will answer your 
questions. The Thunderbird packet and the Template VM packet actually using 
this adapter implicitly.

3. Maintaining a Seoul system (tools, etc.)

If you asking for some nice UI for configuration purposes, neither our VBox 
port nor Seoul has something to offer.
What exactly you are expecting/asking for ?

Cheers,

Alex.



[0] https://genodians.org/alex-ab/2019-03-06-disposal-browser-vm
[1] https://hypervisor.org
[2] https://genodians.org/topics-seoul
[3] 
https://genode.org/documentation/release-notes/23.11#Seoul_virtual_machine_monitor
[4] 
https://genode.org/documentation/release-notes/16.02#Assignment_of_USB_devices_to_virtual_machines
[5] https://www.kraxel.org/blog/2021/05/qemu-cut-paste/


--
Alexander Boettcher
Genode Labs

https://www.genodians.org - https://www.genode.org
_______________________________________________
users mailing list -- users@lists.genode.org
To unsubscribe send an email to users-le...@lists.genode.org
Archived at 
https://lists.genode.org/mailman3/hyperkitty/list/users@lists.genode.org/message/3O33S4KFJ6BXASGEBA5L26I7RMNP74PH/

Reply via email to