UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers