About This Route

Central question: How does an operating system support a program while it is running?

This route explains the operating-system support layer around running programs. A running program is not just machine instructions executing on a CPU. It is an operating-system-managed process with memory, CPU scheduling state, open resources, permissions, threads, communication channels, and observable lifetime.

The practical vocabulary uses Unix/Linux concepts where they expose the model clearly, but the core idea is broader: the operating system manages the shared machine resources and privileged operations around running programs.

Contents

  1. What Does an Operating System Support When a Program Runs?
  2. Processes as OS-Managed Running Instances
  3. Virtual Memory and Process Address Spaces
  4. Pages, Protection, and Memory Mapping
  5. System Calls as the Boundary Between Program and Kernel
  6. Files, File Descriptors, and Open Resources
  7. Input and Output: From Program Calls to Devices
  8. Scheduling: How Programs Share the CPU
  9. Threads Inside a Process
  10. Synchronization and Waiting
  11. Process Creation and Program Replacement
  12. Signals, Exit Status, and Process Lifetime
  13. Pipes, Sockets, and Interprocess Communication
  14. Networking as OS-Managed Input and Output
  15. Permissions, Users, and Isolation
  16. Diagnosing Running Programs Through OS State
  17. Final Mental Model: Program, Process, Kernel, and Machine

Reading Path

Read the notes in order. The path starts with the operating system’s support role, then separates executable files, processes, address spaces, memory mappings, system calls, files, I/O, scheduling, threads, synchronization, process lifetime, communication, networking, permissions, and diagnostics.

What You Will Understand

  • A process is a running instance managed by the operating system, not the executable file itself.
  • User code can execute ordinary CPU instructions, but protected operations require operating-system support.
  • Virtual memory, file descriptors, scheduling, blocking, permissions, and signals are part of the runtime model.
  • Diagnostic tools become useful when their output is connected back to process and operating-system state.