Last Updated on July 11, 2023 by Mayank Dham
UNIX, an operating system with a rich history, was originally created by Ken Thompson and Dennis Ritchie at AT&T Bell Laboratories in 1970. Renowned for its power and versatility, UNIX has gained widespread usage in scientific, engineering, and academic environments. One of its notable features is multitasking, enabling users to execute multiple processes concurrently. Furthermore, UNIX offers flexibility and various other commendable attributes. Within the UNIX system, the file system is organized in a hierarchical structure comprising files and directories. This arrangement allows users to store and retrieve information by interacting with these files.
Features of UNIX Operating System:
Let’s discuss the features of UNIX OS one by one in detail.
Multitasking: The UNIX operating system is designed for multitasking, enabling users to initiate multiple tasks simultaneously from a single terminal. This allows for the execution of one task as a foreground process while running another task in the background.
Multi-user: The UNIX operating system supports concurrent access to computer resources, such as main memory, hard disks, and tape drives, by multiple users. Different users can log on to the system from various terminals and perform different tasks, utilizing the resources of a command terminal. This is achieved through the concept of time-sharing, facilitated by a scheduler.
The time-sharing mechanism involves dividing the CPU time into small segments, often referred to as time slices. Each user is assigned a time slice during which they can execute their set of instructions. Once the time slice for a user expires, control is passed to the next user in the system, ensuring fair allocation of CPU time among multiple users. This allows each user to perform their tasks within their designated time slice.
Portability: The portability of UNIX across various machines and platforms is a prominent feature, enabling the easy transfer of code to different computer systems. UNIX achieves this by primarily implementing its code in the C programming language, with only a small portion written in assembly language for specific hardware requirements.
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 designed to be user-friendly, easy to comprehend, and straightforward to utilize. For instance, commands like "cp" (for copying files) and "mv" (for moving files) are intuitive and easy to remember. When operating within the UNIX environment, it’s important to note that the commands are case-sensitive and should be entered in lowercase.
Communication: UNIX offers robust communication capabilities, allowing users to engage in worldwide communication. This operating system supports a wide range of communication facilities facilitated through commands such as "write," "mail," "talk," and more. These commands enable users to effectively communicate with others, whether it be sending messages, emails, or engaging in real-time conversations.
Open Source: The UNIX operating system is characterized as open-source, which implies that it is freely accessible to everyone and is developed through a collaborative community effort.
Accounting: UNIX maintains a record of user-created jobs, providing valuable insights into system performance, including CPU monitoring and disk space management. This feature enables the tracking of disk space utilization by individual users and facilitates the allocation of disk quotas to restrict usage. Each user can be assigned a specific disk quota, ensuring fair resource allocation.
Accounting tasks related to disk space management and monitoring can be performed by the root user through a range of commands such as "quota," "df," and "du." These commands provide information about disk usage, and available space, and enable the enforcement of disk quotas.
By leveraging these accounting functionalities, UNIX empowers administrators to effectively manage system resources, optimize performance, and maintain control over disk space allocation.
UNIX Tools and Utilities: The UNIX system offers a wide array of tools and utilities, including popular ones like grep, sed, and awk. These tools are designed to assist with tasks such as searching for patterns in files (grep), performing text transformations (sed), and processing structured data (awk). In addition to these general-purpose tools, UNIX provides a comprehensive range of compilers, interpreters, and network applications.
Furthermore, UNIX includes server programs that deliver remote access and administration services. These server programs facilitate activities like remote file sharing, remote login, and remote execution of commands, enabling seamless collaboration and efficient management of resources across a network.
The structure of Unix OS Layers is as follows:
In the UNIX operating system, there are multiple layers that facilitate communication and interaction between the hardware of a computer and the user. Each layer serves a specific purpose in the overall structure of the UNIX system. The following provides a description of each layer:
Layer-1: Hardware –
This layer within the UNIX environment encompasses all the hardware-related information and components.
Layer-2: Kernel –
The kernel, the heart of the operating system, is responsible for maintaining the overall functionality of the system. In the UNIX environment, the kernel operates directly on the specific hardware of the machine and efficiently interacts with it.
Additionally, the kernel acts as a device manager, facilitating crucial functions for processes that require access to peripheral devices connected to the computer. It controls these devices through device drivers.
Furthermore, the kernel plays a vital role in memory management. Processes, which are executed programs initiated by either users or system entities, rely on the kernel to allocate and manage memory resources.
The system must ensure that all processes have access to an adequate amount of memory, with some processes requiring more than others. To optimize the utilization of main memory and allocate sufficient memory to each process, the kernel employs essential techniques such as paging, swapping, and virtual storage. These techniques enable efficient memory management within the system.
Layer-3: The Shell –
The Shell, acting as an interpreter, interprets the commands entered by the user at the terminal and executes the desired program.
In addition, the Shell maintains a history of previously entered commands, allowing for easy recall. By using the cursor keys, users can navigate through the command history, scrolling up and down the list. Alternatively, the "history" command can be used to display a list of previous commands.
The Shell provides a wide range of commands, including "cat," "mv," "grep," "id," "wc," and numerous others, offering versatile functionality for various tasks.
Types of Shell in UNIX System:
The original and most prevalent Shell in UNIX is known simply as "the Shell." It was the initial Shell developed for the UNIX operating system and continues to be extensively available across UNIX systems today.
Another widely used Shell on UNIX systems is the C shell. Developed by the University of California at Berkeley, the C shell addressed certain limitations of the Bourne shell, making it a popular choice among users.
David Korn developed this Shell with the intention of addressing the user-interaction problems of the Bourne Shell and overcoming the scripting limitations of the C shell.
Layer-4: Application Programs Layer –
Serving as the outermost layer, this component executes external applications within the UNIX system. UNIX distributions commonly include a variety of useful application programs as part of their standard package. Examples of such programs include the emacs editor, StarOffice, xv image viewer, and the g++ compiler.
The UNIX operating system, developed in the 1970s, has become a powerful and widely used platform. It offers numerous features such as multitasking, flexibility, and a hierarchical file system. UNIX supports communication facilities, provides security measures, and allows for easy transfer of code across different computer systems. It comprises layers including hardware, kernel, shell, utility, and application layers, each playing a crucial role in system functionality. UNIX’s open-source nature and extensive toolset have made it a popular choice for various domains and industries.
Frequently Asked Questions (FAQs) about UNIX Operating System:
Frequently asked questions related to UNIX Operating System are given below:
Q1. What is UNIX?
UNIX is an operating system originally developed in the 1970s. It provides a platform for running applications and managing computer resources.
Q2. What are some key features of UNIX?
UNIX offers multitasking, a hierarchical file system, command-line interface, networking capabilities, portability, and a rich set of tools and utilities.
Q3. Is UNIX an open-source operating system?
Yes, UNIX is an open-source operating system. It is freely available, and its source code can be modified and distributed under specific licensing terms.
Q4. What is the role of the kernel in UNIX?
The kernel is the core component of the UNIX operating system. It manages system resources, controls processes, handles input/output operations, and provides various system services.
Q5. Can UNIX be used on different hardware platforms?
Yes, UNIX is designed to be portable and can be used on various hardware platforms, including different processors and computer architectures.
Q6. What are some commonly used shells in UNIX?
Some commonly used shells in UNIX are the Bourne shell (sh), C shell (csh), Korn shell (ksh), and Bourne Again shell (bash).