Seminar week 2: Booting for real
Overview (and group/room assignments)
For this week’s seminar, you will learn more about the bootup process. Booting is inherently architecture-specific, so the details different significantly between different computers and machine architectures. To gain a broad understanding, we will split the class:
- Those with first names starting A-Je will become experts on the Intel x86-64 boot process; and
- Those with first names starting Jf-Z will become experts on the Apple Silicon (ARM64) boot process.
In the seminar, the two groups will explain their learning to each other.
Room assignments: We will also divide the class into two separate rooms for discussion:
- If your Banner ID ends in an even number (or zero), you will go to Salomon 003
- If your Banner ID ends in an odd number, you will go to CIT 368
Assigned work: Each weekly seminar will generally assign some readings or other work for you to prepare for in-class discussions. You should complete the prep work before attending seminar each week; once you do, you’ll submit a brief response in a form, along with any questions you have (link below). In general, your responses will be due 11:59pm the day before the seminar, in this case, Thursday, September 17 at 11:59pm.
Readings
The documents we’re giving you to read are the real deal: they hide nothing and tell you everything there is to know. As a result, they are complex and you won’t understand every technical term or concept there. That’s totally fine! Reading technical documents that sometimes fly over your head is an important skill in real-world OS engineering, and you’ll probably get more from this than you think. When you read the documents, try to focus on the high-level points and take notes on what you’re confused about, but feel free to ignore parts that make no sense. We’ll cover what’s important in the discussion.
x86-64
Read the OSdev wiki page on x86-64 system initialization, which describes the initial boot process: this article covers the part from when the hardware starts up until the bootloader runs.
Then, read the OSdev page on the Master Boot Record (MBR), specifically the sections labeled “MBR Bootstrap” and “Building a Custom MBR Bootstrap Program” (the other sections contain detailed discussion of things like hard disk partitions, which aren’t too important to our discussion).
In addition, we recommend checking your understanding against an AI summary, based on your current background, after reading the sources. Here’s a prompt that we recommend:
Explain to me the bootup process on x86-64 until the OS kernel runs. Assume that I am a student in an OS course who has completed an introductory systems course like https://csci0300.github.io/, and use terminology that is accessible to me.
Apple Silicon
Read this Asahi Linux blog post on the Apple Silicon bootup process up (but not including) to the section labeled “The road to penguins”.
This was written by people who wanted to make Linux work on Apple Mac computers, so it on occasion refers to “m1n1” and “Asahi Linux”; these are their specific goals, rather than general concepts. As you read the article, focus on the key parts that the article explains are special to Apple’s design.
In addition, we recommend checking your understanding against an AI summary, based on your current background, after reading the article. Here’s a prompt that we recommend:
Explain to me the bootup process on Apple Silicon, based on this blog post: https://asahilinux.org/2021/03/progress-report-january-february-2021/ and other sources. Assume that I am a student in an OS course who has completed an introductory systems course like https://csci0300.github.io/, and use terminology that is accessible to me. Don’t focus on the part that is about booting Linux, but keep it general.
What you should turn in
By Thursday, September 17 at 11:59pm, fill out this form with brief responses to the following questions:
Sketch the boot process, at a high level, on the architecture we assigned you, in your own words. This needs to not be long (not more than a page), but must be your own writing, not AI-generated.
Please ask us a question about the boot process you read about, or about booting in general.
Once again, your goal is not to understand every detail, but to begin parsing some technical documents based on what we’ve seen so far. We’ll use this, and your questions, as a starting point for our discussion.