UNIX operating system
UNIX is a powerful Operating System initially developed by Ken Thompson, Dennis Ritchie at AT&T Bell laboratories in 1970. It is prevalent among scientific, engineering, and academic institutions due to its most appreciative features like multitasking, flexibility, and many more. In UNIX, the file system is a hierarchical structure of files and directories where users can store and retrieve information using the files.
Features of UNIX Operating System:
Let's discuss the features of UNIX OS one by one in detail.
Multitasking: A UNIX operating system is a multitasking operating system that allows you to initiate more than one task from the same terminal so that one task is performed as a foreground and the other task as a background process.
Multi-user: UNIX operating system supports more than one user to access computer resources like main memory, hard disk, tape drives, etc. Multiple users can log on to the system from different terminals and run different jobs that share the resources of a command terminal. It deals with the principle of time-sharing. Time-sharing is done by a scheduler that divides the CPU time into several segments also called a time slice, and each segment is assigned to each user on a scheduled basis. This time slice is tiny. When this time is expired, it passes control to the following user on the system. Each user executes their set of instructions within their time slice.
Portability: This feature makes the UNIX work on different machines and platforms with the easy transfer of code to any computer system. Since a significant portion of UNIX is written in C language, and only a tiny portion is coded in assembly language for specific hardware.
File Security and Protection: Being a multi-user system, UNIX makes special consideration for file and system security. UNIX has different levels of security using assigning username and password to individual users ensuring the authentication, at the level providing file access permission viz. read, write and execute and lastly file encryption to change the file into an unreadable format.
Command Structure: UNIX commands are easy to understand and simple to use. Example: "cp", mv etc. While working in the UNIX environment, the UNIX commands are case-sensitive and are entered in lower case.
Communication: In UNIX, communication is an excellent feature that enables the user to communicate worldwide. It supports various communication facilities provided using the write command, mail command, talk command, etc.
Open Source: UNIX operating system is open source it means it is freely available to all and is a community-based development project.
Accounting: UNIX keeps an account of jobs created by the user. This feature enhances the system performance in terms of CPU monitoring and disk space checking. It allows you to keep an account of disk space used by each user, and the disk space can be limited by each other. You can assign every user a different disk quota. The root user can perform these accounting tasks using various commands such as quota, df, du, etc.
UNIX Tools and Utilities: UNIX system provides various types of tools and utilities facilities such as UNIX grep, sed and awk, etc. Some of the general-purpose tools are compilers, interpreters, network applications, etc. It also includes various server programs which provide remote and administration services.
The structure of Unix OS Layers are as follows:
While working with UNIX OS, several layers of this system provide interaction between the pc hardware and the user. Following is the description of each and every layer structure in UNIX system:
Layer-1: Hardware -
This layer of UNIX consists of all hardware-related information in the UNIX environment.
Layer-2: Kernel -
The core of the operating system that's liable for maintaining the full functionality is named the kernel. The kernel of UNIX runs on the particular machine hardware and interacts with the hardware effectively.
It also works as a device manager and performs valuable functions for the processes which require access to the peripheral devices connected to the computer. The kernel controls these devices through device drivers.
The kernel also manages the memory. Processes are executed programs that have owner's humans or systems who initiate their execution.
The system must provide all processes with access to an adequate amount of memory, and a few processes require a lot of it. To make effective use of main memory and to allocate a sufficient amount of memory to every process. It uses essential techniques like paging, swapping, and virtual storage.
Layer-3: The Shell -
The Shell is an interpreter that interprets the command submitted by the user at the terminal, and calls the program you simply want.
It also keeps a history of the list of the commands you have typed in. If you need to repeat a command you typed it, use the cursor keys to scroll up and down the list or type history for a list of previous commands. There are various commands like cat, mv, cat, grep, id, wc, and many more.
Types of Shell in UNIX System:
Layer-4: Application Programs Layer -
It is the outermost layer that executes the given external applications. UNIX distributions typically come with several useful applications programs as standard. For Example: emacs editor, StarOffice, xv image viewer, g++ compiler etc.