|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [MirageOS-devel] Structure of mirage-platform for Solo5
Hi,
Together with Dan Williams we're working on getting the Mirage/Solo5
bindings into mergeable state. Part of this process is figuring out what
the structure for mirage-solo5 (the "platform bindings") and its
dependencies should be.
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 (asmrun) runtime
mirage-xen: Mirage/Xen platform bindings
For Solo5, we'd like to simplify the structure to something like this:
solo5-kernel-XXX: Solo5 kernel with no POSIXy/libc interfaces
solo5-ocaml-runtime: OCaml runtime and all libs it needs to run on Solo5
mirage-solo5: Mirage/Solo5 platform bindings
The "XXX" in the solo5-kernel package refers to the different Solo5 targets
(virtio/qemu and ukvm).
solo5-ocaml-runtime is essentially a roll-up of mirage-xen-minios (which is
just another name for Openlibm), mirage-xen-posix and mirage-xen-ocaml into
a single package.
The rationale behind this structure is threefold:
1) It has explicit contracts defining which interfaces each layer
provides/depends on. Further, by not providing a separate "posix" package,
we discourage adding more C code to support "random bits of POSIX native
library X might need" which encourages the use of pure-OCaml libraries in
Mirage.
2) I don't see a need for other OPAM packages to consume the posix and
openlibm interfaces separately. These exist only to support the
freestanding OCaml runtime. There's nothing Mirage-specific in this
package, it is a freestanding build of asmrun on Solo5 interfaces, hence
the name solo5-ocaml-runtime rather than mirage-solo5-ocaml.
3) I would eventually like to produce a "retargetable" freestanding OCaml
runtime which would be shared by the Xen, Solo5 and other future non-UNIX
targets. However, the first step is to get Solo5 upstreamed.
Thoughts? Are there any showstoppers with the proposed structure? Is there
a reason I've missed for the xen-ocaml / xen-posix split in
mirage-platform?
Martin
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |