Beginner questions: Seoul, Rust, DDE, and system composition

Martin Stein martin.stein at genode-labs.com
Fri Sep 15 10:12:57 CEST 2023


Hello Zach,

Welcome to the mailing list ;)

I can answer only one of your questions partially. But I hope this still 
helps, and that others chime in to fill the gaps :)

On 14.09.23 22:59, Zachary Zollers wrote:
> [4] What is the best way to determine the dependencies of a component? How does the Sculpt visual composition system determine which sessions are required? When trying to run a complex component (e.g., a VMM) I often find myself doing a lot of trial and error with including libraries and starting necessary dependencies in the run script. Is there a better, or more consistent, way to determine dependencies?

Sculpt determines the required services of a subsystem by looking at the 
<requires> tag in its runtime config. For instance, have a look at [1] - 
it defines a lot of required services as well as restricting labels for 
some. The same sub-system but with the ability to capture frame-buffer 
data in the VM can be found in [2]. Consequently, it lists the same 
services as [1] in <requires> but adds the Capture service. The first 
listed service is the one who's route will be printed as connecting line 
to your subsystem in the tree view. Some basic services (LOG, binary/lib 
ROMs, PD, CPU) must not be listed in <requires> as they are routed 
automatically. The list contains only those services that are routed by 
the user in the deployment menu.

Furthermore, the required binary/lib files must be listed in the 
<content> tag in the runtime file.

As far as I know, creating these two lists is still manual work of the 
integrator. Now, I don't know if this is what you described but I'll 
append my own procedure anyway:

When I try to create a package and its runtime file, I usually start by 
creating a run script that runs my sub-system without package management 
and, important, without default service-routes. Actually, at the 
beginning, the script contains no service routes at all, so, that the 
components have to tell me what they need. This way, I can iterate over 
the requirements much faster than with a package-based system. 
Additionally, I add routes only with the specific labels in this 
process, so, I get to find also the name of each ROM file that should be 
listed in <content>.

I would also appreciate a more comfortable solution for this. But, 
admittedly, my frustration was not big enough until now in order to 
prioritize it over my other work.

Does that answer your question?

Cheers,
Martin7

[1] repos/ports/recipes/pkg/vbox6/runtime
[2] repos/ports/recipes/pkg/vbox6-capture/runtime
*ü a>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xC965544047C34F92_and_old_rev.asc
Type: application/pgp-keys
Size: 8607 bytes
Desc: OpenPGP public key
URL: <http://lists.genode.org/pipermail/users/attachments/20230915/b8f44899/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <http://lists.genode.org/pipermail/users/attachments/20230915/b8f44899/attachment.sig>


More information about the users mailing list