| 01-foundations |
atom-semiconductor |
1995 |
Matter, atoms, charge and physical models |
| 01-foundations |
electric-charge-field-potential |
3138 |
Electric charge, field, potential and energy |
| 01-foundations |
voltage-current-resistance-power |
3165 |
Voltage, current, resistance, energy and power |
| 01-foundations |
ohm-kirchhoff-circuits |
3763 |
Ohm's law, Kirchhoff's laws and circuit analysis |
| 01-foundations |
capacitance-inductance |
3990 |
Capacitance, inductance and stored field energy |
| 01-foundations |
rc-rlc-transients |
3745 |
RC, RL and RLC transients |
| 01-foundations |
ac-signals-frequency-impedance |
3901 |
AC signals, phase, frequency and impedance |
| 01-foundations |
electromagnetic-induction-transformers |
3911 |
Electromagnetic induction and transformers |
| 01-foundations |
transmission-lines-differential-signals |
4439 |
Transmission lines and differential signaling |
| 01-foundations |
noise-grounding-signal-integrity |
2955 |
Noise, grounding and signal integrity |
| 01-foundations |
power-delivery-regulation |
3530 |
Power delivery, regulation and decoupling |
| 01-foundations |
crystal-bands-doping |
2119 |
Crystal structure, energy bands and doping |
| 01-foundations |
pn-junction |
1955 |
P-N junctions and semiconductor interfaces |
| 01-foundations |
mos-capacitor |
2889 |
MOS capacitor electrostatics |
| 01-foundations |
transistor-cmos |
1967 |
MOSFETs and CMOS |
| 01-foundations |
cmos-switching-power |
3083 |
CMOS switching, delay and power |
| 01-foundations |
logic-levels-noise-margins |
3272 |
Logic levels, thresholds, fan-out and noise margins |
| 01-foundations |
boolean-algebra |
1884 |
Boolean algebra and logic representation |
| 01-foundations |
combinational-logic |
2036 |
Combinational circuits |
| 01-foundations |
logic-sequential |
1897 |
Sequential logic and stored state |
| 01-foundations |
latches-flipflops |
2064 |
Latches, flip-flops and metastability |
| 01-foundations |
registers-counters |
1986 |
Registers, counters and state machines |
| 01-foundations |
arithmetic-circuits |
2105 |
Adders, ALUs and binary arithmetic |
| 01-foundations |
sram-dram |
2332 |
SRAM, DRAM and memory cells |
| 01-foundations |
clock-timing |
2105 |
Clocking, propagation and timing |
| 01-foundations |
number-systems-binary-arithmetic |
3171 |
Number systems and binary arithmetic |
| 01-foundations |
discrete-math-sets-relations-functions |
2900 |
Discrete mathematics: sets, relations and functions |
| 01-foundations |
proof-invariants-induction |
4288 |
Proof, invariants and induction for systems |
| 01-foundations |
vectors-complex-numbers-systems |
2224 |
Vectors and complex numbers for systems |
| 01-foundations |
data-representation-layout |
2034 |
Data representation, memory layout and pointers |
| 01-foundations |
algorithmic-complexity |
1913 |
Algorithm analysis and systems cost models |
| 01-foundations |
recursion-recurrences-amortization |
2903 |
Recursion, recurrences and amortized analysis |
| 01-foundations |
data-structures |
1895 |
Data structures for systems software |
| 01-foundations |
arrays-lists-stacks-queues |
2812 |
Arrays, linked structures, stacks and queues |
| 01-foundations |
hash-tables |
2043 |
Hash tables and collision strategies |
| 01-foundations |
trees-heaps-tries |
2346 |
Trees, heaps and tries |
| 01-foundations |
graphs-union-find |
2678 |
Graphs and disjoint-set union |
| 01-foundations |
bitmaps-rings-free-lists |
2421 |
Bitmaps, rings and free lists |
| 01-foundations |
sorting-searching |
2681 |
Sorting and searching algorithms |
| 01-foundations |
graph-algorithms |
2147 |
Graph algorithms for systems |
| 01-foundations |
string-parsing-algorithms |
3421 |
String and parsing algorithms |
| 01-foundations |
systems-algorithms |
1891 |
Algorithms used by ChrisOS |
| 02-computer-architecture |
cpu-datapath-isa |
2258 |
CPU datapath and ISA |
| 02-computer-architecture |
microarchitecture-pipeline |
3690 |
CPU microarchitecture and pipelining |
| 02-computer-architecture |
pipeline-hazards-forwarding |
3617 |
Pipeline hazards and forwarding |
| 02-computer-architecture |
branch-prediction-speculation |
3305 |
Branch prediction and speculative execution |
| 02-computer-architecture |
out-of-order-renaming-retirement |
3897 |
Out-of-order execution, renaming and retirement |
| 02-computer-architecture |
machine-code |
1899 |
Machine code and instruction encoding |
| 02-computer-architecture |
x86-registers-flags |
1992 |
x86-64 registers and flags |
| 02-computer-architecture |
x86-instruction-encoding |
1864 |
x86 instruction encoding and addressing modes |
| 02-computer-architecture |
x86-64-memory-privilege |
2274 |
x86-64 memory and privilege |
| 02-computer-architecture |
privilege-rings |
2000 |
Privilege rings, transitions and protection |
| 02-computer-architecture |
memory-controller-dram-organization |
3622 |
DRAM organization and memory controllers |
| 02-computer-architecture |
cache-hierarchy |
2440 |
Caches and memory hierarchy |
| 02-computer-architecture |
coherence |
3146 |
Cache coherence and multiprocessor memory |
| 02-computer-architecture |
buses-mmio-dma |
3924 |
Buses, MMIO and DMA |
| 02-computer-architecture |
pci-pcie |
3678 |
PCI and PCI Express |
| 02-computer-architecture |
atomics-memory-model |
4450 |
Atomics, barriers and memory ordering |
| 02-computer-architecture |
acpi-platform |
3879 |
ACPI and platform description |
| 03-boot |
reset-firmware |
3867 |
Processor reset and platform firmware |
| 03-boot |
uefi |
4561 |
UEFI architecture and boot services |
| 03-boot |
limine |
4187 |
Limine boot protocol |
| 03-boot |
power-on-kstart |
3407 |
Power-on to kstart |
| 03-boot |
elf-linking |
3775 |
ELF, objects and linking |
| 03-boot |
higher-half-kernel |
3713 |
Higher-half kernel layout |
| 03-boot |
linker-script |
3327 |
Kernel linker script anatomy |
| 03-boot |
boot-information |
3728 |
Boot information and memory-map validation |
| 04-kernel |
kernel-model |
5266 |
Kernel model and trust boundaries |
| 04-kernel |
gdt-tss |
1831 |
GDT and TSS |
| 04-kernel |
idt-exceptions |
2189 |
IDT and exception entry |
| 04-kernel |
interrupts-smp |
3237 |
Interrupts and SMP |
| 04-kernel |
pic-apic-ioapic |
1995 |
PIC, LAPIC and IOAPIC |
| 04-kernel |
timers |
1862 |
PIT and timing |
| 04-kernel |
kernel-jobs-kthreads |
1858 |
Kernel jobs and kthreads |
| 04-kernel |
processes-syscalls |
2581 |
Processes and system calls |
| 04-kernel |
user-mode-entry |
2001 |
User-mode entry and return |
| 04-kernel |
user-copy |
1839 |
Safe user-memory access |
| 04-kernel |
process-lifecycle |
2021 |
Process lifecycle and scheduler state |
| 04-kernel |
panic-logging |
1843 |
Panic, serial and kernel logging |
| 05-memory |
physical-memory |
2746 |
Physical memory management |
| 05-memory |
hhdm |
1869 |
Higher-half direct map |
| 05-memory |
pmm-algorithms |
1926 |
PMM allocation algorithms and invariants |
| 05-memory |
virtual-memory |
2719 |
Virtual memory and page tables |
| 05-memory |
page-table-layout |
2885 |
PML4, PDPT, PD and PT |
| 05-memory |
page-faults |
2762 |
Page faults and fault containment |
| 05-memory |
address-spaces |
2710 |
Process address spaces |
| 05-memory |
tlb |
2384 |
Translation Lookaside Buffer |
| 05-memory |
tlb-shootdown |
3082 |
TLB shootdown and reclamation |
| 05-memory |
heap-ownership |
2244 |
Kernel heap and ownership |
| 05-memory |
spinlocks |
2358 |
Spinlocks and lock ordering |
| 05-memory |
resource-lifetime |
2591 |
Resource lifetime and teardown |
| 05-memory |
jit-memory |
2306 |
Executable memory, JIT and W^X |
| 06-storage |
block-storage |
2377 |
Block storage stack |
| 06-storage |
ata |
2811 |
ATA PIO and DMA |
| 06-storage |
ahci |
3133 |
AHCI and SATA |
| 06-storage |
nvme |
3081 |
NVMe queues and namespaces |
| 06-storage |
virtio-block |
3378 |
VirtIO Block |
| 06-storage |
usb-storage |
2948 |
USB mass storage and host controllers |
| 06-storage |
partitions-gpt |
2350 |
Partition tables and GPT |
| 06-storage |
chrisfs |
4010 |
ChrisFS architecture |
| 06-storage |
chrisfs-superblock |
2753 |
ChrisFS superblock and geometry |
| 06-storage |
chrisfs-inodes |
2990 |
ChrisFS inodes and block indirection |
| 06-storage |
chrisfs-directories |
2626 |
ChrisFS directories and path resolution |
| 06-storage |
chrisfs-journal |
2494 |
ChrisFS journaling and recovery |
| 06-storage |
chrisfs-cache |
2377 |
ChrisFS cache and allocation |
| 06-storage |
chrisfs-fsck |
2720 |
ChrisFS consistency checking |
| 07-language-systems |
compiler-pipeline |
2900 |
Compiler construction pipeline |
| 07-language-systems |
lexical-analysis |
2417 |
Lexical analysis |
| 07-language-systems |
parsing |
2454 |
Parsing and grammars |
| 07-language-systems |
semantic-analysis |
3716 |
Semantic analysis and type systems |
| 07-language-systems |
intermediate-representation |
2906 |
Intermediate representations |
| 07-language-systems |
native-codegen |
2650 |
Native code generation |
| 07-language-systems |
calling-conventions |
2701 |
Calling conventions and stack frames |
| 07-language-systems |
chrisc-clvm |
3571 |
ChrisC and CLVM |
| 07-language-systems |
clvm-bytecode |
3404 |
CLVM bytecode format |
| 07-language-systems |
clvm-memory |
3852 |
CLVM memory and isolation |
| 07-language-systems |
clvm-syscalls |
3467 |
CLVM syscall ABI |
| 07-language-systems |
clvm-interpreter |
3326 |
CLVM interpreter |
| 07-language-systems |
jit |
3854 |
CLVM JIT |
| 07-language-systems |
debugger |
3008 |
Debugger and source mapping |
| 07-language-systems |
native-toolchain |
2043 |
KCC, ChrisAsm, ChrisO and ChrisLd |
| 07-language-systems |
kcc |
3122 |
KCC architecture and C profile |
| 07-language-systems |
chrisasm |
2162 |
ChrisAsm |
| 07-language-systems |
chriso |
2215 |
ChrisO object format |
| 07-language-systems |
chrisld |
2655 |
ChrisLd |
| 07-language-systems |
gc-libraries |
3385 |
Libraries, modules and garbage collection |
| 08-graphics |
pixels-framebuffer |
2243 |
Pixels and framebuffer |
| 08-graphics |
color-formats |
2046 |
Color formats and alpha |
| 08-graphics |
gfx2d |
2577 |
2D primitives and composition |
| 08-graphics |
desktop-compositor |
3208 |
Desktop composition |
| 08-graphics |
software-3d |
2154 |
Software 3D |
| 08-graphics |
matrix-transformations |
1941 |
Vector and matrix transformations |
| 08-graphics |
clipping |
1934 |
Clipping and projection |
| 08-graphics |
triangle-rasterization |
1888 |
Triangle rasterization |
| 08-graphics |
depth-buffer |
1872 |
Depth buffering |
| 08-graphics |
textures |
1995 |
Textures and sampling |
| 08-graphics |
parallel-raster |
2072 |
Parallel software rasterization |
| 08-graphics |
virtio-gpu-virgl |
2438 |
VirtIO-GPU and VirGL |
| 08-graphics |
virtio-gpu-transport |
2567 |
VirtIO-GPU transport and resources |
| 08-graphics |
gfx3d-api |
2421 |
Gfx3D backend-neutral API |
| 08-graphics |
virgl-command-stream |
2320 |
VirGL command stream |
| 08-graphics |
shaders-csir |
1946 |
Shaders and CSIR |
| 08-graphics |
shader-frontend |
1917 |
GLSL subset frontend |
| 08-graphics |
csir |
2519 |
Chris Shader IR |
| 08-graphics |
tgsi-backend |
2030 |
TGSI backend |
| 08-graphics |
software-shader |
2336 |
Software shader backend |
| 08-graphics |
mine-graphics |
2288 |
Mine Chris graphics path |
| 09-emulation |
emulator-theory |
2202 |
Machine emulation theory |
| 09-emulation |
x86-decoding |
2854 |
x86 instruction decoding |
| 09-emulation |
emulator-flags |
2751 |
Architectural flags and arithmetic semantics |
| 09-emulation |
emulator-exceptions |
2847 |
Exception delivery in an emulator |
| 09-emulation |
emulator-paging |
2795 |
Guest paging and address translation |
| 09-emulation |
chrisvm-chriscpu |
1936 |
ChrisVM and ChrisCPU |
| 09-emulation |
chris-architecture-state |
2662 |
ChrisArchitectureState |
| 09-emulation |
chrisvm-machine |
2113 |
ChrisMachine lifecycle |
| 09-emulation |
chrisvm-memory-map |
1963 |
ChrisVM physical memory map |
| 09-emulation |
determinism-replay |
2704 |
Determinism and future record/replay |
| 09-emulation |
virtualization-chrishv |
1875 |
Hardware virtualization and ChrisHV |
| 09-emulation |
vmx |
3534 |
Intel VMX |
| 09-emulation |
svm |
2767 |
AMD SVM |
| 09-emulation |
ept-npt |
2523 |
EPT and NPT |
| 10-networking |
network-stack |
2696 |
Network stack and VirtIO networking |
| 10-networking |
ethernet |
2127 |
Ethernet framing |
| 10-networking |
ipv4 |
2179 |
IPv4 and addressing |
| 10-networking |
udp |
1900 |
UDP |
| 10-networking |
tcp |
2224 |
TCP fundamentals and ChrisOS transfer path |
| 10-networking |
virtio-net |
1901 |
VirtIO-net |
| 10-networking |
sockets |
1981 |
Socket ownership and API |
| 11-desktop |
desktop-applications |
2125 |
Desktop and applications |
| 11-desktop |
window-manager |
2161 |
Window manager and task model |
| 11-desktop |
input-routing |
2533 |
Keyboard, mouse and focus |
| 11-desktop |
chriseditor |
2360 |
ChrisEditor architecture |
| 11-desktop |
chrisshell |
1949 |
ChrisShell architecture |
| 11-desktop |
file-manager |
1876 |
File manager architecture |
| 11-desktop |
mine-chris |
1987 |
Mine Chris as a system workload |
| 11-desktop |
doom-port |
2015 |
Doom port and native compatibility |
| 12-self-hosting |
self-hosting-bootstrap |
1902 |
Self-hosting and bootstrap |
| 12-self-hosting |
selfhost-levels |
1837 |
SH0-SH6 evidence model |
| 12-self-hosting |
stage-compilers |
1852 |
Compiler staging and convergence |
| 12-self-hosting |
internal-kernel-build |
1954 |
Internally produced kernel |
| 12-self-hosting |
reproducible-builds |
1869 |
Reproducible builds and provenance |
| 13-real-hardware |
installation-real-hardware |
2160 |
Installation and real hardware |
| 13-real-hardware |
gpt-esp |
1842 |
GPT and EFI System Partition |
| 13-real-hardware |
uefi-disk-boot |
2108 |
Disk-only UEFI boot |
| 13-real-hardware |
hardware-profile |
2870 |
Physical hardware profile |
| 13-real-hardware |
bringup-diagnostics |
2033 |
Hardware bring-up diagnostics |
| 13-real-hardware |
driver-compatibility |
2541 |
Driver compatibility evidence |
| 14-validation |
validation-evidence |
2065 |
Validation and evidence classes |
| 14-validation |
host-tests |
1996 |
Host-test architecture |
| 14-validation |
qemu-gates |
1937 |
QEMU gate architecture |
| 14-validation |
hardware-gates |
1870 |
Physical-hardware validation |
| 14-validation |
fault-injection |
1851 |
Negative testing and fault injection |
| 14-validation |
fuzzing |
1835 |
Fuzzing parsers and formats |
| 14-validation |
performance-measurement |
2179 |
Performance measurement |
| 15-specifications |
specifications-policy |
1936 |
Specifications and revision policy |
| 15-specifications |
chrisvm-spec |
2297 |
ChrisVM specification |
| 15-specifications |
chrisvm-boot-spec |
2046 |
ChrisVM boot protocol |
| 15-specifications |
chriso-spec |
1603 |
ChrisO format |
| 15-specifications |
chrisfs-spec |
2375 |
ChrisFS format |
| 15-specifications |
clvm-spec |
2831 |
CLVM image and syscall specification |
| 15-specifications |
shader-spec |
2540 |
Shader subset and CSIR specification |
| 15-specifications |
bibliography |
2726 |
Primary bibliography |
| 16-history |
architecture-history |
1864 |
Architecture history |
| 16-history |
graphics-history |
2590 |
Graphics architecture history |
| 16-history |
toolchain-history |
2250 |
Native toolchain history |
| 16-history |
chrisvm-history |
2165 |
ChrisVM history |
| 17-developer-guide |
developer-guide |
954 |
Developer guide |
| 17-developer-guide |
development-environment-linux |
961 |
Linux development environment |
| 17-developer-guide |
build-run-debug |
1090 |
Build, run and debug |
| 17-developer-guide |
contribution-workflow |
1017 |
Contribution workflow |
| 17-developer-guide |
development-troubleshooting |
903 |
Development troubleshooting |
| 98-maintenance |
agent-workflow |
2377 |
Low-context agent workflow |
| 98-maintenance |
documentation-schema |
2336 |
Documentation schema and templates |