# nickolasnolte1/os-syscall architecture

> Architecture diagram of the GitHub repository nickolasnolte1/os-syscall, 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/nickolasnolte1/os-syscall
- Repository: https://github.com/nickolasnolte1/os-syscall

## Overview

OS-SysCall demonstrates two custom Linux kernel system calls, with user programs invoking them to check bracket closure and calculate vector dot products. The repository contains only the two kernel-side implementations; the README describes the user-to-kernel invocation and syscall numbers but the referenced test program is not present in the tree. The graph therefore shows the documented caller abstractly and avoids inventing user-side implementation details.

Main entry points: [`expresioncerrada.c`](https://github.com/nickolasnolte1/os-syscall/blob/main/expresioncerrada.c) (Expression syscall), [`puntoproducto.c`](https://github.com/nickolasnolte1/os-syscall/blob/main/puntoproducto.c) (Dot product syscall)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_expr["Expression Checking"]
  node_expression["Expression syscall<br/>[expresioncerrada.c]"]
  node_brackets["Balance evaluation<br/>[expresioncerrada.c]"]
end

subgraph group_dot["Vector Dot Product"]
  node_vector["Dot product syscall<br/>[puntoproducto.c]"]
  node_dotcalc["Dot product calculation<br/>[puntoproducto.c]"]
end

node_user(("User program"))

node_user -->|"invokes 385"| node_expression
node_expression -->|"checks brackets"| node_brackets
node_brackets -->|"returns result"| node_expression
node_user -->|"invokes 386"| node_vector
node_vector -->|"computes products"| node_dotcalc
node_dotcalc -->|"writes result"| node_vector

click node_expression "https://github.com/nickolasnolte1/os-syscall/blob/main/expresioncerrada.c"
click node_brackets "https://github.com/nickolasnolte1/os-syscall/blob/main/expresioncerrada.c"
click node_vector "https://github.com/nickolasnolte1/os-syscall/blob/main/puntoproducto.c"
click node_dotcalc "https://github.com/nickolasnolte1/os-syscall/blob/main/puntoproducto.c"

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_expression,node_brackets,node_user toneBlue
class node_vector,node_dotcalc toneAmber
```

## Components

### Expression Checking

- [Expression syscall](https://github.com/nickolasnolte1/os-syscall/blob/main/expresioncerrada.c): `expresioncerrada.c`
- [Balance evaluation](https://github.com/nickolasnolte1/os-syscall/blob/main/expresioncerrada.c): `expresioncerrada.c`

### Vector Dot Product

- [Dot product syscall](https://github.com/nickolasnolte1/os-syscall/blob/main/puntoproducto.c): `puntoproducto.c`
- [Dot product calculation](https://github.com/nickolasnolte1/os-syscall/blob/main/puntoproducto.c): `puntoproducto.c`

### Other components

- **User program**

## Connections

- User program → Expression syscall: invokes 385 (evidence: `README.md`)
- Expression syscall → Balance evaluation: checks brackets (evidence: `expresioncerrada.c`)
- Balance evaluation → Expression syscall: returns result (evidence: `expresioncerrada.c`)
- User program → Dot product syscall: invokes 386 (evidence: `README.md`)
- Dot product syscall → Dot product calculation: computes products (evidence: `puntoproducto.c`)
- Dot product calculation → Dot product syscall: writes result (evidence: `puntoproducto.c`)
