Extensions to HVM ROS userspace library corresponding to HVM enhancements - ability to mirror/unmirror GDT and other segment state from ROS process to HRT - ability to handle HRT events forwarded to ROS (syscalls, page faults, exceptions) - corrections to stack alignment issue in HRT->ROS signals - log file selection
HVM Enhancements + Bug Fixes - a ROS->HRT GDT merger facility is now available (this is used by Multiverse) - upcall mechanisms are now selectable at build-time - hypercalls are (temporarily) acquiring a lock - HRT->ROS event (signal) mechanism is enhanced with additional state to avoid race conditions between an event completion, startup of a new event, and fetching the result value from the previous event - HRT->ROS event injection now starts with a 16-byte aligned stack (important for SSE) - other general cleanup
Further text-mode console client enhancements - cleanup of color handling in both curses clients - v3_cons_tc cleanup for function key, etc, handling - v3_console selects the better of _tc and _sc depending on which have been built in the instalation
Revised Nautilus Aerokernel Host Functionality - use of current allocator - use of enhanced virtual console - support for multiple VMs
Nautilus Host Support (proof of concept) This is a simple proof-of-concept implementation of the Palacios host interface on top of the Nautilusi kernel. It is sufficient to allow us to boot a guest OS running Linux. There are several caveats which can be seen in the comments.
Linux user updates for more recent distros (Ubuntu 14.04 as target) These are minor compilation tweaks to avoid scary warnings and to break the assumption that /bin/sh == /bin/bash
Linux kernel compatability enhancements (through 3.19) and other bug fixes
HVM capability enhancement: asynchronous upcalls to ROS userspace This adds the ability for the HRT, ROS, or other component of the VMM to send what looks like a "user interrupt" (e.g. signal) to a process running in the ROS. This mechanism looks similar to signals: the ROS process installs a handler and stack (our library hides the details), the VMM then dispatches to the handler by switching stacks, building what looks like a CPL 3 -> CPL 3 interrupt frame (with error code) on the selected stack, and then points rip to a userspace wrapper that handles register save/restore + iret, wrapping around a call to the user's handler. Whoever raises the signal supplies the error code, which is then coerced into an argument for the user's handler. Only a single process in the ROS can register a handler at a time. The context includes not only the stack and handler function, but also the CR3 extant at registration time, and CPL 3 at injection time.
HRT image replacement from ROS application This adds the capability for a ROS application to dynamically replace the HRT image within the HVM. Combined with HRT boot and other capabilities, this allows the ROS to essentially fork and exec an HRT that operates over its address space.