-*- Mode: Outline -*-

* Demos
  - VM: dope, scout, fbcon, xserver, skype
  - nethack/slashem
  - tetris

* Usability
 - command language/shell
 - improve vmm command line arguments
 - C-friendly syscall bindings
 - move VMM to end of guest memory
 - framebuffer view of different VMs or nitpicker

* VMM Models
 - HPET
 - USB pass through
 - Sound
 - unneeded: 1394, TPM, BT, FDC, ISADMA, SCSI, IDE, 3D Graphics, USB models

* VMM fixes
 - VBIOS
   - clear VGA memory on reboot to avoid showing garbage
   - copyin/out for x86emu
   - PCI routing tables and PNP
 - rework MemRegion interface
 - instruction emulator
   - iret/longjmp
   - task switch
   - iopbm
   - catch #NE
   - VMXON (causes GP instead of UD?)
 - ACPI
   - fixed registers
   - DSDT

* Sigma0
  - external services - one portal per service
  - provide service on many CPUs
  - virtual PCI bus per domain
  - get files to boot from disk
  - multithreaded booting
    - have a thread pool that executes param-functions in parallel
    - synchronization of different parameters via barrier / wait
    - logging: log to tracebuffer and show only filtered output
      - filtered after time
      - filtered after parameter
      - change filter per key and per cmdline for serial output
* HV Features
  - kill domain           -> full restart possible
  - unmap                 -> direct FB mapping and join-pages
  - timeslice local timer -> CPU local efficient
  - multiple VMs          -> nested virtualization

* Drivers
  - Driver PDs. Interface?
  - ATAPI support
  - Linux driver VMs without IO-MMUs

** USB
  - EHCI/OHCI/UHCI/XHCI
  - USB passthrough
** USB HID
  - USB keyboard and mice speak a simplified BOOT protocol, normally used by the BIOS
  - need UHCI/OHCI low level drivers to scan the bus and request keycodes
  - should allow to get rid of legacy USB support and its SMIs

* Disk
 - Buffer cache
 - partition support
 - volume management?
 - backing store in filesystem
 - CoW disk
 - disk scheduling
 - SR-IOV AHCI
 - iSCSI/SBP-2/network block device as backing store

* Network
 - e1000 and rtl8139 driver
 - IP over 1394
 - TCP/IP stack (uIP6)
 - optimized software switch (zero copy)
 - PXE booting
