From XOmB wiki
Jump to: navigation, search

second versioned release as a uniform starting point for 1651

  • userspace thread & child-process scheduler
    • when to ask parent for more CPUs?
    • page reclamation after exit
  • userspace interrupt handling
    • NIC support (e1000, ne2k or virtio)
    • timer support for adding preemption to the userspace scheduler

Bonus Features

  • complete libC stubs for fseek/fstat/stat/link (everything is ready on the D side)
  • add commandline utilities to app/d/posix, particularly diff and a pager (less)
  • garbage collector for the dynamic D runtime (dyndrt)
  • separate segments for code, read-only data, rw data/bss, and bottle with appropriate permissions
  • use the cpu flag to enforce read-only permissions in kernel mode
  • some ipc primitives
  • shell pipe operator
  • shell background execution
  • boomstick for build automation
  • boomstick for easier setup of development environment
  • encapsulate linux NIC, (SATA and GPU) drivers for userspace use in XOmB

Optimization Opportunities

  • speed up executable launch - only copy or cow read/write global data
  • lockfree page allocator in kernel
  • lockfree pagetable modification code

publication possibilities (partners welcome :)

  • time SPEC2006 benchmarks and compare to linux
  • postmark and FS benchmarks to compare to linux ramfs and MSR pcm fs
  • PCM wear leveling trick evaluation from wolfwood's features/pcm branch
  • XOmB for ubicomp and XOmB for cloud position papers
  • compare an explicit page deallocation model with page-table Garbage Collection
  • CoW without ref-counts?

Related articles

Things we'd like to port

Class Project Ideas

  • Project Ideas Slides
  • port llvm to UltraSPARC or MIPS64
  • port XOmB to UltraSPARC or Loongson low-power CPU (MIPS64)
  • security/reliability/error-handling audit
  • XOmB optimized servers -- key-value store, database, webserver, etc.
  • compare ease of implementation vs. performance on XOmB and Linux
  • port language environments (runtimes/VMs) to XOmB... llvm, haskell, java, ruby, etc.
  • tweaked libOSes for a particular environment (realtime, server, multimedia, desktop, embedded?)
  • native drivers -- NIC, SATA, etc.