| 01-foundations |
atom-semiconductor |
1972 |
Matter, atoms, charge and physical models |
| 01-foundations |
electric-charge-field-potential |
3079 |
Electric charge, field, potential and energy |
| 01-foundations |
voltage-current-resistance-power |
2773 |
Voltage, current, resistance, energy and power |
| 01-foundations |
ohm-kirchhoff-circuits |
3335 |
Ohm's law, Kirchhoff's laws and circuit analysis |
| 01-foundations |
capacitance-inductance |
3584 |
Capacitance, inductance and stored field energy |
| 01-foundations |
rc-rlc-transients |
3442 |
RC, RL and RLC transients |
| 01-foundations |
ac-signals-frequency-impedance |
3550 |
AC signals, phase, frequency and impedance |
| 01-foundations |
electromagnetic-induction-transformers |
3368 |
Electromagnetic induction and transformers |
| 01-foundations |
transmission-lines-differential-signals |
3861 |
Transmission lines and differential signaling |
| 01-foundations |
noise-grounding-signal-integrity |
2778 |
Noise, grounding and signal integrity |
| 01-foundations |
power-delivery-regulation |
3522 |
Power delivery, regulation and decoupling |
| 01-foundations |
crystal-bands-doping |
2022 |
Crystal structure, energy bands and doping |
| 01-foundations |
pn-junction |
1891 |
P-N junctions and semiconductor interfaces |
| 01-foundations |
mos-capacitor |
3158 |
MOS capacitor electrostatics |
| 01-foundations |
transistor-cmos |
2011 |
MOSFETs and CMOS |
| 01-foundations |
cmos-switching-power |
3306 |
CMOS switching, delay and power |
| 01-foundations |
logic-levels-noise-margins |
2727 |
Logic levels, thresholds, fan-out and noise margins |
| 01-foundations |
boolean-algebra |
1862 |
Boolean algebra and logic representation |
| 01-foundations |
combinational-logic |
1925 |
Combinational circuits |
| 01-foundations |
logic-sequential |
1879 |
Sequential logic and stored state |
| 01-foundations |
latches-flipflops |
1987 |
Latches, flip-flops and metastability |
| 01-foundations |
registers-counters |
1901 |
Registers, counters and state machines |
| 01-foundations |
arithmetic-circuits |
1963 |
Adders, ALUs and binary arithmetic |
| 01-foundations |
sram-dram |
2200 |
SRAM, DRAM and memory cells |
| 01-foundations |
clock-timing |
1951 |
Clocking, propagation and timing |
| 01-foundations |
number-systems-binary-arithmetic |
2974 |
Number systems and binary arithmetic |
| 01-foundations |
discrete-math-sets-relations-functions |
2770 |
Discrete mathematics: sets, relations and functions |
| 01-foundations |
proof-invariants-induction |
4073 |
Proof, invariants and induction for systems |
| 01-foundations |
vectors-complex-numbers-systems |
2196 |
Vectors and complex numbers for systems |
| 01-foundations |
data-representation-layout |
2214 |
Data representation, memory layout and pointers |
| 01-foundations |
algorithmic-complexity |
2062 |
Algorithm analysis and systems cost models |
| 01-foundations |
recursion-recurrences-amortization |
2727 |
Recursion, recurrences and amortized analysis |
| 01-foundations |
data-structures |
2218 |
Data structures for systems software |
| 01-foundations |
arrays-lists-stacks-queues |
2699 |
Arrays, linked structures, stacks and queues |
| 01-foundations |
hash-tables |
2573 |
Hash tables and collision strategies |
| 01-foundations |
trees-heaps-tries |
2755 |
Trees, heaps and tries |
| 01-foundations |
graphs-union-find |
2475 |
Graphs and disjoint-set union |
| 01-foundations |
bitmaps-rings-free-lists |
2787 |
Bitmaps, rings and free lists |
| 01-foundations |
sorting-searching |
2502 |
Sorting and searching algorithms |
| 01-foundations |
graph-algorithms |
2277 |
Graph algorithms for systems |
| 01-foundations |
string-parsing-algorithms |
3191 |
String and parsing algorithms |
| 01-foundations |
systems-algorithms |
2288 |
Algorithms used by ChrisOS |
| 02-computer-architecture |
cpu-datapath-isa |
2200 |
CPU datapath and ISA |
| 02-computer-architecture |
microarchitecture-pipeline |
3341 |
CPU microarchitecture and pipelining |
| 02-computer-architecture |
pipeline-hazards-forwarding |
3442 |
Pipeline hazards and forwarding |
| 02-computer-architecture |
branch-prediction-speculation |
3382 |
Branch prediction and speculative execution |
| 02-computer-architecture |
out-of-order-renaming-retirement |
4456 |
Out-of-order execution, renaming and retirement |
| 02-computer-architecture |
machine-code |
1866 |
Machine code and instruction encoding |
| 02-computer-architecture |
x86-registers-flags |
1891 |
x86-64 registers and flags |
| 02-computer-architecture |
x86-instruction-encoding |
1830 |
x86 instruction encoding and addressing modes |
| 02-computer-architecture |
x86-64-memory-privilege |
2302 |
x86-64 memory and privilege |
| 02-computer-architecture |
privilege-rings |
2003 |
Privilege rings, transitions and protection |
| 02-computer-architecture |
memory-controller-dram-organization |
4398 |
DRAM organization and memory controllers |
| 02-computer-architecture |
cache-hierarchy |
2135 |
Caches and memory hierarchy |
| 02-computer-architecture |
coherence |
2726 |
Cache coherence and multiprocessor memory |
| 02-computer-architecture |
buses-mmio-dma |
4778 |
Buses, MMIO and DMA |
| 02-computer-architecture |
pci-pcie |
3649 |
PCI and PCI Express |
| 02-computer-architecture |
atomics-memory-model |
4159 |
Atomics, barriers and memory ordering |
| 02-computer-architecture |
acpi-platform |
3751 |
ACPI and platform description |
| 03-boot |
reset-firmware |
3828 |
Processor reset and platform firmware |
| 03-boot |
uefi |
5280 |
UEFI architecture and boot services |
| 03-boot |
limine |
4391 |
Limine boot protocol |
| 03-boot |
power-on-kstart |
3619 |
Power-on to kstart |
| 03-boot |
elf-linking |
4176 |
ELF, objects and linking |
| 03-boot |
higher-half-kernel |
5115 |
Higher-half kernel layout |
| 03-boot |
linker-script |
4682 |
Kernel linker script anatomy |
| 03-boot |
boot-information |
4772 |
Boot information and memory-map validation |
| 04-kernel |
kernel-model |
6770 |
Kernel model and trust boundaries |
| 04-kernel |
gdt-tss |
1935 |
GDT and TSS |
| 04-kernel |
idt-exceptions |
1861 |
IDT and exception entry |
| 04-kernel |
interrupts-smp |
3239 |
Interrupts and SMP |
| 04-kernel |
pic-apic-ioapic |
1813 |
PIC, LAPIC and IOAPIC |
| 04-kernel |
timers |
2080 |
PIT and timing |
| 04-kernel |
kernel-jobs-kthreads |
2469 |
Kernel jobs and kthreads |
| 04-kernel |
processes-syscalls |
3028 |
Processes and system calls |
| 04-kernel |
user-mode-entry |
1959 |
User-mode entry and return |
| 04-kernel |
user-copy |
2328 |
Safe user-memory access |
| 04-kernel |
process-lifecycle |
2471 |
Process lifecycle and scheduler state |
| 04-kernel |
panic-logging |
2336 |
Panic, serial and kernel logging |
| 05-memory |
physical-memory |
2741 |
Physical memory management |
| 05-memory |
hhdm |
2121 |
Higher-half direct map |
| 05-memory |
pmm-algorithms |
2404 |
PMM allocation algorithms and invariants |
| 05-memory |
virtual-memory |
2692 |
Virtual memory and page tables |
| 05-memory |
page-table-layout |
2683 |
PML4, PDPT, PD and PT |
| 05-memory |
page-faults |
2615 |
Page faults and fault containment |
| 05-memory |
address-spaces |
2744 |
Process address spaces |
| 05-memory |
tlb |
2560 |
Translation Lookaside Buffer |
| 05-memory |
tlb-shootdown |
3474 |
TLB shootdown and reclamation |
| 05-memory |
heap-ownership |
2555 |
Kernel heap and ownership |
| 05-memory |
spinlocks |
2676 |
Spinlocks and lock ordering |
| 05-memory |
resource-lifetime |
2911 |
Resource lifetime and teardown |
| 05-memory |
jit-memory |
2468 |
Executable memory, JIT and W^X |
| 06-storage |
block-storage |
2708 |
Block storage stack |
| 06-storage |
ata |
2611 |
ATA PIO and DMA |
| 06-storage |
ahci |
3098 |
AHCI and SATA |
| 06-storage |
nvme |
3234 |
NVMe queues and namespaces |
| 06-storage |
virtio-block |
3333 |
VirtIO Block |
| 06-storage |
usb-storage |
3220 |
USB mass storage and host controllers |
| 06-storage |
partitions-gpt |
2527 |
Partition tables and GPT |
| 06-storage |
chrisfs |
4137 |
ChrisFS architecture |
| 06-storage |
chrisfs-superblock |
2829 |
ChrisFS superblock and geometry |
| 06-storage |
chrisfs-inodes |
3063 |
ChrisFS inodes and block indirection |
| 06-storage |
chrisfs-directories |
2860 |
ChrisFS directories and path resolution |
| 06-storage |
chrisfs-journal |
2798 |
ChrisFS journaling and recovery |
| 06-storage |
chrisfs-cache |
2637 |
ChrisFS cache and allocation |
| 06-storage |
chrisfs-fsck |
3119 |
ChrisFS consistency checking |
| 07-language-systems |
compiler-pipeline |
3296 |
Compiler construction pipeline |
| 07-language-systems |
lexical-analysis |
2731 |
Lexical analysis |
| 07-language-systems |
parsing |
2926 |
Parsing and grammars |
| 07-language-systems |
semantic-analysis |
3560 |
Semantic analysis and type systems |
| 07-language-systems |
intermediate-representation |
2838 |
Intermediate representations |
| 07-language-systems |
native-codegen |
2704 |
Native code generation |
| 07-language-systems |
calling-conventions |
2809 |
Calling conventions and stack frames |
| 07-language-systems |
chrisc-clvm |
3803 |
ChrisC and CLVM |
| 07-language-systems |
clvm-bytecode |
3548 |
CLVM bytecode format |
| 07-language-systems |
clvm-memory |
4043 |
CLVM memory and isolation |
| 07-language-systems |
clvm-syscalls |
3805 |
CLVM syscall ABI |
| 07-language-systems |
clvm-interpreter |
3711 |
CLVM interpreter |
| 07-language-systems |
jit |
4556 |
CLVM JIT |
| 07-language-systems |
debugger |
3395 |
Debugger and source mapping |
| 07-language-systems |
native-toolchain |
2389 |
KCC, ChrisAsm, ChrisO and ChrisLd |
| 07-language-systems |
kcc |
3826 |
KCC architecture and C profile |
| 07-language-systems |
chrisasm |
2072 |
ChrisAsm |
| 07-language-systems |
chriso |
2117 |
ChrisO object format |
| 07-language-systems |
chrisld |
2450 |
ChrisLd |
| 07-language-systems |
gc-libraries |
3724 |
Libraries, modules and garbage collection |
| 08-graphics |
pixels-framebuffer |
2107 |
Pixels and framebuffer |
| 08-graphics |
color-formats |
2074 |
Color formats and alpha |
| 08-graphics |
gfx2d |
2476 |
2D primitives and composition |
| 08-graphics |
desktop-compositor |
3117 |
Desktop composition |
| 08-graphics |
software-3d |
2194 |
Software 3D |
| 08-graphics |
matrix-transformations |
1866 |
Vector and matrix transformations |
| 08-graphics |
clipping |
1908 |
Clipping and projection |
| 08-graphics |
triangle-rasterization |
1821 |
Triangle rasterization |
| 08-graphics |
depth-buffer |
1952 |
Depth buffering |
| 08-graphics |
textures |
1999 |
Textures and sampling |
| 08-graphics |
parallel-raster |
2224 |
Parallel software rasterization |
| 08-graphics |
virtio-gpu-virgl |
2508 |
VirtIO-GPU and VirGL |
| 08-graphics |
virtio-gpu-transport |
2682 |
VirtIO-GPU transport and resources |
| 08-graphics |
gfx3d-api |
2647 |
Gfx3D backend-neutral API |
| 08-graphics |
virgl-command-stream |
2641 |
VirGL command stream |
| 08-graphics |
shaders-csir |
2430 |
Shaders and CSIR |
| 08-graphics |
shader-frontend |
2127 |
GLSL subset frontend |
| 08-graphics |
csir |
2870 |
Chris Shader IR |
| 08-graphics |
tgsi-backend |
2230 |
TGSI backend |
| 08-graphics |
software-shader |
2415 |
Software shader backend |
| 08-graphics |
mine-graphics |
2331 |
Mine Chris graphics path |
| 09-emulation |
emulator-theory |
2148 |
Machine emulation theory |
| 09-emulation |
x86-decoding |
2623 |
x86 instruction decoding |
| 09-emulation |
emulator-flags |
2604 |
Architectural flags and arithmetic semantics |
| 09-emulation |
emulator-exceptions |
2561 |
Exception delivery in an emulator |
| 09-emulation |
emulator-paging |
2436 |
Guest paging and address translation |
| 09-emulation |
chrisvm-chriscpu |
2384 |
ChrisVM and ChrisCPU |
| 09-emulation |
chris-architecture-state |
2805 |
ChrisArchitectureState |
| 09-emulation |
chrisvm-machine |
2578 |
ChrisMachine lifecycle |
| 09-emulation |
chrisvm-memory-map |
2306 |
ChrisVM physical memory map |
| 09-emulation |
chrisvm-io-bus |
1930 |
ChrisVM I/O bus |
| 09-emulation |
chrisvm-mmio-bus |
1896 |
ChrisVM MMIO bus |
| 09-emulation |
chrisvm-devices |
1979 |
ChrisVM device model |
| 09-emulation |
chrisvm-boot |
2354 |
ChrisVM boot protocol |
| 09-emulation |
chrisvm-debugger |
1879 |
ChrisVM tracing and debugger |
| 09-emulation |
determinism-replay |
2671 |
Determinism and future record/replay |
| 09-emulation |
virtualization-chrishv |
2498 |
Hardware virtualization and ChrisHV |
| 09-emulation |
vmx |
3910 |
Intel VMX |
| 09-emulation |
svm |
3199 |
AMD SVM |
| 09-emulation |
ept-npt |
3021 |
EPT and NPT |
| 10-networking |
network-stack |
2879 |
Network stack and VirtIO networking |
| 10-networking |
ethernet |
2135 |
Ethernet framing |
| 10-networking |
ipv4 |
2258 |
IPv4 and addressing |
| 10-networking |
udp |
2035 |
UDP |
| 10-networking |
tcp |
2462 |
TCP fundamentals and ChrisOS transfer path |
| 10-networking |
virtio-net |
2152 |
VirtIO-net |
| 10-networking |
sockets |
2142 |
Socket ownership and API |
| 11-desktop |
desktop-applications |
2308 |
Desktop and applications |
| 11-desktop |
window-manager |
2838 |
Window manager and task model |
| 11-desktop |
input-routing |
2950 |
Keyboard, mouse and focus |
| 11-desktop |
chriseditor |
2296 |
ChrisEditor architecture |
| 11-desktop |
chrisshell |
1956 |
ChrisShell architecture |
| 11-desktop |
file-manager |
1882 |
File manager architecture |
| 11-desktop |
mine-chris |
1985 |
Mine Chris as a system workload |
| 11-desktop |
doom-port |
2009 |
Doom port and native compatibility |
| 12-self-hosting |
self-hosting-bootstrap |
1874 |
Self-hosting and bootstrap |
| 12-self-hosting |
selfhost-levels |
1935 |
SH0-SH6 evidence model |
| 12-self-hosting |
stage-compilers |
1868 |
Compiler staging and convergence |
| 12-self-hosting |
internal-kernel-build |
1986 |
Internally produced kernel |
| 12-self-hosting |
reproducible-builds |
1813 |
Reproducible builds and provenance |
| 13-real-hardware |
installation-real-hardware |
2250 |
Installation and real hardware |
| 13-real-hardware |
gpt-esp |
1887 |
GPT and EFI System Partition |
| 13-real-hardware |
uefi-disk-boot |
2383 |
Disk-only UEFI boot |
| 13-real-hardware |
hardware-profile |
3174 |
Physical hardware profile |
| 13-real-hardware |
bringup-diagnostics |
2341 |
Hardware bring-up diagnostics |
| 13-real-hardware |
driver-compatibility |
2359 |
Driver compatibility evidence |
| 14-validation |
validation-evidence |
2442 |
Validation and evidence classes |
| 14-validation |
host-tests |
1874 |
Host-test architecture |
| 14-validation |
qemu-gates |
1999 |
QEMU gate architecture |
| 14-validation |
hardware-gates |
1988 |
Physical-hardware validation |
| 14-validation |
fault-injection |
1987 |
Negative testing and fault injection |
| 14-validation |
fuzzing |
2103 |
Fuzzing parsers and formats |
| 14-validation |
performance-measurement |
2436 |
Performance measurement |
| 15-specifications |
specifications-policy |
2280 |
Specifications and revision policy |
| 15-specifications |
chrisvm-spec |
2552 |
ChrisVM specification |
| 15-specifications |
chrisvm-boot-spec |
2265 |
ChrisVM boot protocol |
| 15-specifications |
chriso-spec |
1904 |
ChrisO format |
| 15-specifications |
chrisfs-spec |
2631 |
ChrisFS format |
| 15-specifications |
clvm-spec |
3131 |
CLVM image and syscall specification |
| 15-specifications |
shader-spec |
2912 |
Shader subset and CSIR specification |
| 15-specifications |
bibliography |
2909 |
Primary bibliography |
| 16-history |
architecture-history |
2236 |
Architecture history |
| 16-history |
graphics-history |
2856 |
Graphics architecture history |
| 16-history |
toolchain-history |
2692 |
Native toolchain history |
| 16-history |
chrisvm-history |
2664 |
ChrisVM history |
| 17-developer-guide |
developer-guide |
960 |
Developer guide |
| 17-developer-guide |
development-environment-linux |
979 |
Linux development environment |
| 17-developer-guide |
development-environment-windows |
910 |
Windows and WSL2 development environment |
| 17-developer-guide |
build-run-debug |
1122 |
Build, run and debug |
| 17-developer-guide |
testing-validation |
900 |
Testing and validation workflow |
| 17-developer-guide |
contribution-workflow |
1071 |
Contribution workflow |
| 17-developer-guide |
development-troubleshooting |
952 |
Development troubleshooting |
| 98-maintenance |
agent-workflow |
2747 |
Low-context agent workflow |
| 98-maintenance |
source-policy |
1999 |
Source and revision policy |
| 98-maintenance |
documentation-schema |
2732 |
Documentation schema and templates |