Hi Boris,
You just missed a tiny piece of the puzzle: The 'Slave::Connection' does not only provide the session interface of the slave's service but also the corresponding 'Session_capability' (it inherits 'CONNECTION::Client', so the 'Slave::Connection' _is_ a session capability). Instead of calling the 'File_system' methods, the media component would pass this 'Session_capability' to init as response to the 'File_system' session request that originated from init.
I assume here the session() method inherited from Genode::Root has to be implemented such that it returns the capability that is the Slave::Connection after that connection has been initiated?
yes.
Cheers Norman