The goal of this book is to bring together and explain current practice in operating systems. This includes much of what is traditionally covered in operating-system textbooks: concurrency, scheduling, linking and loading, storage management (both real and virtual), file systems, and security. However, I also cover issues that come up every day in operating-systems design and implementation but are not often taught in undergraduate courses. For example, I cover:
Deferred work, which includes deferred and asynchronous procedure calls in Windows, tasklets in Linux, and interrupt threads in Solaris.
The intricacies of thread switching, on both uniprocessor and multiprocessor systems.
Modern file systems, such as ZFS and WAFL.
Distributed file systems, including CIFS and NFS version 4.
This book is based on material I've developed over the past 30+ years for my operating-systems course at Brown University and is suitable for a one-semester course for advanced undergraduates and beginning graduate students. Students taking the course at Brown have generally had an introductory course on computer architecture and an advanced programming course. The course investigates in depth what's done in current operating systems, and its significant programming projects make students come to grips with major operating-system components and attain an intimate understanding of how they work.
But certainly not all students in an OS course want to go on to concentrate in the area, let alone ...