:: Unix :: Operating System ::
Hello Everybody. Today i am going to share about the most secure OS in my article. UNIX is an operating system. It is by and large the most popular operating system existing today. The features and flexibility of UNIX is so immense that it has become a standard for great many operating systems. It is multi-user system, which means that more than one user can work at the same computer system at the same time. UNIX also supports multi-tasking. Multitasking means that more than one program can be made to run at the same time. For example, you can initiate a program and leave it by itself to go on and in the meantime you can work on some other program. Multi-tasking and multi-user are the two most important characteristics of UNIX, which have helped it gain widespread acceptance among a large variety of users.
The UNIX OS files consume 40 MB of the 80 MB disk space. Another 10-20 MB of disk space is eaten up as swap space. This swap space is used at that point of time when UNIX falls short of memory. So, the contents that are not immediately required are stored in the swap space. Any time when the program needs these contents, they are read from the swap space.
Versions of UNIX
The original version of UNIX actually came from AT&T. Because of the great deal of flexibility offered by UNIX, many new companies emerged and brought out their own variations. Some of the popular versions of UNIX are given in Table below.
Version |
Developed by |
UNIX |
AT&T |
AIX |
IBM |
XENIX |
SCO |
ULTRIX |
DEC (Digital Equipment Corporation) |
UNICOS |
Cray Research |
Sun OS |
Cray Research |
BSD |
University of California at Berkeley |
Dynix |
Sequent |
HP/UX |
Hewlett –Packard |
Architecture Of Unix
The interaction between the user and the hardware happens through the operating system. The operating system interacts directly with the hardware. It provides common services to programs and hides the hardware intricacies from them. The high level architecture of the UNIX system has been shown in Figure 1.
The hardware of a UNIX system is present in the centre of the diagram. It provides the basic services such as memory management, processor execution level, etc. to the operating system. The UNIX system seems to be organised as a set of layers. The system Kernel is also called the operating system. The user programs are independent of the hardware on which they are running. Therefore, it becomes very easy to run programs on UNIX system running on different hardware if the programs do make special assumptions. The programs such as the shell and editors like (ed and vi) interact with the Kernel by invoking a well defined set of system calls. The system calls get various actions done from the Kernel for the calling program. They interchange data between the Kernel and the program. There are many other programs in this layer which from a part of the standard system configurations. These programs are known as commands. But there are several other user created programs present in the same layer. It is shown by the program whose name is a.out. ‘a. out ‘ is the standard name for all the executable files produced by the C compiler. The outer most layer contains other application programs which can be build on top of lower level programs. For instance, the C compiler, cc, appears in the outermost layer of the figure. It invokes a C preprocessor, compiler, assembler and link loader. These are all separate lower level programs. The programming style offered by the UNIX system helps us to fulfil a task by combining the existing programs.
Features of UNIX
UNIX is such an operating system that can be run on a wide range of machines, from microcomputers to mainframes. There are a variety of reasons which have made UNIX an extremely popular operating system.
Portability
As of today, there are innumerable computer manufacturers all-over the world. Therefore, the hardware configurations keep varying from one vendor to another. The positive and strong thing about UNIX is that it is running successfully on all these computers. The reason behind UNIX’s portability is that it is written in a high-level language which has made it easier to read, understand and change. Its code can be changed and compiled on a new machine. PCs, Amigas, Macintoshes, Workstations, Minicomputers, Super Computers and Mainframes run the UNIX operating system with equal case successfully.
Machine Independent
The UNIX system does not expose the machine architecture to the user. Thus, it becomes very easy to write applications that can run on micros, minis or mainframes.
Multi-user Capability
As discussed earlier, UNIX is a multi-user system. A multi-user system is a system in which the same computer resources like hard disk, memory etc can be used or accessed by many users simultaneously. Each user is given a terminal (a keyboard and a monitor). Each terminal is an input and an output device for the user. All the terminals are connected to the main computer. So, a user sitting at any terminal can not only use the data or the software of the main computer but also the peripherals like printers attached to it. In UNIX terminology, the main computer is called the server or the console. The number of terminals that can be connected to the server depends upon the number of parts present in the controller card. For instance, an 8- port controller card in the host machine can support 8 terminals.
Multitasking Capability
UNIX has the facility to carry out more than one job at the same time. This feature of UNIX is called multitasking. You can keep typing in a program in its editor while at the same time execute some other command given earlier like copying a file, displaying the directory structure, etc. The latter job is performed in the background and the earlier job in the foreground Multitasking is achieved by dividing the CPU time intelligently between all the jobs that are being carried out. Each job is carried out according to its priority number. Each job gets appropriately small timeslots in the order of milliseconds or microseconds for its execution giving the impression that the tasks are being carried out simultaneously.
Software Development Tools
UNIX offers an excellent environment for developing new software. It provides a variety of tools ranging from editing a program to maintenance of software. It exploits the power of hardware to the maximum extent of effectiveness and efficiency.
Built in Networking
UNIX has got built in networking support with a large number of programs and utilities. It also offers an excellent media for communication with other users. The users have the liberty of exchanging mail, data, programs, etc. You can send your data at any place irrespective of the distance over a computer network.
Security
UNIX supports a very strong security system. It enforces security at three levels. Firstly, each user is assigned a login name and a password. So, only the valid users can have access to the files and directories. Secondly, each file is bound around permissions (read, write, execute). The file permissions decide who can read or modify or execute a particular file. The permissions once decided for a file can also be changed from time to time. Lastly, file encryption comes into picture. It encodes your file in a format that cannot be very easily read. So, if anybody happens to open your file, even then he will not be able to read the text of the file. However, you can decode the file for reading its contents. The act of decoding a coded file is known as decryption.
How We can say Unix as Unique
- UNIX and its variants are the only operating systems that are written in a high-level language. This gives it the benefit of machine independence and portability. It becomes very easy to understand, change and move it to other machines.
- It was the first operating system to bring in the concept of hierarchical file structure. It becomes very easy to organise and search for different files.
- It uses a uniform format for files. This makes the application programs to be written easily. This file format is called the byte stream. UNIX treats every file as a stream of bytes. Therefore, the user can manipulate his file in the manner he wants.
- It provides primitives that allow more complex and complicated programs to be built from simpler ones.
- It has a very simple user interface that has the power to provide all the services the users want. It supports both character-based and graphical based user interfaces.
- It hides the machine architecture from the user. This helps the programmer to write different programs that can be made to run on different hardware configurations.
- It provides a simple, uniform interface to peripheral devices.
- It is a multi-user, multiprocess or operating system.
UNIX Kernel
The services provided by the operating system are infact provided by the Kernel. The Kernel performs various operations and acts as a user interface. The services provided by the Kernel are given below:
- It controls the fate and state of various processes such as their creation, termination and suspension.
- The Kernel allocates main memory for an executing process. The Kernel allows the processes to share portions of their address space. It keeps the private space of processes secure and doesn’t allow tampering from other processes. However, if the free memory is low with the system, then the Kernel frees out some memory by writing a process temporarily to secondary memory. In case the Kernel writes all the processes to the secondary memory, it is called a swapping system. However, if only the pages of memory are written onto the secondary memory, then it is called the paging system.
- The Kernel schedules processes for execution on the CPU. The time sharing concept allows the processes to share the CPU. When the time of a process has finished, the Kernel suspends it and puts some other ready process for execution in the CPU. It is again the work of the Kernel to reschedule the suspended process.
- The Kernel permits different processes to make use of the peripheral devices such as terminals, tape drives, disk drives and network devices as and when requested.
- The Kernel allocates the secondary memory for efficient storage and retrieval of user data. The Kernel allocates secondary storage for user files, organises the file system in a well planned manner and provides security to user files from illegal access.
The services provided by the Kernel are absolutely transparent to the user. For instance, the Kernel formats the data present in a file for internal storage. However, it hides the internal format from user processes. Similarly, it makes a distinction between the regular file or a device but hides the distinction from user processes. Finally, the Kernel provides the services so that the user level processes can support the services they must provide. For instance, the Kernel provides the services that the shell requires to act as a command interpreter. Therefore, the Kernel allows the shell to read terminal input, to create pipes and to redirect I/O. The computer users can also create private versions of the shell so that they can create an environment according to their own requirements without disturbing the other users.