In this chapter, I describe the mechanisms that Linux uses to support the file system, processes, memory management, input/output, and interprocess communications. I also explain some of the main kernel data structures and algorithms.