Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Operating Systems

English | 简体中文

Overview

Understanding how operating systems manage hardware resources, provide abstractions for programs, and enable concurrent execution. Covers processes, threads, scheduling, memory management, file systems, and system-level programming.

Prerequisites

Required:

  • Computer Architecture - Understanding CPU and memory operation is essential for OS concepts
  • Programming - Strong programming skills, especially in low-level languages

Recommended:

  • Algorithms and Data Structures - Many OS components use sophisticated data structures

Programming Languages

  • C (Intermediate to Advanced) - Operating systems are typically implemented in C; understanding OS internals requires C proficiency
  • Assembly (Beginner) - Helpful for understanding system calls and context switching

Recommended Resources

Textbooks

  • Operating Systems: Three Easy Pieces by Remzi and Andrea Arpaci-Dusseau

    • Modern, readable treatment of OS concepts
    • Structure divided into three conceptual pieces: virtualization, concurrency, persistence
    • Excellent writing and exercises
    • Level: Intermediate
    • Available online
  • Operating System Concepts (Dinosaur Book) by Silberschatz, Galvin, and Gagne

    • Comprehensive reference, though criticized for readability
    • Level: Intermediate
    • Use as supplementary reference if needed

Video Lectures

Berkeley CS 162 - Operating Systems

  • Institution: UC Berkeley
  • Platform: Berkeley course site / YouTube
  • URL: Course site
  • Description: Comprehensive OS course covering processes, threads, synchronization, memory management, file systems
  • Pairs well with OSTEP textbook

Online Resources

Exercises

Practice Problems

  • Source: OSTEP homework and projects

  • Difficulty: Intermediate to Advanced

  • Estimated time: 100-200 hours

  • Topics: Process scheduling, concurrency, memory management, file systems

  • Source: xv6 labs

  • Difficulty: Advanced

  • Estimated time: 50-100 hours

  • Topics: Implementing OS features in a real (small) operating system

Projects

  • Read and understand xv6 source code
  • Implement additional features in xv6 (system calls, scheduling policies, file system enhancements)
  • Complete OSTEP projects (simulation and coding)

Study Notes

[Personal notes and key insights can be added here during study]

Progress Tracking

  • Completed OSTEP (or equivalent textbook)
  • Watched Berkeley CS 162 lectures
  • Finished OSTEP homework assignments
  • Explored xv6 source code and labs
  • Review and reinforcement