Closed djwillia closed 8 years ago
The current structure of mirage-platform for Xen (the only non-UNIX target) looks like this, in dependency order with leaf packages omitted:
minios-xen: Mini-OS kernel
mirage-xen-minios: Openlibm interfaces needed by OCaml runtime
mirage-xen-posix: libc and POSIX interfaces needed by OCaml runtime
mirage-xen-ocaml: OCaml runtime
mirage-xen: Mirage/Xen platform bindings
Having thought about the structure for Solo5, I've come up with the following:
solo5-kernel-XXX: Solo5 kernel
mirage-solo5-runtime: All interfaces needed by OCaml runtime
mirage-solo5-ocaml: OCaml runtime
mirage-solo5: Mirage/Solo5 platform bindings
In the new structure, mirage-solo5-runtime
would be a roll-up of all interfaces needed to run the OCaml runtime atop a Solo5 base. This would include libm, libc and POSIX bits.
Rationale: As a future step, I would like to arrive at a mirage-freestanding-runtime
and mirage-freestanding-ocaml
with clear interfaces which can be re-used by other non-UNIX Mirage targets. Notably, this would also allow the existing Xen target to be migrated to use the same "freestanding runtime" packages as Solo5 thus reducing duplication of code which is a good thing.
Update from yesterday's discussion on Slack:
the naming can change, but I think we agree on the functions:
solo5-kernel-xxx
: solo5 kernel with no posixy interfacessolo5-ocaml-runtime
: ocaml runtime and all posixness to make it run on solo5-kernel-xxx (but no mirage)mirage-solo5
: mirage bindings, stubs, etc that can run on ocaml runtime
I've also asked for input on the mirageos-devel list: http://lists.xenproject.org/archives/html/mirageos-devel/2016-05/msg00021.html
@djwillia This is now fixed, can we close the issue?
The mirage-platform (which produces mirage-solo5, mirage-xen-posix, etc.) has lots of dependencies on minios even when being compiled for Solo5.