Please use the OSDI 2018 template
for writeups.
Teams
Proposal
Form a group of 4–5 people.
For the proposal, describe:
- a cool name for your group/project,
- the problem,
- why it is important and interesting,
- what might be challenging,
- what you plan to do, along with tentative timeline.
Make sure everyone’s name and email of your group are included.
Submit a writeup in PDF (at most 2 pages).
Each group only need to submit one copy.
Milestone reports
For the milestone reports,
briefly describe your progress,
which would be useful for your final project report.
- milestone report I: include related work and initial design.
- milestone report II: include preliminary results.
Submit a milestone report of your class project in PDF.
Make sure everyone’s name and email of your group are included.
Each group only need to submit one copy.
Final report
Write a final report for your project
based on your proposal and milestone reports.
The final report should be self-contained.
Describe in details the problem, why it is important and interesting,
challenges, related work,
the design and implementation of your system,
experimental results, and lessons learned.
Make sure everyone’s name and email of your group are included.
Submit a writeup in PDF.
Each group only need to submit one copy.
Example: Porting Hyperkernel to the ARM Architecture, by Dylan Johnson
Ideas
Try to make sure your goals are reasonable; perhaps set a minimum
goal that’s definitely achievable and a more ambitious goal if
things go well.
Here’s a list of ideas to get you started thinking. Feel free to pursue your own ideas.
- Run two (or more) guest OS kernels in lvisor.
- Run lvisor inside lvisor (nested virtualization).
- Boot Linux as a guest OS in lvisor. You may also choose other kernels (e.g., xk).
- Port lvisor to AMD CPUs, or to other architectures (e.g., ARM or RISC-V).
- Add multicore support to lvisor.
- Add IOMMU support to lvisor.
- Emulate an IDE disk in lvisor for xv6, or implement VirtIO support in lvisor.
- Contribute to QEMU. Take a look at the GSoC 2017 page.
You may also consider adding nested paging to QEMU/TCG
or more IOMMU features.
- Do something useful using Intel SGX or AMD SEV, or write an emulator - see OpenSGX.
- Add visualization support, for example, using D3 or Vega
to visualize interesting part of the system (e.g., memory usage, page tables, VM-exits).
- Run lv6 or lvisor in a web browser - see JSLinux and v86.
- Extend lv6. For example, add memory management, port the xv6 file system to lv6, or add
network support. Or write your own kernel from scratch.
- Add container support to lv6 or xv6.
- Implement a unikernel or port the rump kernel.
- Implement ideas from Overshadow,
CloudVisor,
Dune,
Arrakis,
Hyperkernel,
or any paper you like.