Posted by Amrita Gautam at May 15, 2021
UNIX follows Layered architecture as shown in figure below. It consists of four main layers called: Hardware, shall and Utilities.
It Consist with all physical components of computer system and hardware modules of the system visible with naked eyes such as:monitor, CPU, RAM etc.
The kernel of UNIX is the hub of the operating system: it allocates time and memory to programs and handles the file storage and communications in response to system calls. It manages the communication between software components and hardware.
Architecture of kernel
Hardware level: The whole architecture of system kernel is divided into 3 levels user level, kernel level and hardware level. At the kernel level there are three system: System call Interface, process control sub system, File system,device and Hardware control.
Process Control 1 subsystem: It is responsible for process synchronisation; Inter process Communication, Memory Management and process Scheduling i.e. allocate CPU to processes.
File System: A file system is a collection of files and directories on a disk or tape in standard UNIX file system former. Kernel’s file sub system regulates data flow between the kernel and secondary storage devices.
Device Drivers or Controllers: A collection of the drivers or controllers for devices installed or attached with the system.
Hardware Control: Hardware control is responsible for handling interrupts and for communication with the machine. Devices such as disks or terminals may interrupt the CPU while a process is executing. The kernel may resume execution of the interrupted process after servicing the interrupt.
System call Interface: System call interface is responsible to handle all the system calls generated by users to access the services of operating system and passes all the calls accordingly to various modules.
Functions of kernel
The main goal of kernel is to manage all the resources of operating system. The functions of kernel are as follows:
It keeps track of all the various programs beging run.
It allocates time to each process, decides when one will stop and another will start, also called as process scheduling.
It serves as an interface between the shell and the UNIX command on the one hand and the hardware on the other hand.
manage memory, to control access to the computer also called as Memory management.
Maintain file system.
Allow to interact with terminals, storage devices and to allocate the resources to the computers.
Manage the functionnality of all the devices attach to the system also called as Device Management.
The shell is both a command language that provides an interface to the UNIX operating system, we must give the shell command. If the command requires a utility, the shell requests of the utility by kernel. If the command requires an application program, the shell requests that it to run.
There are two major parts of shell: the first parts is called as interpreter and second part is called as shell script. The interpreter read commands given by the user and pass to the kernel to execute them. The shell script part provides the programming facilities that allow user to write a shell script or program using shell commands.
There are three standard shells used in UNIX:
This is the original UNIX shell written by Steve Bourne of Bell Labs. It is available on all UNIX systems.
This shell does not have the interactive facilities provided by modern shells such as the C shell and korn shell.
The Bourne shell does provide an easy to use language with which you can write shell scripts
The C shell (csh) is a UNIX shell developed by Bill joy for the BSD UNIX system.
Its syntax is modelled after the C programming language. The C shell added many feature improvements over the Boune shell, such as aliases and command history. Today, the original C shell is not in wide use on UNIX.
The korn shell (ksh) is a UNIX shell which was developed by David korn (AT&T Bell Laboratories) in the early 1980s.
It provides all the features of the C shell and bourne shell together with a shell language similar to that of the original Bourne shell.
It is the most efficient shell consider using this as your standers interactive shell.
The main advantage of ksh over the traditional UNIX shell is its use as a programming language. Since its conception, several feature were gradually added, while maintaining strong backwards compatibility with the Bourne shell.
Comparison between all three shells
Facilities Bourne C Korn
Command history No Yes Yes
Command alias No Yes Yes
Shell scripts Yes Yes Yes
Command line editing No No Yes
Joy control No Yes Yes Yes
Utilities are standard UNIX program that provide for users. The UNIX system contains several utilities or user programs. Commands are also called as tools UNIX utilities can be divided into following groups-
File and directory
– Text processing
– Software Development