Introduction to UNIX System
Unix is an Operating System that is truly the base of all Operating Systems like Ubuntu, Solaris, POSIX, etc. It was developed in the 1970s by Ken Thompson, Dennis Ritchie, and others in the AT&T Laboratories. It was originally meant for programmers developing software rather than non-programmers.
Unix and the C were found by AT&T and distributed to government and academic institutions, which led to both being ported to a wider variety of machine families than any other operating system. The main focus that was brought by the developers in this operating system was the Kernel. Unix was considered to be the heart of the operating System. The system Structure of Unix OS are as follows:
UNIX is a family of multitasking, multiuser computer operating systems developed in the mid 1960s at Bell Labs. It was originally developed for mini computers and has since been ported to various hardware platforms. UNIX has a reputation for stability, security, and scalability, making it a popular choice for enterprise-level computing.
For those preparing for exams like GATE, a thorough understanding of operating systems, including Unix, is essential. Our GATE course provides an in-depth exploration of Unix, covering its history, structure, and key concepts that are crucial for the exam
The basic design philosophy of UNIX is to provide simple, powerful tools that can be combined to perform complex tasks. It features a command-line interface that allows users to interact with the system through a series of commands, rather than through a graphical user interface (GUI).
Some of the key features of UNIX include:
- Multiuser support: UNIX allows multiple users to simultaneously access the same system and share resources.
- Multitasking: UNIX is capable of running multiple processes at the same time.
- Shell scripting: UNIX provides a powerful scripting language that allows users to automate tasks.
- Security: UNIX has a robust security model that includes file permissions, user accounts, and network security features.
- Portability: UNIX can run on a wide variety of hardware platforms, from small embedded systems to large mainframe computers.
- Communication: UNIX supports communication methods using the write command, mail command, etc.
- Process Tracking: UNIX maintains a record of the jobs that the user creates. This function improves system performance by monitoring CPU usage. It also allows you to keep track of how much disk space each user uses, and the use that information to regulate disk space.
Today, UNIX is widely used in enterprise-level computing, scientific research, and web servers. Many modern operating systems, including Linux and macOS, are based on UNIX or its variants.
Figure – system structure
- Layer-1: Hardware: It consists of all hardware related information.
- Layer-2: Kernel: This is the core of the Operating System. It is a software that acts as the interface between the hardware and the software. Most of the tasks like memory management, file management, network management, process management, etc., are done by the kernel.
- Layer-3: Shell commands: This is the interface between the user and the kernel. Shell is the utility that processes your requests. When you type in a command at the terminal, the shell interprets the command and calls the program that you want. There are various commands like cp, mv, cat, grep, id, wc, nroff, a.out and more.
- Layer-4: Application Layer: It is the outermost layer that executes the given external applications.
Figure – kernel and its block diagram
This diagram shows three levels: user, kernel, and hardware.
- The system call and library interface represent the border between user programs and the kernel. System calls look like ordinary function calls in C programs. Assembly language programs may invoke system calls directly without a system call library. The libraries are linked with the programs at compile time.
- The set of system calls into those that interact with the file subsystem and some system calls interact with the process control subsystem. The file subsystem manages files, allocating file space, administering free space, controlling access to files, and retrieving data for users.
- Processes interact with the file subsystem via a specific set of system calls, such as open (to open a file for reading or writing), close, read, write, stat (query the attributes of a file), chown (change the record of who owns the file), and chmod (change the access permissions of a file).
- The file subsystem accesses file data using a buffering mechanism that regulates data flow between the kernel and secondary storage devices. The buffering mechanism interacts with block I/O device drivers to initiate data transfer to and from the kernel.
- Device drivers are the kernel modules that control the operator of peripheral devices. The file subsystem also interacts directly with “raw” I/O device drivers without the intervention of the buffering mechanism. Finally, the hardware control is responsible for handling interrupts and for communicating with the machine. Devices such as disks or terminals may interrupt the CPU while a process is executing. If so, the kernel may resume execution of the interrupted process after servicing the interrupt.
- Interrupts are not serviced by special processes but by special functions in the kernel, called in the context of the currently running process.
Difference between Unix and Linux
Linux is essentially a clone of Unix. But, basic differences are shown below:
Linux | Unix |
---|---|
The source code of Linux is freely available to its users | The source code of Unix is not freely available general public |
It has graphical user interface along with command line interface | It only has command line interface |
Linux OS is portable, flexible, and can be executed in different hard drives | Unix OS is not portable |
Different versions of Linux OS are Ubuntu, Linux Mint, RedHat Enterprise Linux, Solaris, etc. | Different version of Unix are AIS, HP-UX, BSD, Iris, etc. |
The file systems supported by Linux are as follows: xfs, ramfs, vfat, cramfsm, ext3, ext4, ext2, ext1, ufs, autofs, devpts, ntfs | The file systems supported by Unix are as follows: zfs, js, hfx, gps, xfs, vxfs |
Linux is an open-source operating system that was first released in 1991 by Linus Torvalds. | Unix is a proprietary operating system that was originally developed by AT&T Bell Labs in the mid 1960s. |
The Linux kernel is monolithic, meaning that all of its services are provided by a single kernel. | The Unix kernel is modular, meaning that it is made up of a collection of independent modules that can be loaded and unloaded dynamically. |
Linux has much broader hardware support than Unix. | Unix was originally designed to run on large, expensive mainframe computers, while Linux was designed to run on commodity hardware like PCs and servers. |
User Interface of Linux is Graphical or text-based. | User Interface of unix is text-based. |
Command Line Interface of Linux is Bash, Zsh, Tcsh. | Command Line Interface of unix is Bourne, Korn, C, Zsh. |
Advantages of UNIX:
- Stability: UNIX is known for its stability and reliability. It can run for long periods of time without requiring a reboot, which makes it ideal for critical systems that need to run continuously.
- Security: UNIX has a robust security model that includes file permissions, user accounts, and network security features. This makes it a popular choice for systems that require high levels of security.
- Scalability: UNIX can be scaled up to handle large workloads and can be used on a variety of hardware platforms.
- Flexibility: UNIX is highly customizable and can be configured to suit a wide range of needs. It can be used for everything from simple desktop systems to complex server environments.
- Command-line interface: UNIX’s command-line interface allows for powerful and efficient interaction with the system.
Disadvantages of UNIX:
- Complexity: UNIX can be complex and difficult to learn for users who are used to graphical user interfaces (GUIs).
- Cost: Some UNIX systems can be expensive, especially when compared to open-source alternatives like Linux.
- Lack of standardization: There are many different versions of UNIX, which can make it difficult to ensure compatibility between different systems.
- Limited software availability: Some specialized software may not be available for UNIX systems.
- Steep learning curve: UNIX requires a certain level of technical knowledge and expertise, which can make it challenging for novice users.
Conclusion
In this article we discussed Unix which is developed in the 1970s, the foundational operating system behind Linux and macOS. Emphasizing simplicity and a command-line interface, Unix’s multitasking, multiuser structure boasts stability, security, and scalability. It uses a kernel, shell commands, and an application layer. Despite its complexity, Unix remains a powerful choice for enterprise computing.
Contact Us