Hardware Ordering and Information
One of the big challenges of OS development is to get your code to work on real hardware. Emulators like QEMU are helpful for development and debugging, but they do not always behave like real hardware. Real hardware is stricter about certain bugs (e.g., memory alignment issues), has weird quirks (e.g., requires different timing parameters or special MMIO operations), and runs at a different speed than the emulator. We want you to be able to experience this aspect of OS development in this course, so all students will run their OS on a real Raspberry Pi 3B at some point.
You are welcome to buy your own hardware if you want, but you do not have to. That said, owning a Raspberry Pi 3B+ is a great way to get more experience with the hardware and to be able to work on your OS outside of class, including showing it off to friends and family.
Hardware Needs
Depending on whether you are taking CS 1670 or 1690/2670, you will work with hardware in different ways.
| Course | Hardware Use |
|---|---|
| CS 1670 | You will run your OS on a Raspberry Pi 3B provided by the course staff on occasion, but you do not need to purchase any hardware. If you want to regularly run your OS on real hardware, you can order your own Raspberry Pi and peripherals (~$60, see below). |
| CS 1690 and CS 2670 | We will provide you with hardware for the course, which you must return intact before the end of the semester. You will not receive a grade until you have returned the hardware. Update, 9/14: Due to high demand for the lab, some students may need to share their hardware with another student. Please buy your own if you can to help us ease pressure. |
In general, we will expect CS 1690 and CS 2670 students to work with the hardware more often than CS 1670 students, but all students will have the opportunity to test their OS on real hardware.
Buying Your Own Hardware
To work with hardware, you will need to acquire a Raspberry Pi 3B+, as well as some peripherals (power supply, microSD card, and a TTL-to-USB serial cable).
⚠️ Warning: There are many resellers on Amazon who sell Raspberry Pi computers and kits for vastly inflated prices. Do not fall for these; the Raspberry Pi 3B+ is only about $39. The Raspberry Pi Foundation has a list of official suppliers, and you can also find the Pi at reasonable prices at places like DigiKey or Mouser. We recommend buying from one of these suppliers to avoid overpaying.
You can also buy a Raspberry Pi 3B (without the “+”), which will work fine too. Do not buy a Raspberry Pi 4 or 5, as these use different chips that will require writing different code for your OS.
Here is the kit we recommend, based on what students in CS 1690/2670 will use:
- Raspberry Pi 3B or 3B+, 1 GB RAM – about $35-39. Buy from official suppliers.
- Micro-USB power supply, 5V 2.5A – about $10. Buy from official suppliers. Other micro-USB power supplies may work, but we recommend using the official one to avoid issues when the power supply provides insufficient power.
- USB-to-TTL serial cable – about $15. Buy from Amazon.
- Optional (if you don’t have one already): MicroSD card, any size above 128 MB – about $5. Buy from Amazon.
- Optional (if you don’t have one already): USB microSD card reader – about $5. Buy from Digikey or Amazon. Any reader should work.
- Optional: A case for the Raspberry Pi to protect it. Buy from Adafruit or Digikey.