Unix is a multitasking, multiuser operating system. It is also referred to as the heart of all operating system. It also acts as the base of popular OS like Linux and Ubuntu. Unix is also one of the first PORTABLE operating systems and also played a very important role in the development of networking, the World Wide Web and the INTERNET.
The Unix operating system architecture consists of four layers namely,
- The Hardware.
- The Kernel.
- System Call Interface or SHELL.
- Application Programs or Libraries.
The visualization of the architecture is down below.
TABLE OF CONTENTS
LAYER 1 – The Hardware
This layer includes all the hardware related information of the system. The information of all parts of the computer and all the input and output devices attached to it is stored in this layer.
LAYER 2 – The Kernel
The Kernel is the heart of any Operating System. It is the central part of the OS that interacts directly with the hardware of the computer. It accomplishes this with the help of a device built into the kernel. Kernel is also the central and most important part of the Unix Architecture. The main functions of the Kernel are:
- The hardware of the computer like RAM, keyboard, mouse, printers, etc. are controlled by the Kernel.
- The Kernel is responsible for controlling access to the computer between different users.
- It schedules and manages different processes and executes the different operations and tasks.
- It manages and maintains the file system.
- It is also responsible for error handling.
- The kernel performs the different input and output services.
- The kernel also has sub-components like drivers to control hardware peripherals, boot code, header files.
- Memory management, File management are also performed by the kernel.
- It also handles interrupts.
LAYER 3 – The Shell/ System Call Interface
The interface which enables interaction between the user and the kernel is called The Shell. The Shell is controlled by giving different commands. These commands are called Shell Commands. The Shell executes these Shell commands and performs the task indicated by the command. It reads the commands and interprets them and then sends a request to execute a particular program. Thus, the Shell has also earned the name of command interpreter. The Shell commands have a fixed and standard syntax. Most commonly these commands start with ‘sh’. There are more than 100 commands to interact with the system in Unix called system calls. A user can create a script of these shell commands to perform a particular task they want to perform. Basic functions include opening a file and writing in it, executing different programs, terminating processes, changing the executing priorities of different processes, getting the current date and time, getting calendars of any year or obtaining info about any file or the whole system and much more.
LAYER 4 – Application Programs/ Libraries
This layer is also termed as the application layer which is responsible for executing the external applications or user-written applications installed on the Unix.
PROPERTIES of UNIX operating system–
- Different users can work on the Unix OS by simultaneously connecting through a device file called terminal which is basically used to give commands to the shell.
- Similarly, many users can also execute different applications and programs on the Unix simultaneously.
- Unix uses high level language so it can be modified and used with different computer architectures.
- Unix architecture relies on the TCP/ IP protocol for communication between different components of the Unix architecture. The shell and the kernel communicate with each other using a protocol of TCP/IP called Unix-to-Unix Copy (UUCP).
- The Kernel and the Shell work in conjunction with each other to execute any commands given by the user.
Aayush Kumar Gupta is the founder and creator of ExploringBits, a website dedicated to providing useful content for people passionate about Engineering and Technology. Aayush has completed his Bachelor of Technology (Computer Science & Engineering) from 2018-2022. From July 2022, Aayush has been working as a full-time Devops Engineer.