Explain the layered aspect of a UNIX system. What are the layers? What does it mean to say they are layers?
A UNIX system has essentially three main layers:
. The hardware
. The operating system kernel
. The user-level programs
The kernel hides the system’s hardware underneath an abstract, high-level programming interface. It is responsible for implementing many of the facilities that users and user-level programs take for granted.
The kernel assembles all of the following UNIX concepts from lower-level hardware features:
. Processes (time-sharing, protected address space)
. Signals and semaphores
. Virtual Memory (swapping, paging, and mapping)
. The filesystem (files, directories, namespace)
. Pipes and network connections (inter-process communication)





