# cs341-illinois/coursebook architecture

> Architecture diagram of the GitHub repository cs341-illinois/coursebook, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cs341-illinois/coursebook
- Repository: https://github.com/cs341-illinois/coursebook

## Overview

This repository is an open systems-programming coursebook for CS 341. Its principal workflow is a learner studying the book’s C and systems topics, from introductory foundations through operating-system and networking concepts. The chapter files show the subject areas; the README documents PDF, Markdown, and HTML exports. The sampled source mostly covers conversion utilities, so this map focuses on the documented book and its content rather than assuming how unsampled chapter files are wired or built.

Main entry points: [`main.tex`](https://github.com/cs341-illinois/coursebook/blob/master/main.tex) (Coursebook), [`introc/introc.tex`](https://github.com/cs341-illinois/coursebook/blob/master/introc/introc.tex) (C Introduction), [`background/background.tex`](https://github.com/cs341-illinois/coursebook/blob/master/background/background.tex) (Background), [`processes/processes.tex`](https://github.com/cs341-illinois/coursebook/blob/master/processes/processes.tex) (Processes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_foundations["Foundations"]
  node_intro["C Introduction<br/>[introc.tex]"]
  node_background["Background<br/>[background.tex]"]
end

subgraph group_execution["Execution"]
  node_processes["Processes<br/>[processes.tex]"]
  node_threads["Threads<br/>[threads.tex]"]
  node_scheduling["Scheduling<br/>[scheduling.tex]"]
  node_synchronization["Synchronization"]
  node_deadlock["Deadlock<br/>[deadlock.tex]"]
  node_signals["Signals<br/>[signals.tex]"]
end

subgraph group_systems["System Services"]
  node_ipc["Interprocess Communication<br/>[ipc.tex]"]
  node_networking["Networking<br/>[networking.tex]"]
  node_filesystems["Filesystems<br/>[filesystems.tex]"]
  node_malloc["Memory Allocation<br/>[malloc.tex]"]
end

subgraph group_perspectives["Further Topics"]
  node_security["Security<br/>[security.tex]"]
  node_appendix["Appendix<br/>[appendix.tex]"]
  node_honors["Honors Topics<br/>[honors.tex]"]
  node_postmortems["Post Mortems<br/>[post_mortems.tex]"]
  node_review["Review<br/>[review.tex]"]
end

node_learner(("Learner"))
node_coursebook["Coursebook<br/>[main.tex]"]
node_pdf["PDF Export"]
node_markdown["Markdown Export"]
node_html["HTML Export"]

node_learner -->|"studies"| node_coursebook
node_coursebook -->|"presents"| node_intro
node_coursebook -->|"presents"| node_background
node_coursebook -->|"presents"| node_processes
node_coursebook -->|"presents"| node_threads
node_coursebook -->|"presents"| node_scheduling
node_coursebook -->|"presents"| node_synchronization
node_coursebook -->|"presents"| node_deadlock
node_coursebook -->|"presents"| node_signals
node_coursebook -->|"presents"| node_ipc
node_coursebook -->|"presents"| node_networking
node_coursebook -->|"presents"| node_filesystems
node_coursebook -->|"presents"| node_malloc
node_coursebook -->|"presents"| node_security
node_coursebook -->|"presents"| node_appendix
node_coursebook -->|"presents"| node_honors
node_coursebook -->|"presents"| node_postmortems
node_coursebook -->|"presents"| node_review
node_coursebook -->|"exports as"| node_pdf
node_coursebook -->|"exports as"| node_markdown
node_coursebook -->|"exports as"| node_html

click node_coursebook "https://github.com/cs341-illinois/coursebook/blob/master/main.tex"
click node_intro "https://github.com/cs341-illinois/coursebook/blob/master/introc/introc.tex"
click node_background "https://github.com/cs341-illinois/coursebook/blob/master/background/background.tex"
click node_processes "https://github.com/cs341-illinois/coursebook/blob/master/processes/processes.tex"
click node_threads "https://github.com/cs341-illinois/coursebook/blob/master/threads/threads.tex"
click node_scheduling "https://github.com/cs341-illinois/coursebook/blob/master/scheduling/scheduling.tex"
click node_synchronization "https://github.com/cs341-illinois/coursebook/blob/master/synchronization/synchronization.tex"
click node_deadlock "https://github.com/cs341-illinois/coursebook/blob/master/deadlock/deadlock.tex"
click node_signals "https://github.com/cs341-illinois/coursebook/blob/master/signals/signals.tex"
click node_ipc "https://github.com/cs341-illinois/coursebook/blob/master/ipc/ipc.tex"
click node_networking "https://github.com/cs341-illinois/coursebook/blob/master/networking/networking.tex"
click node_filesystems "https://github.com/cs341-illinois/coursebook/blob/master/filesystems/filesystems.tex"
click node_malloc "https://github.com/cs341-illinois/coursebook/blob/master/malloc/malloc.tex"
click node_security "https://github.com/cs341-illinois/coursebook/blob/master/security/security.tex"
click node_appendix "https://github.com/cs341-illinois/coursebook/blob/master/appendix/appendix.tex"
click node_honors "https://github.com/cs341-illinois/coursebook/blob/master/honors/honors.tex"
click node_postmortems "https://github.com/cs341-illinois/coursebook/blob/master/post_mortems/post_mortems.tex"
click node_review "https://github.com/cs341-illinois/coursebook/blob/master/review/review.tex"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_intro,node_background toneBlue
class node_processes,node_threads,node_scheduling,node_synchronization,node_deadlock,node_signals toneAmber
class node_ipc,node_networking,node_filesystems,node_malloc toneMint
class node_security,node_appendix,node_honors,node_postmortems,node_review toneRose
class node_learner,node_pdf,node_markdown,node_html toneIndigo
class node_coursebook toneTeal
```

## Components

### Foundations

- [C Introduction](https://github.com/cs341-illinois/coursebook/blob/master/introc/introc.tex): `introc/introc.tex`
- [Background](https://github.com/cs341-illinois/coursebook/blob/master/background/background.tex): `background/background.tex`

### Execution

- [Processes](https://github.com/cs341-illinois/coursebook/blob/master/processes/processes.tex): `processes/processes.tex`
- [Threads](https://github.com/cs341-illinois/coursebook/blob/master/threads/threads.tex): `threads/threads.tex`
- [Scheduling](https://github.com/cs341-illinois/coursebook/blob/master/scheduling/scheduling.tex): `scheduling/scheduling.tex`
- [Synchronization](https://github.com/cs341-illinois/coursebook/blob/master/synchronization/synchronization.tex): `synchronization/synchronization.tex`
- [Deadlock](https://github.com/cs341-illinois/coursebook/blob/master/deadlock/deadlock.tex): `deadlock/deadlock.tex`
- [Signals](https://github.com/cs341-illinois/coursebook/blob/master/signals/signals.tex): `signals/signals.tex`

### System Services

- [Interprocess Communication](https://github.com/cs341-illinois/coursebook/blob/master/ipc/ipc.tex): `ipc/ipc.tex`
- [Networking](https://github.com/cs341-illinois/coursebook/blob/master/networking/networking.tex): `networking/networking.tex`
- [Filesystems](https://github.com/cs341-illinois/coursebook/blob/master/filesystems/filesystems.tex): `filesystems/filesystems.tex`
- [Memory Allocation](https://github.com/cs341-illinois/coursebook/blob/master/malloc/malloc.tex): `malloc/malloc.tex`

### Further Topics

- [Security](https://github.com/cs341-illinois/coursebook/blob/master/security/security.tex): `security/security.tex`
- [Appendix](https://github.com/cs341-illinois/coursebook/blob/master/appendix/appendix.tex): `appendix/appendix.tex`
- [Honors Topics](https://github.com/cs341-illinois/coursebook/blob/master/honors/honors.tex): `honors/honors.tex`
- [Post Mortems](https://github.com/cs341-illinois/coursebook/blob/master/post_mortems/post_mortems.tex): `post_mortems/post_mortems.tex`
- [Review](https://github.com/cs341-illinois/coursebook/blob/master/review/review.tex): `review/review.tex`

### Other components

- **Learner**
- [Coursebook](https://github.com/cs341-illinois/coursebook/blob/master/main.tex): `main.tex`
- **PDF Export**
- **Markdown Export**
- **HTML Export**

## Connections

- Learner → Coursebook: studies
- Coursebook → C Introduction: presents
- Coursebook → Background: presents
- Coursebook → Processes: presents
- Coursebook → Threads: presents
- Coursebook → Scheduling: presents
- Coursebook → Synchronization: presents
- Coursebook → Deadlock: presents
- Coursebook → Signals: presents
- Coursebook → Interprocess Communication: presents
- Coursebook → Networking: presents
- Coursebook → Filesystems: presents
- Coursebook → Memory Allocation: presents
- Coursebook → Security: presents
- Coursebook → Appendix: presents
- Coursebook → Honors Topics: presents
- Coursebook → Post Mortems: presents
- Coursebook → Review: presents
- Coursebook → PDF Export: exports as
- Coursebook → Markdown Export: exports as
- Coursebook → HTML Export: exports as
