Sorry for top-posting, but you gave me exactly what I was looking for. That is a lot of good info! (The tooling question was just in case of custom disk file formats, etc.)
As you suggest, I will start with VBox, then gradually try it with Seoul. It's great news that you can go back and forth! I'll keep you informed of my progress, one way or another. ;^)
On 4/26/24 10:04 AM, Alexander Boettcher wrote:
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:
- 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.
- 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.
- 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/