README: remove future plans
Remove future plan sections from the README. The project is superseded by the Rust demo web server and is currently mostly unmaintained.
Signed-off-by: Gerwin Klein gerwin.klein@proofcraft.systems
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
seL4webserver reference application
This repository contains a VM-based seL4 web server application. Its purpose is to be a reference for implementing applications on seL4. Currently there is only a single configuration that runs a web server inside a Linux VM component to serve a static website.
Current status
There are two configurations for serving a static website from a web server running inside a Linux guest on an odroid-xu4 on a local network. This includes a configuration with a single VM instance that serves a static website. The second configuration involves multiple VM’s serving a static website. The multiple VM configuration has an additional VM that acts as an network access point for the other VMs. It would be possible to modify which static website is being served by modifying the static html files located in
/run/site/in the Linux guest’s file system. If you don’t have odroid-xu4 to test this project you still can use emulation. Please see “Configure: Single VM Webserver (qemu-arm-virt)”. Notice: check “Configure networking (qemu-arm-virt)” to learn more about this topic”.Setup
This project is based on an Arm VMM running inside a CAmkES system and therefore requires all of the Camkes dependencies described in Host Dependencies.
Additional dependencies required to run a lighttpd webserver serving an example page in a Linux guest:
Build instructions
Configure: Single VM Webserver
Configure: Multi-VM Webserver
Build Webserver
See the Odroid XU4 hardware page on the docsite for additional information about running an seL4 image on an Odroid XU4.
Running the generated seL4webserver image will result in a running webserver listening on port 3000.
You could then navigate to 10.13.1.7:3000 in a web browser on the same local network.
Configure: Single VM Webserver (qemu-arm-virt)
Build Webserver (qemu-arm-virt)
Running seL4 qemu-arm-virt image
Configure networking (qemu-arm-virt)
Networking under qemu may be somewhat tricky and specific configuration details may vary depending on the host configuration/distro/etc. Thus here there are some few suggestions to try having your set up ready as easy as possible. So, if you want to have networking on your virtualized guest then you can try:
1st- Configure a dhcp server on the host. 2nd- Run “simulate” like this:
3rd- Manually create the bridge interface to connect the guest and the host networking. Again, here specific commands’ syntax depends on every environment. Just as an example here what worked on Ubuntu 20.04:
Anyway, probably you will need to check the documentation of your specific host distro and qemu version to see how a bridge can be created in your specific setup. It is well known that on some deployments qemu scripts automatically takes cares of this so you will be able to skip this last step.
Thus if everything goes as desired you should see udhcpc getting networking config, that is, something like this:
Testing the web server (qemu-arm-virt)
Once the networking has been set up, you can check what IP has been assigned to your guest (also it is announced on the screen via udhcpc message…):
and now just open web browser and open URL:
http://<your_assigned_IP>:3000and you should see an seL4 documentation web page.Contributing
Contributions are welcome in the form of feature requests, documentation requests, or documentation/code contributions. See CONTRIBUTING.md for our general contribution guidelines.
Current code contributions we would be interested to receive: