An introduction to the principles and concepts of operating systems to include process management, memory management, and storage management. Emphasis is placed on learning the principles and then applying them in various systems programming exercises.