⟩ 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 file system (files, directories, namespace)
# Pipes and network connections (inter-process communication)