Resources

Course materials and helpful links

Course Materials

Textbook

Operating Systems: Three Easy Pieces
by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau

Free online textbook covering all major operating system concepts with clear explanations and practical examples.

Development Environment

Ubuntu VirtualBox VM

Pre-configured Ubuntu virtual machine with all necessary tools and libraries for course assignments.

Course Code Repository

GitHub Repository

Complete source code for all course materials, including: - Lecture examples and demonstrations - Lab exercises and solutions - Assignment starter code - Useful utilities and tools

Local Code Examples

Code Examples

Local directory containing all code used in lectures and labs: - Process API examples (fork, exec, wait) - CPU scheduling simulations - Memory management programs - Threading and synchronization examples - I/O and file system utilities

Video Lectures

Complete Course Playlist

YouTube Playlist

All 35+ lectures covering the complete operating systems curriculum.

Supplementary Videos

Additional Reading

Classic Papers

Online Resources

Programming Resources

C Programming

System Programming

Tools and Utilities

Development Tools

  • GCC: GNU Compiler Collection
  • GDB: GNU Debugger
  • Valgrind: Memory debugging and profiling
  • Make: Build automation tool

System Monitoring

  • htop: Interactive process viewer
  • strace: System call tracer
  • perf: Performance analysis tool
  • top: System resource monitor

Virtualization

  • VirtualBox: Desktop virtualization
  • QEMU: Machine emulator and virtualizer
  • Docker: Container platform

Project Ideas

Open Source Projects

  • xv6 - Simple Unix-like OS for teaching
  • Minix - Microkernel-based OS
  • seL4 - High-assurance microkernel

Practice Platforms

Community and Support

Forums and Communities

Course Support

  • Office Hours: Weekly sessions with instructor and TAs
  • Discussion Forum: Course-specific Q&A platform
  • Email Support: Direct contact with teaching staff
Study Tips
  • Read the textbook chapters before lectures
  • Practice coding regularly, not just before assignments
  • Join study groups and discuss concepts with peers
  • Use multiple resources to understand difficult topics