The UNIX Structure
In order to understand UNIX, we must first understand the UNIX philosophy. UNIX is a layered operating system.
The inner most layer is the hardware layer, which provides services to the operating system. The kernel, which sits between the hardware and the programs, acts as an intermediary between the hardware and the programs.
The program, which is in the outermost layer, does not need to know about how the hardware works. All it needs to know is how to provide service to the user.
But if the kernel interacts with both the hardware and the programs, how does a program interact with the kernel? Well, the program interacts with the kernel through a bunch of system calls. This brings in a level of abstraction for each layer. In other words, it separates the ‘what to do’ from the ‘how to do it’.
UNIX not only allows multiple users to log into the operating system, it also allows users to run the same or different programs all at the same time.