# Genode Web-Browser Demo (4/4)

On Genode, each device driver is a normal program communicating with its client via inter-process communication. Apart from the benefits regarding fault isolation, this allows for having multiple implementations of the same device-driver interface. For an application using such an interface, the implementation of the interface is completely transparent. As an example, we can provide a custom block device driver to the Linux kernel. But our driver does not access any real block device but instead fetches data via HTTP from a web server.

This enables us to stream a boot image of a complete Linux distribution on demand via the internet. Of course the boot time depends on the speed of the internet connection and on the performance of the web server providing the image.

Click onto the plugin to pass the keyboard focus to Linux. Maybe you like to watch a short movie streamed from blender.org? Just type in play_movie.sh and press enter.

In the case of the plugin above, the subsystem consists of a Linux kernel, a small `initrd`, and the HTTP-block device driver including a TCP/IP stack. The Linux system is able to access the network via a distinct IP address.

The figure illustrates the use of the network bridge by the web browser, the HTTP-based block driver, and the Linux kernel. Even though the plugin is executed as an isolated subsystem, it can interact with system components outside the subsystem if permission is granted by the loader. The loader may base this decision on a static policy (as used for the demo), or it could further take plugin-provided information into account, for example a cryptographic signature proofing the origin of the plugin.

# Have fun with the other demos!

Thank you for viewing the web browser demo. You can learn more about this framework or get the source code at:

http://genode.org

  Genode OS Framework project website

To get in touch, subscribe to our mailing list or simply drop us a note via

     info@genode.org

To learn more about the company behind the framework, visit our company's website:

http://www.genode-labs.com

  Genode Labs company