Simplified the input-thread of storage. Previously we had to check multiple consumers for keystrokes. Now there is only one, so that there is no sense in using the timer and so on ;)
Now we pass a adjusted Hip to childs and have a ChildConfig.
That is, childs only get listed the modules in their Hip that
they should see. This is controlled by the ChildConfig, which
is supposed to specify what a child is allowed to do and what
not. So, in the future things like memory, service-usages and
so on will follow. This config should be read in from some
kind of config-file in the end.
Started to build the vm-manager
Fixed a tricky bug in timer :)
The viewswitcher shouldn't assume something about the old session
Instead, we should just ignore it, if its not the expected one.
Because in this case, there is nothing to do anyway.
Simplified the producer and consumer
It was not really bulletproof and since its not intended and
used (anymore) for performance-critical stuff, I think we
should keep it simple until it gets a problem. That is, we
always notify the consumer when new data is available and
the producer does not block until the consumer is ready to
accept new data, but it simply skips the data.
Fixed qemu-invocation for the case when QEMU_FLAGS is empty
Changed the navigation of console and introduced console-titles
Previously, one could switch with up and down between different
VGA pages and each session gets its own VGA-screen. This is not
really nice for the VMs because they get basically a random
console. Now we have a fixed number of consoles and each
session chooses to which consoles it should be attached.
With up/down we can navigate through the subconsoles in a
console and with left/right we can navigate through the
consoles. This allows us to put all management stuff into
console 0, use console 1 for VM 1, console 2 for VM 2 and
so on. This makes it much more predictable for the user.
Made color in ConsoleStream selectable and added position-getter
Improved the interface and configurability of ChildManager
Improved the keyhandling in console service
A few formatting fixes in vancouvers vcpu
The vmmng app is finished for now
We see the configurations and running VMs and we can start,
reset and kill VMs.
Bugfix in ObjCap. Of course we can't use the 2 MSBs in INVALID
Now we close sessions when clients die.
This works by giving each service a semaphore on service-
registration and up'ing it when a child of the parent died.
Additionally, to open a session you have to delegate some
cap to the service. It looks that cap up to see if the
client is still alive. Currently we have to pass a cap
that is explicitly revoked by the parent (we use the pd),
because NOVA doesn't revoke all caps of a Pd on a Pd revoke.
As soon as it does that, the client can't prevent the
session from being destroyed when he dies.
Added tracking of who owns a dataspace
Extended sysinfo to display the childs of root.
This way we can see who requested what amount of memory and
so on.
Fixed b script for bochs (insert created iso)
Changed colors of sysinfo-pages.
Bugfix in root: we need an own Ec for portal_ds
Otherwise all portals that use the same Ec can't allocate
memory on the heap, because the heap might request more
memory as a dataspace. thus, we would call ourself.