From XOmB wiki
second versioned release as a uniform starting point for 1651
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 supportfor adding preemption to the userspace scheduler
- 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
- 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?
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.