← Back
Home › Systems › Operating systems and runtimes

os-kernel

operating system kernel

Linux

SystemTechniques · 2Primitives · 21 os-kernel Block io multiqueuehardware-os · medium: Per-CPU submission queues mapped to hardware queues, tags and I/O schedulers (blk-mq)Cpu scheduling eevdfhardware-os · medium: Fair CPU scheduling: virtual runtime, CFS and EEVDF virtual deadlines, run queues, load balancingInterrupt handlinghardware-os · low: How a device signal reaches a CPU handler through an interrupt controller and vector table, and how top/bottom halves, polling switch-over and coalescing keep load bounded.›Context switchinghardware-os · low: Handing a core to another task by saving and loading registers, stack and address space; the hidden cache and TLB cost outweighs the direct one.›Futex-based mutexconcurrency · low: A mutex that is one atomic word in user space and enters the kernel (futex wait/wake) only under contention; how std and glibc locks work.›RCU (read-copy-update)concurrency · low: Readers access shared data with no locks or atomic writes; writers publish a new copy and free the old one after a grace period.›Spinlocks ticket mcsconcurrency · low: Test-and-set, ticket and MCS queue spinlocks; when spinning beats sleepingCgroups and namespaceshardware-os · low: Linux namespaces limit what a process can see; cgroup v2 limits and accounts what it may use. Containers, sandboxes and job schedulers are built from the two.›Copy-on-write forkhardware-os · low: fork() gives the child the parent's whole address space by sharing pages read-only and copying one only when someone writes it; vfork and posix_spawn skip even that.›DMA and IOMMUhardware-os · low: How devices move data by direct memory access, and how an IOMMU gives each device its own address space, faults on stray accesses and lets user space or guests own a device safely.›mmap and the page cachehardware-os · low: How read() and mmap reach file data through the kernel page cache, what readahead and madvise do, and why databases use their own buffer pool instead.›System call interfacehardware-os · low: The controlled gate between user code and the kernel: number and arguments in registers, a trap instruction, a validated handler, a result or error code.›Virtual memory and the TLBhardware-os · low: How page tables and TLBs translate every address, what TLB reach means, and when 2 MiB or 1 GiB huge pages pay off on Linux.›io_uringnetworking · low: Linux async I/O through two shared-memory rings (submissions in, completions out), batching or eliminating syscalls for sockets and files alike.›Buddy allocatorsystems · low: Power-of-two block splitting and coalescing; base of kernel page and GPU heap allocatorsHierarchical timing wheelsystems · low: Timers bucketed by expiry into wheels of slots, coarser wheels for far deadlines: O(1) insert and cancel for millions of timeouts.›LRU and CLOCKsystems · low: LRU evicts the least recently used entry via hash map plus linked list; CLOCK approximates it with a reference bit, so hits take no lock.›Slab allocatorsystems · low: Pre-carve pages into equal-size slots per size class with an in-place free list: O(1) alloc and free, no external fragmentation, cache-warm reuse.›+ 5 more primitives

Similar systems

Share the most building blocks with this one.