This book introduces the reader to the principles and practice of operating-system design. It is intended to serve as a textbook for undergraduate and first-year graduate courses in Computer Science and Computer Engineering programs and as a reference for professionals.