Hello, world!

Wouter van Oijen wouter.van.oijen at technolution.nl
Mon Nov 19 16:42:57 CET 2018

Hi "Nobody III" ;-)

Thanks for your reaction! I have some follow-up questions though:

> Port files are only necessary to download external code.
Okay, thanks for clearing that up :-)

> I'm not sure about your second question. In particular, noux was intended exclusively for ported software. At this point, its main purpose is to emulate the fork() system call. For software that doesn't require that, I'd recommend just using libc instead. Noux also isn't designed for code isolation within a single noux instance, so that might be an issue as well.

Hmm, now I'm a bit confused. I was under the impression that Noux was
necessary for a lot more than just fork(), like things as file access
and networking as well. For example, at
https://genode.org/documentation/release-notes/11.02 it is mentioned
that "without the right environment that presents the program the
needed UNIX functionality, those [unmodified, recompiled] programs
won't do much. This leads us to the Noux execution environment." And
also "Currently the Noux execution environment implements the
following system calls: getcwd, write, stat, fstat, fcntl, open,
close, dirent, fchdir, read, and execve."

Are these functions now implemented in libc and can they work without
Noux? In general, could I then recompile any Unix application that
doesn't use fork(), and run it as a Genode component?

If not, what would I need to do compile a simple standard-C
application that writes some data to a file and then reads from that

I do understand that the code isolation is limited to isolation
between different Noux instances and not within the application
itself. This is fine for our demo, but thanks for pointing it out.

> There are plenty of code isolation examples available, and we can help you more if you tell us more about what you're trying to do. Then we can give you much better advice on what libraries and RPC interfaces to use. For example, if you want to separate a login screen's GUI from the password verification and login code, I'd recommend using the Report interface and/or the File_system interface.

I'm currently trying to get existing software (specifically: a
Mosquitto broker) to build and run in Genode, so I'm not using the
Genode interfaces. However, since the Genode build flow is still a big
mystery for me, I was first trying to build and run some basic
examples... Hence the above questions.

Kind regards,

More information about the users mailing list