Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

Add MirageOS HTTP server (OCaml unikernel)#2938

Closed
ciarancourtney wants to merge 2 commits intoTechEmpower:masterfrom
ciarancourtney:mirageos_squash
Closed

Add MirageOS HTTP server (OCaml unikernel)#2938
ciarancourtney wants to merge 2 commits intoTechEmpower:masterfrom
ciarancourtney:mirageos_squash

Conversation

@ciarancourtney
Copy link
Copy Markdown
Contributor

Hi,

Carrying on from #2936, this PR adds another popular unikernel implementation called MirageOS

Tested on my own Travis and the plaintext test passes with results.

There are two workarounds applied to the code that prevent memory leaks and max open fd exceptions respectively, hopefully these are resolved in subsequent releases.

Feedback welcome!

Thanks

* Remove unnecessary --no-debug flag

* Removes production flag
@ciarancourtney ciarancourtney changed the title Add MirageOS cohttp server (unikernel) Add MirageOS cohttp server (OCaml unikernel) Aug 16, 2017
* Use Conduit HTTP server booted as virtio via qemu instead of unix mode
@ciarancourtney ciarancourtney changed the title Add MirageOS cohttp server (OCaml unikernel) Add MirageOS HTTP server (OCaml unikernel) Aug 21, 2017

# FIXME
# * Need to change TFB-Server to 10.0.0.2 in /etc/hosts, hostfwd doesn't seem to work with qemu tap network config
# * No newline at end of file
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This entire file needs to be redone. OCaml should be installed in a similar fashion to how other languages are; see DLang.

Also, we would prefer an installation which does not rely on apt-get if possible

### TODO

* Under load the server will crash with a Unix.EINVAL or similar exception, this open issue is
detailed [here](https://github.com/mirage/ocaml-cohttp/issues/503) No newline at end of file
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is likely to be a problem in actual benchmarking efforts.

qemu-system-x86_64 -daemonize -cpu Westmere -m 128 -nodefaults -no-acpi -display none -device virtio-net,netdev=n0 -netdev tap,id=n0,ifname=tap0,script=no,downscript=no -device isa-debug-exit -kernel conduit_server.virtio

# FIXME
# * Need to change TFB-Server to 10.0.0.2 in /etc/hosts, hostfwd doesn't seem to work with qemu tap network config
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using qemu may introduce latency for every lookup of TFB-Server, but I am unfamiliar.

@NateBrady23
Copy link
Copy Markdown
Member

@ciarancourtney Going to close this for now since it's getting stale. If you're able to address any of the reviews, or have any questions please feel free to re-open and continue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants