π General
π οΈ Software and Other Resources
- Virtual Machines (software to virtualize entire computer systems)
- For Windows users with an Intel/AMD chip:
- VirtualBox
- WSL (technically not a virtual machine)
- Hyper-V
- For Mac users with an Intel or Apple Silicon chip:
- UTM (recommended)
- VirtualBox
- VMware Fusion
- For Windows users with an Intel/AMD chip:
- Linux: An open-source operating system (Note: If you are on a 64-bit x86 Intel/AMD machine, download the x86_64 version of Linux. If you are on an ARM machine such as Apple Silicon, download the aarch64 version of Linux)
- Fedora Linux (I recommend the latest version of the βWorkstationβ version, and find that Fedora works best when virtualizing with something like VirtualBox or UTM)
- Ubuntu Linux
- Other flavors
- Cyberduck: For moving files to/from servers like Picocluster
- Linux Setup Instructions: In case you want to install a full copy of Linux on your own computer
- How To Run the Textbook Code: Instructions for compiling and running C code
- PicoCluster Tutorial: Instructions for connecting to PicoCluster
π Tutorials
C
Linux Command Line
Terminal-Based Text Editor
πΊ Videos
- Coming soon
π Study Guides
π§© Projects
π₯οΈ Simulators/Code
π Course Schedule
| Week | Date | Topics | Due |
|---|---|---|---|
| 1 | Feb 3rd (Tuesday) | Course Introduction, PicoCluster, The Linux OS For next time: Read the syllabus, log in to PicoCluster and familiarize yourself with Linux, and get the textbooks. |
|
| Feb 5th (Thursday) | Installing Linux For next time: Familiarize yourself with Linux. Make sure you have access to Linux (either via PicoCluster, UTM, VirtualBox, WSL, VMware Fusion, etc.) |
||
| 2 | Feb 10th (Tuesday) | Introduction to Operating Systems, The Linux Command Line For next time: Read the first two chapters of OSTEP. Continue familiarizing yourself with Linux, install CyberDuck on your own computer, download the code from the book and move it over to PicoCluster (or whatever virtual machine you are using). Start reading Linux Pocket Guide (Chapter 1). |
|
| Feb 12th (Thursday) | Processes For next time: Make sure to have read Chapters 1 and 2 in OSTEP, and now start reading Chapters 3 and 4. Project 4S is now posted. |
|
|
| 3 | Feb 17th (Tuesday) | Process API For next time: Finish reading Chapters 3 and 4, and start reading Chapter 5. Continue reading Chapter 1 of LPG. Project 4S is now posted. |
|
| Feb 19th (Thursday) | Direct Execution For next time: Read Chapter 6 in OSTEP. Finish reading LPG (Chapter 1). Project 5S is now posted. |
|
|
| 4 | Feb 24th (Tuesday) | CPU Scheduling For next time: Start reading Chapter 7 in OSTEP. Finish Project 5S. |
|
| Feb 26th (Thursday) | Multi-Level Feedback Queue For next time: Start reading Chapter 8 in OSTEP. Project 5C is now assigned. Project 5C is a coding project, and you will need to compile real C code on Linux. Remember to use the examples from the chapter as a template. |
|
|
| 5 | Mar 3rd (Tuesday) | Address Spaces / Memory API For next time: Exam 1 is on March 12th. Read Chapters 13 and 14. |
|
| Mar 5th (Thursday) | Review for Exam 1 |
|
|
| 6 | Mar 10th (Tuesday) |
|
|
| Mar 12th (Thursday) | Exam 1 | ||
| 7 | Mar 17th (Tuesday) | ||
| Mar 19th (Thursday) | |||
| 8 | Mar 24th (Tuesday) | SPRING HOLIDAY - NO CLASS | |
| Mar 26th (Thursday) | SPRING HOLIDAY - NO CLASS | ||
| 9 | Mar 31st (Tuesday) | ||
| Apr 2nd (Thursday) | |||
| 10 | Apr 7th (Tuesday) | ||
| Apr 9th (Thursday) | |||
| 11 | Apr 14th (Tuesday) | ||
| Apr 16th (Thursday) | |||
| 12 | Apr 21st (Tuesday) | ||
| Apr 23rd (Thursday) | |||
| 13 | Apr 28th (Tuesday) | ||
| Apr 30th (Thursday) | |||
| 14 | May 5th (Tuesday) | ||
| May 7th (Thursday) | |||
| 15 | May 13th (Wednesday) | Final Exam (3:00PM - 5:30PM) |