Speculative OS

Your first full assignment, due March 1, is to write a brief, speculative paper on a new “architecture” for an operating system or OS subsystem.

Your work should live somewhere in the space between research and science fiction. Aim to follow the basic outline of a research paper, minus implementation and evaluation. The architecture need not be brand new to the world, but it should be new to you.

Alternately, you may write a brief, speculative paper that explores a problem with today’s computer systems that might benefit from a better OS or subsystem. This class focuses on operating systems, but any large software system is a valid subject: Web servers, databases, browsers, etc.

Aim for at least 2,500 words, which is roughly 3 pages of 10-point two-column text. If using LaTeX, try the acmart package; use \documentclass[sigplan]{acmart}.

The ideal paper will demonstrate grounded wild speculation, where “wild” means you brainstormed enough to come up with a biggish idea, and “grounded” means you thought through some of the consequences of that idea. It would be difficult to complete this assignment in a day: you want to give your mind time to do both the brainstorming and the grounding.

Collaboration on the brainstorming piece is welcome, but everyone writes their own paper.

Potential outline

Consider using this high-level outline as a guide for your work.

  1. Title, possibly including the name of your system. Go broad—puns, jokes, obscure references to important books from your youth.

  2. Abstract (optional). A couple paragraphs that lay out the main argument of your operating system. First, give a brief motivation: a few sentences about what’s wrong with current systems, or future developments that will cause problems for current systems. Then, describe in brief the core ideas of your system.

  3. Introduction. The first several paragraphs of a speculative operating system paper often describe the degraded dystopia into which today’s systems have sunk. Identify a problem, pain point, or issue with current systems and explain its consequences. Then describe how these issues could be solved by a different system architecture. Usually a figure will help.

  4. Design. Explain at a high level how your system architecture or subsystem architecture might work. Is there an important missing abstraction around which you believe operating systems should be built?

  5. Discussion. No new system architecture will solve all problems. What might hold back the development and deployment of your proposal? How might current system architectures be better?

  6. References. You should do a literature review and cite several papers throughout, though a full related work section is not required.

I would try to write the introduction first; titles and abstracts often come last.

Potential directions

As you consider this assignment, it may be useful to consider how previous researchers have come up with new operating system architectures. Here are some examples.