Glossary
- ASID
-
Address Space Identifier. A hardware tag (16-bit on aarch64) stored in TTBR0 that distinguishes TLB entries belonging to different VSpaces. Avoids full TLB flushes on context switch. Not used on x86_64.
- Badge
-
A 64-bit value embedded in a capability via the
mintoperation. Delivered to the receiver during IPC to identify the sender. Only endpoints and notifications can be badged. - Bound notification
-
A notification linked to a TCB via
TCB_BIND_NOTIFICATION. Signals on the bound notification wake the TCB even if it is blocked on an endpointRecv. See Bound Notifications. - Capability
-
An unforgeable 32-byte token that names a kernel object and carries rights to perform operations on it. The sole mechanism for accessing kernel resources.
- CapRef
-
A 4-byte index (
u32) into the global slot array. Stored in CNode entries.CapRef::null()usesINVALID_SLOT = 0xFFFF_FFFF. - CDT (Capability Derivation Tree)
-
A tree structure tracking parent-child relationships between capability slots. Stored as linked-list pointers in CapSlotMeta. Enables revocation of all capabilities derived from a given slot.
- CNode (Capability Node)
-
A kernel object that stores an array of CapRef entries. CNodes form a tree that constitutes a thread’s CSpace. Size: 16 to 65,536 slots (4 to 16 bits).
- commit_lock
-
A per-MemoryObject spinlock that serializes all reads and writes to the MO’s radix tree (pages) and the cow_parent field. Disjoint with rmap_lock (never hold both). Ordering: commit_lock -> ut.alloc_lock -> FRAME_LOCK. See Lock Ordering.
- COW (Copy-on-Write)
-
A memory optimization where parent and child MemoryObjects share physical pages until a write occurs. The write triggers a page fault, and the kernel copies the page to the writer’s private MO.
- cow_install_atomic
-
A VSpace method that atomically installs a COW-resolved page across three domains: (1) radix tree BUSY reservation, (2) PTE + TLB + PMM mapping-ref publish, (3) radix finalize, (4) pmm_set_owner(MoData) commit point. All under MO.commit_lock. See Page Fault Handling.
- CowPool
-
A ring-buffer of pre-donated physical frames attached to a VSpace for fast COW fault resolution. Frames are retagged to KernelPrivate\{CowPool} on donation and returned to PMM on VSpace cleanup if unconsumed. See Physical Memory.
- CSpace (Capability Space)
-
The namespace through which a thread addresses capabilities. A tree of CNodes rooted at the thread’s CSpace root (slot 2).
- Demand paging
-
A page fault resolution strategy where physical frames are allocated on first access rather than at map time. Marked in PTEs with
PRESENT=0, DEMAND=1. - Direct physical map
-
A permanent kernel mapping of all physical memory at offset
PHYS_MAP_OFFSET(0xFFFF_8000_0000_0000). Established during boot. See Memory Layout. - EDF (Earliest Deadline First)
-
The scheduling algorithm used by kernite. The thread with the earliest absolute deadline runs first. Combined with budget enforcement for temporal isolation.
- Endpoint
-
A synchronous IPC channel. Sender and receiver rendezvous: one blocks until the other arrives. See Endpoints.
- Fastpath
-
An assembly-optimized dispatch path for
Call(syscall 2) andReplyRecv(syscall 3) that handles short messages without capability transfer. See IPC Fastpath. - Frame
-
A 4 KB physical memory page. The unit of allocation in the PMM.
- FrameOwner
-
An enum tag on each physical frame in the PMM that identifies the frame’s current purpose: Free, UntypedReserved, MoData, MoMeta, KernelPrivate (sub-kinds: PageTable, KernelStack, MapleNode, General, CowPool), PageCache, or EmergencyReserve.
- Global slot array
-
A boot-time allocated array storing all live capabilities and their metadata (CDT links, untyped links, state). Sized by
clamp(free_frames / 4, 768, 131_072). - IPC buffer
-
A 4,096-byte (one page) structure mapped into each thread’s address space. Carries overflow message registers (MR4-MR19), capability transfer slots, and receiver configuration. See Endpoints.
- IPI (Inter-Processor Interrupt)
-
A software-generated interrupt sent between CPUs. Used for reschedule, TLB shootdown, and shutdown. SGI on aarch64; APIC IPI on x86_64.
- Kernel object
-
Any resource managed by the kernel: endpoint, notification, TCB, CNode, VSpace, frame, IRQ handler, I/O port, SchedContext, MemoryObject, or untyped memory. See Object Model.
- Maple tree
-
A B-tree variant used by VSpace to track virtual address regions (VmAreas). Supports efficient range queries.
- MemoryObject (MO)
-
A page-granular memory abstraction that manages physical pages via a 4-level radix tree. Supports commit, decommit, COW clone, and reverse mappings.
- Mint
-
A capability operation that creates a badged copy of an endpoint or notification capability. The minted capability cannot have
GRANTright — it is a delegation dead-end. - Notification
-
An asynchronous signaling primitive. Stores a 64-bit bitmap of pending signal bits. Never blocks the signaler. See Notifications.
- PIP (Priority Inheritance Protocol)
-
A mechanism that temporarily boosts a low-priority thread’s effective deadline when a higher-priority thread blocks waiting for it. Prevents priority inversion. See Threads.
- PMM (Physical Memory Manager)
-
The kernel’s bitmap-based frame allocator. Sole owner of all physical frames. See Physical Memory.
- Radix tree
-
A 4-level tree (512 entries per node, 9 bits per level) used by MemoryObjects to map page indices to physical addresses. Capacity: 256 TB.
- Retype
-
The operation that carves typed kernel objects from untyped memory. Invoke label
0x20. - Role capability table
-
The startup structure (
TronaCapTableV1) that binds role IDs to resolved capabilities in a spawned process’s CSpace. Delivered to the child through theAT_TRONA_CAP_TABLE(0x101C) auxv tag. Child processes look up service endpoints by role — there are no hardcoded CSpace slot numbers. See Role-Based Capability Table. - Role ID
-
A 16-bit identifier used as the key into the role capability table. System roles occupy
0x0001-0x00FF; process-local roles occupy0x0100-0x0FFF(LOCAL_ROLE_BASE..LOCAL_ROLE_END). - Revoke
-
A capability operation that recursively destroys all capabilities derived from a given slot (depth-first CDT traversal). The only operation that tears down an authority subtree.
- SchedContext (Scheduling Context)
-
A kernel object that encapsulates scheduling parameters: budget, period, deadline, priority. Bound to a TCB via
SC_BIND. - Subsystem
-
A personality layer that provides a specific API surface to userspace processes. SaltyOS supports POSIX (ID 0) and Win32 (ID 1). Each subsystem has dedicated servers (e.g., posix_ttysrv for POSIX, win32_csrss for Win32). See Architecture.
- TCB (Thread Control Block)
-
A kernel object representing a schedulable thread. Contains register save area, VSpace/CSpace pointers, IPC buffer address, FPU state, and scheduling state. See Threads.
- TLB shootdown
-
The process of invalidating stale TLB entries on remote CPUs after a page table modification. Uses IPI to notify affected CPUs. See Virtual Address Spaces.
- Untyped memory
-
Raw physical memory from which all kernel objects are created via retype. The kernel has no general-purpose heap — all object allocation is explicit.
- VmArea (Virtual Memory Area)
-
A 24-byte descriptor in the Maple tree that records a mapping: which MO pages are visible at which virtual addresses with which permissions.
- VSpace (Virtual Address Space)
-
A kernel object wrapping a hardware page table root. Tracks mappings via a Maple tree. Observer layer — owns no frames.
- Watermark
-
The allocation cursor in an untyped memory region. Advances forward on each retype. Only resets via explicit
reset()when no children exist.