[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] ANN: mirage-0.9.1 series released
I've released a big Mirage 0.9.1 refresh into OPAM that integrates the following major changes to the build system, as discussed in earlier threads. https://github.com/OCamlPro/opam-repository/pull/793 TLDR; simpler, faster and more extensible build, and the unikernel UNIX backend integrated. -- The old build system would install Xen/UNIX or socket/direct networking stacks using environment variables to control which library was installed. This is now handled directly in OPAM by adding specific packages (mirage-unix/mirage-xen) and a virtual package (mirage) that depends on either one of them. This means that you can, using any 4.00+ compiler, specify the backend that you'd like to use as OPAM packages for your platform selection. $ opam install mirage-unix mirage-net-direct mirage-www # this will give you a unix-direct web server $ opam install mirage-xen mirage-www # this gives you a xen kernel, since mirage-net-socket conflicts # with mirage-xen and so mirage-net-direct is the only valid choice. $ opam install mirage-xen mirage-net-socket # this will correctly conflict since it's an invalid choice opam install mirage-xen mirage-net-socket Package mirage-net-socket is already installed (current version is 1.0.0) Your request cannot be satisfied. The reasons are: mirage-net-socket.0.9.1 is in conflict with mirage-xen.0.9.1. (and) mirage-net-socket.1.0.0 is in conflict with mirage-xen.0.9.1. 'opam install mirage-xen mirage-net-socket' failed. The mirage-xen/mirage-unix still install a single "mirage" ocamlfind package, and similarly the mirage-net-direct/mirage-net-socket still install a "mirage-net" ocamlfind package. This means that applications can just specify that in their dependencies. Thanks to Vincent Bernardoff's high quality patchset, I've also merged in his UNIX tuntap patches. These make the UNIX unikernel a standalone process that receives instructions from a master process. This lets us treat the process in the same style as a Xen kernel, by sending it instructions to start/stop/suspend/etc. The final piece of the puzzle was to not require a custom Bigarray library, since the UNIX version had a reference to mmap in it. David Scott fixed this by simply adding an mmap stub into the Xen runtime. Nice and simple, and we no longer need to patch the standard library. There's still a lot more work to be done on Mirari, but the overall system we have now should be stable enough to build multiple backends in much more easily. Specifically, we should be able to put Gabor Pali's kFreeBSD work in this summer, and also more easily work on the Javascript one. Thanks especially to Vincent and Dave, we're properly on the path to a stable release now! We still need to update the instructions on mirage-www (Vincent offered to look at this) and tidy up Mirari and add block support. If you want to mess around with the new scheme before the instructions are updated, just do "opam update && opam upgrade && opam install mirage-www" to get the latest dependencies. -anil
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |