Historically, a contemporary operating system combines the functions of an extended machine and a resource manager. The extended machine separates applications from the low-level platform-dependent details by providing high-level platform-independent abstractions such as windows, sockets, files. The resource manager separates applications from each other by providing mechanisms such as sharing and locking.
Both the extended machine and the resource manager rely on established hardware concepts to build operating system structure and provide operating system abstractions. The following sections summarize well known concepts found in contemporary hardware and well known structure and abstractions found in contemporary operating systems. The sections are styled as a crash course on things either known in general or outside the scope of this book, presented to familiarize the reader with the background and terminology.
Needless to say, none of the things outlined here is definitive. Rather than that, they simply appear as good solutions at this time and can be replaced by better solutions any time in the future.