-
Startup, malloc & break, heaps & stacks, pthreads, kernel traps, shared memory, queues, preemption, system calls.
Arrays, linked lists, doubly linked lists, queues, hashes, stacks, binary trees, b*trees, big O analysis.
Heap sort, quick sort, shell sort, merge sort, radix sort, insertion sort, bubble sort.
Open/close/read/write semantics, cacheing, atomic transactions, hierarchies, locking, meta data, reording, on disk formats, inodes, over the wire formats, NAS, SAN.
Raw & cooked, character & block, blocking, cacheing, read ahead, load/unload, USB, HBA, NIC, interrupts, DMA, out of band interrupts, in band interrupts, device semantics.
LInking, ABIs, loading, load linkers.
Function prologue, epilogue, paramters, early exit, setjmp, longjmp, varargs, call by value, call by reference, returning structs.
ABIs, returning 64 bits on a 32 bit processor, multiply, divide, long add.
Math lib, semantics, mechanics of shifting carry, overflow, and divide issues.
Front side bus, DRAM, transistors, registers, adders, caches, cache lines, memory write buffer, address error, reordering.
PCI, ISA, PCIe, non-cacheable I/O, read penalty, fire & forget writes.
Binary translation, MMU, page tables, page faults, TLB, vmentry, vmexit, paravirtualization.
UP, SMP, NUMA, cache coherence, read/write reordering, race conditions, deadlocks, fast bcopy, exception handling, IPI, panic, kgdb, kthreads, processes, virtual addresses, startup, starting an additional processor, exceptions & interrupts.