RPC interface to get random numbers

Norman Feske norman.feske at ...1...
Tue Nov 15 18:45:52 CET 2016


Hello Pirmin,

thanks for posting your idea to the list.

I wonder, have you considered to implement the random service as a
"Terminal" service that just produces a stream of random values? The
benefit would be that such a server can be combined with the existing
terminal infrastructure out of the box. For example, you could mount the
random server's session in the VFS (via a <terminal> node) without any
extra effort.

The rationale behind keeping the number of session interfaces as low as
possible is given at the beginning of Chapter 4 "Components" in the
documentation. Please excuse me blatantly citing myself ;-)

"The versatility of a component-based system does not come from the
 existence of many components alone. Even more important is the
 composability of components. Components can be combined only if their
 interfaces match. To maximize composability, the number of interfaces
 throughout the system should be as low as possible, and all interfaces
 should be largely orthogonal to each other. Section 4.5 reviews
 Genode’s common session interfaces."

So before starting to create a new interface, I always recommend to
double check if the problem can be modeled via the existing interfaces.
In most cases, this is possible. Sometimes, a combination of two
interfaces does the trick. E.g., instead of equipping a session with the
ability to request meta information directly from the server, it is
often possible to let the server generate a report about its feature set
(via the "Report" session) and let the client request this information
as a ROM session. This out-of-band propagation of configuration data is
much more flexible and better testable.

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




More information about the users mailing list