<p dir="ltr">Okay, that makes sense. Thanks. And I'm looking forward to when we have more failsafe components.</p>
<div class="gmail_quote">On May 13, 2016 3:41 AM, "Norman Feske" <<a href="mailto:norman.feske@...1...">norman.feske@...1...</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Ben,<br>
<br>
On 13.05.2016 06:01, Nobody III wrote:<br>
> I'm planning on writing an fs_filter server for the desktop environment<br>
> I'm developing. The server will combine access to multiple filesystems,<br>
> much like the vfs server. I want to implement this feature in such a way<br>
> that a misbehaving filesystem driver can't make the server hang. How<br>
> should I do this?<br>
<br>
this question reminds me of the following issue, where I brought up the<br>
same problem for NIC drivers:<br>
<br>
<a href="https://github.com/genodelabs/genode/issues/1592" rel="noreferrer" target="_blank">https://github.com/genodelabs/genode/issues/1592</a><br>
<br>
In short, rather than developing your fs_filter in a defensive way, I<br>
would recommend to develop it assuming that the used file-system servers<br>
are trusted. To still use a non-trustworthy file-system server, run it<br>
as a child of a dedicated fs_failsafe monitor. This is a runtime<br>
environment with the following functionality:<br>
<br>
* It runs the real file system as a child component.<br>
* It provides a file-system service to the outside. However, it does not<br>
implement the file-system itself but rather forwards all requests to<br>
its child. Because the fs_failsafe component is small and trusted, it<br>
will never hang. So your fs_filter would be safe to use it at all<br>
times.<br>
* It monitors the liveliness of the child. E.g., by using a watchdog<br>
thread that looks at the duration of file-system requests. If it<br>
detects that the child hangs, it can try to handle this situation<br>
(I don't know it restarting a file-system is a reasonable idea or<br>
not). In any case, it could still respond to client requests by<br>
returning errors instead of hanging. It could also respond to a<br>
session-close request by killing the child.<br>
<br>
Do you think this approach would work for you?<br>
<br>
Norman<br>
<br>
--<br>
Dr.-Ing. Norman Feske<br>
Genode Labs<br>
<br>
<a href="http://www.genode-labs.com" rel="noreferrer" target="_blank">http://www.genode-labs.com</a> · <a href="http://genode.org" rel="noreferrer" target="_blank">http://genode.org</a><br>
<br>
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden<br>
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth<br>
<br>
------------------------------------------------------------------------------<br>
Mobile security can be enabling, not merely restricting. Employees who<br>
bring their own devices (BYOD) to work are irked by the imposition of MDM<br>
restrictions. Mobile Device Manager Plus allows you to control only the<br>
apps on BYO-devices by containerizing them, leaving personal data untouched!<br>
<a href="https://ad.doubleclick.net/ddm/clk/304595813;131938128;j" rel="noreferrer" target="_blank">https://ad.doubleclick.net/ddm/clk/304595813;131938128;j</a><br>
_______________________________________________<br>
genode-main mailing list<br>
<a href="mailto:genode-main@lists.sourceforge.net">genode-main@...12...ceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/genode-main" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/genode-main</a><br>
</blockquote></div>