# freebsd/freebsd-src architecture

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

## Overview

FreeBSD is an operating-system source tree whose user-facing workflow begins with a user invoking a command or shell and receiving output or a system action. The tree includes shell parsing and execution, system utilities, and substantial storage, tracing, mail-filtering, cryptographic, and compiler components. The graph emphasizes these documented or tree-visible branches; sampled excerpts are partial, so it omits uncertain internal call wiring and does not imply that every subsystem is connected to the shell workflow.

Main entry points: [`bin`](https://github.com/freebsd/freebsd-src/tree/main/bin) (System commands), [`cddl/usr.sbin/zfsd/zfsd_main.cc`](https://github.com/freebsd/freebsd-src/blob/main/cddl/usr.sbin/zfsd/zfsd_main.cc) (ZFS event daemon), [`bin/sh/main.c`](https://github.com/freebsd/freebsd-src/blob/main/bin/sh/main.c) (POSIX shell), [`cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c`](https://github.com/freebsd/freebsd-src/blob/main/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c) (DTrace library)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_userland["Userland"]
  node_shell["POSIX shell<br/>[main.c]"]
  node_commands["System commands"]
  node_copy["File copy<br/>[cp.c]"]
  node_archive["Pax archiver<br/>[pax.c]"]
  node_processes["Process listing<br/>[ps.c]"]
end

subgraph group_storage["Storage"]
  node_zfsd["ZFS event daemon<br/>[zfsd_main.cc]"]
  node_zfs["ZFS interfaces<br/>[dataset.py]"]
end

subgraph group_security["Security and mail"]
  node_bearssl["TLS engine<br/>[ssl_engine.c]"]
  node_sendmail["Mail filter engine<br/>[engine.c]"]
  node_openssl["ENGINE command<br/>[engine.c]"]
  node_engineapi["OpenSSL ENGINE API<br/>[engine.h]"]
end

subgraph group_instrumentation["Tracing and compiler"]
  node_dtrace["DTrace command<br/>[dtrace.c]"]
  node_libdtrace["DTrace library<br/>[dt_open.c]"]
  node_llvm["LLVM pipeline"]
  node_pipeliner["Loop scheduler"]
end

node_user(("User"))
node_kernel["FreeBSD OS"]

node_user -->|"invokes"| node_shell
node_user -->|"invokes"| node_commands
node_shell -->|"executes"| node_commands
node_commands -->|"requests OS services"| node_kernel
node_copy -->|"accesses files"| node_kernel
node_archive -->|"accesses files"| node_kernel
node_processes -->|"reads process data"| node_kernel
node_zfsd -->|"uses ZFS interfaces"| node_zfs
node_zfsd -->|"handles system events"| node_kernel
node_dtrace -->|"uses"| node_libdtrace
node_libdtrace -->|"traces system"| node_kernel
node_llvm -->|"configures passes"| node_pipeliner
node_bearssl -->|"provides TLS processing"| node_kernel
node_sendmail -->|"uses sockets"| node_kernel
node_openssl -->|"calls"| node_engineapi

click node_shell "https://github.com/freebsd/freebsd-src/blob/main/bin/sh/main.c"
click node_commands "https://github.com/freebsd/freebsd-src/tree/main/bin"
click node_copy "https://github.com/freebsd/freebsd-src/blob/main/bin/cp/cp.c"
click node_archive "https://github.com/freebsd/freebsd-src/blob/main/bin/pax/pax.c"
click node_processes "https://github.com/freebsd/freebsd-src/blob/main/bin/ps/ps.c"
click node_zfsd "https://github.com/freebsd/freebsd-src/blob/main/cddl/usr.sbin/zfsd/zfsd_main.cc"
click node_zfs "https://github.com/freebsd/freebsd-src/blob/main/cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py"
click node_dtrace "https://github.com/freebsd/freebsd-src/blob/main/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c"
click node_libdtrace "https://github.com/freebsd/freebsd-src/blob/main/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c"
click node_llvm "https://github.com/freebsd/freebsd-src/blob/main/contrib/llvm-project/llvm/lib/Passes/PassBuilderPipelines.cpp"
click node_pipeliner "https://github.com/freebsd/freebsd-src/blob/main/contrib/llvm-project/llvm/lib/CodeGen/MachinePipeliner.cpp"
click node_bearssl "https://github.com/freebsd/freebsd-src/blob/main/contrib/bearssl/src/ssl/ssl_engine.c"
click node_sendmail "https://github.com/freebsd/freebsd-src/blob/main/contrib/sendmail/libmilter/engine.c"
click node_openssl "https://github.com/freebsd/freebsd-src/blob/main/crypto/openssl/apps/engine.c"
click node_engineapi "https://github.com/freebsd/freebsd-src/blob/main/crypto/openssl/include/openssl/engine.h"

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_shell,node_commands,node_copy,node_archive,node_processes,node_user toneBlue
class node_zfsd,node_zfs toneAmber
class node_bearssl,node_sendmail,node_openssl,node_engineapi toneMint
class node_dtrace,node_libdtrace,node_llvm,node_pipeliner toneRose
class node_kernel toneIndigo
```

## Components

### Userland

- [POSIX shell](https://github.com/freebsd/freebsd-src/blob/main/bin/sh/main.c): `bin/sh/main.c`
- [System commands](https://github.com/freebsd/freebsd-src/tree/main/bin): `bin`
- [File copy](https://github.com/freebsd/freebsd-src/blob/main/bin/cp/cp.c): `bin/cp/cp.c`
- [Pax archiver](https://github.com/freebsd/freebsd-src/blob/main/bin/pax/pax.c): `bin/pax/pax.c`
- [Process listing](https://github.com/freebsd/freebsd-src/blob/main/bin/ps/ps.c): `bin/ps/ps.c`

### Storage

- [ZFS event daemon](https://github.com/freebsd/freebsd-src/blob/main/cddl/usr.sbin/zfsd/zfsd_main.cc): `cddl/usr.sbin/zfsd/zfsd_main.cc`
- [ZFS interfaces](https://github.com/freebsd/freebsd-src/blob/main/cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py): `cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py`

### Security and mail

- [TLS engine](https://github.com/freebsd/freebsd-src/blob/main/contrib/bearssl/src/ssl/ssl_engine.c): `contrib/bearssl/src/ssl/ssl_engine.c`
- [Mail filter engine](https://github.com/freebsd/freebsd-src/blob/main/contrib/sendmail/libmilter/engine.c): `contrib/sendmail/libmilter/engine.c`
- [ENGINE command](https://github.com/freebsd/freebsd-src/blob/main/crypto/openssl/apps/engine.c): `crypto/openssl/apps/engine.c`
- [OpenSSL ENGINE API](https://github.com/freebsd/freebsd-src/blob/main/crypto/openssl/include/openssl/engine.h): `crypto/openssl/include/openssl/engine.h`

### Tracing and compiler

- [DTrace command](https://github.com/freebsd/freebsd-src/blob/main/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c): `cddl/contrib/opensolaris/cmd/dtrace/dtrace.c`
- [DTrace library](https://github.com/freebsd/freebsd-src/blob/main/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c): `cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c`
- [LLVM pipeline](https://github.com/freebsd/freebsd-src/blob/main/contrib/llvm-project/llvm/lib/Passes/PassBuilderPipelines.cpp): `contrib/llvm-project/llvm/lib/Passes/PassBuilderPipelines.cpp`
- [Loop scheduler](https://github.com/freebsd/freebsd-src/blob/main/contrib/llvm-project/llvm/lib/CodeGen/MachinePipeliner.cpp): `contrib/llvm-project/llvm/lib/CodeGen/MachinePipeliner.cpp`

### Other components

- **User**
- **FreeBSD OS**

## Connections

- User → POSIX shell: invokes
- User → System commands: invokes
- POSIX shell → System commands: executes
- System commands → FreeBSD OS: requests OS services
- File copy → FreeBSD OS: accesses files
- Pax archiver → FreeBSD OS: accesses files
- Process listing → FreeBSD OS: reads process data
- ZFS event daemon → ZFS interfaces: uses ZFS interfaces
- ZFS event daemon → FreeBSD OS: handles system events
- DTrace command → DTrace library: uses
- DTrace library → FreeBSD OS: traces system
- LLVM pipeline → Loop scheduler: configures passes
- TLS engine → FreeBSD OS: provides TLS processing
- Mail filter engine → FreeBSD OS: uses sockets
- ENGINE command → OpenSSL ENGINE API: calls
