This is not the current version of the class.

# Section 1: Kernel Extensions

Note that section is mandatory! You will be expected to understand the material that we cover in section.

In the first section, we'll discuss kernel extensions. Kernel extensions allow an operating system to dynamically incorporate new code and data. Using extensions, a small base kernel can define core functionality (e.g., virtual memory management), and selectively incorporate additional functionality that is necessary for the local machine. For example, an OS might load an extension to deal with a particular kind of device that exists on the local machine.

## Preparation

Here's what you should do before section:

1. Read this paper from HotOS 2019 (local copy)!
• Section 4.1 of the paper says that the void* data argument to romfs_fill_super() is "difficult" and "completely opaque." Explain in your own words why the void* data argument is problematic.