# cs-pub-ro/operating-systems architecture

> Architecture diagram of the GitHub repository cs-pub-ro/operating-systems, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cs-pub-ro/operating-systems
- Repository: https://github.com/cs-pub-ro/operating-systems

## Overview

This repository is an operating-systems course whose content is published as a student-facing website. The main workflow is authoring session READMEs and exercises, generating separate live and full views, and presenting those views to students; assignments remain a top-level section. Lab live exercises also have a separate archive distribution. The README documents these product capabilities, but the supplied tree does not include the lecture, extra, or info content directories. Source excerpts are mostly assignment and lab examples, so their internal runtime behavior is not mapped here.

Main entry points: [`scripts/gen_pages.py`](https://github.com/cs-pub-ro/operating-systems/blob/main/scripts/gen_pages.py) (Page generator), [`content/labs`](https://github.com/cs-pub-ro/operating-systems/tree/main/content/labs) (Live labs), [`scripts/gen_zip.py`](https://github.com/cs-pub-ro/operating-systems/blob/main/scripts/gen_zip.py) (Archive generator), [`content`](https://github.com/cs-pub-ro/operating-systems/tree/main/content) (Lectures)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_materials["Course materials"]
  node_labs_live["Live labs"]
  node_labs_full["Full labs"]
  node_lectures["Lectures"]
  node_assignments["Assignments"]
  node_extra["Extra material"]
  node_info["Student guide"]
end

subgraph group_publishing["Site publishing"]
  node_page_generator["Page generator<br/>[gen_pages.py]"]
  node_course_site["Course website"]
end

subgraph group_distribution["Lab distribution"]
  node_lab_archives["Lab archives"]
  node_archive_generator["Archive generator<br/>[gen_zip.py]"]
end

node_students(("Students"))

node_labs_live -->|"provides pages"| node_page_generator
node_labs_full -->|"provides pages"| node_page_generator
node_lectures -->|"provides pages"| node_page_generator
node_assignments -->|"provides pages"| node_page_generator
node_extra -->|"provides pages"| node_page_generator
node_info -->|"published under Info"| node_course_site
node_page_generator -->|"generates views"| node_course_site
node_course_site -->|"presents material"| node_students
node_labs_live -->|"packs exercises"| node_archive_generator
node_archive_generator -->|"builds archives"| node_lab_archives
node_lab_archives -->|"distributes exercises"| node_students

click node_labs_live "https://github.com/cs-pub-ro/operating-systems/tree/main/content/labs"
click node_labs_full "https://github.com/cs-pub-ro/operating-systems/tree/main/content/labs"
click node_lectures "https://github.com/cs-pub-ro/operating-systems/tree/main/content"
click node_assignments "https://github.com/cs-pub-ro/operating-systems/tree/main/content/assignments"
click node_extra "https://github.com/cs-pub-ro/operating-systems/tree/main/content"
click node_info "https://github.com/cs-pub-ro/operating-systems/tree/main/content"
click node_page_generator "https://github.com/cs-pub-ro/operating-systems/blob/main/scripts/gen_pages.py"
click node_archive_generator "https://github.com/cs-pub-ro/operating-systems/blob/main/scripts/gen_zip.py"

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_labs_live,node_labs_full,node_lectures,node_assignments,node_extra,node_info toneBlue
class node_page_generator,node_course_site toneAmber
class node_lab_archives,node_archive_generator toneMint
class node_students toneIndigo
```

## Components

### Course materials

- [Live labs](https://github.com/cs-pub-ro/operating-systems/tree/main/content/labs): `content/labs`
- [Full labs](https://github.com/cs-pub-ro/operating-systems/tree/main/content/labs): `content/labs`
- [Lectures](https://github.com/cs-pub-ro/operating-systems/tree/main/content): `content`
- [Assignments](https://github.com/cs-pub-ro/operating-systems/tree/main/content/assignments): `content/assignments`
- [Extra material](https://github.com/cs-pub-ro/operating-systems/tree/main/content): `content`
- [Student guide](https://github.com/cs-pub-ro/operating-systems/tree/main/content): `content`

### Site publishing

- [Page generator](https://github.com/cs-pub-ro/operating-systems/blob/main/scripts/gen_pages.py): `scripts/gen_pages.py`
- **Course website**

### Lab distribution

- **Lab archives**
- [Archive generator](https://github.com/cs-pub-ro/operating-systems/blob/main/scripts/gen_zip.py): `scripts/gen_zip.py`

### Other components

- **Students**

## Connections

- Live labs → Page generator: provides pages (evidence: `README.md`)
- Full labs → Page generator: provides pages (evidence: `README.md`)
- Lectures → Page generator: provides pages (evidence: `README.md`)
- Assignments → Page generator: provides pages (evidence: `README.md`)
- Extra material → Page generator: provides pages (evidence: `README.md`)
- Student guide → Course website: published under Info (evidence: `README.md`)
- Page generator → Course website: generates views (evidence: `README.md`)
- Course website → Students: presents material (evidence: `README.md`)
- Live labs → Archive generator: packs exercises (evidence: `README.md`)
- Archive generator → Lab archives: builds archives (evidence: `README.md`)
- Lab archives → Students: distributes exercises (evidence: `README.md`)
