The goal of this assignment is to be able to compile and boot the Linux kernel on the qemu machine emulator. If you have never built or installed a kernel before THEN START THIS ASSIGNMENT EARLY. It can take a long time.
Download the latest Linux kernel release from kernel.org. Configure and build the kernel with no modules. This document can help.
Boot the Kernel, and run dmesg to capture the kernel output from the boot. In your writeup, for each device, quote the parts of the dmesg output that show the kernel discovering that device, and then report what kind of device it is, and how you made your determination.
Figure out some way to time the boot.
Now, reconfigure your kernel to use as many modules as you can. Try to support each device by a module. Try to make the driver for your boot disk a module. Run dmesg and report if the discovery of any devices have changed. Describe which modules you used in your report. Note that in your report you can edit the output of dmesg for clarity.
Finally, report the performance of the module-heavy boot versus the original boot. Report any other metric you think indicates how much more "complicated" was the module-heavy boot. /proc/meminfo might be useful.
Please think of your report like the papers we are reading for the class. Organize the information that you gathered and present it logically. For example, early in your report specify your experimental platform, including the hardware, the OS, whether you are running qemu or a hypervisor, etc. Include anything relevent to understand the results, but keep your description concise. Of course balancing completeness and concision is difficult, but that balance is generally well accomplished by the (modern) papers we read.
Please report how much time you spent on the lab.