This course examines the fundamental role of an operating system in relation to the operation of applications. Essential theory of operating systems is covered, including processes, process synchronization, interprocess communications, process scheduling, storage (primary and secondary) management, resource sharing, security, I/O, and user interfaces. At least one of the major Unix shell languages will be covered.